<?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>150811</bug_id>
          
          <creation_ts>2015-11-02 11:52:05 -0800</creation_ts>
          <short_desc>REGRESSION(r191902): This change broke iOS builders (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2015-11-02 11:56:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>150763</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>aestes</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1138642</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-02 11:52:05 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/191902 broke the build:
This change broke iOS builders (Requested by ryanhaddad on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138644</commentid>
    <comment_count>1</comment_count>
      <attachid>264608</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-02 11:52:47 -0800</bug_when>
    <thetext>Created attachment 264608
ROLLOUT of r191902

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138645</commentid>
    <comment_count>2</comment_count>
      <attachid>264608</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-02 11:56:19 -0800</bug_when>
    <thetext>Comment on attachment 264608
ROLLOUT of r191902

Clearing flags on attachment: 264608

Committed r191903: &lt;http://trac.webkit.org/changeset/191903&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138646</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-02 11:56:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264608</attachid>
            <date>2015-11-02 11:52:47 -0800</date>
            <delta_ts>2015-11-02 11:56:19 -0800</delta_ts>
            <desc>ROLLOUT of r191902</desc>
            <filename>bug-150811-20151102115151.patch</filename>
            <type>text/plain</type>
            <size>101483</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxOTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE5Y2JiZjJhMDQ0YTNh
MjFmYzJmYWUwNGNiNzE4ZDNkY2E0OTMzYi4uZTg3M2I2YjNiNDg2Y2MwMjM2MmU5ZTAxODM4ODk3
MzA1NmQ1NWM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTExLTAyICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTkxOTAyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUwODExCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYnJva2UgaU9TIGJ1
aWxkZXJzIChSZXF1ZXN0ZWQgYnkgcnlhbmhhZGRhZCBvbgorICAgICAgICAjd2Via2l0KS4KKwor
ICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlJlcGxhY2UgaU9TLW9ubHkg
V2ViS2l0U3lzdGVtSW50ZXJmYWNlIGNhbGxzIHdpdGggU1BJIgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNzYzCisgICAgICAgIGh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzE5MTkwMgorCiAyMDE1LTEwLTMxICBBbmR5IEVzdGVzICA8
YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIGlPUy1vbmx5IFdlYktpdFN5c3Rl
bUludGVyZmFjZSBjYWxscyB3aXRoIFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3Mv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCmluZGV4IGIyOGVlZjkzYjg0
NDQ0NmQzMzA5ZTkzMzI3YWZhNDFiOTExMGZjMDEuLmZkMzkwOTRkYzRiYWYyMmVhYzFiODdiNGE1
MmE4NTY4MWM5OTgyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0x
MS0wMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5MTkwMi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDgxMQorCisgICAgICAgIFRoaXMgY2hhbmdlIGJy
b2tlIGlPUyBidWlsZGVycyAoUmVxdWVzdGVkIGJ5IHJ5YW5oYWRkYWQgb24KKyAgICAgICAgI3dl
YmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJSZXBsYWNl
IGlPUy1vbmx5IFdlYktpdFN5c3RlbUludGVyZmFjZSBjYWxscyB3aXRoIFNQSSIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDc2MworICAgICAgICBo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xOTE5MDIKKwogMjAxNS0xMC0zMSAgQW5k
eSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBpT1Mtb25seSBX
ZWJLaXRTeXN0ZW1JbnRlcmZhY2UgY2FsbHMgd2l0aCBTUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4
YTQ1ODRlMWRjM2EzMDFiOTA1NDIzNDAxODJkOWFmMGI5ZTgxM2JhLi40Nzk3N2NhODk2M2NjOWJj
NTk3YzliMDE5NjUzMDllYjVkOWUyYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTUtMTEtMDIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgor
CisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxOTE5MDIuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA4MTEKKworICAgICAgICBUaGlz
IGNoYW5nZSBicm9rZSBpT1MgYnVpbGRlcnMgKFJlcXVlc3RlZCBieSByeWFuaGFkZGFkIG9uCisg
ICAgICAgICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAg
ICAiUmVwbGFjZSBpT1Mtb25seSBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgY2FsbHMgd2l0aCBTUEki
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA3NjMK
KyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTkxOTAyCisKIDIwMTUt
MTAtMzEgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2Ug
aU9TLW9ubHkgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGNhbGxzIHdpdGggU1BJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYWEzMzNhMWYyYzBiZmEyNjg2N2M3NDk5N2UyNDJhZjc2ZWYzZjE5MS4uNmRlNGNjZDMzZDEz
MmZmMTUzZTU1N2EzOTI1ZjM1MGExMTRkYTdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDE1LTExLTAyICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTkxOTAyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwODExCisKKyAgICAgICAgVGhpcyBj
aGFuZ2UgYnJva2UgaU9TIGJ1aWxkZXJzIChSZXF1ZXN0ZWQgYnkgcnlhbmhhZGRhZCBvbgorICAg
ICAgICAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAg
IlJlcGxhY2UgaU9TLW9ubHkgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGNhbGxzIHdpdGggU1BJIgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNzYzCisg
ICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE5MTkwMgorCiAyMDE1LTEw
LTMxICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIGlP
Uy1vbmx5IFdlYktpdFN5c3RlbUludGVyZmFjZSBjYWxscyB3aXRoIFNQSQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDFjZWNiNWRj
MzE0YjU1NzMzMzc3NjJlMWNlMDY3MzBlZmFlMTNhMmEuLmVmNzkzZTExMmViNTdlY2VkMjQ2ZGVj
NGMzYzZiNWVjNjBiMDQxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNTksNiArMTM1OSw3IEBACiAJCTMxREVBNDU1MUIz
OUY0RDkwMEY3NzE3OCAvKiBXZWJTeXN0ZW1CYWNrZHJvcExheWVyLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFERUE0NTMxQjM5RjREOTAwRjc3MTc4
IC8qIFdlYlN5c3RlbUJhY2tkcm9wTGF5ZXIubW0gKi87IH07CiAJCTMxREVBNDU2MUIzOUY0RDkw
MEY3NzE3OCAvKiBXZWJTeXN0ZW1CYWNrZHJvcExheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMURFQTQ1NDFCMzlGNEQ5MDBGNzcxNzggLyogV2Vi
U3lzdGVtQmFja2Ryb3BMYXllci5oICovOyB9OwogCQkzMURGNjM1NzFBRjE4N0REMDA3OEZEOTEg
LyogTlNDb2xvclNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzFERjYzNTYxQUYxODdERDAwNzhGRDkxIC8qIE5TQ29sb3JTUEkuaCAqLzsgfTsKKwkJ
MzFERjYzNTkxQUYxOTRGMDAwNzhGRDkxIC8qIFVJQ29sb3JTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxREY2MzU4MUFGMTk0RjAwMDc4RkQ5MSAv
KiBVSUNvbG9yU1BJLmggKi87IH07CiAJCTMxRUFGOTdFMTIxNDM1QTQwMEU3QzFCRiAvKiBEZXZp
Y2VNb3Rpb25DbGllbnRJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxRUFGOTdDMTIxNDM1QTQwMEU3QzFCRiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJ
T1MuaCAqLzsgfTsKIAkJMzFFQUY5N0YxMjE0MzVBNDAwRTdDMUJGIC8qIERldmljZU1vdGlvbkNs
aWVudElPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxRUFGOTdEMTIxNDM1QTQwMEU3QzFCRiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJT1MubW0gKi87
IH07CiAJCTMxRUMxRTI4MTRGRjYwRUUwMEM5NDY2MiAvKiBKU05vdGlmaWNhdGlvblBlcm1pc3Np
b25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMUVDMUUyNjE0RkY2MEVFMDBDOTQ2NjIgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9u
Q2FsbGJhY2suY3BwICovOyB9OwpAQCAtMTY3NCw2ICsxNjc1LDcgQEAKIAkJNDRBMjhBQUYxMkRG
QjhCRjAwQUU5MjNCIC8qIE1hdGhNTE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NEEyOEFBRTEyREZCOEJGMDBBRTkyM0IgLyogTWF0aE1MTmFt
ZXMuaCAqLzsgfTsKIAkJNDRDMzYzRjAwRkFBN0JCMzAwOTdGOENDIC8qIFJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrc0lPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDRDMzYzRUUwRkFBN0JCMzAwOTdGOENDIC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c0lPUy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTQ0QzM2M0YxMEZBQTdCQjMwMDk3RjhDQyAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NJT1Mu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NEMzNjNF
RjBGQUE3QkIzMDA5N0Y4Q0MgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLm1tICovOyB9
OworCQk0NEMzQ0ZFODE1NTZCRTVEMDAwMTM2MDkgLyogV2ViQ29yZVN5c3RlbUludGVyZmFjZUlP
Uy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDRDM0NG
RTcxNTU2QkU1RDAwMDEzNjA5IC8qIFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NEM5OTE4MjBGM0Qx
RTBEMDA1ODY2NzAgLyogU2Nyb2xsYmFyVGhlbWVJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NEM5OTE4MTBGM0QxRTBEMDA1ODY2NzAgLyogU2Ny
b2xsYmFyVGhlbWVJT1MubW0gKi87IH07CiAJCTQ0Qzk5MTg2MEYzRDFFQkUwMDU4NjY3MCAvKiBT
Y3JvbGxiYXJUaGVtZUlPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDRDOTkxODUwRjNEMUVCRTAwNTg2NjcwIC8qIFNjcm9sbGJhclRoZW1lSU9TLmgg
Ki87IH07CiAJCTQ0Qzk5MTlGMEYzRDIxMEUwMDU4NjY3MCAvKiBUaGVtZUlPUy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDRDOTkxOUQwRjNEMjEwRTAw
NTg2NjcwIC8qIFRoZW1lSU9TLmggKi87IH07CkBAIC00MDI3LDcgKzQwMjksNiBAQAogCQlBMTQ5
Nzg3MTFBQkFGM0E1MDBDRUY3RTQgLyogUGxhdGZvcm1Db250ZW50RmlsdGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTQ5Nzg3MDFBQkFGM0E1MDBD
RUY3RTQgLyogUGxhdGZvcm1Db250ZW50RmlsdGVyLmggKi87IH07CiAJCUExN0M4MTIyMEYyQTVD
RjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3QzgxMjAwRjJBNUNGNzAwNURBQUVCIC8qIEhU
TUxFbGVtZW50RmFjdG9yeS5jcHAgKi87IH07CiAJCUExN0M4MTIzMEYyQTVDRjcwMDVEQUFFQiAv
KiBIVE1MRWxlbWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExN0M4MTIxMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3Rv
cnkuaCAqLzsgfTsKLQkJQTE4MkQ1QjcxQkU3MjI2NzAwODdBN0NDIC8qIFNldHRpbmdzQ29jb2Eu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTgyRDVC
NjFCRTcyMjYyMDA4N0E3Q0MgLyogU2V0dGluZ3NDb2NvYS5tbSAqLzsgfTsKIAkJQTE4ODkwQUUx
QUExM0YyNTAwMjZDMzAxIC8qIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4ODkwQUMxQUExM0Yy
NTAwMjZDMzAxIC8qIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tICovOyB9OwogCQlB
MTg4OTBBRjFBQTEzRjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExODg5MEFE
MUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5oICovOyB9
OwogCQlBMTlBRUEyMTFBQUE4MDg2MDBCNTJCMjUgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRp
bmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTlB
RUExRTFBQUE4MDZFMDBCNTJCMjUgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggKi87
IH07CkBAIC00MDUzLDkgKzQwNTQsNiBAQAogCQlBMUUxMTU0NjEzMDE1QzRFMDA1NEFDOEMgLyog
UG9pbnRMaWdodFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMUUxMTU0NTEzMDE1QzRFMDA1NEFDOEMgLyogUG9pbnRMaWdodFNvdXJjZS5j
cHAgKi87IH07CiAJCUExRTExNTQ4MTMwMTVDNUQwMDU0QUM4QyAvKiBTcG90TGlnaHRTb3VyY2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMTE1
NDcxMzAxNUM1RDAwNTRBQzhDIC8qIFNwb3RMaWdodFNvdXJjZS5jcHAgKi87IH07CiAJCUExRTVC
MzFGMUFBRDFEQTQwMDZFQkVGQiAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3NDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFNUIz
MUQxQUFEMURBNDAwNkVCRUZCIC8qIEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nc0N1c3RvbS5j
cHAgKi87IH07Ci0JCUExRUQ3NzhDMUJFMzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFRDc3OEExQkUzMjkz
RjAwREMxNzkxIC8qIERldmljZS5jcHAgKi87IH07Ci0JCUExRUQ3NzhEMUJFMzI5NDAwMERDMTc5
MSAvKiBEZXZpY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExRUQ3NzhCMUJFMzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBMUVENzc4RjFCRTQyOTE4MDBEQzE3
OTEgLyogVUlLaXRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExRUQ3NzhFMUJFNDI5MTgwMERDMTc5MSAvKiBVSUtpdFNQSS5oICovOyB9OwogCQlB
MkI5MjE3MzE2QzVDQzQyMDA0MURDRDkgLyogSW50UmVjdEV4dGVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTJCOTIxNzIxNkM1Q0M0MjAwNDFEQ0Q5
IC8qIEludFJlY3RFeHRlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBMzFDNEU0RDE2RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZG
bG9hdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MzFDNEU0QzE2RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAgKi87IH07
CiAJCUEzMUM0RTRGMTZFMDJBQjQwMDJGNzk1NyAvKiBPRVNUZXh0dXJlSGFsZkZsb2F0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzFDNEU0RTE2RTAy
QUI0MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5oICovOyB9OwpAQCAtNjA2Myw3ICs2
MDYxLDcgQEAKIAkJQ0UxMjUyM0QxQTE2NzZDRDAwODY0NDgwIC8qIFF1YXJ0ekNvcmVTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMTI1MjNDMUEx
Njc2Q0QwMDg2NDQ4MCAvKiBRdWFydHpDb3JlU1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0UxMjUyNDExQTE2QjFCNjAwODY0NDgwIC8qIE1l
ZGlhUGxheWVyU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRTEyNTI0MDFBMTZCMUI2MDA4NjQ0ODAgLyogTWVkaWFQbGF5ZXJTUEkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRTEyNTI0MzFBMTZD
MDFBMDA4NjQ0ODAgLyogQ29yZVVJU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRTEyNTI0MjFBMTZDMDFBMDA4NjQ0ODAgLyogQ29yZVVJU1BJLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQ0UxMjUy
NDUxQTE2QzIyNTAwODY0NDgwIC8qIER5bmFtaWNMaW5rZXJTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMTI1MjQ0MUExNkMyMjUwMDg2NDQ4MCAv
KiBEeW5hbWljTGlua2VyU1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJQ0UxMjUyNDUxQTE2QzIyNTAwODY0NDgwIC8qIER5bmFtaWNMaW5rZXJT
UEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMTI1
MjQ0MUExNkMyMjUwMDg2NDQ4MCAvKiBEeW5hbWljTGlua2VyU1BJLmggKi87IH07CiAJCUNFMTI1
MjQ3MUExNkMyQzIwMDg2NDQ4MCAvKiBOU1BvaW50ZXJGdW5jdGlvbnNTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMTI1MjQ2MUExNkMyQzIwMDg2
NDQ4MCAvKiBOU1BvaW50ZXJGdW5jdGlvbnNTUEkuaCAqLzsgfTsKIAkJQ0UxMjUyNDkxQTE2QzNC
QzAwODY0NDgwIC8qIE1vYmlsZUdlc3RhbHRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMTI1MjQ4MUExNkMzQkMwMDg2NDQ4MCAvKiBNb2JpbGVH
ZXN0YWx0U1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQ0UxMjUyNEQxQTFBNzdERTAwODY0NDgwIC8qIElPUE1MaWJTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMTI1MjRDMUExQTc3REUwMDg2
NDQ4MCAvKiBJT1BNTGliU1BJLmggKi87IH07CkBAIC02MzUyLDYgKzYzNTAsNyBAQAogCQlFMUMy
NjZEQjE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhh
c2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzI2
NkRBMTgzMTk5MzUwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFz
aC5oICovOyB9OwogCQlFMUMyNjZERTE4MzE5RjMxMDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0YVJT
QUNvbXBvbmVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFDMjY2REMxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25l
bnRzLmNwcCAqLzsgfTsKIAkJRTFDMjY2REYxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURh
dGFSU0FDb21wb25lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUMyNjZERDE4MzE5RjMxMDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0YVJTQUNvbXBv
bmVudHMuaCAqLzsgfTsKKwkJRTFDMkYyNEExNTMzQTIxMjAwODNGOTc0IC8qIFNldHRpbmdzTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDMkYy
NDgxNTMzQTIxMjAwODNGOTc0IC8qIFNldHRpbmdzTWFjLm1tICovOyB9OwogCQlFMUMzNjJFRjBF
QUYyQUE5MDA3NDEwQkMgLyogSlNXb3JrZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDMzYyRUQwRUFGMkFBOTAwNzQxMEJDIC8qIEpT
V29ya2VyTG9jYXRpb24uaCAqLzsgfTsKIAkJRTFDMzYyRjAwRUFGMkFBOTAwNzQxMEJDIC8qIEpT
V29ya2VyTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFDMzYyRUUwRUFGMkFBOTAwNzQxMEJDIC8qIEpTV29ya2VyTG9jYXRpb24uY3Bw
ICovOyB9OwogCQlFMUMzNkMwMzBFQjA3NkQ2MDA3NDEwQkMgLyogSlNET01HbG9iYWxPYmplY3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzM2QzAy
MEVCMDc2RDYwMDc0MTBCQyAvKiBKU0RPTUdsb2JhbE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04Njk5LDYgKzg2OTgsNyBAQAogCQkz
MURFQTQ1MzFCMzlGNEQ5MDBGNzcxNzggLyogV2ViU3lzdGVtQmFja2Ryb3BMYXllci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlN5c3RlbUJhY2tkcm9wTGF5
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxREVBNDU0MUIzOUY0RDkwMEY3
NzE3OCAvKiBXZWJTeXN0ZW1CYWNrZHJvcExheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlN5c3RlbUJhY2tkcm9wTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzFERjYzNTYxQUYxODdERDAwNzhGRDkxIC8qIE5TQ29sb3JTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNDb2xvclNQSS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMURGNjM1ODFBRjE5NEYwMDA3OEZEOTEgLyogVUlDb2xvclNQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSUNvbG9yU1BJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMxRThEOEJBMTYwQkM5NEIwMDRDRThGNSAvKiBSZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMxRThEOEJCMTYwQkM5NEMwMDRDRThGNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUVBRjk3QzEyMTQzNUE0MDBFN0MxQkYg
LyogRGV2aWNlTW90aW9uQ2xpZW50SU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERldmljZU1vdGlvbkNsaWVudElPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtOTAzOSw2ICs5MDM5LDcgQEAKIAkJNDRBMjhBQUUxMkRGQjhCRjAwQUU5MjNCIC8qIE1hdGhN
TE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTE5hbWVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0QzM2M0VFMEZBQTdCQjMwMDk3RjhDQyAv
KiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ0QzM2M0VGMEZBQTdCQjMwMDk3RjhDQyAvKiBSdW50aW1lQXBwbGljYXRp
b25DaGVja3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBS
dW50aW1lQXBwbGljYXRpb25DaGVja3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0QzNDRkU3MTU1NkJFNUQwMDAxMzYwOSAvKiBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9T
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2VJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRDOTkxODEwRjNEMUUwRDAw
NTg2NjcwIC8qIFNjcm9sbGJhclRoZW1lSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gU2Nyb2xsYmFyVGhlbWVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ0Qzk5MTg1MEYzRDFFQkUwMDU4NjY3MCAvKiBTY3JvbGxiYXJUaGVtZUlPUy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxiYXJUaGVtZUlPUy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NEM5OTE5RDBGM0QyMTBFMDA1ODY2NzAgLyog
VGhlbWVJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhlbWVJT1MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTU5LDcgKzExNTYwLDYgQEAKIAkJQTE0
OTc4NzAxQUJBRjNBNTAwQ0VGN0U0IC8qIFBsYXRmb3JtQ29udGVudEZpbHRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNvbnRlbnRGaWx0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE3QzgxMjAwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxF
bGVtZW50RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MRWxlbWVudEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTdD
ODEyMTBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxFbGVtZW50RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBMTgyRDVCNjFCRTcyMjYyMDA4N0E3Q0MgLyogU2V0dGluZ3NDb2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNldHRpbmdzQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExODg5MEFDMUFBMTNGMjUwMDI2
QzMwMSAvKiBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTg4OTBBRDFBQTEzRjI1MDAyNkMzMDEg
LyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTE5QUVBMUMxQUFBN0M0OTAwQjUyQjI1IC8qIE1vY2tDb250ZW50
RmlsdGVyU2V0dGluZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1ODEsOSArMTE1ODEsNiBAQAogCQlBMUUx
MTU0NTEzMDE1QzRFMDA1NEFDOEMgLyogUG9pbnRMaWdodFNvdXJjZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQb2ludExpZ2h0U291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFFMTE1NDcxMzAxNUM1RDAwNTRBQzhDIC8qIFNwb3RMaWdo
dFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcG90TGln
aHRTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUU1QjMxRDFBQUQx
REE0MDA2RUJFRkIgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0
aW5nc0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUExRUQ3NzhBMUJF
MzI5M0YwMERDMTc5MSAvKiBEZXZpY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRGV2aWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTFFRDc3
OEIxQkUzMjk0MDAwREMxNzkxIC8qIERldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEZXZpY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTFFRDc3OEUx
QkU0MjkxODAwREMxNzkxIC8qIFVJS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFVJS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEyMDhFMjIy
QTU2QTBDNzU3NUYyQTcyRSAvKiBSZW5kZXJNYXRoTUxNZW5jbG9zZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJNYXRoTUxNZW5jbG9zZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBMkI5MjE3MjE2QzVDQzQyMDA0MURDRDkgLyogSW50UmVjdEV4dGVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRSZWN0RXh0ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMUM0RTRDMTZFMDJBQTYwMDJGNzk1NyAvKiBP
RVNUZXh0dXJlSGFsZkZsb2F0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE9FU1RleHR1cmVIYWxmRmxvYXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTQyMTcsNiArMTQyMTQsNyBAQAogCQlFMUMyNjZEQTE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5
cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDMjY2REMxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0
b0tleURhdGFSU0FDb21wb25lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTFDMjY2REQxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FD
b21wb25lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0tleURh
dGFSU0FDb21wb25lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxQzJGMjQ4
MTUzM0EyMTIwMDgzRjk3NCAvKiBTZXR0aW5nc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFNldHRpbmdzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMUMzNjJFRDBFQUYyQUE5MDA3NDEwQkMgLyogSlNXb3JrZXJMb2NhdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtlckxvY2F0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzM2MkVFMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dv
cmtlckxvY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
V29ya2VyTG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUMzNkMw
MjBFQjA3NkQ2MDA3NDEwQkMgLyogSlNET01HbG9iYWxPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNET01HbG9iYWxPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE3MDg0LDcgKzE3MDgyLDYgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJQURGRTJCNTQxQkQ1RjQxMjAwREFCNDU3IC8qIFJlc291cmNlVXNh
Z2VPdmVybGF5Q29jb2EubW0gKi8sCi0JCQkJQTE4MkQ1QjYxQkU3MjI2MjAwODdBN0NDIC8qIFNl
dHRpbmdzQ29jb2EubW0gKi8sCiAJCQkJMjYyNTVGMDExODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJB
Z2VudC5oICovLAogCQkJCTVENTk3NUI2MTk2MzYzN0IwMEQwMDg3OCAvKiBVc2VyQWdlbnQubW0g
Ki8sCiAJCQkpOwpAQCAtMTg2MDMsNiArMTg2MDAsNyBAQAogCQkJCTgzNERENEYzMUJFMDg5ODkw
MDJDOUMzRSAvKiBQYWdlTWFjLm1tICovLAogCQkJCTJEOTNBRUUxMTlERjU2NDEwMDJBODZDMyAv
KiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmggKi8sCiAJCQkJMkQ5M0FFRTIxOURGNTY0MTAw
MkE4NkMzIC8qIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0gKi8sCisJCQkJRTFDMkYyNDgx
NTMzQTIxMjAwODNGOTc0IC8qIFNldHRpbmdzTWFjLm1tICovLAogCQkJCTJENEY5NkYzMUExRUND
MjQwMDk4QkY4OCAvKiBUZXh0SW5kaWNhdG9yV2luZG93LmggKi8sCiAJCQkJMkQ0Rjk2RjQxQTFF
Q0MyNDAwOThCRjg4IC8qIFRleHRJbmRpY2F0b3JXaW5kb3cubW0gKi8sCiAJCQkJMjYyNTVGMDIx
ODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJBZ2VudE1hYy5tbSAqLywKQEAgLTE5NDczLDcgKzE5NDcx
LDcgQEAKIAkJCQlDRTEyNTI0ODFBMTZDM0JDMDA4NjQ0ODAgLyogTW9iaWxlR2VzdGFsdFNQSS5o
ICovLAogCQkJCTZGQUQ0QTU2MUE5RDBGQUUwMDlGN0QzQyAvKiBPcGVuR0xFU1NQSS5oICovLAog
CQkJCUNFMTI1MjM4MUExNjZGQTAwMDg2NDQ4MCAvKiBRdWlja0xvb2tTUEkuaCAqLywKLQkJCQlB
MUVENzc4RTFCRTQyOTE4MDBEQzE3OTEgLyogVUlLaXRTUEkuaCAqLywKKwkJCQkzMURGNjM1ODFB
RjE5NEYwMDA3OEZEOTEgLyogVUlDb2xvclNQSS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBpb3M7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTk0OTIsOCArMTk0OTAsNiBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJQTE0ODMyOEIxODdGNTA2ODAwREE2M0E2IC8qIHdhayAqLywKIAkJ
CQkyNjU1NDE0QjE0ODlBQTJCMDAwREZDNUQgLyogQ3Vyc29ySU9TLmNwcCAqLywKLQkJCQlBMUVE
Nzc4QTFCRTMyOTNGMDBEQzE3OTEgLyogRGV2aWNlLmNwcCAqLywKLQkJCQlBMUVENzc4QjFCRTMy
OTQwMDBEQzE3OTEgLyogRGV2aWNlLmggKi8sCiAJCQkJMzFFQUY5N0MxMjE0MzVBNDAwRTdDMUJG
IC8qIERldmljZU1vdGlvbkNsaWVudElPUy5oICovLAogCQkJCTMxRUFGOTdEMTIxNDM1QTQwMEU3
QzFCRiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJT1MubW0gKi8sCiAJCQkJMzE0MDM3OTkxMjRCRUE3
RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggKi8sCkBAIC0xOTU0Miw2
ICsxOTUzOCw3IEBACiAJCQkJMUY3MkJGMDkxODdGRDQyNzAwMDlCQ0IzIC8qIFRpbGVDb250cm9s
bGVyTWVtb3J5SGFuZGxlcklPUy5oICovLAogCQkJCTMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovLAogCQkJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBF
NCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5tbSAqLywKKwkJCQk0NEMzQ0ZFNzE1NTZCRTVEMDAw
MTM2MDkgLyogV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5oICovLAogCQkJCUU0NTM5MDM4MEVB
RkQ2MzcwMDM2OTVDOCAvKiBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tICovLAogCQkJCUZF
MEQ4NEU4MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oICovLAogCQkJCUZFMEQ4NEVBMTA0
ODQzNkUwMDFBMTc5RSAvKiBXZWJFdmVudC5tbSAqLywKQEAgLTI1Mjg3LDcgKzI1Mjg0LDYgQEAK
IAkJCQk4NTUyNkNEMjBBQjBCN0Q5MDAwMzAyRUEgLyogRE9NVHJlZVdhbGtlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODUwQjQxQzMwQUQ5RTdFNzAwQTZFRDRGIC8qIERPTVRyZWVXYWxrZXJJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVDN0Y0OTEwQUFGNzlEQzAwNDAxNEREIC8qIERP
TVVJRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUExRUQ3NzhGMUJFNDI5MTgwMERDMTc5MSAv
KiBVSUtpdFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU5ODlERDAwQUNDOEJCRDAwQTBCQzUx
IC8qIERPTVVJRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVEMTNEMkEwQ0VB
OTFERjAwRDg5NDY2IC8qIERPTVVJS2l0RXh0ZW5zaW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkUzN0RGREIxMkRCQUZCODAwQTZCMjMzIC8qIERPTVVSTC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NzY4MCw3ICsyNzY3Niw2IEBACiAJCQkJQzEwNURBNjQwRjNBQTZCODAwMURENDRGIC8qIFRleHRF
bmNvZGluZ0RldGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0OTBEMDA2QzFEMDBF
RjZGMjYgLyogVGV4dEVuY29kaW5nUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzM0Ex
NDMwMEI3RDE4ODYwMEE1M0ZGRCAvKiBUZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUEx
RUQ3NzhEMUJFMzI5NDAwMERDMTc5MSAvKiBEZXZpY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
N0I0MUEwMTJFNjc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJbnB1dFR5cGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUY1NUIzREQ4MTI1MUYxMkQwMDNFRjI2OSAvKiBUZXh0RmllbGRJbnB1dFR5cGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQ1MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Rmxh
Z3MuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3NjAsNiArMjc3NTUsNyBAQAogCQkJCUMzNzVEN0ZF
MTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NkEy
QjFDMTdDQTY1QjkwMDBEQkNEOCAvKiBUeXBlZEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzMzA5RTFBMDk5RTY0OTIwMDU2RTU4MSAvKiBUeXBpbmdDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMURGNjM1OTFBRjE5NEYwMDA3OEZEOTEgLyogVUlD
b2xvclNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNEUwQTQ0RUZDNzAwRjk5MkUwIC8q
IFVJRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRGMEE0NEVGQzcwMEY5OTJFMCAv
KiBVSUV2ZW50V2l0aEtleVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTQ3MzlEMjE3NTdB
RkVDMDBFNzY3NjcgLyogVUlSZXF1ZXN0RXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc4NzAs
NiArMjc4NjYsNyBAQAogCQkJCUUxODA4MTBGMTZGQ0VDREYwMEI4MEQwNyAvKiBXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc0RlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTUyNTUxNTE2RkQy
MzUwMDAzRDdBREIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0VCMTY5NzA5Rjg4MEMwMDA5MUY4RkYgLyogV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDRDM0NGRTgxNTU2QkU1
RDAwMDEzNjA5IC8qIFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MuaCBpbiBIZWFkZXJzICovLAog
CQkJCUExNDgzMkM3MTg3RjY2QzgwMERBNjNBNiAvKiBXZWJDb3JlVGhyZWFkLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMTQ4MzJDOTE4N0Y2NzZCMDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZEludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTQ4MzJDQTE4N0Y2NzgwMDBEQTYzQTYgLyogV2Vi
Q29yZVRocmVhZE1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjg2NTUsNyArMjg2NTIsNiBA
QAogCQkJCTQwOUVCREIyMTZCN0VFNzQwMENCQTNGQyAvKiBDU1NGb250RmFjZUxvYWRFdmVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNFNzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9u
dEZhY2VSdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjRCNEQ3MENCNDI5OEEwMDVGMkI2
MiAvKiBDU1NGb250RmFjZVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBMUVENzc4QzFC
RTMyOTQwMDBEQzE3OTEgLyogRGV2aWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjRCNEQ5
MENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTRBNkU5RkMzMTNDMTdEMUQwMDQ2QTdGOCAvKiBDU1NGb250RmVhdHVyZVZhbHVlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjRCNERCMENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250
U2VsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDc4NCw2ICszMDc4MCw3IEBACiAJCQkJ
OTMzMDlFMEYwOTlFNjQ5MjAwNTZFNTgxIC8qIFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUI4REJEQjRCMTMwQjBGOEEwMEY1Q0RCMSAvKiBTZXRTZWxlY3Rp
b25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0QzlBNUVBMEIzRDEwNUYwMDVBMDIz
MiAvKiBTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUMyRjI0QTE1MzNBMjEyMDA4
M0Y5NzQgLyogU2V0dGluZ3NNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjNERDQ0RjEyRjVF
QTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzVFQjhD
MzBFODIwMzFCMDBCMjU5NjUgLyogU2hhZG93RGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NkQxNjk2MjEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTMwODYxLDcgKzMwODU4LDYgQEAKIAkJCQkxQTM3NjM2QjFBMkU2OEJCMDA5QTdFRTIgLyog
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgxMDJDNTg4
MTMyNUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCMjM1NDBGMjBEMDA3ODJFMDAyMzgyRkEgLyogU3RyaW5nVHJ1bmNhdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUExODJENUI3MUJFNzIyNjcwMDg3QTdDQyAvKiBTZXR0aW5nc0NvY29hLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI2QTIwRTgxREM0RjAwQjI1OTY1IC8qIFN0eWxlQmFj
a2dyb3VuZERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI2N0QwRTgxRDQyMDAwQjI1
OTY1IC8qIFN0eWxlQm94RGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4Mzg2QTk3MDE5RjYx
RTRGMDBFMUVDNEEgLyogU3R5bGVCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY29uZmlnLmggYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaAppbmRl
eCBlMzFmODhmZDM1YTNlZDE3MTQ3ZmUwMjk0YmM3MGU0MzI2YTYxNWFhLi44ODk4NTdkN2M2ODJk
OTIwNjdmZDQ5MjJmN2RiYzQ4NzBlOTUxZGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
b25maWcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaApAQCAtMTE2LDYgKzExNiwxMSBA
QCB0eXBlZGVmIGZsb2F0IENHRmxvYXQ7CiAjZW5kaWYKICNlbmRpZiAvKiBVU0UoQ0cpICovCiAK
KyNpZiBQTEFURk9STShJT1MpCisjZGVmaW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNIHdr
R2V0UGxhdGZvcm1OYW1lRm9yTmF2aWdhdG9yKCk7CisjZGVmaW5lIFdFQkNPUkVfTkFWSUdBVE9S
X1ZFTkRPUiB3a0dldFZlbmRvck5hbWVGb3JOYXZpZ2F0b3IoKTsKKyNlbmRpZgorCiAvLyBGSVhN
RTogTW92ZSB0aGlzIHRvIEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oLCB3aGljaCBpcyB3
aGVyZSB3ZSBkZWZpbmUgVVNFX0FWRk9VTkRBVElPTiBvbiB0aGUgTWFjLgogLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzM0CiAjaWYgUExBVEZPUk0oV0lOKSAm
JiBVU0UoQ0cpICYmIEhBVkUoQVZDRikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZh
bHVhdG9yLmNwcAppbmRleCBkNjA3ZjZhNTNhMGExZDZkNTFhMTgyODZjOGViYTA5ZGNlNTUyYWY4
Li5kMzQxYzIxNjczZTNkMmIzZGZkY2Y4N2ZlMzA2M2FhNDhiMWJiYjYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC01Nyw3ICs1Nyw3IEBACiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKElPUykKLSNpbmNsdWRlICJEZXZpY2UuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNjMxLDggKzYzMSw4IEBAIHN0YXRpYyBib29sIHZpZXdfbW9kZU1lZGlhRmVhdHVyZUV2YWwo
Q1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpCiBzdGF0aWMgaW5saW5l
IGJvb2wgaXNSdW5uaW5nT25JUGhvbmVPcklQb2QoKQogewogI2lmIFBMQVRGT1JNKElPUykKLSAg
ICBzdGF0aWMgYm9vbCBydW5uaW5nT25JUGhvbmVPcklQb2QgPSBkZXZpY2VDbGFzcygpID09IE1H
RGV2aWNlQ2xhc3NpUGhvbmUgfHwgZGV2aWNlQ2xhc3MoKSA9PSBNR0RldmljZUNsYXNzaVBvZDsK
LSAgICByZXR1cm4gcnVubmluZ09uSVBob25lT3JJUG9kOworICAgIHN0YXRpYyB3a0RldmljZUNs
YXNzIGRldmljZUNsYXNzID0gaW9zRGV2aWNlQ2xhc3MoKTsKKyAgICByZXR1cm4gZGV2aWNlQ2xh
c3MgPT0gd2tEZXZpY2VDbGFzc2lQaG9uZSB8fCBkZXZpY2VDbGFzcyA9PSB3a0RldmljZUNsYXNz
aVBvZDsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAwZTI2ZWJhYzkxNWMyNmQ4MjJlYWJkMmQ5NjY5
NWEwNmUwOTY3YWE0Li4zZDhjMmFkMDM0MGExNTA5YWIxOTExYTMzYmViYmZhZDI0ZGY0MTBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTExMCw3ICsxMTAs
NiBAQAogCiAjaWYgUExBVEZPUk0oSU9TKQogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0lPUy5oIgotI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lmgi
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBAIC02NDM1
LDcgKzY0MzQsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dy
b3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1NZWRpYQogICAgIGlmIChtX3ZpZGVvRnVs
bHNjcmVlbk1vZGUgJiBWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGlmIChtX3ZpZGVvRnVsbHNj
cmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkICYmIHN1cHBvcnRzUGljdHVy
ZUluUGljdHVyZSgpICYmIGlzUGxheWluZygpKQorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1v
ZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkICYmIHdrSXNPcHRpbWl6ZWRGdWxsc2Ny
ZWVuU3VwcG9ydGVkKCkgJiYgaXNQbGF5aW5nKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2Vu
ZGlmCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVt
ZW50LmNwcAppbmRleCBkZDNjYTM0MzVmYWM4MjBkMGQxODA5ZTJmZDEyMThiZmJkZDBiNmM3Li5j
MjQxNjdjMDE0ZDFkNzM1ZDFkMGVhMWNlYzJhNTkzNTUyN2U3YmI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcApAQCAtNTUsOCArNTUsOCBAQAogI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKLSNpbmNsdWRlICJEeW5hbWljTGlua2Vy
U1BJLmgiCiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLmgiCisjaW5jbHVk
ZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgdm9pZCBtYXBEYXRhUGFyYW1Ub1NyYyhWZWN0
b3I8U3RyaW5nPiogcGFyYW1OYW1lcywgVmVjdG9yPFN0cmluZz4qIHBhcmFtVgogI2lmIFBMQVRG
T1JNKElPUykKIHN0YXRpYyBib29sIHNob3VsZE5vdFBlcmZvcm1VUkxBZGp1c3RtZW50KCkKIHsK
LSAgICBzdGF0aWMgYm9vbCBzaG91bGROb3RQZXJmb3JtVVJMQWRqdXN0bWVudCA9IGFwcGxpY2F0
aW9uSXNOQVNBSEQoKSAmJiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCkgPCBEWUxEX0lP
U19WRVJTSU9OXzVfMDsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGROb3RQZXJmb3JtVVJMQWRqdXN0
bWVudCA9IGFwcGxpY2F0aW9uSXNOQVNBSEQoKSAmJiAhaW9zRXhlY3V0YWJsZVdhc0xpbmtlZE9u
T3JBZnRlclZlcnNpb24od2tJT1NTeXN0ZW1WZXJzaW9uXzVfMCk7CiAgICAgcmV0dXJuIHNob3Vs
ZE5vdFBlcmZvcm1VUkxBZGp1c3RtZW50OwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCBlNjgxMmRiMTdiNjQ0YmIwODgyZGFkMzNlODI0NWM1
YzM3MzRhMDc5Li5iZDMwNjc1Y2IxYWNlYThhMTVlNzc5ZDc2M2JiZGVhNjY5NzkzYWY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTQzLDEwICs0Myw2IEBA
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IAotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSNpbmNsdWRlICJXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTM3Myw3ICszNjksNyBAQCBib29s
IEhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdFN1cHBvcnRzUHJlc2VudGF0aW9uTW9kZShjb25zdCBT
dHJpbmcmIG1vZGUpIGNvbnN0CiAgICAgICAgIHJldHVybiBtZWRpYVNlc3Npb24oKS5mdWxsc2Ny
ZWVuUGVybWl0dGVkKCp0aGlzKSAmJiBzdXBwb3J0c0Z1bGxzY3JlZW4oKTsKIAogICAgIGlmICht
b2RlID09IHByZXNlbnRhdGlvbk1vZGVQaWN0dXJlSW5QaWN0dXJlKCkpCi0gICAgICAgIHJldHVy
biBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKSAmJiBtZWRpYVNlc3Npb24oKS5hbGxvd3NQaWN0
dXJlSW5QaWN0dXJlKCp0aGlzKSAmJiBzdXBwb3J0c0Z1bGxzY3JlZW4oKTsKKyAgICAgICAgcmV0
dXJuIHdrSXNPcHRpbWl6ZWRGdWxsc2NyZWVuU3VwcG9ydGVkKCkgJiYgbWVkaWFTZXNzaW9uKCku
YWxsb3dzUGljdHVyZUluUGljdHVyZSgqdGhpcykgJiYgc3VwcG9ydHNGdWxsc2NyZWVuKCk7CiAK
ICAgICBpZiAobW9kZSA9PSBwcmVzZW50YXRpb25Nb2RlSW5saW5lKCkpCiAgICAgICAgIHJldHVy
biAhbWVkaWFTZXNzaW9uKCkucmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygqdGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRleCAwZjVlMmJlYTQ2NmM4
OGI3MWVjOWQ2ZmRlYTMzNTMwZjdjMzQyNDZjLi5lZDk5Y2ZmN2YwNjhhMzQ0MzMwZDc4ZjYwOGJh
ZDAzOTQ1ODE5YzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKQEAgLTM2
LDEyICszNiwxMiBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCi0jaW5jbHVkZSAiRGV2
aWNlLmgiCisjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2VuZGlmCiAKICNp
Zm5kZWYgV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk0KICNpZiBQTEFURk9STShJT1MpCi0jZGVm
aW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNIGRldmljZU5hbWUoKQorI2RlZmluZSBXRUJD
T1JFX05BVklHQVRPUl9QTEFURk9STSAiIgogI2VsaWYgT1MoTUFDX09TX1gpICYmIChDUFUoUFBD
KSB8fCBDUFUoUFBDNjQpKQogI2RlZmluZSBXRUJDT1JFX05BVklHQVRPUl9QTEFURk9STSAiTWFj
UFBDIgogI2VsaWYgT1MoTUFDX09TX1gpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSkKQEAg
LTY5LDYgKzY5LDcgQEAKICNkZWZpbmUgV0VCQ09SRV9OQVZJR0FUT1JfVkVORE9SX1NVQiAiIgog
I2VuZGlmIC8vIGlmbmRlZiBXRUJDT1JFX05BVklHQVRPUl9WRU5ET1JfU1VCCiAKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBOYXZpZ2F0b3JCYXNlOjp+TmF2aWdhdG9yQmFzZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmgKaW5kZXggMzc0OTI1MWEwYjA0MWVkZDRmNzUwMmI0ZmRiMmQyN2VlMTdjNTAz
NS4uOTM2ZWFlMWU4MjBlZDM5NGI1ODZhZmY5ZTFmZGM4MGFlMDdjOWZhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaApAQCAtMjgyLDEwICsyODIsNiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldEZvcmNlUGVuZGluZ1dlYkdMUG9saWN5KGJvb2wpOwogICAgIGJvb2wgaXNG
b3JjZVBlbmRpbmdXZWJHTFBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2VQZW5kaW5nV2Vi
R0xQb2xpY3k7IH0KLSAgICAKLSNpZiBQTEFURk9STShJT1MpCi0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIGZsb2F0IGRlZmF1bHRNaW5pbXVtWm9vbUZvbnRTaXplKCk7Ci0jZW5kaWYKIAogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBTZXR0aW5ncyhQYWdlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAKaW5kZXggNWE4NjhmNGFkOWJlYjkwOGFlNGE0
ZDZkZWQ2Y2JhOWE2ZTc4MjhlNS4uOTI0NzkwZDkzYTZjNDQxNTBjNjBiNmFlZmI0NDE5ZjIzMzgx
YTk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNw
cApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lm
IFBMQVRGT1JNKElPUykKLSNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2luY2x1ZGUgIldl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0yMTMsNyArMjEzLDcgQEAgVmlld3BvcnRDb25maWd1cmF0aW9uOjpQYXJhbWV0ZXJzIFZpZXdw
b3J0Q29uZmlndXJhdGlvbjo6dGV4dERvY3VtZW50UGFyYW1ldGVycygKICAgICBQYXJhbWV0ZXJz
IHBhcmFtZXRlcnM7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgcGFyYW1ldGVycy53aWR0aCA9
IHN0YXRpY19jYXN0PGludD4oc2NyZWVuU2l6ZSgpLndpZHRoKCkpOworICAgIHBhcmFtZXRlcnMu
d2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KHdrR2V0U2NyZWVuU2l6ZSgpLndpZHRoKTsKICNlbHNl
CiAgICAgLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gYmUgdW5pZmllZCB3aXRoIFZpZXdwb3J0QXJn
dW1lbnRzIG9uIGFsbCBwb3J0cy4KICAgICBwYXJhbWV0ZXJzLndpZHRoID0gMzIwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9TZXR0aW5nc0NvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9jb2NvYS9TZXR0aW5nc0NvY29hLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2ZGQ1ZGMwZTU4OGMzODVjZTk2ZGNiZDA4M2JkMjE3Yjc4NzJkNmRkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvU2V0dGluZ3NDb2NvYS5tbQorKysgL2Rldi9udWxsCkBAIC0xLDEzMiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNldHRpbmdz
LmgiCi0KLSNpZiBQTEFURk9STShJT1MpCi0jaW5jbHVkZSAiRGV2aWNlLmgiCi0jaW5jbHVkZSAi
U29mdExpbmtpbmcuaCIKLSNpbmNsdWRlICJVSUtpdFNQSS5oIgotI2VuZGlmCi0KLSNpZiBQTEFU
Rk9STShJT1MpCi1TT0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KQotU09GVF9MSU5LX0NMQVNTKFVJ
S2l0LCBVSUFwcGxpY2F0aW9uKQotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3Rh
dGljIGlubGluZSBjb25zdCBjaGFyKiBzYW5zU2VyaWZUcmFkaXRpb25hbEhhbkZvbnRGYW1pbHko
KQotewotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMDAwKSB8fCBQTEFURk9STShJT1MpCi0gICAgcmV0dXJuICJQaW5nRmFuZyBUQyI7
Ci0jZWxzZQotICAgIHJldHVybiAiSGVpdGkgVEMiOwotI2VuZGlmCi19Ci0KLXN0YXRpYyBpbmxp
bmUgY29uc3QgY2hhciogc2Fuc1NlcmlmU2ltcGxpZmllZEhhbkZvbnRGYW1pbHkoKQotewotI2lm
IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MDAwKSB8fCBQTEFURk9STShJT1MpCi0gICAgcmV0dXJuICJQaW5nRmFuZyBTQyI7Ci0jZWxzZQot
ICAgIHJldHVybiAiSGVpdGkgU0MiOwotI2VuZGlmCi19Ci0KLSNpZiBQTEFURk9STShNQUMpCi0K
LXZvaWQgU2V0dGluZ3M6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWlsaWVzKCkKLXsKLSAgICBz
ZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBUQyIsIFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFO
KTsKLSAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIlNvbmd0aSBUQyIsIFVTQ1JJUFRfVFJBRElUSU9O
QUxfSEFOKTsKLSAgICBzZXRGaXhlZEZvbnRGYW1pbHkoc2Fuc1NlcmlmVHJhZGl0aW9uYWxIYW5G
b250RmFtaWx5KCksIFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFOKTsKLSAgICBzZXRTYW5zU2VyaWZG
b250RmFtaWx5KHNhbnNTZXJpZlRyYWRpdGlvbmFsSGFuRm9udEZhbWlseSgpLCBVU0NSSVBUX1RS
QURJVElPTkFMX0hBTik7Ci0KLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBTQyIs
IFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOwotICAgIHNldFNlcmlmRm9udEZhbWlseSgiU29uZ3Rp
IFNDIiwgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7Ci0gICAgc2V0Rml4ZWRGb250RmFtaWx5KHNh
bnNTZXJpZlNpbXBsaWZpZWRIYW5Gb250RmFtaWx5KCksIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4p
OwotICAgIHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoc2Fuc1NlcmlmU2ltcGxpZmllZEhhbkZvbnRG
YW1pbHkoKSwgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7Ci0KLSAgICBzZXRTdGFuZGFyZEZvbnRG
YW1pbHkoIkhpcmFnaW5vIE1pbmNobyBQcm9OIiwgVVNDUklQVF9LQVRBS0FOQV9PUl9ISVJBR0FO
QSk7Ci0gICAgc2V0Rml4ZWRGb250RmFtaWx5KCJPc2FrYS1Nb25vIiwgVVNDUklQVF9LQVRBS0FO
QV9PUl9ISVJBR0FOQSk7Ci0gICAgc2V0U2VyaWZGb250RmFtaWx5KCJIaXJhZ2lubyBNaW5jaG8g
UHJvTiIsIFVTQ1JJUFRfS0FUQUtBTkFfT1JfSElSQUdBTkEpOwotICAgIHNldFNhbnNTZXJpZkZv
bnRGYW1pbHkoIkhpcmFnaW5vIEtha3UgR290aGljIFByb04iLCBVU0NSSVBUX0tBVEFLQU5BX09S
X0hJUkFHQU5BKTsKLQotICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiQXBwbGVNeXVuZ2pvIiwg
VVNDUklQVF9IQU5HVUwpOwotICAgIHNldFNlcmlmRm9udEZhbWlseSgiQXBwbGVNeXVuZ2pvIiwg
VVNDUklQVF9IQU5HVUwpOwotICAgIHNldEZpeGVkRm9udEZhbWlseSgiQXBwbGUgU0QgR290aGlj
IE5lbyIsIFVTQ1JJUFRfSEFOR1VMKTsKLSAgICBzZXRTYW5zU2VyaWZGb250RmFtaWx5KCJBcHBs
ZSBTRCBHb3RoaWMgTmVvIiwgVVNDUklQVF9IQU5HVUwpOwotCi0gICAgc2V0U3RhbmRhcmRGb250
RmFtaWx5KCJUaW1lcyIsIFVTQ1JJUFRfQ09NTU9OKTsKLSAgICBzZXRGaXhlZEZvbnRGYW1pbHko
IkNvdXJpZXIiLCBVU0NSSVBUX0NPTU1PTik7Ci0gICAgc2V0U2VyaWZGb250RmFtaWx5KCJUaW1l
cyIsIFVTQ1JJUFRfQ09NTU9OKTsKLSAgICBzZXRTYW5zU2VyaWZGb250RmFtaWx5KCJIZWx2ZXRp
Y2EiLCBVU0NSSVBUX0NPTU1PTik7Ci19Ci0KLSNlbHNlCi0KLXZvaWQgU2V0dGluZ3M6OmluaXRp
YWxpemVEZWZhdWx0Rm9udEZhbWlsaWVzKCkKLXsKLSAgICAvLyBUaGVyZSBpcyBubyBzZXJpZiBD
aGluZXNlIGZvbnQgaW4gZGVmYXVsdCBpT1MgaW5zdGFsbGF0aW9uLgotICAgIHNldFN0YW5kYXJk
Rm9udEZhbWlseShzYW5zU2VyaWZUcmFkaXRpb25hbEhhbkZvbnRGYW1pbHkoKSwgVVNDUklQVF9U
UkFESVRJT05BTF9IQU4pOwotICAgIHNldFNlcmlmRm9udEZhbWlseShzYW5zU2VyaWZUcmFkaXRp
b25hbEhhbkZvbnRGYW1pbHkoKSwgVVNDUklQVF9UUkFESVRJT05BTF9IQU4pOwotICAgIHNldEZp
eGVkRm9udEZhbWlseShzYW5zU2VyaWZUcmFkaXRpb25hbEhhbkZvbnRGYW1pbHkoKSwgVVNDUklQ
VF9UUkFESVRJT05BTF9IQU4pOwotICAgIHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoc2Fuc1Nlcmlm
VHJhZGl0aW9uYWxIYW5Gb250RmFtaWx5KCksIFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFOKTsKLQot
ICAgIC8vIFRoZXJlIGlzIG5vIHNlcmlmIENoaW5lc2UgZm9udCBpbiBkZWZhdWx0IGlPUyBpbnN0
YWxsYXRpb24uCi0gICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KHNhbnNTZXJpZlNpbXBsaWZpZWRI
YW5Gb250RmFtaWx5KCksIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOwotICAgIHNldFNlcmlmRm9u
dEZhbWlseShzYW5zU2VyaWZTaW1wbGlmaWVkSGFuRm9udEZhbWlseSgpLCBVU0NSSVBUX1NJTVBM
SUZJRURfSEFOKTsKLSAgICBzZXRGaXhlZEZvbnRGYW1pbHkoc2Fuc1NlcmlmU2ltcGxpZmllZEhh
bkZvbnRGYW1pbHkoKSwgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7Ci0gICAgc2V0U2Fuc1Nlcmlm
Rm9udEZhbWlseShzYW5zU2VyaWZTaW1wbGlmaWVkSGFuRm9udEZhbWlseSgpLCBVU0NSSVBUX1NJ
TVBMSUZJRURfSEFOKTsKLQotICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiSGlyYWdpbm8gTWlu
Y2hvIFByb04iLCBVU0NSSVBUX0tBVEFLQU5BX09SX0hJUkFHQU5BKTsKLSAgICBzZXRGaXhlZEZv
bnRGYW1pbHkoIkhpcmFnaW5vIEtha3UgR290aGljIFByb04iLCBVU0NSSVBUX0tBVEFLQU5BX09S
X0hJUkFHQU5BKTsKLSAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIkhpcmFnaW5vIE1pbmNobyBQcm9O
IiwgVVNDUklQVF9LQVRBS0FOQV9PUl9ISVJBR0FOQSk7Ci0gICAgc2V0U2Fuc1NlcmlmRm9udEZh
bWlseSgiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvTiIsIFVTQ1JJUFRfS0FUQUtBTkFfT1JfSElS
QUdBTkEpOwotCi0gICAgLy8gVGhlcmUgaXMgbm8gc2VyaWYgS29yZWFuIGZvbnQgaW4gZGVmYXVs
dCBpT1MgaW5zdGFsbGF0aW9uLgotICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiQXBwbGUgU0Qg
R290aGljIE5lbyIsIFVTQ1JJUFRfSEFOR1VMKTsKLSAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIkFw
cGxlIFNEIEdvdGhpYyBOZW8iLCBVU0NSSVBUX0hBTkdVTCk7Ci0gICAgc2V0Rml4ZWRGb250RmFt
aWx5KCJBcHBsZSBTRCBHb3RoaWMgTmVvIiwgVVNDUklQVF9IQU5HVUwpOwotICAgIHNldFNhbnNT
ZXJpZkZvbnRGYW1pbHkoIkFwcGxlIFNEIEdvdGhpYyBOZW8iLCBVU0NSSVBUX0hBTkdVTCk7Ci0K
LSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlRpbWVzIiwgVVNDUklQVF9DT01NT04pOwotICAg
IHNldEZpeGVkRm9udEZhbWlseSgiQ291cmllciIsIFVTQ1JJUFRfQ09NTU9OKTsKLSAgICBzZXRT
ZXJpZkZvbnRGYW1pbHkoIlRpbWVzIiwgVVNDUklQVF9DT01NT04pOwotICAgIHNldFNhbnNTZXJp
ZkZvbnRGYW1pbHkoIkhlbHZldGljYSIsIFVTQ1JJUFRfQ09NTU9OKTsKLX0KLSAgICAKLWZsb2F0
IFNldHRpbmdzOjpkZWZhdWx0TWluaW11bVpvb21Gb250U2l6ZSgpCi17Ci0gICAgaWYgKGRldmlj
ZUhhc0lQYWRDYXBhYmlsaXR5KCkgJiYgIVtbZ2V0VUlBcHBsaWNhdGlvbkNsYXNzKCkgc2hhcmVk
QXBwbGljYXRpb25dIF9pc0NsYXNzaWNdKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4g
MTU7Ci19Ci0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Vc2VyQWdlbnRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2lvcy9Vc2VyQWdlbnRJT1MubW0KaW5kZXggNzZkMzQ0MmQ4MTU4ZTA4MmZmZDY1OGE1NWJh
ZmI5YmYxZTZkZWI5MC4uNjhmYmRmMmE3MjM0YzgxMzZiYjVmOTQ3MDk5Nzk4YjFjZjNhMGRmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvVXNlckFnZW50SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL1VzZXJBZ2VudElPUy5tbQpAQCAtMjYsNDcgKzI2LDE2
IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlVzZXJBZ2VudC5oIgogCi0jaW1wb3J0
ICJEZXZpY2UuaCIKLSNpbXBvcnQgIk1vYmlsZUdlc3RhbHRTUEkuaCIKLSNpbXBvcnQgIlNvZnRM
aW5raW5nLmgiCiAjaW1wb3J0ICJTeXN0ZW1WZXJzaW9uLmgiCi0jaW1wb3J0ICJVSUtpdFNQSS5o
IgogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgotCi1TT0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KTsKLVNPRlRfTElOS19DTEFTUyhV
SUtpdCwgVUlBcHBsaWNhdGlvbik7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGlu
bGluZSBib29sIGlzQ2xhc3NpYygpCi17Ci0gICAgcmV0dXJuIFtbZ2V0VUlBcHBsaWNhdGlvbkNs
YXNzKCkgc2hhcmVkQXBwbGljYXRpb25dIF9pc0NsYXNzaWNdOwotfQotCi1zdGF0aWMgaW5saW5l
IE5TU3RyaW5nICpvc05hbWVGb3JVc2VyQWdlbnQoKQotewotICAgIGlmIChkZXZpY2VIYXNJUGFk
Q2FwYWJpbGl0eSgpICYmICFpc0NsYXNzaWMoKSkKLSAgICAgICAgcmV0dXJuIEAiT1MiOwotICAg
IHJldHVybiBAImlQaG9uZSBPUyI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgTlNTdHJpbmcgKmRldmlj
ZU5hbWVGb3JVc2VyQWdlbnQoKQotewotICAgIGlmIChpc0NsYXNzaWMoKSkKLSAgICAgICAgcmV0
dXJuIEAiaVBob25lIjsKLSAgICAKLSAgICBhdXRvIG5hbWUgPSByZXRhaW5QdHIoKE5TU3RyaW5n
ICopZGV2aWNlTmFtZSgpKTsKLSNpZiBQTEFURk9STShJT1NfU0lNVUxBVE9SKQotICAgIE5TVUlu
dGVnZXIgbG9jYXRpb24gPSBbbmFtZSByYW5nZU9mU3RyaW5nOkAiIFNpbXVsYXRvciIgb3B0aW9u
czpOU0JhY2t3YXJkc1NlYXJjaF0ubG9jYXRpb247Ci0gICAgaWYgKGxvY2F0aW9uICE9IE5TTm90
Rm91bmQgJiYgbG9jYXRpb24gPiAwKQotICAgICAgICByZXR1cm4gW25hbWUgc3Vic3RyaW5nVG9J
bmRleDpsb2NhdGlvbl07Ci0jZW5kaWYKLSAgICByZXR1cm4gbmFtZS5hdXRvcmVsZWFzZSgpOwot
fQotCiBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKGNvbnN0IFN0
cmluZyYgYXBwbGljYXRpb25OYW1lLCBjb25zdCBTdHJpbmcmIGZ1bGxXZWJLaXRWZXJzaW9uU3Ry
aW5nKQogeworICAgIGlmIChDRlN0cmluZ1JlZiBvdmVycmlkZVVzZXJBZ2VudCA9IHdrR2V0VXNl
ckFnZW50KCkpCisgICAgICAgIHJldHVybiBvdmVycmlkZVVzZXJBZ2VudDsKKwogICAgIC8vIENo
ZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhIHVzZXIgYWdlbnQgb3ZlcnJpZGUgZm9yIGFsbCBXZWJL
aXQgY2xpZW50cy4KICAgICBDRlByb3BlcnR5TGlzdFJlZiBvdmVycmlkZSA9IENGUHJlZmVyZW5j
ZXNDb3B5QXBwVmFsdWUoQ0ZTVFIoIlVzZXJBZ2VudCIpLCBDRlNUUigiY29tLmFwcGxlLldlYkZv
dW5kYXRpb24iKSk7CiAgICAgaWYgKG92ZXJyaWRlKSB7CkBAIC03NSwxMiArNDQsMTMgQEAgU3Ry
aW5nIHN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9uTmFtZShjb25zdCBTdHJpbmcmIGFw
cGxpY2F0aW9uTmFtZSwgY29uc3QKICAgICAgICAgQ0ZSZWxlYXNlKG92ZXJyaWRlKTsKICAgICB9
CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGltcGxlbWVudCB0aGlzIHdpdGggU3RyaW5nIGFu
ZC9vciBTdHJpbmdCdWlsZGVyIGluc3RlYWQuCiAgICAgTlNTdHJpbmcgKndlYktpdFZlcnNpb24g
PSB1c2VyQWdlbnRCdW5kbGVWZXJzaW9uRnJvbUZ1bGxWZXJzaW9uU3RyaW5nKGZ1bGxXZWJLaXRW
ZXJzaW9uU3RyaW5nKTsKKyAgICBDRlN0cmluZ1JlZiBkZXZpY2VOYW1lID0gd2tHZXREZXZpY2VO
YW1lKCk7CisgICAgQ0ZTdHJpbmdSZWYgb3NOYW1lRm9yVXNlckFnZW50ID0gd2tHZXRPU05hbWVG
b3JVc2VyQWdlbnQoKTsKICAgICBOU1N0cmluZyAqb3NNYXJrZXRpbmdWZXJzaW9uU3RyaW5nID0g
c3lzdGVtTWFya2V0aW5nVmVyc2lvbkZvclVzZXJBZ2VudFN0cmluZygpOwogICAgIGlmIChhcHBs
aWNhdGlvbk5hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dp
dGhGb3JtYXQ6QCJNb3ppbGxhLzUuMCAoJUA7IENQVSAlQCAlQCBsaWtlIE1hYyBPUyBYKSBBcHBs
ZVdlYktpdC8lQCAoS0hUTUwsIGxpa2UgR2Vja28pIiwgZGV2aWNlTmFtZUZvclVzZXJBZ2VudCgp
LCBvc05hbWVGb3JVc2VyQWdlbnQoKSwgb3NNYXJrZXRpbmdWZXJzaW9uU3RyaW5nLCB3ZWJLaXRW
ZXJzaW9uXTsKLSAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJNb3ppbGxh
LzUuMCAoJUA7IENQVSAlQCAlQCBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC8lQCAoS0hUTUws
IGxpa2UgR2Vja28pICVAIiwgZGV2aWNlTmFtZUZvclVzZXJBZ2VudCgpLCBvc05hbWVGb3JVc2Vy
QWdlbnQoKSwgb3NNYXJrZXRpbmdWZXJzaW9uU3RyaW5nLCB3ZWJLaXRWZXJzaW9uLCBzdGF0aWNf
Y2FzdDxOU1N0cmluZyAqPihhcHBsaWNhdGlvbk5hbWUpXTsKKyAgICAgICAgcmV0dXJuIFtOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiTW96aWxsYS81LjAgKCVAOyBDUFUgJUAgJUAgbGlrZSBN
YWMgT1MgWCkgQXBwbGVXZWJLaXQvJUAgKEtIVE1MLCBsaWtlIEdlY2tvKSIsIGRldmljZU5hbWUs
IG9zTmFtZUZvclVzZXJBZ2VudCwgb3NNYXJrZXRpbmdWZXJzaW9uU3RyaW5nLCB3ZWJLaXRWZXJz
aW9uXTsKKyAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJNb3ppbGxhLzUu
MCAoJUA7IENQVSAlQCAlQCBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC8lQCAoS0hUTUwsIGxp
a2UgR2Vja28pICVAIiwgZGV2aWNlTmFtZSwgb3NOYW1lRm9yVXNlckFnZW50LCBvc01hcmtldGlu
Z1ZlcnNpb25TdHJpbmcsIHdlYktpdFZlcnNpb24sIHN0YXRpY19jYXN0PE5TU3RyaW5nICo+KGFw
cGxpY2F0aW9uTmFtZSldOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2V0dGluZ3NNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL21hYy9TZXR0aW5nc01hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTA2MTMyYzBlZDg1NDY4MTdl
ZDUzOWVkY2RmYjBlZjIxMTExNTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvU2V0dGluZ3NNYWMubW0KQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHNhbnNTZXJpZlRyYWRpdGlvbmFs
SGFuRm9udEZhbWlseSgpCit7CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDApIHx8IFBMQVRGT1JNKElPUykKKyAgICByZXR1cm4g
IlBpbmdGYW5nIFRDIjsKKyNlbHNlCisgICAgcmV0dXJuICJIZWl0aSBUQyI7CisjZW5kaWYKK30K
Kworc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBzYW5zU2VyaWZTaW1wbGlmaWVkSGFuRm9udEZh
bWlseSgpCit7CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDEwMDApIHx8IFBMQVRGT1JNKElPUykKKyAgICByZXR1cm4gIlBpbmdGYW5n
IFNDIjsKKyNlbHNlCisgICAgcmV0dXJuICJIZWl0aSBTQyI7CisjZW5kaWYKK30KKworI2lmIFBM
QVRGT1JNKE1BQykKK3ZvaWQgU2V0dGluZ3M6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWlsaWVz
KCkKK3sKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBUQyIsIFVTQ1JJUFRfVFJB
RElUSU9OQUxfSEFOKTsKKyAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIlNvbmd0aSBUQyIsIFVTQ1JJ
UFRfVFJBRElUSU9OQUxfSEFOKTsKKyAgICBzZXRGaXhlZEZvbnRGYW1pbHkoc2Fuc1NlcmlmVHJh
ZGl0aW9uYWxIYW5Gb250RmFtaWx5KCksIFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFOKTsKKyAgICBz
ZXRTYW5zU2VyaWZGb250RmFtaWx5KHNhbnNTZXJpZlRyYWRpdGlvbmFsSGFuRm9udEZhbWlseSgp
LCBVU0NSSVBUX1RSQURJVElPTkFMX0hBTik7CisKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHko
IlNvbmd0aSBTQyIsIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOworICAgIHNldFNlcmlmRm9udEZh
bWlseSgiU29uZ3RpIFNDIiwgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7CisgICAgc2V0Rml4ZWRG
b250RmFtaWx5KHNhbnNTZXJpZlNpbXBsaWZpZWRIYW5Gb250RmFtaWx5KCksIFVTQ1JJUFRfU0lN
UExJRklFRF9IQU4pOworICAgIHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoc2Fuc1NlcmlmU2ltcGxp
ZmllZEhhbkZvbnRGYW1pbHkoKSwgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7CisKKyAgICBzZXRT
dGFuZGFyZEZvbnRGYW1pbHkoIkhpcmFnaW5vIE1pbmNobyBQcm9OIiwgVVNDUklQVF9LQVRBS0FO
QV9PUl9ISVJBR0FOQSk7CisgICAgc2V0Rml4ZWRGb250RmFtaWx5KCJPc2FrYS1Nb25vIiwgVVND
UklQVF9LQVRBS0FOQV9PUl9ISVJBR0FOQSk7CisgICAgc2V0U2VyaWZGb250RmFtaWx5KCJIaXJh
Z2lubyBNaW5jaG8gUHJvTiIsIFVTQ1JJUFRfS0FUQUtBTkFfT1JfSElSQUdBTkEpOworICAgIHNl
dFNhbnNTZXJpZkZvbnRGYW1pbHkoIkhpcmFnaW5vIEtha3UgR290aGljIFByb04iLCBVU0NSSVBU
X0tBVEFLQU5BX09SX0hJUkFHQU5BKTsKKworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiQXBw
bGVNeXVuZ2pvIiwgVVNDUklQVF9IQU5HVUwpOworICAgIHNldFNlcmlmRm9udEZhbWlseSgiQXBw
bGVNeXVuZ2pvIiwgVVNDUklQVF9IQU5HVUwpOworICAgIHNldEZpeGVkRm9udEZhbWlseSgiQXBw
bGUgU0QgR290aGljIE5lbyIsIFVTQ1JJUFRfSEFOR1VMKTsKKyAgICBzZXRTYW5zU2VyaWZGb250
RmFtaWx5KCJBcHBsZSBTRCBHb3RoaWMgTmVvIiwgVVNDUklQVF9IQU5HVUwpOworCisgICAgc2V0
U3RhbmRhcmRGb250RmFtaWx5KCJUaW1lcyIsIFVTQ1JJUFRfQ09NTU9OKTsKKyAgICBzZXRGaXhl
ZEZvbnRGYW1pbHkoIkNvdXJpZXIiLCBVU0NSSVBUX0NPTU1PTik7CisgICAgc2V0U2VyaWZGb250
RmFtaWx5KCJUaW1lcyIsIFVTQ1JJUFRfQ09NTU9OKTsKKyAgICBzZXRTYW5zU2VyaWZGb250RmFt
aWx5KCJIZWx2ZXRpY2EiLCBVU0NSSVBUX0NPTU1PTik7Cit9CisKKyNlbHNlCisKK3ZvaWQgU2V0
dGluZ3M6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWlsaWVzKCkKK3sKKyAgICAvLyBUaGVyZSBp
cyBubyBzZXJpZiBDaGluZXNlIGZvbnQgaW4gZGVmYXVsdCBpT1MgaW5zdGFsbGF0aW9uLgorICAg
IHNldFN0YW5kYXJkRm9udEZhbWlseShzYW5zU2VyaWZUcmFkaXRpb25hbEhhbkZvbnRGYW1pbHko
KSwgVVNDUklQVF9UUkFESVRJT05BTF9IQU4pOworICAgIHNldFNlcmlmRm9udEZhbWlseShzYW5z
U2VyaWZUcmFkaXRpb25hbEhhbkZvbnRGYW1pbHkoKSwgVVNDUklQVF9UUkFESVRJT05BTF9IQU4p
OworICAgIHNldEZpeGVkRm9udEZhbWlseShzYW5zU2VyaWZUcmFkaXRpb25hbEhhbkZvbnRGYW1p
bHkoKSwgVVNDUklQVF9UUkFESVRJT05BTF9IQU4pOworICAgIHNldFNhbnNTZXJpZkZvbnRGYW1p
bHkoc2Fuc1NlcmlmVHJhZGl0aW9uYWxIYW5Gb250RmFtaWx5KCksIFVTQ1JJUFRfVFJBRElUSU9O
QUxfSEFOKTsKKworICAgIC8vIFRoZXJlIGlzIG5vIHNlcmlmIENoaW5lc2UgZm9udCBpbiBkZWZh
dWx0IGlPUyBpbnN0YWxsYXRpb24uCisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KHNhbnNTZXJp
ZlNpbXBsaWZpZWRIYW5Gb250RmFtaWx5KCksIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOworICAg
IHNldFNlcmlmRm9udEZhbWlseShzYW5zU2VyaWZTaW1wbGlmaWVkSGFuRm9udEZhbWlseSgpLCBV
U0NSSVBUX1NJTVBMSUZJRURfSEFOKTsKKyAgICBzZXRGaXhlZEZvbnRGYW1pbHkoc2Fuc1Nlcmlm
U2ltcGxpZmllZEhhbkZvbnRGYW1pbHkoKSwgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7CisgICAg
c2V0U2Fuc1NlcmlmRm9udEZhbWlseShzYW5zU2VyaWZTaW1wbGlmaWVkSGFuRm9udEZhbWlseSgp
LCBVU0NSSVBUX1NJTVBMSUZJRURfSEFOKTsKKworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgi
SGlyYWdpbm8gTWluY2hvIFByb04iLCBVU0NSSVBUX0tBVEFLQU5BX09SX0hJUkFHQU5BKTsKKyAg
ICBzZXRGaXhlZEZvbnRGYW1pbHkoIkhpcmFnaW5vIEtha3UgR290aGljIFByb04iLCBVU0NSSVBU
X0tBVEFLQU5BX09SX0hJUkFHQU5BKTsKKyAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIkhpcmFnaW5v
IE1pbmNobyBQcm9OIiwgVVNDUklQVF9LQVRBS0FOQV9PUl9ISVJBR0FOQSk7CisgICAgc2V0U2Fu
c1NlcmlmRm9udEZhbWlseSgiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvTiIsIFVTQ1JJUFRfS0FU
QUtBTkFfT1JfSElSQUdBTkEpOworCisgICAgLy8gVGhlcmUgaXMgbm8gc2VyaWYgS29yZWFuIGZv
bnQgaW4gZGVmYXVsdCBpT1MgaW5zdGFsbGF0aW9uLgorICAgIHNldFN0YW5kYXJkRm9udEZhbWls
eSgiQXBwbGUgU0QgR290aGljIE5lbyIsIFVTQ1JJUFRfSEFOR1VMKTsKKyAgICBzZXRTZXJpZkZv
bnRGYW1pbHkoIkFwcGxlIFNEIEdvdGhpYyBOZW8iLCBVU0NSSVBUX0hBTkdVTCk7CisgICAgc2V0
Rml4ZWRGb250RmFtaWx5KCJBcHBsZSBTRCBHb3RoaWMgTmVvIiwgVVNDUklQVF9IQU5HVUwpOwor
ICAgIHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoIkFwcGxlIFNEIEdvdGhpYyBOZW8iLCBVU0NSSVBU
X0hBTkdVTCk7CisKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlRpbWVzIiwgVVNDUklQVF9D
T01NT04pOworICAgIHNldEZpeGVkRm9udEZhbWlseSgiQ291cmllciIsIFVTQ1JJUFRfQ09NTU9O
KTsKKyAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIlRpbWVzIiwgVVNDUklQVF9DT01NT04pOworICAg
IHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoIkhlbHZldGljYSIsIFVTQ1JJUFRfQ09NTU9OKTsKK30K
KyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1TY3JlZW4uaAppbmRleCBmMWY1ZGQ4MTcxY2E3YzdiYmQ0ZTgxMDM5MTRlNjI2M2Ex
YWY3MWM1Li5lNGNhZTEwZmQ5YjE5NDc1MzBjMTliYjlkZDAyZThjM2VhMWE5ZGNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKQEAgLTQwLDEwICs0MCw2IEBAIHR5
cGVkZWYgc3RydWN0IF9OU1BvaW50IE5TUG9pbnQ7CiAjZW5kaWYKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oSU9TKQotT0JKQ19DTEFTUyBVSVNjcmVlbjsKLSNlbmRpZgotCiB0eXBlZGVmIHVpbnQz
Ml90IFBsYXRmb3JtRGlzcGxheUlEOwogCiB0eXBlZGVmIFdURjo6VmVjdG9yPGNoYXI+IENvbG9y
UHJvZmlsZTsKQEAgLTUxLDcgKzQ3LDYgQEAgdHlwZWRlZiBXVEY6OlZlY3RvcjxjaGFyPiBDb2xv
clByb2ZpbGU7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBGbG9hdFJlY3Q7Ci0g
ICAgY2xhc3MgRmxvYXRTaXplOwogICAgIGNsYXNzIFdpZGdldDsKIAogICAgIGludCBzY3JlZW5E
ZXB0aChXaWRnZXQqKTsKQEAgLTc0LDkgKzY5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIGZsb2F0IHNjcmVlblBQSUZhY3RvcigpOwotICAgIFdFQkNP
UkVfRVhQT1JUIEZsb2F0U2l6ZSBzY3JlZW5TaXplKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgRmxv
YXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBmbG9hdCBz
Y3JlZW5TY2FsZUZhY3RvcihVSVNjcmVlbiAqID0gbnVsbHB0cik7CiAjZW5kaWYKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L0RldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTk2YjcxMGExZWRiZGU2MTVlZDFjMmFmMGRlODAz
Mzg1MWM3ZjIxMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDc5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiRGV2aWNlLmgiCi0KLSNpZiBQTEFURk9STShJT1MpCi0KLSNpbmNsdWRlIDxtdXRleD4KLSNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotTUdEZXZpY2VDbGFzcyBkZXZpY2VDbGFzcygpCi17Ci0gICAgc3RhdGljIE1HRGV2aWNlQ2xh
c3MgZGV2aWNlQ2xhc3M7Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIGludCBkZXZpY2VDbGFzc051
bWJlciA9IE1HR2V0U0ludDMyQW5zd2VyKGtNR1FEZXZpY2VDbGFzc051bWJlciwgTUdEZXZpY2VD
bGFzc0ludmFsaWQpOwotICAgICAgICBzd2l0Y2ggKGRldmljZUNsYXNzTnVtYmVyKSB7Ci0gICAg
ICAgIGNhc2UgTUdEZXZpY2VDbGFzc0ludmFsaWQ6Ci0gICAgICAgIGNhc2UgTUdEZXZpY2VDbGFz
c2lQaG9uZToKLSAgICAgICAgY2FzZSBNR0RldmljZUNsYXNzaVBvZDoKLSAgICAgICAgY2FzZSBN
R0RldmljZUNsYXNzaVBhZDoKLSAgICAgICAgY2FzZSBNR0RldmljZUNsYXNzQXBwbGVUVjoKLSAg
ICAgICAgY2FzZSBNR0RldmljZUNsYXNzV2F0Y2g6Ci0gICAgICAgICAgICBkZXZpY2VDbGFzcyA9
IHN0YXRpY19jYXN0PE1HRGV2aWNlQ2xhc3M+KGRldmljZUNsYXNzTnVtYmVyKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICB9KTsKLSAgICByZXR1cm4gZGV2aWNlQ2xhc3M7Ci19Ci0KLWNvbnN0IFN0cmluZyYgZGV2aWNl
TmFtZSgpCi17Ci0gICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGRldmljZU5h
bWU7Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIGF1dG8gY2ZEZXZpY2VOYW1lID0gYWRvcHRDRihz
dGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oTUdDb3B5QW5zd2VyKGtNR1FEZXZpY2VOYW1lLCBudWxs
cHRyKSkpOwotICAgICAgICBBU1NFUlQoIWNmRGV2aWNlTmFtZSB8fCBDRkdldFR5cGVJRChjZkRl
dmljZU5hbWUuZ2V0KCkpID09IENGU3RyaW5nR2V0VHlwZUlEKCkpOwotICAgICAgICBkZXZpY2VO
YW1lLmNvbnN0cnVjdChjZkRldmljZU5hbWUuZ2V0KCkpOwotICAgIH0pOwotICAgIHJldHVybiBk
ZXZpY2VOYW1lOwotfQotCi1ib29sIGRldmljZUhhc0lQYWRDYXBhYmlsaXR5KCkKLXsKLSAgICBz
dGF0aWMgYm9vbCBkZXZpY2VIYXNJUGFkQ2FwYWJpbGl0eSA9IE1HR2V0Qm9vbEFuc3dlcihrTUdR
aVBhZENhcGFiaWxpdHkpOwotICAgIHJldHVybiBkZXZpY2VIYXNJUGFkQ2FwYWJpbGl0eTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlMDhjYmQxNGEwOGJjNDBiMGIyMDVhMGE1MDgxOWEwYjM4Yjg4OWVkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9EZXZpY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIERldmljZV9oCi0jZGVmaW5lIERldmljZV9oCi0KLSNpZiBQTEFURk9STShJT1Mp
Ci0KLSNpbmNsdWRlICJNb2JpbGVHZXN0YWx0U1BJLmgiCi0KLW5hbWVzcGFjZSBXVEYgewotY2xh
c3MgU3RyaW5nOwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdFQkNPUkVfRVhQT1JUIE1H
RGV2aWNlQ2xhc3MgZGV2aWNlQ2xhc3MoKTsKLWNvbnN0IFdURjo6U3RyaW5nJiBkZXZpY2VOYW1l
KCk7Ci0KLS8vIEZJWE1FOiBJc24ndCB0aGlzIHRoZSBzYW1lIGFzIGRldmljZUNsYXNzKCkgPT0g
TUdEZXZpY2VDbGFzc2lQYWQ/Ci1ib29sIGRldmljZUhhc0lQYWRDYXBhYmlsaXR5KCk7Ci0KLX0K
LQotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKLQotI2VuZGlmIC8vIERldmljZV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5JT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5JT1MubW0KaW5kZXggNjU4
MTdlYjg0MjM1YTlmYTAxYzA1YjQ4MjIyNmFkY2Q4NDZhMGVlZS4uYTIwOGZlOWU2OTYwNDJiYjhk
NzNjMTVjNjJmMmY2Zjg1M2U3ODEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5tbQpAQCAtMjYsMjQgKzI2LDE5IEBACiAjaW1wb3J0ICJj
b25maWcuaCIKICNpbXBvcnQgIlBsYXRmb3JtU2NyZWVuLmgiCiAKLSNpbXBvcnQgIkRldmljZS5o
IgogI2ltcG9ydCAiRmxvYXRSZWN0LmgiCi0jaW1wb3J0ICJGbG9hdFNpemUuaCIKICNpbXBvcnQg
IkZyYW1lVmlldy5oIgogI2ltcG9ydCAiSG9zdFdpbmRvdy5oIgogI2ltcG9ydCAiSW50UmVjdC5o
IgogI2ltcG9ydCAiTW9iaWxlR2VzdGFsdFNQSS5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIK
LSNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJXQUtXaW5kb3cuaCIKICNpbXBvcnQgIldl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgIldpZGdldC5oIgogCiBTT0ZUX0xJTktf
RlJBTUVXT1JLKFVJS2l0KQotU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUFwcGxpY2F0aW9uKQot
U09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSVNjcmVlbikKLVNPRlRfTElOSyhVSUtpdCwgVUlBY2Nl
c3NpYmlsaXR5SXNHcmF5c2NhbGVFbmFibGVkLCBCT09MLCAodm9pZCksICgpKQotU09GVF9MSU5L
KFVJS2l0LCBVSUFjY2Vzc2liaWxpdHlJc0ludmVydENvbG9yc0VuYWJsZWQsIEJPT0wsICh2b2lk
KSwgKCkpCitTT0ZUX0xJTksoVUlLaXQsIFVJQWNjZXNzaWJpbGl0eUlzR3JheXNjYWxlRW5hYmxl
ZCwgYm9vbCwgKHZvaWQpLCAoKSkKK1NPRlRfTElOSyhVSUtpdCwgVUlBY2Nlc3NpYmlsaXR5SXNJ
bnZlcnRDb2xvcnNFbmFibGVkLCBib29sLCAodm9pZCksICgpKQogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTEwMywxNCArOTgsMjUgQEAgRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3Qo
V2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QoRmxvYXRSZWN0KEZs
b2F0UG9pbnQoKSwgd2lkZ2V0LT5yb290KCktPmhvc3RXaW5kb3coKS0+YXZhaWxhYmxlU2NyZWVu
U2l6ZSgpKSk7CiB9CiAKK3N0YXRpYyBmbG9hdCBtb2JpbGVHZXN0YWx0RmxvYXRWYWx1ZShDRlN0
cmluZ1JlZiBxdWVzdGlvbikKK3sKKyAgICBmbG9hdCByZXN1bHQgPSAwOworICAgIGlmIChDRlR5
cGVSZWYgdmFsdWUgPSBNR0NvcHlBbnN3ZXIocXVlc3Rpb24sIDApKSB7CisgICAgICAgIGlmIChD
RkdldFR5cGVJRCh2YWx1ZSkgPT0gQ0ZOdW1iZXJHZXRUeXBlSUQoKSkKKyAgICAgICAgICAgIENG
TnVtYmVyR2V0VmFsdWUoc3RhdGljX2Nhc3Q8Q0ZOdW1iZXJSZWY+KHZhbHVlKSwga0NGTnVtYmVy
RmxvYXRUeXBlLCAmcmVzdWx0KTsKKyAgICAgICAgQ0ZSZWxlYXNlKHZhbHVlKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKwogZmxvYXQgc2NyZWVuUFBJRmFjdG9yKCkKIHsKICAgICBz
dGF0aWMgZmxvYXQgcHBpRmFjdG9yOwogCiAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNl
VG9rZW47CiAgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeewotICAgICAgICBpbnQgcGl0
Y2ggPSBNR0dldFNJbnQzMkFuc3dlcihrTUdRTWFpblNjcmVlblBpdGNoLCAwKTsKLSAgICAgICAg
ZmxvYXQgc2NhbGUgPSBNR0dldEZsb2F0MzJBbnN3ZXIoa01HUU1haW5TY3JlZW5TY2FsZSwgMCk7
CisgICAgICAgIGZsb2F0IHBpdGNoID0gbW9iaWxlR2VzdGFsdEZsb2F0VmFsdWUoa01HUU1haW5T
Y3JlZW5QaXRjaCk7CisgICAgICAgIGZsb2F0IHNjYWxlID0gbW9iaWxlR2VzdGFsdEZsb2F0VmFs
dWUoa01HUU1haW5TY3JlZW5TY2FsZSk7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IGZsb2F0IG9y
aWdpbmFsSVBob25lUFBJID0gMTYzOwogICAgICAgICBmbG9hdCBtYWluU2NyZWVuUFBJID0gKHBp
dGNoICYmIHNjYWxlKSA/IHBpdGNoIC8gc2NhbGUgOiBvcmlnaW5hbElQaG9uZVBQSTsKQEAgLTEy
MCwzMyArMTI2LDQgQEAgZmxvYXQgc2NyZWVuUFBJRmFjdG9yKCkKICAgICByZXR1cm4gcHBpRmFj
dG9yOwogfQogCi1GbG9hdFNpemUgc2NyZWVuU2l6ZSgpCi17Ci0gICAgaWYgKGRldmljZUhhc0lQ
YWRDYXBhYmlsaXR5KCkgJiYgW1tnZXRVSUFwcGxpY2F0aW9uQ2xhc3MoKSBzaGFyZWRBcHBsaWNh
dGlvbl0gX2lzQ2xhc3NpY10pCi0gICAgICAgIHJldHVybiB7IDMyMCwgNDgwIH07Ci0gICAgcmV0
dXJuIEZsb2F0U2l6ZShbW2dldFVJU2NyZWVuQ2xhc3MoKSBtYWluU2NyZWVuXSBfcmVmZXJlbmNl
Qm91bmRzXS5zaXplKTsKLX0KLQotRmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKQotewot
ICAgIGlmIChkZXZpY2VIYXNJUGFkQ2FwYWJpbGl0eSgpICYmIFtbZ2V0VUlBcHBsaWNhdGlvbkNs
YXNzKCkgc2hhcmVkQXBwbGljYXRpb25dIF9pc0NsYXNzaWNdKQotICAgICAgICByZXR1cm4geyAz
MjAsIDQ4MCB9OwotICAgIHJldHVybiBGbG9hdFNpemUoW2dldFVJU2NyZWVuQ2xhc3MoKSBtYWlu
U2NyZWVuXS5ib3VuZHMuc2l6ZSk7Ci19Ci0KLWZsb2F0IHNjcmVlblNjYWxlRmFjdG9yKFVJU2Ny
ZWVuICpzY3JlZW4pCi17Ci0gICAgaWYgKCFzY3JlZW4pCi0gICAgICAgIHNjcmVlbiA9IFtnZXRV
SVNjcmVlbkNsYXNzKCkgbWFpblNjcmVlbl07Ci0KLSAgICBDR0Zsb2F0IHNjYWxlID0gc2NyZWVu
LnNjYWxlOwotCi0gICAgLy8gV2UgY2FuIHJlbW92ZSB0aGlzIGNsYW1waW5nIG9uY2UgPHJkYXI6
Ly9wcm9ibGVtLzE2Mzk1NDc1PiBpcyBmaXhlZC4KLSAgICBjb25zdCBDR0Zsb2F0IG1heGltdW1D
bGFzc2ljU2NyZWVuU2NhbGVGYWN0b3IgPSAyOwotICAgIGlmIChbW2dldFVJQXBwbGljYXRpb25D
bGFzcygpIHNoYXJlZEFwcGxpY2F0aW9uXSBfaXNDbGFzc2ljXSkKLSAgICAgICAgcmV0dXJuIHN0
ZDo6bWluKHNjYWxlLCBtYXhpbXVtQ2xhc3NpY1NjcmVlblNjYWxlRmFjdG9yKTsKLQotICAgIHJl
dHVybiBzY2FsZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOThmMDExYWRiNTliMjUxZDg3NTQ0NDIzZTU4YjdlNDFmMjk5YjAwOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50
ZXJmYWNlSU9TLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPU19oCisjZGVm
aW5lIFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1NfaAorCisjaW5jbHVkZSA8QXZhaWxhYmlsaXR5
Lmg+CisKK3R5cGVkZWYgZW51bSB7CisgICAgd2tJT1NTeXN0ZW1WZXJzaW9uXzNfMCA9IF9fSVBI
T05FXzNfMCwKKyAgICB3a0lPU1N5c3RlbVZlcnNpb25fNF8yID0gX19JUEhPTkVfNF8yLAorICAg
IHdrSU9TU3lzdGVtVmVyc2lvbl81XzAgPSBfX0lQSE9ORV81XzAsCisgICAgd2tJT1NTeXN0ZW1W
ZXJzaW9uXzZfMCA9IF9fSVBIT05FXzZfMCwKKyAgICB3a0lPU1N5c3RlbVZlcnNpb25fOV8wID0g
X19JUEhPTkVfOV8wLAorfSB3a0lPU1N5c3RlbVZlcnNpb247CisKK2Jvb2wgaW9zRXhlY3V0YWJs
ZVdhc0xpbmtlZE9uT3JBZnRlclZlcnNpb24od2tJT1NTeXN0ZW1WZXJzaW9uKTsKKworZXh0ZXJu
IGJvb2wgKCp3a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQWZ0ZXJJT1NWZXJzaW9uKShpbnQpOwor
CitleHRlcm4gYm9vbCAoKndrSXNHQjE4MDMwQ29tcGxpYW5jZVJlcXVpcmVkKSh2b2lkKTsKKwor
aW5saW5lIGJvb2wgaW9zRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JBZnRlclZlcnNpb24od2tJT1NT
eXN0ZW1WZXJzaW9uIHZlcnNpb24pCit7CisgICAgcmV0dXJuIHdrRXhlY3V0YWJsZVdhc0xpbmtl
ZE9uT3JBZnRlcklPU1ZlcnNpb24odmVyc2lvbik7Cit9CisKK3R5cGVkZWYgZW51bSB7CisgICAg
d2tEZXZpY2VDbGFzc0ludmFsaWQgPSAtMSwKKyAgICB3a0RldmljZUNsYXNzaVBhZCwKKyAgICB3
a0RldmljZUNsYXNzaVBob25lLAorICAgIHdrRGV2aWNlQ2xhc3NpUG9kLAorfSB3a0RldmljZUNs
YXNzOworZXh0ZXJuIGludCAoKndrR2V0RGV2aWNlQ2xhc3MpKHZvaWQpOworaW5saW5lIHdrRGV2
aWNlQ2xhc3MgaW9zRGV2aWNlQ2xhc3Modm9pZCkKK3sKKyAgICBpbnQgZGV2aWNlQ2xhc3MgPSB3
a0dldERldmljZUNsYXNzKCk7CisgICAgc3dpdGNoIChkZXZpY2VDbGFzcykgeworICAgIGNhc2Ug
d2tEZXZpY2VDbGFzc0ludmFsaWQ6CisgICAgY2FzZSB3a0RldmljZUNsYXNzaVBhZDoKKyAgICBj
YXNlIHdrRGV2aWNlQ2xhc3NpUGhvbmU6CisgICAgY2FzZSB3a0RldmljZUNsYXNzaVBvZDoKKyAg
ICAgICAgcmV0dXJuICh3a0RldmljZUNsYXNzKWRldmljZUNsYXNzOworICAgIH0KKyAgICBhc3Nl
cnQoZmFsc2UpOworICAgIHJldHVybiB3a0RldmljZUNsYXNzSW52YWxpZDsKK30KKworZXh0ZXJu
IENGU3RyaW5nUmVmICgqd2tHZXRVc2VyQWdlbnQpKHZvaWQpOworZXh0ZXJuIENGU3RyaW5nUmVm
ICgqd2tHZXREZXZpY2VOYW1lKSh2b2lkKTsKK2V4dGVybiBDRlN0cmluZ1JlZiAoKndrR2V0T1NO
YW1lRm9yVXNlckFnZW50KSh2b2lkKTsKK2V4dGVybiBDRlN0cmluZ1JlZiAoKndrR2V0UGxhdGZv
cm1OYW1lRm9yTmF2aWdhdG9yKSh2b2lkKTsKK2V4dGVybiBDRlN0cmluZ1JlZiAoKndrR2V0VmVu
ZG9yTmFtZUZvck5hdmlnYXRvcikodm9pZCk7CisKK2V4dGVybiBib29sICgqd2tJc09wdGltaXpl
ZEZ1bGxzY3JlZW5TdXBwb3J0ZWQpKHZvaWQpOworCisjZW5kaWYgLy8gV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZUlPU19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
Q29yZVN5c3RlbUludGVyZmFjZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tCmluZGV4IDRlMzAzNjZkNGViN2ZhYjE4OGRlNGNh
ZTkwZjlkNTUxMWY5MDZkYWIuLmM2ZTRjMTY5NzNmYzc2ZmVkNTMzNWM1YjhjOTNlYmFiZWNmM2Rk
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVt
SW50ZXJmYWNlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlSU9TLm1tCkBAIC00Niw3ICs0NiwxMyBAQCBXRUJDT1JFX0VYUE9SVCB2
b2lkICgqd2tTZXRDT05ORUNUUHJveHlGb3JTdHJlYW0pKENGUmVhZFN0cmVhbVJlZiwgQ0ZTdHJp
bmdSZWYgcAogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0Q09OTkVDVFByb3h5QXV0aG9yaXph
dGlvbkZvclN0cmVhbSkoQ0ZSZWFkU3RyZWFtUmVmLCBDRlN0cmluZ1JlZiBwcm94eUF1dGhvcml6
YXRpb25TdHJpbmcpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCAoKndrU2V0Q29va2llU3RvcmFnZVBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpKEJPT0wpOwogV0VCQ09SRV9FWFBPUlQgQ0ZIVFRQTWVzc2Fn
ZVJlZiAoKndrQ29weUNPTk5FQ1RQcm94eVJlc3BvbnNlKShDRlJlYWRTdHJlYW1SZWYsIENGVVJM
UmVmIHJlc3BvbnNlVVJMLCBDRlN0cmluZ1JlZiBwcm94eUhvc3QsIENGTnVtYmVyUmVmIHByb3h5
UG9ydCk7CitXRUJDT1JFX0VYUE9SVCBib29sICgqd2tFeGVjdXRhYmxlV2FzTGlua2VkT25PckFm
dGVySU9TVmVyc2lvbikoaW50KTsKK1dFQkNPUkVfRVhQT1JUIGludCAoKndrR2V0RGV2aWNlQ2xh
c3MpKHZvaWQpOworV0VCQ09SRV9FWFBPUlQgQ0dTaXplICgqd2tHZXRTY3JlZW5TaXplKSh2b2lk
KTsKK1dFQkNPUkVfRVhQT1JUIENHU2l6ZSAoKndrR2V0QXZhaWxhYmxlU2NyZWVuU2l6ZSkodm9p
ZCk7CiBXRUJDT1JFX0VYUE9SVCB2b2lkICgqd2tTZXRMYXllckNvbnRlbnRzU2NhbGUpKENBTGF5
ZXIgKik7CitXRUJDT1JFX0VYUE9SVCBmbG9hdCAoKndrR2V0U2NyZWVuU2NhbGVGYWN0b3IpKHZv
aWQpOworV0VCQ09SRV9FWFBPUlQgYm9vbCAoKndrSXNHQjE4MDMwQ29tcGxpYW5jZVJlcXVpcmVk
KSh2b2lkKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgKCp3a0NGVVJMUmVxdWVzdEFsbG93QWxsUG9z
dENhY2hpbmcpKENGVVJMUmVxdWVzdFJlZik7CiBXRUJDT1JFX0VYUE9SVCBDRkFycmF5UmVmICgq
d2tDb3B5TlNVUkxSZXNwb25zZUNlcnRpZmljYXRlQ2hhaW4pKE5TVVJMUmVzcG9uc2UqKTsKIFdF
QkNPUkVfRVhQT1JUIENGU3RyaW5nRW5jb2RpbmcgKCp3a0dldFdlYkRlZmF1bHRDRlN0cmluZ0Vu
Y29kaW5nKSh2b2lkKTsKQEAgLTk4LDYgKzEwNCwxNCBAQCBXRUJDT1JFX0VYUE9SVCBib29sICgq
d2tJc1B1YmxpY1N1ZmZpeCkoTlNTdHJpbmcgKmhvc3QpOwogV0VCQ09SRV9FWFBPUlQgQ0ZTdHJp
bmdSZWYgKCp3a0NhY2hlUGFydGl0aW9uS2V5KSh2b2lkKTsKICNlbmRpZgogCitXRUJDT1JFX0VY
UE9SVCBDRlN0cmluZ1JlZiAoKndrR2V0VXNlckFnZW50KSh2b2lkKTsKK1dFQkNPUkVfRVhQT1JU
IENGU3RyaW5nUmVmICgqd2tHZXREZXZpY2VOYW1lKSh2b2lkKTsKK1dFQkNPUkVfRVhQT1JUIENG
U3RyaW5nUmVmICgqd2tHZXRPU05hbWVGb3JVc2VyQWdlbnQpKHZvaWQpOworV0VCQ09SRV9FWFBP
UlQgQ0ZTdHJpbmdSZWYgKCp3a0dldFBsYXRmb3JtTmFtZUZvck5hdmlnYXRvcikodm9pZCk7CitX
RUJDT1JFX0VYUE9SVCBDRlN0cmluZ1JlZiAoKndrR2V0VmVuZG9yTmFtZUZvck5hdmlnYXRvciko
dm9pZCk7CisKK1dFQkNPUkVfRVhQT1JUIGJvb2wgKCp3a0lzT3B0aW1pemVkRnVsbHNjcmVlblN1
cHBvcnRlZCkodm9pZCk7CisKIFdFQkNPUkVfRVhQT1JUIGludCAoKndrRXhlcm5hbERldmljZVR5
cGVGb3JQbGF5ZXIpKEFWUGxheWVyICopOwogV0VCQ09SRV9FWFBPUlQgTlNTdHJpbmcgKigqd2tF
eGVybmFsRGV2aWNlRGlzcGxheU5hbWVGb3JQbGF5ZXIpKEFWUGxheWVyICopOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdC5oCmluZGV4IGQ1NjEyZWMzYjk5YjYxMWMxMzdmZmRjMDA2MGIwMzhk
MGYxNzI1OGUuLjhkMmQ4YzgwMzhhNTEyZGJmN2U0YWU1ZjgxNjEyMzk5MGE1MzJlMDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCkBAIC0xNTgsOCArMTU4LDYgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgZG9FbnRlckZ1bGxzY3JlZW4oKTsKIH07CiAKLWJvb2wgc3VwcG9ydHNQaWN0dXJl
SW5QaWN0dXJlKCk7Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0K
aW5kZXggY2RlZDY2NjYxMTUzYTI2ZTE4ZmVmYWQ1M2Y4ZDI0OWRhOGM4MmZkNy4uODI2YWYxM2E2
NTMxODFiMDcxMjliOWZhY2I4OTIyZWUzNDJmM2QyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5tbQpAQCAtMjYsOSArMjYsNyBAQAogCiAjaW1wb3J0ICJjb25maWcuaCIKIAotI2lmIFBM
QVRGT1JNKElPUykKLQotI2lmIEhBVkUoQVZLSVQpCisjaWYgUExBVEZPUk0oSU9TKSAmJiBIQVZF
KEFWS0lUKQogCiAjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIgog
CkBAIC01OSw3ICs1Nyw2IEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTGF5
ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3QsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfQ09OU1RB
TlQoQVZGb3VuZGF0aW9uLCBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0RmlsbCwgTlNT
dHJpbmcgKikKIAogU09GVF9MSU5LX0ZSQU1FV09SSyhBVktpdCkKLVNPRlRfTElOS19DTEFTUyhB
VktpdCwgQVZQaWN0dXJlSW5QaWN0dXJlQ29udHJvbGxlcikKIFNPRlRfTElOS19DTEFTUyhBVktp
dCwgQVZQbGF5ZXJDb250cm9sbGVyKQogU09GVF9MSU5LX0NMQVNTKEFWS2l0LCBBVlBsYXllclZp
ZXdDb250cm9sbGVyKQogU09GVF9MSU5LX0NMQVNTKEFWS2l0LCBBVlZhbHVlVGltaW5nKQpAQCAt
MTMwNSw3ICsxMzAyLDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgY28KIAogYm9vbCBXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6bWF5QXV0b21hdGljYWxseVNob3dWaWRlb1BpY3R1
cmVJblBpY3R1cmUoKSBjb25zdAogewotICAgIHJldHVybiBbbV9wbGF5ZXJDb250cm9sbGVyIGlz
UGxheWluZ10gJiYgbV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZVN0YW5kYXJkICYmIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOworICAgIHJldHVy
biBbbV9wbGF5ZXJDb250cm9sbGVyIGlzUGxheWluZ10gJiYgbV9tb2RlID09IEhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkICYmIHdrSXNPcHRpbWl6ZWRG
dWxsc2NyZWVuU3VwcG9ydGVkKCk7CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShzdGQ6OmZ1bmN0aW9uPHZvaWQo
Ym9vbCk+IGNhbGxiYWNrKQpAQCAtMTQ0MSwxNSArMTQzOCw0IEBAIHZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsCiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmZ1bGxzY3JlZW5Nb2RlQ2hh
bmdlZChtX21vZGUpOwogfQogCi0jZW5kaWYgLy8gSEFWRShBVktJVCkKLQotYm9vbCBXZWJDb3Jl
OjpzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKQotewotI2lmIFBMQVRGT1JNKElPUykgJiYgSEFW
RShBVktJVCkKLSAgICByZXR1cm4gW2dldEFWUGljdHVyZUluUGljdHVyZUNvbnRyb2xsZXJDbGFz
cygpIGlzUGljdHVyZUluUGljdHVyZVN1cHBvcnRlZF07Ci0jZWxzZQotICAgIHJldHVybiBmYWxz
ZTsKICNlbmRpZgotfQotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtXaW5kb3cubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1dpbmRvdy5tbQppbmRleCA5ODljZDc3ZmRhYzI0ZWJlNmM3
NDA3MzkyZjkyMGUyNjM4MWY5MGI5Li45ZDgzYzVkMGM2YjYxYjFkNDM2YjNiZjZjYjVkYzcyMDFk
ODYzODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1dp
bmRvdy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1dpbmRvdy5t
bQpAQCAtMjksNyArMjksNiBAQAogI2lmIFBMQVRGT1JNKElPUykKIAogI2ltcG9ydCAiTGVnYWN5
VGlsZUNhY2hlLmgiCi0jaW1wb3J0ICJQbGF0Zm9ybVNjcmVlbi5oIgogI2ltcG9ydCAiV0FLVmll
d0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0
ICJXZWJDb3JlVGhyZWFkUnVuLmgiCkBAIC02OCw3ICs2Nyw3IEBAIHN0YXRpYyBpZDxPcmllbnRh
dGlvblByb3ZpZGVyPiBnT3JpZW50YXRpb25Qcm92aWRlcjsKICAgICBfaG9zdExheWVyID0gW2xh
eWVyIHJldGFpbl07CiAKICAgICBfZnJhbWUgPSBbX2hvc3RMYXllciBmcmFtZV07Ci0gICAgX3Nj
cmVlblNjYWxlID0gc2NyZWVuU2NhbGVGYWN0b3IoKTsKKyAgICBfc2NyZWVuU2NhbGUgPSB3a0dl
dFNjcmVlblNjYWxlRmFjdG9yKCk7CiAgICAgCiAgICAgX3RpbGVDYWNoZSA9IG5ldyBMZWdhY3lU
aWxlQ2FjaGUoc2VsZik7CiAKQEAgLTg3LDcgKzg2LDcgQEAgc3RhdGljIGlkPE9yaWVudGF0aW9u
UHJvdmlkZXI+IGdPcmllbnRhdGlvblByb3ZpZGVyOwogICAgICAgICByZXR1cm4gbmlsOwogCiAg
ICAgX2ZyYW1lID0gZnJhbWU7Ci0gICAgX3NjcmVlblNjYWxlID0gc2NyZWVuU2NhbGVGYWN0b3Io
KTsKKyAgICBfc2NyZWVuU2NhbGUgPSB3a0dldFNjcmVlblNjYWxlRmFjdG9yKCk7CiAKICAgICBf
ZXhwb3NlZFNjcm9sbFZpZXdSZWN0ID0gQ0dSZWN0TnVsbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XS0dyYXBoaWNzLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL3dhay9XS0dyYXBoaWNzLm1tCmluZGV4IDJkZTQzZGYzZjJmODZmYjVhMGQ1
NmJiZWNlMjZlY2U4NGQyZDc5NGUuLjk5YzQxNjE5NWMyYmE0NTg1ODA0OTBjNTUwZTJlOTViNTFm
MDVkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0tHcmFw
aGljcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3Mu
bW0KQEAgLTMwLDcgKzMwLDcgQEAKIAogI2ltcG9ydCAiQ29yZUdyYXBoaWNzU1BJLmgiCiAjaW1w
b3J0ICJGb250Q2FzY2FkZS5oIgotI2ltcG9ydCAiUGxhdGZvcm1TY3JlZW4uaCIKKyNpbXBvcnQg
IldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgIldlYkNvcmVUaHJlYWQuaCIKICNp
bXBvcnQgPEltYWdlSU8vSW1hZ2VJTy5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgpA
QCAtMTEzLDkgKzExMyw5IEBAIENHSW1hZ2VSZWYgV0tHcmFwaGljc0NyZWF0ZUltYWdlRnJvbUJ1
bmRsZVdpdGhOYW1lKGNvbnN0IGNoYXIgKmltYWdlX2ZpbGUpCiAKICAgICBDR0ltYWdlUmVmIGlt
YWdlID0gbnVsbHB0cjsKICAgICBOU0RhdGEgKmltYWdlRGF0YSA9IG51bGxwdHI7Ci0gICAgZm9y
ICh1bnNpZ25lZCBzY2FsZUZhY3RvciA9IHNjcmVlblNjYWxlRmFjdG9yKCk7IHNjYWxlRmFjdG9y
ID4gMDsgLS1zY2FsZUZhY3RvcikgeworICAgIGZvciAodW5zaWduZWQgc2NhbGVGYWN0b3IgPSB3
a0dldFNjcmVlblNjYWxlRmFjdG9yKCk7IHNjYWxlRmFjdG9yID4gMDsgLS1zY2FsZUZhY3Rvcikg
ewogICAgICAgICBpbWFnZURhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZkZpbGU6aW1h
Z2VSZXNvdXJjZVBhdGgoaW1hZ2VfZmlsZSwgc2NhbGVGYWN0b3IpXTsKLSAgICAgICAgQVNTRVJU
KHNjYWxlRmFjdG9yICE9IHNjcmVlblNjYWxlRmFjdG9yKCkgfHwgaW1hZ2VEYXRhKTsKKyAgICAg
ICAgQVNTRVJUKHNjYWxlRmFjdG9yICE9IHdrR2V0U2NyZWVuU2NhbGVGYWN0b3IoKSB8fCBpbWFn
ZURhdGEpOwogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
fQpAQCAtMTMxLDcgKzEzMSw3IEBAIENHSW1hZ2VSZWYgV0tHcmFwaGljc0NyZWF0ZUltYWdlRnJv
bUJ1bmRsZVdpdGhOYW1lKGNvbnN0IGNoYXIgKmltYWdlX2ZpbGUpCiBzdGF0aWMgdm9pZCBXS0Ry
YXdQYXR0ZXJuQml0bWFwKHZvaWQgKmluZm8sIENHQ29udGV4dFJlZiBjKSAKIHsKICAgICBDR0lt
YWdlUmVmIGltYWdlID0gKENHSW1hZ2VSZWYpaW5mbzsKLSAgICBDR0Zsb2F0IHNjYWxlID0gc2Ny
ZWVuU2NhbGVGYWN0b3IoKTsKKyAgICBDR0Zsb2F0IHNjYWxlID0gd2tHZXRTY3JlZW5TY2FsZUZh
Y3RvcigpOwogICAgIENHQ29udGV4dERyYXdJbWFnZShjLCBDR1JlY3RNYWtlKDAsIDAsIENHSW1h
Z2VHZXRXaWR0aChpbWFnZSkgLyBzY2FsZSwgQ0dJbWFnZUdldEhlaWdodChpbWFnZSkgLyBzY2Fs
ZSksIGltYWdlKTsgICAgCiB9CiAKQEAgLTE1MCw3ICsxNTAsNyBAQCBDR1BhdHRlcm5SZWYgV0tD
cmVhdGVQYXR0ZXJuRnJvbUNHSW1hZ2UoQ0dJbWFnZVJlZiBpbWFnZVJlZikKICAgICAvLyByZXRh
aW4gaW1hZ2Ugc2luY2UgaXQncyBmcmVlZCBieSBvdXIgY2FsbGJhY2sKICAgICBDR0ltYWdlUmV0
YWluKGltYWdlUmVmKTsKIAotICAgIENHRmxvYXQgc2NhbGUgPSBzY3JlZW5TY2FsZUZhY3Rvcigp
OworICAgIENHRmxvYXQgc2NhbGUgPSB3a0dldFNjcmVlblNjYWxlRmFjdG9yKCk7CiAgICAgcmV0
dXJuIENHUGF0dGVybkNyZWF0ZSgodm9pZCopaW1hZ2VSZWYsIENHUmVjdE1ha2UoMCwgMCwgQ0dJ
bWFnZUdldFdpZHRoKGltYWdlUmVmKSAvIHNjYWxlLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlUmVm
KSAvIHNjYWxlKSwgQ0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0eSwgQ0dJbWFnZUdldFdpZHRoKGlt
YWdlUmVmKSAvIHNjYWxlLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlUmVmKSAvIHNjYWxlLCBrQ0dQ
YXR0ZXJuVGlsaW5nQ29uc3RhbnRTcGFjaW5nLCAxIC8qaXNDb2xvcmVkKi8sICZXS1BhdHRlcm5C
aXRtYXBDYWxsYmFja3MpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAppbmRleCA2MGI0ODkwNTczYWQ2YTg1ZDNiMGEz
NzNjYzhjYTI1ZmYzOWYwMjExLi4wNDZkZDZiNzc0MTE0MGQ4MGY3YTFmZjAyNjFlNDQxZWFmZTA2
MTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmgKQEAgLTI4LDYgKzI4LDEwIEBACiAKICNpbmNsdWRlIDxvYmpjL29iamMu
aD4KIAorI2lmIFBMQVRGT1JNKElPUykKKyNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
SU9TLmgiCisjZW5kaWYKKwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRlN0cmluZyAqIENGU3Ry
aW5nUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRk51bWJlciAqIENGTnVtYmVyUmVmOwog
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRkRpY3Rpb25hcnkgKiBDRkRpY3Rpb25hcnlSZWY7CkBA
IC0yMzMsNyArMjM3LDEwIEBAIGV4dGVybiBBWFVJRWxlbWVudFJlZiAoKndrQ3JlYXRlQVhVSUVs
ZW1lbnRSZWYpKGlkIGVsZW1lbnQpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAKICNpZiBQ
TEFURk9STShJT1MpCitleHRlcm4gQ0dTaXplICgqd2tHZXRTY3JlZW5TaXplKSh2b2lkKTsKK2V4
dGVybiBDR1NpemUgKCp3a0dldEF2YWlsYWJsZVNjcmVlblNpemUpKHZvaWQpOwogZXh0ZXJuIHZv
aWQgKCp3a1NldExheWVyQ29udGVudHNTY2FsZSkoQ0FMYXllciAqKTsKK2V4dGVybiBmbG9hdCAo
KndrR2V0U2NyZWVuU2NhbGVGYWN0b3IpKHZvaWQpOwogI2VuZGlmCiAKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IF9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9EeW5hbWljTGlua2Vy
U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvRHluYW1pY0xpbmtlclNQ
SS5oCmluZGV4IGRlNjI2YjExNmYwNTI4YjdlMWY3ZDUyYmY2YjJkY2MzNGFjMTZhYzIuLjQ2MGRh
OTE5YTRlOWE2Y2M4MDhmY2IyMzFhNDUzMjE5NmU1MzIwZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9EeW5hbWljTGlua2VyU1BJLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0R5bmFtaWNMaW5rZXJTUEkuaApAQCAtMzUsMTEg
KzM1LDggQEAKICNlbHNlCiAKICNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl8zXzAgMHgwMDAzMDAw
MAotI2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzRfMiAweDAwMDQwMjAwCi0jZGVmaW5lIERZTERf
SU9TX1ZFUlNJT05fNV8wIDB4MDAwNTAwMDAKLSNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl82XzAg
MHgwMDA2MDAwMAotI2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzdfMCAweDAwMDcwMDAwCi0jZGVm
aW5lIERZTERfSU9TX1ZFUlNJT05fOV8wIDB4MDAwOTAwMDAKKyNkZWZpbmUgRFlMRF9JT1NfVkVS
U0lPTl82XzAgMHgwMDA2MDAwMDsKKyNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl83XzAgMHgwMDA3
MDAwMDsKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9pb3MvTW9iaWxlR2VzdGFsdFNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lv
cy9Nb2JpbGVHZXN0YWx0U1BJLmgKaW5kZXggMmQ5ZWJkZmJjNTAxMGYwMjlmZjYwY2Q0Mjc0ZGNm
YjVmZmRmZmI1Yi4uMDM2YTQ0NzEzNDc2NjVjMWEwZDQ3OWFhNzNiMTI5ODZmNGRhODY4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJ
LmgKQEAgLTQxLDIwICs0MSw2IEBACiBFWFRFUk5fQyBjb25zdCBDRlN0cmluZ1JlZiBrTUdRQXBw
bGVJbnRlcm5hbEluc3RhbGxDYXBhYmlsaXR5ID0gQ0ZTVFIoImFwcGxlLWludGVybmFsLWluc3Rh
bGwiKTsKIEVYVEVSTl9DIGNvbnN0IENGU3RyaW5nUmVmIGtNR1FNYWluU2NyZWVuUGl0Y2ggPSBD
RlNUUigibWFpbi1zY3JlZW4tcGl0Y2giKTsKIEVYVEVSTl9DIGNvbnN0IENGU3RyaW5nUmVmIGtN
R1FNYWluU2NyZWVuU2NhbGUgPSBDRlNUUigibWFpbi1zY3JlZW4tc2NhbGUiKTsKLUVYVEVSTl9D
IGNvbnN0IENGU3RyaW5nUmVmIGtNR1FpUGFkQ2FwYWJpbGl0eSA9IENGU1RSKCJpcGFkIik7Ci1F
WFRFUk5fQyBjb25zdCBDRlN0cmluZ1JlZiBrTUdRRGV2aWNlTmFtZSA9IENGU1RSKCJEZXZpY2VO
YW1lIik7Ci1FWFRFUk5fQyBjb25zdCBDRlN0cmluZ1JlZiBrTUdRRGV2aWNlQ2xhc3NOdW1iZXIg
PSBDRlNUUigiRGV2aWNlQ2xhc3NOdW1iZXIiKTsKLQotdHlwZWRlZiBlbnVtIHsKLSAgICBNR0Rl
dmljZUNsYXNzSW52YWxpZCA9IC0xLAotICAgIC8qIDAgaXMgaW50ZW50aW9uYWxseSBub3QgaW4g
dGhpcyBlbnVtICovCi0gICAgTUdEZXZpY2VDbGFzc2lQaG9uZSAgPSAxLAotICAgIE1HRGV2aWNl
Q2xhc3NpUG9kICAgID0gMiwKLSAgICBNR0RldmljZUNsYXNzaVBhZCAgICA9IDMsCi0gICAgTUdE
ZXZpY2VDbGFzc0FwcGxlVFYgPSA0LAotICAgIC8qIDUgaXMgaW50ZW50aW9uYWxseSBub3QgaW4g
dGhpcyBlbnVtICovCi0gICAgTUdEZXZpY2VDbGFzc1dhdGNoICAgPSA2LAotfSBNR0RldmljZUNs
YXNzOwogCiAjZW5kaWYKIApAQCAtNjQsMTQgKzUwLDYgQEAgRVhURVJOX0MgQ0ZUeXBlUmVmIE1H
Q29weUFuc3dlcihDRlN0cmluZ1JlZiBxdWVzdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIG9wdGlvbnMp
OwogRVhURVJOX0MgYm9vbCBNR0dldEJvb2xBbnN3ZXIoQ0ZTdHJpbmdSZWYgcXVlc3Rpb24pOwog
I2VuZGlmCiAKLSNpZm5kZWYgTUdHZXRTSW50MzJBbnN3ZXIKLUVYVEVSTl9DIFNJbnQzMiBNR0dl
dFNJbnQzMkFuc3dlcihDRlN0cmluZ1JlZiBxdWVzdGlvbiwgU0ludDMyIGRlZmF1bHRWYWx1ZSk7
Ci0jZW5kaWYKLQotI2lmbmRlZiBNR0dldEZsb2F0MzJBbnN3ZXIKLUVYVEVSTl9DIEZsb2F0MzIg
TUdHZXRGbG9hdDMyQW5zd2VyKENGU3RyaW5nUmVmIHF1ZXN0aW9uLCBGbG9hdDMyIGRlZmF1bHRW
YWx1ZSk7Ci0jZW5kaWYKLQogI2VuZGlmCiAKICNlbmRpZiAvLyBNb2JpbGVHZXN0YWx0U1BJX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvVUlDb2xvclNQSS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9VSUNvbG9yU1BJLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjk4MTRhNTY4ZTAyZmQ2YzBlZTE5N2I4ZjllY2RhOGE2ODRiNWI2NwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvVUlDb2xvclNQSS5oCkBAIC0w
LDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwor
I2ltcG9ydCA8VUlLaXQvVUlJbnRlcmZhY2VfUHJpdmF0ZS5oPgorCisjZWxzZQorCisjaW1wb3J0
IDxVSUtpdC9VSUNvbG9yLmg+CisKK0BpbnRlcmZhY2UgVUlDb2xvciAoKQorCisrIChVSUNvbG9y
ICopc3lzdGVtQmx1ZUNvbG9yOworKyAoVUlDb2xvciAqKXN5c3RlbUdyYXlDb2xvcjsKKysgKFVJ
Q29sb3IgKilzeXN0ZW1HcmVlbkNvbG9yOworKyAoVUlDb2xvciAqKXN5c3RlbU9yYW5nZUNvbG9y
OworKyAoVUlDb2xvciAqKXN5c3RlbVBpbmtDb2xvcjsKKysgKFVJQ29sb3IgKilzeXN0ZW1SZWRD
b2xvcjsKKysgKFVJQ29sb3IgKilzeXN0ZW1ZZWxsb3dDb2xvcjsKKworQGVuZAorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2NmMjBmOTg3OTcwNzNkNmYxYmJkYjcwOTk1MzVlNTFjZDZkYjJh
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2
MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0KLSNp
bXBvcnQgPFVJS2l0L1VJQXBwbGljYXRpb25fUHJpdmF0ZS5oPgotI2ltcG9ydCA8VUlLaXQvVUlJ
bnRlcmZhY2VfUHJpdmF0ZS5oPgotI2ltcG9ydCA8VUlLaXQvVUlTY3JlZW5fUHJpdmF0ZS5oPgot
Ci0jZWxzZQotCi0jaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgotCi1AaW50ZXJmYWNlIFVJQXBwbGlj
YXRpb24gKCkKLQotLSAoQk9PTClfaXNDbGFzc2ljOwotCi1AZW5kCi0KLUBpbnRlcmZhY2UgVUlD
b2xvciAoKQotCi0rIChVSUNvbG9yICopc3lzdGVtQmx1ZUNvbG9yOwotKyAoVUlDb2xvciAqKXN5
c3RlbUdyYXlDb2xvcjsKLSsgKFVJQ29sb3IgKilzeXN0ZW1HcmVlbkNvbG9yOwotKyAoVUlDb2xv
ciAqKXN5c3RlbU9yYW5nZUNvbG9yOwotKyAoVUlDb2xvciAqKXN5c3RlbVBpbmtDb2xvcjsKLSsg
KFVJQ29sb3IgKilzeXN0ZW1SZWRDb2xvcjsKLSsgKFVJQ29sb3IgKilzeXN0ZW1ZZWxsb3dDb2xv
cjsKLQotQGVuZAotCi1AaW50ZXJmYWNlIFVJU2NyZWVuICgpCi0KLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgQ0dSZWN0IF9yZWZlcmVuY2VCb3VuZHM7Ci0KLUBlbmQKLQotI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggNWVjZjgx
ZGNhMTg4ZjJhMmExNmY0ZDhmZDNhMDI1ZTFlOTYzYjk2NS4uOTk2NzljOGEyZDNiYTNkM2NiMjQz
NjFjZDIyNWJmMDg0ZTM1ODVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5tbQpAQCAtNTYsNyArNTYsNyBAQAogI2ltcG9ydCAiUmVuZGVyVGhlbWVJT1MuaCIK
ICNpbXBvcnQgIlJlbmRlclZpZXcuaCIKICNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCi0jaW1wb3J0
ICJVSUtpdFNQSS5oIgorI2ltcG9ydCAiVUlDb2xvclNQSS5oIgogI2ltcG9ydCAiVXNlckFnZW50
U2NyaXB0cy5oIgogI2ltcG9ydCAiVXNlckFnZW50U3R5bGVTaGVldHMuaCIKICNpbXBvcnQgIldl
YkNvcmVUaHJlYWRSdW4uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL01pc2MvV2Vi
VUlLaXRTdXBwb3J0Lm1tIGIvU291cmNlL1dlYktpdC9pb3MvTWlzYy9XZWJVSUtpdFN1cHBvcnQu
bW0KaW5kZXggNzM5MzlmMzVkMWIyNGE4YzRjOTlmZWFiZTkyZDhjZWEyMjQ2MDRhNi4uMDJjOTdh
NjNkYWNiMTE3MjRiM2FkMmMxZjU2MzZlYzU1YmE0MzlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9pb3MvTWlzYy9XZWJVSUtpdFN1cHBvcnQubW0KKysrIGIvU291cmNlL1dlYktpdC9pb3Mv
TWlzYy9XZWJVSUtpdFN1cHBvcnQubW0KQEAgLTMzLDEwICszMyw4IEBACiAjaW1wb3J0ICJXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbXBvcnQgIldlYlN5c3RlbUludGVyZmFjZS5oIgogI2lt
cG9ydCAiV2ViVmlld1ByaXZhdGUuaCIKLSNpbXBvcnQgPFdlYkNvcmUvRHluYW1pY0xpbmtlclNQ
SS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXRoVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9UZXh0QnJlYWtJdGVyYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVUaHJlYWRTeXN0ZW1J
bnRlcmZhY2UuaD4KQEAgLTQ4LDcgKzQ2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IHN0YXRpYyBpbmxpbmUgYm9vbCBsaW5rZWRPbk9yQWZ0ZXJJT1M1KCkKIHsKLSAgICBzdGF0aWMg
Ym9vbCBzX2xpbmtlZE9uT3JBZnRlcklPUzUgPSBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9u
KCkgPj0gRFlMRF9JT1NfVkVSU0lPTl81XzA7CisgICAgc3RhdGljIGJvb2wgc19saW5rZWRPbk9y
QWZ0ZXJJT1M1ID0gaW9zRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JBZnRlclZlcnNpb24od2tJT1NT
eXN0ZW1WZXJzaW9uXzVfMCk7CiAgICAgcmV0dXJuIHNfbGlua2VkT25PckFmdGVySU9TNTsKIH0K
IApAQCAtODUsNyArODMsNyBAQCB2b2lkIFdlYktpdFNldElzQ2xhc3NpYyhCT09MIGZsYWcpCiAK
IGZsb2F0IFdlYktpdEdldE1pbmltdW1ab29tRm9udFNpemUodm9pZCkKIHsKLSAgICByZXR1cm4g
U2V0dGluZ3M6OmRlZmF1bHRNaW5pbXVtWm9vbUZvbnRTaXplKCk7CisgICAgcmV0dXJuIFdLR2V0
TWluaW11bVpvb21Gb250U2l6ZSgpOwogfQogCiBpbnQgV2ViS2l0R2V0TGFzdExpbmVCcmVha0lu
QnVmZmVyKFVDaGFyICpjaGFyYWN0ZXJzLCBpbnQgcG9zaXRpb24sIGludCBsZW5ndGgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJ
T1MubW0KaW5kZXggNGU0MGFiNTI0YzViZmZlZGRlNjY1YzExODA0ZjE1NjlhNzYzOTQwMC4uYjlj
ZjEzOTc4NGU2ZjUyMGU0ZWNhODY5ZDRiMmI0OWYzZmRjM2Q4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5tbQpAQCAt
NTQsNyArNTQsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSW50UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob2RlLmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckJveC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9SZW5kZXJPYmplY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzSU9TLmg+CkBAIC02Miw2ICs2MSwxMCBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9XQUtXaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZE1lc3NhZ2UuaD4K
IAorI2lmIFBMQVRGT1JNKElPUykKKyNpbmNsdWRlICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIK
KyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogdm9pZCBXZWJDaHJvbWVDbGll
bnRJT1M6OnNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByKQpAQCAtMTcx
LDcgKzE3NCw3IEBAIHN0YXRpYyBpbmxpbmUgTlNEaWN0aW9uYXJ5KiBkaWN0aW9uYXJ5Rm9yVmll
d3BvcnRBcmd1bWVudHMoY29uc3QgV2ViQ29yZTo6Vmlld3BvCiAKIEZsb2F0U2l6ZSBXZWJDaHJv
bWVDbGllbnRJT1M6OnNjcmVlblNpemUoKSBjb25zdAogewotICAgIHJldHVybiBGbG9hdFNpemUo
c2NyZWVuU2l6ZSgpKTsKKyAgICByZXR1cm4gRmxvYXRTaXplKFdLR2V0U2NyZWVuU2l6ZSgpKTsK
IH0KIAogRmxvYXRTaXplIFdlYkNocm9tZUNsaWVudElPUzo6YXZhaWxhYmxlU2NyZWVuU2l6ZSgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJT
eXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJT
eXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggMTRjMWJjNmM2YjYxZWU1YzZjYzg0NjYxNWM0ODlkM2Fk
NGU0YzEzMi4uOGMyMDViNDZiM2YyOTkxNWQ3MGUwYTJiYjlhM2EwZmQyZjU1ZTNkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVy
ZmFjZS5tbQpAQCAtMTExLDYgKzExMSwxNiBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKHZvaWQpCiAgICAgSU5JVChRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlKTsKICNlbmRpZgog
CisjaWYgUExBVEZPUk0oSU9TKQorICAgIElOSVQoRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JBZnRl
cklPU1ZlcnNpb24pOworICAgIElOSVQoR2V0RGV2aWNlQ2xhc3MpOworICAgIElOSVQoR2V0U2Ny
ZWVuU2l6ZSk7CisgICAgSU5JVChHZXRBdmFpbGFibGVTY3JlZW5TaXplKTsKKyAgICBJTklUKEdl
dFNjcmVlblNjYWxlRmFjdG9yKTsKKyAgICBJTklUKElzR0IxODAzMENvbXBsaWFuY2VSZXF1aXJl
ZCk7CisgICAgSU5JVChJc09wdGltaXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQpOworI2VuZGlmCisK
ICNpZiAhUExBVEZPUk0oSU9TKQogICAgIElOSVQoRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZv
cmVTbm93TGVvcGFyZCk7CiAgICAgSU5JVChDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxh
eU5hbWUpOwpAQCAtMTYwLDYgKzE3MCwxNCBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKHZvaWQpCiAKICAgICBJTklUKENGVVJMUmVxdWVzdEFsbG93QWxsUG9zdENhY2hpbmcpOwog
CisjaWYgUExBVEZPUk0oSU9TKQorICAgIElOSVQoR2V0VXNlckFnZW50KTsKKyAgICBJTklUKEdl
dERldmljZU5hbWUpOworICAgIElOSVQoR2V0T1NOYW1lRm9yVXNlckFnZW50KTsKKyAgICBJTklU
KEdldFBsYXRmb3JtTmFtZUZvck5hdmlnYXRvcik7CisgICAgSU5JVChHZXRWZW5kb3JOYW1lRm9y
TmF2aWdhdG9yKTsKKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBJTklUKE5TRWxh
c3RpY0RlbHRhRm9yVGltZURlbHRhKTsKICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yUmVib3Vu
ZERlbHRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmlu
ZGV4IGVjNzE3YmMwZjVjMTU5NTc5YWZhNWVkODA0ODAxNDgwMzUwYmQ4ZDMuLmUwMmE5MThkZTIz
M2E3Yzk1MTlmZDRhMjBjODUyMDZjZjdkYzExOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNTksNyArNTksNiBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgPEF1ZGlvVG9vbGJveC9BdWRp
b1Nlc3Npb24uaD4KLSNpbXBvcnQgPFdlYkNvcmUvRGV2aWNlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0dyYXBoaWNzQ29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbWFnZVNvdXJjZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkTWVzc2FnZS5oPgpAQCAtMzk3LDcgKzM5Niw3IEBA
IHB1YmxpYzoKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVh
ZCgpOwogICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogI2Vsc2UKLSAgICBi
b29sIGFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSBXZWJDb3JlOjpkZXZpY2VDbGFzcygpID09
IE1HRGV2aWNlQ2xhc3NpUGFkOworICAgIGJvb2wgYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayA9
IFdLR2V0RGV2aWNlQ2xhc3MoKSA9PSBXS0RldmljZUNsYXNzaVBhZDsKICAgICBib29sIHJlcXVp
cmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgPSAhYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazsKICNl
bmRpZgogICAgIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKCk7CkBAIC01NzcsNyArNTc2LDcg
QEAgcHVibGljOgogICAgICAgICBAIiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
S2l0TmV0d29ya0ludGVyZmFjZU5hbWVQcmVmZXJlbmNlS2V5LAogI2VuZGlmCiAjaWYgRU5BQkxF
KElPU19URVhUX0FVVE9TSVpJTkcpCi0gICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoRmxvYXQ6
U2V0dGluZ3M6OmRlZmF1bHRNaW5pbXVtWm9vbUZvbnRTaXplKCldLCBXZWJLaXRNaW5pbXVtWm9v
bUZvbnRTaXplUHJlZmVyZW5jZUtleSwKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhGbG9h
dDpXS0dldE1pbmltdW1ab29tRm9udFNpemUoKV0sIFdlYktpdE1pbmltdW1ab29tRm9udFNpemVQ
cmVmZXJlbmNlS2V5LAogI2VuZGlmCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoTG9uZ0xv
bmc6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6Om5vUXVvdGEoKV0sIFdlYktpdEFwcGxpY2F0aW9u
Q2FjaGVUb3RhbFF1b3RhLAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aExvbmdMb25nOkFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3RhKCldLCBXZWJLaXRBcHBsaWNhdGlvbkNhY2hl
RGVmYXVsdE9yaWdpblF1b3RhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IDFhNGY3NTIxMTY1OTk4ODRlZmQyNjQ1MzE4YTRjNWNjMTQ3YzEyODcuLjkxZDhiYzQ3MTcyYTFm
MWMzZjQ5YTYxM2UwYmEzMjQ3MWM3MmI5MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KQEAgLTI0Myw3ICsyNDMsNiBAQAogI2ltcG9ydCAiV2ViU3RvcmFnZU1hbmFnZXJQcml2
YXRlLmgiCiAjaW1wb3J0ICJXZWJVSUtpdFN1cHBvcnQuaCIKICNpbXBvcnQgIldlYlZpc2libGVQ
b3NpdGlvbi5oIgotI2ltcG9ydCA8V2ViQ29yZS9EeW5hbWljTGlua2VyU1BJLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udENhY2hlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KQEAgLTI1MSw3ICsyNTAsNiBAQAogI2lt
cG9ydCA8V2ViQ29yZS9MZWdhY3lUaWxlQ2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvTW9iaWxl
R2VzdGFsdFNQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RhdGVOb3RpZmllci5oPgot
I2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3NJT1MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU1FMaXRlRGF0YWJh
c2VUcmFja2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NtYXJ0UmVwbGFjZS5oPgpAQCAtODUyLDcg
Kzg1MCw3IEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93RGlzcGxheUFuZFJ1bm5pbmdPZkluc2Vj
dXJlQ29udGVudCgpCiBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRp
YVBsYXliYWNrKCkKIHsKICNpZiBQTEFURk9STShJT1MpCi0gICAgc3RhdGljIGJvb2wgc2hvdWxk
QWxsb3dQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9IGR5bGRfZ2V0X3Byb2dyYW1fc2Rr
X3ZlcnNpb24oKSA+PSBEWUxEX0lPU19WRVJTSU9OXzlfMDsKKyAgICBzdGF0aWMgYm9vbCBzaG91
bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrID0gaW9zRXhlY3V0YWJsZVdhc0xp
bmtlZE9uT3JBZnRlclZlcnNpb24od2tJT1NTeXN0ZW1WZXJzaW9uXzlfMCk7CiAgICAgcmV0dXJu
IHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2s7CiAjZWxzZQogICAgIHJl
dHVybiBmYWxzZTsKQEAgLTU0MDAsNyArNTM5OCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0
IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9s
CiAgICAgaWYgKFdBS1dpbmRvdyAqd2luZG93ID0gW3NlbGYgd2luZG93XSkKICAgICAgICAgc2Nh
bGVGYWN0b3IgPSBbd2luZG93IHNjcmVlblNjYWxlXTsKICAgICBlbHNlCi0gICAgICAgIHNjYWxl
RmFjdG9yID0gc2NyZWVuU2NhbGVGYWN0b3IoKTsKKyAgICAgICAgc2NhbGVGYWN0b3IgPSBXS0dl
dFNjcmVlblNjYWxlRmFjdG9yKCk7CiAKICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0RGV2aWNlU2Nh
bGVGYWN0b3Ioc2NhbGVGYWN0b3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vaW9zL0FjY2Vzc2liaWxpdHlJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2lv
cy9BY2Nlc3NpYmlsaXR5SU9TLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1YWZi
YjRhYTMyYjg2ZjAwNGM5NjEyZDFlMzkwMDUxYzBmNWZmNGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vaW9zL0Fj
Y2Vzc2liaWxpdHlJT1MuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0KLU9CSkNfQ0xBU1MgTlNEYXRhOwotT0JK
Q19DTEFTUyBOU1VVSUQ7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1OU0RhdGEgKm5ld0FjY2Vz
c2liaWxpdHlSZW1vdGVUb2tlbihOU1VVSUQgKik7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vaW9zL0FjY2Vzc2liaWxpdHlJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9pb3MvQWNjZXNzaWJpbGl0eUlPUy5tbQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDAwNGFiOTNjM2JiZmIyMDU2NjcyNTUxYjA4YTMy
MDM1YzYxMGIzNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9pb3MvQWNjZXNzaWJpbGl0eUlPUy5tbQorKysgL2Rl
di9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIK
LSNpbXBvcnQgIkFjY2Vzc2liaWxpdHlJT1MuaCIKLQotI2lmIFBMQVRGT1JNKElPUykKLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLU5TRGF0YSAqbmV3QWNjZXNzaWJpbGl0eVJlbW90ZVRva2VuKE5T
VVVJRCAqdXVpZCkKLXsKLSAgICBpZiAoIXV1aWQpCi0gICAgICAgIHJldHVybiBuaWw7Ci0gICAg
cmV0dXJuIFtOU0tleWVkQXJjaGl2ZXIgYXJjaGl2ZWREYXRhV2l0aFJvb3RPYmplY3Q6QHsgQCJh
eC1waWQiIDogQChnZXRwaWQoKSksIEAiYXgtdXVpZCIgOiBbdXVpZCBVVUlEU3RyaW5nXSwgQCJh
eC1yZWdpc3RlciIgOiBAWUVTIH1dOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IDdjODkzYmM5YTQ2MzkxNTU4YmRhY2IxMzZhZDRj
ZmQ1YzhhZjIwMmEuLjFjMDhhZDIwMTU5Njk0MDZiODgyZDFiMWZjM2UyMGZkN2NlMjI3NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25z
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMu
aApAQCAtNTUsNyArNTUsNyBAQAogI2RlZmluZSBERUZBVUxUX1RFWFRfQVJFQVNfQVJFX1JFU0la
QUJMRSBmYWxzZQogI2RlZmluZSBERUZBVUxUX0pBVkFTQ1JJUFRfQ0FOX09QRU5fV0lORE9XU19B
VVRPTUFUSUNBTExZIGZhbHNlCiAjZGVmaW5lIERFRkFVTFRfU0hPVUxEX1JFU1BFQ1RfSU1BR0Vf
T1JJRU5UQVRJT04gdHJ1ZQotI2RlZmluZSBERUZBVUxUX01JTklNVU1fRk9OVF9aT09NX1NJWkUg
V2ViQ29yZTo6U2V0dGluZ3M6OmRlZmF1bHRNaW5pbXVtWm9vbUZvbnRTaXplKCkKKyNkZWZpbmUg
REVGQVVMVF9NSU5JTVVNX0ZPTlRfWk9PTV9TSVpFIFdLR2V0TWluaW11bVpvb21Gb250U2l6ZSgp
CiAjZGVmaW5lIERFRkFVTFRfUEFTU1dPUkRfRUNIT19FTkFCTEVEIHRydWUKICNkZWZpbmUgREVG
QVVMVF9BTExPV1NfSU5MSU5FX01FRElBX1BMQVlCQUNLIGZhbHNlCiAjZGVmaW5lIERFRkFVTFRf
SU5MSU5FX01FRElBX1BMQVlCQUNLX1JFUVVJUkVTX1BMQVlTX0lOTElORV9BVFRSSUJVVEUgdHJ1
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwCmluZGV4
IGNjMjRkZDg2NzkwMmVmODM1MGRlYjVkMzUyMWY0NmJlZWFlZTFmMTcuLmIxZDRlM2UwYmFhYWM0
OTVhYjBiZjFlYzg5ZDUzOTQ5NjIxN2IwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9UZXh0RW5jb2RpbmdSZWdpc3RyeS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNl
SU9TLmg+CisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCAxOGRlOWJjY2U5Mjk1ZjRiYjlhNWJmYzMyODA1YWQxYjU2NDg3NTNiLi41Yzlm
NmM0NzJkZjIzMTdlYTJiMWQ5ZGRhNWU1ZjUwYjhkYjRlMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMTA0LDcgKzEwNCw2IEBA
CiAjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCIKICNpbXBvcnQgPFVJ
S2l0L1VJQXBwbGljYXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29yZUdyYXBoaWNzU1BJLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL0R5bmFtaWNMaW5rZXJTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RnJhbWVMb2FkZXJUeXBlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1F1YXJ0ekNvcmVTUEkuaD4KQEAgLTI4MSw3ICsyODAsNyBAQCBz
dGF0aWMgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbigpCiAKIHN0YXRpYyBib29sIHNob3VsZEFs
bG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2soKQogewotICAgIHN0YXRpYyBib29sIHNo
b3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBkeWxkX2dldF9wcm9ncmFt
X3Nka192ZXJzaW9uKCkgPj0gRFlMRF9JT1NfVkVSU0lPTl85XzA7CisgICAgc3RhdGljIGJvb2wg
c2hvdWxkQWxsb3dQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9IGlvc0V4ZWN1dGFibGVX
YXNMaW5rZWRPbk9yQWZ0ZXJWZXJzaW9uKHdrSU9TU3lzdGVtVmVyc2lvbl85XzApOwogICAgIHJl
dHVybiBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrOwogfQogCkBAIC0x
MTM3LDcgKzExMzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYXJlRXNzZW50aWFsbHlFcXVhbEFz
RmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKIAogLSAoUGFzc1JlZlB0cjxXZWJLaXQ6OlZpZXdTbmFw
c2hvdD4pX3Rha2VWaWV3U25hcHNob3QKIHsKLSAgICBmbG9hdCBkZXZpY2VTY2FsZSA9IFdlYkNv
cmU6OnNjcmVlblNjYWxlRmFjdG9yKCk7CisgICAgZmxvYXQgZGV2aWNlU2NhbGUgPSBXS0dldFNj
cmVlblNjYWxlRmFjdG9yKCk7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHNuYXBzaG90U2l6ZShz
ZWxmLmJvdW5kcy5zaXplKTsKICAgICBzbmFwc2hvdFNpemUuc2NhbGUoZGV2aWNlU2NhbGUsIGRl
dmljZVNjYWxlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCmluZGV4IDMzNzJkMDlmN2Y1YzQ1
NjRlMDkzZGFmOTA0MjRiN2Q2ZDE5MDAzMGQuLmY2NTdlMjQyNzRmNWIwMmQ0NGFjMWI1MmI1YTBl
ODcxMThmNDM1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTQwLDcgKzQwLDcgQEAK
IAogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgIlVJS2l0U1BJLmgiCi0jaW1wb3J0IDxXZWJD
b3JlL0RldmljZS5oPgorI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TLmgiCiAjZW5k
aWYKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTGF6eUluaXRpYWxpemVkIHsKQEAgLTEw
OSw3ICsxMDksNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPUykKICAgICBfcmVxdWlyZXNV
c2VyQWN0aW9uRm9yTWVkaWFQbGF5YmFjayA9IFlFUzsKICAgICBfYWxsb3dzUGljdHVyZUluUGlj
dHVyZU1lZGlhUGxheWJhY2sgPSBZRVM7Ci0gICAgX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2sg
PSBXZWJDb3JlOjpkZXZpY2VDbGFzcygpID09IE1HRGV2aWNlQ2xhc3NpUGFkOworICAgIF9hbGxv
d3NJbmxpbmVNZWRpYVBsYXliYWNrID0gV0tHZXREZXZpY2VDbGFzcygpID09IFdLRGV2aWNlQ2xh
c3NpUGFkOwogICAgIF9pbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJp
YnV0ZSA9ICFfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazsKICAgICBfbWVkaWFEYXRhTG9hZHNB
dXRvbWF0aWNhbGx5ID0gTk87CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5tbQppbmRleCBkZDBiZjA0M2IwNGZiMzA5M2IwOTg1NjAxYjFmMDJi
Mzg5MmVhMzdlLi5iZDM0ZDQ1NjQ1NWIwMTQ3ODEwMmNlNmY4YTMxODE2YTdjMzcyMGFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC0yOSw3
ICsyOSw2IEBACiAjaWYgUExBVEZPUk0oSU9TKQogCiAjaW1wb3J0ICJBUElQYWdlQ29uZmlndXJh
dGlvbi5oIgotI2ltcG9ydCAiQWNjZXNzaWJpbGl0eUlPUy5oIgogI2ltcG9ydCAiQXBwbGljYXRp
b25TdGF0ZVRyYWNrZXIuaCIKICNpbXBvcnQgIlBhZ2VDbGllbnRJbXBsSU9TLmgiCiAjaW1wb3J0
ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCkBAIC00NSw2ICs0NCw3IEBACiAj
aW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViRnJhbWVQcm94eS5oIgog
I2ltcG9ydCAiV2ViS2l0MkluaXRpYWxpemUuaCIKKyNpbXBvcnQgIldlYktpdFN5c3RlbUludGVy
ZmFjZUlPUy5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
UG9vbC5oIgogI2ltcG9ydCAiV2ViU3lzdGVtSW50ZXJmYWNlLmgiCkBAIC01Myw3ICs1Myw2IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0
b3JPdmVybGF5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1F1YXJ0ekNvcmVT
UEkuaD4KICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0
ci5oPgpAQCAtMTg5LDcgKzE4OCw3IEBAIHByaXZhdGU6CiAKICAgICBfcGFnZSA9IHByb2Nlc3NQ
b29sLmNyZWF0ZVdlYlBhZ2UoKl9wYWdlQ2xpZW50LCBXVEY6Om1vdmUoY29uZmlndXJhdGlvbikp
OwogICAgIF9wYWdlLT5pbml0aWFsaXplV2ViUGFnZSgpOwotICAgIF9wYWdlLT5zZXRJbnRyaW5z
aWNEZXZpY2VTY2FsZUZhY3RvcihzY3JlZW5TY2FsZUZhY3RvcihbVUlTY3JlZW4gbWFpblNjcmVl
bl0pKTsKKyAgICBfcGFnZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoV0tHZXRTY2Fs
ZUZhY3RvckZvclNjcmVlbihbVUlTY3JlZW4gbWFpblNjcmVlbl0pKTsKICAgICBfcGFnZS0+c2V0
VXNlRml4ZWRMYXlvdXQodHJ1ZSk7CiAgICAgX3BhZ2UtPnNldERlbGVnYXRlc1Njcm9sbGluZyh0
cnVlKTsKIApAQCAtNDIwLDcgKzQxOSw3IEBAIHByaXZhdGU6CiAtICh2b2lkKV91cGRhdGVGb3JT
Y3JlZW46KFVJU2NyZWVuICopc2NyZWVuCiB7CiAgICAgQVNTRVJUKHNjcmVlbik7Ci0gICAgX3Bh
Z2UtPnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKHNjcmVlblNjYWxlRmFjdG9yKHNjcmVl
bikpOworICAgIF9wYWdlLT5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcihXS0dldFNjYWxl
RmFjdG9yRm9yU2NyZWVuKHNjcmVlbikpOwogICAgIFtzZWxmIF9hY2Nlc3NpYmlsaXR5UmVnaXN0
ZXJVSVByb2Nlc3NUb2tlbnNdOwogfQogCkBAIC00MzAsMjMgKzQyOSwxNSBAQCBwcml2YXRlOgog
ICAgIFtzZWxmIF9hY2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnNdOwogfQogCi1z
dGF0aWMgdm9pZCBzdG9yZUFjY2Vzc2liaWxpdHlSZW1vdGVDb25uZWN0aW9uSW5mb3JtYXRpb24o
aWQgZWxlbWVudCwgcGlkX3QgcGlkLCBtYWNoX3BvcnRfdCBzZW5kUG9ydCwgTlNVVUlEICp1dWlk
KQotewotICAgIC8vIFRoZSBhY2Nlc3NpYmlsaXR5IGJ1bmRsZSBuZWVkcyB0byBrbm93IHRoZSB1
dWlkLCBwaWQgYW5kIG1hY2hfcG9ydCB0aGF0IHRoaXMgb2JqZWN0IHdpbGwgcmVmZXIgdG8uCi0g
ICAgb2JqY19zZXRBc3NvY2lhdGVkT2JqZWN0KGVsZW1lbnQsICh2b2lkKilbQCJheC11dWlkIiBo
YXNoXSwgdXVpZCwgT0JKQ19BU1NPQ0lBVElPTl9SRVRBSU5fTk9OQVRPTUlDKTsKLSAgICBvYmpj
X3NldEFzc29jaWF0ZWRPYmplY3QoZWxlbWVudCwgKHZvaWQqKVtAImF4LXBpZCIgaGFzaF0sIEAo
cGlkKSwgT0JKQ19BU1NPQ0lBVElPTl9SRVRBSU5fTk9OQVRPTUlDKTsKLSAgICBvYmpjX3NldEFz
c29jaWF0ZWRPYmplY3QoZWxlbWVudCwgKHZvaWQqKVtAImF4LW1hY2hwb3J0IiBoYXNoXSwgQChz
ZW5kUG9ydCksIE9CSkNfQVNTT0NJQVRJT05fUkVUQUlOX05PTkFUT01JQyk7Ci19Ci0KIC0gKHZv
aWQpX2FjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2VucwogewotICAgIGF1dG8gdXVp
ZCA9IFtOU1VVSUQgVVVJRF07Ci0gICAgTlNEYXRhICpyZW1vdGVFbGVtZW50VG9rZW4gPSBuZXdB
Y2Nlc3NpYmlsaXR5UmVtb3RlVG9rZW4odXVpZCk7CisgICAgUmV0YWluUHRyPENGVVVJRFJlZj4g
dXVpZCA9IGFkb3B0Q0YoQ0ZVVUlEQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQpKTsKKyAgICBO
U0RhdGEgKnJlbW90ZUVsZW1lbnRUb2tlbiA9IFdLQVhSZW1vdGVUb2tlbih1dWlkLmdldCgpKTsK
IAogICAgIC8vIFN0b3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBXZWJQcm9jZXNzIHRoYXQgY2Fu
IGxhdGVyIGJlIHJldHJpZXZlZCBieSB0aGUgaU9TIEFjY2Vzc2liaWxpdHkgcnVudGltZS4KICAg
ICBpZiAoX3BhZ2UtPnByb2Nlc3MoKS5zdGF0ZSgpID09IFdlYlByb2Nlc3NQcm94eTo6U3RhdGU6
OlJ1bm5pbmcpIHsKICAgICAgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uID0gX3BhZ2Ut
PnByb2Nlc3MoKS5jb25uZWN0aW9uKCk7Ci0gICAgICAgIHN0b3JlQWNjZXNzaWJpbGl0eVJlbW90
ZUNvbm5lY3Rpb25JbmZvcm1hdGlvbihzZWxmLCBfcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NJZGVu
dGlmaWVyKCksIGNvbm5lY3Rpb24tPmlkZW50aWZpZXIoKS5wb3J0LCB1dWlkKTsKKyAgICAgICAg
V0tBWFN0b3JlUmVtb3RlQ29ubmVjdGlvbkluZm9ybWF0aW9uKHNlbGYsIF9wYWdlLT5wcm9jZXNz
KCkucHJvY2Vzc0lkZW50aWZpZXIoKSwgY29ubmVjdGlvbi0+aWRlbnRpZmllcigpLnBvcnQsIHV1
aWQuZ2V0KCkpOwogCiAgICAgICAgIElQQzo6RGF0YVJlZmVyZW5jZSBlbGVtZW50VG9rZW4gPSBJ
UEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oW3JlbW90
ZUVsZW1lbnRUb2tlbiBieXRlc10pLCBbcmVtb3RlRWxlbWVudFRva2VuIGxlbmd0aF0pOwogICAg
ICAgICBfcGFnZS0+cmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGVsZW1lbnRU
b2tlbiwgZWxlbWVudFRva2VuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggZDgxYTcyNjE5YjZkZWZi
OWU4ZjZhNjRkZTc3MTVjMWQxYjQ2ZmY2NS4uYTllYjJjMzY3NTRhOWRmNmM4NWNlOGMxOGE1N2Fh
NjM0NTJmZjQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTcyLDYgKzcyLDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvV2ViQ29yZU5TVVJMRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViU2VsZWN0aW9uUmVjdC5oPiAvLyBGSVhNRTogV0syIHNo
b3VsZCBub3QgaW5jbHVkZSBXZWJLaXQgaGVhZGVycyEKKyNpbXBvcnQgPFdlYktpdFN5c3RlbUlu
dGVyZmFjZUlPUy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBAaW50ZXJmYWNlIFVJ
RXZlbnQoVUlFdmVudEludGVybmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCA3NjY3NTE0ZTY1MzM0ODJkM2UzYWU4OGE4OWNlOTg2
ZDY1OTg0NWNhLi4yMWQzYzg3OTIxNDQzODRhZWM1ZTJkY2RmNjc2M2RjMDIxZTRkNDhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAt
NDAsMTIgKzQwLDEyIEBACiAjaW1wb3J0ICJVc2VyRGF0YS5oIgogI2ltcG9ydCAiVmlld1VwZGF0
ZURpc3BhdGNoZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVySW50ZXJuYWwuaCIKKyNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZUlPUy5oIgogI2lt
cG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNp
bXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCA8V2ViQ29y
ZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbXBv
cnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVm
ZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJBZ2VudC5oPgogCkBAIC03NjUsMTcgKzc2NSwx
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Ymx1ckFzc2lzdGVkTm9kZSgpCiAKIEZsb2F0U2l6ZSBX
ZWJQYWdlUHJveHk6OnNjcmVlblNpemUoKQogewotICAgIHJldHVybiBXZWJDb3JlOjpzY3JlZW5T
aXplKCk7CisgICAgcmV0dXJuIEZsb2F0U2l6ZShXS0dldFNjcmVlblNpemUoKSk7CiB9CiAKIEZs
b2F0U2l6ZSBXZWJQYWdlUHJveHk6OmF2YWlsYWJsZVNjcmVlblNpemUoKQogewotICAgIHJldHVy
biBXZWJDb3JlOjphdmFpbGFibGVTY3JlZW5TaXplKCk7CisgICAgcmV0dXJuIEZsb2F0U2l6ZShX
S0dldEF2YWlsYWJsZVNjcmVlblNpemUoKSk7CiB9CiAgICAgCiBmbG9hdCBXZWJQYWdlUHJveHk6
OnRleHRBdXRvc2l6aW5nV2lkdGgoKQogewotICAgIHJldHVybiBXZWJDb3JlOjpzY3JlZW5TaXpl
KCkud2lkdGgoKTsKKyAgICByZXR1cm4gV0tHZXRTY3JlZW5TaXplKCkud2lkdGg7CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5OjpkeW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0KGRvdWJs
ZSBuZXdTY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24s
IHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ZGVjNDcwOWJkZGQ0
YjM4MjZmNGE1NThmMDQxNDZkNDhjMzJjYWExLi4wYWFhNmY2OGRmYzRiOGQwNjVlNTIxMDJjZGVm
M2VhMTgyMmY5MTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMjM2LDggKzEyMzYsNiBAQAogCQlBMTE4QTlFRjE5MDdBRDZG
MDBGN0M5MkIgLyogUXVpY2tMb29rRG9jdW1lbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE4QTlFRDE5MDdBRDZGMDBGN0M5MkIgLyogUXVp
Y2tMb29rRG9jdW1lbnREYXRhLmggKi87IH07CiAJCUExMThBOUYyMTkwOEI4RUEwMEY3QzkyQiAv
KiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTExOEE5RjAxOTA4QjhFQTAwRjdDOTJCIC8qIF9XS05TRmlsZU1h
bmFnZXJFeHRyYXMubW0gKi87IH07CiAJCUExMThBOUYzMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tO
U0ZpbGVNYW5hZ2VyRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTE4QTlGMTE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4
dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CUExODJENUI0MUJFNkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4MkQ1QjIxQkU2QkQyNTAw
ODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MubW0gKi87IH07Ci0JCUExODJENUI1MUJFNkJEMjUw
MDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMTgyRDVCMzFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJp
bGl0eUlPUy5oICovOyB9OwogCQlBMUE0RkU1QTE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxv
YWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQTRG
RTU3MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExQTRGRTVCMThEQ0U5RkEwMEI1RUE4QSAv
KiBfV0tEb3dubG9hZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExQTRGRTU4MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZC5tbSAqLzsgfTsK
IAkJQTFBNEZFNUMxOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2FkSW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQTRGRTU5MThEQ0U5
RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZEludGVybmFsLmggKi87IH07CkBAIC0zNDYyLDggKzM0
NjAsNiBAQAogCQlBMTE4QTlFRDE5MDdBRDZGMDBGN0M5MkIgLyogUXVpY2tMb29rRG9jdW1lbnRE
YXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFF1aWNrTG9va0RvY3VtZW50
RGF0YS5oOyBwYXRoID0gaW9zL1F1aWNrTG9va0RvY3VtZW50RGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBMTE4QTlGMDE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFu
YWdlckV4dHJhcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9X
S05TRmlsZU1hbmFnZXJFeHRyYXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEx
MThBOUYxMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS05TRmlsZU1hbmFnZXJFeHRyYXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTE4MkQ1QjIxQkU2QkQyNTAwODdBN0NDIC8qIEFj
Y2Vzc2liaWxpdHlJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBMTgy
RDVCMzFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5SU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExQTRGRTU3MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tEb3dubG9hZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMUE0RkU1ODE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxv
YWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tEb3dubG9h
ZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFBNEZFNTkxOERDRTlGQTAwQjVF
QThBIC8qIF9XS0Rvd25sb2FkSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLRG93bmxvYWRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTk2MiwxNSArNTk1OCw2IEBACiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKIAkJfTsKLQkJQTE4MkQ1QjExQkU2QkNGNDAwODdBN0NDIC8qIGlvcyAqLyA9IHsK
LQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQTE4MkQ1QjMxQkU2QkQy
NTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MuaCAqLywKLQkJCQlBMTgyRDVCMjFCRTZCRDI1
MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5tbSAqLywKLQkJCSk7Ci0JCQlwYXRoID0gaW9z
OwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJQTc4Q0NERDUxOTNBQzlFMzAw
NUVDQzI1IC8qIFNhbmRib3hQcm9maWxlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC02NzQ0LDcgKzY3MzEsNiBAQAogCQkJCTFBQTJFNTFBMTJFNEMwNTYw
MEJDNDk2NiAvKiBjZyAqLywKIAkJCQkzNzA5NTA0MjE4QTg4Q0RFMDA4N0FFNUQgLyogZm91bmRh
dGlvbiAqLywKIAkJCQkxQUUwMEQ2ODE4MzI3QzEyMDAwODdERDcgLyogSVBDICovLAotCQkJCUEx
ODJENUIxMUJFNkJDRjQwMDg3QTdDQyAvKiBpb3MgKi8sCiAJCQkJMUE3RTgxNEUxMTUyRDIyNDAw
MDM2OTVCIC8qIG1hYyAqLywKIAkJCQlDRTFBMEJDQTFBNDhFNkM2MDA1NEVGNzQgLyogc3BpICov
LAogCQkJCTUxQjE1QTdEMTM4NDM5QjIwMDMyMUFEOCAvKiB1bml4ICovLApAQCAtODE2Miw3ICs4
MTQ4LDYgQEAKIAkJCQkzNzYwODgxRjE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBRkZCQTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVz
b3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjA2MEUwMTY1NDMxN0YwMEYzMjgx
QiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQlBMTgy
RDVCNTFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0MzNjFENzMxOTI3RkEzNjAwMzZBNTlEIC8qIFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2Vh
cmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTQ4MzJENzFBOUNERjk2MDA4QjRE
RkUgLyogV2Vic2l0ZURhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtOTQ5NSw3ICs5NDgwLDYgQEAK
IAkJCQkxQUMxMzM2RTE4NTY1RDJCMDBGM0VDMDUgLyogQVBJUGFnZUhhbmRsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3Q0U0RDIxRjFBNDkxNENBMDBDN0YxNTIgLyogQVBJUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFRDNDMURDMUI0NDdFQUMwMEUw
RUI3RiAvKiBBUElTZXJpYWxpemVkU2NyaXB0VmFsdWVDb2NvYS5tbSBpbiBTb3VyY2VzICovLAot
CQkJCUExODJENUI0MUJFNkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNzVBOEQyRTIxODdERUMxRTAwQzM5QzlFIC8qIEFQSVNlc3Npb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUFGREU2NjExOTU0RTlCMTAwQzQ4RkZBIC8qIEFQSVNlc3Np
b25TdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0UyMzE1RTEyMkMzMENBMDBENUMzNUEg
LyogQVBJVVJMUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5t
bSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3Rl
bUludGVyZmFjZS5tbQppbmRleCAwM2YyODgyMzAyMTEzNmZlMDhkZDJmNzNjNTRhYmIzNWYzM2I4
ZThmLi5kY2UyNTc0ZGIzNWQxNzE0NjNmODcyY2QwOGY0NTA4Mjk2MjcyYzIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC0xNTEsMTEgKzE1MSwyOCBAQCB2b2lkIElu
aXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAKICAgICAgICAgSU5JVChDRlVSTFJlcXVl
c3RBbGxvd0FsbFBvc3RDYWNoaW5nKTsKIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgSU5J
VChHZXRVc2VyQWdlbnQpOworICAgICAgICBJTklUKEdldERldmljZU5hbWUpOworICAgICAgICBJ
TklUKEdldE9TTmFtZUZvclVzZXJBZ2VudCk7CisgICAgICAgIElOSVQoR2V0UGxhdGZvcm1OYW1l
Rm9yTmF2aWdhdG9yKTsKKyAgICAgICAgSU5JVChHZXRWZW5kb3JOYW1lRm9yTmF2aWdhdG9yKTsK
KyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSU5JVChOU0VsYXN0aWNEZWx0
YUZvclRpbWVEZWx0YSk7CiAgICAgICAgIElOSVQoTlNFbGFzdGljRGVsdGFGb3JSZWJvdW5kRGVs
dGEpOwogICAgICAgICBJTklUKE5TUmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKTsKICNlbmRp
ZgorI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25P
ckFmdGVySU9TVmVyc2lvbik7CisgICAgICAgIElOSVQoR2V0RGV2aWNlQ2xhc3MpOworICAgICAg
ICBJTklUKEdldFNjcmVlblNpemUpOworICAgICAgICBJTklUKEdldEF2YWlsYWJsZVNjcmVlblNp
emUpOworICAgICAgICBJTklUKEdldFNjcmVlblNjYWxlRmFjdG9yKTsKKyAgICAgICAgSU5JVChJ
c0dCMTgwMzBDb21wbGlhbmNlUmVxdWlyZWQpOworICAgICAgICBJTklUKElzT3B0aW1pemVkRnVs
bHNjcmVlblN1cHBvcnRlZCk7CisjZW5kaWYKIAogI2lmIEVOQUJMRShQVUJMSUNfU1VGRklYX0xJ
U1QpCiAgICAgICAgIElOSVQoSXNQdWJsaWNTdWZmaXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGJlMmUxOGE5YWU3
MWZlOWU5YzBkNWU4OGVjNDI4YjIzNTgxM2FlZjkuLjVjOThiNjJhNzJmOWEwNzdiNzU4NWM4NzRj
ZDYwZDYwN2JjNjIwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIFBMQVRGT1JN
KElPUykKIAotI2ltcG9ydCAiQWNjZXNzaWJpbGl0eUlPUy5oIgogI2ltcG9ydCAiQXNzaXN0ZWRO
b2RlSW5mb3JtYXRpb24uaCIKICNpbXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKICNpbXBvcnQgIkRy
YXdpbmdBcmVhLmgiCkBAIC00Niw2ICs0NSw3IEBACiAjaW1wb3J0ICJXZWJGcmFtZS5oIgogI2lt
cG9ydCAiV2ViSW1hZ2UuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgorI2lt
cG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9ydCA8Q29yZVRleHQvQ1RG
b250Lmg+CkBAIC0xMTksNyArMTE5LDkgQEAgdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxp
emVBY2Nlc3NpYmlsaXR5KCkKICAgICBtX21vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCA9IGFkb3B0
TlMoW1tXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0IGFsbG9jXSBpbml0XSk7CiAgICAgW21f
bW9ja0FjY2Vzc2liaWxpdHlFbGVtZW50IHNldFdlYlBhZ2U6dGhpc107CiAgICAgCi0gICAgTlNE
YXRhICpyZW1vdGVUb2tlbiA9IG5ld0FjY2Vzc2liaWxpdHlSZW1vdGVUb2tlbihbTlNVVUlEIFVV
SURdKTsKKyAgICBSZXRhaW5QdHI8Q0ZVVUlEUmVmPiB1dWlkID0gYWRvcHRDRihDRlVVSURDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCkpOworICAgIE5TRGF0YSAqcmVtb3RlVG9rZW4gPSBXS0FY
UmVtb3RlVG9rZW4odXVpZC5nZXQoKSk7CisgICAgCiAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRh
dGFUb2tlbiA9IElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4
X3QqPihbcmVtb3RlVG9rZW4gYnl0ZXNdKSwgW3JlbW90ZVRva2VuIGxlbmd0aF0pOwogICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNzaWJpbGl0
eVRva2VuKGRhdGFUb2tlbikpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>