<?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>53777</bug_id>
          
          <creation_ts>2011-02-04 09:31:00 -0800</creation_ts>
          <short_desc>Asynchronous client-based proposed implementation for the device element</short_desc>
          <delta_ts>2012-09-19 07:19:49 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Leandro Graciá Gil">leandrogracia</reporter>
          <assigned_to name="Leandro Graciá Gil">leandrogracia</assigned_to>
          <cc>abarth</cc>
    
    <cc>adam.bergkvist</cc>
    
    <cc>andreip</cc>
    
    <cc>buildbot</cc>
    
    <cc>jorlow</cc>
    
    <cc>leandrogracia</cc>
    
    <cc>mike</cc>
    
    <cc>peter</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>345532</commentid>
    <comment_count>0</comment_count>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-02-04 09:31:00 -0800</bug_when>
    <thetext>This is the implementation for our proposed design for the device element. This patch is not intended to be reviewed or directly submitted, but to be used to understand our proposal. If accepted, this is intended to be uploaded in a set of small, easy to review patches for which https://bugs.webkit.org/show_bug.cgi?id=53595 and https://bugs.webkit.org/show_bug.cgi?id=53776 should be the first and second one.

ChangeLogs and the mock-related code have been left out of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345541</commentid>
    <comment_count>1</comment_count>
      <attachid>81234</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-02-04 09:41:00 -0800</bug_when>
    <thetext>Created attachment 81234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345543</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-04 09:44:35 -0800</bug_when>
    <thetext>Attachment 81234 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/Configurations/Featu...&quot; exit_code: 1

Source/WebCore/dom/DeviceConnection.h:76:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 1 in 52 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345615</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-04 10:55:19 -0800</bug_when>
    <thetext>Attachment 81234 did not build on win:
Build output: http://queues.webkit.org/results/7694912</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345744</commentid>
    <comment_count>4</comment_count>
      <attachid>81277</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-02-04 13:29:43 -0800</bug_when>
    <thetext>Created attachment 81277
Class diagram of the proposed model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348486</commentid>
    <comment_count>5</comment_count>
      <attachid>81854</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-02-09 13:09:20 -0800</bug_when>
    <thetext>Created attachment 81854
Diagram for the local device successful connection/disconnection use case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348487</commentid>
    <comment_count>6</comment_count>
      <attachid>81855</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-02-09 13:10:15 -0800</bug_when>
    <thetext>Created attachment 81855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348627</commentid>
    <comment_count>7</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-09 15:13:19 -0800</bug_when>
    <thetext>Attachment 81855 did not build on win:
Build output: http://queues.webkit.org/results/7884047</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81234</attachid>
            <date>2011-02-04 09:41:00 -0800</date>
            <delta_ts>2011-02-09 13:10:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53777-20110204174057.patch</filename>
            <type>text/plain</type>
            <size>123812</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCAzOTcxMDM3YjljNzZiYzQwMDcwMDZjMmU2MTZh
Y2NkNzFjMTJiMTY2Li41N2ZkMDZlYzdhOTcwYzFhODVjYjhlZDgwMTA1ZTQ2ZDg1Y2JlNDBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC02Niw2ICs2Niw3IEBAIEVOQUJMRV9EQVRBR1JJ
RCA9IDsKIEVOQUJMRV9EQVRBTElTVCA9ICQoRU5BQkxFX0RBVEFMSVNUXyQoUkVBTF9QTEFURk9S
TV9OQU1FKSk7CiBFTkFCTEVfREFUQUxJU1RfbWFjb3N4ID0gRU5BQkxFX0RBVEFMSVNUOwogCitF
TkFCTEVfREVWSUNFX0VMRU1FTlQgPSA7CiBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OID0gOwog
RU5BQkxFX0RJUkVDVE9SWV9VUExPQUQgPSA7CiBFTkFCTEVfRE9NX1NUT1JBR0UgPSBFTkFCTEVf
RE9NX1NUT1JBR0U7CkBAIC0xMjUsNCArMTI2LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFC
TEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1G
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQo
RU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRf
QkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkg
JChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09V
UkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5B
QkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVf
TUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5B
QkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVO
QUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykg
JChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1B
R0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAk
KEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJ
REVPKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5B
QkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5B
QkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9Y
U0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNEX1JFTkRF
UklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RB
VEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX0VMRU1FTlQpICQoRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFC
TEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAk
KEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIp
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFC
TEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9U
QUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9I
QU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9T
VkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JK
Q19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpF
Q1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9NRURJQV9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJM
RV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hI
VE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggMzk3
MTAzN2I5Yzc2YmM0MDA3MDA2YzJlNjE2YWNjZDcxYzEyYjE2Ni4uNTdmZDA2ZWM3YTk3MGMxYTg1
Y2I4ZWQ4MDEwNWU0NmQ4NWNiZTQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTY2LDYgKzY2LDcgQEAgRU5B
QkxFX0RBVEFHUklEID0gOwogRU5BQkxFX0RBVEFMSVNUID0gJChFTkFCTEVfREFUQUxJU1RfJChS
RUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9EQVRBTElTVF9tYWNvc3ggPSBFTkFCTEVfREFU
QUxJU1Q7CiAKK0VOQUJMRV9ERVZJQ0VfRUxFTUVOVCA9IDsKIEVOQUJMRV9ERVZJQ0VfT1JJRU5U
QVRJT04gPSA7CiBFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCA9IDsKIEVOQUJMRV9ET01fU1RPUkFH
RSA9IEVOQUJMRV9ET01fU1RPUkFHRTsKQEAgLTEyNSw0ICsxMjYsNCBAQCBFTkFCTEVfWEhUTUxN
UCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxF
X1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNEX1JF
TkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxF
X0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFC
TEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAk
KEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lD
T05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVT
U19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJF
RF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxF
X1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9T
VkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkg
JChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9B
VURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxF
X1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgp
ICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRD
SCkgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkg
JChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfRUxF
TUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBM
T0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxF
X0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkg
JChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1B
R0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BF
RUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5B
QkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVS
X1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcp
ICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykg
JChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCBhMGM1OWRiNjk5NjBhZTNkOWY3MDgxOWY3ZDYyZGU3MDM3M2FmNGFj
Li5iNTA1YmY5NDllNGMzMjFlZmFlNDE0OTUyOWIwMDA1YzQ0OTAyNGYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQpAQCAtNDExMiw2ICs0MTEyLDE2IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBc
CiBlbmRpZiAjIEVORCBFTkFCTEVfRklMRV9TWVNURU0KIAogIyAtLS0tCisjIERldmljZSBFbGVt
ZW50IFN1cHBvcnQKKyMgLS0tLQoraWYgRU5BQkxFX0RFVklDRV9FTEVNRU5UCitGRUFUVVJFX0RF
RklORVMgKz0gRU5BQkxFX0RFVklDRV9FTEVNRU5UPTEKK3dlYmNvcmVfY3BwZmxhZ3MgKz0gLURF
TkFCTEVfREVWSUNFX0VMRU1FTlQ9MQorZWxzZQord2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJM
RV9ERVZJQ0VfRUxFTUVOVD0wCitlbmRpZiAjIEVORCBFTkFCTEVfREVWSUNFX0VMRU1FTlQKKwor
IyAtLS0tCiAjIFNwZWVjaCBJbnB1dCBBUEkgc3VwcG9ydAogIyAtLS0tCiBpZiBFTkFCTEVfSU5Q
VVRfU1BFRUNICmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMjEzZWJhMzQwMzhmNGNjYjQ2NDIxMTFhYjlj
N2E4MWEwNTEwMjdlZC4uNjFiN2FlNzhmN2U3YzU1OWZjZjVmYjQ3MDZjZGUzYjBiOWFkMzlmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtNzYsNiArNzYsOCBAQAogICAgICAgICAgICAgJ2RvbS9SYW5n
ZS5pZGwnLAogICAgICAgICAgICAgJ2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwnLAogICAgICAgICAg
ICAgJ2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwnLAorICAgICAgICAgICAg
J2RvbS9TdHJlYW0uaWRsJywKKyAgICAgICAgICAgICdkb20vU3RyZWFtUmVjb3JkZXIuaWRsJywK
ICAgICAgICAgICAgICdkb20vVGV4dC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9UZXh0RXZlbnQu
aWRsJywKICAgICAgICAgICAgICdkb20vVG91Y2guaWRsJywKQEAgLTE0Myw2ICsxNDUsNyBAQAog
ICAgICAgICAgICAgJ2h0bWwvSFRNTERhdGFHcmlkUm93RWxlbWVudC5pZGwnLAogICAgICAgICAg
ICAgJ2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MRGV2aWNlRWxlbWVu
dC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaWRsJywKICAg
ICAgICAgICAgICdodG1sL0hUTUxEaXZFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MRG9jdW1lbnQuaWRsJywKQEAgLTY0OCw2ICs2NTEsNyBAQAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNIVE1MRGF0YUdyaWRFbGVtZW50Q3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHAnLApAQCAtODMyLDYgKzgzNiw3IEBACiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ29sbGVjdGlvbkN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEYXRhR3JpZEVs
ZW1lbnRDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1M
RGV2aWNlRWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEhUTUxFbGVtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcCcsCkBAIC0xMTg4LDYgKzExOTMsOSBA
QAogICAgICAgICAgICAgJ2RvbS9Dcm9zc1RocmVhZFRhc2suaCcsCiAgICAgICAgICAgICAnZG9t
L0N1c3RvbUV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0N1c3RvbUV2ZW50LmgnLAorICAg
ICAgICAgICAgJ2RvbS9EZXZpY2VDb25uZWN0aW9uLmgnLAorICAgICAgICAgICAgJ2RvbS9EZXZp
Y2VUeXBlLmNwcCcsCisgICAgICAgICAgICAnZG9tL0RldmljZVR5cGUuaCcsCiAgICAgICAgICAg
ICAnZG9tL0RPTUNvcmVFeGNlcHRpb24uaCcsCiAgICAgICAgICAgICAnZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RPTUltcGxlbWVudGF0aW9uLmgnLApAQCAt
MTIwMCw2ICsxMjA4LDggQEAKICAgICAgICAgICAgICdkb20vRGF0YXNldERPTVN0cmluZ01hcC5o
JywKICAgICAgICAgICAgICdkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAnLAogICAg
ICAgICAgICAgJ2RvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmgnLAorICAgICAgICAgICAg
J2RvbS9EZXZpY2VFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAnZG9tL0RldmljZUVsZW1lbnQu
aCcsCiAgICAgICAgICAgICAnZG9tL0RldmljZU1vdGlvbkNsaWVudC5oJywKICAgICAgICAgICAg
ICdkb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EZXZp
Y2VNb3Rpb25Db250cm9sbGVyLmgnLApAQCAtMTM0Niw2ICsxMzU2LDEwIEBACiAgICAgICAgICAg
ICAnZG9tL1N0YXRpY05vZGVMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNTdHJpbmdM
aXN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY1N0cmluZ0xpc3QuaCcsCisgICAgICAg
ICAgICAnZG9tL1N0cmVhbS5jcHAnLAorICAgICAgICAgICAgJ2RvbS9TdHJlYW0uaCcsCisgICAg
ICAgICAgICAnZG9tL1N0cmVhbVJlY29yZGVyLmNwcCcsCisgICAgICAgICAgICAnZG9tL1N0cmVh
bVJlY29yZGVyLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZUVsZW1lbnQuY3BwJywKICAgICAg
ICAgICAgICdkb20vU3R5bGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZWRFbGVt
ZW50LmNwcCcsCkBAIC0xNzAwLDYgKzE3MTQsOCBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTERh
dGFMaXN0RWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5j
cHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgnLAorICAgICAgICAg
ICAgJ2h0bWwvSFRNTERldmljZUVsZW1lbnQuY3BwJywKKyAgICAgICAgICAgICdodG1sL0hUTUxE
ZXZpY2VFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQu
Y3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50LmgnLAogICAgICAg
ICAgICAgJ2h0bWwvSFRNTERpdkVsZW1lbnQuY3BwJywKQEAgLTIyODEsNiArMjI5NywxMiBAQAog
ICAgICAgICAgICAgJ3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCcsCiAgICAgICAgICAg
ICAncGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9Db250
ZXh0TWVudVByb3ZpZGVyLmgnLAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlQ2xpZW50LmgnLAor
ICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAnLAorICAgICAgICAgICAgJ3Bh
Z2UvRGV2aWNlQ29udHJvbGxlci5oJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNvbm5lY3Rp
b25MaXN0ZW5lci5oJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZU1lZGlhTGlzdGVuZXIuaCcs
CisgICAgICAgICAgICAncGFnZS9EZXZpY2VMaXN0ZW5lci5oJywKICAgICAgICAgICAgICdwYWdl
L0RPTVNlbGVjdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRE9NU2VsZWN0aW9uLmgnLAog
ICAgICAgICAgICAgJ3BhZ2UvRE9NVGltZXIuY3BwJywKQEAgLTM4NDEsNiArMzg2Myw4IEBACiAg
ICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlckRldGFpbHMuaCcsCiAgICAgICAgICAgICAncmVu
ZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcv
UmVuZGVyRGV0YWlsc01hcmtlci5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyRGV2
aWNlLmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlckRldmljZS5oJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwJywKICAgICAgICAgICAg
ICdyZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaCcsCiAgICAgICAgICAgICAncmVuZGVy
aW5nL1JlbmRlckZpZWxkc2V0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnByaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDQzZWE0ODNiOTE2ZDc2
MDVkNGQ2MDE4MjQ2NDEyZTUyYzRhYTUxODMuLjk0OWU3MDRjOTU1ZTNiMDdiYjc5NTVkMTlkOTYx
NmI2MTc0OTc2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0xNDMsNiArMTQzLDggQEAgSURMX0JJTkRJ
TkdTICs9IFwKICAgICBkb20vUHJvZ3Jlc3NFdmVudC5pZGwgXAogICAgIGRvbS9SYW5nZUV4Y2Vw
dGlvbi5pZGwgXAogICAgIGRvbS9SYW5nZS5pZGwgXAorICAgIGRvbS9TdHJlYW0uaWRsIFwKKyAg
ICBkb20vU3RyZWFtUmVjb3JkZXIuaWRsIFwKICAgICBkb20vVGV4dC5pZGwgXAogICAgIGRvbS9U
ZXh0RXZlbnQuaWRsIFwKICAgICBkb20vVG91Y2guaWRsIFwKQEAgLTIzNSw2ICsyMzcsNyBAQCBJ
RExfQklORElOR1MgKz0gXAogICAgIGh0bWwvSFRNTERhdGFHcmlkUm93RWxlbWVudC5pZGwgXAog
ICAgIGh0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTERldGFpbHNF
bGVtZW50LmlkbCBcCisgICAgaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5pZGwgXAogICAgIGh0bWwv
SFRNTERpcmVjdG9yeUVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxEaXZFbGVtZW50LmlkbCBc
CiAgICAgaHRtbC9IVE1MRExpc3RFbGVtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGNhMmVh
NGE1ZDIzNGVjN2ExMzYyMzljZmJjYmIyMzdhYzQ2YTg4NmMuLmM1MmUzZWRkYTljOGRmNjJhNThk
YTAzNTM1ZTJjMDM2MjBjODRiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0zNDg4LDYgKzM0ODgsMzkg
QEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTj0xKSB7CiAgICAg
TU9CSUxJVFkgKz0gc2Vuc29ycwogfQogCitjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREVWSUNF
X0VMRU1FTlQ9MSkgeworICAgIEhFQURFUlMgKz0gXAorICAgICAgICBkb20vRGV2aWNlQ29ubmVj
dGlvbi5oIFwKKyAgICAgICAgZG9tL0RldmljZUVsZW1lbnQuaCBcCisgICAgICAgIGRvbS9EZXZp
Y2VUeXBlLmggXAorICAgICAgICBkb20vU3RyZWFtLmggXAorICAgICAgICBkb20vU3RyZWFtUmVj
b3JkZXIuaCBcCisgICAgICAgIGh0bWwvSFRNTERldmljZUVsZW1lbnQuaCBcCisgICAgICAgIHBh
Z2UvRGV2aWNlQ2xpZW50LmggXAorICAgICAgICBwYWdlL0RldmljZUNvbnRyb2xsZXIuaCBcCisg
ICAgICAgIHBhZ2UvRGV2aWNlQ29ubmVjdGlvbkxpc3RlbmVyLmggXAorICAgICAgICBwYWdlL0Rl
dmljZU1lZGlhTGlzdGVuZXIuaCBcCisgICAgICAgIHBhZ2UvRGV2aWNlTGlzdGVuZXIuaCBcCisg
ICAgICAgIHJlbmRlcmluZy9SZW5kZXJEZXZpY2UuaAorCisgICAgU09VUkNFUyArPSBcCisgICAg
ICAgIGRvbS9EZXZpY2VFbGVtZW50LmNwcCBcCisgICAgICAgIGRvbS9EZXZpY2VUeXBlLmNwcCBc
CisgICAgICAgIGRvbS9TdHJlYW0uY3BwIFwKKyAgICAgICAgZG9tL1N0cmVhbVJlY29yZGVyLmNw
cCBcCisgICAgICAgIGh0bWwvSFRNTERldmljZUVsZW1lbnQuY3BwIFwKKyAgICAgICAgcGFnZS9E
ZXZpY2VDb250cm9sbGVyLmNwcCBcCisgICAgICAgIHJlbmRlcmluZy9SZW5kZXJEZXZpY2UuY3Bw
CisKKyAgICB2OCB7CisgICAgICAgIFNPVVJDRVMgKz0gXAorICAgICAgICAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SFRNTERldmljZUVsZW1lbnRDdXN0b20uY3BwCisgICAgfSBlbHNlIHsKKyAg
ICAgICAgU09VUkNFUyArPSBcCisgICAgICAgICAgICBiaW5kaW5ncy9qcy9KU0hUTUxEZXZpY2VF
bGVtZW50Q3VzdG9tLmNwcAorICAgIH0KK30KKwogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NW
Rz0xKSB7CiAgICAgIXY4IHsKICAgICAgICAgU09VUkNFUyArPSBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERldmljZUVsZW1lbnRDdXN0b20uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRhYjRiOTVkN2IyMTA0MDdmMzYwNjU0OTZkOTFlZDUyMzgyY2JlMmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEZXZpY2VFbGVt
ZW50Q3VzdG9tLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkpTSFRNTERldmljZUVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkK
KworI2luY2x1ZGUgIkRldmljZUNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJIVE1MRGV2aWNlRWxl
bWVudC5oIgorI2luY2x1ZGUgIkpTU3RyZWFtLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworSlNWYWx1ZSBKU0hUTUxEZXZpY2VFbGVtZW50OjpkYXRh
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBIVE1MRGV2aWNlRWxlbWVudCogZGV2aWNl
ID0gc3RhdGljX2Nhc3Q8SFRNTERldmljZUVsZW1lbnQqPihpbXBsKCkpOworICAgIGlmIChkZXZp
Y2UtPmNvbm5lY3Rpb24oKS5zdGF0ZSgpICE9IERldmljZUNvbm5lY3Rpb246OkNvbm5lY3RlZCkK
KyAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworCisgICAgLy8gRklYTUU6IHJldHVybiBkZXZpY2Ut
PmRhdGEoKSAocmVxdWlyZXMgY29udmVyc2lvbiB0byBKU1ZhbHVlKS4KKyAgICByZXR1cm4ganNO
dWxsKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShE
RVZJQ0VfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEhUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEhUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZDY4MDM3OTk2OGJkMzJmNzQ1MWY1NDQ1Nzk5NjY5OTg2OGIxZTA3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERldmljZUVsZW1lbnRD
dXN0b20uY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VjhIVE1MRGV2aWNlRWxlbWVudC5oIgorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisj
aW5jbHVkZSAiRGV2aWNlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkhUTUxEZXZpY2VFbGVtZW50
LmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhTdHJlYW0uaCIKKworI2lu
Y2x1ZGUgPHY4Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4SFRNTERldmljZUVsZW1lbnQ6OmRhdGFBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNf
U1RBVFMoIkRPTS5IVE1MRGV2aWNlRWxlbWVudC5kYXRhLl9nZXQiKTsKKyAgICB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IGhvbGRlciA9IGluZm8uSG9sZGVyKCk7CisgICAgSFRNTERldmljZUVsZW1l
bnQqIGRldmljZSA9IFY4SFRNTERldmljZUVsZW1lbnQ6OnRvTmF0aXZlKGhvbGRlcik7CisgICAg
aWYgKGRldmljZS0+Y29ubmVjdGlvbigpLnN0YXRlKCkgIT0gRGV2aWNlQ29ubmVjdGlvbjo6Q29u
bmVjdGVkKQorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKworICAgIHJldHVybiB0b1Y4KGRl
dmljZS0+ZGF0YSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggZmI0YWZmMzA4ZWYxYjUzYWZjZjBjYzYyZDRiODQ0ZWFi
ZThlZGVlZS4uNTFmNGMyNTAzMGZhNzJmYmU0NDQ5MjdiODhjNDc2YTcyZDdiZTg4MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0zNTQs
NiArMzU0LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShDb250cm9sUGFydCBlKQogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRJbnB1dFNwZWVjaEJ1dHRvbjsK
ICNlbmRpZgorICAgICAgICBjYXNlIERldmljZUJ1dHRvblBhcnQ6CisjaWYgRU5BQkxFKERFVklD
RV9UQUcpCisgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXREZXZpY2VC
dXR0b247CisjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuY3BwCmluZGV4IGRmMTkyZDc3MGY5YTc5YzQ2MjA4NzY4ZjFhMzdkN2RjYTg4
NDFiOGEuLjM0ODU1MDZkY2VlMGU1NTMzNGM1ODIyNzliMzE2MGM5ZTcxZTk5M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtMTMwLDYgKzEzMCwxMCBAQCBQc2V1ZG9JZCBDU1NT
ZWxlY3Rvcjo6cHNldWRvSWQoUHNldWRvVHlwZSB0eXBlKQogICAgIGNhc2UgUHNldWRvSW5wdXRT
cGVlY2hCdXR0b246CiAgICAgICAgIHJldHVybiBJTlBVVF9TUEVFQ0hfQlVUVE9OOwogI2VuZGlm
CisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorICAgIGNhc2UgUHNldWRvRGV2aWNlQnV0dG9u
OgorICAgICAgICByZXR1cm4gREVWSUNFX0JVVFRPTjsKKyNlbmRpZgogICAgIGNhc2UgUHNldWRv
U2VhcmNoQ2FuY2VsQnV0dG9uOgogICAgICAgICByZXR1cm4gU0VBUkNIX0NBTkNFTF9CVVRUT047
CiAgICAgY2FzZSBQc2V1ZG9TZWFyY2hEZWNvcmF0aW9uOgpAQCAtMjg1LDYgKzI4OSw5IEBAIHN0
YXRpYyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZT4q
IG5hbWVUb1BzZXVkb1R5cGVNYXAoCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaW5wdXRTcGVlY2hCdXR0b24sICgiLXdlYmtp
dC1pbnB1dC1zcGVlY2gtYnV0dG9uIikpOwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9FTEVN
RU5UKQorICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZXZpY2VCdXR0b24s
ICgiLXdlYmtpdC1kZXZpY2UtYnV0dG9uIikpOworI2VuZGlmCiAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGRlZmF1bHRTdHJpbmcsICgiZGVmYXVsdCIpKTsKICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZGlzYWJsZWQsICgiZGlzYWJsZWQiKSk7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRPbmx5LCAoInJlYWQtb25s
eSIpKTsKQEAgLTM4OSw2ICszOTYsOSBAQCBzdGF0aWMgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBs
KiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+KiBuYW1lVG9Qc2V1ZG9UeXBlTWFwKAogI2lmIEVO
QUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChpbnB1dFNw
ZWVjaEJ1dHRvbi5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9JbnB1dFNwZWVjaEJ1dHRvbik7
CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisgICAgICAgIG5hbWVUb1BzZXVk
b1R5cGUtPnNldChkZXZpY2VCdXR0b24uaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvRGV2aWNl
QnV0dG9uKTsKKyNlbmRpZgogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoZGVmYXVsdFN0
cmluZy5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9EZWZhdWx0KTsKICAgICAgICAgbmFtZVRv
UHNldWRvVHlwZS0+c2V0KGRpc2FibGVkLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0Rpc2Fi
bGVkKTsKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KHJlYWRPbmx5LmltcGwoKSwgQ1NT
U2VsZWN0b3I6OlBzZXVkb1JlYWRPbmx5KTsKQEAgLTUxMyw2ICs1MjMsOSBAQCB2b2lkIENTU1Nl
bGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAjaWYgRU5BQkxFKElOUFVUX1NQRUVD
SCkKICAgICBjYXNlIFBzZXVkb0lucHV0U3BlZWNoQnV0dG9uOgogI2VuZGlmCisjaWYgRU5BQkxF
KERFVklDRV9FTEVNRU5UKQorICAgIGNhc2UgUHNldWRvRGV2aWNlQnV0dG9uOgorI2VuZGlmCiAg
ICAgY2FzZSBQc2V1ZG9Jbm5lclNwaW5CdXR0b246CiAgICAgY2FzZSBQc2V1ZG9NZWRpYUNvbnRy
b2xzUGFuZWw6CiAgICAgY2FzZSBQc2V1ZG9NZWRpYUNvbnRyb2xzQ3VycmVudFRpbWVEaXNwbGF5
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAppbmRleCBmM2Y4MDBiZmFkZWI4Mjc3OTIyNTNlYTVi
ODI3ODUwMmIwYjJjZDhlLi44ZjQ2MWE0ZTc5ODQwZDQyM2U3NGQyYjQ2ZTVlMDk4NjQ4NGQ3ZmNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAtMTkzLDYgKzE5Myw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQogICAgICAgICAgICAgUHNldWRv
SW5wdXRTcGVlY2hCdXR0b24sCiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisg
ICAgICAgICAgICBQc2V1ZG9EZXZpY2VCdXR0b24sCisjZW5kaWYKICAgICAgICAgICAgIFBzZXVk
b0lubmVyU3BpbkJ1dHRvbiwKICAgICAgICAgICAgIFBzZXVkb091dGVyU3BpbkJ1dHRvbiwKICAg
ICAgICAgICAgIFBzZXVkb0xlZnRQYWdlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgppbmRleCA0ZmNlNGYzOTA2OGNlZDNiODJlNTEwNmY4OTVjYTc3NjdkZmM5ODFiLi4xOGVi
ODg1MjliMzg5MjEyNGVjOGIxZmM3ZTNhYWFjMzE1ODZhM2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtNTcxLDYgKzU3MSw3IEBAIGJ1dHRvbi1iZXZlbAogZGVm
YXVsdC1idXR0b24KIGlubmVyLXNwaW4tYnV0dG9uCiAtd2Via2l0LWlucHV0LXNwZWVjaC1idXR0
b24KKy13ZWJraXQtZGV2aWNlLWJ1dHRvbgogbGlzdC1idXR0b24KIGxpc3Rib3gKIGxpc3RpdGVt
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvaHRtbC5jc3MKaW5kZXggNzlmZGU4ODBjY2NmOGE1NTQzYjFkN2JhMDVhMjUyZGY4Yjlk
M2MxMS4uNTM0NGQ1ZWZkYjU0ZmQwNTg5MTdlNjlkNWMzNzJmNTM5ZGZlMGVlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9o
dG1sLmNzcwpAQCAtNDc5LDEyICs0NzksMTIgQEAgaW5wdXRbdHlwZT0icmFkaW8iXSwgaW5wdXRb
dHlwZT0iY2hlY2tib3giXSB7CiAgICAgYm9yZGVyOiBpbml0aWFsOwogfQogCi1pbnB1dFt0eXBl
PSJidXR0b24iXSwgaW5wdXRbdHlwZT0ic3VibWl0Il0sIGlucHV0W3R5cGU9InJlc2V0Il0sIGlu
cHV0W3R5cGU9ImZpbGUiXTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24geworaW5wdXRbdHlw
ZT0iYnV0dG9uIl0sIGlucHV0W3R5cGU9InN1Ym1pdCJdLCBpbnB1dFt0eXBlPSJyZXNldCJdLCBp
bnB1dFt0eXBlPSJmaWxlIl06Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uLCBkZXZpY2U6Oi13
ZWJraXQtZGV2aWNlLWJ1dHRvbiB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBwdXNoLWJ1dHRv
bjsKICAgICB3aGl0ZS1zcGFjZTogcHJlCiB9CiAKLWlucHV0W3R5cGU9ImJ1dHRvbiJdLCBpbnB1
dFt0eXBlPSJzdWJtaXQiXSwgaW5wdXRbdHlwZT0icmVzZXQiXSwgaW5wdXRbdHlwZT0iZmlsZSJd
Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiwgYnV0dG9uIHsKK2lucHV0W3R5cGU9ImJ1dHRv
biJdLCBpbnB1dFt0eXBlPSJzdWJtaXQiXSwgaW5wdXRbdHlwZT0icmVzZXQiXSwgaW5wdXRbdHlw
ZT0iZmlsZSJdOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiwgZGV2aWNlOjotd2Via2l0LWRl
dmljZS1idXR0b24sIGJ1dHRvbiB7CiAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAg
ICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgY3Vyc29yOiBkZWZhdWx0OwpAQCAtNTA5LDE1ICs1
MDksMTYgQEAgaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgewogCiBp
bnB1dFt0eXBlPSJidXR0b24iXTpkaXNhYmxlZCwgaW5wdXRbdHlwZT0ic3VibWl0Il06ZGlzYWJs
ZWQsIGlucHV0W3R5cGU9InJlc2V0Il06ZGlzYWJsZWQsCiBpbnB1dFt0eXBlPSJmaWxlIl06ZGlz
YWJsZWQ6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uLCBidXR0b246ZGlzYWJsZWQsCi1zZWxl
Y3Q6ZGlzYWJsZWQsIGtleWdlbjpkaXNhYmxlZCwgb3B0Z3JvdXA6ZGlzYWJsZWQsIG9wdGlvbjpk
aXNhYmxlZCwgZGF0YWdyaWQ6ZGlzYWJsZWQgeworc2VsZWN0OmRpc2FibGVkLCBrZXlnZW46ZGlz
YWJsZWQsIG9wdGdyb3VwOmRpc2FibGVkLCBvcHRpb246ZGlzYWJsZWQsIGRhdGFncmlkOmRpc2Fi
bGVkLAorZGV2aWNlOmRpc2FibGVkOjotd2Via2l0LWRldmljZS1idXR0b24gewogICAgIGNvbG9y
OiBHcmF5VGV4dAogfQogCi1pbnB1dFt0eXBlPSJidXR0b24iXTphY3RpdmUsIGlucHV0W3R5cGU9
InN1Ym1pdCJdOmFjdGl2ZSwgaW5wdXRbdHlwZT0icmVzZXQiXTphY3RpdmUsIGlucHV0W3R5cGU9
ImZpbGUiXTphY3RpdmU6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uLCBidXR0b246YWN0aXZl
IHsKK2lucHV0W3R5cGU9ImJ1dHRvbiJdOmFjdGl2ZSwgaW5wdXRbdHlwZT0ic3VibWl0Il06YWN0
aXZlLCBpbnB1dFt0eXBlPSJyZXNldCJdOmFjdGl2ZSwgaW5wdXRbdHlwZT0iZmlsZSJdOmFjdGl2
ZTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24sIGRldmljZTphY3RpdmU6Oi13ZWJraXQtZGV2
aWNlLWJ1dHRvbiwgYnV0dG9uOmFjdGl2ZSB7CiAgICAgYm9yZGVyLXN0eWxlOiBpbnNldAogfQog
Ci1pbnB1dFt0eXBlPSJidXR0b24iXTphY3RpdmU6ZGlzYWJsZWQsIGlucHV0W3R5cGU9InN1Ym1p
dCJdOmFjdGl2ZTpkaXNhYmxlZCwgaW5wdXRbdHlwZT0icmVzZXQiXTphY3RpdmU6ZGlzYWJsZWQs
IGlucHV0W3R5cGU9ImZpbGUiXTphY3RpdmU6ZGlzYWJsZWQ6Oi13ZWJraXQtZmlsZS11cGxvYWQt
YnV0dG9uLCBidXR0b246YWN0aXZlOmRpc2FibGVkIHsKK2lucHV0W3R5cGU9ImJ1dHRvbiJdOmFj
dGl2ZTpkaXNhYmxlZCwgaW5wdXRbdHlwZT0ic3VibWl0Il06YWN0aXZlOmRpc2FibGVkLCBpbnB1
dFt0eXBlPSJyZXNldCJdOmFjdGl2ZTpkaXNhYmxlZCwgaW5wdXRbdHlwZT0iZmlsZSJdOmFjdGl2
ZTpkaXNhYmxlZDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24sIGRldmljZTphY3RpdmU6ZGlz
YWJsZWQ6Oi13ZWJraXQtZGV2aWNlLWJ1dHRvbiwgYnV0dG9uOmFjdGl2ZTpkaXNhYmxlZCB7CiAg
ICAgYm9yZGVyLXN0eWxlOiBvdXRzZXQKIH0KIApAQCAtNzk3LDcgKzc5OCw4IEBAIGlucHV0W3R5
cGU9InJhZGlvIl06Zm9jdXMsCiBpbnB1dFt0eXBlPSJyZXNldCJdOmZvY3VzLAogaW5wdXRbdHlw
ZT0ic2VhcmNoIl06Zm9jdXMsCiBpbnB1dFt0eXBlPSJzdWJtaXQiXTpmb2N1cywKLWlucHV0W3R5
cGU9ImZpbGUiXTpmb2N1czo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24geworaW5wdXRbdHlw
ZT0iZmlsZSJdOmZvY3VzOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiwKK2RldmljZTpmb2N1
czo6LXdlYmtpdC1kZXZpY2UtYnV0dG9uIHsKICAgICBvdXRsaW5lLW9mZnNldDogMAogfQogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggYzg4YWVjZjk0ODU0NzQ2OWFkMGRl
MGU0YWQ1MGNjZmVjMDhiZjY1Mi4uNTE3OTdlZjcxYzEyNjBjZWRhYmNjMDIxZjQyZDk1YjExNmRk
MWIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC01MSwxMiArNTEsMTQgQEAK
ICNpbmNsdWRlICJET01TdHJpbmdNYXAuY3BwIgogI2luY2x1ZGUgIkRhdGFzZXRET01TdHJpbmdN
YXAuY3BwIgogI2luY2x1ZGUgIkRlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIgorI2luY2x1
ZGUgIkRldmljZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIu
Y3BwIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuY3BwIgogI2luY2x1ZGUgIkRldmljZU1v
dGlvbkV2ZW50LmNwcCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbi5jcHAiCiAjaW5jbHVk
ZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcCIKICNpbmNsdWRlICJEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmNwcCIKKyNpbmNsdWRlICJEZXZpY2VUeXBlLmNwcCIKICNpbmNsdWRlICJE
b2N1bWVudC5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5jcHAiCiAjaW5jbHVkZSAi
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCIKQEAgLTExMCw2ICsxMTIsOCBAQAogI2luY2x1
ZGUgIlNwYWNlU3BsaXRTdHJpbmcuY3BwIgogI2luY2x1ZGUgIlN0YXRpY0hhc2hTZXROb2RlTGlz
dC5jcHAiCiAjaW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuY3BwIgorI2luY2x1ZGUgIlN0cmVhbS5j
cHAiCisjaW5jbHVkZSAiU3RyZWFtUmVjb3JkZXIuY3BwIgogI2luY2x1ZGUgIlN0eWxlRWxlbWVu
dC5jcHAiCiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiVGFnTm9kZUxp
c3QuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUNvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUy
NTQ0MjIwYWNlMWE2MDFhNjYyODBiZDg2YWYzZWJiNDYzZTViNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VDb25uZWN0aW9uLmgKQEAgLTAsMCArMSwxMTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIERldmljZUNvbm5lY3Rpb25faAorI2RlZmluZSBEZXZpY2VDb25uZWN0aW9uX2gKKwor
I2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgIkRldmljZVR5cGUuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmlj
ZUluZm8geworcHVibGljOgorICAgIERldmljZUluZm8oKSA6IG1fZXJyb3JDb2RlKDApIHsgfQor
CisgICAgRGV2aWNlSW5mbyhjb25zdCBEZXZpY2VUeXBlJiB0eXBlLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgaWQsIGludCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKQorICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1fbmFtZShuYW1lKQor
ICAgICAgICAsIG1faWQoaWQpCisgICAgICAgICwgbV9lcnJvckNvZGUoZXJyb3JDb2RlKQorICAg
ICAgICAsIG1fZXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSkKKyAgICB7IH0KKworICAgIGNvbnN0
IERldmljZVR5cGUmIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBjb25zdCBT
dHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcm
IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIGludCBlcnJvckNvZGUoKSBjb25zdCB7
IHJldHVybiBtX2Vycm9yQ29kZTsgfQorICAgIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV9lcnJvck1lc3NhZ2U7IH0KKworcHJpdmF0ZToKKyAgICBEZXZpY2VU
eXBlIG1fdHlwZTsKKyAgICBTdHJpbmcgbV9uYW1lOworICAgIFN0cmluZyBtX2lkOworICAgIGlu
dCBtX2Vycm9yQ29kZTsgLy8gMCBhc3N1bWVkIHRvIGJlIE9LLgorICAgIFN0cmluZyBtX2Vycm9y
TWVzc2FnZTsKK307CisKK2NsYXNzIERldmljZUNvbm5lY3Rpb24geworcHVibGljOgorICAgIGVu
dW0gRGV2aWNlQ29ubmVjdGlvblN0YXRlIHsKKyAgICAgICAgTm9Db25uZWN0aW9uID0gMCwgLy8g
T2JqZWN0IG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IGNvbm5lY3Rpb24gKGluaXRpYWxpemF0aW9u
IHN0YXRlKS4KKyAgICAgICAgQ29ubmVjdGVkLCAvLyBEZXZpY2UgY29ubmVjdGVkIHN1Y2Nlc3Nm
dWxseS4KKyAgICAgICAgQ2FuY2VsbGVkLCAvLyBEZXZpY2Ugc2VsZWN0aW9uL2Nvbm5lY3Rpb24g
Y2FuY2VsbGVkIGJ5IHRoZSB1c2VyLgorICAgICAgICBGYWlsZWQsIC8vIEVycm9yIGNvbm5lY3Rp
bmcgdGhlIGRldmljZSBvciBkdXJpbmcgY29ubmVjdGlvbi4KKyAgICAgICAgQ2xvc2VkICAvLyBD
b25uZWN0aW9uIGxlZ2l0aW1hdGVseSBjbG9zZWQuCisgICAgfTsKKworICAgIERldmljZUNvbm5l
Y3Rpb24oKSA6IG1fbGlzdGVuZXJJZCgwKSwgbV9zdGF0ZShOb0Nvbm5lY3Rpb24pIHsgfQorCisg
ICAgRGV2aWNlQ29ubmVjdGlvbihpbnQgbGlzdGVuZXJJZCwgRGV2aWNlQ29ubmVjdGlvblN0YXRl
IHN0YXRlLCBjb25zdCBWZWN0b3I8RGV2aWNlSW5mbz4mIGRldmljZXMsIGNvbnN0IFN0cmluZyYg
c3RyZWFtVXJsKQorICAgICAgICA6IG1fbGlzdGVuZXJJZChsaXN0ZW5lcklkKQorICAgICAgICAs
IG1fc3RhdGUoc3RhdGUpCisgICAgICAgICwgbV9kZXZpY2VzKGRldmljZXMpCisgICAgICAgICwg
bV9zdHJlYW1Vcmwoc3RyZWFtVXJsKQorICAgIHsgfQorCisgICAgaW50IGxpc3RlbmVySWQoKSBj
b25zdCB7IHJldHVybiBtX2xpc3RlbmVySWQ7IH0KKyAgICBEZXZpY2VDb25uZWN0aW9uU3RhdGUg
c3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CisgICAgY29uc3QgVmVjdG9yPERldmlj
ZUluZm8+JiBkZXZpY2VzKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VzOyB9CisKKyAgICAvLyBD
b252ZW5pZW5jZSBtZXRob2QgZm9yIHNpbmdsZS1kZXZpY2UgdHlwZXMuCisgICAgY29uc3QgRGV2
aWNlSW5mbyYgZGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VzWzBdOyB9CisKKyAgICAv
LyBGSVhNRTogb25seSBjb25zaWRlcmluZyBtZWRpYSB0eXBlIGZvciB0aGUgbW9tZW50LiBUaGVy
ZSBzaG91bGQgYmUgYSBzZXBhcmF0ZSBnZW5lcmljIHNlcnZpY2Ugb2JqZWN0IGluIHRoZSBmdXR1
cmUuCisgICAgU3RyaW5nIHN0cmVhbVVybCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyZWFtVXJsOyB9
CisKK3ByaXZhdGU6CisgICAgaW50IG1fbGlzdGVuZXJJZDsgLy8gSWQgb2YgdGhlIGNvbnRyb2xs
ZXIgbGlzdGVuZXIgdG8gYmUgcmVwb3J0ZWQgb24gY29ubmVjdGlvbiBzdGF0ZSBjaGFuZ2VzLgor
ICAgIERldmljZUNvbm5lY3Rpb25TdGF0ZSBtX3N0YXRlOworICAgIFZlY3RvcjxEZXZpY2VJbmZv
PiBtX2RldmljZXM7CisKKyAgICBTdHJpbmcgbV9zdHJlYW1Vcmw7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNlbmRp
ZiAvLyBEZXZpY2VDb25uZWN0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VFbGVtZW50LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNTVjZWEzZTNiMTMwYmNiYmM2Y2Q5YjZlNTllOWJiNmZmZTIyNWM1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUVsZW1lbnQuY3BwCkBAIC0w
LDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlRWxlbWVudC5o
IgorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0RldmljZUVsZW1lbnQ6OkRldmljZUVsZW1lbnQoKQoreworfQorCitEZXZpY2VFbGVtZW50OjpE
ZXZpY2VFbGVtZW50KGNvbnN0IFN0cmluZyYgdHlwZSkKKyAgICA6IG1fdHlwZSh0eXBlKQorewor
fQorCitTdHJpbmcgRGV2aWNlRWxlbWVudDo6dHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
dHlwZS5uYW1lKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShERVZJQ0VfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlRWxlbWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVjNTM3NWYxMzcwYmM4NDNiMDVkYjUwMmVmYzgzN2E5NDA4ZWNlMDkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlRWxlbWVudC5oCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIERldmljZUVsZW1lbnRfaAorI2RlZmluZSBEZXZpY2VFbGVtZW50X2gKKworI2lm
IEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgIkRldmljZVR5cGUuaCIKKyNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3RyZWFtOworCitjbGFzcyBEZXZpY2VFbGVtZW50IHsK
K3B1YmxpYzoKKyAgICBEZXZpY2VFbGVtZW50KCk7CisgICAgRGV2aWNlRWxlbWVudChjb25zdCBT
dHJpbmcmIHR5cGUpOworCisgICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VHlwZShjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0
cmVhbT4gZGF0YSgpID0gMDsgLy8gRklYTUU6IHVzZSBnZW5lcmljIGRhdGEgdHlwZXMgd2hlbiBl
eHRlbmRpbmcgdGhlIHRhZyBiZXlvbmQgbWVkaWEuCisKK3Byb3RlY3RlZDoKKyAgICBEZXZpY2VU
eXBlIG1fdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2VuZGlmIC8vIERldmljZUVsZW1lbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZVR5cGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0NzlkMTk3NjhlNWM1ZDFjZWRhY2FiMGIy
Yjk5MzMwNTQwNTE2OTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlVHlwZS5jcHAKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJEZXZpY2VUeXBlLmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworLy8gQXZvaWQgdXNpbmcgc3RhdGljIFN0cmluZ3MuIENvZGUgc2hvdWxk
IG5vdCBydW4gb24gV2ViS2l0IGxvYWQuCitjb25zdCBjaGFyKiBEZXZpY2VUeXBlOjpzX25hbWVz
W10gPQoreworICAgICJpbnZhbGlkIiwKKyAgICAibWVkaWEiCit9OworCitEZXZpY2VUeXBlOjpE
ZXZpY2VUeXBlKCkKKyAgICA6IG1faWQoSW52YWxpZCkKK3sKK30KKworRGV2aWNlVHlwZTo6RGV2
aWNlVHlwZShEZXZpY2VUeXBlSWQgaWQpCit7CisgICAgQVNTRVJUKGlkID4gSW52YWxpZCAmJiBp
ZCA8IE51bURldmljZVR5cGVzKTsKKyAgICBtX2lkID0gaWQ7Cit9CisKK0RldmljZVR5cGU6OkRl
dmljZVR5cGUoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIC8vIElnbm9yZSBpbnZhbGlkIHR5
cGVzLgorICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgc2l6ZW9mKHNfbmFtZXMpIC8gc2l6ZW9m
KGNvbnN0IGNoYXIgKik7ICsraSkgeworICAgICAgICBpZiAobmFtZSA9PSBTdHJpbmcoc19uYW1l
c1tpXSkpIHsKKyAgICAgICAgICAgIG1faWQgPSBzdGF0aWNfY2FzdDxEZXZpY2VUeXBlSWQ+KGkp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgbV9pZCA9IElu
dmFsaWQ7Cit9CisKK1N0cmluZyBEZXZpY2VUeXBlOjpzdHJpbmdCeUlkKERldmljZVR5cGVJZCBp
ZCkKK3sKKyAgICBBU1NFUlQoaWQgPiBJbnZhbGlkICYmIGlkIDwgTnVtRGV2aWNlVHlwZXMpOwor
ICAgIHJldHVybiBzX25hbWVzW2lkXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VUeXBlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWVlZjE2NTdiMzUzM2U3NTkzZjNhYjA4MTk2MTU2ZmI3ZGJmMjFlMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VUeXBlLmgKQEAgLTAsMCArMSw2
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgRGV2aWNlVHlwZV9oCisjZGVmaW5lIERldmljZVR5cGVfaAorCisjaWYgRU5B
QkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VUeXBlIHsKK3B1YmxpYzoKKyAgICBlbnVt
IERldmljZVR5cGVJZCB7CisgICAgICAgIEludmFsaWQgPSAwLCAvLyBJbnZhbGlkIGRldmljZSB0
eXBlIHZhbHVlLiBOb3QgYSByZXNlcnZlZCB0eXBlIGluIHRoZSBzcGVjLgorICAgICAgICBNZWRp
YSwKKyAgICAgICAgTnVtRGV2aWNlVHlwZXMKKyAgICB9OworCisgICAgRGV2aWNlVHlwZSgpOwor
ICAgIERldmljZVR5cGUoRGV2aWNlVHlwZUlkKTsKKyAgICBEZXZpY2VUeXBlKGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CisKKyAgICBEZXZpY2VUeXBlSWQgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9
CisgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBzX25hbWVzW21faWRdOyB9CisgICAg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZCAhPSBJbnZhbGlkOyB9CisKKyAgICBz
dGF0aWMgU3RyaW5nIHN0cmluZ0J5SWQoRGV2aWNlVHlwZUlkKTsKKworcHJpdmF0ZToKKyAgICBE
ZXZpY2VUeXBlSWQgbV9pZDsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc19uYW1lc1tdOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVN
RU5UKQorCisjZW5kaWYgLy8gRGV2aWNlVHlwZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW0uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVmOWM3MjllMDVjYThiMzQ5M2VlNDM0YzI0N2UwMTJjODI4MDJhZGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtLmNwcApAQCAtMCwwICsxLDczIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN0cmVhbS5oIgorCisjaWYgRU5BQkxFKERFVklD
RV9FTEVNRU5UKQorCisjaW5jbHVkZSAiU3RyZWFtUmVjb3JkZXIuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitQYXNzUmVmUHRyPFN0cmVhbT4gU3RyZWFtOjpjcmVhdGUoSFRNTERldmljZUVs
ZW1lbnQqIGRldmljZSwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgQVNTRVJUKGRldmljZSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHJlYW0oZGV2aWNlLCB1cmwpKTsKK30KKworU3Ry
ZWFtOjpTdHJlYW0oSFRNTERldmljZUVsZW1lbnQqIGRldmljZSwgY29uc3QgU3RyaW5nJiB1cmwp
CisgICAgOiBtX2RldmljZUVsZW1lbnQoYWRvcHRSZWYoZGV2aWNlKSkKKyAgICAsIG1fdXJsKHVy
bCkKK3sKK30KKworU3RyZWFtOjp+U3RyZWFtKCkKK3sKK30KKworU3RyaW5nIFN0cmVhbTo6dXJs
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmw7Cit9CisKK1Bhc3NSZWZQdHI8U3RyZWFtUmVj
b3JkZXI+IFN0cmVhbTo6cmVjb3JkKCkKK3sKKyAgICByZXR1cm4gU3RyZWFtUmVjb3JkZXI6OmNy
ZWF0ZSh0aGlzKTsKK30KKworUGFzc1JlZlB0cjxIVE1MRGV2aWNlRWxlbWVudD4gU3RyZWFtOjpk
ZXZpY2VFbGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kZXZpY2VFbGVtZW50OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1F
TlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU3RyZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg2YTUwNTQ0MTIyMWIyODM2MmUyYTY4MGI1
ODRiMjI0YzdiY2IwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJl
YW0uaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdHJlYW1faAorI2RlZmluZSBTdHJlYW1faAor
CisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiSFRNTERldmljZUVsZW1l
bnQuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBEZXZpY2VFbGVtZW50OworY2xhc3MgSFRNTERldmljZUVsZW1lbnQ7CitjbGFzcyBT
dHJlYW1SZWNvcmRlcjsKKworY2xhc3MgU3RyZWFtIDogcHVibGljIFJlZkNvdW50ZWQ8U3RyZWFt
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RyZWFtPiBjcmVhdGUoSFRNTERl
dmljZUVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIHVybCk7CisgICAgflN0cmVhbSgpOworCisgICAg
U3RyaW5nIHVybCgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8U3RyZWFtUmVjb3JkZXI+IHJlY29y
ZCgpOworICAgIFBhc3NSZWZQdHI8SFRNTERldmljZUVsZW1lbnQ+IGRldmljZUVsZW1lbnQoKSBj
b25zdDsKKworcHJpdmF0ZToKKyAgICBTdHJlYW0oSFRNTERldmljZUVsZW1lbnQqLCBjb25zdCBT
dHJpbmcmIHVybCk7CisgICAgUmVmUHRyPEhUTUxEZXZpY2VFbGVtZW50PiBtX2RldmljZUVsZW1l
bnQ7CisgICAgU3RyaW5nIG1fdXJsOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gU3RyZWFtX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW0uaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1N0cmVhbS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzc4Njk5OWFlNjg3OGQ2ZDdiM2ZlNDQ4YzE0NjZm
NDQ1NjVmY2ExNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW0u
aWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAg
ICAgICBDb25kaXRpb25hbD1ERVZJQ0VfRUxFTUVOVAorICAgIF0gU3RyZWFtIHsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1cmw7CisgICAgICAgIFN0cmVhbVJlY29yZGVy
IHJlY29yZCgpOworICAgIH07Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
dHJlYW1SZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtUmVjb3JkZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE2NjY2ODNkYzBlMmJhNTEyZTdmMmI0MTljY2MzN2EyYWU0MmU5MTEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtUmVjb3JkZXIuY3BwCkBA
IC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3RyZWFtUmVjb3Jk
ZXIuaCIKKworI2luY2x1ZGUgIkRldmljZUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGaWxlLmgi
CisjaW5jbHVkZSAiSFRNTERldmljZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTdHJlYW0uaCIKKwor
I2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNz
UmVmUHRyPFN0cmVhbVJlY29yZGVyPiBTdHJlYW1SZWNvcmRlcjo6Y3JlYXRlKFN0cmVhbSogc3Ry
ZWFtKQoreworICAgIEFTU0VSVChzdHJlYW0pOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3Ry
ZWFtUmVjb3JkZXIoc3RyZWFtKSk7Cit9CisKK1N0cmVhbVJlY29yZGVyOjpTdHJlYW1SZWNvcmRl
cihTdHJlYW0qIHN0cmVhbSkKKyAgICA6IG1fc3RyZWFtKGFkb3B0UmVmKHN0cmVhbSkpCisgICAg
LCBtX2xpc3RlbmVySWQoc3RyZWFtLT5kZXZpY2VFbGVtZW50KCktPmRldmljZUNvbnRyb2xsZXIo
KS0+cmVnaXN0ZXJMaXN0ZW5lcih0aGlzKSkKKyAgICAsIG1fc3RvcHBlZChmYWxzZSkKK3sKKyAg
ICBtX3N0cmVhbS0+ZGV2aWNlRWxlbWVudCgpLT5yZWNvcmRTdHJlYW1Ub0ZpbGUoKTsKK30KKwor
U3RyZWFtUmVjb3JkZXI6On5TdHJlYW1SZWNvcmRlcigpCit7CisgICAgaWYgKCFtX3N0b3BwZWQp
CisgICAgICAgIG1fc3RyZWFtLT5kZXZpY2VFbGVtZW50KCktPnN0b3BSZWNvcmRpbmdTdHJlYW0o
bV9wYXRoKTsKKworICAgIGlmIChEZXZpY2VDb250cm9sbGVyKiBkZXZpY2VDb250cm9sbGVyID0g
bV9zdHJlYW0tPmRldmljZUVsZW1lbnQoKS0+ZGV2aWNlQ29udHJvbGxlcigpKQorICAgICAgICBk
ZXZpY2VDb250cm9sbGVyLT51bnJlZ2lzdGVyTGlzdGVuZXIobV9saXN0ZW5lcklkKTsKK30KKwor
UGFzc1JlZlB0cjxGaWxlPiBTdHJlYW1SZWNvcmRlcjo6c3RvcCgpCit7CisgICAgLy8gU3BlYyBx
dWVzdGlvbjogc2hvdWxkIHdlIHJldHVybiBhIG51bGwgSlMgb2JqZWN0IGluIHRoaXMgY2FzZT8K
KyAgICBpZiAobV9zdG9wcGVkKQorICAgICAgICByZXR1cm4gRmlsZTo6Y3JlYXRlKG1fcGF0aCk7
CisKKyAgICBtX3N0b3BwZWQgPSB0cnVlOworICAgIG1fc3RyZWFtLT5kZXZpY2VFbGVtZW50KCkt
PnN0b3BSZWNvcmRpbmdTdHJlYW0obV9wYXRoKTsKKyAgICByZXR1cm4gRmlsZTo6Y3JlYXRlKG1f
cGF0aCk7Cit9CisKK3ZvaWQgU3RyZWFtUmVjb3JkZXI6OnN0cmVhbVJlY29yZGluZ1N0YXJ0ZWQo
aW50IGxpc3RlbmVySWQsIGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBBU1NFUlQobV9saXN0
ZW5lcklkID09IGxpc3RlbmVySWQpOworICAgIEFTU0VSVCghbV9zdG9wcGVkKTsKKyAgICBtX3Bh
dGggPSBwYXRoOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoREVWSUNFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFt
UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW1SZWNvcmRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcyYmE5MTNjM2Y3ZDFjYzE4M2NlNmIxMGY3NDBmOTM0ZjczNjc2MDkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtUmVjb3JkZXIuaApAQCAtMCwwICsxLDY5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBTdHJlYW1SZWNvcmRlcl9oCisjZGVmaW5lIFN0cmVhbVJlY29yZGVyX2gKKwor
I2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgIkRldmljZU1lZGlhTGlzdGVu
ZXIuaCIKKyNpbmNsdWRlICJTdHJlYW0uaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGaWxlOworCitjbGFzcyBTdHJlYW1SZWNvcmRl
ciA6IHB1YmxpYyBSZWZDb3VudGVkPFN0cmVhbVJlY29yZGVyPiwgcHVibGljIERldmljZU1lZGlh
TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cmVhbVJlY29yZGVy
PiBjcmVhdGUoU3RyZWFtKik7CisgICAgflN0cmVhbVJlY29yZGVyKCk7CisKKyAgICBQYXNzUmVm
UHRyPEZpbGU+IHN0b3AoKTsKKworICAgIC8vIERldmljZU1lZGlhTGlzdGVuZXIgaW1wbGVtZW50
YXRpb24uCisgICAgdmlydHVhbCB2b2lkIHN0cmVhbVJlY29yZGluZ1N0YXJ0ZWQoaW50IGxpc3Rl
bmVySWQsIGNvbnN0IFN0cmluZyYgcGF0aCk7CisKK3ByaXZhdGU6CisgICAgU3RyZWFtUmVjb3Jk
ZXIoU3RyZWFtKik7CisKKyAgICBSZWZQdHI8U3RyZWFtPiBtX3N0cmVhbTsKKyAgICBTdHJpbmcg
bV9wYXRoOworICAgIGludCBtX2xpc3RlbmVySWQ7CisgICAgYm9vbCBtX3N0b3BwZWQ7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1F
TlQpCisKKyNlbmRpZiAvLyBTdHJlYW1SZWNvcmRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU3RyZWFtUmVjb3JkZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbVJl
Y29yZGVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmQ2ZGYzNzgxNTRjMjg1ZmI0ZDczMzMxOTdjOTUxOTA1
MjYzZTczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbVJlY29y
ZGVyLmlkbApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisgICAgaW50ZXJmYWNlIFsK
KyAgICAgICAgQ29uZGl0aW9uYWw9REVWSUNFX0VMRU1FTlQKKyAgICBdIFN0cmVhbVJlY29yZGVy
IHsKKyAgICAgICAgRmlsZSBzdG9wKCk7CisgICAgfTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZmVhdHVyZXMucHJpIGIvU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCmluZGV4
IGIzZjBlMmQ5MTVlNTU1ZGJmNTE3NTY3YTA0YWI3ZTkyYWE2ZWYwYjcuLjVmMmM1NzY3YmI2N2Iw
NGI5ODAzM2UzZDlhNDNkY2E5ZGVlYWZjOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Zl
YXR1cmVzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkKQEAgLTc1LDYgKzc1
LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NJTkdMRV9USFJFQURFRD0xKSB7CiAhY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1dFQl9BVURJTz0uKTogREVGSU5FUyArPSBFTkFCTEVfV0VC
X0FVRElPPTAKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCR0w9Lik6IERFRklORVMgKz0g
RU5BQkxFX1dFQkdMPTAKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTUVESUFfU1RBVElTVElD
Uz0uKTogREVGSU5FUyArPSBFTkFCTEVfTUVESUFfU1RBVElTVElDUz0wCishY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX0RFVklDRV9FTEVNRU5UPS4pOiBERUZJTkVTICs9IEVOQUJMRV9ERVZJQ0Vf
RUxFTUVOVD0xCiAKICMgU1ZHIHN1cHBvcnQKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZH
PTApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmRhZTllMWNlZWYyMWJmYjJlMTRjYTE5ZDdhNGJjODA3MjZhYTljOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1lbnQuY3BwCkBAIC0wLDAg
KzEsMjc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxEZXZpY2VFbGVtZW50
LmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNpbmNsdWRlICJEZXZpY2VDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIK
KyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgor
I2luY2x1ZGUgIlJlbmRlckRldmljZS5oIgorI2luY2x1ZGUgIlN0cmVhbS5oIgorI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKKworaW5saW5lIEhUTUxEZXZpY2VFbGVtZW50OjpIVE1MRGV2aWNlRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCisg
ICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKKyAgICAsIG1fc3RhdGUoTm90Q29u
bmVjdGVkKQorICAgICwgbV9saXN0ZW5lcklkKGRldmljZUNvbnRyb2xsZXIoKS0+cmVnaXN0ZXJM
aXN0ZW5lcih0aGlzKSkKK3sKK30KKworUGFzc1JlZlB0cjxIVE1MRGV2aWNlRWxlbWVudD4gSFRN
TERldmljZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MRGV2aWNlRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitIVE1MRGV2aWNlRWxlbWVudDo6fkhUTUxE
ZXZpY2VFbGVtZW50KCkKK3sKKyAgICBpZiAoRGV2aWNlQ29udHJvbGxlciogY29udHJvbGxlciA9
IGRldmljZUNvbnRyb2xsZXIoKSkKKyAgICAgICAgY29udHJvbGxlci0+dW5yZWdpc3Rlckxpc3Rl
bmVyKG1fbGlzdGVuZXJJZCk7Cit9CisKK2Jvb2wgSFRNTERldmljZUVsZW1lbnQ6OnJlbmRlcmVy
SXNOZWVkZWQoUmVuZGVyU3R5bGUgKnN0eWxlKQoreworICAgIHJldHVybiB0cnVlOworfQorCitS
ZW5kZXJPYmplY3QqIEhUTUxEZXZpY2VFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICByZXR1cm4gbmV3IChhcmVuYSkg
UmVuZGVyRGV2aWNlKHRoaXMpOworfQorCit2b2lkIEhUTUxEZXZpY2VFbGVtZW50OjpwYXJzZU1h
cHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkKK3sKKyAgICBpZiAoYXR0cmlidXRl
LT5uYW1lKCkgPT0gdHlwZUF0dHIpCisgICAgICAgIG1fdHlwZSA9IERldmljZVR5cGUoZmFzdEdl
dEF0dHJpYnV0ZSh0eXBlQXR0cikpOworICAgIGVsc2UKKyAgICAgICAgSFRNTEVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKGF0dHJpYnV0ZSk7Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1l
bnQ6OmF0dGFjaCgpCit7CisgICAgSFRNTEVsZW1lbnQ6OmF0dGFjaCgpOworCisgICAgLy8gVGhl
IGNhbGwgdG8gdXBkYXRlRnJvbUVsZW1lbnQoKSBuZWVkcyB0byBnbyBhZnRlciB0aGUgY2FsbCB0
aHJvdWdoCisgICAgLy8gdG8gdGhlIGJhc2UgY2xhc3MncyBhdHRhY2goKSBiZWNhdXNlIHRoYXQg
Y2FuIHNvbWV0aW1lcyBkbyBhIGNsb3NlCisgICAgLy8gb24gdGhlIHJlbmRlcmVyLgorICAgIGlm
IChyZW5kZXJlcigpKQorICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOwor
fQorCit2b2lkIEhUTUxEZXZpY2VFbGVtZW50OjpkZXRhY2goKQoreworICAgIC8vIFVuZGVmaW5l
ZCBzcGVjIHF1ZXN0aW9uOiBzaG91bGQgd2UgY2xvc2UgYW55IGFjdGl2ZSBjb25uZWN0aW9ucyB3
aGVuCisgICAgLy8gdGhlIGRldmljZSBvYmplY3QgdGhhdCBoYXMgY3JlYXRlZCB0aGVtIGlzIGRl
dGFjaGVkIGZyb20gdGhlIERPTT8KKyAgICBkaXNjb25uZWN0KCk7CisKKyAgICBIVE1MRWxlbWVu
dDo6ZGV0YWNoKCk7Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6OnNldFR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQoreworICAgIERldmljZVR5cGUgbV9uZXdUeXBlKHR5cGUpOworICAgIGlm
IChtX25ld1R5cGUuaWQoKSAhPSBtX3R5cGUuaWQoKSkKKyAgICAgICAgZGlzY29ubmVjdCgpOwor
CisgICAgbV90eXBlID0gbV9uZXdUeXBlOworfQorCitQYXNzUmVmUHRyPFN0cmVhbT4gSFRNTERl
dmljZUVsZW1lbnQ6OmRhdGEoKQoreworICAgIC8vIEpTIGJpbmRpbmcgc2hvdWxkIG1ha2UgdGhp
cyBhc3NlcnRpb24gYWx3YXlzIHRydWUuCisgICAgQVNTRVJUKG1fY29ubmVjdGlvbi5zdGF0ZSgp
ID09IERldmljZUNvbm5lY3Rpb246OkNvbm5lY3RlZCk7CisgICAgcmV0dXJuIFN0cmVhbTo6Y3Jl
YXRlKHRoaXMsIG1fY29ubmVjdGlvbi5zdHJlYW1VcmwoKSk7Cit9CisKK0hUTUxEZXZpY2VFbGVt
ZW50OjpEZXZpY2VFbGVtZW50U3RhdGUgSFRNTERldmljZUVsZW1lbnQ6OnN0YXRlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9zdGF0ZTsKK30KKworY29uc3QgRGV2aWNlVHlwZSYgSFRNTERldmlj
ZUVsZW1lbnQ6OmRldmljZVR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3R5cGU7Cit9CisK
K2NvbnN0IERldmljZUNvbm5lY3Rpb24mIEhUTUxEZXZpY2VFbGVtZW50Ojpjb25uZWN0aW9uKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uOworfQorCit2b2lkIEhUTUxEZXZpY2VF
bGVtZW50OjpzZXRTdGF0ZShEZXZpY2VFbGVtZW50U3RhdGUgc3RhdGUpCit7CisgICAgaWYgKG1f
c3RhdGUgIT0gc3RhdGUpIHsKKyAgICAgICAgbV9zdGF0ZSA9IHN0YXRlOworCisgICAgICAgIGlm
IChyZW5kZXJlcigpKQorICAgICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQo
KTsKKworICAgICAgICBzaGFkb3dBbmNlc3Rvck5vZGUoKS0+cmVuZGVyZXIoKS0+cmVwYWludCgp
OworICAgIH0KK30KKwordm9pZCBIVE1MRGV2aWNlRWxlbWVudDo6ZGlzY29ubmVjdCgpCit7Cisg
ICAgaWYgKG1fc3RhdGUgPT0gQ29ubmVjdGVkKSB7CisgICAgICAgIEFTU0VSVChtX2Nvbm5lY3Rp
b24uc3RhdGUoKSA9PSBEZXZpY2VDb25uZWN0aW9uOjpDb25uZWN0ZWQpOworICAgICAgICBkZXZp
Y2VDb250cm9sbGVyKCktPmRpc2Nvbm5lY3REZXZpY2UobV9jb25uZWN0aW9uKTsKKyAgICAgICAg
c2V0U3RhdGUoRGlzY29ubmVjdGluZyk7CisgICAgfQorfQorCitEZXZpY2VDb250cm9sbGVyKiBI
VE1MRGV2aWNlRWxlbWVudDo6ZGV2aWNlQ29udHJvbGxlcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGRvY3VtZW50KCktPnBhZ2UoKSA/IGRvY3VtZW50KCktPnBhZ2UoKS0+ZGV2aWNlQ29udHJvbGxl
cigpIDogMDsKK30KKwordm9pZCBIVE1MRGV2aWNlRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCogZXZlbnQpCit7CisgICAgLy8gSWdub3JlIGV2ZW50cyBmcm9tIGludmFsaWQgZGV2
aWNlIGVsZW1lbnRzLgorICAgIGlmICghbV90eXBlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gRm9yIHNlY3VyaXR5IHJlYXNvbnMsIG9ubHkgYWxsb3cgY2xpY2tzIGRpcmVj
dGx5IGNvbWluZyBmcm9tIHRoZSB1c2VyLgorICAgIGlmICghZXZlbnQtPmZyb21Vc2VyR2VzdHVy
ZSgpKSB7CisgICAgICAgIEhUTUxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5jbGlja0V2ZW50KSB7CisgICAgICAgIHN3aXRjaCAobV9zdGF0ZSkgeworICAgICAg
ICBjYXNlIE5vdENvbm5lY3RlZDoKKyAgICAgICAgICAgIEFTU0VSVChtX2Nvbm5lY3Rpb24uc3Rh
dGUoKSAhPSBEZXZpY2VDb25uZWN0aW9uOjpDb25uZWN0ZWQpOworICAgICAgICAgICAgaWYgKGRl
dmljZUNvbnRyb2xsZXIoKS0+Y29ubmVjdERldmljZShtX2xpc3RlbmVySWQsIG1fdHlwZSwgZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpCisgICAgICAgICAgICAgICAgc2V0U3RhdGUoQ29u
bmVjdGluZyk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIENvbm5lY3RlZDoK
KyAgICAgICAgICAgIGRpc2Nvbm5lY3QoKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg
IGNhc2UgQ29ubmVjdGluZzoKKyAgICAgICAgY2FzZSBEaXNjb25uZWN0aW5nOgorICAgICAgICAg
ICAgLy8gTm90aGluZyB0byBkbyBoZXJlLCB3YWl0IGZvciBzb21lIGNvbm5lY3Rpb24gdXBkYXRl
IG5vdGlmaWNhdGlvbi4KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAvLyBJbnZhbGlkIGRldmljZSBlbGVtZW50IHN0YXRlIHZhbHVlLgorICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICAgICAgZXZlbnQtPnNl
dERlZmF1bHRIYW5kbGVkKCk7CisgICAgfQorCisgICAgaWYgKCFldmVudC0+ZGVmYXVsdEhhbmRs
ZWQoKSkKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwor
fQorCit2b2lkIEhUTUxEZXZpY2VFbGVtZW50OjpkZXZpY2VDb25uZWN0aW9uVXBkYXRlKGNvbnN0
IERldmljZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgbV9jb25uZWN0aW9uID0gY29u
bmVjdGlvbjsKKworICAgIHN3aXRjaCAoY29ubmVjdGlvbi5zdGF0ZSgpKSB7CisgICAgY2FzZSBE
ZXZpY2VDb25uZWN0aW9uOjpOb0Nvbm5lY3Rpb246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRGV2aWNlQ29ubmVjdGlvbjo6Q29ubmVj
dGVkOgorICAgICAgICBBU1NFUlQobV9zdGF0ZSA9PSBDb25uZWN0aW5nKTsKKyAgICAgICAgc2V0
U3RhdGUoQ29ubmVjdGVkKTsKKworICAgICAgICAvLyBGSVhNRTogZGlzcGF0Y2hpbmcgdGhlIGV2
ZW50IG9ubHkgd2hlbiBhIGRldmljZSBpcyBjb25uZWN0ZWQgaWdub3Jpbmcgb3RoZXIgc2l0dWF0
aW9ucy4KKyAgICAgICAgLy8gICAgICAgIFVwZGF0ZSB0aGlzIGFzIHRoZSBzcGVjaWZpY2F0aW9u
IGV2b2x2ZXMgKHNlZSBmYWlsZWQgY2FzZSBiZWxvdykuCisgICAgICAgIGRpc3BhdGNoRXZlbnQo
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIHRydWUsIGZhbHNlKSk7Cisg
ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBEZXZpY2VDb25uZWN0aW9uOjpDYW5jZWxsZWQ6Cisg
ICAgICAgIEFTU0VSVChtX3N0YXRlID09IENvbm5lY3RpbmcpOworICAgICAgICBzZXRTdGF0ZShO
b3RDb25uZWN0ZWQpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRGV2aWNlQ29ubmVjdGlv
bjo6RmFpbGVkOgorICAgICAgICBBU1NFUlQobV9zdGF0ZSAhPSBOb3RDb25uZWN0ZWQpOworICAg
ICAgICAvLyBGSVhNRTogaG93IHNob3VsZCB3ZSByZXBvcnQgdGhlIGVycm9yIHRvIHRoZSB1c2Vy
PyBTcGVjaWZpY2F0aW9uIGRvZXNuJ3QgbWVudGlvbiB0aGlzLgorICAgICAgICBicmVhazsKKwor
ICAgIGNhc2UgRGV2aWNlQ29ubmVjdGlvbjo6Q2xvc2VkOgorICAgICAgICBBU1NFUlQobV9zdGF0
ZSA9PSBDb25uZWN0ZWQgfHwgbV9zdGF0ZSA9PSBEaXNjb25uZWN0aW5nKTsKKyAgICAgICAgc2V0
U3RhdGUoTm90Q29ubmVjdGVkKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAg
ICAgICAvLyBJbnZhbGlkIGRldmljZSBjb25uZWN0aW9uIHN0YXRlIHZhbHVlLgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKK30KKworYm9vbCBIVE1MRGV2aWNlRWxlbWVu
dDo6cmVjb3JkU3RyZWFtVG9GaWxlKCkKK3sKKyAgICBpZiAobV9zdGF0ZSA9PSBDb25uZWN0ZWQp
IHsKKyAgICAgICAgQVNTRVJUKG1fY29ubmVjdGlvbi5zdGF0ZSgpID09IERldmljZUNvbm5lY3Rp
b246OkNvbm5lY3RlZCk7CisgICAgICAgIGRldmljZUNvbnRyb2xsZXIoKS0+cmVjb3JkU3RyZWFt
VG9GaWxlKG1fY29ubmVjdGlvbik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgSFRNTERldmljZUVsZW1lbnQ6OnN0b3BSZWNvcmRpbmdT
dHJlYW0oY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgICBpZiAobV9zdGF0ZSA9PSBDb25uZWN0
ZWQpIHsKKyAgICAgICAgQVNTRVJUKG1fY29ubmVjdGlvbi5zdGF0ZSgpID09IERldmljZUNvbm5l
Y3Rpb246OkNvbm5lY3RlZCk7CisgICAgICAgIGRldmljZUNvbnRyb2xsZXIoKS0+c3RvcFJlY29y
ZGluZ1N0cmVhbShtX2Nvbm5lY3Rpb24sIHBhdGgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitIVE1MRGV2aWNlRWxlbWVudCogdG9IVE1MRGV2
aWNlRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmIChlbGVtZW50LT5pc0hUTUxF
bGVtZW50KCkgJiYgZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmRldmljZVRhZykpCisg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MRGV2aWNlRWxlbWVudCo+KGVsZW1lbnQpOwor
CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERldmljZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1l
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMzg2YjNmNTE3NDAyODMwNTc2YjViMDg1YzE0N2MwMTIyMWE3M2Zi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV2aWNlRWxlbWVu
dC5oCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MRGV2aWNlRWxlbWVudF9oCisjZGVmaW5l
IEhUTUxEZXZpY2VFbGVtZW50X2gKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2lu
Y2x1ZGUgIkRldmljZUNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJEZXZpY2VDb25uZWN0aW9uTGlz
dGVuZXIuaCIKKyNpbmNsdWRlICJEZXZpY2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEVsZW1l
bnQuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlQ29udHJvbGxlcjsKK2Ns
YXNzIERldmljZVR5cGU7CitjbGFzcyBTdHJlYW07CisKK2NsYXNzIEhUTUxEZXZpY2VFbGVtZW50
IDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgRGV2aWNlRWxlbWVudCwgcHVibGljIERldmlj
ZUNvbm5lY3Rpb25MaXN0ZW5lciB7CitwdWJsaWM6CisgICAgZW51bSBEZXZpY2VFbGVtZW50U3Rh
dGUgeworICAgICAgICBOb3RDb25uZWN0ZWQgPSAwLAorICAgICAgICBDb25uZWN0aW5nLAorICAg
ICAgICBDb25uZWN0ZWQsCisgICAgICAgIERpc2Nvbm5lY3RpbmcKKyAgICB9OworCisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SFRNTERldmljZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5IVE1MRGV2aWNlRWxlbWVudCgpOworCisg
ICAgdmlydHVhbCB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFN0cmVhbT4gZGF0YSgpOworCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOworICAg
IHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChSZW5kZXJTdHlsZSopOworICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFw
cGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOworCisgICAgRGV2aWNlRWxlbWVudFN0YXRlIHN0YXRl
KCkgY29uc3Q7CisgICAgRGV2aWNlQ29udHJvbGxlciogZGV2aWNlQ29udHJvbGxlcigpIGNvbnN0
OworICAgIGNvbnN0IERldmljZVR5cGUmIGRldmljZVR5cGUoKSBjb25zdDsKKyAgICBjb25zdCBE
ZXZpY2VDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgY29uc3Q7CisKKyAgICAvLyBEZXZpY2VDb25u
ZWN0aW9uTGlzdGVuZXIgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIGRldmljZUNv
bm5lY3Rpb25VcGRhdGUoY29uc3QgRGV2aWNlQ29ubmVjdGlvbiYpOworCisgICAgLy8gTWVkaWEg
c2VydmljZSByZWxhdGVkIG1ldGhvZHMuCisgICAgYm9vbCByZWNvcmRTdHJlYW1Ub0ZpbGUoKTsK
KyAgICBib29sIHN0b3BSZWNvcmRpbmdTdHJlYW0oY29uc3QgU3RyaW5nJiBwYXRoKTsKKworcHJv
dGVjdGVkOgorICAgIEhUTUxEZXZpY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CisK
K3ByaXZhdGU6CisgICAgdm9pZCBzZXRTdGF0ZShEZXZpY2VFbGVtZW50U3RhdGUpOworICAgIHZv
aWQgZGlzY29ubmVjdCgpOworCisgICAgRGV2aWNlRWxlbWVudFN0YXRlIG1fc3RhdGU7CisgICAg
RGV2aWNlQ29ubmVjdGlvbiBtX2Nvbm5lY3Rpb247CisgICAgaW50IG1fbGlzdGVuZXJJZDsKK307
CisKK0hUTUxEZXZpY2VFbGVtZW50KiB0b0hUTUxEZXZpY2VFbGVtZW50KEVsZW1lbnQqKTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5U
KQorCisjZW5kaWYgLy8gSFRNTERldmljZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEZXZpY2VFbGVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGMwMTUxNGI4YjEyNDBiYTQxM2ZiNjEw
OTZiYzEzYjBhODBiY2M1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV2aWNlRWxlbWVudC5pZGwKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKworICAg
IGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPURFVklDRV9FTEVNRU5UCisgICAgXSBI
VE1MRGV2aWNlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyXSBET01PYmplY3QgZGF0YTsKKyAgICB9Owor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCA4M2Q0MWRlZjdkZTU1ZmEwMGZj
MWYwMzkxOTZmNjIzMzA2OGI5NDllLi4wY2Y4MzUxYmIyYTlkMTE0NWM5ODNmOWMxNzEzMDc4MDhj
YTY0MzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMzcsNiArMzcsNyBA
QCBkcm93IGludGVyZmFjZU5hbWU9SFRNTERhdGFHcmlkUm93RWxlbWVudCwgY29uZGl0aW9uYWw9
REFUQUdSSUQKIGRkIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGRlbCBpbnRlcmZhY2VOYW1l
PUhUTUxNb2RFbGVtZW50CiBkZXRhaWxzCitkZXZpY2UgaW50ZXJmYWNlTmFtZT1IVE1MRGV2aWNl
RWxlbWVudCwgY29uZGl0aW9uYWw9REVWSUNFX0VMRU1FTlQKIGRmbiBpbnRlcmZhY2VOYW1lPUhU
TUxFbGVtZW50CiBkaXIgaW50ZXJmYWNlTmFtZT1IVE1MRGlyZWN0b3J5RWxlbWVudAogZGl2CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMjZmZjZkNjBlZTYxZDExMjVjZDA0ZGM3N2U4
OTE3YTAzMjBmODU5NC4uOGNkZmI2YmJiNzA4MDVhNDVhOTA5YjJjZmU4MGI5Y2Y1MWZlYTk3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNDI3LDYgKzQyNyw3IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFHUklEXSBIVE1MRGF0
YUdyaWRFbGVtZW50Q29uc3RydWN0b3IgSFRNTERhdGFHcmlkRWxlbWVudDsKICAgICAgICAgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1EQVRBR1JJRF0gSFRNTERhdGFHcmlkQ2VsbEVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MRGF0YUdyaWRDZWxsRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIFtDb25k
aXRpb25hbD1EQVRBR1JJRF0gSFRNTERhdGFHcmlkQ29sRWxlbWVudENvbnN0cnVjdG9yIEhUTUxE
YXRhR3JpZENvbEVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REVWSUNF
X0VMRU1FTlRdIEhUTUxEZXZpY2VFbGVtZW50Q29uc3RydWN0b3IgSFRNTERldmljZUVsZW1lbnQ7
CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MRExpc3RFbGVtZW50Q29uc3RydWN0b3IgSFRNTERMaXN0
RWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxEaXJlY3RvcnlFbGVtZW50Q29uc3RydWN0
b3IgSFRNTERpcmVjdG9yeUVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MRGl2RWxlbWVu
dENvbnN0cnVjdG9yIEhUTUxEaXZFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9EZXZpY2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2Y0NzQzMjY5YTkyYzcyNWFiNWZkYmY2ZTNmZmRkNmRlN2Y3MzFmMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmgKQEAgLTAs
MCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgRGV2aWNlQ2xpZW50X2gKKyNkZWZpbmUgRGV2aWNlQ2xpZW50X2gKKworI2lm
IEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlQ29ubmVjdGlvbjsKK2NsYXNzIERldmlj
ZUxpc3RlbmVyOworY2xhc3MgRGV2aWNlVHlwZTsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworCitj
bGFzcyBEZXZpY2VDbGllbnQgeworcHVibGljOgorICAgIC8vIC0tLS0tIENvbm5lY3Rpb24tcmVs
YXRlZCBtZXRob2RzIC0tLS0tIC8vCisKKyAgICAvLyBSZWdpc3RlciB0aGUgbGlzdGVuZXIgZm9y
IHJlY2VpdmluZyBjYWxsYmFja3MuIFNob3VsZCBzZXQgdG8gbnVsbCB3aGVuIG5vdCByZXF1aXJl
ZCBhbnltb3JlLiBObyBvd25lcnNoaXAgaXMgdGFrZW4uCisgICAgLy8gVXN1YWxseSB0aGUgbGlz
dGVuZXIgc2hvdWxkIGJlIHRoZSBwYWdlIERldmljZUNvbnRyb2xsZXIgb2JqZWN0LgorICAgIHZp
cnR1YWwgdm9pZCBzZXRMaXN0ZW5lcihEZXZpY2VMaXN0ZW5lciopID0gMDsKKworICAgIC8vIFJl
cXVlc3QgZGV2aWNlIHNlbGVjdGlvbiBhbmQgY29ubmVjdGlvbiB0byB0aGUgY2xpZW50LgorICAg
IHZpcnR1YWwgYm9vbCBjb25uZWN0RGV2aWNlKGludCBsaXN0ZW5lcklkLCBjb25zdCBEZXZpY2VU
eXBlJiwgU2VjdXJpdHlPcmlnaW4qKSA9IDA7CisKKyAgICAvLyBDbG9zZSBhIGN1cnJlbnRseSBl
bmFibGVkIGRldmljZSBjb25uZWN0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RGV2
aWNlKGNvbnN0IERldmljZUNvbm5lY3Rpb24mKSA9IDA7CisKKyAgICAvLyAtLS0tLSBNZWRpYS1y
ZWxhdGVkIG1ldGhvZHMgLS0tLS0gLy8KKworICAgIC8vIFJlcXVlc3QgdG8gc3RhcnQgcmVjb3Jk
aW5nIGFuIGV4aXN0aW5nIHN0cmVhbSB0byBhIGZpbGUuCisgICAgdmlydHVhbCBib29sIHJlY29y
ZFN0cmVhbVRvRmlsZShjb25zdCBEZXZpY2VDb25uZWN0aW9uJikgPSAwOworCisgICAgLy8gU3Rv
cCByZWNvcmRpbmcgYSBzdHJlYW0gdG8gYSBmaWxlLgorICAgIHZpcnR1YWwgdm9pZCBzdG9wUmVj
b3JkaW5nU3RyZWFtKGNvbnN0IERldmljZUNvbm5lY3Rpb24mLCBjb25zdCBTdHJpbmcmIHBhdGgp
ID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfkRldmljZUNsaWVudCgpIHsgfQorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVN
RU5UKQorCisjZW5kaWYgLy8gRGV2aWNlQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGV2aWNlQ29ubmVjdGlvbkxpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RldmljZUNvbm5lY3Rpb25MaXN0ZW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlOWU2NGMxZTE3YjI5Njkz
NzE4OGFhNzU5MzZjMDAyNTZiNDBiMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RldmljZUNvbm5lY3Rpb25MaXN0ZW5lci5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERldmlj
ZUNvbm5lY3Rpb25MaXN0ZW5lcl9oCisjZGVmaW5lIERldmljZUNvbm5lY3Rpb25MaXN0ZW5lcl9o
CisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRGV2aWNlQ29ubmVjdGlvbjsKKworLy8gQ29ubmVjdGlvbiBvcmllbnRlZCBpbmNvbWlu
ZyBtZXNzYWdlcy4KK2NsYXNzIERldmljZUNvbm5lY3Rpb25MaXN0ZW5lciB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+RGV2aWNlQ29ubmVjdGlvbkxpc3RlbmVyKCkgeyB9CisKKyAgICAvLyBDb25u
ZWN0aW9uIHN0YXR1cyB1cGRhdGUuIENoZWNrIERldmljZUNvbm5lY3Rpb25TdGF0ZSBmb3IgZGV0
YWlscy4KKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlQ29ubmVjdGlvblVwZGF0ZShjb25zdCBEZXZp
Y2VDb25uZWN0aW9uJikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlQ29ubmVjdGlv
bkxpc3RlbmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAxOTAwNDY0NDAzM2FkMjEwYTAwMzYzMDkwZTJiOWM3OWJlNjE1MWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCkBAIC0w
LDAgKzEsMTUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZUNvbnRyb2xs
ZXIuaCIKKworI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgorI2luY2x1ZGUgIkRldmljZUNvbm5l
Y3Rpb24uaCIKKyNpbmNsdWRlICJEZXZpY2VUeXBlLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitEZXZpY2VDb250cm9sbGVyOjpEZXZpY2VDb250cm9sbGVyKERldmljZUNsaWVudCogY2xp
ZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9uZXh0TGlzdGVuZXJJZCgxKQor
eworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgYSBXZWJLaXQgcGFnZSBjbGllbnQuCisgICAgLy8g
bV9jbGllbnQtPnNldExpc3RlbmVyKHRoaXMpOworfQorCitEZXZpY2VDb250cm9sbGVyOjp+RGV2
aWNlQ29udHJvbGxlcigpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudCBhIFdlYktpdCBwYWdl
IGNsaWVudC4KKyAgICAvLyBtX2NsaWVudC0+c2V0TGlzdGVuZXIoMCk7Cit9CisKK2ludCBEZXZp
Y2VDb250cm9sbGVyOjpyZWdpc3Rlckxpc3RlbmVyKERldmljZUNvbm5lY3Rpb25MaXN0ZW5lciog
bGlzdGVuZXIpCit7CisjaWYgZGVmaW5lZChERUJVRykKKyAgICAvLyBDaGVjayBpZiBhbHJlYWR5
IHByZXNlbnQuCisgICAgZm9yIChIYXNoTWFwPGludCwgRGV2aWNlQ29ubmVjdGlvbkxpc3RlbmVy
Kj46Oml0ZXJhdG9yIGl0ID0gbV9jb25uZWN0aW9uTGlzdGVuZXJzLmJlZ2luKCk7IGl0ICE9IG1f
Y29ubmVjdGlvbkxpc3RlbmVycy5lbmQoKTsgKytpdCkKKyAgICAgIEFTU0VSVChpdC0+c2Vjb25k
ICE9IGxpc3RlbmVyKTsKKyNlbmRpZgorCisgICAgbV9saXN0ZW5lclR5cGUuYWRkKG1fbmV4dExp
c3RlbmVySWQsIENvbm5lY3Rpb24pOworICAgIG1fY29ubmVjdGlvbkxpc3RlbmVycy5hZGQobV9u
ZXh0TGlzdGVuZXJJZCwgbGlzdGVuZXIpOworICAgIHJldHVybiBtX25leHRMaXN0ZW5lcklkKys7
Cit9CisKK2ludCBEZXZpY2VDb250cm9sbGVyOjpyZWdpc3Rlckxpc3RlbmVyKERldmljZU1lZGlh
TGlzdGVuZXIqIGxpc3RlbmVyKQoreworI2lmIGRlZmluZWQoREVCVUcpCisgICAgLy8gQ2hlY2sg
aWYgYWxyZWFkeSBwcmVzZW50LgorICAgIGZvciAoSGFzaE1hcDxpbnQsIERldmljZU1lZGlhTGlz
dGVuZXIqPjo6aXRlcmF0b3IgaXQgPSBtX21lZGlhTGlzdGVuZXJzLmJlZ2luKCk7IGl0ICE9IG1f
bWVkaWFMaXN0ZW5lcnMuZW5kKCk7ICsraXQpCisgICAgICBBU1NFUlQoaXQtPnNlY29uZCAhPSBs
aXN0ZW5lcik7CisjZW5kaWYKKworICAgIG1fbGlzdGVuZXJUeXBlLmFkZChtX25leHRMaXN0ZW5l
cklkLCBNZWRpYSk7CisgICAgbV9tZWRpYUxpc3RlbmVycy5hZGQobV9uZXh0TGlzdGVuZXJJZCwg
bGlzdGVuZXIpOworICAgIHJldHVybiBtX25leHRMaXN0ZW5lcklkKys7Cit9CisKK3ZvaWQgRGV2
aWNlQ29udHJvbGxlcjo6dW5yZWdpc3Rlckxpc3RlbmVyKGludCBsaXN0ZW5lcklkKQoreworICAg
IGlmICghbV9saXN0ZW5lclR5cGUuY29udGFpbnMobGlzdGVuZXJJZCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIExpc3RlbmVyVHlwZSB0eXBlID0gbV9saXN0ZW5lclR5cGUuZ2V0KGxpc3RlbmVy
SWQpOworICAgIG1fbGlzdGVuZXJUeXBlLnJlbW92ZShsaXN0ZW5lcklkKTsKKworICAgIHN3aXRj
aCAodHlwZSkgeworICAgIGNhc2UgQ29ubmVjdGlvbjoKKyAgICAgICAgaWYgKG1fY29ubmVjdGlv
bkxpc3RlbmVycy5jb250YWlucyhsaXN0ZW5lcklkKSkKKyAgICAgICAgICAgIG1fY29ubmVjdGlv
bkxpc3RlbmVycy5yZW1vdmUobGlzdGVuZXJJZCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2Fz
ZSBNZWRpYToKKyAgICAgICAgaWYgKG1fbWVkaWFMaXN0ZW5lcnMuY29udGFpbnMobGlzdGVuZXJJ
ZCkpCisgICAgICAgICAgICBtX21lZGlhTGlzdGVuZXJzLnJlbW92ZShsaXN0ZW5lcklkKTsKKyAg
ICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICB9Cit9CisKK2Jvb2wgRGV2aWNlQ29udHJvbGxlcjo6Y29ubmVjdERldmljZShpbnQg
bGlzdGVuZXJJZCwgY29uc3QgRGV2aWNlVHlwZSYgdHlwZSwgU2VjdXJpdHlPcmlnaW4qIG9yaWdp
bikKK3sKKyAgICBBU1NFUlQobV9jb25uZWN0aW9uTGlzdGVuZXJzLmNvbnRhaW5zKGxpc3RlbmVy
SWQpKTsKKyAgICBBU1NFUlQodHlwZS5pc1ZhbGlkKCkpOworICAgIHJldHVybiBtX2NsaWVudC0+
Y29ubmVjdERldmljZShsaXN0ZW5lcklkLCB0eXBlLCBvcmlnaW4pOworfQorCit2b2lkIERldmlj
ZUNvbnRyb2xsZXI6OmRpc2Nvbm5lY3REZXZpY2UoY29uc3QgRGV2aWNlQ29ubmVjdGlvbiYgY29u
bmVjdGlvbikKK3sKKyAgICBBU1NFUlQobV9jb25uZWN0aW9uTGlzdGVuZXJzLmNvbnRhaW5zKGNv
bm5lY3Rpb24ubGlzdGVuZXJJZCgpKSk7CisgICAgcmV0dXJuIG1fY2xpZW50LT5kaXNjb25uZWN0
RGV2aWNlKGNvbm5lY3Rpb24pOworfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmRldmljZUNv
bm5lY3Rpb25VcGRhdGUoY29uc3QgRGV2aWNlQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAg
ICAvLyBEb24ndCBhc3NlcnQgaWYgbm90IHByZXNlbnQgYXMgdGhlIGVsZW1lbnQgbWlnaHQgaGF2
ZSBiZWVuIHJlbW92ZWQgYnkgdGhlIHBhZ2Ugd2hpbGUKKyAgICAvLyB0aGlzIGV2ZW50IHdhcyBv
biB0aGUgd2F5LgorICAgIGlmIChtX2Nvbm5lY3Rpb25MaXN0ZW5lcnMuY29udGFpbnMoY29ubmVj
dGlvbi5saXN0ZW5lcklkKCkpKQorICAgICAgICBtX2Nvbm5lY3Rpb25MaXN0ZW5lcnMuZ2V0KGNv
bm5lY3Rpb24ubGlzdGVuZXJJZCgpKS0+ZGV2aWNlQ29ubmVjdGlvblVwZGF0ZShjb25uZWN0aW9u
KTsKK30KKworYm9vbCBEZXZpY2VDb250cm9sbGVyOjpyZWNvcmRTdHJlYW1Ub0ZpbGUoY29uc3Qg
RGV2aWNlQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlQobV9tZWRpYUxpc3Rl
bmVycy5jb250YWlucyhjb25uZWN0aW9uLmxpc3RlbmVySWQoKSkpOworICAgIHJldHVybiBtX2Ns
aWVudC0+cmVjb3JkU3RyZWFtVG9GaWxlKGNvbm5lY3Rpb24pOworfQorCit2b2lkIERldmljZUNv
bnRyb2xsZXI6OnN0b3BSZWNvcmRpbmdTdHJlYW0oY29uc3QgRGV2aWNlQ29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIEFTU0VSVChtX21lZGlhTGlzdGVu
ZXJzLmNvbnRhaW5zKGNvbm5lY3Rpb24ubGlzdGVuZXJJZCgpKSk7CisgICAgcmV0dXJuIG1fY2xp
ZW50LT5zdG9wUmVjb3JkaW5nU3RyZWFtKGNvbm5lY3Rpb24sIHBhdGgpOworfQorCit2b2lkIERl
dmljZUNvbnRyb2xsZXI6OnN0cmVhbVJlY29yZGluZ1N0YXJ0ZWQoaW50IGxpc3RlbmVySWQsIGNv
bnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICAvLyBEb24ndCBhc3NlcnQgaWYgbm90IHByZXNlbnQg
YXMgdGhlIGVsZW1lbnQgbWlnaHQgaGF2ZSBiZWVuIHJlbW92ZWQgYnkgdGhlIHBhZ2Ugd2hpbGUK
KyAgICAvLyB0aGlzIGV2ZW50IHdhcyBvbiB0aGUgd2F5LgorICAgIGlmIChtX21lZGlhTGlzdGVu
ZXJzLmNvbnRhaW5zKGxpc3RlbmVySWQpKQorICAgICAgICBtX21lZGlhTGlzdGVuZXJzLmdldChs
aXN0ZW5lcklkKS0+c3RyZWFtUmVjb3JkaW5nU3RhcnRlZChsaXN0ZW5lcklkLCBwYXRoKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVN
RU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDYz
MGE2MzMyNjNhNzFiYTU2ODBhNzU4YjdkMTRlYjRlMTM1NGU3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKQEAgLTAsMCArMSw5NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgRGV2aWNlQ29udHJvbGxlcl9oCisjZGVmaW5lIERldmljZUNvbnRyb2xsZXJfaAorCisj
aWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2aWNlTGlzdGVuZXIuaCIK
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RGV2aWNlQ2xpZW50OworY2xhc3MgRGV2aWNlQ29ubmVjdGlvbjsKK2NsYXNzIERldmljZVR5cGU7
CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKKworY2xhc3MgRGV2aWNlQ29udHJvbGxlciA6IHB1Ymxp
YyBEZXZpY2VMaXN0ZW5lciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV2aWNlQ29udHJv
bGxlcik7CitwdWJsaWM6CisgICAgRGV2aWNlQ29udHJvbGxlcihEZXZpY2VDbGllbnQqKTsKKyAg
ICB2aXJ0dWFsIH5EZXZpY2VDb250cm9sbGVyKCk7CisKKyAgICAvLyBHZW5lcmF0ZXMgYSB1bmlx
dWUgSUQgZm9yIHRoZSBnaXZlbiBsaXN0ZW5lciB0byBiZSB1c2VkIGZvciBkZXZpY2UgcmVxdWVz
dHMuCisgICAgLy8gVGhpcyBzaG91bGQgYmUgdGhlIGZpcnN0IGNhbGwgbWFkZSBieSBsaXN0ZW5l
cnMgYmVmb3JlIGFueXRoaW5nIGVsc2UuCisgICAgaW50IHJlZ2lzdGVyTGlzdGVuZXIoRGV2aWNl
Q29ubmVjdGlvbkxpc3RlbmVyKik7CisgICAgaW50IHJlZ2lzdGVyTGlzdGVuZXIoRGV2aWNlTWVk
aWFMaXN0ZW5lciopOworCisgICAgLy8gSW52b2tlZCB3aGVuIHRoZSBsaXN0ZW5lciBpcyBkb25l
IHdpdGggcmVjb3JkaW5nIG9yIGdldHRpbmcgZGVzdHJveWVkLgorICAgIC8vIEZhaWx1cmUgdG8g
dW5yZWdpc3RlciBtYXkgcmVzdWx0IGluIGNyYXNoZXMgaWYgdGhlcmUgd2VyZSBhbnkgcGVuZGlu
ZyBkZXZpY2UgZXZlbnRzLgorICAgIHZvaWQgdW5yZWdpc3Rlckxpc3RlbmVyKGludCk7CisKKyAg
ICAvLyBNZXRob2RzIGludm9rZWQgYnkgdGhlIGNvbm5lY3Rpb24gbGlzdGVuZXJzLgorICAgIGJv
b2wgY29ubmVjdERldmljZShpbnQgbGlzdGVuZXJJZCwgY29uc3QgRGV2aWNlVHlwZSYsIFNlY3Vy
aXR5T3JpZ2luKik7CisgICAgdm9pZCBkaXNjb25uZWN0RGV2aWNlKGNvbnN0IERldmljZUNvbm5l
Y3Rpb24mKTsKKworICAgIC8vIERldmljZUNvbm5lY3Rpb25MaXN0ZW5lciBpbXBsZW1lbnRhdGlv
bi4KKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlQ29ubmVjdGlvblVwZGF0ZShjb25zdCBEZXZpY2VD
b25uZWN0aW9uJik7CisKKyAgICAvLyBNZXRob2RzIGludm9rZWQgYnkgdGhlIG1lZGlhIGxpc3Rl
bmVycy4KKyAgICBib29sIHJlY29yZFN0cmVhbVRvRmlsZShjb25zdCBEZXZpY2VDb25uZWN0aW9u
Jik7CisgICAgdm9pZCBzdG9wUmVjb3JkaW5nU3RyZWFtKGNvbnN0IERldmljZUNvbm5lY3Rpb24m
LCBjb25zdCBTdHJpbmcmIHBhdGgpOworCisgICAgLy8gRGV2aWNlTWVkaWFMaXN0ZW5lciBpbXBs
ZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtUmVjb3JkaW5nU3RhcnRlZChpbnQg
bGlzdGVuZXJJZCwgY29uc3QgU3RyaW5nJiBwYXRoKTsKKworcHJpdmF0ZToKKyAgICBlbnVtIExp
c3RlbmVyVHlwZSB7CisgICAgICAgIENvbm5lY3Rpb24sCisgICAgICAgIE1lZGlhCisgICAgfTsK
KworICAgIERldmljZUNsaWVudCogbV9jbGllbnQ7CisgICAgSGFzaE1hcDxpbnQsIExpc3RlbmVy
VHlwZT4gbV9saXN0ZW5lclR5cGU7CisgICAgSGFzaE1hcDxpbnQsIERldmljZUNvbm5lY3Rpb25M
aXN0ZW5lcio+IG1fY29ubmVjdGlvbkxpc3RlbmVyczsKKyAgICBIYXNoTWFwPGludCwgRGV2aWNl
TWVkaWFMaXN0ZW5lcio+IG1fbWVkaWFMaXN0ZW5lcnM7CisgICAgaW50IG1fbmV4dExpc3RlbmVy
SWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVW
SUNFX0VMRU1FTlQpCisKKyNlbmRpZiAvLyBEZXZpY2VDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlTGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGV2aWNlTGlzdGVuZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjQxNGRjY2Q4M2ZhYWZmNTBjZmFjOTg3
MTc2YzgzZDI5OTdlMDU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERldmljZUxpc3RlbmVyX2gKKyNkZWZp
bmUgRGV2aWNlTGlzdGVuZXJfaAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5j
bHVkZSAiRGV2aWNlQ29ubmVjdGlvbkxpc3RlbmVyLmgiCisjaW5jbHVkZSAiRGV2aWNlTWVkaWFM
aXN0ZW5lci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoaXMgaW50ZXJmYWNlIGNv
bXBvc2VzIHRoZSBkaWZmZXJlbnQga2luZHMgb2YgaW5jb21pbmcgbWVzc2FnZXMgc28gdGhhdCB0
aGV5IGNhbgorLy8gYmUgaW1wbGVtZW50ZWQgYnkgYm90aCB0aGUgRGV2aWNlQ29udHJvbGxlciBh
bmQgdGhlIERldmljZUNsaWVudE1vY2suCitjbGFzcyBEZXZpY2VMaXN0ZW5lciA6IHB1YmxpYyBE
ZXZpY2VDb25uZWN0aW9uTGlzdGVuZXIsIHB1YmxpYyBEZXZpY2VNZWRpYUxpc3RlbmVyIHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5EZXZpY2VMaXN0ZW5lcigpIHsgfQorfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5k
aWYgLy8gRGV2aWNlTGlzdGVuZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VNZWRpYUxpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZU1lZGlhTGlz
dGVuZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zZGQ4ODM1ZTIyZjZmYWZkMDQ3ZGRjNzM2ZWNiMjI5YTdkYzFj
MjUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VNZWRpYUxp
c3RlbmVyLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNlTWVkaWFMaXN0ZW5lcl9oCisjZGVmaW5l
IERldmljZU1lZGlhTGlzdGVuZXJfaAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBNZWRp
YSBzZXJ2aWNlIG9yaWVudGVkIGluY29taW5nIG1lc3NhZ2VzLgorY2xhc3MgRGV2aWNlTWVkaWFM
aXN0ZW5lciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGV2aWNlTWVkaWFMaXN0ZW5lcigpIHsg
fQorCisgICAgLy8gTm90aWZpZXMgdGhhdCBhIHN0cmVhbSByZWNvcmRpbmcgaGFzIHN0YXJ0ZWQg
YW5kIGl0cyBiZWluZyByZWNvcmRlZCBpbnRvIGEgc3BlY2lmaWVkIGZpbGUuCisgICAgdmlydHVh
bCB2b2lkIHN0cmVhbVJlY29yZGluZ1N0YXJ0ZWQoaW50IGxpc3RlbmVySWQsIGNvbnN0IFN0cmlu
ZyYgcGF0aCkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlTWVkaWFMaXN0ZW5lcl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAppbmRleCBkMjE4NzRlYjUyNGQ2ZjNjMGY5ZTkzOGRhMjNhMDc0NmI0
ZmEzZTU2Li45MTRiYjVhZDcyNDBjZjM3NzY4YTZhMzRiMjM4Zjk4ZWI4MzhkMGQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVu
dC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgorI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgorI2luY2x1ZGUgIkRldmljZUNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJD
b250cm9sbGVyLmgiCkBAIC0xMzksNiArMTQxLDkgQEAgUGFnZTo6UGFnZShjb25zdCBQYWdlQ2xp
ZW50cyYgcGFnZUNsaWVudHMpCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAsIG1fc3Bl
ZWNoSW5wdXRDbGllbnQocGFnZUNsaWVudHMuc3BlZWNoSW5wdXRDbGllbnQpCiAjZW5kaWYKKyNp
ZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisgICAgLCBtX2RldmljZUNsaWVudChwYWdlQ2xpZW50
cy5kZXZpY2VDbGllbnQpCisjZW5kaWYKICAgICAsIG1fc2V0dGluZ3MoYWRvcHRQdHIobmV3IFNl
dHRpbmdzKHRoaXMpKSkKICAgICAsIG1fcHJvZ3Jlc3MoYWRvcHRQdHIobmV3IFByb2dyZXNzVHJh
Y2tlcikpCiAgICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihhZG9wdFB0cihuZXcgQmFja0Zv
cndhcmRDb250cm9sbGVyKHRoaXMsIHBhZ2VDbGllbnRzLmJhY2tGb3J3YXJkQ2xpZW50KSkpCkBA
IC0xNjQsNyArMTY5LDcgQEAgUGFnZTo6UGFnZShjb25zdCBQYWdlQ2xpZW50cyYgcGFnZUNsaWVu
dHMpCiB7CiAgICAgaWYgKCFhbGxQYWdlcykgewogICAgICAgICBhbGxQYWdlcyA9IG5ldyBIYXNo
U2V0PFBhZ2UqPjsKLSAgICAgICAgCisKICAgICAgICAgbmV0d29ya1N0YXRlTm90aWZpZXIoKS5z
ZXROZXR3b3JrU3RhdGVDaGFuZ2VkRnVuY3Rpb24obmV0d29ya1N0YXRlQ2hhbmdlZCk7CiAgICAg
fQogCkBAIC04NDIsNiArODQ3LDE2IEBAIFNwZWVjaElucHV0KiBQYWdlOjpzcGVlY2hJbnB1dCgp
CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKK0RldmljZUNvbnRyb2xs
ZXIqIFBhZ2U6OmRldmljZUNvbnRyb2xsZXIoKQoreworICAgIEFTU0VSVChtX2RldmljZUNsaWVu
dCk7CisgICAgaWYgKCFtX2RldmljZUNvbnRyb2xsZXIuZ2V0KCkpCisgICAgICAgIG1fZGV2aWNl
Q29udHJvbGxlci5zZXQobmV3IERldmljZUNvbnRyb2xsZXIobV9kZXZpY2VDbGllbnQpKTsKKyAg
ICByZXR1cm4gbV9kZXZpY2VDb250cm9sbGVyLmdldCgpOworfQorI2VuZGlmCisKIHZvaWQgUGFn
ZTo6ZG5zUHJlZmV0Y2hpbmdTdGF0ZUNoYW5nZWQoKQogewogICAgIGZvciAoRnJhbWUqIGZyYW1l
ID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4
dCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAppbmRleCAwNzFiMTQyN2Q2ZDc3Y2Y5MGJmZjVjMDA0Y2Q4MjlmZTMz
MzAwYTMyLi41NzBjY2VhMWJhZTAwMGI1M2RjZDkwMjIzNDI1ZmVhNDA4ODRhNzhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtNzUsNiArNzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3Mg
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q7CiAgICAgY2xhc3MgU3BlZWNoSW5wdXQ7CiAgICAgY2xh
c3MgU3BlZWNoSW5wdXRDbGllbnQ7CisgICAgY2xhc3MgRGV2aWNlQ2xpZW50OworICAgIGNsYXNz
IERldmljZUNvbnRyb2xsZXI7CiAKICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiAgICAgY2xhc3Mg
U3RvcmFnZU5hbWVzcGFjZTsKQEAgLTExMyw2ICsxMTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogZGV2aWNlT3JpZW50YXRpb25D
bGllbnQ7CiAgICAgICAgICAgICBSZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBiYWNrRm9yd2FyZENs
aWVudDsKICAgICAgICAgICAgIFNwZWVjaElucHV0Q2xpZW50KiBzcGVlY2hJbnB1dENsaWVudDsK
KyAgICAgICAgICAgIERldmljZUNsaWVudCogZGV2aWNlQ2xpZW50OwogICAgICAgICB9OwogCiAg
ICAgICAgIFBhZ2UoY29uc3QgUGFnZUNsaWVudHMmKTsKQEAgLTE4Miw2ICsxODUsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAgICAgU3BlZWNo
SW5wdXQqIHNwZWVjaElucHV0KCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQp
CisgICAgICAgIERldmljZUNvbnRyb2xsZXIqIGRldmljZUNvbnRyb2xsZXIoKTsKKyNlbmRpZgog
ICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdzLmdl
dCgpOyB9CiAgICAgICAgIFByb2dyZXNzVHJhY2tlciogcHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVy
biBtX3Byb2dyZXNzLmdldCgpOyB9CiAgICAgICAgIEJhY2tGb3J3YXJkQ29udHJvbGxlciogYmFj
a0ZvcndhcmQoKSBjb25zdCB7IHJldHVybiBtX2JhY2tGb3J3YXJkQ29udHJvbGxlci5nZXQoKTsg
fQpAQCAtMTk4LDcgKzIwNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBWaWV3
TW9kZSB2aWV3TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld01vZGU7IH0KICAgICAgICAgdm9p
ZCBzZXRWaWV3TW9kZShWaWV3TW9kZSk7Ci0gICAgICAgIAorCiAgICAgICAgIHZvaWQgc2V0VGFi
S2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKGJvb2wgYikgeyBtX3RhYktleUN5Y2xlc1Rocm91Z2hF
bGVtZW50cyA9IGI7IH0KICAgICAgICAgYm9vbCB0YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMo
KSBjb25zdCB7IHJldHVybiBtX3RhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50czsgfQogCkBAIC0z
MDQsNyArMzEwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShBQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpCiAgICAgICAgIFJlZlB0cjxTaGFyZWRHcmFwaGljc0NvbnRleHQzRD4gbV9z
aGFyZWRHcmFwaGljc0NvbnRleHQzRDsKICNlbmRpZgotICAgICAgICAKKwogI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCiAgICAgICAgIE93blB0cjxEcmFnQ29udHJvbGxlcj4gbV9kcmFnQ29udHJv
bGxlcjsKICNlbmRpZgpAQCAtMzI2LDkgKzMzMiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFNwZWVjaElucHV0Q2xpZW50KiBtX3NwZWVjaElucHV0Q2xpZW50OwogICAgICAgICBP
d25QdHI8U3BlZWNoSW5wdXQ+IG1fc3BlZWNoSW5wdXQ7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVW
SUNFX0VMRU1FTlQpCisgICAgICAgIERldmljZUNsaWVudCogbV9kZXZpY2VDbGllbnQ7CisgICAg
ICAgIE93blB0cjxEZXZpY2VDb250cm9sbGVyPiBtX2RldmljZUNvbnRyb2xsZXI7CisjZW5kaWYK
ICAgICAgICAgT3duUHRyPFNldHRpbmdzPiBtX3NldHRpbmdzOwogICAgICAgICBPd25QdHI8UHJv
Z3Jlc3NUcmFja2VyPiBtX3Byb2dyZXNzOwotICAgICAgICAKKwogICAgICAgICBPd25QdHI8QmFj
a0ZvcndhcmRDb250cm9sbGVyPiBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcjsKICAgICAgICAgUmVm
UHRyPEZyYW1lPiBtX21haW5GcmFtZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGhlbWVUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5o
CmluZGV4IGVjNDVjYjc5ZmYzMGU0MzQwMTM5MzdmMzJhZjNmZTkxNWRlMjJhYjMuLjZmZmJiY2Rj
MmMxZTg1M2U2NDFkNmE1NzRlZGRhM2U1MTdhMThjYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aGVtZVR5cGVzLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgdHlwZWRlZiB1bnNpZ25lZCBDb250cm9sU3Rh
dGVzOwogLy8gTXVzdCBmb2xsb3cgQ1NTVmFsdWVLZXl3b3Jkcy5pbiBvcmRlcgogZW51bSBDb250
cm9sUGFydCB7CiAgICAgTm9Db250cm9sUGFydCwgQ2hlY2tib3hQYXJ0LCBSYWRpb1BhcnQsIFB1
c2hCdXR0b25QYXJ0LCBTcXVhcmVCdXR0b25QYXJ0LCBCdXR0b25QYXJ0LAotICAgIEJ1dHRvbkJl
dmVsUGFydCwgRGVmYXVsdEJ1dHRvblBhcnQsIElubmVyU3BpbkJ1dHRvblBhcnQsIElucHV0U3Bl
ZWNoQnV0dG9uUGFydCwgTGlzdEJ1dHRvblBhcnQsIExpc3Rib3hQYXJ0LCBMaXN0SXRlbVBhcnQs
CisgICAgQnV0dG9uQmV2ZWxQYXJ0LCBEZWZhdWx0QnV0dG9uUGFydCwgSW5uZXJTcGluQnV0dG9u
UGFydCwgSW5wdXRTcGVlY2hCdXR0b25QYXJ0LCBEZXZpY2VCdXR0b25QYXJ0LCBMaXN0QnV0dG9u
UGFydCwgTGlzdGJveFBhcnQsIExpc3RJdGVtUGFydCwKICAgICBNZWRpYUZ1bGxzY3JlZW5CdXR0
b25QYXJ0LCBNZWRpYU11dGVCdXR0b25QYXJ0LCBNZWRpYVBsYXlCdXR0b25QYXJ0LCBNZWRpYVNl
ZWtCYWNrQnV0dG9uUGFydCwgCiAgICAgTWVkaWFTZWVrRm9yd2FyZEJ1dHRvblBhcnQsIE1lZGlh
UmV3aW5kQnV0dG9uUGFydCwgTWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uUGFydCwgTWVkaWFU
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvblBhcnQsCiAgICAgTWVkaWFTbGlkZXJQYXJ0LCBNZWRp
YVNsaWRlclRodW1iUGFydCwgTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXJQYXJ0LCBNZWRpYVZv
bHVtZVNsaWRlclBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0LApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzVlZTNmM2EyYzEzZmY1
M2E5YWQyMDc4MGRkYjYxOTgwZjY3ODNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckRldmljZS5jcHAKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyRGV2aWNlLmgiCisKKyNpbmNsdWRlICJIVE1MRGV2
aWNlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJS
ZW5kZXJCdXR0b24uaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlNoYWRv
d0VsZW1lbnQuaCIKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKwordXNpbmcgbmFtZXNw
YWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZW5kZXJEZXZpY2U6OlJlbmRlckRl
dmljZShIVE1MRGV2aWNlRWxlbWVudCogZGV2aWNlKQorICAgIDogUmVuZGVyQmxvY2soZGV2aWNl
KQoreworfQorCitSZW5kZXJEZXZpY2U6On5SZW5kZXJEZXZpY2UoKQoreworICAgIGlmIChtX2J1
dHRvbikKKyAgICAgICAgbV9idXR0b24tPmRldGFjaCgpOworfQorCit2b2lkIFJlbmRlckRldmlj
ZTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxl
KiBvbGRTdHlsZSkKK3sKKyAgICBSZW5kZXJCbG9jazo6c3R5bGVEaWRDaGFuZ2UoZGlmZiwgb2xk
U3R5bGUpOworICAgIGlmIChtX2J1dHRvbikKKyAgICAgICAgbV9idXR0b24tPnJlbmRlcmVyKCkt
PnNldFN0eWxlKGNyZWF0ZUJ1dHRvblN0eWxlKHN0eWxlKCkpKTsKKworICAgIHNldFJlcGxhY2Vk
KGlzSW5saW5lKCkpOworfQorCit2b2lkIFJlbmRlckRldmljZTo6dXBkYXRlRnJvbUVsZW1lbnQo
KQoreworICAgIEhUTUxEZXZpY2VFbGVtZW50KiBkZXZpY2VFbGVtZW50ID0gc3RhdGljX2Nhc3Q8
SFRNTERldmljZUVsZW1lbnQqPihub2RlKCkpOworCisgICAgaWYgKCFtX2J1dHRvbikgeworICAg
ICAgICBtX2J1dHRvbiA9IFNoYWRvd0lucHV0RWxlbWVudDo6Y3JlYXRlKGRldmljZUVsZW1lbnQp
OworICAgICAgICBtX2J1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CisgICAgICAgIFJlZlB0cjxS
ZW5kZXJTdHlsZT4gYnV0dG9uU3R5bGUgPSBjcmVhdGVCdXR0b25TdHlsZShzdHlsZSgpKTsKKyAg
ICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG1fYnV0dG9uLT5jcmVhdGVSZW5kZXJlcihy
ZW5kZXJBcmVuYSgpLCBidXR0b25TdHlsZS5nZXQoKSk7CisgICAgICAgIG1fYnV0dG9uLT5zZXRS
ZW5kZXJlcihyZW5kZXJlcik7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShidXR0b25TdHls
ZS5yZWxlYXNlKCkpOworICAgICAgICByZW5kZXJlci0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAg
ICAgICAgbV9idXR0b24tPnNldEF0dGFjaGVkKCk7CisgICAgICAgIG1fYnV0dG9uLT5zZXRJbkRv
Y3VtZW50KCk7CisKKyAgICAgICAgYWRkQ2hpbGQocmVuZGVyZXIpOworICAgIH0KKworICAgIHN3
aXRjaCAoZGV2aWNlRWxlbWVudC0+c3RhdGUoKSkgeworICAgIGNhc2UgSFRNTERldmljZUVsZW1l
bnQ6Ok5vdENvbm5lY3RlZDoKKyAgICAgICAgbV9idXR0b24tPnNldFZhbHVlKCJTZWxlY3QgZGV2
aWNlIik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBIVE1MRGV2aWNlRWxlbWVudDo6Q29u
bmVjdGluZzoKKyAgICAgICAgbV9idXR0b24tPnNldFZhbHVlKCJDb25uZWN0aW5nLi4uIik7Cisg
ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBIVE1MRGV2aWNlRWxlbWVudDo6Q29ubmVjdGVkOgor
ICAgICAgICBtX2J1dHRvbi0+c2V0VmFsdWUoIkRpc2Nvbm5lY3QiKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIEhUTUxEZXZpY2VFbGVtZW50OjpEaXNjb25uZWN0aW5nOgorICAgICAgICBt
X2J1dHRvbi0+c2V0VmFsdWUoIkRpc2Nvbm5lY3RpbmcuLi4iKTsKKyAgICAgICAgYnJlYWs7CisK
KyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAg
ICBtX2J1dHRvbi0+cmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICBtX2J1dHRv
bi0+c2V0RGlzYWJsZWQoIXRoZW1lKCktPmlzRW5hYmxlZCh0aGlzKSk7Cit9CisKK1Bhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IFJlbmRlckRldmljZTo6Y3JlYXRlQnV0dG9uU3R5bGUoY29uc3QgUmVu
ZGVyU3R5bGUqIHBhcmVudFN0eWxlKSBjb25zdAoreworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4g
c3R5bGUgPSBnZXRDYWNoZWRQc2V1ZG9TdHlsZShERVZJQ0VfQlVUVE9OKTsKKyAgICBpZiAoIXN0
eWxlKSB7CisgICAgICAgIHN0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgpOworICAgICAgICBp
ZiAocGFyZW50U3R5bGUpCisgICAgICAgICAgICBzdHlsZS0+aW5oZXJpdEZyb20ocGFyZW50U3R5
bGUpOworICAgIH0KKworICAgIHN0eWxlLT5zZXRXaGl0ZVNwYWNlKE5PV1JBUCk7CisKKyAgICBy
ZXR1cm4gc3R5bGUucmVsZWFzZSgpOworfQorCit2b2lkIFJlbmRlckRldmljZTo6Y29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQoreworICAgIEFTU0VSVChwcmVmZXJyZWRMb2dpY2FsV2lk
dGhzRGlydHkoKSk7CisKKyAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1fbWF4UHJl
ZmVycmVkTG9naWNhbFdpZHRoID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUo
KS0+d2lkdGgoKS52YWx1ZSgpKTsKKworICAgIGlmIChzdHlsZSgpLT5taW5XaWR0aCgpLmlzRml4
ZWQoKSAmJiBzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkgPiAwKSB7CisgICAgICAgIG1fbWF4
UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoLCBj
b21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkp
KTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9taW5QcmVmZXJy
ZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlKCktPm1p
bldpZHRoKCkudmFsdWUoKSkpOworICAgIH0gZWxzZSBpZiAoc3R5bGUoKS0+d2lkdGgoKS5pc1Bl
cmNlbnQoKSB8fCAoc3R5bGUoKS0+d2lkdGgoKS5pc0F1dG8oKSAmJiBzdHlsZSgpLT5oZWlnaHQo
KS5pc1BlcmNlbnQoKSkpCisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gMDsK
KyAgICBlbHNlCisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9tYXhQcmVm
ZXJyZWRMb2dpY2FsV2lkdGg7CisKKyAgICBpZiAoc3R5bGUoKS0+bWF4V2lkdGgoKS5pc0ZpeGVk
KCkgJiYgc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpICE9IHVuZGVmaW5lZExlbmd0aCkgewor
ICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21heFByZWZlcnJlZExv
Z2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUoKS0+bWF4V2lk
dGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWlu
KG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0
aChzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICB9CisKKyAgICBpbnQgdG9BZGQg
PSBib3JkZXJBbmRQYWRkaW5nV2lkdGgoKTsKKyAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0
aCArPSB0b0FkZDsKKyAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCArPSB0b0FkZDsKKwor
ICAgIHNldFByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eShmYWxzZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXZpY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXZpY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWYwMzMxNjgzYTFj
YWRiY2U1Zjc4YTA1NGZkYTRlNjI0MWMwNzFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldmljZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJl
bmRlckRldmljZV9oCisjZGVmaW5lIFJlbmRlckRldmljZV9oCisKKyNpbmNsdWRlICJSZW5kZXJC
bG9jay5oIgorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEhUTUxEZXZpY2VFbGVtZW50OworY2xhc3MgSFRNTElucHV0RWxlbWVudDsK
KworY2xhc3MgUmVuZGVyRGV2aWNlIDogcHVibGljIFJlbmRlckJsb2NrIHsKK3B1YmxpYzoKKyAg
ICBSZW5kZXJEZXZpY2UoSFRNTERldmljZUVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJE
ZXZpY2UoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc0RldmljZSgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBj
b25zdCB7IHJldHVybiAiUmVuZGVyRGV2aWNlIjsgfQorCisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2Fs
V2lkdGhzKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJl
bmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOworCisgICAgdmlydHVhbCBib29sIHJl
cXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKworICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGNyZWF0ZUJ1dHRvblN0eWxlKGNvbnN0
IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSkgY29uc3Q7CisKKyAgICBSZWZQdHI8SFRNTElucHV0
RWxlbWVudD4gbV9idXR0b247Cit9OworCitpbmxpbmUgUmVuZGVyRGV2aWNlKiB0b1JlbmRlckRl
dmljZShSZW5kZXJPYmplY3QqIG9iamVjdCkKK3sKKyAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmpl
Y3QtPmlzRGV2aWNlKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJEZXZpY2UqPihv
YmplY3QpOworfQorCit2b2lkIHRvUmVuZGVyRGV2aWNlKGNvbnN0IFJlbmRlckRldmljZSopOwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1F
TlQpCisKKyNlbmRpZiAvLyBSZW5kZXJEZXZpY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCmluZGV4IDQzZTZiZWEyNjIwMTI5OWM0ZjgwYWVlNDViMDlmZmZkNTliNmUz
MzMuLjk5ZDlhOWJhYmY4ZmZhNmJhYTIzZDY4NmRjNmM5OTYwM2Y1NzA1YTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTI1NSw2ICsyNTUsOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGlzRGV0YWlscygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzRGV0YWlsc01hcmtlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzRW1iZWRkZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKyAgICB2aXJ0dWFsIGJvb2wgaXNEZXZp
Y2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCiAgICAgdmlydHVhbCBib29sIGlz
RmllbGRzZXQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0Zp
bGVVcGxvYWRDb250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCBiMGI3NzM1ODU2ZTcxOTEzOTE0NDQ5ZTFjZjhjMjc1
MTQ2NTc4Nzc3Li4wNzE4ODQ0YmRkNzM0YjBiYzlkODBiMzY2YTMxMGNiNzU4Njc2Y2IxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTIzNyw2ICsyMzcsMTAg
QEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0
b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWwKICAgICAgICAgY2FzZSBJbnB1dFNwZWVjaEJ1dHRv
blBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gYWRqdXN0SW5wdXRGaWVsZFNwZWVjaEJ1dHRvblN0
eWxlKHNlbGVjdG9yLCBzdHlsZSwgZSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1F
TlQpCisgICAgICAgIGNhc2UgRGV2aWNlQnV0dG9uUGFydDoKKyAgICAgICAgLy8gRklYTUU6IGFk
anVzdCBkZXZpY2UgYnV0dG9uIHN0eWxlIGFuZCBzaXplcy4KKyNlbmRpZgogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMzczLDYgKzM3NywxMCBAQCBib29s
IFJlbmRlclRoZW1lOjpwYWludChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBJbnRSZQogICAgICAgICBjYXNlIElucHV0U3BlZWNoQnV0dG9uUGFydDoK
ICAgICAgICAgICAgIHJldHVybiBwYWludElucHV0RmllbGRTcGVlY2hCdXR0b24obywgcGFpbnRJ
bmZvLCByKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKyAgICAgICAgY2Fz
ZSBEZXZpY2VCdXR0b25QYXJ0OgorICAgICAgICAvLyBGSVhNRTogYWRkIHBhaW50aW5nIGNvZGUg
dG8gZHJhdyB0aGUgZGV2aWNlIGJ1dHRvbi4KKyNlbmRpZgogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNDI0LDYgKzQzMiw5IEBAIGJvb2wgUmVuZGVyVGhl
bWU6OnBhaW50Qm9yZGVyT25seShSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAgICAgY2FzZSBJbnB1dFNw
ZWVjaEJ1dHRvblBhcnQ6CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisgICAg
ICAgIGNhc2UgRGV2aWNlQnV0dG9uUGFydDoKKyNlbmRpZgogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNDczLDYgKzQ4NCw5IEBAIGJvb2wgUmVuZGVyVGhl
bWU6OnBhaW50RGVjb3JhdGlvbnMoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQogICAgICAgICBjYXNlIElucHV0U3Bl
ZWNoQnV0dG9uUGFydDoKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKyAgICAg
ICAgY2FzZSBEZXZpY2VCdXR0b25QYXJ0OgorI2VuZGlmCiAgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IGM5NWJmNWEzY2Q2ZTEyMjI0ZTBi
NDU2YjE2ODc0NzJjOTc3YTM0ZTYuLmEwZjVkNTdkNzQzYWJhN2VjZmI0YjFiODRlYjkxN2JjODgy
M2E4NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZUNvbnN0YW50cy5oCkBAIC03Myw3ICs3Myw3IEBAIGVudW0gUHNldWRvSWQgewogICAg
IE1FRElBX0NPTlRST0xTX1NUQVRVU19ESVNQTEFZLCBTQ1JPTExCQVJfVEhVTUIsIFNDUk9MTEJB
Ul9CVVRUT04sIFNDUk9MTEJBUl9UUkFDSywgU0NST0xMQkFSX1RSQUNLX1BJRUNFLCBTQ1JPTExC
QVJfQ09STkVSLCBSRVNJWkVSLAogICAgIElOUFVUX0xJU1RfQlVUVE9OLCBJTlBVVF9TUEVFQ0hf
QlVUVE9OLCBJTk5FUl9TUElOX0JVVFRPTiwgT1VURVJfU1BJTl9CVVRUT04sIFZJU0lURURfTElO
SywKICAgICBNRVRFUl9IT1JJWk9OVEFMX0JBUiwgTUVURVJfSE9SSVpPTlRBTF9PUFRJTVVNLCBN
RVRFUl9IT1JJWk9OVEFMX1NVQk9QVElNQUwsIE1FVEVSX0hPUklaT05UQUxfRVZFTl9MRVNTX0dP
T0QsCi0gICAgTUVURVJfVkVSVElDQUxfQkFSLCBNRVRFUl9WRVJUSUNBTF9PUFRJTVVNLCBNRVRF
Ul9WRVJUSUNBTF9TVUJPUFRJTUFMLCBNRVRFUl9WRVJUSUNBTF9FVkVOX0xFU1NfR09PRCwgCisg
ICAgTUVURVJfVkVSVElDQUxfQkFSLCBNRVRFUl9WRVJUSUNBTF9PUFRJTVVNLCBNRVRFUl9WRVJU
SUNBTF9TVUJPUFRJTUFMLCBNRVRFUl9WRVJUSUNBTF9FVkVOX0xFU1NfR09PRCwgREVWSUNFX0JV
VFRPTiwKICAgICBBRlRFUl9MQVNUX0lOVEVSTkFMX1BTRVVET0lELAogICAgIEZVTExfU0NSRUVO
LCBGVUxMX1NDUkVFTl9ET0NVTUVOVCwKICAgICBGSVJTVF9QVUJMSUNfUFNFVURPSUQgPSBGSVJT
VF9MSU5FLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBp
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IGQyMTg0Y2Y0Y2I0
OGQ2YzExMjdkZGM1NzBmOTM5NmNmZDVhZGRkNzQuLjA1Y2VlYWExN2I0M2VmMGZjMDI5ZDgzNDll
NThhNDg5YWZlZTdhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVy
ZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTQ5
LDYgKzQ5LDcgQEAKICAgICAgICAgJ0VOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVD0wJywKICAgICAg
ICAgJ0VOQUJMRV9EQVRBQkFTRT0xJywKICAgICAgICAgJ0VOQUJMRV9EQVRBR1JJRD0wJywKKyAg
ICAgICAgJ0VOQUJMRV9ERVZJQ0VfRUxFTUVOVD0xJywKICAgICAgICAgJ0VOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT049MScsCiAgICAgICAgICdFTkFCTEVfRElSRUNUT1JZX1VQTE9BRD0xJywKICAg
ICAgICAgJ0VOQUJMRV9ET01fU1RPUkFHRT0xJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktp
dC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggMzk3MTAz
N2I5Yzc2YmM0MDA3MDA2YzJlNjE2YWNjZDcxYzEyYjE2Ni4uNTdmZDA2ZWM3YTk3MGMxYTg1Y2I4
ZWQ4MDEwNWU0NmQ4NWNiZTQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTY2LDYgKzY2LDcgQEAg
RU5BQkxFX0RBVEFHUklEID0gOwogRU5BQkxFX0RBVEFMSVNUID0gJChFTkFCTEVfREFUQUxJU1Rf
JChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9EQVRBTElTVF9tYWNvc3ggPSBFTkFCTEVf
REFUQUxJU1Q7CiAKK0VOQUJMRV9ERVZJQ0VfRUxFTUVOVCA9IDsKIEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04gPSA7CiBFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCA9IDsKIEVOQUJMRV9ET01fU1RP
UkFHRSA9IEVOQUJMRV9ET01fU1RPUkFHRTsKQEAgLTEyNSw0ICsxMjYsNCBAQCBFTkFCTEVfWEhU
TUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5B
QkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQo
RU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNE
X1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQo
RU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5B
QkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChF
TkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVN
KSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVH
R0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9H
UkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NI
QVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5B
QkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VT
RSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5B
QkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBB
VEgpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVG
RVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9XRUJHTCkgJChF
TkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NB
R0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFT
RSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0Vf
RUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllf
VVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5B
QkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVf
SU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRf
U1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQo
RU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JFR0lT
VEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
VkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFC
TEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NW
R19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5B
QkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NP
Q0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VS
UykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwppbmRleCAzOTcxMDM3YjljNzZiYzQwMDcwMDZjMmU2MTZhY2NkNzFjMTJiMTY2Li41N2Zk
MDZlYzdhOTcwYzFhODVjYjhlZDgwMTA1ZTQ2ZDg1Y2JlNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNjYs
NiArNjYsNyBAQCBFTkFCTEVfREFUQUdSSUQgPSA7CiBFTkFCTEVfREFUQUxJU1QgPSAkKEVOQUJM
RV9EQVRBTElTVF8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0RBVEFMSVNUX21hY29z
eCA9IEVOQUJMRV9EQVRBTElTVDsKIAorRU5BQkxFX0RFVklDRV9FTEVNRU5UID0gOwogRU5BQkxF
X0RFVklDRV9PUklFTlRBVElPTiA9IDsKIEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEID0gOwogRU5B
QkxFX0RPTV9TVE9SQUdFID0gRU5BQkxFX0RPTV9TVE9SQUdFOwpAQCAtMTI1LDQgKzEyNiw0IEBA
IEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxF
X1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19Q
UkVGRVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9XRUJHTCkg
JChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRB
QkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9T
VE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVf
RklMRV9TWVNURU0pICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElP
TikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVO
QUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQo
RU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikg
JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1B
VElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElO
R1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVO
QUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykg
JChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJ
TUlORykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAk
KEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxF
X1dFQkdMKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5B
QkxFX0RFVklDRV9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNP
VVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNF
KSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxF
X01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChF
TkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMp
ICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lN
QUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykg
JChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9W
SURFTykgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVO
QUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVO
QUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVf
WFNMVCk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdCBiL1Rvb2xzL1Nj
cmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IDc0MDE1ZWNiZDY1ZWIzYzVmZTI1OGYwNzM3OWUyOGQy
ZTExNTM4ZmIuLmUzNGIzMjlmNTMzYjg1YTNmZjFiNjc4Y2UxMTVmMzBhNzg3NTBjMjEgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVp
bGQtd2Via2l0CkBAIC03MCw2ICs3MCw3IEBAIG15ICgKICAgICAkZGF0YWJhc2VTdXBwb3J0LAog
ICAgICRkYXRhZ3JpZFN1cHBvcnQsCiAgICAgJGRhdGFsaXN0U3VwcG9ydCwKKyAgICAkZGV2aWNl
U3VwcG9ydCwKICAgICAkZGV2aWNlT3JpZW50YXRpb25TdXBwb3J0LAogICAgICRkaXJlY3RvcnlV
cGxvYWRTdXBwb3J0LAogICAgICRkb21TdG9yYWdlU3VwcG9ydCwKQEAgLTE0OCw2ICsxNDksOSBA
QCBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gImRhdGFsaXN0IiwgZGVzYyA9PiAi
VG9nZ2xlIEhUTUw1IGRhdGFsaXN0IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
REFUQUxJU1QiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkZGF0YWxpc3RTdXBwb3J0IH0sCiAK
KyAgICB7IG9wdGlvbiA9PiAiZGV2aWNlIiwgZGVzYyA9PiAiVG9nZ2xlIGRldmljZSBlbGVtZW50
IHN1cHBvcnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX0VMRU1FTlQiLCBkZWZh
dWx0ID0+IDAsIHZhbHVlID0+IFwkZGV2aWNlU3VwcG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4g
ImRldmljZS1vcmllbnRhdGlvbiIsIGRlc2MgPT4gIlRvZ2dsZSBEZXZpY2VPcmllbnRhdGlvbiBz
dXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiIsIGRl
ZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRkZXZpY2VPcmllbnRhdGlvblN1cHBvcnQgfSwKIApkaWZm
IC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVz
LnZzcHJvcHMgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmlu
ZXMudnNwcm9wcwppbmRleCBmMzA5MzJkZTlhOWJhMjcyYzAwOGFhOGEwZjUxMDIwNzJjNDhjNzQ0
Li5hNTFhZjc0ODdhMjk0NGQ0ZmFkZDg1NDBmNGQ1MTFiZTczNjI4ZjRkIDEwMDY0NAotLS0gYS9X
ZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcwor
KysgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNw
cm9wcwpAQCAtOSw3ICs5LDcgQEAKIAk+CiAgIDxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5B
QkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJM
RV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5B
QkxFX0RBVEFMSVNUKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVD
VE9SWV9VUExPQUQpOyQoRU5BQkxFX0RPTV9TVE9SQUdFKTskKEVOQUJMRV9FVkVOVFNPVVJDRSk7
JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JF
RU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVO
QUJMRV9JTUFHRV9SRVNJWkVSKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9J
TlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktf
UFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9O
T1RJRklDQVRJT05TKTskKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5BQkxF
X1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFC
TEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0FOSU1BVElPTik7
JChFTkFCTEVfU1ZHX0FTX0lNQUdFKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQo
RU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKTskKEVOQUJMRV9T
VkdfVVNFKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFC
TEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dNTCk7JChFTkFC
TEVfV09SS0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hT
TFQpIgorCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFTKTskKEVO
QUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFC
TEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTik7JChFTkFCTEVfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVO
QUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREVWSUNFX0VMRU1FTlQpOyQoRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JB
R0UpOyQoRU5BQkxFX0VWRU5UU09VUkNFKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxF
X1NZU1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTsk
KEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lNQUdFX1JFU0laRVIpOyQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSkFWQVNDUklQ
VF9ERUJVR0dFUik7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFCTEVfTUFUSE1MKTskKEVO
QUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUyk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9SRUdJU1RF
Ul9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1ZH
KTskKEVOQUJMRV9TVkdfQU5JTUFUSU9OKTskKEVOQUJMRV9TVkdfQVNfSU1BR0UpOyQoRU5BQkxF
X1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9TVkdf
Rk9SRUlHTl9PQkpFQ1QpOyQoRU5BQkxFX1NWR19VU0UpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJ
TUlORyk7JChFTkFCTEVfV01MKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YSFRNTE1QKTsk
KEVOQUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCiAJLz4KICAgPFVzZXJNYWNybwogCQlOYW1l
PSJFTkFCTEVfM0RfQ0FOVkFTIgpAQCAtNTcsNiArNTcsMTEgQEAKIAkJUGVyZm9ybUVudmlyb25t
ZW50U2V0PSJ0cnVlIgogCS8+CiAgIDxVc2VyTWFjcm8KKwkJTmFtZT0iRU5BQkxFX0RFVklDRV9F
TEVNRU5UIgorCQlWYWx1ZT0iIgorCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCisJLz4K
KyAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIgogCQlWYWx1
ZT0iIgogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCmRpZmYgLS1naXQgYS9XZWJLaXRM
aWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzIGIv
V2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNw
cm9wcwppbmRleCA3MjkxNGUyNzU4MzAyZDZiZTc2MTU0ZTNjNzJiYjUwZmQzNWUyNDBiLi41NWUw
NWE1ZTE5NmViZmM0MzE5N2RhNjFkMzNiYWRlYWZlM2E3NjBiIDEwMDY0NAotLS0gYS9XZWJLaXRM
aWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzCisr
KyBiL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJv
LnZzcHJvcHMKQEAgLTksNyArOSw3IEBACiAJPgogICA8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFTKTsk
KEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChF
TkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFHUklEKTsk
KEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9ET01fU1RPUkFHRSk7JChFTkFCTEVfRVZFTlRTT1VS
Q0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxM
U0NSRUVOX0FQSSk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0lDT05EQVRBQkFTRSk7
JChFTkFCTEVfSU1BR0VfUkVTSVpFUik7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFC
TEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9M
SU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFC
TEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKTskKEVO
QUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQo
RU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19BTklNQVRJ
T04pOyQoRU5BQkxFX1NWR19BU19JTUFHRSk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdT
KTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCk7JChFTkFC
TEVfU1ZHX1VTRSk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQo
RU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XTUwpOyQo
RU5BQkxFX1dPUktFUlMpOyQoRU5BQkxFX1hIVE1MTVApOyQoRU5BQkxFX1hQQVRIKTskKEVOQUJM
RV9YU0xUKSIKKwkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7
JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQo
RU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRf
QkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7
JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RFVklDRV9FTEVNRU5UKTskKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0RPTV9T
VE9SQUdFKTskKEVOQUJMRV9FVkVOVFNPVVJDRSk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVf
RklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElP
Tik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTUFHRV9SRVNJWkVSKTskKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7
JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUkVH
SVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxF
X1NWRyk7JChFTkFCTEVfU1ZHX0FOSU1BVElPTik7JChFTkFCTEVfU1ZHX0FTX0lNQUdFKTskKEVO
QUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVf
U1ZHX0ZPUkVJR05fT0JKRUNUKTskKEVOQUJMRV9TVkdfVVNFKTskKEVOQUJMRV9WSURFTyk7JChF
TkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dF
Ql9USU1JTkcpOyQoRU5BQkxFX1dNTCk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWEhUTUxN
UCk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgogCS8+CiAgIDxVc2VyTWFjcm8KIAkJ
TmFtZT0iRU5BQkxFXzNEX0NBTlZBUyIKQEAgLTU3LDYgKzU3LDExIEBACiAJCVBlcmZvcm1FbnZp
cm9ubWVudFNldD0idHJ1ZSIKIAkvPgogICA8VXNlck1hY3JvCisJCU5hbWU9IkVOQUJMRV9ERVZJ
Q0VfRUxFTUVOVCIKKwkJVmFsdWU9IiIKKwkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgor
CS8+CisgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiIKIAkJ
VmFsdWU9IiIKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgpkaWZmIC0tZ2l0IGEvY29u
ZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IGIwMGNhMzgzZmE2OTFiNzc0MTM1OGQwZmM1
MzBhMjMwYmJkYzNjZmMuLjY4ZmU4Zjc1NTBhNjM3MTQ3MzMyZDRmNjEyYjhiYjgzMzBjNTI3ZjUg
MTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTQxMSw2ICs0
MTEsMTQgQEAgQUNfQVJHX0VOQUJMRShpbnB1dF9zcGVlY2gsCiAgICAgICAgICAgICAgIFtdLFtl
bmFibGVfaW5wdXRfc3BlZWNoPSJubyJdKQogQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9pbnB1dF9z
cGVlY2hdKQogCisjIGNoZWNrIHdoZXRoZXIgdG8gZW5hYmxlIHRoZSBkZXZpY2UgZWxlbWVudCBz
dXBwb3J0CitBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gZW5hYmxlIHRoZSBkZXZpY2UgZWxl
bWVudCBzdXBwb3J0XSkKK0FDX0FSR19FTkFCTEUoZGV2aWNlX2VsZW1lbnQsCisgICAgICAgICAg
ICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1kZXZpY2UtZWxlbWVudF0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtlbmFibGUgdGhlIGRldmljZSBlbGVtZW50IHN1cHBvcnQgW2Rl
ZmF1bHQ9bm9dXSksCisgICAgICAgICAgICAgIFtdLFtlbmFibGVfZGV2aWNlX2VsZW1lbnQ9Im5v
Il0pCitBQ19NU0dfUkVTVUxUKFskZW5hYmxlX2RldmljZV9lbGVtZW50XSkKKwogIyBjaGVjayB3
aGV0aGVyIHRvIGJ1aWxkIHdpdGggZGF0YWJhc2Ugc3VwcG9ydAogQUNfTVNHX0NIRUNLSU5HKFt3
aGV0aGVyIHRvIGVuYWJsZSBIVE1MNSBjbGllbnQtc2lkZSBkYXRhYmFzZSBzdG9yYWdlIHN1cHBv
cnRdKQogQUNfQVJHX0VOQUJMRShkYXRhYmFzZSwKQEAgLTk1OCw2ICs5NjYsNyBAQCBBTV9DT05E
SVRJT05BTChbRU5BQkxFX0RJUkVDVE9SWV9VUExPQURdLFt0ZXN0ICIkZW5hYmxlX2RpcmVjdG9y
eV91cGxvYWQiID0gInllcwogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9ET01fU1RPUkFHRV0sW3Rl
c3QgIiRlbmFibGVfZG9tX3N0b3JhZ2UiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJM
RV9EQVRBQkFTRV0sW3Rlc3QgIiRlbmFibGVfZGF0YWJhc2UiID0gInllcyJdKQogQU1fQ09ORElU
SU9OQUwoW0VOQUJMRV9EQVRBTElTVF0sW3Rlc3QgIiRlbmFibGVfZGF0YWxpc3QiID0gInllcyJd
KQorQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9ERVZJQ0VfRUxFTUVOVF0sW3Rlc3QgIiRlbmFibGVf
ZGV2aWNlX2VsZW1lbnQiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9FVkVOVFNP
VVJDRV0sW3Rlc3QgIiRlbmFibGVfZXZlbnRzb3VyY2UiID0gInllcyJdKQogQU1fQ09ORElUSU9O
QUwoW0VOQUJMRV9GQVNUX01PQklMRV9TQ1JPTExJTkddLFt0ZXN0ICIkZW5hYmxlX2Zhc3RfbW9i
aWxlX3Njcm9sbGluZyIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0ZJTEVfU1lT
VEVNXSxbdGVzdCAiJGVuYWJsZV9maWxlX3N5c3RlbSIgPSAieWVzIl0pCkBAIC0xMDQyLDYgKzEw
NTEsNyBAQCBGZWF0dXJlczoKICBXZWJHTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfd2ViZ2wKICBCbG9iIHN1cHBvcnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfYmxvYgogIERp
cmVjdG9yeSB1cGxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog
JGVuYWJsZV9kaXJlY3RvcnlfdXBsb2FkCisgRGV2aWNlIGVsZW1lbnQgc3VwcG9ydCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX2RldmljZV9lbGVtZW50CiAgRmFz
dCBNb2JpbGUgU2Nyb2xsaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAk
ZW5hYmxlX2Zhc3RfbW9iaWxlX3Njcm9sbGluZwogIEpJVCBjb21waWxhdGlvbiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9qaXQKICBGaWx0ZXJzIHN1
cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVf
ZmlsdGVycwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>81277</attachid>
            <date>2011-02-04 13:29:43 -0800</date>
            <delta_ts>2011-02-09 13:09:20 -0800</delta_ts>
            <desc>Class diagram of the proposed model.</desc>
            <filename>Asynchronousclient-basedproposeddevicedesign.pdf</filename>
            <type>application/pdf</type>
            <size>36454</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">JVBERi0xLjQKJSDi48/TCjQKMApvYmoKPDwKL1R5cGUKL0NhdGFsb2cKL05hbWVzCjw8Ci9KYXZh
U2NyaXB0CjMKMApSCj4+Ci9QYWdlTGFiZWxzCjw8Ci9OdW1zClsKMAo8PAovUwovRAovU3QKMQo+
PgpdCj4+Ci9PdXRsaW5lcwoyCjAKUgovUGFnZXMKMQowClIKPj4KZW5kb2JqCjUKMApvYmoKPDwK
L0NyZWF0b3IKKP7/AEcAbwBvAGcAbABlKQo+PgplbmRvYmoKNgowCm9iago8PAovVHlwZQovUGFn
ZQovUGFyZW50CjEKMApSCi9NZWRpYUJveApbCjAKMAo4ODkKNTM0Cl0KL0NvbnRlbnRzCjcKMApS
Ci9SZXNvdXJjZXMKOAowClIKL0Fubm90cwoxMAowClIKL0dyb3VwCjw8Ci9TCi9UcmFuc3BhcmVu
Y3kKL0NTCi9EZXZpY2VSR0IKPj4KPj4KZW5kb2JqCjcKMApvYmoKPDwKL0ZpbHRlcgovRmxhdGVE
ZWNvZGUKL0xlbmd0aAo5CjAKUgo+PgpzdHJlYW0KeJzNXFtvHMl1HkBv7QWyC9jODX7wy/qW9Nb9
krcYXFGWZXB1oza764dkjHhhjJI4CeC/7++rnq5zWpwZcUYcUhIoDj+Ouk6d+urc6tT8ebCjGfj3
n6cX0Qd8X78dzJhj+0V/AfCLf938z/f/boY//t/g8La/AH062OFPgw2j9zEWvPV3w7e/N8Mf8P+M
yyGaWvDS2ZhKcnzpS3E++uHFJX6IOYVsEgfh73Pgy1CNrcmU4X//OIQ0JluD80O0Y6411OHtLnCj
QO/H6owtcUh2tNaHFAZbx+CSDW7IZazVZUgq2HpwxY3eVAwq6GZw1YylRuMU6modrat+cG4sPuHX
gzdxdMZEPGXEIwyevR68taPLNuUBKq25upiAhTEVF/wQPHTiY8gK65NZK9AWPKZUQ3EUSiFS8Q5j
m9GWEgY8bkwJqlVzEWyt5i3oRmlIUNGkDKOwLtB6+H74j7vnRLGWrOCrRgmwb6zR1WAdGZGxuskW
NySQJmAhIhixA9wIGNMYoSMbhpwxVrIRPB9NDdA1ZpMspBIEZMjYBNVVwUCFnLDseETHHDRqUipE
qjHegBK5jtFYm4YYMfmQsPrkFiYATTRBcoLqsDIYNwfrseplzDaEoCCZxFqh1VKfhbIIFscYsaxN
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
OQT4hwMLUBHkBF5VXSgAeZWJ7UM1DBuY6dl56cG1V1ile9gctGCF2cuyVHhvoh3aNspy0Fu3D1i+
V+EObCllVAKdh3f3vKaHtpvYG37eqYWfv1fR/u42luhBJDtgI1Lr4kIs4U3lp/bYexbtH/eLVg2T
2er8kNhju71YM6bjrFfaO/S3q0+QeX6Krx33bVs15Wp72seKwUWv/eyv9xi2pp+Pf7eZitydPGEC
bC+MvMjkHU/Cz+KvDuwSz4ZYBJz+HQHui4sLT/Z8+Cv8EcHXCmVuZHN0cmVhbQplbmRvYmoKOQow
Cm9iago1MjUwCmVuZG9iagoxMAowCm9iagpbCl0KZW5kb2JqCjExCjAKb2JqCjw8Ci9DQQoxLjAK
L2NhCjEuMAo+PgplbmRvYmoKOAowCm9iago8PAovRm9udAo8PAovRm9udDEKMTIKMApSCi9Gb250
MgoxMwowClIKPj4KL1BhdHRlcm4KPDwKPj4KL1hPYmplY3QKPDwKPj4KL0V4dEdTdGF0ZQo8PAov
QWxwaGEwCjExCjAKUgo+PgovUHJvY1NldApbCi9QREYKL1RleHQKL0ltYWdlQgovSW1hZ2VDCi9J
bWFnZUkKXQo+PgplbmRvYmoKMTIKMApvYmoKPDwKL1R5cGUKL0ZvbnQKL1N1YnR5cGUKL1R5cGUw
Ci9CYXNlRm9udAovTVVGVVpZK0FyaWFsTVQKL0VuY29kaW5nCi9JZGVudGl0eS1ICi9EZXNjZW5k
YW50Rm9udHMKWwoxNAowClIKXQovVG9Vbmljb2RlCjE1CjAKUgo+PgplbmRvYmoKMTMKMApvYmoK
PDwKL1R5cGUKL0ZvbnQKL1N1YnR5cGUKL1R5cGUwCi9CYXNlRm9udAovTVVGVVpZK0FyaWFsLUl0
YWxpY01UCi9FbmNvZGluZwovSWRlbnRpdHktSAovRGVzY2VuZGFudEZvbnRzClsKMTgKMApSCl0K
L1RvVW5pY29kZQoxOQowClIKPj4KZW5kb2JqCjE1CjAKb2JqCjw8Ci9GaWx0ZXIKL0ZsYXRlRGVj
b2RlCi9MZW5ndGgKMjIKMApSCj4+CnN0cmVhbQp4nGVSy26DMBC88xU+pocI2xDSSAipSlWJQx8q
7QcYe6FIxViGHPj7mt2SJqklsHd2ZnesdXwsH0vbTSx+84OuYGJNZ42HcTh5DayGtrORkMx0evqN
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
BHZPqk79J4Hh2hsmTWN04pRYdXBKn9ikYJ/A7u7jfyV7PMvuHuyzG8ZXjhy7e7wypU9jd6V7ZXBi
n+qmfkNLyq5oa82ltkqG/srDhrKHlbC2+pX9SnYZy+7H2ipjbZWxtvop/dS2QJXxoWN3i9Cruvf4
JG2iegnltTYts7qXU57bQxXe7pnuO9L28+zjGn2kOmYI9ooZESyrY8+OPVkWe9GLWSb2Hz6mstx3
dM9M2092pLJkTLYEe0FkwcL5C8FdOb3P/zUIKgYCoFBJKSjAIaR2MS4AlHPd4JDoUlzCwOC9QSvY
e4N9YFTERnZ2oGgCyEsbrGBi3NyuO/4fgAjqAQWtQILMzHCFIDEbkBgnJ1QhZvyXQmnwfqUGpt2b
GR3kGEsYiiOZN8h5hzABi4IQ6M16u4DNJVD1UBwJ9GAxozZjMcwMsLMZoDtpQf6F4ZJSKAsaDiVQ
GqILqKUYFhxwANQDLKoADcIxRgplbmRzdHJlYW0KZW5kb2JqCjE0CjAKb2JqCjw8Ci9UeXBlCi9G
b250Ci9TdWJ0eXBlCi9DSURGb250VHlwZTIKL0Jhc2VGb250Ci9NVUZVWlkrQXJpYWxNVAovQ0lE
U3lzdGVtSW5mbwo8PAovUmVnaXN0cnkKKEFkb2JlKQovT3JkZXJpbmcKKFVDUykKL1N1cHBsZW1l
bnQKMAo+PgovRm9udERlc2NyaXB0b3IKMTYKMApSCi9DSURUb0dJRE1hcAovSWRlbnRpdHkKL0RX
CjU1NgovVwpbCjAKWwo3NTAKMAowCjI3NwpdCjQKMTAKMAoxMQoxMgozMzMKMTMKMTQKMAoxNQpb
CjI3NwozMzMKMjc3CjAKMApdCjIwCjI3CjU1NgoyOApbCjAKMjc3Cl0KMzAKMzIKMAozMwpbCjU4
MwpdCjM0CjM3CjAKMzgKMzkKNzIyCjQwClsKNjY2CjYxMAowCjcyMgoyNzcKMAo2NjYKNTU2Cjgz
MwpdCjQ5CjUyCjAKNTMKWwo3MjIKNjY2CjYxMAowCjY2Ngo5NDMKXQo1OQo2NwowCjY4CjY5CjU1
Ngo3MApbCjUwMAo1NTYKNTU2CjI3Nwo1NTYKNTU2CjIyMgoyMjIKMAoyMjIKODMzCl0KODEKODQK
NTU2Cjg1ClsKMzMzCjUwMAoyNzcKNTU2CjUwMAo3MjIKNTAwCjUwMApdCl0KPj4KZW5kb2JqCjE2
CjAKb2JqCjw8Ci9UeXBlCi9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUKL01VRlVaWStBcmlhbE1U
Ci9GbGFncwo0Ci9Gb250QkJveApbCi02NjQKLTMyNAoyMDI4CjEwMzcKXQovQXNjZW50CjcyOAov
RGVzY2VudAotMjEwCi9JdGFsaWNBbmdsZQowCi9DYXBIZWlnaHQKMAovU3RlbVYKODAKL0ZvbnRG
aWxlMgoxNwowClIKPj4KZW5kb2JqCjE5CjAKb2JqCjw8Ci9GaWx0ZXIKL0ZsYXRlRGVjb2RlCi9M
ZW5ndGgKMjQKMApSCj4+CnN0cmVhbQp4nH1S226DMAx9z1fksXuouBToKqFIU6dJPOyisX0ATUwX
aYQohAf+fsZpO7ZOiwTB9jnHNna0r+4roz2PXlwva/C81UY5GPrRSeAHOGrDkpQrLf3JorfsGssi
JNfT4KGrTNuzsuTRKwYH7ya+ulP9AW5Y9OwUOG2OfPW+r9GuR2s/oQPjecyE4ApaFHps7FPTAY+I
tq4UxrWf1sj5RrxNFnhKdhKKkb2CwTYSXGOOwMoYj+DlAx7BwKhf8TiwDm0wEXD+TH9GUCgtUAiv
LV3ZRpCzJWsTB6cUS43krCE/Gjejs4xgRXKCkT+5ypSFTNltQG/En4VdRGWA7aigLBRUyGWK62by
hGB5GtBA3DwPztDhNv2/mXwXYMUy0/yL5024zE+OzuHoaF1oZvO0tIHLRtnezix6vgCVj8LLCmVu
ZHN0cmVhbQplbmRvYmoKMjEKMApvYmoKPDwKL0ZpbHRlcgovRmxhdGVEZWNvZGUKL0xlbmd0aAoy
NQowClIKPj4Kc3RyZWFtCnic7Xt5XJNX1v+591mTkORJCCSAkMRARAKigCyKEhXQirsVAaWi4l4r
uA1q3abT0aKtqN1s7Wirta1aDeASqK3aaWtta/dtpuvM2NbWtY6201aS37lPAkVnfvPO7/d5P+/n
/cOE7z13Ofe59557tgcRCABoYBVwoExdvNDR97LzdezZCiCMmF4zY26cf/A8rJ9D9J9x+5Lp69Y+
sQpAlwpg/m7mtMnVL1VvcgAk2HBO9kzsiDDK2dgehe3EmXMX1kUUiLnYXghguHT7vKmTYcDOFwDS
qrF9Ze7kuhpxhSwD5Jchv6Nm/rSarVumPYztOgBxmdAKMSp2QSzvBlwj+A3iDKOBWcELbCwwL/hX
+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
HOPL8ZT4pFETyhoJua8ce310rZ/ArWV+EsO67o5j/2ewBW815u574xgN3n1veTlELy6wFZj7m/KK
C/9FURUuO/25ou36v14sGbWkBW+5rFmy95OwORabDazZwJq2eN+DJWPLfLvjy30ZrBKMLy/xbR7r
mFjWQvaRvUWFLeRZRsrLWrhUsq9oDOvnUgvLy0vwalQ+VPt9jG8fI8gnfwgFjA8K5A9VPp6E+Fwq
H6pdiC/aAS6VzxXtuI4vgTzL+FIYQT7rl5Cg8iVYv+zE19jqKipsdLnan9Wq8rSGnuXLV1nsdmRx
2lUWNBW7ymInVGUp/pUlLczSo4Olh7oSR37lsYd49I52Hj1byfMffaYN9HiKZjFdGVXWKMPA8kET
QzRaqemv3rs+pv+Tca3wLncWdJ5yn9Y10KdzDYSCAhv7/yDpYoRPxC4Jwbj7Om0r4lp5IE+r3BHY
rQ8PpQ1IG8CGUHvZkIH999bwkG1FX2dcK3k6PKRgtwnX6LTPhQsX4QdsRbMKO34WhD+LwnQhlPhS
xpb4CkZXlDVKUpHPW1VYjn092/t0uiJ/8Fioswd25rNOjutg7OjTaMKMKI1DI1PJSDvJwS2Uexbg
VnChzhJcuAD+D19lbYoKZW5kc3RyZWFtCmVuZG9iagoxOAowCm9iago8PAovVHlwZQovRm9udAov
U3VidHlwZQovQ0lERm9udFR5cGUyCi9CYXNlRm9udAovTVVGVVpZK0FyaWFsLUl0YWxpY01UCi9D
SURTeXN0ZW1JbmZvCjw8Ci9SZWdpc3RyeQooQWRvYmUpCi9PcmRlcmluZwooVUNTKQovU3VwcGxl
bWVudAowCj4+Ci9Gb250RGVzY3JpcHRvcgoyMAowClIKL0NJRFRvR0lETWFwCi9JZGVudGl0eQov
RFcKNTU2Ci9XClsKMApbCjc1MApdCjEKMzcKMAozOAozOQo3MjIKNDAKNDYKMAo0NwpbCjU1Ngo4
MzMKXQo0OQo2NwowCjY4ClsKNTU2CjAKNTAwCjU1Ngo1NTYKXQo3Mwo3NQowCjc2ClsKMjIyCjAK
MAoyMjIKMAo1NTYKNTU2CjAKMAozMzMKNTAwCjI3NwowCjUwMApdCl0KPj4KZW5kb2JqCjIwCjAK
b2JqCjw8Ci9UeXBlCi9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUKL01VRlVaWStBcmlhbC1JdGFs
aWNNVAovRmxhZ3MKNjgKL0ZvbnRCQm94ClsKLTUxNwotMzI0CjEwODEKMTAyNApdCi9Bc2NlbnQK
NzI4Ci9EZXNjZW50Ci0yMDcKL0l0YWxpY0FuZ2xlCi0xMi4wCi9DYXBIZWlnaHQKMAovU3RlbVYK
ODAKL0ZvbnRGaWxlMgoyMQowClIKPj4KZW5kb2JqCjIyCjAKb2JqCjMzNwplbmRvYmoKMjMKMApv
YmoKMTgyNzMKZW5kb2JqCjI0CjAKb2JqCjMxNgplbmRvYmoKMjUKMApvYmoKODk0NwplbmRvYmoK
MQowCm9iago8PAovVHlwZQovUGFnZXMKL0tpZHMKWwo2CjAKUgpdCi9Db3VudAoxCj4+CmVuZG9i
agp4cmVmCjAgMjYKMDAwMDAwMDAwMiA2NTUzNSBmIAowMDAwMDM1Nzk2IDAwMDAwIG4gCjAwMDAw
MDAwMDMgMDAwMDAgZiAKMDAwMDAwMDAwMCAwMDAwMCBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAw
MDAwMDAxNjAgMDAwMDAgbiAKMDAwMDAwMDIwNyAwMDAwMCBuIAowMDAwMDAwMzczIDAwMDAwIG4g
CjAwMDAwMDU3NzUgMDAwMDAgbiAKMDAwMDAwNTY5NyAwMDAwMCBuIAowMDAwMDA1NzE3IDAwMDAw
IG4gCjAwMDAwMDU3MzcgMDAwMDAgbiAKMDAwMDAwNTk0NiAwMDAwMCBuIAowMDAwMDA2MDkwIDAw
MDAwIG4gCjAwMDAwMjUwMDMgMDAwMDAgbiAKMDAwMDAwNjI0MSAwMDAwMCBuIAowMDAwMDI1NTM0
IDAwMDAwIG4gCjAwMDAwMDY2NTQgMDAwMDAgbiAKMDAwMDAzNTE0NCAwMDAwMCBuIAowMDAwMDI1
NzI5IDAwMDAwIG4gCjAwMDAwMzU1MDYgMDAwMDAgbiAKMDAwMDAyNjEyMSAwMDAwMCBuIAowMDAw
MDM1NzEzIDAwMDAwIG4gCjAwMDAwMzU3MzMgMDAwMDAgbiAKMDAwMDAzNTc1NSAwMDAwMCBuIAow
MDAwMDM1Nzc1IDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUKMjYKL1Jvb3QKNAowClIKL0luZm8K
NQowClIKPj4Kc3RhcnR4cmVmCjM1ODU1CiUlRU9GCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>81854</attachid>
            <date>2011-02-09 13:09:20 -0800</date>
            <delta_ts>2011-02-09 13:09:20 -0800</delta_ts>
            <desc>Diagram for the local device successful connection/disconnection use case.</desc>
            <filename>DeviceConnectionDisconnection.pdf</filename>
            <type>application/pdf</type>
            <size>50946</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">JVBERi0xLjQKJSDi48/TCjQKMApvYmoKPDwKL1R5cGUKL0NhdGFsb2cKL05hbWVzCjw8Ci9KYXZh
U2NyaXB0CjMKMApSCj4+Ci9QYWdlTGFiZWxzCjw8Ci9OdW1zClsKMAo8PAovUwovRAovU3QKMQo+
PgpdCj4+Ci9PdXRsaW5lcwoyCjAKUgovUGFnZXMKMQowClIKPj4KZW5kb2JqCjUKMApvYmoKPDwK
L0NyZWF0b3IKKP7/AEcAbwBvAGcAbABlKQo+PgplbmRvYmoKNgowCm9iago8PAovVHlwZQovUGFn
ZQovUGFyZW50CjEKMApSCi9NZWRpYUJveApbCjAKMAo5MzYKNjUwCl0KL0NvbnRlbnRzCjcKMApS
Ci9SZXNvdXJjZXMKOAowClIKL0Fubm90cwoxMAowClIKL0dyb3VwCjw8Ci9TCi9UcmFuc3BhcmVu
Y3kKL0NTCi9EZXZpY2VSR0IKPj4KPj4KZW5kb2JqCjcKMApvYmoKPDwKL0ZpbHRlcgovRmxhdGVE
ZWNvZGUKL0xlbmd0aAo5CjAKUgo+PgpzdHJlYW0KeJzNXduOJMdxbWDfSgJoAdTlzTAgiLItFyvv
mY8WhrPD5cp7nyXp1YPdgkQIPbYlG/Dv+5yoS2ZVZ/VMX2bXIsjpOdNdGRkZGXEiMrL1l0a1XcN/
/ql/4V2Hn9u7pmuDkz9MLwB++c+7//rh37rmT/8NOCoVvA18Fb0OFu9qk9PJKt389U+Na5WOnXFN
xAPvGqV82+GNXn7fFb87L8D0/uH3H5o/Nn+ZxOPP2RMpovyDoX77tvny+j//439Uo2Lr5X/N2z/O
p2ZCa4xVKTama13ztv/42z80v9483bzevPz75u2fm6/eNq/mk7TKecwu4qV3MWrjOE3TJQiSTD9P
r6yLEMtGDIH/6WG6vvNBFeiuQJPvUS8zH59QorX57490tBpsG6z1Zl8LbzZXm2ebmxU9JFEDLaGN
8u9s5nEYz85mntFy5sp4gcNs5iV6aOb5mcfOXOzNRO33p/5uc7N5BTO4wavnePVsTQnWceEt94Tv
QrQGr1QaXs40onSazH6YtyAzTXjfpmi1m2uiQA9pon/eCdsgBhNso11rk1ZQR6mJbzbvNy83L/L8
56OnoAfZlFHYjUqtWmDXSxD2JEitbxT/U477+eYnmyebf9yETbf5cvMFVuI7rMQ1fn749eYFfryU
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
CUGUdDSaqMLjqoKniz1LZBsGgrOSA1teMVPaiSaUjfpimSlpsKFbYSt8l8D0ZDi51RNEE8EGaXfm
d957q7WoTHfOPU5iXnTIT1f67gR1vW9MbvIzHyu28auEoqOTk8GN0qNIxlAk7CBsKilqOoQGBAbT
v9VrFx8rE+f1RaxC6IsDxkVxHQytOmGDJygvBPsxKUCAa4+RDh0U00fSaboX2JICLcBua7U3Sm6N
ORA+T83BZ4eeFTzqtYtccpv6DstCHMQYj6cuXPibnlwOF9jQopRctJjqfoUM3FaLG23ckVYOxtjm
0xm3mkesVgLYrQX74FlGn0XOO8dfrfZIayR+hsd0ctQsBx7Ht25jU8A2js5gnRkn7tgreeD/0mC9
6nLPxD//5NenvUl0tgX/rKG7GToyUOF7vJ0w8UheLOYNsZKByuExOFbJQHnkEVIqGCgPLAI+XjBQ
qZiFtGCgdD7Y1DxVmBgoY5RVqWSgBZQZaAYzAy2wiR3yGjdZX6aQ0xwK/pknW/DPrJMJLFQ3DVFi
BxioHLCw3Hc6AdUK2lQkMHUC+oDvzV2tMJC8W9+nXcPp0bFfR8DDkI6VZF5N5jeaxsXFis/Xb1BI
Ed8zU3hMAX6xLgApEagjTcZxFVfc03nj/3R9fN8lPpcHi44pXXgUAX72kBVwmgd28YQvpLh3/J+X
479q/g+8Q9qFCmVuZHN0cmVhbQplbmRvYmoKOQowCm9iago1NTY1CmVuZG9iagoxMAowCm9iagpb
Cl0KZW5kb2JqCjExCjAKb2JqCjw8Ci9DQQoxLjAKL2NhCjEuMAo+PgplbmRvYmoKOAowCm9iago8
PAovRm9udAo8PAovRm9udDEKMTIKMApSCi9Gb250MgoxMwowClIKL0ZvbnQzCjE0CjAKUgo+Pgov
UGF0dGVybgo8PAo+PgovWE9iamVjdAo8PAo+PgovRXh0R1N0YXRlCjw8Ci9BbHBoYTAKMTEKMApS
Cj4+Ci9Qcm9jU2V0ClsKL1BERgovVGV4dAovSW1hZ2VCCi9JbWFnZUMKL0ltYWdlSQpdCj4+CmVu
ZG9iagoxMgowCm9iago8PAovVHlwZQovRm9udAovU3VidHlwZQovVHlwZTAKL0Jhc2VGb250Ci9N
VUZVWlkrQXJpYWxNVAovRW5jb2RpbmcKL0lkZW50aXR5LUgKL0Rlc2NlbmRhbnRGb250cwpbCjE1
CjAKUgpdCi9Ub1VuaWNvZGUKMTYKMApSCj4+CmVuZG9iagoxMwowCm9iago8PAovVHlwZQovRm9u
dAovU3VidHlwZQovVHlwZTAKL0Jhc2VGb250Ci9NVUZVWlkrQXJpYWwtQm9sZE1UCi9FbmNvZGlu
ZwovSWRlbnRpdHktSAovRGVzY2VuZGFudEZvbnRzClsKMTkKMApSCl0KL1RvVW5pY29kZQoyMAow
ClIKPj4KZW5kb2JqCjE0CjAKb2JqCjw8Ci9UeXBlCi9Gb250Ci9TdWJ0eXBlCi9UeXBlMAovQmFz
ZUZvbnQKL01VRlVaWStBcmlhbC1JdGFsaWNNVAovRW5jb2RpbmcKL0lkZW50aXR5LUgKL0Rlc2Nl
bmRhbnRGb250cwpbCjIzCjAKUgpdCi9Ub1VuaWNvZGUKMjQKMApSCj4+CmVuZG9iagoxNgowCm9i
ago8PAovRmlsdGVyCi9GbGF0ZURlY29kZQovTGVuZ3RoCjI3CjAKUgo+PgpzdHJlYW0KeJyFUstu
gzAQvPsrfEwPEdhAkkrIUpWqEoc+VNoPAHtJLRVjGXLg72t2mzRtpdYS2Ds7s7OwTvbVbeXsxJOn
MOgaJt5ZZwKMwzFo4C0crGNCcmP19BnhW/eNZ0kU1/M4QV+5bmBlyZPnmBynMPPVjRlauGLJYzAQ
rDvw1eu+jnF99P4denATT5lS3EAXC903/qHpgScoW1cm5u00r6Pmi/Eye+ASY0HN6MHA6BsNoXEH
YGUal+LlXVyKgTM/8imp2o7CSDgdxSmj35qAdbJYJ01lqoiGePZdv9AapKWG2FuFYIeREARqBEVO
4A63TKg/7SWxc3FpX/yylxuyoKJ5hk6yPfkiuCOQesokgdRTVhC4xa2QCOZkXdCXbf5ptCCX7fVl
o8ufXy7Ieaz6GEKcKN4iHOUyROvgfNH84BcVPh+9PsN/CmVuZHN0cmVhbQplbmRvYmoKMTgKMApv
YmoKPDwKL0ZpbHRlcgovRmxhdGVEZWNvZGUKL0xlbmd0aAoyOAowClIKPj4Kc3RyZWFtCnic7b15
fFRF9jd8qu7a++0lvaWT7k4nnZAOJGQhBCK5QAJI2DcTTCTIIqsQNkFRwshmBEVnRHFjERVFhiYE
DIsDo44LijAqODqjouI+jIyDzCim+zl1uxOB8Xlmfs/7vv+8H3PzvaeqbtWtqlPnnDrn3hsAAgA6
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
K0FyaWFsTVQKL0NJRFN5c3RlbUluZm8KPDwKL1JlZ2lzdHJ5CihBZG9iZSkKL09yZGVyaW5nCihV
Q1MpCi9TdXBwbGVtZW50CjAKPj4KL0ZvbnREZXNjcmlwdG9yCjE3CjAKUgovQ0lEVG9HSURNYXAK
L0lkZW50aXR5Ci9EVwo1NTYKL1cKWwowClsKNzUwCjAKMAoyNzcKXQo0CjkKMAoxMApbCjE5MAoz
MzMKMzMzCjM4OQowCjI3NwozMzMKMjc3CjAKMApdCjIwCjI0CjU1NgoyNQozNQowCjM2ClsKNjY2
CjAKNzIyCjcyMgo2NjYKMAowCjcyMgoyNzcKMAowCjU1Ngo4MzMKNzIyCjc3NwowCjAKNzIyCjY2
Ngo2MTAKXQo1Ngo2NwowCjY4CjY5CjU1Ngo3MApbCjUwMAo1NTYKNTU2CjI3Nwo1NTYKNTU2CjIy
MgoyMjIKNTAwCjIyMgo4MzMKXQo4MQo4NAo1NTYKODUKWwozMzMKNTAwCjI3Nwo1NTYKNTAwCjcy
MgowCjUwMApdCl0KPj4KZW5kb2JqCjE3CjAKb2JqCjw8Ci9UeXBlCi9Gb250RGVzY3JpcHRvcgov
Rm9udE5hbWUKL01VRlVaWStBcmlhbE1UCi9GbGFncwo0Ci9Gb250QkJveApbCi02NjQKLTMyNAoy
MDI4CjEwMzcKXQovQXNjZW50CjcyOAovRGVzY2VudAotMjEwCi9JdGFsaWNBbmdsZQowCi9DYXBI
ZWlnaHQKMAovU3RlbVYKODAKL0ZvbnRGaWxlMgoxOAowClIKPj4KZW5kb2JqCjIwCjAKb2JqCjw8
Ci9GaWx0ZXIKL0ZsYXRlRGVjb2RlCi9MZW5ndGgKMjkKMApSCj4+CnN0cmVhbQp4nIVSy26DMBC8
8xU+pocIGxOSSgipSlWJQx8q7QeAvaRIxVjGOfD3NbtNmoeUWgIz3pmdNZp4Wz6WpvMsfnODqsCz
tjPawTjsnQLWwK4zkUiY7pT/RfhWfW2jOIirafTQl6Ydojxn8Xsojt5NbPGghwbuovjVaXCd2bHF
57YKuNpb+w09GM94VBRMQxsaPdf2pe6BxShbljrUOz8tg+aP8TFZYAliQcOoQcNoawWuNjuIch5W
wfKnsIoIjL6oc1I1LcFAOHyKQ0V91Q77yNCH84QXRMNzca6faQ3SuCL2prjZVAiiwe2mIkWa2OAm
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
XjxjL07wBQDucXxea6F+X+bz2npki/vL7LbCvnGK+6mgrYHMYvHfzMvAKmh2nGpJBUisyl5VsKqs
JbuloKXMIP6EywYUBjeIo7S1cINEs8OzuhWB5OwGiv9RFIz3RGtauj5wi0iEww3hWfp/9KSzVR1O
/AdQKP2UYmclep2ldz+7e0Hi5bMo3jheGZ7TzTQnwaJXztFZkPxff8xccgplbmRzdHJlYW0KZW5k
b2JqCjE5CjAKb2JqCjw8Ci9UeXBlCi9Gb250Ci9TdWJ0eXBlCi9DSURGb250VHlwZTIKL0Jhc2VG
b250Ci9NVUZVWlkrQXJpYWwtQm9sZE1UCi9DSURTeXN0ZW1JbmZvCjw8Ci9SZWdpc3RyeQooQWRv
YmUpCi9PcmRlcmluZwooVUNTKQovU3VwcGxlbWVudAowCj4+Ci9Gb250RGVzY3JpcHRvcgoyMQow
ClIKL0NJRFRvR0lETWFwCi9JZGVudGl0eQovRFcKNjEwCi9XClsKMApbCjc1MAowCjAKMjc3Cl0K
NAoxMAowCjExCjEyCjMzMwoxMwoxNgowCjE3ClsKMjc3CjAKMApdCjIwCjI0CjU1NgoyNQozMAow
CjMxClsKNTgzCjAKNTgzCl0KMzQKMzcKMAozOAozOQo3MjIKNDAKNDcKMAo0OApbCjgzMwowCjc3
NwpdCjUxCjY3CjAKNjgKWwo1NTYKMAo1NTYKNjEwCjU1NgowCjYxMAo2MTAKMjc3CjAKNTU2CjI3
Nwo4ODkKNjEwCjYxMApdCjgzCjg2CjAKODcKWwozMzMKMAo1NTYKXQpdCj4+CmVuZG9iagoyMQow
Cm9iago8PAovVHlwZQovRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lCi9NVUZVWlkrQXJpYWwtQm9s
ZE1UCi9GbGFncwo0Ci9Gb250QkJveApbCi02MjcKLTM3NgoyMDMzCjEwNDcKXQovQXNjZW50Cjcy
OAovRGVzY2VudAotMjEwCi9JdGFsaWNBbmdsZQowCi9DYXBIZWlnaHQKMAovU3RlbVYKODAKL0Zv
bnRGaWxlMgoyMgowClIKPj4KZW5kb2JqCjI0CjAKb2JqCjw8Ci9GaWx0ZXIKL0ZsYXRlRGVjb2Rl
Ci9MZW5ndGgKMzEKMApSCj4+CnN0cmVhbQp4nH1S226DMAx9z1fksXuouBToKqFIU6dJPOyisX0A
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
8kETQzRaqemv3rs+pv+Tca3wLncWdJ5yn9Y10KdzDYSCAhv7/yDpYoRPxC4Jwbj7Om0r4lp5IE+r
3BHYrQ8PpQ1IG8CGUHvZkIH999bwkG1FX2dcK3k6PKRgtwnX6LTPhQsX4QdsRbMKO34WhD+LwnQh
lPhSxpb4CkZXlDVKUpHPW1VYjn092/t0uiJ/8Fioswd25rNOjutg7OjTaMKMKI1DI1PJSDvJwS2U
exbgVnChzhJcuAD+D19lbYoKZW5kc3RyZWFtCmVuZG9iagoyMwowCm9iago8PAovVHlwZQovRm9u
dAovU3VidHlwZQovQ0lERm9udFR5cGUyCi9CYXNlRm9udAovTVVGVVpZK0FyaWFsLUl0YWxpY01U
Ci9DSURTeXN0ZW1JbmZvCjw8Ci9SZWdpc3RyeQooQWRvYmUpCi9PcmRlcmluZwooVUNTKQovU3Vw
cGxlbWVudAowCj4+Ci9Gb250RGVzY3JpcHRvcgoyNQowClIKL0NJRFRvR0lETWFwCi9JZGVudGl0
eQovRFcKNTU2Ci9XClsKMApbCjc1MApdCjEKMzcKMAozOAozOQo3MjIKNDAKNDYKMAo0NwpbCjU1
Ngo4MzMKXQo0OQo2NwowCjY4ClsKNTU2CjAKNTAwCjU1Ngo1NTYKXQo3Mwo3NQowCjc2ClsKMjIy
CjAKMAoyMjIKMAo1NTYKNTU2CjAKMAozMzMKNTAwCjI3NwowCjUwMApdCl0KPj4KZW5kb2JqCjI1
CjAKb2JqCjw8Ci9UeXBlCi9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUKL01VRlVaWStBcmlhbC1J
dGFsaWNNVAovRmxhZ3MKNjgKL0ZvbnRCQm94ClsKLTUxNwotMzI0CjEwODEKMTAyNApdCi9Bc2Nl
bnQKNzI4Ci9EZXNjZW50Ci0yMDcKL0l0YWxpY0FuZ2xlCi0xMi4wCi9DYXBIZWlnaHQKMAovU3Rl
bVYKODAKL0ZvbnRGaWxlMgoyNgowClIKPj4KZW5kb2JqCjI3CjAKb2JqCjMyNAplbmRvYmoKMjgK
MApvYmoKMTczNjUKZW5kb2JqCjI5CjAKb2JqCjM0OQplbmRvYmoKMzAKMApvYmoKMTM2NTAKZW5k
b2JqCjMxCjAKb2JqCjMxNgplbmRvYmoKMzIKMApvYmoKODk0NwplbmRvYmoKMQowCm9iago8PAov
VHlwZQovUGFnZXMKL0tpZHMKWwo2CjAKUgpdCi9Db3VudAoxCj4+CmVuZG9iagp4cmVmCjAgMzMK
MDAwMDAwMDAwMiA2NTUzNSBmIAowMDAwMDUwMTQ4IDAwMDAwIG4gCjAwMDAwMDAwMDMgMDAwMDAg
ZiAKMDAwMDAwMDAwMCAwMDAwMCBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMDAxNjAgMDAw
MDAgbiAKMDAwMDAwMDIwNyAwMDAwMCBuIAowMDAwMDAwMzczIDAwMDAwIG4gCjAwMDAwMDYwOTAg
MDAwMDAgbiAKMDAwMDAwNjAxMiAwMDAwMCBuIAowMDAwMDA2MDMyIDAwMDAwIG4gCjAwMDAwMDYw
NTIgMDAwMDAgbiAKMDAwMDAwNjI3NSAwMDAwMCBuIAowMDAwMDA2NDE5IDAwMDAwIG4gCjAwMDAw
MDY1NjggMDAwMDAgbiAKMDAwMDAyNDU2MCAwMDAwMCBuIAowMDAwMDA2NzE5IDAwMDAwIG4gCjAw
MDAwMjUwNDUgMDAwMDAgbiAKMDAwMDAwNzExOSAwMDAwMCBuIAowMDAwMDM5MzkxIDAwMDAwIG4g
CjAwMDAwMjUyNDAgMDAwMDAgbiAKMDAwMDAzOTgzOSAwMDAwMCBuIAowMDAwMDI1NjY1IDAwMDAw
IG4gCjAwMDAwNDk0NTQgMDAwMDAgbiAKMDAwMDA0MDAzOSAwMDAwMCBuIAowMDAwMDQ5ODE2IDAw
MDAwIG4gCjAwMDAwNDA0MzEgMDAwMDAgbiAKMDAwMDA1MDAyMyAwMDAwMCBuIAowMDAwMDUwMDQz
IDAwMDAwIG4gCjAwMDAwNTAwNjUgMDAwMDAgbiAKMDAwMDA1MDA4NSAwMDAwMCBuIAowMDAwMDUw
MTA3IDAwMDAwIG4gCjAwMDAwNTAxMjcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZQozMwovUm9v
dAo0CjAKUgovSW5mbwo1CjAKUgo+PgpzdGFydHhyZWYKNTAyMDcKJSVFT0YK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81855</attachid>
            <date>2011-02-09 13:10:15 -0800</date>
            <delta_ts>2011-02-09 13:11:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53777-20110209211012.patch</filename>
            <type>text/plain</type>
            <size>135972</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCAzOTcxMDM3YjljNzZiYzQwMDcwMDZjMmU2MTZh
Y2NkNzFjMTJiMTY2Li41N2ZkMDZlYzdhOTcwYzFhODVjYjhlZDgwMTA1ZTQ2ZDg1Y2JlNDBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC02Niw2ICs2Niw3IEBAIEVOQUJMRV9EQVRBR1JJ
RCA9IDsKIEVOQUJMRV9EQVRBTElTVCA9ICQoRU5BQkxFX0RBVEFMSVNUXyQoUkVBTF9QTEFURk9S
TV9OQU1FKSk7CiBFTkFCTEVfREFUQUxJU1RfbWFjb3N4ID0gRU5BQkxFX0RBVEFMSVNUOwogCitF
TkFCTEVfREVWSUNFX0VMRU1FTlQgPSA7CiBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OID0gOwog
RU5BQkxFX0RJUkVDVE9SWV9VUExPQUQgPSA7CiBFTkFCTEVfRE9NX1NUT1JBR0UgPSBFTkFCTEVf
RE9NX1NUT1JBR0U7CkBAIC0xMjUsNCArMTI2LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFC
TEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1G
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQo
RU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRf
QkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkg
JChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09V
UkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5B
QkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVf
TUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5B
QkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVO
QUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykg
JChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1B
R0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAk
KEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJ
REVPKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5B
QkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5B
QkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9Y
U0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNEX1JFTkRF
UklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RB
VEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX0VMRU1FTlQpICQoRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFC
TEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAk
KEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIp
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFC
TEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9U
QUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9I
QU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9T
VkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JK
Q19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpF
Q1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9NRURJQV9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJM
RV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hI
VE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggMzk3
MTAzN2I5Yzc2YmM0MDA3MDA2YzJlNjE2YWNjZDcxYzEyYjE2Ni4uNTdmZDA2ZWM3YTk3MGMxYTg1
Y2I4ZWQ4MDEwNWU0NmQ4NWNiZTQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTY2LDYgKzY2LDcgQEAgRU5B
QkxFX0RBVEFHUklEID0gOwogRU5BQkxFX0RBVEFMSVNUID0gJChFTkFCTEVfREFUQUxJU1RfJChS
RUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9EQVRBTElTVF9tYWNvc3ggPSBFTkFCTEVfREFU
QUxJU1Q7CiAKK0VOQUJMRV9ERVZJQ0VfRUxFTUVOVCA9IDsKIEVOQUJMRV9ERVZJQ0VfT1JJRU5U
QVRJT04gPSA7CiBFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCA9IDsKIEVOQUJMRV9ET01fU1RPUkFH
RSA9IEVOQUJMRV9ET01fU1RPUkFHRTsKQEAgLTEyNSw0ICsxMjYsNCBAQCBFTkFCTEVfWEhUTUxN
UCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxF
X1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNEX1JF
TkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxF
X0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFC
TEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAk
KEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lD
T05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVT
U19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJF
RF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxF
X1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9T
VkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkg
JChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9B
VURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxF
X1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgp
ICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRD
SCkgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkg
JChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfRUxF
TUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBM
T0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxF
X0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkg
JChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1B
R0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BF
RUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5B
QkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVS
X1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcp
ICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykg
JChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCBhMGM1OWRiNjk5NjBhZTNkOWY3MDgxOWY3ZDYyZGU3MDM3M2FmNGFj
Li5iNTA1YmY5NDllNGMzMjFlZmFlNDE0OTUyOWIwMDA1YzQ0OTAyNGYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQpAQCAtNDExMiw2ICs0MTEyLDE2IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBc
CiBlbmRpZiAjIEVORCBFTkFCTEVfRklMRV9TWVNURU0KIAogIyAtLS0tCisjIERldmljZSBFbGVt
ZW50IFN1cHBvcnQKKyMgLS0tLQoraWYgRU5BQkxFX0RFVklDRV9FTEVNRU5UCitGRUFUVVJFX0RF
RklORVMgKz0gRU5BQkxFX0RFVklDRV9FTEVNRU5UPTEKK3dlYmNvcmVfY3BwZmxhZ3MgKz0gLURF
TkFCTEVfREVWSUNFX0VMRU1FTlQ9MQorZWxzZQord2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJM
RV9ERVZJQ0VfRUxFTUVOVD0wCitlbmRpZiAjIEVORCBFTkFCTEVfREVWSUNFX0VMRU1FTlQKKwor
IyAtLS0tCiAjIFNwZWVjaCBJbnB1dCBBUEkgc3VwcG9ydAogIyAtLS0tCiBpZiBFTkFCTEVfSU5Q
VVRfU1BFRUNICmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMjEzZWJhMzQwMzhmNGNjYjQ2NDIxMTFhYjlj
N2E4MWEwNTEwMjdlZC4uYTg5NGU3ZGQ0ODBiYzkwODhiMTYxNmQzOTg3NzA0NTBiN2EyZDlmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtNzYsNiArNzYsOCBAQAogICAgICAgICAgICAgJ2RvbS9SYW5n
ZS5pZGwnLAogICAgICAgICAgICAgJ2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwnLAogICAgICAgICAg
ICAgJ2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwnLAorICAgICAgICAgICAg
J2RvbS9TdHJlYW0uaWRsJywKKyAgICAgICAgICAgICdkb20vU3RyZWFtUmVjb3JkZXIuaWRsJywK
ICAgICAgICAgICAgICdkb20vVGV4dC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9UZXh0RXZlbnQu
aWRsJywKICAgICAgICAgICAgICdkb20vVG91Y2guaWRsJywKQEAgLTE0Myw2ICsxNDUsNyBAQAog
ICAgICAgICAgICAgJ2h0bWwvSFRNTERhdGFHcmlkUm93RWxlbWVudC5pZGwnLAogICAgICAgICAg
ICAgJ2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MRGV2aWNlRWxlbWVu
dC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaWRsJywKICAg
ICAgICAgICAgICdodG1sL0hUTUxEaXZFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MRG9jdW1lbnQuaWRsJywKQEAgLTY0OCw2ICs2NTEsNyBAQAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNIVE1MRGF0YUdyaWRFbGVtZW50Q3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHAnLApAQCAtODMyLDYgKzgzNiw3IEBACiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ29sbGVjdGlvbkN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEYXRhR3JpZEVs
ZW1lbnRDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1M
RGV2aWNlRWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEhUTUxFbGVtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcCcsCkBAIC0xMTg4LDYgKzExOTMsOSBA
QAogICAgICAgICAgICAgJ2RvbS9Dcm9zc1RocmVhZFRhc2suaCcsCiAgICAgICAgICAgICAnZG9t
L0N1c3RvbUV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0N1c3RvbUV2ZW50LmgnLAorICAg
ICAgICAgICAgJ2RvbS9EZXZpY2VDb25uZWN0aW9uSWQuaCcsCisgICAgICAgICAgICAnZG9tL0Rl
dmljZVR5cGUuY3BwJywKKyAgICAgICAgICAgICdkb20vRGV2aWNlVHlwZS5oJywKICAgICAgICAg
ICAgICdkb20vRE9NQ29yZUV4Y2VwdGlvbi5oJywKICAgICAgICAgICAgICdkb20vRE9NSW1wbGVt
ZW50YXRpb24uY3BwJywKICAgICAgICAgICAgICdkb20vRE9NSW1wbGVtZW50YXRpb24uaCcsCkBA
IC0xMjAwLDYgKzEyMDgsOCBAQAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFw
LmgnLAogICAgICAgICAgICAgJ2RvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCcsCiAg
ICAgICAgICAgICAnZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaCcsCisgICAgICAgICAg
ICAnZG9tL0RldmljZUVsZW1lbnQuY3BwJywKKyAgICAgICAgICAgICdkb20vRGV2aWNlRWxlbWVu
dC5oJywKICAgICAgICAgICAgICdkb20vRGV2aWNlTW90aW9uQ2xpZW50LmgnLAogICAgICAgICAg
ICAgJ2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0Rl
dmljZU1vdGlvbkNvbnRyb2xsZXIuaCcsCkBAIC0xMzQ2LDYgKzEzNTYsMTAgQEAKICAgICAgICAg
ICAgICdkb20vU3RhdGljTm9kZUxpc3QuaCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY1N0cmlu
Z0xpc3QuY3BwJywKICAgICAgICAgICAgICdkb20vU3RhdGljU3RyaW5nTGlzdC5oJywKKyAgICAg
ICAgICAgICdkb20vU3RyZWFtLmNwcCcsCisgICAgICAgICAgICAnZG9tL1N0cmVhbS5oJywKKyAg
ICAgICAgICAgICdkb20vU3RyZWFtUmVjb3JkZXIuY3BwJywKKyAgICAgICAgICAgICdkb20vU3Ry
ZWFtUmVjb3JkZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlRWxlbWVudC5jcHAnLAogICAg
ICAgICAgICAgJ2RvbS9TdHlsZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlZEVs
ZW1lbnQuY3BwJywKQEAgLTE3MDAsNiArMTcxNCw4IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1M
RGF0YUxpc3RFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERldGFpbHNFbGVtZW50
LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCcsCisgICAgICAg
ICAgICAnaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvSFRN
TERldmljZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVu
dC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaCcsCiAgICAg
ICAgICAgICAnaHRtbC9IVE1MRGl2RWxlbWVudC5jcHAnLApAQCAtMjI4MSw2ICsyMjk3LDExIEBA
CiAgICAgICAgICAgICAncGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwJywKICAgICAgICAg
ICAgICdwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oJywKICAgICAgICAgICAgICdwYWdlL0Nv
bnRleHRNZW51UHJvdmlkZXIuaCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VDbGllbnQuaCcs
CisgICAgICAgICAgICAncGFnZS9EZXZpY2VDb25uZWN0aW9uLmgnLAorICAgICAgICAgICAgJ3Bh
Z2UvRGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXIuY3BwJywKKyAgICAgICAgICAgICdwYWdlL0Rl
dmljZUNvbm5lY3Rpb25Db250cm9sbGVyLmgnLAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlTGlz
dGVuZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9ET01TZWxlY3Rpb24uY3BwJywKICAgICAgICAg
ICAgICdwYWdlL0RPTVNlbGVjdGlvbi5oJywKICAgICAgICAgICAgICdwYWdlL0RPTVRpbWVyLmNw
cCcsCkBAIC0zODQxLDYgKzM4NjIsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJE
ZXRhaWxzLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmNw
cCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuaCcsCisgICAg
ICAgICAgICAncmVuZGVyaW5nL1JlbmRlckRldmljZS5jcHAnLAorICAgICAgICAgICAgJ3JlbmRl
cmluZy9SZW5kZXJEZXZpY2UuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlckVtYmVk
ZGVkT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2Jq
ZWN0LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnByaQppbmRleCA0M2VhNDgzYjkxNmQ3NjA1ZDRkNjAxODI0NjQxMmU1MmM0YWE1MTgzLi45
NDllNzA0Yzk1NWUzYjA3YmI3OTU1ZDE5ZDk2MTZiNjE3NDk3NmY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQpA
QCAtMTQzLDYgKzE0Myw4IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgZG9tL1Byb2dyZXNzRXZl
bnQuaWRsIFwKICAgICBkb20vUmFuZ2VFeGNlcHRpb24uaWRsIFwKICAgICBkb20vUmFuZ2UuaWRs
IFwKKyAgICBkb20vU3RyZWFtLmlkbCBcCisgICAgZG9tL1N0cmVhbVJlY29yZGVyLmlkbCBcCiAg
ICAgZG9tL1RleHQuaWRsIFwKICAgICBkb20vVGV4dEV2ZW50LmlkbCBcCiAgICAgZG9tL1RvdWNo
LmlkbCBcCkBAIC0yMzUsNiArMjM3LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBodG1sL0hU
TUxEYXRhR3JpZFJvd0VsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQu
aWRsIFwKICAgICBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5pZGwgXAorICAgIGh0bWwvSFRNTERl
dmljZUVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50LmlkbCBcCiAg
ICAgaHRtbC9IVE1MRGl2RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTERMaXN0RWxlbWVudC5p
ZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybwppbmRleCBjYTJlYTRhNWQyMzRlYzdhMTM2MjM5Y2ZiY2JiMjM3YWM0
NmE4ODZjLi5hMTM1NmI4NDI5NGEyMzJkMzdhNTgxMTQ5Y2Y4OGFjZDNmNTFkM2RjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwpAQCAtMzQ4OCw2ICszNDg4LDM4IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9E
RVZJQ0VfT1JJRU5UQVRJT049MSkgewogICAgIE1PQklMSVRZICs9IHNlbnNvcnMKIH0KIAorY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX0RFVklDRV9FTEVNRU5UPTEpIHsKKyAgICBIRUFERVJTICs9
IFwKKyAgICAgICAgZG9tL0RldmljZUNvbm5lY3Rpb25JZC5oIFwKKyAgICAgICAgZG9tL0Rldmlj
ZUVsZW1lbnQuaCBcCisgICAgICAgIGRvbS9EZXZpY2VUeXBlLmggXAorICAgICAgICBkb20vU3Ry
ZWFtLmggXAorICAgICAgICBkb20vU3RyZWFtUmVjb3JkZXIuaCBcCisgICAgICAgIGh0bWwvSFRN
TERldmljZUVsZW1lbnQuaCBcCisgICAgICAgIHBhZ2UvRGV2aWNlQ2xpZW50LmggXAorICAgICAg
ICBwYWdlL0RldmljZUNvbm5lY3Rpb24uaCBcCisgICAgICAgIHBhZ2UvRGV2aWNlQ29ubmVjdGlv
bkNvbnRyb2xsZXIuaCBcCisgICAgICAgIHBhZ2UvRGV2aWNlTGlzdGVuZXIuaCBcCisgICAgICAg
IHJlbmRlcmluZy9SZW5kZXJEZXZpY2UuaAorCisgICAgU09VUkNFUyArPSBcCisgICAgICAgIGRv
bS9EZXZpY2VFbGVtZW50LmNwcCBcCisgICAgICAgIGRvbS9EZXZpY2VUeXBlLmNwcCBcCisgICAg
ICAgIGRvbS9TdHJlYW0uY3BwIFwKKyAgICAgICAgZG9tL1N0cmVhbVJlY29yZGVyLmNwcCBcCisg
ICAgICAgIGh0bWwvSFRNTERldmljZUVsZW1lbnQuY3BwIFwKKyAgICAgICAgcGFnZS9EZXZpY2VD
b25uZWN0aW9uQ29udHJvbGxlci5jcHAgXAorICAgICAgICByZW5kZXJpbmcvUmVuZGVyRGV2aWNl
LmNwcAorCisgICAgdjggeworICAgICAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAgICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOEhUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcAorICAgIH0gZWxzZSB7
CisgICAgICAgIFNPVVJDRVMgKz0gXAorICAgICAgICAgICAgYmluZGluZ3MvanMvSlNIVE1MRGV2
aWNlRWxlbWVudEN1c3RvbS5jcHAKKyAgICB9Cit9CisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9TVkc9MSkgewogICAgICF2OCB7CiAgICAgICAgIFNPVVJDRVMgKz0gXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iYzc3YjA2ZWQxODMwMjJjNGVhN2RlMzc3Zjk0MDg3ODIxMzZmZjFmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRGV2aWNl
RWxlbWVudEN1c3RvbS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJKU0hUTUxEZXZpY2VFbGVtZW50LmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1F
TlQpCisKKyNpbmNsdWRlICJEZXZpY2VDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiSFRNTERldmlj
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU1N0cmVhbS5oIgorCit1c2luZyBuYW1lc3BhY2UgSlND
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTVmFsdWUgSlNIVE1MRGV2aWNlRWxlbWVudDo6
ZGF0YShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgSFRNTERldmljZUVsZW1lbnQqIGRl
dmljZSA9IHN0YXRpY19jYXN0PEhUTUxEZXZpY2VFbGVtZW50Kj4oaW1wbCgpKTsKKyAgICBpZiAo
Y29uc3QgRGV2aWNlQ29ubmVjdGlvbiogY29ubmVjdGlvbiA9IGRldmljZS0+Y29ubmVjdGlvbigp
KQorICAgICAgICBpZiAoY29ubmVjdGlvbi0+c3RhdGUoKSA9PSBEZXZpY2VDb25uZWN0aW9uOjpD
b25uZWN0ZWQpCisgICAgICAgICAgICAvLyBGSVhNRTogcmV0dXJuIGRldmljZS0+ZGF0YSgpIChS
ZXF1aXJlcyBjb252ZXJzaW9uIHRvIEpTT2JqZWN0KS4KKyAgICAgICAgICAgIC8vIHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBkZXZpY2UtPmRhdGEoKSk7CisgICAgICAgICAgICBy
ZXR1cm4ganNOdWxsKCk7CisKKyAgICByZXR1cm4ganNOdWxsKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEZXZpY2VFbGVtZW50
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEZXZp
Y2VFbGVtZW50Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGJiOWI4NjdjOTQyY2RlZjQwNGNmYTUw
N2M0NzA0Y2JkMGI0ZmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SFRNTERldmljZUVsZW1lbnRDdXN0b20uY3BwCkBAIC0wLDAgKzEsNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVjhIVE1MRGV2aWNlRWxlbWVudC5oIgor
CisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2aWNlQ29ubmVjdGlv
bi5oIgorI2luY2x1ZGUgIkhUTUxEZXZpY2VFbGVtZW50LmgiCisjaW5jbHVkZSAiVjhCaW5kaW5n
LmgiCisjaW5jbHVkZSAiVjhTdHJlYW0uaCIKKworI2luY2x1ZGUgPHY4Lmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTERldmljZUVsZW1lbnQ6
OmRhdGFBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6
OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5IVE1MRGV2aWNlRWxl
bWVudC5kYXRhLl9nZXQiKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGlu
Zm8uSG9sZGVyKCk7CisgICAgSFRNTERldmljZUVsZW1lbnQqIGRldmljZSA9IFY4SFRNTERldmlj
ZUVsZW1lbnQ6OnRvTmF0aXZlKGhvbGRlcik7CisgICAgaWYgKGNvbnN0IERldmljZUNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24gPSBkZXZpY2UtPmNvbm5lY3Rpb24oKSkKKyAgICAgICAgaWYgKGNvbm5l
Y3Rpb24tPnN0YXRlKCkgPT0gRGV2aWNlQ29ubmVjdGlvbjo6Q29ubmVjdGVkKQorICAgICAgICAg
ICAgcmV0dXJuIHRvVjgoZGV2aWNlLT5kYXRhKCkpOworCisgICAgcmV0dXJuIHY4OjpOdWxsKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0Vf
RUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oCmluZGV4IGZiNGFmZjMwOGVmMWI1M2FmY2YwY2M2MmQ0Yjg0NGVhYmU4ZWRlZWUuLjUxZjRj
MjUwMzBmYTcyZmJlNDQ0OTI3Yjg4YzQ3NmE3MmQ3YmU4ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtMzU0LDYgKzM1NCwxMCBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29u
dHJvbFBhcnQgZSkKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQogICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0SW5wdXRTcGVlY2hCdXR0b247CiAjZW5kaWYKKyAgICAg
ICAgY2FzZSBEZXZpY2VCdXR0b25QYXJ0OgorI2lmIEVOQUJMRShERVZJQ0VfVEFHKQorICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0RGV2aWNlQnV0dG9uOworI2VuZGlm
CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cAppbmRleCBkZjE5MmQ3NzBmOWE3OWM0NjIwODc2OGYxYTM3ZDdkY2E4ODQxYjhhLi4zNDg1NTA2
ZGNlZTBlNTUzMzRjNTgyMjc5YjMxNjBjOWU3MWU5OTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvci5jcHAKQEAgLTEzMCw2ICsxMzAsMTAgQEAgUHNldWRvSWQgQ1NTU2VsZWN0b3I6OnBzZXVk
b0lkKFBzZXVkb1R5cGUgdHlwZSkKICAgICBjYXNlIFBzZXVkb0lucHV0U3BlZWNoQnV0dG9uOgog
ICAgICAgICByZXR1cm4gSU5QVVRfU1BFRUNIX0JVVFRPTjsKICNlbmRpZgorI2lmIEVOQUJMRShE
RVZJQ0VfRUxFTUVOVCkKKyAgICBjYXNlIFBzZXVkb0RldmljZUJ1dHRvbjoKKyAgICAgICAgcmV0
dXJuIERFVklDRV9CVVRUT047CisjZW5kaWYKICAgICBjYXNlIFBzZXVkb1NlYXJjaENhbmNlbEJ1
dHRvbjoKICAgICAgICAgcmV0dXJuIFNFQVJDSF9DQU5DRUxfQlVUVE9OOwogICAgIGNhc2UgUHNl
dWRvU2VhcmNoRGVjb3JhdGlvbjoKQEAgLTI4NSw2ICsyODksOSBAQCBzdGF0aWMgSGFzaE1hcDxB
dG9taWNTdHJpbmdJbXBsKiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+KiBuYW1lVG9Qc2V1ZG9U
eXBlTWFwKAogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGlucHV0U3BlZWNoQnV0dG9uLCAoIi13ZWJraXQtaW5wdXQtc3BlZWNo
LWJ1dHRvbiIpKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZGV2aWNlQnV0dG9uLCAoIi13ZWJraXQtZGV2
aWNlLWJ1dHRvbiIpKTsKKyNlbmRpZgogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBkZWZhdWx0U3RyaW5nLCAoImRlZmF1bHQiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGRpc2FibGVkLCAoImRpc2FibGVkIikpOwogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZWFkT25seSwgKCJyZWFkLW9ubHkiKSk7CkBAIC0zODks
NiArMzk2LDkgQEAgc3RhdGljIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbGVjdG9y
OjpQc2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlwZU1hcCgKICNpZiBFTkFCTEUoSU5QVVRfU1BF
RUNIKQogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoaW5wdXRTcGVlY2hCdXR0b24uaW1w
bCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvSW5wdXRTcGVlY2hCdXR0b24pOwogI2VuZGlmCisjaWYg
RU5BQkxFKERFVklDRV9FTEVNRU5UKQorICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoZGV2
aWNlQnV0dG9uLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0RldmljZUJ1dHRvbik7CisjZW5k
aWYKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGRlZmF1bHRTdHJpbmcuaW1wbCgpLCBD
U1NTZWxlY3Rvcjo6UHNldWRvRGVmYXVsdCk7CiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNl
dChkaXNhYmxlZC5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9EaXNhYmxlZCk7CiAgICAgICAg
IG5hbWVUb1BzZXVkb1R5cGUtPnNldChyZWFkT25seS5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1
ZG9SZWFkT25seSk7CkBAIC01MTMsNiArNTIzLDkgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFj
dFBzZXVkb1R5cGUoKSBjb25zdAogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgY2FzZSBQ
c2V1ZG9JbnB1dFNwZWVjaEJ1dHRvbjoKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVO
VCkKKyAgICBjYXNlIFBzZXVkb0RldmljZUJ1dHRvbjoKKyNlbmRpZgogICAgIGNhc2UgUHNldWRv
SW5uZXJTcGluQnV0dG9uOgogICAgIGNhc2UgUHNldWRvTWVkaWFDb250cm9sc1BhbmVsOgogICAg
IGNhc2UgUHNldWRvTWVkaWFDb250cm9sc0N1cnJlbnRUaW1lRGlzcGxheToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmgKaW5kZXggZjNmODAwYmZhZGViODI3NzkyMjUzZWE1YjgyNzg1MDJiMGIyY2Q4
ZS4uOGY0NjFhNGU3OTg0MGQ0MjNlNzRkMmI0NmU1ZTA5ODY0ODRkN2ZjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmgKQEAgLTE5Myw2ICsxOTMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAj
aWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAgICAgICAgIFBzZXVkb0lucHV0U3BlZWNoQnV0
dG9uLAogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorICAgICAgICAgICAgUHNl
dWRvRGV2aWNlQnV0dG9uLAorI2VuZGlmCiAgICAgICAgICAgICBQc2V1ZG9Jbm5lclNwaW5CdXR0
b24sCiAgICAgICAgICAgICBQc2V1ZG9PdXRlclNwaW5CdXR0b24sCiAgICAgICAgICAgICBQc2V1
ZG9MZWZ0UGFnZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNGZj
ZTRmMzkwNjhjZWQzYjgyZTUxMDZmODk1Y2E3NzY3ZGZjOTgxYi4uMThlYjg4NTI5YjM4OTIxMjRl
YzhiMWZjN2UzYWFhYzMxNTg2YTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4KQEAgLTU3MSw2ICs1NzEsNyBAQCBidXR0b24tYmV2ZWwKIGRlZmF1bHQtYnV0dG9uCiBp
bm5lci1zcGluLWJ1dHRvbgogLXdlYmtpdC1pbnB1dC1zcGVlY2gtYnV0dG9uCistd2Via2l0LWRl
dmljZS1idXR0b24KIGxpc3QtYnV0dG9uCiBsaXN0Ym94CiBsaXN0aXRlbQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3Nz
CmluZGV4IDc5ZmRlODgwY2NjZjhhNTU0M2IxZDdiYTA1YTI1MmRmOGI5ZDNjMTEuLjUzNDRkNWVm
ZGI1NGZkMDU4OTE3ZTY5ZDVjMzcyZjUzOWRmZTBlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9odG1sLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKQEAgLTQ3
OSwxMiArNDc5LDEyIEBAIGlucHV0W3R5cGU9InJhZGlvIl0sIGlucHV0W3R5cGU9ImNoZWNrYm94
Il0gewogICAgIGJvcmRlcjogaW5pdGlhbDsKIH0KIAotaW5wdXRbdHlwZT0iYnV0dG9uIl0sIGlu
cHV0W3R5cGU9InN1Ym1pdCJdLCBpbnB1dFt0eXBlPSJyZXNldCJdLCBpbnB1dFt0eXBlPSJmaWxl
Il06Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHsKK2lucHV0W3R5cGU9ImJ1dHRvbiJdLCBp
bnB1dFt0eXBlPSJzdWJtaXQiXSwgaW5wdXRbdHlwZT0icmVzZXQiXSwgaW5wdXRbdHlwZT0iZmls
ZSJdOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiwgZGV2aWNlOjotd2Via2l0LWRldmljZS1i
dXR0b24gewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogcHVzaC1idXR0b247CiAgICAgd2hpdGUt
c3BhY2U6IHByZQogfQogCi1pbnB1dFt0eXBlPSJidXR0b24iXSwgaW5wdXRbdHlwZT0ic3VibWl0
Il0sIGlucHV0W3R5cGU9InJlc2V0Il0sIGlucHV0W3R5cGU9ImZpbGUiXTo6LXdlYmtpdC1maWxl
LXVwbG9hZC1idXR0b24sIGJ1dHRvbiB7CitpbnB1dFt0eXBlPSJidXR0b24iXSwgaW5wdXRbdHlw
ZT0ic3VibWl0Il0sIGlucHV0W3R5cGU9InJlc2V0Il0sIGlucHV0W3R5cGU9ImZpbGUiXTo6LXdl
YmtpdC1maWxlLXVwbG9hZC1idXR0b24sIGRldmljZTo6LXdlYmtpdC1kZXZpY2UtYnV0dG9uLCBi
dXR0b24gewogICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CiAgICAgdGV4dC1hbGlnbjog
Y2VudGVyOwogICAgIGN1cnNvcjogZGVmYXVsdDsKQEAgLTUwOSwxNSArNTA5LDE2IEBAIGlucHV0
W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKIAogaW5wdXRbdHlwZT0iYnV0
dG9uIl06ZGlzYWJsZWQsIGlucHV0W3R5cGU9InN1Ym1pdCJdOmRpc2FibGVkLCBpbnB1dFt0eXBl
PSJyZXNldCJdOmRpc2FibGVkLAogaW5wdXRbdHlwZT0iZmlsZSJdOmRpc2FibGVkOjotd2Via2l0
LWZpbGUtdXBsb2FkLWJ1dHRvbiwgYnV0dG9uOmRpc2FibGVkLAotc2VsZWN0OmRpc2FibGVkLCBr
ZXlnZW46ZGlzYWJsZWQsIG9wdGdyb3VwOmRpc2FibGVkLCBvcHRpb246ZGlzYWJsZWQsIGRhdGFn
cmlkOmRpc2FibGVkIHsKK3NlbGVjdDpkaXNhYmxlZCwga2V5Z2VuOmRpc2FibGVkLCBvcHRncm91
cDpkaXNhYmxlZCwgb3B0aW9uOmRpc2FibGVkLCBkYXRhZ3JpZDpkaXNhYmxlZCwKK2RldmljZTpk
aXNhYmxlZDo6LXdlYmtpdC1kZXZpY2UtYnV0dG9uIHsKICAgICBjb2xvcjogR3JheVRleHQKIH0K
IAotaW5wdXRbdHlwZT0iYnV0dG9uIl06YWN0aXZlLCBpbnB1dFt0eXBlPSJzdWJtaXQiXTphY3Rp
dmUsIGlucHV0W3R5cGU9InJlc2V0Il06YWN0aXZlLCBpbnB1dFt0eXBlPSJmaWxlIl06YWN0aXZl
Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiwgYnV0dG9uOmFjdGl2ZSB7CitpbnB1dFt0eXBl
PSJidXR0b24iXTphY3RpdmUsIGlucHV0W3R5cGU9InN1Ym1pdCJdOmFjdGl2ZSwgaW5wdXRbdHlw
ZT0icmVzZXQiXTphY3RpdmUsIGlucHV0W3R5cGU9ImZpbGUiXTphY3RpdmU6Oi13ZWJraXQtZmls
ZS11cGxvYWQtYnV0dG9uLCBkZXZpY2U6YWN0aXZlOjotd2Via2l0LWRldmljZS1idXR0b24sIGJ1
dHRvbjphY3RpdmUgewogICAgIGJvcmRlci1zdHlsZTogaW5zZXQKIH0KIAotaW5wdXRbdHlwZT0i
YnV0dG9uIl06YWN0aXZlOmRpc2FibGVkLCBpbnB1dFt0eXBlPSJzdWJtaXQiXTphY3RpdmU6ZGlz
YWJsZWQsIGlucHV0W3R5cGU9InJlc2V0Il06YWN0aXZlOmRpc2FibGVkLCBpbnB1dFt0eXBlPSJm
aWxlIl06YWN0aXZlOmRpc2FibGVkOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiwgYnV0dG9u
OmFjdGl2ZTpkaXNhYmxlZCB7CitpbnB1dFt0eXBlPSJidXR0b24iXTphY3RpdmU6ZGlzYWJsZWQs
IGlucHV0W3R5cGU9InN1Ym1pdCJdOmFjdGl2ZTpkaXNhYmxlZCwgaW5wdXRbdHlwZT0icmVzZXQi
XTphY3RpdmU6ZGlzYWJsZWQsIGlucHV0W3R5cGU9ImZpbGUiXTphY3RpdmU6ZGlzYWJsZWQ6Oi13
ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uLCBkZXZpY2U6YWN0aXZlOmRpc2FibGVkOjotd2Via2l0
LWRldmljZS1idXR0b24sIGJ1dHRvbjphY3RpdmU6ZGlzYWJsZWQgewogICAgIGJvcmRlci1zdHls
ZTogb3V0c2V0CiB9CiAKQEAgLTc5Nyw3ICs3OTgsOCBAQCBpbnB1dFt0eXBlPSJyYWRpbyJdOmZv
Y3VzLAogaW5wdXRbdHlwZT0icmVzZXQiXTpmb2N1cywKIGlucHV0W3R5cGU9InNlYXJjaCJdOmZv
Y3VzLAogaW5wdXRbdHlwZT0ic3VibWl0Il06Zm9jdXMsCi1pbnB1dFt0eXBlPSJmaWxlIl06Zm9j
dXM6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHsKK2lucHV0W3R5cGU9ImZpbGUiXTpmb2N1
czo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24sCitkZXZpY2U6Zm9jdXM6Oi13ZWJraXQtZGV2
aWNlLWJ1dHRvbiB7CiAgICAgb3V0bGluZS1vZmZzZXQ6IDAKIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NQWxsSW5PbmUuY3BwCmluZGV4IGM4OGFlY2Y5NDg1NDc0NjlhZDBkZTBlNGFkNTBjY2ZlYzA4
YmY2NTIuLjUxNzk3ZWY3MWMxMjYwY2VkYWJjYzAyMWY0MmQ5NWIxMTZkZDFiMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtNTEsMTIgKzUxLDE0IEBACiAjaW5jbHVkZSAiRE9N
U3RyaW5nTWFwLmNwcCIKICNpbmNsdWRlICJEYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCIKICNpbmNs
dWRlICJEZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCIKKyNpbmNsdWRlICJEZXZpY2VFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCIKICNpbmNsdWRl
ICJEZXZpY2VNb3Rpb25EYXRhLmNwcCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25FdmVudC5jcHAi
CiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb24uY3BwIgogI2luY2x1ZGUgIkRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5j
cHAiCisjaW5jbHVkZSAiRGV2aWNlVHlwZS5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnQuY3BwIgog
I2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5jcHAiCkBAIC0xMTAsNiArMTEyLDggQEAKICNpbmNsdWRlICJTcGFjZVNwbGl0
U3RyaW5nLmNwcCIKICNpbmNsdWRlICJTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIgogI2luY2x1
ZGUgIlN0YXRpY05vZGVMaXN0LmNwcCIKKyNpbmNsdWRlICJTdHJlYW0uY3BwIgorI2luY2x1ZGUg
IlN0cmVhbVJlY29yZGVyLmNwcCIKICNpbmNsdWRlICJTdHlsZUVsZW1lbnQuY3BwIgogI2luY2x1
ZGUgIlN0eWxlZEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlRhZ05vZGVMaXN0LmNwcCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VDb25uZWN0aW9uSWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VDb25uZWN0aW9uSWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWRlNWU1NzBiMGFi
NmE1YzQ5ZGZjM2NhMjg2NWZlMmI1NGQxOGM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZUNvbm5lY3Rpb25JZC5oCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERl
dmljZUNvbm5lY3Rpb25JZF9oCisjZGVmaW5lIERldmljZUNvbm5lY3Rpb25JZF9oCisKKyNpZiBF
TkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgor
I2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFR1cGxlIG9mIDxjb25uZWN0aW9uIGlkZW50aWZpZXIs
IHR5cGU+LgorLy8gQWxsb3dzIHRoZSBEZXZpY2VDb25uZWN0aW9uQ29udHJvbGxlciB0byBhdm9p
ZCBjb2xsaXNpb25zIGJldHdlZW4gbG9jYWwgZGV2aWNlIGNvbm5lY3Rpb24gaWRzIChtYW5hZ2Vk
IGJ5IGl0c2VsZikKKy8vIGFuZCByZW1vdGUgZGV2aWNlIGNvbm5lY3Rpb24gaWRzIChtYW5hZ2Vk
IGJ5IHRoZSBDb25uZWN0aW9uUGVlckNsaWVudCkuCitjbGFzcyBEZXZpY2VDb25uZWN0aW9uSWQg
eworcHVibGljOgorICAgIGVudW0gQ29ubmVjdGlvblR5cGUgeworICAgICAgICBOb25lID0gMCwK
KyAgICAgICAgTG9jYWwsCisgICAgICAgIFJlbW90ZQorICAgIH07CisKKyAgICBEZXZpY2VDb25u
ZWN0aW9uSWQoKQorICAgICAgICA6IG1faWQoMCkKKyAgICAgICAgLCBtX3R5cGUoTm9uZSkKKyAg
ICB7CisgICAgfQorCisgICAgRGV2aWNlQ29ubmVjdGlvbklkKGludCBpZCwgQ29ubmVjdGlvblR5
cGUgdHlwZSkKKyAgICAgICAgOiBtX2lkKGlkKQorICAgICAgICAsIG1fdHlwZSh0eXBlKQorICAg
IHsKKyAgICB9CisKKyAgICBpbnQgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CisgICAgQ29u
bmVjdGlvblR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorICAgIGJvb2wgaXNO
dWxsKCkgY29uc3QgeyByZXR1cm4gIW1faWQgfHwgbV90eXBlID09IE5vbmU7IH0KKyAgICB2b2lk
IHJlc2V0KCkgeyAqdGhpcyA9IERldmljZUNvbm5lY3Rpb25JZCgpOyB9CisKKyAgICAvLyBPcGVy
YXRvcnMgcmVxdWlyZWQgdG8gcmV1c2Ugc3RkOjpwYWlyIGhhc2hpbmcgdGVtcGxhdGVzLgorICAg
IG9wZXJhdG9yIHN0ZDo6cGFpcjxpbnQsIGludD4oKSBjb25zdCB7IHJldHVybiBzdGQ6OnBhaXI8
aW50LCBpbnQ+KG1faWQsIG1fdHlwZSk7IH0KKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRGV2
aWNlQ29ubmVjdGlvbklkJiBjKSBjb25zdCB7IHJldHVybiBtX2lkID09IGMubV9pZCAmJiBtX3R5
cGUgPT0gYy5tX3R5cGU7IH0KKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgRGV2aWNlQ29u
bmVjdGlvbkNvbnRyb2xsZXI7CisgICAgaW50IG1faWQ7CisgICAgQ29ubmVjdGlvblR5cGUgbV90
eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6RGV2aWNlQ29ubmVjdGlvbklk
PiB7CisgICAgdHlwZWRlZiBQYWlySGFzaDxpbnQsIGludD4gSGFzaDsKK307CisKK3RlbXBsYXRl
PD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6RGV2aWNlQ29ubmVjdGlvbklkPiA6IHB1Ymxp
YyBQYWlySGFzaFRyYWl0czxIYXNoVHJhaXRzPGludD4sIEhhc2hUcmFpdHM8aW50PiA+IHsgfTsK
KworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQp
CisKKyNlbmRpZiAvLyBEZXZpY2VDb25uZWN0aW9uSWRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUVs
ZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1NWNlYTNlM2IxMzBiY2JiYzZjZDliNmU1OWU5YmI2ZmZl
MjI1YzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlRWxlbWVu
dC5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZp
Y2VFbGVtZW50LmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworRGV2aWNlRWxlbWVudDo6RGV2aWNlRWxlbWVudCgpCit7Cit9CisKK0Rldmlj
ZUVsZW1lbnQ6OkRldmljZUVsZW1lbnQoY29uc3QgU3RyaW5nJiB0eXBlKQorICAgIDogbV90eXBl
KHR5cGUpCit7Cit9CisKK1N0cmluZyBEZXZpY2VFbGVtZW50Ojp0eXBlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV90eXBlLm5hbWUoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VFbGVtZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDFiOTYyNzM4NjM3OWMxYTcxNTQ5MjczOGVlMDBkYzQ2Yzc4MzI3NAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VFbGVtZW50LmgKQEAg
LTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNlRWxlbWVudF9oCisjZGVmaW5lIERldmljZUVsZW1l
bnRfaAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2aWNlVHlw
ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTdHJlYW07CisKK2NsYXNzIERldmlj
ZUVsZW1lbnQgeworcHVibGljOgorICAgIERldmljZUVsZW1lbnQoKTsKKyAgICBEZXZpY2VFbGVt
ZW50KGNvbnN0IFN0cmluZyYgdHlwZSk7CisKKyAgICBTdHJpbmcgdHlwZSgpIGNvbnN0OworICAg
IHZpcnR1YWwgdm9pZCBzZXRUeXBlKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8U3RyZWFtPiBkYXRhKCkgPSAwOyAvLyBGSVhNRTogdXNlIGdlbmVyaWMgZGF0YSB0
eXBlcyB3aGVuIGV4dGVuZGluZyB0aGUgZGV2aWNlIHR5cGUgYmV5b25kIG1lZGlhLgorCitwcm90
ZWN0ZWQ6CisgICAgRGV2aWNlVHlwZSBtX3R5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNlbmRpZiAvLyBEZXZp
Y2VFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VUeXBlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTY3MzU5
N2IzMGY2YzNhZjJhYzk4NDdkYzhlMDMyMDdkMzc3NzMyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZVR5cGUuY3BwCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZVR5cGUuaCIKKworI2lmIEVOQUJMRShERVZJQ0Vf
RUxFTUVOVCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VUeXBlOjpEZXZpY2VUeXBl
KCkKKyAgICA6IG1faWQoSW52YWxpZCkKK3sKK30KKworRGV2aWNlVHlwZTo6RGV2aWNlVHlwZShU
eXBlSWQgaWQpCit7CisgICAgQVNTRVJUKGlkID4gSW52YWxpZCAmJiBpZCA8IE51bURldmljZVR5
cGVzKTsKKyAgICBtX2lkID0gaWQ7Cit9CisKK0RldmljZVR5cGU6OkRldmljZVR5cGUoY29uc3Qg
U3RyaW5nJiBuYW1lKQoreworICAgIG1faWQgPSBpZEZyb21OYW1lKG5hbWUpOworfQorCitEZXZp
Y2VUeXBlOjpUeXBlSWQgRGV2aWNlVHlwZTo6aWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lk
OworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIERldmljZVR5cGU6Om5hbWUoKSBjb25zdAorewor
ICAgIHJldHVybiBuYW1lRnJvbUlkKG1faWQpOworfQorCitib29sIERldmljZVR5cGU6OmlzVmFs
aWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lkID4gSW52YWxpZCAmJiBtX2lkIDwgTnVtRGV2
aWNlVHlwZXM7Cit9CisKK0RldmljZVR5cGU6OlR5cGVJZCBEZXZpY2VUeXBlOjppZEZyb21OYW1l
KGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICAvLyBBZGQgY29kZSBmb3IgZXh0cmEgZGV2aWNl
IHR5cGVzIGhlcmUuCisgICAgaWYgKG5hbWUgPT0gbWVkaWEoKSkKKyAgICAgICAgcmV0dXJuIE1l
ZGlhOworCisgICAgcmV0dXJuIEludmFsaWQ7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgRGV2
aWNlVHlwZTo6bmFtZUZyb21JZChUeXBlSWQgaWQpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIG51bGxUeXBlTmFtZSwgKCkpOworCisgICAgLy8gQWRkIGNvZGUgZm9y
IGV4dHJhIGRldmljZSB0eXBlcyBoZXJlLgorICAgIHN3aXRjaCAoaWQpIHsKKyAgICBjYXNlIE1l
ZGlhOgorICAgICAgICByZXR1cm4gbWVkaWEoKTsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl
dHVybiBudWxsVHlwZU5hbWU7CisgICAgfQorfQorCitjb25zdCBBdG9taWNTdHJpbmcmIERldmlj
ZVR5cGU6Om1lZGlhKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bmFtZSwgKCJtZWRpYSIpKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VUeXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY1YWI0NWIzNTNlYzkyMDZhNmU5MzlkNWFjMzQ3MzdlNTNh
YjdlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VUeXBlLmgK
QEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNlVHlwZV9oCisjZGVmaW5lIERldmljZVR5cGVf
aAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEZXZpY2VUeXBlIHsKK3B1YmxpYzoKKyAgICAvLyBBbGxvd2VkIHR5
cGUgdmFsdWVzIGZvciB0aGUgZGV2aWNlIGVsZW1lbnQuCisgICAgZW51bSBUeXBlSWQgeworICAg
ICAgICBJbnZhbGlkID0gMCwgLy8gSW52YWxpZCBkZXZpY2UgdHlwZSB2YWx1ZS4gTm90IGEgcmVz
ZXJ2ZWQgdHlwZSBpbiB0aGUgc3BlYy4KKyAgICAgICAgTWVkaWEsCisgICAgICAgIE51bURldmlj
ZVR5cGVzCisgICAgfTsKKworICAgIC8vIFVzZWQgaW4gbXVsdGktZGV2aWNlIGNvbm5lY3Rpb25z
IGFzIG1lZGlhLgorICAgIGVudW0gU3VidHlwZUlkIHsKKyAgICAgICAgTm9uZSA9IDAsCisgICAg
ICAgIE1lZGlhQXVkaW8sCisgICAgICAgIE1lZGlhVmlkZW8KKyAgICB9OworCisgICAgRGV2aWNl
VHlwZSgpOworICAgIERldmljZVR5cGUoVHlwZUlkKTsKKyAgICBEZXZpY2VUeXBlKGNvbnN0IFN0
cmluZyYgbmFtZSk7CisKKyAgICBUeXBlSWQgaWQoKSBjb25zdDsKKyAgICBjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUoKSBjb25zdDsKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKworICAgIHN0
YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVGcm9tSWQoVHlwZUlkKTsKKyAgICBzdGF0aWMg
VHlwZUlkIGlkRnJvbU5hbWUoY29uc3QgU3RyaW5nJik7CisKKyAgICAvLyBBZGQgZXh0cmEgZGV2
aWNlIHR5cGVzIGhlcmUuCisgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWEoKTsK
KworcHJpdmF0ZToKKyAgICBUeXBlSWQgbV9pZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2VuZGlmIC8vIERldmlj
ZVR5cGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU3RyZWFtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDYwYTI3OWMyYWEyNzQ5OTA1
ZDIyMDRmYjQwYTI2Mzc0ZTNlNzMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1N0cmVhbS5jcHAKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU3RyZWFtLmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNpbmNsdWRl
ICJEZXZpY2VDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3RyZWFtUmVjb3JkZXIuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFN0cmVhbT4gU3RyZWFtOjpjcmVhdGUoRGV2
aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIsIERldmljZUNvbm5lY3Rpb25JZCBp
ZCwgY29uc3QgS1VSTCYgdXJsKQoreworICAgIEFTU0VSVChjb250cm9sbGVyKTsKKyAgICBBU1NF
UlQoY29udHJvbGxlci0+aXNDb25uZWN0aW9uSWRWYWxpZChpZCkpOworICAgIEFTU0VSVChjb250
cm9sbGVyLT5jb25uZWN0aW9uKGlkKS5zdGF0ZSgpID09IERldmljZUNvbm5lY3Rpb246OkNvbm5l
Y3RlZCk7CisgICAgQVNTRVJUKHVybC5pc1ZhbGlkKCkpOworCisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTdHJlYW0oY29udHJvbGxlciwgaWQsIHVybCkpOworfQorCitTdHJlYW06OlN0cmVhbShE
ZXZpY2VDb25uZWN0aW9uQ29udHJvbGxlciogY29udHJvbGxlciwgRGV2aWNlQ29ubmVjdGlvbklk
IGlkLCBjb25zdCBLVVJMJiB1cmwpCisgICAgOiBtX2NvbnRyb2xsZXIoY29udHJvbGxlcikKKyAg
ICAsIG1fY29ubmVjdGlvbklkKGlkKQorICAgICwgbV91cmwodXJsKQoreworICAgIG1fY29udHJv
bGxlci0+cmVnaXN0ZXJDb25uZWN0aW9uTGlzdGVuZXIobV9jb25uZWN0aW9uSWQsIHRoaXMpOwor
fQorCitTdHJlYW06On5TdHJlYW0oKQoreworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAg
IG1fY29udHJvbGxlci0+dW5yZWdpc3RlckNvbm5lY3Rpb25MaXN0ZW5lcihtX2Nvbm5lY3Rpb25J
ZCwgdGhpcyk7Cit9CisKK2NvbnN0IEtVUkwmIFN0cmVhbTo6dXJsKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV91cmw7Cit9CisKK1Bhc3NSZWZQdHI8U3RyZWFtUmVjb3JkZXI+IFN0cmVhbTo6cmVj
b3JkKCkKK3sKKyAgICByZXR1cm4gU3RyZWFtUmVjb3JkZXI6OmNyZWF0ZShtX2NvbnRyb2xsZXIs
IG1fY29ubmVjdGlvbklkKTsKK30KKwordm9pZCBTdHJlYW06OmRldmljZUNvbm5lY3Rpb25VcGRh
dGUoY29uc3QgRGV2aWNlQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBzd2l0Y2ggKGNv
bm5lY3Rpb24uc3RhdGUoKSkgeworICAgIGNhc2UgRGV2aWNlQ29ubmVjdGlvbjo6Q29ubmVjdGVk
OgorICAgICAgICBicmVhazsKKworICAgIGNhc2UgRGV2aWNlQ29ubmVjdGlvbjo6RmFpbGVkOgor
ICAgIGNhc2UgRGV2aWNlQ29ubmVjdGlvbjo6RGlzY29ubmVjdGVkOgorICAgICAgICBBU1NFUlQo
bV9jb250cm9sbGVyLT5pc0Nvbm5lY3Rpb25JZFZhbGlkKG1fY29ubmVjdGlvbklkKSk7CisgICAg
ICAgIG1fY29udHJvbGxlci0+dW5yZWdpc3RlckNvbm5lY3Rpb25MaXN0ZW5lcihtX2Nvbm5lY3Rp
b25JZCwgdGhpcyk7CisgICAgICAgIG1fY29ubmVjdGlvbklkLnJlc2V0KCk7CisgICAgICAgIGJy
ZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
fTsKK30KKwordm9pZCBTdHJlYW06OmNvbm5lY3Rpb25Db250cm9sbGVyU2h1dGRvd24oKQorewor
ICAgIG1fY29ubmVjdGlvbklkLnJlc2V0KCk7CisgICAgbV9jb250cm9sbGVyID0gMDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5U
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1N0cmVhbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyYTFkMDVhOWNhNWM0YzM2MWEyY2JkNjVjOWM3
YTQxOGQ4MWQ4NzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFt
LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3RyZWFtX2gKKyNkZWZpbmUgU3RyZWFtX2gKKwor
I2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgIkRldmljZUNvbm5lY3Rpb25D
b250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGV2aWNlQ29ubmVjdGlvbklkLmgiCisjaW5jbHVkZSAi
S1VSTC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFN0cmVhbVJlY29yZGVyOworCitjbGFzcyBTdHJlYW0gOiBwdWJsaWMgUmVmQ291
bnRlZDxTdHJlYW0+LAorICAgICAgICAgICAgICAgcHVibGljIERldmljZUNvbm5lY3Rpb25Db250
cm9sbGVyOjpDb25uZWN0aW9uTGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cmVhbT4gY3JlYXRlKERldmljZUNvbm5lY3Rpb25Db250cm9sbGVyKiwgRGV2aWNlQ29u
bmVjdGlvbklkLCBjb25zdCBLVVJMJik7CisgICAgflN0cmVhbSgpOworCisgICAgY29uc3QgS1VS
TCYgdXJsKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxTdHJlYW1SZWNvcmRlcj4gcmVjb3JkKCk7
CisKKyAgICAvLyBEZXZpY2VDb25uZWN0aW9uQ29udHJvbGxlcjo6Q29ubmVjdGlvbkxpc3RlbmVy
IGltcGxlbWVudGF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VDb25uZWN0aW9uVXBkYXRl
KGNvbnN0IERldmljZUNvbm5lY3Rpb24mKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbkNv
bnRyb2xsZXJTaHV0ZG93bigpOworCitwcml2YXRlOgorICAgIFN0cmVhbShEZXZpY2VDb25uZWN0
aW9uQ29udHJvbGxlciosIERldmljZUNvbm5lY3Rpb25JZCwgY29uc3QgS1VSTCYpOworCisgICAg
RGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKKyAgICBEZXZpY2VDb25u
ZWN0aW9uSWQgbV9jb25uZWN0aW9uSWQ7CisgICAgS1VSTCBtX3VybDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2Vu
ZGlmIC8vIFN0cmVhbV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW0uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3ODY5OTlhZTY4
NzhkNmQ3YjNmZTQ0OGMxNDY2ZjQ0NTY1ZmNhMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3RyZWFtLmlkbApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisg
ICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9REVWSUNFX0VMRU1FTlQKKyAgICBd
IFN0cmVhbSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJsOworICAg
ICAgICBTdHJlYW1SZWNvcmRlciByZWNvcmQoKTsKKyAgICB9OworfQorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1N0cmVhbVJlY29yZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzQxMzBiNzk0ZmY5MmExYTgwYmY2OWRh
NjM3MzBmZjIwYmFlYmU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0
cmVhbVJlY29yZGVyLmNwcApAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJTdHJlYW1SZWNvcmRlci5oIgorCisjaW5jbHVkZSAiRGV2aWNlQ29ubmVjdGlvbi5o
IgorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3NSZWZQdHI8U3RyZWFtUmVjb3JkZXI+IFN0cmVhbVJlY29yZGVyOjpjcmVhdGUoRGV2aWNl
Q29ubmVjdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIsIERldmljZUNvbm5lY3Rpb25JZCBpZCkK
K3sKKyAgICBBU1NFUlQoY29udHJvbGxlcik7CisgICAgQVNTRVJUKGNvbnRyb2xsZXItPmlzQ29u
bmVjdGlvbklkVmFsaWQoaWQpKTsKKworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RyZWFtUmVj
b3JkZXIoY29udHJvbGxlciwgaWQpKTsKK30KKworU3RyZWFtUmVjb3JkZXI6OlN0cmVhbVJlY29y
ZGVyKERldmljZUNvbm5lY3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyLCBEZXZpY2VDb25uZWN0
aW9uSWQgaWQpCisgICAgOiBtX2NvbnRyb2xsZXIoY29udHJvbGxlcikKKyAgICAsIG1fY29ubmVj
dGlvbklkKGlkKQorICAgICwgbV9tZWRpYUxpc3RlbmVySWQoY29udHJvbGxlci0+cmVnaXN0ZXJN
ZWRpYUxpc3RlbmVyKHRoaXMpKQorICAgICwgbV9zdG9wcGVkKGZhbHNlKQoreworICAgIG1fY29u
dHJvbGxlci0+cmVjb3JkU3RyZWFtVG9GaWxlKG1fbWVkaWFMaXN0ZW5lcklkLCBtX2Nvbm5lY3Rp
b25JZCk7Cit9CisKK1N0cmVhbVJlY29yZGVyOjp+U3RyZWFtUmVjb3JkZXIoKQoreworICAgIGlm
IChtX2NvbnRyb2xsZXIpIHsKKyAgICAgICAgaWYgKCFtX3N0b3BwZWQpCisgICAgICAgICAgICBt
X2NvbnRyb2xsZXItPnN0b3BSZWNvcmRpbmdTdHJlYW0obV9tZWRpYUxpc3RlbmVySWQsIG1fY29u
bmVjdGlvbklkLCBtX3BhdGgpOworCisgICAgICAgIG1fY29udHJvbGxlci0+dW5yZWdpc3Rlck1l
ZGlhTGlzdGVuZXIobV9tZWRpYUxpc3RlbmVySWQpOworICAgICAgICBtX2NvbnRyb2xsZXItPnVu
cmVnaXN0ZXJDb25uZWN0aW9uTGlzdGVuZXIobV9jb25uZWN0aW9uSWQsIHRoaXMpOworICAgIH0K
K30KKworUGFzc1JlZlB0cjxGaWxlPiBTdHJlYW1SZWNvcmRlcjo6c3RvcCgpCit7CisgICAgLy8g
U3BlYyBxdWVzdGlvbjogaWYgaXQgaGFzIGFscmVhZHkgc3RvcHBlZCwgc2hvdWxkIGl0IHJldHVy
biBhIG51bGwgSlMgb2JqZWN0IG9yIGEgcmVmZXJlbmNlIHRvIHRoZSBmaWxlIG9iamVjdD8KKyAg
ICBpZiAobV9zdG9wcGVkKQorICAgICAgICByZXR1cm4gbV9maWxlOworCisgICAgLy8gTm90ZTog
dGhpcyB3aWxsIHJldHVybiBhIGZpbGUgd2l0aCBhbiBlbXB0eSBwYXRoIGlmIHN0b3AgaXMgY2Fs
bGVkIGJlZm9yZSB0aGUgc3RyZWFtUmVjb3JkaW5nU3RhcnRlZCBtZXNzYWdlCisgICAgLy8gaXMg
cmVjZWl2ZWQgaW4gYW4gYXN5bmNocm9ub3VzIG1vZGVsLiBBbHNvLCB0aGUgZmlsZSBtYXkga2Vl
cCBiZWluZyByZWNvcmRlZCBpbiB0aGUgbGFwc2UgYmV0d2VlbiBzZW5kaW5nCisgICAgLy8gc3Rv
cFJlY29yZGluZ1N0cmVhbSBhbmQgYmVpbmcgcHJvY2VzZWQgYnkgdGhlIGNsaWVudC4gV2UgYXJl
IGN1cnJlbnRseSBhbmFseXppbmcgaWYgZm9yY2luZyBhIHN5bmNocm9ub3VzCisgICAgLy8gYmVo
YXZpb3VyIGhlcmUgaXMgYWxzbyBhbiBvcHRpb24gZm9yIHNhbmRib3hlZCBwbGF0Zm9ybSBpbXBs
ZW1lbnRhdGlvbnMuCisgICAgaWYgKG1fY29udHJvbGxlcikKKyAgICAgICAgbV9jb250cm9sbGVy
LT5zdG9wUmVjb3JkaW5nU3RyZWFtKG1fbWVkaWFMaXN0ZW5lcklkLCBtX2Nvbm5lY3Rpb25JZCwg
bV9wYXRoKTsKKworICAgIG1fZmlsZSA9IEZpbGU6OmNyZWF0ZShtX3BhdGgpOworICAgIG1fc3Rv
cHBlZCA9IHRydWU7CisgICAgcmV0dXJuIG1fZmlsZTsKK30KKwordm9pZCBTdHJlYW1SZWNvcmRl
cjo6c3RyZWFtUmVjb3JkaW5nU3RhcnRlZChpbnQgbWVkaWFMaXN0ZW5lcklkLCBjb25zdCBTdHJp
bmcmIHBhdGgpCit7CisgICAgQVNTRVJUKG1fbWVkaWFMaXN0ZW5lcklkID09IG1lZGlhTGlzdGVu
ZXJJZCk7CisgICAgQVNTRVJUKCFtX3N0b3BwZWQpOworICAgIG1fcGF0aCA9IHBhdGg7Cit9CisK
K3ZvaWQgU3RyZWFtUmVjb3JkZXI6OmRldmljZUNvbm5lY3Rpb25VcGRhdGUoY29uc3QgRGV2aWNl
Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBzd2l0Y2ggKGNvbm5lY3Rpb24uc3RhdGUo
KSkgeworICAgIGNhc2UgRGV2aWNlQ29ubmVjdGlvbjo6Tm90Q29ubmVjdGVkOgorICAgIGNhc2Ug
RGV2aWNlQ29ubmVjdGlvbjo6Q29ubmVjdGVkOgorICAgICAgICAvLyBBbnkgU3RyZWFtUmVjb3Jk
ZXIgb2JqZWN0IG11c3QgYmUgY3JlYXRlZCBhZnRlciBzdWNjZXNzZnVsbHkgY29ubmVjdGluZyB0
aGUgZGV2aWNlLgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIERldmljZUNvbm5lY3Rpb246OkZhaWxlZDoKKyAgICBjYXNlIERldmljZUNv
bm5lY3Rpb246OkRpc2Nvbm5lY3RlZDoKKyAgICAgICAgQVNTRVJUKG1fY29udHJvbGxlci0+aXND
b25uZWN0aW9uSWRWYWxpZChtX2Nvbm5lY3Rpb25JZCkpOworICAgICAgICBtX2NvbnRyb2xsZXIt
PnVucmVnaXN0ZXJDb25uZWN0aW9uTGlzdGVuZXIobV9jb25uZWN0aW9uSWQsIHRoaXMpOworICAg
ICAgICBtX2Nvbm5lY3Rpb25JZC5yZXNldCgpOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH07Cit9CisKK3ZvaWQgU3Ry
ZWFtUmVjb3JkZXI6OmNvbm5lY3Rpb25Db250cm9sbGVyU2h1dGRvd24oKQoreworICAgIG1fY29u
bmVjdGlvbklkLnJlc2V0KCk7CisgICAgbV9jb250cm9sbGVyID0gMDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU3RyZWFtUmVjb3JkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYThmNmYyOTQxNGQwNDFmOTQ2YzQ2
NTcxYzFmOGE4MTczZDZlNDg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1N0cmVhbVJlY29yZGVyLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3RyZWFtUmVjb3JkZXJf
aAorI2RlZmluZSBTdHJlYW1SZWNvcmRlcl9oCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQp
CisKKyNpbmNsdWRlICJEZXZpY2VDb25uZWN0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRl
dmljZUNvbm5lY3Rpb25JZC5oIgorI2luY2x1ZGUgIkZpbGUuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTdHJlYW1SZWNvcmRlciA6
IHB1YmxpYyBSZWZDb3VudGVkPFN0cmVhbVJlY29yZGVyPiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgcHVibGljIERldmljZUNvbm5lY3Rpb25Db250cm9sbGVyOjpDb25uZWN0aW9uTGlzdGVuZXIs
CisgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBEZXZpY2VDb25uZWN0aW9uQ29udHJvbGxl
cjo6TWVkaWFMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RyZWFt
UmVjb3JkZXI+IGNyZWF0ZShEZXZpY2VDb25uZWN0aW9uQ29udHJvbGxlciosIERldmljZUNvbm5l
Y3Rpb25JZCk7CisgICAgflN0cmVhbVJlY29yZGVyKCk7CisKKyAgICBQYXNzUmVmUHRyPEZpbGU+
IHN0b3AoKTsKKworICAgIC8vIERldmljZUNvbm5lY3Rpb25Db250cm9sbGVyOjpDb25uZWN0aW9u
TGlzdGVuZXIgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIGRldmljZUNvbm5lY3Rp
b25VcGRhdGUoY29uc3QgRGV2aWNlQ29ubmVjdGlvbiYpOworICAgIHZpcnR1YWwgdm9pZCBjb25u
ZWN0aW9uQ29udHJvbGxlclNodXRkb3duKCk7CisKKyAgICAvLyBEZXZpY2VDb25uZWN0aW9uQ29u
dHJvbGxlcjo6TWVkaWFMaXN0ZW5lciBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQg
c3RyZWFtUmVjb3JkaW5nU3RhcnRlZChpbnQgbWVkaWFMaXN0ZW5lcklkLCBjb25zdCBTdHJpbmcm
IHBhdGgpOworCitwcml2YXRlOgorICAgIFN0cmVhbVJlY29yZGVyKERldmljZUNvbm5lY3Rpb25D
b250cm9sbGVyKiwgRGV2aWNlQ29ubmVjdGlvbklkKTsKKworICAgIERldmljZUNvbm5lY3Rpb25D
b250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgRGV2aWNlQ29ubmVjdGlvbklkIG1fY29ubmVj
dGlvbklkOworICAgIFN0cmluZyBtX3BhdGg7CisgICAgUmVmUHRyPEZpbGU+IG1fZmlsZTsKKyAg
ICBpbnQgbV9tZWRpYUxpc3RlbmVySWQ7CisgICAgYm9vbCBtX3N0b3BwZWQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisK
KyNlbmRpZiAvLyBTdHJlYW1SZWNvcmRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU3RyZWFtUmVjb3JkZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbVJlY29yZGVy
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MmQ2ZGYzNzgxNTRjMjg1ZmI0ZDczMzMxOTdjOTUxOTA1MjYzZTcz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbVJlY29yZGVyLmlk
bApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAg
ICAgQ29uZGl0aW9uYWw9REVWSUNFX0VMRU1FTlQKKyAgICBdIFN0cmVhbVJlY29yZGVyIHsKKyAg
ICAgICAgRmlsZSBzdG9wKCk7CisgICAgfTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZmVhdHVyZXMucHJpIGIvU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCmluZGV4IGIzZjBl
MmQ5MTVlNTU1ZGJmNTE3NTY3YTA0YWI3ZTkyYWE2ZWYwYjcuLjVmMmM1NzY3YmI2N2IwNGI5ODAz
M2UzZDlhNDNkY2E5ZGVlYWZjOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZlYXR1cmVz
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkKQEAgLTc1LDYgKzc1LDcgQEAg
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NJTkdMRV9USFJFQURFRD0xKSB7CiAhY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1dFQl9BVURJTz0uKTogREVGSU5FUyArPSBFTkFCTEVfV0VCX0FVRElP
PTAKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCR0w9Lik6IERFRklORVMgKz0gRU5BQkxF
X1dFQkdMPTAKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTUVESUFfU1RBVElTVElDUz0uKTog
REVGSU5FUyArPSBFTkFCTEVfTUVESUFfU1RBVElTVElDUz0wCishY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX0RFVklDRV9FTEVNRU5UPS4pOiBERUZJTkVTICs9IEVOQUJMRV9ERVZJQ0VfRUxFTUVO
VD0xCiAKICMgU1ZHIHN1cHBvcnQKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTApIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk0
YzdmYjViZWFmYjhhM2Q0YmE0ZmM5Y2I5Yjg1ODY0Y2Q3NzBhNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsMjky
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxEZXZpY2VFbGVtZW50LmgiCisK
KyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNpbmNsdWRlICJEZXZpY2VDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlJlbmRlckRldmljZS5oIgorI2luY2x1ZGUgIlN0cmVhbS5oIgorI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKKworUGFzc1JlZlB0cjxIVE1MRGV2aWNlRWxlbWVudD4gSFRNTERldmljZUVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MRGV2aWNlRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOworfQorCitIVE1MRGV2aWNlRWxlbWVudDo6SFRNTERldmljZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDog
SFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCisgICAgLCBtX3N0YXRlKE5vdENvbm5lY3Rl
ZCkKKyAgICAsIG1fY29udHJvbGxlcihIVE1MRWxlbWVudDo6ZG9jdW1lbnQoKS0+cGFnZSgpID8g
SFRNTEVsZW1lbnQ6OmRvY3VtZW50KCktPnBhZ2UoKS0+ZGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xs
ZXIoKSA6IDApCit7Cit9CisKK0hUTUxEZXZpY2VFbGVtZW50Ojp+SFRNTERldmljZUVsZW1lbnQo
KQoreworfQorCitib29sIEhUTUxEZXZpY2VFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRl
clN0eWxlICpzdHlsZSkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmVuZGVyT2JqZWN0KiBI
VE1MRGV2aWNlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5k
ZXJTdHlsZSogc3R5bGUpCit7CisgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckRldmljZSh0
aGlzKTsKK30KKwordm9pZCBIVE1MRGV2aWNlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUo
QXR0cmlidXRlKiBhdHRyaWJ1dGUpCit7CisgICAgaWYgKGF0dHJpYnV0ZS0+bmFtZSgpID09IHR5
cGVBdHRyKQorICAgICAgICBtX3R5cGUgPSBEZXZpY2VUeXBlKGZhc3RHZXRBdHRyaWJ1dGUodHlw
ZUF0dHIpKTsKKyAgICBlbHNlCisgICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShhdHRyaWJ1dGUpOworfQorCit2b2lkIEhUTUxEZXZpY2VFbGVtZW50OjphdHRhY2goKQor
eworICAgIEhUTUxFbGVtZW50OjphdHRhY2goKTsKKworICAgIC8vIENyZWF0ZSBhIG5ldyBsb2Nh
bCBkZXZpY2UgY29ubmVjdGlvbiBvYmplY3QgZm9yIHRoZSBjdXJyZW50IHR5cGUuCisgICAgbV9j
b25uZWN0aW9uSWQgPSBtX2NvbnRyb2xsZXItPnJlZ2lzdGVyRGV2aWNlQ29ubmVjdGlvbigKKyAg
ICAgICAgICBEZXZpY2VDb25uZWN0aW9uKG1fdHlwZSwgRGV2aWNlQ29ubmVjdGlvbklkOjpMb2Nh
bCwgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSksCisgICAgICAgICAgdGhpcyk7CisKKyAg
ICAvLyBUaGUgY2FsbCB0byB1cGRhdGVGcm9tRWxlbWVudCgpIG5lZWRzIHRvIGdvIGFmdGVyIHRo
ZSBjYWxsIHRocm91Z2gKKyAgICAvLyB0byB0aGUgYmFzZSBjbGFzcydzIGF0dGFjaCgpIGJlY2F1
c2UgdGhhdCBjYW4gc29tZXRpbWVzIGRvIGEgY2xvc2UKKyAgICAvLyBvbiB0aGUgcmVuZGVyZXIu
CisgICAgaWYgKHJlbmRlcmVyKCkpCisgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVt
ZW50KCk7Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6OmRldGFjaCgpCit7CisgICAgLy8g
U3BlYyBxdWVzdGlvbjogc2hvdWxkIHdlIGNsb3NlIGFueSBhY3RpdmUgbG9jYWwgZGV2aWNlIGNv
bm5lY3Rpb25zIHdoZW4gdGhlIGRldmljZSBlbGVtZW50CisgICAgLy8gdXNlZCB0byBjcmVhdGUg
dGhlbSBpcyBkZXRhY2hlZCBmcm9tIHRoZSBET00/IFRoZXJlIG1heSBiZSBub3RoaW5nIGVsc2Ug
YXNzb2NpYXRlZCB3aXRoIHRoZQorICAgIC8vIGNvbm5lY3Rpb24gdGhhdCBjb3VsZCBhc2sgdG8g
Y2xvc2UgaXQsIGxlYXZpbmcgdGhlIGNvbm5lY3Rpb24gb3BlbiB1bnRpbCBmYWlsdXJlLgorICAg
IGlmIChtX2NvbnRyb2xsZXIpIHsKKyAgICAgICAgaWYgKGNvbm5lY3Rpb24oKS0+c3RhdGUoKSA9
PSBEZXZpY2VDb25uZWN0aW9uOjpDb25uZWN0ZWQpCisgICAgICAgICAgICBtX2NvbnRyb2xsZXIt
PmRpc2Nvbm5lY3REZXZpY2UobV9jb25uZWN0aW9uSWQpOworCisgICAgICAgIGlmICghbV9jb25u
ZWN0aW9uSWQuaXNOdWxsKCkpCisgICAgICAgICAgICBtX2NvbnRyb2xsZXItPnVucmVnaXN0ZXJD
b25uZWN0aW9uTGlzdGVuZXIobV9jb25uZWN0aW9uSWQsIHRoaXMpOworICAgIH0KKworICAgIEhU
TUxFbGVtZW50OjpkZXRhY2goKTsKK30KKwordm9pZCBIVE1MRGV2aWNlRWxlbWVudDo6c2V0VHlw
ZShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgRGV2aWNlVHlwZSBtX3ByZXZpb3VzVHlwZSA9
IG1fdHlwZTsKKyAgICBtX3R5cGUgPSBEZXZpY2VUeXBlKHR5cGUpOworCisgICAgaWYgKG1fdHlw
ZS5pZCgpICE9IG1fcHJldmlvdXNUeXBlLmlkKCkpCisgICAgICAgIGNsb3NlQW5kUmVzZXRDb25u
ZWN0aW9uKCk7Cit9CisKK1Bhc3NSZWZQdHI8U3RyZWFtPiBIVE1MRGV2aWNlRWxlbWVudDo6ZGF0
YSgpCit7CisgICAgaWYgKCFtX2NvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiAwOworCisgICAg
Ly8gSlMgYmluZGluZyBzaG91bGQgbWFrZSB0aGlzIGFzc2VydGlvbiBhbHdheXMgdHJ1ZS4KKyAg
ICBBU1NFUlQoY29ubmVjdGlvbigpLT5zdGF0ZSgpID09IERldmljZUNvbm5lY3Rpb246OkNvbm5l
Y3RlZCk7CisgICAgcmV0dXJuIGNvbm5lY3Rpb24oKS0+c3RyZWFtKCk7Cit9CisKK0hUTUxEZXZp
Y2VFbGVtZW50OjpEZXZpY2VFbGVtZW50U3RhdGUgSFRNTERldmljZUVsZW1lbnQ6OnN0YXRlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9zdGF0ZTsKK30KKworY29uc3QgRGV2aWNlVHlwZSYgSFRN
TERldmljZUVsZW1lbnQ6OmRldmljZVR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3R5cGU7
Cit9CisKK2NvbnN0IERldmljZUNvbm5lY3Rpb24qIEhUTUxEZXZpY2VFbGVtZW50Ojpjb25uZWN0
aW9uKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fY29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBBU1NFUlQobV9jb250cm9sbGVyKTsKKyAgICByZXR1cm4gJm1fY29udHJvbGxlci0+
Y29ubmVjdGlvbihtX2Nvbm5lY3Rpb25JZCk7Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6
OnNldFN0YXRlKERldmljZUVsZW1lbnRTdGF0ZSBzdGF0ZSkKK3sKKyAgICBpZiAobV9zdGF0ZSAh
PSBzdGF0ZSkgeworICAgICAgICBtX3N0YXRlID0gc3RhdGU7CisKKyAgICAgICAgaWYgKHJlbmRl
cmVyKCkpCisgICAgICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOworCisg
ICAgICAgIHNoYWRvd0FuY2VzdG9yTm9kZSgpLT5yZW5kZXJlcigpLT5yZXBhaW50KCk7CisgICAg
fQorfQorCit2b2lkIEhUTUxEZXZpY2VFbGVtZW50OjpjbG9zZUFuZFJlc2V0Q29ubmVjdGlvbigp
Cit7CisgICAgaWYgKG1fY29udHJvbGxlciAmJiBtX3N0YXRlID09IENvbm5lY3RlZCkgeworICAg
ICAgICAvLyBJZiB0aGUgY29ubmVjdGlvbiBpcyBpbiB0aGUgQ29ubmVjdGVkIHN0YXRlIHRoZW4g
d2UgYXJlIGRpc2Nvbm5lY3RpbmcuCisgICAgICAgIC8vIElmIG5vdCB0aGVuIHdlIGFyZSByZXNl
dHRpbmcgYSBjbG9zZWQsIGNhbmNlbGxlZCBvciBmYWlsZWQgY29ubmVjdGlvbi4KKyAgICAgICAg
aWYgKGNvbm5lY3Rpb24oKS0+c3RhdGUoKSA9PSBEZXZpY2VDb25uZWN0aW9uOjpDb25uZWN0ZWQp
CisgICAgICAgICAgICBtX2NvbnRyb2xsZXItPmRpc2Nvbm5lY3REZXZpY2UobV9jb25uZWN0aW9u
SWQpOworCisgICAgICAgLy8gUmVtb3ZlIHRoZSBsaXN0ZW5lciB0byB0aGUgY3VycmVudCBjb25u
ZWN0aW9uLiBUaGlzIHNob3VsZCBkZXN0cm95IGFueSBub24tYWN0aXZlIGxvY2FsIGRldmljZSBj
b25uZWN0aW9uLgorICAgICAgIC8vIFRoZSBhY3RpdmUgY29ubmVjdGlvbnMgd2lsbCBiZSBkZXN0
cm95ZWQgd2hlbiB0aGUgY29ubmVjdGlvbiBpcyB1cGRhdGVkIHRvIHRoZSBjbG9zZWQgc3RhdGUu
CisgICAgICAgIGlmICghbV9jb25uZWN0aW9uSWQuaXNOdWxsKCkpCisgICAgICAgICAgICBtX2Nv
bnRyb2xsZXItPnVucmVnaXN0ZXJDb25uZWN0aW9uTGlzdGVuZXIobV9jb25uZWN0aW9uSWQsIHRo
aXMpOworCisgICAgICAgIC8vIEFzc29jaWF0ZSB0aGUgZWxlbWVudCB0byBhIG5ldyBsb2NhbCBk
ZXZpY2UgY29ubmVjdGlvbiBvYmplY3QgaW4gdGhlIE5vQ29ubmVjdGlvbiBzdGF0ZS4KKyAgICAg
ICAgbV9jb25uZWN0aW9uSWQgPSBtX2NvbnRyb2xsZXItPnJlZ2lzdGVyRGV2aWNlQ29ubmVjdGlv
bigKKyAgICAgICAgICAgIERldmljZUNvbm5lY3Rpb24obV90eXBlLCBEZXZpY2VDb25uZWN0aW9u
SWQ6OkxvY2FsLCBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSwgdGhpcyk7CisKKyAgICAg
ICAgc2V0U3RhdGUoTm90Q29ubmVjdGVkKTsKKyAgICB9Cit9CisKK3ZvaWQgSFRNTERldmljZUVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQoreworICAgIGlmICghbV9j
b250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZ25vcmUgZXZlbnRzIGZyb20g
aW52YWxpZCBkZXZpY2UgZWxlbWVudHMuCisgICAgaWYgKCFtX3R5cGUuaXNWYWxpZCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBGb3Igc2VjdXJpdHkgcmVhc29ucywgb25seSBhbGxvdyBj
bGlja3MgZGlyZWN0bHkgY29taW5nIGZyb20gdGhlIHVzZXIuCisgICAgaWYgKCFldmVudC0+ZnJv
bVVzZXJHZXN0dXJlKCkpIHsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRs
ZXIoZXZlbnQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQpIHsKKyAgICAgICAgc3dpdGNoIChtX3N0YXRl
KSB7CisgICAgICAgIGNhc2UgTm90Q29ubmVjdGVkOgorICAgICAgICAgICAgQVNTRVJUKGNvbm5l
Y3Rpb24oKS0+c3RhdGUoKSA9PSBEZXZpY2VDb25uZWN0aW9uOjpOb3RDb25uZWN0ZWQpOworICAg
ICAgICAgICAgaWYgKG1fY29udHJvbGxlci0+Y29ubmVjdFRvTG9jYWxEZXZpY2UobV9jb25uZWN0
aW9uSWQpKQorICAgICAgICAgICAgICAgIHNldFN0YXRlKENvbm5lY3RpbmcpOworICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBDb25uZWN0ZWQ6CisgICAgICAgICAgICBBU1NFUlQo
Y29ubmVjdGlvbigpLT5zdGF0ZSgpID09IERldmljZUNvbm5lY3Rpb246OkNvbm5lY3RlZCk7Cisg
ICAgICAgICAgICBtX2NvbnRyb2xsZXItPmRpc2Nvbm5lY3REZXZpY2UobV9jb25uZWN0aW9uSWQp
OworICAgICAgICAgICAgc2V0U3RhdGUoRGlzY29ubmVjdGluZyk7CisgICAgICAgICAgICBicmVh
azsKKworICAgICAgICBjYXNlIENvbm5lY3Rpbmc6CisgICAgICAgIGNhc2UgRGlzY29ubmVjdGlu
ZzoKKyAgICAgICAgICAgIC8vIE5vdGhpbmcgdG8gZG8gaGVyZSwgd2FpdCBmb3Igc29tZSBkZXZp
Y2UgY29ubmVjdGlvbiB1cGRhdGUgbm90aWZpY2F0aW9uLgorICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIEludmFsaWQgZGV2aWNlIGVsZW1lbnQg
c3RhdGUgdmFsdWUuCisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
fQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICB9CisKKyAgICBpZiAo
IWV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQorICAgICAgICBIVE1MRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihldmVudCk7Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6OmRldmljZUNv
bm5lY3Rpb25VcGRhdGUoY29uc3QgRGV2aWNlQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAg
ICBzd2l0Y2ggKGNvbm5lY3Rpb24uc3RhdGUoKSkgeworICAgIGNhc2UgRGV2aWNlQ29ubmVjdGlv
bjo6Tm90Q29ubmVjdGVkOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIERldmljZUNvbm5lY3Rpb246OkNvbm5lY3RlZDoKKyAgICAgICAg
QVNTRVJUKG1fc3RhdGUgPT0gQ29ubmVjdGluZyk7CisgICAgICAgIHNldFN0YXRlKENvbm5lY3Rl
ZCk7CisKKyAgICAgICAgLy8gRklYTUU6IGRpc3BhdGNoaW5nIHRoZSBldmVudCBvbmx5IHdoZW4g
YSBkZXZpY2UgaXMgY29ubmVjdGVkIGlnbm9yaW5nIG90aGVyIHNpdHVhdGlvbnMuCisgICAgICAg
IC8vICAgICAgICBVcGRhdGUgdGhpcyBhcyB0aGUgc3BlY2lmaWNhdGlvbiBldm9sdmVzIChzZWUg
ZmFpbGVkIGNhc2UgYmVsb3cpLgorICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCB0cnVlLCBmYWxzZSkpOworICAgICAgICBicmVhazsK
KworICAgIGNhc2UgRGV2aWNlQ29ubmVjdGlvbjo6Q2FuY2VsbGVkOgorICAgICAgICBBU1NFUlQo
bV9zdGF0ZSA9PSBDb25uZWN0aW5nKTsKKyAgICAgICAgY2xvc2VBbmRSZXNldENvbm5lY3Rpb24o
KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIERldmljZUNvbm5lY3Rpb246OkZhaWxlZDoK
KyAgICAgICAgQVNTRVJUKG1fc3RhdGUgIT0gTm90Q29ubmVjdGVkKTsKKyAgICAgICAgLy8gRklY
TUU6IGhvdyBzaG91bGQgd2UgcmVwb3J0IHRoZSBlcnJvciB0byB0aGUgdXNlcj8gU3BlY2lmaWNh
dGlvbiBkb2Vzbid0IG1lbnRpb24gdGhpcy4KKyAgICAgICAgLy8gU2hvdWxkIHdlIGxhdW5jaCBh
biBvbkVycm9yIGV2ZW50PworICAgICAgICBjbG9zZUFuZFJlc2V0Q29ubmVjdGlvbigpOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgRGV2aWNlQ29ubmVjdGlvbjo6RGlzY29ubmVjdGVkOgor
ICAgICAgICBBU1NFUlQobV9zdGF0ZSA9PSBDb25uZWN0ZWQgfHwgbV9zdGF0ZSA9PSBEaXNjb25u
ZWN0aW5nKTsKKyAgICAgICAgLy8gRklYTUU6IHNob3VsZCB3ZSBkaXNwYXRjaCBhbm90aGVyIG9u
Y2hhbmdlIGV2ZW50PworICAgICAgICBjbG9zZUFuZFJlc2V0Q29ubmVjdGlvbigpOworICAgICAg
ICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIC8vIEludmFsaWQgZGV2aWNlIGNvbm5l
Y3Rpb24gc3RhdGUgdmFsdWUuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
KworfQorCit2b2lkIEhUTUxEZXZpY2VFbGVtZW50Ojpjb25uZWN0aW9uQ29udHJvbGxlclNodXRk
b3duKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb25JZC5yZXNldCgpOworICAgIG1fY29udHJvbGxlciA9
IDA7CisgICAgc2V0U3RhdGUoTm90Q29ubmVjdGVkKTsKK30KKworSFRNTERldmljZUVsZW1lbnQq
IHRvSFRNTERldmljZUVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoZWxlbWVu
dC0+aXNIVE1MRWxlbWVudCgpICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpkZXZp
Y2VUYWcpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTERldmljZUVsZW1lbnQqPihl
bGVtZW50KTsKKworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEZXZpY2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
ZXZpY2VFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU0MGI5ODg1NTQ2NzlmZjI2NjlkNzJmM2VjMDJl
OWFjNjgyYjA4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dmljZUVsZW1lbnQuaApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MRGV2aWNlRWxlbWVudF9o
CisjZGVmaW5lIEhUTUxEZXZpY2VFbGVtZW50X2gKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVO
VCkKKworI2luY2x1ZGUgIkRldmljZUNvbm5lY3Rpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAi
RGV2aWNlQ29ubmVjdGlvbklkLmgiCisjaW5jbHVkZSAiRGV2aWNlRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZVR5
cGU7CitjbGFzcyBTdHJlYW07CisKK2NsYXNzIEhUTUxEZXZpY2VFbGVtZW50IDogcHVibGljIEhU
TUxFbGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgRGV2aWNlRWxlbWVu
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIERldmljZUNvbm5lY3Rpb25Db250
cm9sbGVyOjpDb25uZWN0aW9uTGlzdGVuZXIgeworcHVibGljOgorICAgIGVudW0gRGV2aWNlRWxl
bWVudFN0YXRlIHsKKyAgICAgICAgTm90Q29ubmVjdGVkID0gMCwKKyAgICAgICAgQ29ubmVjdGlu
ZywKKyAgICAgICAgQ29ubmVjdGVkLAorICAgICAgICBEaXNjb25uZWN0aW5nCisgICAgfTsKKwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxEZXZpY2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+SFRNTERldmljZUVsZW1lbnQo
KTsKKworICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNo
KCk7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsKKyAg
ICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5k
ZXJTdHlsZSopOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1
dGUqKTsKKworICAgIERldmljZUVsZW1lbnRTdGF0ZSBzdGF0ZSgpIGNvbnN0OworICAgIGNvbnN0
IERldmljZVR5cGUmIGRldmljZVR5cGUoKSBjb25zdDsKKyAgICBjb25zdCBEZXZpY2VDb25uZWN0
aW9uKiBjb25uZWN0aW9uKCkgY29uc3Q7CisKKyAgICAvLyBJbXBsZW1lbnRhdGlvbiBvZiB2aXJ0
dWFsIG1ldGhvZHMgZnJvbSBEZXZpY2VFbGVtZW50LgorICAgIHZpcnR1YWwgdm9pZCBzZXRUeXBl
KGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTdHJlYW0+IGRhdGEoKTsK
KworICAgIC8vIERldmljZUNvbm5lY3Rpb25Db250cm9sbGVyOjpDb25uZWN0aW9uTGlzdGVuZXIg
aW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIGRldmljZUNvbm5lY3Rpb25VcGRhdGUo
Y29uc3QgRGV2aWNlQ29ubmVjdGlvbiYpOworICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0aW9uQ29u
dHJvbGxlclNodXRkb3duKCk7CisKK3Byb3RlY3RlZDoKKyAgICBIVE1MRGV2aWNlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCopOworCitwcml2YXRlOgorICAgIHZvaWQgc2V0U3RhdGUoRGV2
aWNlRWxlbWVudFN0YXRlKTsKKyAgICB2b2lkIGNsb3NlQW5kUmVzZXRDb25uZWN0aW9uKCk7CisK
KyAgICBEZXZpY2VFbGVtZW50U3RhdGUgbV9zdGF0ZTsKKyAgICBEZXZpY2VDb25uZWN0aW9uSWQg
bV9jb25uZWN0aW9uSWQ7CisgICAgRGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXIgKm1fY29udHJv
bGxlcjsKK307CisKK0hUTUxEZXZpY2VFbGVtZW50KiB0b0hUTUxEZXZpY2VFbGVtZW50KEVsZW1l
bnQqKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklD
RV9FTEVNRU5UKQorCisjZW5kaWYgLy8gSFRNTERldmljZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEZXZpY2VFbGVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGMwMTUxNGI4YjEyNDBi
YTQxM2ZiNjEwOTZiYzEzYjBhODBiY2M1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5pZGwKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1s
IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPURFVklDRV9FTEVNRU5U
CisgICAgXSBIVE1MRGV2aWNlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyXSBET01PYmplY3QgZGF0YTsK
KyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCA4M2Q0MWRlZjdk
ZTU1ZmEwMGZjMWYwMzkxOTZmNjIzMzA2OGI5NDllLi4wY2Y4MzUxYmIyYTlkMTE0NWM5ODNmOWMx
NzEzMDc4MDhjYTY0MzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdO
YW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMzcs
NiArMzcsNyBAQCBkcm93IGludGVyZmFjZU5hbWU9SFRNTERhdGFHcmlkUm93RWxlbWVudCwgY29u
ZGl0aW9uYWw9REFUQUdSSUQKIGRkIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGRlbCBpbnRl
cmZhY2VOYW1lPUhUTUxNb2RFbGVtZW50CiBkZXRhaWxzCitkZXZpY2UgaW50ZXJmYWNlTmFtZT1I
VE1MRGV2aWNlRWxlbWVudCwgY29uZGl0aW9uYWw9REVWSUNFX0VMRU1FTlQKIGRmbiBpbnRlcmZh
Y2VOYW1lPUhUTUxFbGVtZW50CiBkaXIgaW50ZXJmYWNlTmFtZT1IVE1MRGlyZWN0b3J5RWxlbWVu
dAogZGl2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMjZmZjZkNjBlZTYxZDExMjVj
ZDA0ZGM3N2U4OTE3YTAzMjBmODU5NC4uOGNkZmI2YmJiNzA4MDVhNDVhOTA5YjJjZmU4MGI5Y2Y1
MWZlYTk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNDI3LDYgKzQyNyw3IEBA
IG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFHUklE
XSBIVE1MRGF0YUdyaWRFbGVtZW50Q29uc3RydWN0b3IgSFRNTERhdGFHcmlkRWxlbWVudDsKICAg
ICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1EQVRBR1JJRF0gSFRNTERhdGFHcmlkQ2VsbEVs
ZW1lbnRDb25zdHJ1Y3RvciBIVE1MRGF0YUdyaWRDZWxsRWxlbWVudDsKICAgICAgICAgYXR0cmli
dXRlIFtDb25kaXRpb25hbD1EQVRBR1JJRF0gSFRNTERhdGFHcmlkQ29sRWxlbWVudENvbnN0cnVj
dG9yIEhUTUxEYXRhR3JpZENvbEVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9u
YWw9REVWSUNFX0VMRU1FTlRdIEhUTUxEZXZpY2VFbGVtZW50Q29uc3RydWN0b3IgSFRNTERldmlj
ZUVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MRExpc3RFbGVtZW50Q29uc3RydWN0b3Ig
SFRNTERMaXN0RWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxEaXJlY3RvcnlFbGVtZW50
Q29uc3RydWN0b3IgSFRNTERpcmVjdG9yeUVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1M
RGl2RWxlbWVudENvbnN0cnVjdG9yIEhUTUxEaXZFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNl
Q2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I3ZWUxYzZmNjgwZTcyZmJlNWExZjEyOWRjMmRmN2U5ZTRh
ODVjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50
LmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNlQ2xpZW50X2gKKyNkZWZpbmUgRGV2aWNlQ2xpZW50
X2gKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlQ29ubmVjdGlvbjsKK2Ns
YXNzIERldmljZUxpc3RlbmVyOworY2xhc3MgRGV2aWNlVHlwZTsKK2NsYXNzIFNlY3VyaXR5T3Jp
Z2luOworCitjbGFzcyBEZXZpY2VDbGllbnQgeworcHVibGljOgorICAgIC8vIC0tLS0tIENvbm5l
Y3Rpb24tcmVsYXRlZCBtZXRob2RzIC0tLS0tIC8vCisKKyAgICAvLyBSZWdpc3RlciB0aGUgbGlz
dGVuZXIgZm9yIHJlY2VpdmluZyBjYWxsYmFja3MuIFNob3VsZCBzZXQgdG8gbnVsbCB3aGVuIG5v
dCByZXF1aXJlZCBhbnltb3JlLiBObyBvd25lcnNoaXAgaXMgdGFrZW4uCisgICAgLy8gVW5kZXIg
bm9ybWFsIGNpcmN1bXN0YW5jZXMgdGhlIGxpc3RlbmVyIHNob3VsZCBiZSB0aGUgcGFnZSBEZXZp
Y2VDb25uZWN0aW9uQ29udHJvbGxlciBvYmplY3QuCisgICAgdmlydHVhbCB2b2lkIHNldExpc3Rl
bmVyKERldmljZUxpc3RlbmVyKikgPSAwOworCisgICAgLy8gUmVxdWVzdCBkZXZpY2Ugc2VsZWN0
aW9uIGFuZCBjb25uZWN0aW9uIHRvIHRoZSBjbGllbnQuCisgICAgdmlydHVhbCBib29sIGNvbm5l
Y3RUb0xvY2FsRGV2aWNlKGNvbnN0IERldmljZUNvbm5lY3Rpb24mKSA9IDA7CisKKyAgICAvLyBD
bG9zZSBhIGN1cnJlbnRseSBlbmFibGVkIGRldmljZSBjb25uZWN0aW9uLgorICAgIHZpcnR1YWwg
dm9pZCBkaXNjb25uZWN0RGV2aWNlKGNvbnN0IERldmljZUNvbm5lY3Rpb24mKSA9IDA7CisKKyAg
ICAvLyAtLS0tLSBNZWRpYS1yZWxhdGVkIG1ldGhvZHMgLS0tLS0gLy8KKworICAgIC8vIFJlcXVl
c3QgdG8gc3RhcnQgcmVjb3JkaW5nIGFuIGV4aXN0aW5nIHN0cmVhbSB0byBhIGZpbGUuCisgICAg
dmlydHVhbCBib29sIHJlY29yZFN0cmVhbVRvRmlsZShpbnQgbWVkaWFMaXN0ZW5lcklkLCBjb25z
dCBEZXZpY2VDb25uZWN0aW9uJikgPSAwOworCisgICAgLy8gU3RvcCByZWNvcmRpbmcgYSBzdHJl
YW0gdG8gYSBmaWxlLgorICAgIHZpcnR1YWwgdm9pZCBzdG9wUmVjb3JkaW5nU3RyZWFtKGludCBt
ZWRpYUxpc3RlbmVySWQsIGNvbnN0IERldmljZUNvbm5lY3Rpb24mLCBjb25zdCBTdHJpbmcmIHBh
dGgpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfkRldmljZUNsaWVudCgpIHsgfQor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9F
TEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGV2aWNlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZp
Y2VDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM5NGRkMWFjYzhkN2U4ZjlhMjkzODI2ODIxMGM0
ZTZiNWVhY2E1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNl
Q29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsMTQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEZXZpY2VDb25uZWN0aW9uX2gK
KyNkZWZpbmUgRGV2aWNlQ29ubmVjdGlvbl9oCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQp
CisKKyNpbmNsdWRlICJEZXZpY2VDb25uZWN0aW9uSWQuaCIKKyNpbmNsdWRlICJEZXZpY2VUeXBl
LmgiCisjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTdHJlYW0uaCIKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEZXZpY2VDb25uZWN0aW9uSW5mbyB7CitwdWJsaWM6CisgICAgLy8gTm8g
ZXJyb3IgdmFsdWUgZm9yIGVycm9yIGNvZGVzLgorICAgIC8vIEZJWE1FOiB0aGlzIGNvdWxkIGJl
IG1hZGUgYW4gZW51bSBpbmNsdWRpbmcgdmFsdWVzIGZvciBiYXNpYyBlcnJvciBzaXR1YXRpb25z
IGFuZCBsZWF2aW5nIHZhbHVlcyBmb3IgdmVuZG9yLXNwZWNpZmljIGVycm9ycy4KKyAgICBzdGF0
aWMgY29uc3QgaW50IE5vRXJyb3IgPSAwOworCisgICAgRGV2aWNlQ29ubmVjdGlvbkluZm8oKSA6
IG1fc3VidHlwZShEZXZpY2VUeXBlOjpOb25lKSwgbV9lcnJvckNvZGUoTm9FcnJvcikgeyB9CisK
KyAgICBEZXZpY2VDb25uZWN0aW9uSW5mbyhjb25zdCBEZXZpY2VUeXBlOjpTdWJ0eXBlSWQmIHN1
YnR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBpZCwgaW50IGVycm9yQ29k
ZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCisgICAgICAgIDogbV9zdWJ0eXBlKHN1YnR5
cGUpCisgICAgICAgICwgbV9uYW1lKG5hbWUpCisgICAgICAgICwgbV9pZChpZCkKKyAgICAgICAg
LCBtX2Vycm9yQ29kZShlcnJvckNvZGUpCisgICAgICAgICwgbV9lcnJvck1lc3NhZ2UoZXJyb3JN
ZXNzYWdlKQorICAgIHsKKyAgICB9CisKKyAgICBEZXZpY2VUeXBlOjpTdWJ0eXBlSWQgc3VidHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VidHlwZTsgfQorICAgIGNvbnN0IFN0cmluZyYgbmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIGNvbnN0IFN0cmluZyYgaWQoKSBjb25zdCB7
IHJldHVybiBtX2lkOyB9CisgICAgaW50IGVycm9yQ29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXJy
b3JDb2RlOyB9CisgICAgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UoKSBjb25zdCB7IHJldHVy
biBtX2Vycm9yTWVzc2FnZTsgfQorCitwcml2YXRlOgorICAgIERldmljZVR5cGU6OlN1YnR5cGVJ
ZCBtX3N1YnR5cGU7CisgICAgU3RyaW5nIG1fbmFtZTsKKyAgICBTdHJpbmcgbV9pZDsKKyAgICBp
bnQgbV9lcnJvckNvZGU7CisgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOworfTsKKworY2xhc3Mg
RGV2aWNlQ29ubmVjdGlvbiB7CitwdWJsaWM6CisgICAgZW51bSBEZXZpY2VDb25uZWN0aW9uU3Rh
dGUgeworICAgICAgICBOb3RDb25uZWN0ZWQgPSAwLCAvLyBPYmplY3Qgbm90IGFzc29jaWF0ZWQg
d2l0aCBhbnkgY29ubmVjdGlvbiAoaW5pdGlhbGl6YXRpb24gc3RhdGUpLgorICAgICAgICBDb25u
ZWN0ZWQsIC8vIERldmljZSBjb25uZWN0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAgICBDYW5jZWxs
ZWQsIC8vIERldmljZSBzZWxlY3Rpb24vY29ubmVjdGlvbiBjYW5jZWxsZWQgYnkgdGhlIHVzZXIu
CisgICAgICAgIEZhaWxlZCwgLy8gRXJyb3IgY29ubmVjdGluZyB0aGUgZGV2aWNlIG9yIGR1cmlu
ZyBjb25uZWN0aW9uLgorICAgICAgICBEaXNjb25uZWN0ZWQsIC8vIENvbm5lY3Rpb24gbGVnaXRp
bWF0ZWx5IGNsb3NlZC4KKyAgICB9OworCisgICAgRGV2aWNlQ29ubmVjdGlvbigpCisgICAgICAg
IDogbV9zdGF0ZShOb3RDb25uZWN0ZWQpCisgICAgeworICAgIH0KKworICAgIERldmljZUNvbm5l
Y3Rpb24oY29uc3QgRGV2aWNlVHlwZSYgZGV2aWNlVHlwZSwKKyAgICAgICAgICAgICAgICAgICAg
IERldmljZUNvbm5lY3Rpb25JZDo6Q29ubmVjdGlvblR5cGUgY29ubmVjdGlvblR5cGUsCisgICAg
ICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4pCisgICAg
ICAgIDogbV9pZChEZXZpY2VDb25uZWN0aW9uSWQoMCwgY29ubmVjdGlvblR5cGUpKQorICAgICAg
ICAsIG1fdHlwZShkZXZpY2VUeXBlKQorICAgICAgICAsIG1fc3RhdGUoTm90Q29ubmVjdGVkKQor
ICAgICAgICAsIG1fb3JpZ2luKG9yaWdpbikKKyAgICB7CisgICAgfQorCisgICAgRGV2aWNlQ29u
bmVjdGlvbihjb25zdCBEZXZpY2VDb25uZWN0aW9uSWQmIGlkLAorICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgRGV2aWNlVHlwZSYgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgIERldmljZUNv
bm5lY3Rpb25TdGF0ZSBzdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxE
ZXZpY2VDb25uZWN0aW9uSW5mbz4mIGRldmljZXMsCisgICAgICAgICAgICAgICAgICAgICBQYXNz
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICBjb25z
dCBLVVJMJiBzdHJlYW1VcmwpCisgICAgICAgIDogbV9pZChpZCkKKyAgICAgICAgLCBtX3R5cGUo
dHlwZSkKKyAgICAgICAgLCBtX3N0YXRlKHN0YXRlKQorICAgICAgICAsIG1fZGV2aWNlcyhkZXZp
Y2VzKQorICAgICAgICAsIG1fb3JpZ2luKG9yaWdpbikKKyAgICAgICAgLCBtX3N0cmVhbVVybChz
dHJlYW1VcmwpCisgICAgeyB9CisKKyAgICBjb25zdCBEZXZpY2VDb25uZWN0aW9uSWQmIGlkKCkg
Y29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIGNvbnN0IERldmljZVR5cGUmIHR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBEZXZpY2VDb25uZWN0aW9uU3RhdGUgc3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX3N0YXRlOyB9CisgICAgY29uc3QgVmVjdG9yPERldmljZUNvbm5lY3Rp
b25JbmZvPiYgZGV2aWNlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlczsgfQorICAgIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luOyB9
CisKKyAgICBib29sIGlzTG9jYWwoKSBjb25zdCB7IHJldHVybiBtX2lkLnR5cGUoKSA9PSBEZXZp
Y2VDb25uZWN0aW9uSWQ6OkxvY2FsOyB9CisgICAgYm9vbCBpc1JlbW90ZSgpIGNvbnN0IHsgcmV0
dXJuIG1faWQudHlwZSgpID09IERldmljZUNvbm5lY3Rpb25JZDo6UmVtb3RlOyB9CisKKyAgICAv
LyBGSVhNRTogbW92ZSB0aGUgdHlwZS1zcGVjaWZpYyBtZXRob2RzIHRvIGEgc2VwYXJhdGUgY2xh
c3MgYW5kIG1ha2UgdGhpcyB0eXBlIGluZGVwZW5kZW50LgorICAgIFBhc3NSZWZQdHI8U3RyZWFt
PiBzdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX3N0cmVhbTsgfQorICAgIGNvbnN0IEtVUkwmIHN0
cmVhbVVybCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyZWFtVXJsOyB9CisKK3ByaXZhdGU6CisgICAg
ZnJpZW5kIGNsYXNzIERldmljZUNvbm5lY3Rpb25Db250cm9sbGVyOworICAgIERldmljZUNvbm5l
Y3Rpb25JZCYgbXV0YWJsZUlkKCkgeyByZXR1cm4gbV9pZDsgfQorCisgICAgRGV2aWNlQ29ubmVj
dGlvbklkIG1faWQ7CisgICAgRGV2aWNlVHlwZSBtX3R5cGU7CisgICAgRGV2aWNlQ29ubmVjdGlv
blN0YXRlIG1fc3RhdGU7CisgICAgVmVjdG9yPERldmljZUNvbm5lY3Rpb25JbmZvPiBtX2Rldmlj
ZXM7CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKKworICAgIC8vIEZJWE1F
OiBtb3ZlIHRoZSB0eXBlLXNwZWNpZmljIGRhdGEgdG8gYSBzZXBhcmF0ZSBjbGFzcyBhbmQgbWFr
ZSB0aGlzIHR5cGUgaW5kZXBlbmRlbnQuCisgICAgUmVmUHRyPFN0cmVhbT4gbV9zdHJlYW07Cisg
ICAgS1VSTCBtX3N0cmVhbVVybDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2VuZGlmIC8vIERldmljZUNvbm5lY3Rp
b25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb25uZWN0aW9uQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbm5lY3Rpb25Db250cm9s
bGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMTA0MDY5MGEyZTFkZmEzZjg1MTQyNmRmNmZhZmFhNzA4ZDRm
ZWI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb25uZWN0
aW9uQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwyMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIkRldmlj
ZUNsaWVudC5oIgorI2luY2x1ZGUgIkRldmljZUNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJEZXZp
Y2VUeXBlLmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworRGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXI6OkRldmljZUNvbm5lY3Rpb25Db250
cm9sbGVyKERldmljZUNsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAg
ICwgbV9uZXh0TG9jYWxEZXZpY2VDb25uZWN0aW9uSWQoMSkKKyAgICAsIG1fbmV4dE1lZGlhTGlz
dGVuZXJJZCgxKQoreworICAgIC8vIEZJWE1FOiBlbmFibGUgdGhpcyB3aGVuIHRoZSBjbGllbnQg
aXMgcmVhZHkuCisgICAgLy8gbV9jbGllbnQtPnNldExpc3RlbmVyKHRoaXMpOworfQorCitEZXZp
Y2VDb25uZWN0aW9uQ29udHJvbGxlcjo6fkRldmljZUNvbm5lY3Rpb25Db250cm9sbGVyKCkKK3sK
KyAgICAvLyBGSVhNRTogZW5hYmxlIHRoaXMgd2hlbiB0aGUgY2xpZW50IGlzIHJlYWR5LgorICAg
IC8vIG1fY2xpZW50LT5zZXRMaXN0ZW5lcigwKTsKKworICAgIGZvciAoQ29ubmVjdGlvbkxpc3Rl
bmVyc01hcDo6aXRlcmF0b3IgbGlzdGVuZXJzID0gbV9jb25uZWN0aW9uTGlzdGVuZXJzLmJlZ2lu
KCk7IGxpc3RlbmVycyAhPSBtX2Nvbm5lY3Rpb25MaXN0ZW5lcnMuZW5kKCk7ICsrbGlzdGVuZXJz
KSB7CisgICAgICAgIGZvciAoQ29ubmVjdGlvbkxpc3RlbmVyU2V0OjppdGVyYXRvciBsaXN0ZW5l
ciA9IGxpc3RlbmVycy0+c2Vjb25kLT5iZWdpbigpOyBsaXN0ZW5lciAhPSBsaXN0ZW5lcnMtPnNl
Y29uZC0+ZW5kKCk7ICsrbGlzdGVuZXIpCisgICAgICAgICAgICAoKmxpc3RlbmVyKS0+Y29ubmVj
dGlvbkNvbnRyb2xsZXJTaHV0ZG93bigpOworCisgICAgICAgIGRlbGV0ZSBsaXN0ZW5lcnMtPnNl
Y29uZDsKKyAgICB9CisKKyAgICBmb3IgKERldmljZUNvbm5lY3Rpb25NYXA6Oml0ZXJhdG9yIGNv
bm5lY3Rpb24gPSBtX2RldmljZUNvbm5lY3Rpb25zLmJlZ2luKCk7IGNvbm5lY3Rpb24gIT0gbV9k
ZXZpY2VDb25uZWN0aW9ucy5lbmQoKTsgKytjb25uZWN0aW9uKSB7CisgICAgICAgIGlmIChjb25u
ZWN0aW9uLT5zZWNvbmQtPnN0YXRlKCkgPT0gRGV2aWNlQ29ubmVjdGlvbjo6Q29ubmVjdGVkKQor
ICAgICAgICAgICAgZGlzY29ubmVjdERldmljZShjb25uZWN0aW9uLT5zZWNvbmQtPmlkKCkpOwor
CisgICAgICAgIGRlbGV0ZSBjb25uZWN0aW9uLT5zZWNvbmQ7CisgICAgfQorfQorCitEZXZpY2VD
b25uZWN0aW9uSWQgRGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXI6OnJlZ2lzdGVyRGV2aWNlQ29u
bmVjdGlvbihjb25zdCBEZXZpY2VDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBDb25uZWN0aW9uTGlz
dGVuZXIqIGxpc3RlbmVyKQoreworICAgIERldmljZUNvbm5lY3Rpb24qIG5ld0Nvbm5lY3Rpb24g
PSBuZXcgRGV2aWNlQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKKworICAgIHN3aXRjaCAoY29ubmVj
dGlvbi5pZCgpLnR5cGUoKSkgeworICAgIGNhc2UgRGV2aWNlQ29ubmVjdGlvbklkOjpMb2NhbDoK
KyAgICAgICAgLy8gTG9jYWwgZGV2aWNlIGNvbm5lY3Rpb24gaWRzIHNob3VsZCBiZSBhc3NpZ25l
ZCBieSB0aGlzIG1ldGhvZC4KKyAgICAgICAgQVNTRVJUKCFuZXdDb25uZWN0aW9uLT5pZCgpLmlk
KCkpOworICAgICAgICBuZXdDb25uZWN0aW9uLT5tdXRhYmxlSWQoKS5tX2lkID0gbV9uZXh0TG9j
YWxEZXZpY2VDb25uZWN0aW9uSWQ7CisgICAgICAgICsrbV9uZXh0TG9jYWxEZXZpY2VDb25uZWN0
aW9uSWQ7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBEZXZpY2VDb25uZWN0aW9uSWQ6OlJl
bW90ZToKKyAgICAgICAgLy8gUmVtb3RlIGRldmljZSBjb25uZWN0aW9uIGlkcyBzaG91bGQgYmUg
YWxyZWFkeSBhc3NpZ25lZCBieSB0aGUgQ29ubmVjdGlvblBlZXIgQVBJLgorICAgICAgICBBU1NF
UlQobmV3Q29ubmVjdGlvbi0+aWQoKS5pZCgpKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZh
dWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBBU1NFUlQo
IW1fZGV2aWNlQ29ubmVjdGlvbnMuY29udGFpbnMobmV3Q29ubmVjdGlvbi0+aWQoKSkpOworICAg
IG1fZGV2aWNlQ29ubmVjdGlvbnMuc2V0KG5ld0Nvbm5lY3Rpb24tPmlkKCksIG5ld0Nvbm5lY3Rp
b24pOworCisgICAgQVNTRVJUKCFtX2Nvbm5lY3Rpb25MaXN0ZW5lcnMuY29udGFpbnMobmV3Q29u
bmVjdGlvbi0+aWQoKSkpOworICAgIG1fY29ubmVjdGlvbkxpc3RlbmVycy5zZXQobmV3Q29ubmVj
dGlvbi0+aWQoKSwgbmV3IEhhc2hTZXQ8Q29ubmVjdGlvbkxpc3RlbmVyKj4pOworCisgICAgQVNT
RVJUKCFtX2Nvbm5lY3Rpb25MaXN0ZW5lcnMuZ2V0KG5ld0Nvbm5lY3Rpb24tPmlkKCkpLT5jb250
YWlucyhsaXN0ZW5lcikpOworICAgIG1fY29ubmVjdGlvbkxpc3RlbmVycy5nZXQobmV3Q29ubmVj
dGlvbi0+aWQoKSktPmFkZChsaXN0ZW5lcik7CisKKyAgICByZXR1cm4gbmV3Q29ubmVjdGlvbi0+
aWQoKTsKK30KKwordm9pZCBEZXZpY2VDb25uZWN0aW9uQ29udHJvbGxlcjo6cmVnaXN0ZXJDb25u
ZWN0aW9uTGlzdGVuZXIoY29uc3QgRGV2aWNlQ29ubmVjdGlvbklkJiBpZCwgQ29ubmVjdGlvbkxp
c3RlbmVyKiBsaXN0ZW5lcikKK3sKKyAgICBBU1NFUlQoIWlkLmlzTnVsbCgpKTsKKyAgICBBU1NF
UlQobV9kZXZpY2VDb25uZWN0aW9ucy5jb250YWlucyhpZCkpOworICAgIEFTU0VSVChtX2Nvbm5l
Y3Rpb25MaXN0ZW5lcnMuY29udGFpbnMoaWQpKTsKKyAgICBBU1NFUlQoIW1fY29ubmVjdGlvbkxp
c3RlbmVycy5nZXQoaWQpLT5jb250YWlucyhsaXN0ZW5lcikpOworCisgICAgbV9jb25uZWN0aW9u
TGlzdGVuZXJzLmdldChpZCktPmFkZChsaXN0ZW5lcik7Cit9CisKK3ZvaWQgRGV2aWNlQ29ubmVj
dGlvbkNvbnRyb2xsZXI6OnVucmVnaXN0ZXJDb25uZWN0aW9uTGlzdGVuZXIoY29uc3QgRGV2aWNl
Q29ubmVjdGlvbklkJiBpZCwgQ29ubmVjdGlvbkxpc3RlbmVyKiBsaXN0ZW5lcikKK3sKKyAgICBB
U1NFUlQoIWlkLmlzTnVsbCgpKTsKKyAgICBBU1NFUlQobV9kZXZpY2VDb25uZWN0aW9ucy5jb250
YWlucyhpZCkpOworICAgIEFTU0VSVChtX2Nvbm5lY3Rpb25MaXN0ZW5lcnMuY29udGFpbnMoaWQp
KTsKKyAgICBBU1NFUlQobV9jb25uZWN0aW9uTGlzdGVuZXJzLmdldChpZCktPmNvbnRhaW5zKGxp
c3RlbmVyKSk7CisKKyAgICBtX2Nvbm5lY3Rpb25MaXN0ZW5lcnMuZ2V0KGlkKS0+cmVtb3ZlKGxp
c3RlbmVyKTsKKyAgICBpZiAobV9jb25uZWN0aW9uTGlzdGVuZXJzLmdldChpZCktPmlzRW1wdHko
KSkgeworICAgICAgICBkZWxldGUgbV9jb25uZWN0aW9uTGlzdGVuZXJzLnRha2UoaWQpOworICAg
ICAgICBkZWxldGUgbV9kZXZpY2VDb25uZWN0aW9ucy50YWtlKGlkKTsKKyAgICB9Cit9CisKK2lu
dCBEZXZpY2VDb25uZWN0aW9uQ29udHJvbGxlcjo6cmVnaXN0ZXJNZWRpYUxpc3RlbmVyKE1lZGlh
TGlzdGVuZXIqIGxpc3RlbmVyKQoreworI2lmIGRlZmluZWQoREVCVUcpCisgICAgLy8gQ2hlY2sg
aWYgYWxyZWFkeSBwcmVzZW50LgorICAgIGZvciAoTWVkaWFMaXN0ZW5lck1hcDo6aXRlcmF0b3Ig
aXQgPSBtX21lZGlhTGlzdGVuZXJzLmJlZ2luKCk7IGl0ICE9IG1fbWVkaWFMaXN0ZW5lcnMuZW5k
KCk7ICsraXQpCisgICAgICAgIEFTU0VSVChpdC0+c2Vjb25kICE9IGxpc3RlbmVyKTsKKyNlbmRp
ZgorCisgICAgbV9tZWRpYUxpc3RlbmVycy5hZGQobV9uZXh0TWVkaWFMaXN0ZW5lcklkLCBsaXN0
ZW5lcik7CisgICAgcmV0dXJuIG1fbmV4dE1lZGlhTGlzdGVuZXJJZCsrOworfQorCit2b2lkIERl
dmljZUNvbm5lY3Rpb25Db250cm9sbGVyOjp1bnJlZ2lzdGVyTWVkaWFMaXN0ZW5lcihpbnQgbWVk
aWFMaXN0ZW5lcklkKQoreworICAgIEFTU0VSVChtZWRpYUxpc3RlbmVySWQpOworICAgIEFTU0VS
VChtX21lZGlhTGlzdGVuZXJzLmNvbnRhaW5zKG1lZGlhTGlzdGVuZXJJZCkpOworICAgIG1fbWVk
aWFMaXN0ZW5lcnMucmVtb3ZlKG1lZGlhTGlzdGVuZXJJZCk7Cit9CisKK2NvbnN0IERldmljZUNv
bm5lY3Rpb24mIERldmljZUNvbm5lY3Rpb25Db250cm9sbGVyOjpjb25uZWN0aW9uKGNvbnN0IERl
dmljZUNvbm5lY3Rpb25JZCYgaWQpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFpZC5pc051bGwoKSk7
CisgICAgQVNTRVJUKG1fZGV2aWNlQ29ubmVjdGlvbnMuY29udGFpbnMoaWQpKTsKKyAgICByZXR1
cm4gKm1fZGV2aWNlQ29ubmVjdGlvbnMuZ2V0KGlkKTsKK30KKworRGV2aWNlQ29ubmVjdGlvbiYg
RGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXI6Om11dGFibGVDb25uZWN0aW9uKGNvbnN0IERldmlj
ZUNvbm5lY3Rpb25JZCYgaWQpCit7CisgICAgQVNTRVJUKCFpZC5pc051bGwoKSk7CisgICAgQVNT
RVJUKG1fZGV2aWNlQ29ubmVjdGlvbnMuY29udGFpbnMoaWQpKTsKKyAgICByZXR1cm4gKm1fZGV2
aWNlQ29ubmVjdGlvbnMuZ2V0KGlkKTsKK30KKworYm9vbCBEZXZpY2VDb25uZWN0aW9uQ29udHJv
bGxlcjo6aXNDb25uZWN0aW9uSWRWYWxpZChjb25zdCBEZXZpY2VDb25uZWN0aW9uSWQmIGlkKSBj
b25zdAoreworICAgIGlmIChpZC5pc051bGwoKSB8fCBpZC50eXBlKCkgPT0gRGV2aWNlQ29ubmVj
dGlvbklkOjpOb25lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbV9kZXZp
Y2VDb25uZWN0aW9ucy5jb250YWlucyhpZCk7Cit9CisKK2Jvb2wgRGV2aWNlQ29ubmVjdGlvbkNv
bnRyb2xsZXI6OmNvbm5lY3RUb0xvY2FsRGV2aWNlKGNvbnN0IERldmljZUNvbm5lY3Rpb25JZCYg
aWQpCit7CisgICAgcmV0dXJuIG1fY2xpZW50LT5jb25uZWN0VG9Mb2NhbERldmljZShjb25uZWN0
aW9uKGlkKSk7Cit9CisKK3ZvaWQgRGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3REZXZpY2UoY29uc3QgRGV2aWNlQ29ubmVjdGlvbklkJiBpZCkKK3sKKyAgICByZXR1cm4gbV9j
bGllbnQtPmRpc2Nvbm5lY3REZXZpY2UoY29ubmVjdGlvbihpZCkpOworfQorCit2b2lkIERldmlj
ZUNvbm5lY3Rpb25Db250cm9sbGVyOjpkZXZpY2VDb25uZWN0aW9uVXBkYXRlKGNvbnN0IERldmlj
ZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgLy8gRG9uJ3QgYXNzZXJ0IGlmIG5vdCBw
cmVzZW50IGFzIHRoZSBjb25uZWN0aW9uIG1pZ2h0IGhhdmUgYmVlbiBkZXN0cm95ZWQgKGJ5IGRl
bGV0aW5nIGFsbCBpdHMgbGlzdGVuZXJzKQorICAgIC8vIHdoaWxlIHRoaXMgZXZlbnQgd2FzIG9u
IGl0cyB3YXkuCisgICAgaWYgKG1fY29ubmVjdGlvbkxpc3RlbmVycy5jb250YWlucyhjb25uZWN0
aW9uLmlkKCkpKSB7CisKKyAgICAgICAgaWYgKGNvbm5lY3Rpb24uc3RhdGUoKSA9PSBEZXZpY2VD
b25uZWN0aW9uOjpDb25uZWN0ZWQpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoY29ubmVjdGlvbi50
eXBlKCkuaWQoKSkgeworICAgICAgICAgICAgY2FzZSBEZXZpY2VUeXBlOjpNZWRpYToKKyAgICAg
ICAgICAgICAgICBtdXRhYmxlQ29ubmVjdGlvbihjb25uZWN0aW9uLmlkKCkpLm1fc3RyZWFtID0g
U3RyZWFtOjpjcmVhdGUodGhpcywgY29ubmVjdGlvbi5pZCgpLCBjb25uZWN0aW9uLnN0cmVhbVVy
bCgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgLy8gQ3JlYXRlIGhl
cmUgbW9yZSB0eXBlLXNwZWNpZmljIG9iamVjdHMgcmVwcmVzZW50aW5nIGFjdGl2ZSBjb25uZWN0
aW9ucyBmb3Igb3RoZXIgZGV2aWNlIHR5cGVzIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KworICAgICAgICBjb25zdCBDb25uZWN0aW9uTGlzdGVuZXJTZXQgKmxpc3RlbmVycyA9IG1fY29u
bmVjdGlvbkxpc3RlbmVycy5nZXQoY29ubmVjdGlvbi5pZCgpKTsKKyAgICAgICAgZm9yIChDb25u
ZWN0aW9uTGlzdGVuZXJTZXQ6Oml0ZXJhdG9yIGl0ID0gbGlzdGVuZXJzLT5iZWdpbigpOyBpdCAh
PSBsaXN0ZW5lcnMtPmVuZCgpOyArK2l0KQorICAgICAgICAgICAgKCppdCktPmRldmljZUNvbm5l
Y3Rpb25VcGRhdGUoY29ubmVjdGlvbik7CisgICAgfQorfQorCitib29sIERldmljZUNvbm5lY3Rp
b25Db250cm9sbGVyOjpyZWNvcmRTdHJlYW1Ub0ZpbGUoaW50IG1lZGlhTGlzdGVuZXJJZCwgY29u
c3QgRGV2aWNlQ29ubmVjdGlvbklkJiBjb25uZWN0aW9uSWQpCit7CisgICAgQVNTRVJUKG1lZGlh
TGlzdGVuZXJJZCk7CisgICAgQVNTRVJUKG1fbWVkaWFMaXN0ZW5lcnMuY29udGFpbnMobWVkaWFM
aXN0ZW5lcklkKSk7CisgICAgcmV0dXJuIG1fY2xpZW50LT5yZWNvcmRTdHJlYW1Ub0ZpbGUobWVk
aWFMaXN0ZW5lcklkLCBjb25uZWN0aW9uKGNvbm5lY3Rpb25JZCkpOworfQorCit2b2lkIERldmlj
ZUNvbm5lY3Rpb25Db250cm9sbGVyOjpzdG9wUmVjb3JkaW5nU3RyZWFtKGludCBtZWRpYUxpc3Rl
bmVySWQsIGNvbnN0IERldmljZUNvbm5lY3Rpb25JZCYgY29ubmVjdGlvbklkLCBjb25zdCBTdHJp
bmcmIHBhdGgpCit7CisgICAgQVNTRVJUKG1lZGlhTGlzdGVuZXJJZCk7CisgICAgQVNTRVJUKG1f
bWVkaWFMaXN0ZW5lcnMuY29udGFpbnMobWVkaWFMaXN0ZW5lcklkKSk7CisgICAgcmV0dXJuIG1f
Y2xpZW50LT5zdG9wUmVjb3JkaW5nU3RyZWFtKG1lZGlhTGlzdGVuZXJJZCwgY29ubmVjdGlvbihj
b25uZWN0aW9uSWQpLCBwYXRoKTsKK30KKwordm9pZCBEZXZpY2VDb25uZWN0aW9uQ29udHJvbGxl
cjo6c3RyZWFtUmVjb3JkaW5nU3RhcnRlZChpbnQgbWVkaWFMaXN0ZW5lcklkLCBjb25zdCBTdHJp
bmcmIHBhdGgpCit7CisgICAgLy8gRG9uJ3QgYXNzZXJ0IGlmIG5vdCBwcmVzZW50IGFzIHRoZSBs
aXN0ZW5lciBtaWdodCBoYXZlIGJlZW4gcmVtb3ZlZCB3aGlsZSB0aGlzIGV2ZW50IHdhcyBvbiBp
dHMgd2F5LgorICAgIEFTU0VSVChtZWRpYUxpc3RlbmVySWQpOworICAgIGlmIChtX21lZGlhTGlz
dGVuZXJzLmNvbnRhaW5zKG1lZGlhTGlzdGVuZXJJZCkpCisgICAgICAgIG1fbWVkaWFMaXN0ZW5l
cnMuZ2V0KG1lZGlhTGlzdGVuZXJJZCktPnN0cmVhbVJlY29yZGluZ1N0YXJ0ZWQobWVkaWFMaXN0
ZW5lcklkLCBwYXRoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VDb25uZWN0aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VD
b25uZWN0aW9uQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNzkxMWQyYzgxYzZlZDdkODhhMDY1
OWRiZmQ5NmJmOTRhMGYzNmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RldmljZUNvbm5lY3Rpb25Db250cm9sbGVyLmgKQEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERl
dmljZUNvbm5lY3Rpb25Db250cm9sbGVyX2gKKyNkZWZpbmUgRGV2aWNlQ29ubmVjdGlvbkNvbnRy
b2xsZXJfaAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2aWNl
Q29ubmVjdGlvbklkLmgiCisjaW5jbHVkZSAiRGV2aWNlTGlzdGVuZXIuaCIKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEZXZpY2VDbGllbnQ7CitjbGFzcyBEZXZpY2VDb25uZWN0aW9uOworY2xh
c3MgRGV2aWNlVHlwZTsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworCitjbGFzcyBEZXZpY2VDb25u
ZWN0aW9uQ29udHJvbGxlciA6IHB1YmxpYyBEZXZpY2VMaXN0ZW5lciB7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoRGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXIpOworcHVibGljOgorICAgIERl
dmljZUNvbm5lY3Rpb25Db250cm9sbGVyKERldmljZUNsaWVudCopOworICAgIHZpcnR1YWwgfkRl
dmljZUNvbm5lY3Rpb25Db250cm9sbGVyKCk7CisKKyAgICAvLyBDb25uZWN0aW9uIG1hbmFnZW1l
bnQuIE1hbnkgbGlzdGVuZXJzIGNhbiByZWdpc3RlciB0byByZWNpZXZlIHN0YXR1cyB1cGRhdGVz
IGZvciBhIGNvbm5lY3Rpb24uCisKKyAgICBjbGFzcyBDb25uZWN0aW9uTGlzdGVuZXIgeworICAg
IHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+Q29ubmVjdGlvbkxpc3RlbmVyKCkgeyB9CisKKyAg
ICAgICAgLy8gUmVwb3J0cyBhbiB1cGRhdGUgaW4gdGhlIHN0YXRlIG9mIGEgZGV2aWNlIGNvbm5l
Y3Rpb24uCisgICAgICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VDb25uZWN0aW9uVXBkYXRlKGNvbnN0
IERldmljZUNvbm5lY3Rpb24mKSA9IDA7CisKKyAgICAgICAgLy8gQ29ubmVjdGlvbiBjb250cm9s
bGVyIHNodXR0aW5nIGRvd24uIExpc3RlbmVycyBzaG91bGQgaW52YWxpZGF0ZSBhbnkgY29ubmVj
dGlvbiBpZHMgYW5kIGFzc3VtZQorICAgICAgICAvLyB0byBiZSB1bnJlZ2lzdGVyZWQgZm9yIGRl
dmljZSBjb25uZWN0aW9ucy4gQW55IGFjdGl2ZSBjb25uZWN0aW9ucyB3aWxsIGJlIGF1dG9tYXRp
Y2FsbHkgY2xvc2VkLgorICAgICAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbkNvbnRyb2xsZXJT
aHV0ZG93bigpID0gMDsKKyAgICB9OworCisgICAgLy8gQ3JlYXRlIGEgbmV3IGRldmljZSBjb25u
ZWN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGlzdGVuZXIgYW5kIHJldHVybiBpdHMgZGV2aWNl
IGNvbm5lY3Rpb24gaWQuCisgICAgLy8gVGhlIGlkIGVsZW1lbnQgb2YgdGhlIGNvbm5lY3Rpb24g
aWQgdHVwbGUgd2lsbCBiZSBtYW5hZ2VkIGJ5IHRoaXMgb2JqZWN0IGZvciBsb2NhbCBkZXZpY2Ug
Y29ubmVjdGlvbnMuCisgICAgLy8gRm9yIHJlbW90ZSBkZXZpY2UgY29ubmVjdGlvbnMsIGEgdmFs
aWQgaWQgdmFsdWUgaXMgYXNzdW1lZCB0byBiZSBhbHJlYWR5IHByZXNlbnQgYW5kIG1hbmFnZWQg
YnkgdGhlIENvbm5lY3Rpb25QZWVyQ2xpZW50LgorICAgIERldmljZUNvbm5lY3Rpb25JZCByZWdp
c3RlckRldmljZUNvbm5lY3Rpb24oY29uc3QgRGV2aWNlQ29ubmVjdGlvbiYsIENvbm5lY3Rpb25M
aXN0ZW5lciopOworCisgICAgLy8gUmVnaXN0ZXIgYSBuZXcgbGlzdGVuZXIgdG8gdGhlIHN0YXR1
cyB1cGRhdGVzIG9mIGFuIGV4aXN0aW5nIGNvbm5lY3Rpb24uCisgICAgdm9pZCByZWdpc3RlckNv
bm5lY3Rpb25MaXN0ZW5lcihjb25zdCBEZXZpY2VDb25uZWN0aW9uSWQmLCBDb25uZWN0aW9uTGlz
dGVuZXIqKTsKKworICAgIC8vIFVucmVnaXN0ZXIgYSBsaXN0ZW5lciBvZiBhIGV4aXN0aW5nIGNv
bm5lY3Rpb24uCisgICAgLy8gVGhlIGNvbm5lY3Rpb24gb2JqZWN0IHdpbGwgYmUgZGVzdHJveWVk
IGlmIGFsbCBsaXN0ZW5lcnMgYXJlIHVucmVnaXN0ZXJlZC4gQW55IGFjdGl2ZSBjb25uZWN0aW9u
IHdpbGwgYmUgY2xvc2VkLgorICAgIC8vIE5vdGU6IGluIHRoZSBjYXNlIG9mIG1lZGlhLCBpdCBz
aG91bGQgYmUga2VwdCBhbGl2ZSBieSBpdHMgb3duIHN0cmVhbSBvYmplY3QgdW50aWwgdGhlIGNv
bm5lY3Rpb24gdG8gdGhlIGRldmljZSBpcyBlaXRoZXIKKyAgICAvLyBwcm9wZXJseSBjbG9zZWQg
b3IgZmFpbHMuIEluIHRoYXQgY2FzZSB0aGUgc3RyZWFtIHdpbGwgdW5yZWdpc3RlciBpdHNlbGYg
YXMgbGlzdGVuZXIgd2hlbiByZWNlaXZpbmcgZGV2aWNlQ29ubmVjdGlvblVwZGF0ZS4KKyAgICB2
b2lkIHVucmVnaXN0ZXJDb25uZWN0aW9uTGlzdGVuZXIoY29uc3QgRGV2aWNlQ29ubmVjdGlvbklk
JiwgQ29ubmVjdGlvbkxpc3RlbmVyKik7CisKKworICAgIC8vIE1lZGlhIGxpc3RlbmluZy4gTWVz
c2FnZSByZXBsaWVzIGFyZSByZWNlaXZlZCBieSB0aGUgc2FtZSBvYmplY3QgdGhhdCBtYWRlIHRo
ZSByZXF1ZXN0cy4KKworICAgIGNsYXNzIE1lZGlhTGlzdGVuZXIgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgdmlydHVhbCB+TWVkaWFMaXN0ZW5lcigpIHsgfQorCisgICAgICAgIC8vIE5vdGlmaWVz
IHRoYXQgYSBzdHJlYW0gcmVjb3JkaW5nIGhhcyBzdGFydGVkIGFuZCBpdHMgYmVpbmcgcmVjb3Jk
ZWQgaW50byBhIHNwZWNpZmllZCBmaWxlLgorICAgICAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtUmVj
b3JkaW5nU3RhcnRlZChpbnQgbWVkaWFMaXN0ZW5lcklkLCBjb25zdCBTdHJpbmcmIHBhdGgpID0g
MDsKKyAgICB9OworCisgICAgLy8gUmVnaXN0ZXIgYSBuZXcgbWVkaWEgbGlzdGVuZXIgYW5kIHJl
dHVybiBhIHVuaXF1ZSBJRCBmb3IgaXQuCisgICAgaW50IHJlZ2lzdGVyTWVkaWFMaXN0ZW5lcihN
ZWRpYUxpc3RlbmVyKik7CisKKyAgICAvLyBVbnJlZ2lzdGVyIGEgbWVkaWEgbGlzdGVuZXIuCisg
ICAgdm9pZCB1bnJlZ2lzdGVyTWVkaWFMaXN0ZW5lcihpbnQgbWVkaWFMaXN0ZW5lcklkKTsKKwor
CisgICAgLy8gQ29udHJvbGxlciBtZXRob2RzLgorCisgICAgLy8gUHJvdmlkZXMgdGhlIGRldmlj
ZSBjb25uZWN0aW9uIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggYW4gaWQuCisgICAgY29uc3QgRGV2
aWNlQ29ubmVjdGlvbiYgY29ubmVjdGlvbihjb25zdCBEZXZpY2VDb25uZWN0aW9uSWQmKSBjb25z
dDsKKyAgICBib29sIGlzQ29ubmVjdGlvbklkVmFsaWQoY29uc3QgRGV2aWNlQ29ubmVjdGlvbklk
JikgY29uc3Q7CisKKyAgICAvLyBSZXF1ZXN0IHRvIGVzdGFibGlzaCBhbiBhY3RpdmUgY29ubmVj
dGlvbiB3aXRoIGEgbG9jYWwgZGV2aWNlIG9mIHRoZSBzcGVjaWZpZWQgdHlwZS4KKyAgICBib29s
IGNvbm5lY3RUb0xvY2FsRGV2aWNlKGNvbnN0IERldmljZUNvbm5lY3Rpb25JZCYpOworCisgICAg
Ly8gUmVxdWVzdCB0byBjbG9zZSBhbiBhY3RpdmUgZGV2aWNlIGNvbm5lY3Rpb24sIGVpdGhlciBs
b2NhbCBvciByZW1vdGUuCisgICAgdm9pZCBkaXNjb25uZWN0RGV2aWNlKGNvbnN0IERldmljZUNv
bm5lY3Rpb25JZCYpOworCisgICAgLy8gTWV0aG9kcyBpbnZva2VkIGJ5IHRoZSBtZWRpYSBsaXN0
ZW5lcnMuCisgICAgYm9vbCByZWNvcmRTdHJlYW1Ub0ZpbGUoaW50IG1lZGlhTGlzdGVuZXJJZCwg
Y29uc3QgRGV2aWNlQ29ubmVjdGlvbklkJik7CisgICAgdm9pZCBzdG9wUmVjb3JkaW5nU3RyZWFt
KGludCBtZWRpYUxpc3RlbmVySWQsIGNvbnN0IERldmljZUNvbm5lY3Rpb25JZCYsIGNvbnN0IFN0
cmluZyYgcGF0aCk7CisKKyAgICAvLyBEZXZpY2VMaXN0ZW5lciBpbXBsZW1lbnRhdGlvbi4KKyAg
ICB2aXJ0dWFsIHZvaWQgZGV2aWNlQ29ubmVjdGlvblVwZGF0ZShjb25zdCBEZXZpY2VDb25uZWN0
aW9uJik7CisgICAgdmlydHVhbCB2b2lkIHN0cmVhbVJlY29yZGluZ1N0YXJ0ZWQoaW50IG1lZGlh
TGlzdGVuZXJJZCwgY29uc3QgU3RyaW5nJiBwYXRoKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVm
IEhhc2hTZXQ8Q29ubmVjdGlvbkxpc3RlbmVyKj4gQ29ubmVjdGlvbkxpc3RlbmVyU2V0OworICAg
IHR5cGVkZWYgSGFzaE1hcDxEZXZpY2VDb25uZWN0aW9uSWQsIERldmljZUNvbm5lY3Rpb24qPiBE
ZXZpY2VDb25uZWN0aW9uTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxEZXZpY2VDb25uZWN0aW9u
SWQsIENvbm5lY3Rpb25MaXN0ZW5lclNldCo+IENvbm5lY3Rpb25MaXN0ZW5lcnNNYXA7CisgICAg
dHlwZWRlZiBIYXNoTWFwPGludCwgTWVkaWFMaXN0ZW5lcio+IE1lZGlhTGlzdGVuZXJNYXA7CisK
KyAgICBEZXZpY2VDb25uZWN0aW9uJiBtdXRhYmxlQ29ubmVjdGlvbihjb25zdCBEZXZpY2VDb25u
ZWN0aW9uSWQmKTsKKworICAgIERldmljZUNsaWVudCogbV9jbGllbnQ7CisgICAgRGV2aWNlQ29u
bmVjdGlvbk1hcCBtX2RldmljZUNvbm5lY3Rpb25zOworICAgIENvbm5lY3Rpb25MaXN0ZW5lcnNN
YXAgbV9jb25uZWN0aW9uTGlzdGVuZXJzOworICAgIE1lZGlhTGlzdGVuZXJNYXAgbV9tZWRpYUxp
c3RlbmVyczsKKyAgICBpbnQgbV9uZXh0TG9jYWxEZXZpY2VDb25uZWN0aW9uSWQ7CisgICAgaW50
IG1fbmV4dE1lZGlhTGlzdGVuZXJJZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2VuZGlmIC8vIERldmljZUNvbm5l
Y3Rpb25Db250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNl
TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlTGlzdGVuZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jZTM3MTdhYmI0ZWRjMGY4MjBmY2M1NjU5MjkxNjQ4NThhNTlkZWFhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VMaXN0ZW5lci5oCkBAIC0wLDAgKzEs
NTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIERldmljZUxpc3RlbmVyX2gKKyNkZWZpbmUgRGV2aWNlTGlzdGVuZXJfaAorCisjaWYg
RU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VDb25uZWN0aW9uOworCisvLyBUaGlz
IGludGVyZmFjZSBjb21wb3NlcyB0aGUgZGlmZmVyZW50IGtpbmRzIG9mIGluY29taW5nIG1lc3Nh
Z2VzIHNvIHRoYXQgdGhleSBjYW4KKy8vIGJlIGltcGxlbWVudGVkIGJ5IGJvdGggdGhlIERldmlj
ZUNvbnRyb2xsZXIgYW5kIHRoZSBEZXZpY2VDbGllbnRNb2NrLgorY2xhc3MgRGV2aWNlTGlzdGVu
ZXIgIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5EZXZpY2VMaXN0ZW5lcigpIHsgfQorCisgICAg
Ly8gUmVwb3J0cyBhbiB1cGRhdGUgaW4gdGhlIHN0YXRlIG9mIGEgZGV2aWNlIGNvbm5lY3Rpb24u
CisgICAgdmlydHVhbCB2b2lkIGRldmljZUNvbm5lY3Rpb25VcGRhdGUoY29uc3QgRGV2aWNlQ29u
bmVjdGlvbiYpID0gMDsKKworICAgIC8vIE5vdGlmaWVzIHRoYXQgYSBzdHJlYW0gcmVjb3JkaW5n
IGhhcyBzdGFydGVkIGFuZCBpdHMgYmVpbmcgcmVjb3JkZWQgaW50byBhIHNwZWNpZmllZCBmaWxl
LgorICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1SZWNvcmRpbmdTdGFydGVkKGludCBtZWRpYUxpc3Rl
bmVySWQsIGNvbnN0IFN0cmluZyYgcGF0aCkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gRGV2
aWNlTGlzdGVuZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZDIxODc0ZWI1MjRkNmYzYzBmOWU5
MzhkYTIzYTA3NDZiNGZhM2U1Ni4uMWNlZGNmMzViYTAwYzM1NDNmZDE4ZjUyNjk2YzAwMTQ3Zjli
NmU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQ29u
dGV4dE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIKKyNpbmNsdWRl
ICJEZXZpY2VDb25uZWN0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKQEAgLTEzOSw2ICsxNDEsOSBAQCBQ
YWdlOjpQYWdlKGNvbnN0IFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICNpZiBFTkFCTEUoSU5Q
VVRfU1BFRUNIKQogICAgICwgbV9zcGVlY2hJbnB1dENsaWVudChwYWdlQ2xpZW50cy5zcGVlY2hJ
bnB1dENsaWVudCkKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKyAgICAsIG1f
ZGV2aWNlQ2xpZW50KHBhZ2VDbGllbnRzLmRldmljZUNsaWVudCkKKyNlbmRpZgogICAgICwgbV9z
ZXR0aW5ncyhhZG9wdFB0cihuZXcgU2V0dGluZ3ModGhpcykpKQogICAgICwgbV9wcm9ncmVzcyhh
ZG9wdFB0cihuZXcgUHJvZ3Jlc3NUcmFja2VyKSkKICAgICAsIG1fYmFja0ZvcndhcmRDb250cm9s
bGVyKGFkb3B0UHRyKG5ldyBCYWNrRm9yd2FyZENvbnRyb2xsZXIodGhpcywgcGFnZUNsaWVudHMu
YmFja0ZvcndhcmRDbGllbnQpKSkKQEAgLTE2NCw3ICsxNjksNyBAQCBQYWdlOjpQYWdlKGNvbnN0
IFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKIHsKICAgICBpZiAoIWFsbFBhZ2VzKSB7CiAgICAg
ICAgIGFsbFBhZ2VzID0gbmV3IEhhc2hTZXQ8UGFnZSo+OwotICAgICAgICAKKwogICAgICAgICBu
ZXR3b3JrU3RhdGVOb3RpZmllcigpLnNldE5ldHdvcmtTdGF0ZUNoYW5nZWRGdW5jdGlvbihuZXR3
b3JrU3RhdGVDaGFuZ2VkKTsKICAgICB9CiAKQEAgLTg0Miw2ICs4NDcsMTYgQEAgU3BlZWNoSW5w
dXQqIFBhZ2U6OnNwZWVjaElucHV0KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9F
TEVNRU5UKQorRGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXIqIFBhZ2U6OmRldmljZUNvbm5lY3Rp
b25Db250cm9sbGVyKCkKK3sKKyAgICBBU1NFUlQobV9kZXZpY2VDbGllbnQpOworICAgIGlmICgh
bV9kZXZpY2VDb25uZWN0aW9uQ29udHJvbGxlci5nZXQoKSkKKyAgICAgICAgbV9kZXZpY2VDb25u
ZWN0aW9uQ29udHJvbGxlci5zZXQobmV3IERldmljZUNvbm5lY3Rpb25Db250cm9sbGVyKG1fZGV2
aWNlQ2xpZW50KSk7CisgICAgcmV0dXJuIG1fZGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXIuZ2V0
KCk7Cit9CisjZW5kaWYKKwogdm9pZCBQYWdlOjpkbnNQcmVmZXRjaGluZ1N0YXRlQ2hhbmdlZCgp
CiB7CiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0g
ZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDA3MWIxNDI3
ZDZkNzdjZjkwYmZmNWMwMDRjZDgyOWZlMzMzMDBhMzIuLjBhNjdkMDE5YzI1NmRhODk1NDIzZDQy
MGRhMDMwMWMzMDYxY2IzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC03NSw2ICs3NSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDsKICAgICBj
bGFzcyBTcGVlY2hJbnB1dDsKICAgICBjbGFzcyBTcGVlY2hJbnB1dENsaWVudDsKKyAgICBjbGFz
cyBEZXZpY2VDbGllbnQ7CisgICAgY2xhc3MgRGV2aWNlQ29ubmVjdGlvbkNvbnRyb2xsZXI7CiAK
ICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiAgICAgY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKQEAg
LTExMyw2ICsxMTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudCogZGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CiAgICAgICAgICAgICBS
ZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBiYWNrRm9yd2FyZENsaWVudDsKICAgICAgICAgICAgIFNw
ZWVjaElucHV0Q2xpZW50KiBzcGVlY2hJbnB1dENsaWVudDsKKyAgICAgICAgICAgIERldmljZUNs
aWVudCogZGV2aWNlQ2xpZW50OwogICAgICAgICB9OwogCiAgICAgICAgIFBhZ2UoY29uc3QgUGFn
ZUNsaWVudHMmKTsKQEAgLTE4Miw2ICsxODUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYg
RU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAgICAgU3BlZWNoSW5wdXQqIHNwZWVjaElucHV0KCk7
CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisgICAgICAgIERldmljZUNvbm5l
Y3Rpb25Db250cm9sbGVyKiBkZXZpY2VDb25uZWN0aW9uQ29udHJvbGxlcigpOworI2VuZGlmCiAg
ICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGluZ3MuZ2V0
KCk7IH0KICAgICAgICAgUHJvZ3Jlc3NUcmFja2VyKiBwcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJu
IG1fcHJvZ3Jlc3MuZ2V0KCk7IH0KICAgICAgICAgQmFja0ZvcndhcmRDb250cm9sbGVyKiBiYWNr
Rm9yd2FyZCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja0ZvcndhcmRDb250cm9sbGVyLmdldCgpOyB9
CkBAIC0xOTgsNyArMjA0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFZpZXdN
b2RlIHZpZXdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV92aWV3TW9kZTsgfQogICAgICAgICB2b2lk
IHNldFZpZXdNb2RlKFZpZXdNb2RlKTsKLSAgICAgICAgCisKICAgICAgICAgdm9pZCBzZXRUYWJL
ZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCBiKSB7IG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVs
ZW1lbnRzID0gYjsgfQogICAgICAgICBib29sIHRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cygp
IGNvbnN0IHsgcmV0dXJuIG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzOyB9CiAKQEAgLTMw
NCw3ICszMTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVE
XzJEX0NBTlZBUykKICAgICAgICAgUmVmUHRyPFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEPiBtX3No
YXJlZEdyYXBoaWNzQ29udGV4dDNEOwogI2VuZGlmCi0gICAgICAgIAorCiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKICAgICAgICAgT3duUHRyPERyYWdDb250cm9sbGVyPiBtX2RyYWdDb250cm9s
bGVyOwogI2VuZGlmCkBAIC0zMjYsOSArMzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgU3BlZWNoSW5wdXRDbGllbnQqIG1fc3BlZWNoSW5wdXRDbGllbnQ7CiAgICAgICAgIE93
blB0cjxTcGVlY2hJbnB1dD4gbV9zcGVlY2hJbnB1dDsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJ
Q0VfRUxFTUVOVCkKKyAgICAgICAgRGV2aWNlQ2xpZW50KiBtX2RldmljZUNsaWVudDsKKyAgICAg
ICAgT3duUHRyPERldmljZUNvbm5lY3Rpb25Db250cm9sbGVyPiBtX2RldmljZUNvbm5lY3Rpb25D
b250cm9sbGVyOworI2VuZGlmCiAgICAgICAgIE93blB0cjxTZXR0aW5ncz4gbV9zZXR0aW5nczsK
ICAgICAgICAgT3duUHRyPFByb2dyZXNzVHJhY2tlcj4gbV9wcm9ncmVzczsKLSAgICAgICAgCisK
ICAgICAgICAgT3duUHRyPEJhY2tGb3J3YXJkQ29udHJvbGxlcj4gbV9iYWNrRm9yd2FyZENvbnRy
b2xsZXI7CiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbV9tYWluRnJhbWU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RoZW1lVHlwZXMuaAppbmRleCBlYzQ1Y2I3OWZmMzBlNDM0MDEzOTM3ZjMyYWYzZmU5
MTVkZTIyYWIzLi42ZmZiYmNkYzJjMWU4NTNlNjQxZDZhNTc0ZWRkYTNlNTE3YTE4Y2E5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCkBAIC00Nyw3ICs0Nyw3IEBAIHR5cGVkZWYg
dW5zaWduZWQgQ29udHJvbFN0YXRlczsKIC8vIE11c3QgZm9sbG93IENTU1ZhbHVlS2V5d29yZHMu
aW4gb3JkZXIKIGVudW0gQ29udHJvbFBhcnQgewogICAgIE5vQ29udHJvbFBhcnQsIENoZWNrYm94
UGFydCwgUmFkaW9QYXJ0LCBQdXNoQnV0dG9uUGFydCwgU3F1YXJlQnV0dG9uUGFydCwgQnV0dG9u
UGFydCwKLSAgICBCdXR0b25CZXZlbFBhcnQsIERlZmF1bHRCdXR0b25QYXJ0LCBJbm5lclNwaW5C
dXR0b25QYXJ0LCBJbnB1dFNwZWVjaEJ1dHRvblBhcnQsIExpc3RCdXR0b25QYXJ0LCBMaXN0Ym94
UGFydCwgTGlzdEl0ZW1QYXJ0LAorICAgIEJ1dHRvbkJldmVsUGFydCwgRGVmYXVsdEJ1dHRvblBh
cnQsIElubmVyU3BpbkJ1dHRvblBhcnQsIElucHV0U3BlZWNoQnV0dG9uUGFydCwgRGV2aWNlQnV0
dG9uUGFydCwgTGlzdEJ1dHRvblBhcnQsIExpc3Rib3hQYXJ0LCBMaXN0SXRlbVBhcnQsCiAgICAg
TWVkaWFGdWxsc2NyZWVuQnV0dG9uUGFydCwgTWVkaWFNdXRlQnV0dG9uUGFydCwgTWVkaWFQbGF5
QnV0dG9uUGFydCwgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQsIAogICAgIE1lZGlhU2Vla0Zvcndh
cmRCdXR0b25QYXJ0LCBNZWRpYVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGlt
ZUJ1dHRvblBhcnQsIE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25QYXJ0LAogICAgIE1l
ZGlhU2xpZGVyUGFydCwgTWVkaWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyQ29u
dGFpbmVyUGFydCwgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclRodW1i
UGFydCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXZpY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldmljZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWM1ZWUzZjNhMmMxM2ZmNTNhOWFkMjA3ODBkZGI2MTk4MGY2NzgzZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXZpY2UuY3BwCkBAIC0wLDAg
KzEsMTUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbmRlckRldmljZS5oIgor
CisjaW5jbHVkZSAiSFRNTERldmljZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyQnV0dG9uLmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWUu
aCIKKyNpbmNsdWRlICJTaGFkb3dFbGVtZW50LmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1F
TlQpCisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVu
ZGVyRGV2aWNlOjpSZW5kZXJEZXZpY2UoSFRNTERldmljZUVsZW1lbnQqIGRldmljZSkKKyAgICA6
IFJlbmRlckJsb2NrKGRldmljZSkKK3sKK30KKworUmVuZGVyRGV2aWNlOjp+UmVuZGVyRGV2aWNl
KCkKK3sKKyAgICBpZiAobV9idXR0b24pCisgICAgICAgIG1fYnV0dG9uLT5kZXRhY2goKTsKK30K
Kwordm9pZCBSZW5kZXJEZXZpY2U6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZm
LCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit7CisgICAgUmVuZGVyQmxvY2s6OnN0eWxl
RGlkQ2hhbmdlKGRpZmYsIG9sZFN0eWxlKTsKKyAgICBpZiAobV9idXR0b24pCisgICAgICAgIG1f
YnV0dG9uLT5yZW5kZXJlcigpLT5zZXRTdHlsZShjcmVhdGVCdXR0b25TdHlsZShzdHlsZSgpKSk7
CisKKyAgICBzZXRSZXBsYWNlZChpc0lubGluZSgpKTsKK30KKwordm9pZCBSZW5kZXJEZXZpY2U6
OnVwZGF0ZUZyb21FbGVtZW50KCkKK3sKKyAgICBIVE1MRGV2aWNlRWxlbWVudCogZGV2aWNlRWxl
bWVudCA9IHN0YXRpY19jYXN0PEhUTUxEZXZpY2VFbGVtZW50Kj4obm9kZSgpKTsKKworICAgIGlm
ICghbV9idXR0b24pIHsKKyAgICAgICAgbV9idXR0b24gPSBTaGFkb3dJbnB1dEVsZW1lbnQ6OmNy
ZWF0ZShkZXZpY2VFbGVtZW50KTsKKyAgICAgICAgbV9idXR0b24tPnNldFR5cGUoImJ1dHRvbiIp
OworICAgICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGJ1dHRvblN0eWxlID0gY3JlYXRlQnV0dG9u
U3R5bGUoc3R5bGUoKSk7CisgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBtX2J1dHRv
bi0+Y3JlYXRlUmVuZGVyZXIocmVuZGVyQXJlbmEoKSwgYnV0dG9uU3R5bGUuZ2V0KCkpOworICAg
ICAgICBtX2J1dHRvbi0+c2V0UmVuZGVyZXIocmVuZGVyZXIpOworICAgICAgICByZW5kZXJlci0+
c2V0U3R5bGUoYnV0dG9uU3R5bGUucmVsZWFzZSgpKTsKKyAgICAgICAgcmVuZGVyZXItPnVwZGF0
ZUZyb21FbGVtZW50KCk7CisgICAgICAgIG1fYnV0dG9uLT5zZXRBdHRhY2hlZCgpOworICAgICAg
ICBtX2J1dHRvbi0+c2V0SW5Eb2N1bWVudCgpOworCisgICAgICAgIGFkZENoaWxkKHJlbmRlcmVy
KTsKKyAgICB9CisKKyAgICBzd2l0Y2ggKGRldmljZUVsZW1lbnQtPnN0YXRlKCkpIHsKKyAgICBj
YXNlIEhUTUxEZXZpY2VFbGVtZW50OjpOb3RDb25uZWN0ZWQ6CisgICAgICAgIG1fYnV0dG9uLT5z
ZXRWYWx1ZSgiU2VsZWN0IGRldmljZSIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgSFRN
TERldmljZUVsZW1lbnQ6OkNvbm5lY3Rpbmc6CisgICAgICAgIG1fYnV0dG9uLT5zZXRWYWx1ZSgi
Q29ubmVjdGluZy4uLiIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgSFRNTERldmljZUVs
ZW1lbnQ6OkNvbm5lY3RlZDoKKyAgICAgICAgbV9idXR0b24tPnNldFZhbHVlKCJEaXNjb25uZWN0
Iik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBIVE1MRGV2aWNlRWxlbWVudDo6RGlzY29u
bmVjdGluZzoKKyAgICAgICAgbV9idXR0b24tPnNldFZhbHVlKCJEaXNjb25uZWN0aW5nLi4uIik7
CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorCisgICAgbV9idXR0b24tPnJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVt
ZW50KCk7CisgICAgbV9idXR0b24tPnNldERpc2FibGVkKCF0aGVtZSgpLT5pc0VuYWJsZWQodGhp
cykpOworfQorCitQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBSZW5kZXJEZXZpY2U6OmNyZWF0ZUJ1
dHRvblN0eWxlKGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSkgY29uc3QKK3sKKyAgICBS
ZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gZ2V0Q2FjaGVkUHNldWRvU3R5bGUoREVWSUNFX0JV
VFRPTik7CisgICAgaWYgKCFzdHlsZSkgeworICAgICAgICBzdHlsZSA9IFJlbmRlclN0eWxlOjpj
cmVhdGUoKTsKKyAgICAgICAgaWYgKHBhcmVudFN0eWxlKQorICAgICAgICAgICAgc3R5bGUtPmlu
aGVyaXRGcm9tKHBhcmVudFN0eWxlKTsKKyAgICB9CisKKyAgICBzdHlsZS0+c2V0V2hpdGVTcGFj
ZShOT1dSQVApOworCisgICAgcmV0dXJuIHN0eWxlLnJlbGVhc2UoKTsKK30KKwordm9pZCBSZW5k
ZXJEZXZpY2U6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3sKKyAgICBBU1NFUlQo
cHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KCkpOworCisgICAgbV9taW5QcmVmZXJyZWRMb2dp
Y2FsV2lkdGggPSBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IGNvbXB1dGVDb250ZW50Qm94
TG9naWNhbFdpZHRoKHN0eWxlKCktPndpZHRoKCkudmFsdWUoKSk7CisKKyAgICBpZiAoc3R5bGUo
KS0+bWluV2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpID4g
MCkgeworICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heChtX21heFByZWZl
cnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUoKS0+
bWluV2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRo
ID0gbWF4KG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2lj
YWxXaWR0aChzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKKyAgICB9IGVsc2UgaWYgKHN0
eWxlKCktPndpZHRoKCkuaXNQZXJjZW50KCkgfHwgKHN0eWxlKCktPndpZHRoKCkuaXNBdXRvKCkg
JiYgc3R5bGUoKS0+aGVpZ2h0KCkuaXNQZXJjZW50KCkpKQorICAgICAgICBtX21pblByZWZlcnJl
ZExvZ2ljYWxXaWR0aCA9IDA7CisgICAgZWxzZQorICAgICAgICBtX21pblByZWZlcnJlZExvZ2lj
YWxXaWR0aCA9IG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoOworCisgICAgaWYgKHN0eWxlKCkt
Pm1heFdpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSAhPSB1
bmRlZmluZWRMZW5ndGgpIHsKKyAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBt
aW4obV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdp
ZHRoKHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21pblByZWZlcnJl
ZExvZ2ljYWxXaWR0aCA9IG1pbihtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNv
bnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAg
fQorCisgICAgaW50IHRvQWRkID0gYm9yZGVyQW5kUGFkZGluZ1dpZHRoKCk7CisgICAgbV9taW5Q
cmVmZXJyZWRMb2dpY2FsV2lkdGggKz0gdG9BZGQ7CisgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2Fs
V2lkdGggKz0gdG9BZGQ7CisKKyAgICBzZXRQcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoZmFs
c2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVW
SUNFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV2aWNlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGVmMDMzMTY4M2ExY2FkYmNlNWY3OGEwNTRmZGE0ZTYyNDFjMDcxYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXZpY2UuaApAQCAtMCww
ICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBSZW5kZXJEZXZpY2VfaAorI2RlZmluZSBSZW5kZXJEZXZpY2VfaAor
CisjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MRGV2aWNlRWxlbWVudDsKK2NsYXNz
IEhUTUxJbnB1dEVsZW1lbnQ7CisKK2NsYXNzIFJlbmRlckRldmljZSA6IHB1YmxpYyBSZW5kZXJC
bG9jayB7CitwdWJsaWM6CisgICAgUmVuZGVyRGV2aWNlKEhUTUxEZXZpY2VFbGVtZW50Kik7Cisg
ICAgdmlydHVhbCB+UmVuZGVyRGV2aWNlKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNEZXZpY2Uo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBjb25zdCBj
aGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlckRldmljZSI7IH0KKworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBjb21w
dXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOworCisgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlk
Q2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKKwor
ICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjcmVh
dGVCdXR0b25TdHlsZShjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUpIGNvbnN0OworCisg
ICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IG1fYnV0dG9uOworfTsKKworaW5saW5lIFJlbmRl
ckRldmljZSogdG9SZW5kZXJEZXZpY2UoUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgQVNT
RVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc0RldmljZSgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8UmVuZGVyRGV2aWNlKj4ob2JqZWN0KTsKK30KKwordm9pZCB0b1JlbmRlckRldmljZShjb25z
dCBSZW5kZXJEZXZpY2UqKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gUmVuZGVyRGV2aWNlX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA0M2U2YmVhMjYyMDEyOTljNGY4
MGFlZTQ1YjA5ZmZmZDU5YjZlMzMzLi45OWQ5YTliYWJmOGZmYTZiYWEyM2Q2ODZkYzZjOTk2MDNm
NTcwNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0yNTUs
NiArMjU1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0RldGFpbHMoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0RldGFpbHNNYXJrZXIoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0VtYmVkZGVkT2JqZWN0KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisgICAg
dmlydHVhbCBib29sIGlzRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgog
ICAgIHZpcnR1YWwgYm9vbCBpc0ZpZWxkc2V0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNGaWxlVXBsb2FkQ29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzRnJhbWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggYjBiNzczNTg1NmU3
MTkxMzkxNDQ0OWUxY2Y4YzI3NTE0NjU3ODc3Ny4uMDcxODg0NGJkZDczNGIwYmM5ZDgwYjM2NmEz
MTBjYjc1ODY3NmNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3Bw
CkBAIC0yMzcsNiArMjM3LDEwIEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFN0eWxlKENTU1N0
eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsCiAgICAgICAgIGNh
c2UgSW5wdXRTcGVlY2hCdXR0b25QYXJ0OgogICAgICAgICAgICAgcmV0dXJuIGFkanVzdElucHV0
RmllbGRTcGVlY2hCdXR0b25TdHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOwogI2VuZGlmCisjaWYg
RU5BQkxFKERFVklDRV9FTEVNRU5UKQorICAgICAgICBjYXNlIERldmljZUJ1dHRvblBhcnQ6Cisg
ICAgICAgIC8vIEZJWE1FOiBhZGp1c3QgZGV2aWNlIGJ1dHRvbiBzdHlsZSBhbmQgc2l6ZXMuCisj
ZW5kaWYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTM3
Myw2ICszNzcsMTAgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQoUmVuZGVyT2JqZWN0KiBvLCBj
b25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmUKICAgICAgICAgY2FzZSBJbnB1
dFNwZWVjaEJ1dHRvblBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRJbnB1dEZpZWxkU3Bl
ZWNoQnV0dG9uKG8sIHBhaW50SW5mbywgcik7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX0VM
RU1FTlQpCisgICAgICAgIGNhc2UgRGV2aWNlQnV0dG9uUGFydDoKKyAgICAgICAgLy8gRklYTUU6
IGFkZCBwYWludGluZyBjb2RlIHRvIGRyYXcgdGhlIGRldmljZSBidXR0b24uCisjZW5kaWYKICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTQyNCw2ICs0MzIs
OSBAQCBib29sIFJlbmRlclRoZW1lOjpwYWludEJvcmRlck9ubHkoUmVuZGVyT2JqZWN0KiBvLCBj
b25zdCBQYWludEluZm8mIHBhaW50SW5mbywgYwogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAg
ICAgICAgIGNhc2UgSW5wdXRTcGVlY2hCdXR0b25QYXJ0OgogI2VuZGlmCisjaWYgRU5BQkxFKERF
VklDRV9FTEVNRU5UKQorICAgICAgICBjYXNlIERldmljZUJ1dHRvblBhcnQ6CisjZW5kaWYKICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTQ3Myw2ICs0ODQs
OSBAQCBib29sIFJlbmRlclRoZW1lOjpwYWludERlY29yYXRpb25zKFJlbmRlck9iamVjdCogbywg
Y29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAg
ICAgICAgY2FzZSBJbnB1dFNwZWVjaEJ1dHRvblBhcnQ6CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVW
SUNFX0VMRU1FTlQpCisgICAgICAgIGNhc2UgRGV2aWNlQnV0dG9uUGFydDoKKyNlbmRpZgogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCBj
OTViZjVhM2NkNmUxMjIyNGUwYjQ1NmIxNjg3NDcyYzk3N2EzNGU2Li5hMGY1ZDU3ZDc0M2FiYTdl
Y2ZiNGIxYjg0ZWI5MTdiYzg4MjNhODc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNzMsNyArNzMsNyBAQCBl
bnVtIFBzZXVkb0lkIHsKICAgICBNRURJQV9DT05UUk9MU19TVEFUVVNfRElTUExBWSwgU0NST0xM
QkFSX1RIVU1CLCBTQ1JPTExCQVJfQlVUVE9OLCBTQ1JPTExCQVJfVFJBQ0ssIFNDUk9MTEJBUl9U
UkFDS19QSUVDRSwgU0NST0xMQkFSX0NPUk5FUiwgUkVTSVpFUiwKICAgICBJTlBVVF9MSVNUX0JV
VFRPTiwgSU5QVVRfU1BFRUNIX0JVVFRPTiwgSU5ORVJfU1BJTl9CVVRUT04sIE9VVEVSX1NQSU5f
QlVUVE9OLCBWSVNJVEVEX0xJTkssCiAgICAgTUVURVJfSE9SSVpPTlRBTF9CQVIsIE1FVEVSX0hP
UklaT05UQUxfT1BUSU1VTSwgTUVURVJfSE9SSVpPTlRBTF9TVUJPUFRJTUFMLCBNRVRFUl9IT1JJ
Wk9OVEFMX0VWRU5fTEVTU19HT09ELAotICAgIE1FVEVSX1ZFUlRJQ0FMX0JBUiwgTUVURVJfVkVS
VElDQUxfT1BUSU1VTSwgTUVURVJfVkVSVElDQUxfU1VCT1BUSU1BTCwgTUVURVJfVkVSVElDQUxf
RVZFTl9MRVNTX0dPT0QsIAorICAgIE1FVEVSX1ZFUlRJQ0FMX0JBUiwgTUVURVJfVkVSVElDQUxf
T1BUSU1VTSwgTUVURVJfVkVSVElDQUxfU1VCT1BUSU1BTCwgTUVURVJfVkVSVElDQUxfRVZFTl9M
RVNTX0dPT0QsIERFVklDRV9CVVRUT04sCiAgICAgQUZURVJfTEFTVF9JTlRFUk5BTF9QU0VVRE9J
RCwKICAgICBGVUxMX1NDUkVFTiwgRlVMTF9TQ1JFRU5fRE9DVU1FTlQsCiAgICAgRklSU1RfUFVC
TElDX1BTRVVET0lEID0gRklSU1RfTElORSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lw
aQppbmRleCBkMjE4NGNmNGNiNDhkNmMxMTI3ZGRjNTcwZjkzOTZjZmQ1YWRkZDc0Li4wNWNlZWFh
MTdiNDNlZjBmYzAyOWQ4MzQ5ZTU4YTQ4OWFmZWU3YTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9m
ZWF0dXJlcy5neXBpCkBAIC00OSw2ICs0OSw3IEBACiAgICAgICAgICdFTkFCTEVfREFTSEJPQVJE
X1NVUFBPUlQ9MCcsCiAgICAgICAgICdFTkFCTEVfREFUQUJBU0U9MScsCiAgICAgICAgICdFTkFC
TEVfREFUQUdSSUQ9MCcsCisgICAgICAgICdFTkFCTEVfREVWSUNFX0VMRU1FTlQ9MScsCiAgICAg
ICAgICdFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OPTEnLAogICAgICAgICAnRU5BQkxFX0RJUkVD
VE9SWV9VUExPQUQ9MScsCiAgICAgICAgICdFTkFCTEVfRE9NX1NUT1JBR0U9MScsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCmluZGV4IDM5NzEwMzdiOWM3NmJjNDAwNzAwNmMyZTYxNmFjY2Q3MWMxMmIxNjYuLjU3
ZmQwNmVjN2E5NzBjMWE4NWNiOGVkODAxMDVlNDZkODVjYmU0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CkBAIC02Niw2ICs2Niw3IEBAIEVOQUJMRV9EQVRBR1JJRCA9IDsKIEVOQUJMRV9EQVRBTElTVCA9
ICQoRU5BQkxFX0RBVEFMSVNUXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfREFUQUxJ
U1RfbWFjb3N4ID0gRU5BQkxFX0RBVEFMSVNUOwogCitFTkFCTEVfREVWSUNFX0VMRU1FTlQgPSA7
CiBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OID0gOwogRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQg
PSA7CiBFTkFCTEVfRE9NX1NUT1JBR0UgPSBFTkFCTEVfRE9NX1NUT1JBR0U7CkBAIC0xMjUsNCAr
MTI2LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7
CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxF
X1dFQkdMKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFC
TEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAk
KEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIp
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFC
TEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9U
QUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9I
QU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9T
VkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JK
Q19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpF
Q1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9NRURJQV9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJM
RV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hI
VE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElT
VCkgJChFTkFCTEVfREVWSUNFX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikg
JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxF
X0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChF
TkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09O
REFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikg
JChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElP
TlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1Nf
VEFHKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURf
V09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9T
VkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZH
X0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQo
RU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9X
TUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAk
KEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggMzk3MTAzN2I5Yzc2YmM0MDA3MDA2YzJlNjE2
YWNjZDcxYzEyYjE2Ni4uNTdmZDA2ZWM3YTk3MGMxYTg1Y2I4ZWQ4MDEwNWU0NmQ4NWNiZTQwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTY2LDYgKzY2LDcgQEAgRU5BQkxFX0RBVEFHUklEID0gOwogRU5BQkxF
X0RBVEFMSVNUID0gJChFTkFCTEVfREFUQUxJU1RfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVO
QUJMRV9EQVRBTElTVF9tYWNvc3ggPSBFTkFCTEVfREFUQUxJU1Q7CiAKK0VOQUJMRV9ERVZJQ0Vf
RUxFTUVOVCA9IDsKIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gPSA7CiBFTkFCTEVfRElSRUNU
T1JZX1VQTE9BRCA9IDsKIEVOQUJMRV9ET01fU1RPUkFHRSA9IEVOQUJMRV9ET01fU1RPUkFHRTsK
QEAgLTEyNSw0ICsxMjYsNCBAQCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVO
QUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5F
UyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikg
JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRB
TElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBM
T0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxF
X0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkg
JChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1B
R0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BF
RUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5B
QkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVS
X1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcp
ICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykg
JChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRkVBVFVS
RV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURf
MkRfQ0FOVkFTKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJM
RV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5B
QkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFH
RSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVf
U1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQo
RU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBU
X0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJM
RV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5B
QkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04p
ICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAk
KEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVf
U1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5B
QkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcp
ICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFC
TEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWls
ZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAppbmRleCA3NDAxNWVjYmQ2NWVi
M2M1ZmUyNThmMDczNzllMjhkMmUxMTUzOGZiLi5lMzRiMzI5ZjUzM2I4NWEzZmYxYjY3OGNlMTE1
ZjMwYTc4NzUwYzIxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAorKysg
Yi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAtNzAsNiArNzAsNyBAQCBteSAoCiAgICAg
JGRhdGFiYXNlU3VwcG9ydCwKICAgICAkZGF0YWdyaWRTdXBwb3J0LAogICAgICRkYXRhbGlzdFN1
cHBvcnQsCisgICAgJGRldmljZVN1cHBvcnQsCiAgICAgJGRldmljZU9yaWVudGF0aW9uU3VwcG9y
dCwKICAgICAkZGlyZWN0b3J5VXBsb2FkU3VwcG9ydCwKICAgICAkZG9tU3RvcmFnZVN1cHBvcnQs
CkBAIC0xNDgsNiArMTQ5LDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJk
YXRhbGlzdCIsIGRlc2MgPT4gIlRvZ2dsZSBIVE1MNSBkYXRhbGlzdCBzdXBwb3J0IiwKICAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX0RBVEFMSVNUIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGRh
dGFsaXN0U3VwcG9ydCB9LAogCisgICAgeyBvcHRpb24gPT4gImRldmljZSIsIGRlc2MgPT4gIlRv
Z2dsZSBkZXZpY2UgZWxlbWVudCBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RF
VklDRV9FTEVNRU5UIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGRldmljZVN1cHBvcnQgfSwK
KwogICAgIHsgb3B0aW9uID0+ICJkZXZpY2Utb3JpZW50YXRpb24iLCBkZXNjID0+ICJUb2dnbGUg
RGV2aWNlT3JpZW50YXRpb24gc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04iLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkZGV2aWNlT3JpZW50YXRp
b25TdXBwb3J0IH0sCiAKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNw
cm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzIGIvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92
c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMKaW5kZXggZjMwOTMyZGU5YTliYTI3MmMwMDhh
YThhMGY1MTAyMDcyYzQ4Yzc0NC4uYTUxYWY3NDg3YTI5NDRkNGZhZGQ4NTQwZjRkNTExYmU3MzYy
OGY0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1
cmVEZWZpbmVzLnZzcHJvcHMKKysrIGIvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3Bz
L0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMKQEAgLTksNyArOSw3IEBACiAJPgogICA8VG9vbAogCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFC
TEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQo
RU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfREFUQUJBU0UpOyQoRU5B
QkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9ET01fU1RPUkFHRSk7JChF
TkFCTEVfRVZFTlRTT1VSQ0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVN
KTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxF
X0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU1BR0VfUkVTSVpFUik7JChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVH
R0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01F
VEVSX1RBRyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RP
Q09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVkcpOyQoRU5B
QkxFX1NWR19BTklNQVRJT04pOyQoRU5BQkxFX1NWR19BU19JTUFHRSk7JChFTkFCTEVfU1ZHX0RP
TV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVCk7JChFTkFCTEVfU1ZHX1VTRSk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElB
X1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTsk
KEVOQUJMRV9XTUwpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5BQkxFX1hIVE1MTVApOyQoRU5BQkxF
X1hQQVRIKTskKEVOQUJMRV9YU0xUKSIKKwkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5B
QkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTsk
KEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0RBVEFCQVNFKTskKEVO
QUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RFVklDRV9FTEVNRU5U
KTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
OyQoRU5BQkxFX0RPTV9TVE9SQUdFKTskKEVOQUJMRV9FVkVOVFNPVVJDRSk7JChFTkFCTEVfRklM
VEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVO
QUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTUFHRV9S
RVNJWkVSKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gp
OyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQo
RU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9OT1RJRklDQVRJT05T
KTskKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5BQkxFX1BST0dSRVNTX1RB
Ryk7JChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0hBUkVEX1dP
UktFUlMpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0FOSU1BVElPTik7JChFTkFCTEVfU1ZH
X0FTX0lNQUdFKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19G
T05UUyk7JChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKTskKEVOQUJMRV9TVkdfVVNFKTskKEVO
QUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfV0VCX1NPQ0tF
VFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dNTCk7JChFTkFCTEVfV09SS0VSUyk7
JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgogCS8+CiAg
IDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFXzNEX0NBTlZBUyIKQEAgLTU3LDYgKzU3LDExIEBA
CiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKIAkvPgogICA8VXNlck1hY3JvCisJCU5h
bWU9IkVOQUJMRV9ERVZJQ0VfRUxFTUVOVCIKKwkJVmFsdWU9IiIKKwkJUGVyZm9ybUVudmlyb25t
ZW50U2V0PSJ0cnVlIgorCS8+CisgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTiIKIAkJVmFsdWU9IiIKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgpk
aWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZp
bmVzQ2Fpcm8udnNwcm9wcyBiL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0
dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMKaW5kZXggNzI5MTRlMjc1ODMwMmQ2YmU3NjE1NGUzYzcy
YmI1MGZkMzVlMjQwYi4uNTVlMDVhNWUxOTZlYmZjNDMxOTdkYTYxZDMzYmFkZWFmZTNhNzYwYiAx
MDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZp
bmVzQ2Fpcm8udnNwcm9wcworKysgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMv
RmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzCkBAIC05LDcgKzksNyBAQAogCT4KICAgPFRvb2wK
IAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQo
RU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
KTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0RBVEFCQVNFKTsk
KEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RFVklDRV9PUklF
TlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0Up
OyQoRU5BQkxFX0VWRU5UU09VUkNFKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZ
U1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVO
QUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lNQUdFX1JFU0laRVIpOyQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSkFWQVNDUklQVF9E
RUJVR0dFUik7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFCTEVfTUFUSE1MKTskKEVOQUJM
RV9NRVRFUl9UQUcpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX09GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUyk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9SRUdJU1RFUl9Q
Uk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1ZHKTsk
KEVOQUJMRV9TVkdfQU5JTUFUSU9OKTskKEVOQUJMRV9TVkdfQVNfSU1BR0UpOyQoRU5BQkxFX1NW
R19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9TVkdfRk9S
RUlHTl9PQkpFQ1QpOyQoRU5BQkxFX1NWR19VU0UpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlO
Ryk7JChFTkFCTEVfV01MKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YSFRNTE1QKTskKEVO
QUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCisJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIk
KEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxF
UkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
Ryk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9EQVRBQkFTRSk7
JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUKTskKEVOQUJMRV9ERVZJQ0VfRUxF
TUVOVCk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBM
T0FEKTskKEVOQUJMRV9ET01fU1RPUkFHRSk7JChFTkFCTEVfRVZFTlRTT1VSQ0UpOyQoRU5BQkxF
X0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7
JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU1B
R0VfUkVTSVpFUik7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfU1BF
RUNIKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENI
KTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTk9USUZJQ0FU
SU9OUyk7JChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKTskKEVOQUJMRV9QUk9HUkVT
U19UQUcpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJF
RF9XT1JLRVJTKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19BTklNQVRJT04pOyQoRU5BQkxF
X1NWR19BU19JTUFHRSk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9T
VkdfRk9OVFMpOyQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCk7JChFTkFCTEVfU1ZHX1VTRSk7
JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9T
T0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XTUwpOyQoRU5BQkxFX1dPUktF
UlMpOyQoRU5BQkxFX1hIVE1MTVApOyQoRU5BQkxFX1hQQVRIKTskKEVOQUJMRV9YU0xUKSIKIAkv
PgogICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV8zRF9DQU5WQVMiCkBAIC01Nyw2ICs1Nywx
MSBAQAogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybwor
CQlOYW1lPSJFTkFCTEVfREVWSUNFX0VMRU1FTlQiCisJCVZhbHVlPSIiCisJCVBlcmZvcm1FbnZp
cm9ubWVudFNldD0idHJ1ZSIKKwkvPgorICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04iCiAJCVZhbHVlPSIiCiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1
ZSIKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCBiMDBjYTM4
M2ZhNjkxYjc3NDEzNThkMGZjNTMwYTIzMGJiZGMzY2ZjLi42OGZlOGY3NTUwYTYzNzE0NzMzMmQ0
ZjYxMmI4YmI4MzMwYzUyN2Y1IDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmln
dXJlLmFjCkBAIC00MTEsNiArNDExLDE0IEBAIEFDX0FSR19FTkFCTEUoaW5wdXRfc3BlZWNoLAog
ICAgICAgICAgICAgICBbXSxbZW5hYmxlX2lucHV0X3NwZWVjaD0ibm8iXSkKIEFDX01TR19SRVNV
TFQoWyRlbmFibGVfaW5wdXRfc3BlZWNoXSkKIAorIyBjaGVjayB3aGV0aGVyIHRvIGVuYWJsZSB0
aGUgZGV2aWNlIGVsZW1lbnQgc3VwcG9ydAorQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVu
YWJsZSB0aGUgZGV2aWNlIGVsZW1lbnQgc3VwcG9ydF0pCitBQ19BUkdfRU5BQkxFKGRldmljZV9l
bGVtZW50LAorICAgICAgICAgICAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtZGV2aWNlLWVs
ZW1lbnRdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5hYmxlIHRoZSBkZXZpY2Ug
ZWxlbWVudCBzdXBwb3J0IFtkZWZhdWx0PW5vXV0pLAorICAgICAgICAgICAgICBbXSxbZW5hYmxl
X2RldmljZV9lbGVtZW50PSJubyJdKQorQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9kZXZpY2VfZWxl
bWVudF0pCisKICMgY2hlY2sgd2hldGhlciB0byBidWlsZCB3aXRoIGRhdGFiYXNlIHN1cHBvcnQK
IEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBlbmFibGUgSFRNTDUgY2xpZW50LXNpZGUgZGF0
YWJhc2Ugc3RvcmFnZSBzdXBwb3J0XSkKIEFDX0FSR19FTkFCTEUoZGF0YWJhc2UsCkBAIC05NTgs
NiArOTY2LDcgQEAgQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9ESVJFQ1RPUllfVVBMT0FEXSxbdGVz
dCAiJGVuYWJsZV9kaXJlY3RvcnlfdXBsb2FkIiA9ICJ5ZXMKIEFNX0NPTkRJVElPTkFMKFtFTkFC
TEVfRE9NX1NUT1JBR0VdLFt0ZXN0ICIkZW5hYmxlX2RvbV9zdG9yYWdlIiA9ICJ5ZXMiXSkKIEFN
X0NPTkRJVElPTkFMKFtFTkFCTEVfREFUQUJBU0VdLFt0ZXN0ICIkZW5hYmxlX2RhdGFiYXNlIiA9
ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfREFUQUxJU1RdLFt0ZXN0ICIkZW5hYmxl
X2RhdGFsaXN0IiA9ICJ5ZXMiXSkKK0FNX0NPTkRJVElPTkFMKFtFTkFCTEVfREVWSUNFX0VMRU1F
TlRdLFt0ZXN0ICIkZW5hYmxlX2RldmljZV9lbGVtZW50IiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElP
TkFMKFtFTkFCTEVfRVZFTlRTT1VSQ0VdLFt0ZXN0ICIkZW5hYmxlX2V2ZW50c291cmNlIiA9ICJ5
ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfRkFTVF9NT0JJTEVfU0NST0xMSU5HXSxbdGVz
dCAiJGVuYWJsZV9mYXN0X21vYmlsZV9zY3JvbGxpbmciID0gInllcyJdKQogQU1fQ09ORElUSU9O
QUwoW0VOQUJMRV9GSUxFX1NZU1RFTV0sW3Rlc3QgIiRlbmFibGVfZmlsZV9zeXN0ZW0iID0gInll
cyJdKQpAQCAtMTA0Miw2ICsxMDUxLDcgQEAgRmVhdHVyZXM6CiAgV2ViR0wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX3dlYmdsCiAg
QmxvYiBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OiAkZW5hYmxlX2Jsb2IKICBEaXJlY3RvcnkgdXBsb2FkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA6ICRlbmFibGVfZGlyZWN0b3J5X3VwbG9hZAorIERldmljZSBlbGVt
ZW50IHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9k
ZXZpY2VfZWxlbWVudAogIEZhc3QgTW9iaWxlIFNjcm9sbGluZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDogJGVuYWJsZV9mYXN0X21vYmlsZV9zY3JvbGxpbmcKICBKSVQgY29t
cGlsYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFi
bGVfaml0CiAgRmlsdGVycyBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOiAkZW5hYmxlX2ZpbHRlcnMK
</data>

          </attachment>
      

    </bug>

</bugzilla>