<?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>137515</bug_id>
          
          <creation_ts>2014-10-08 01:24:21 -0700</creation_ts>
          <short_desc>REGRESSION(r174335): It broke EFL layout test totally (Requested by gyuyoung on #webkit).</short_desc>
          <delta_ts>2014-10-08 01:53:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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>134921</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1040233</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-08 01:24:21 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/174335 broke the build:
It broke EFL layout test totally (Requested by gyuyoung 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>1040235</commentid>
    <comment_count>1</comment_count>
      <attachid>239461</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-08 01:24:58 -0700</bug_when>
    <thetext>Created attachment 239461
ROLLOUT of r174335

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>1040240</commentid>
    <comment_count>2</comment_count>
      <attachid>239461</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-08 01:53:39 -0700</bug_when>
    <thetext>Comment on attachment 239461
ROLLOUT of r174335

Clearing flags on attachment: 239461

Committed r174423: &lt;http://trac.webkit.org/changeset/174423&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040241</commentid>
    <comment_count>3</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-08 01:53:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239461</attachid>
            <date>2014-10-08 01:24:58 -0700</date>
            <delta_ts>2014-10-08 01:53:39 -0700</delta_ts>
            <desc>ROLLOUT of r174335</desc>
            <filename>bug-137515-20141008012500.patch</filename>
            <type>text/plain</type>
            <size>44037</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTcwZDMzYTk0NjRlODNk
ZGNiZWZjZWVlNGMwMDZkOGFlYWQzZjZmOC4uYjBmNTFhMTU4NWE5MTBhMmViNjg2MDIzYzQ5ZTg0
NmQ0MThkMDgyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTEwLTA4ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTc0MzM1LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM3NTE1CisKKyAgICAgICAgSXQgYnJva2UgRUZMIGxheW91dCB0ZXN0
IHRvdGFsbHkgKFJlcXVlc3RlZCBieSBneXV5b3VuZyBvbgorICAgICAgICAjd2Via2l0KS4KKwor
ICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIltFRkxdIEludHJvZHVjZSBF
V2ViS2l0X0V4dGVuc2lvbiIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzNDkyMQorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC8xNzQzMzUKKwogMjAxNC0xMC0wOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gTWFrZSBmb3J3YXJkaW5nIGhlYWRlcnMgZ2VuZXJh
dGlvbiBkZXBlbmQgb24gc291cmNlIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXgg
YzBiZGVjZTAzMTMzZjk2YTVhMjE0YzIwM2YwYjY2NmEyMDViMGUzZC4uNGEzODM2MjBmNWM5NTJm
ODQ0YmJhYzE2YTBjZjk3NzY5NmYwMWE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAg
LTE3OSw4ICsxNzksNiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9j
ZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKICAgICBXZWJQcm9jZXNz
L0Nvb2tpZXMvc291cC9XZWJLaXRTb3VwQ29va2llSmFyU3FsaXRlLmNwcAogCi0gICAgV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZWZsL2V3a19leHRlbnNpb24uY3BwCi0KICAgICBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL2VmbC9JbmplY3RlZEJ1bmRsZUVmbC5jcHAKIAogICAgIFdl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS91bml4L1BsdWdpblByb3h5VW5peC5jcHAKQEAgLTIw
Myw3ICsyMDEsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNz
L1dlYlBhZ2UvZWZsL1dlYkluc3BlY3RvclVJRWZsLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS9lZmwvV2ViUGFnZUVmbC5jcHAKIAotICAgIFdlYlByb2Nlc3MvZWZsL0V4dGVuc2lvbk1hbmFn
ZXJFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9lZmwvU2VjY29tcEZpbHRlcnNXZWJQcm9jZXNzRWZs
LmNwcAogICAgIFdlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcAogCkBAIC0yNDgs
NyArMjQ1LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAg
IiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvZWZsIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL3NvdXAiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvdW5peCIKLSAgICAi
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZWZsIgogICAgICIk
e1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbCIKICAgICAiJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwIgogICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcyIKQEAgLTM2Miw3ICsz
NTgsNiBAQCBzZXQoV0VCS0lUMl9FWFRSQV9ERVBFTkRFTkNJRVMKICkKIAogY29uZmlndXJlX2Zp
bGUoZWZsL2V3ZWJraXQyLnBjLmluICR7Q01BS0VfQklOQVJZX0RJUn0vV2ViS2l0Mi9lZmwvZXdl
YmtpdDIucGMgQE9OTFkpCi1jb25maWd1cmVfZmlsZShlZmwvZXdlYmtpdDItZXh0ZW5zaW9uLnBj
LmluICR7Q01BS0VfQklOQVJZX0RJUn0vV2ViS2l0Mi9lZmwvZXdlYmtpdDItZXh0ZW5zaW9uLnBj
IEBPTkxZKQogY29uZmlndXJlX2ZpbGUoZWZsL0VXZWJLaXQyQ29uZmlnLmNtYWtlLmluICR7Q01B
S0VfQklOQVJZX0RJUn0vV2ViS2l0Mi9lZmwvRVdlYktpdDJDb25maWcuY21ha2UgQE9OTFkpCiBj
b25maWd1cmVfZmlsZShlZmwvRVdlYktpdDJDb25maWdWZXJzaW9uLmNtYWtlLmluICR7Q01BS0Vf
QklOQVJZX0RJUn0vV2ViS2l0Mi9lZmwvRVdlYktpdDJDb25maWdWZXJzaW9uLmNtYWtlIEBPTkxZ
KQogY29uZmlndXJlX2ZpbGUoVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaC5pbiAke0RFUklW
RURfU09VUkNFU19XRUJLSVQyX0RJUn0vaW5jbHVkZS9FV2ViS2l0Mi5oKQpAQCAtNDA0LDI3ICsz
OTksMTMgQEAgc2V0KEVXZWJLaXQyX0hFQURFUlMKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJD
RV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193aW5kb3dfZmVhdHVyZXMuaCIKICkKIAotc2V0
KEVXZWJLaXQyX0V4dGVuc2lvbl9IRUFERVJTCi0gICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9lZmwvRVdlYktpdF9FeHRlbnNpb24u
aCIKLSAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2VmbC9ld2tfZXh0ZW5zaW9uLmgiCi0pCi0KLWluc3RhbGwoRklMRVMgJHtFV2Vi
S2l0Ml9IRUFERVJTfSBERVNUSU5BVElPTiBpbmNsdWRlLyR7V2ViS2l0Ml9PVVRQVVRfTkFNRX0t
JHtQUk9KRUNUX1ZFUlNJT05fTUFKT1J9KQotaW5zdGFsbChGSUxFUyAke0VXZWJLaXQyX0V4dGVu
c2lvbl9IRUFERVJTfSBERVNUSU5BVElPTiBpbmNsdWRlLyR7V2ViS2l0Ml9PVVRQVVRfTkFNRX0t
JHtQUk9KRUNUX1ZFUlNJT05fTUFKT1J9L2V4dGVuc2lvbikKLQogaW5zdGFsbChGSUxFUyAke0NN
QUtFX0JJTkFSWV9ESVJ9L1dlYktpdDIvZWZsL2V3ZWJraXQyLnBjIERFU1RJTkFUSU9OIGxpYi9w
a2djb25maWcpCi1pbnN0YWxsKEZJTEVTICR7Q01BS0VfQklOQVJZX0RJUn0vV2ViS2l0Mi9lZmwv
ZXdlYmtpdDItZXh0ZW5zaW9uLnBjIERFU1RJTkFUSU9OIGxpYi9wa2djb25maWcpCiBpbnN0YWxs
KEZJTEVTCiAgICAgICAgICR7Q01BS0VfQklOQVJZX0RJUn0vV2ViS2l0Mi9lZmwvRVdlYktpdDJD
b25maWcuY21ha2UKICAgICAgICAgJHtDTUFLRV9CSU5BUllfRElSfS9XZWJLaXQyL2VmbC9FV2Vi
S2l0MkNvbmZpZ1ZlcnNpb24uY21ha2UKICAgICAgICAgREVTVElOQVRJT04gbGliL2NtYWtlL0VX
ZWJLaXQyKQogCi1zZXQoRVdFQktJVF9FWFRFTlNJT05fTUFOQUdFUl9JTlNUQUxMX0RJUiAiJHtM
SUJfSU5TVEFMTF9ESVJ9LyR7V2ViS2l0Ml9PVVRQVVRfTkFNRX0tJHtQUk9KRUNUX1ZFUlNJT05f
TUFKT1J9LyIgQ0FDSEUgUEFUSCAiQWJzb2x1dGUgcGF0aCB0byBpbnN0YWxsIGluamVjdGVkIGJ1
bmRsZSB3aGljaCBjb250cm9scyB0aGUgZXh0ZW5zaW9uIGxpYnJhcnkiKQotCi1hZGRfbGlicmFy
eShld2Via2l0X2V4dGVuc2lvbl9tYW5hZ2VyIFNIQVJFRCAiJHtXRUJLSVQyX0RJUn0vV2ViUHJv
Y2Vzcy9lZmwvV2ViSW5qZWN0ZWRCdW5kbGVNYWluRWZsLmNwcCIpCi10YXJnZXRfbGlua19saWJy
YXJpZXMoZXdlYmtpdF9leHRlbnNpb25fbWFuYWdlciBXZWJLaXQyKQotCi1pbnN0YWxsKFRBUkdF
VFMgZXdlYmtpdF9leHRlbnNpb25fbWFuYWdlciBERVNUSU5BVElPTiAiJHtFV0VCS0lUX0VYVEVO
U0lPTl9NQU5BR0VSX0lOU1RBTExfRElSfSIpCitpbnN0YWxsKEZJTEVTICR7RVdlYktpdDJfSEVB
REVSU30gREVTVElOQVRJT04gaW5jbHVkZS8ke1dlYktpdDJfT1VUUFVUX05BTUV9LSR7UFJPSkVD
VF9WRVJTSU9OX01BSk9SfSkKIAogaWYgKEVOQUJMRV9QTFVHSU5fUFJPQ0VTUykKICAgICBsaXN0
KEFQUEVORCBQbHVnaW5Qcm9jZXNzX0lOQ0xVREVfRElSRUNUT1JJRVMKQEAgLTQ2NSwxOCArNDQ2
LDE2IEBAIHNldChFV0syVW5pdFRlc3RzX0xJQlJBUklFUwogCiBzZXQoV0VCS0lUMl9FRkxfVEVT
VF9ESVIgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzIikKIHNldChURVNU
X1JFU09VUkNFU19ESVIgJHtXRUJLSVQyX0VGTF9URVNUX0RJUn0vcmVzb3VyY2VzKQotc2V0KFRF
U1RfRVhURU5TSU9OU19ESVIgJHtXRUJLSVQyX0VGTF9URVNUX0RJUn0vZXh0ZW5zaW9ucykKK3Nl
dChURVNUX0lOSkVDVEVEX0JVTkRMRV9ESVIgJHtXRUJLSVQyX0VGTF9URVNUX0RJUn0vSW5qZWN0
ZWRCdW5kbGUpCiBzZXQoV0VCS0lUMl9FRkxfVEVTVF9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkg
JHtDTUFLRV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1Rlc3RXZWJLaXRBUEkvRVdlYktpdDIp
CiAKIGFkZF9kZWZpbml0aW9ucygtRFRFU1RfUkVTT1VSQ0VTX0RJUj1cIiR7VEVTVF9SRVNPVVJD
RVNfRElSfVwiCiAgICAgLURURVNUX0xJQl9ESVI9XCIke0NNQUtFX0xJQlJBUllfT1VUUFVUX0RJ
UkVDVE9SWX1cIgogICAgIC1ER1RFU1RfTElOS0VEX0FTX1NIQVJFRF9MSUJSQVJZPTEKICAgICAt
RExJQkVYRUNESVI9XCIke0VYRUNfSU5TVEFMTF9ESVJ9XCIKLSAgICAtREVYVEVOU0lPTk1BTkFH
RVJESVI9XCIke0NNQUtFX0lOU1RBTExfUFJFRklYfS8ke0VXRUJLSVRfRVhURU5TSU9OX01BTkFH
RVJfSU5TVEFMTF9ESVJ9XCIKICAgICAtRFdFQlBST0NFU1NOQU1FPVwiV2ViUHJvY2Vzc1wiCiAg
ICAgLURQTFVHSU5QUk9DRVNTTkFNRT1cIlBsdWdpblByb2Nlc3NcIgogICAgIC1ETkVUV09SS1BS
T0NFU1NOQU1FPVwiTmV0d29ya1Byb2Nlc3NcIgotICAgIC1ERVhURU5TSU9OTUFOQUdFUk5BTUU9
XCJsaWJld2Via2l0X2V4dGVuc2lvbl9tYW5hZ2VyLnNvXCIKICAgICAtREdURVNUX0hBU19SVFRJ
PTAKICkKIApAQCAtNTI5LDcgKzUwOCw4IEBAIGlmIChFTkFCTEVfQVBJX1RFU1RTKQogICAgICAg
ICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0ZXN0TmFtZX0gJHtFV0syVW5pdFRlc3RzX0xJQlJB
UklFU30gZXdrMlVuaXRUZXN0VXRpbHMpCiAgICAgZW5kZm9yZWFjaCAoKQogCi0gICAgYWRkX2xp
YnJhcnkoZXdrMlVuaXRUZXN0RXh0ZW5zaW9uU2FtcGxlIFNIQVJFRCAke1RFU1RfRVhURU5TSU9O
U19ESVJ9L2V4dGVuc2lvbl9zYW1wbGUuY3BwKQorICAgIGFkZF9saWJyYXJ5KGV3azJVbml0VGVz
dEluamVjdGVkQnVuZGxlU2FtcGxlIFNIQVJFRCAke1RFU1RfSU5KRUNURURfQlVORExFX0RJUn0v
aW5qZWN0ZWRfYnVuZGxlX3NhbXBsZS5jcHApCisgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGV3
azJVbml0VGVzdEluamVjdGVkQnVuZGxlU2FtcGxlIFdlYktpdDIpCiBlbmRpZiAoKQogCiBpZiAo
RU5BQkxFX1NQRUxMQ0hFQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dC5jcHAKaW5kZXggZWZjYTEyZjRiZjQ4YTFhN2JlYmNjYmQ0YTY4OGQwNzBh
ZWNlYzg3MS4uNjY2Nzc1NDE5NmU0MTUwMmZkMTM5MWRlZTI1NTUzNGQ0NTliZDliYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAt
NjIsNyArNjIsNyBAQCBzdGF0aWMgaW5saW5lIENvbnRleHRNYXAmIGNvbnRleHRNYXAoKQogICAg
IHJldHVybiBtYXA7CiB9CiAKLUV3a0NvbnRleHQ6OkV3a0NvbnRleHQoV0tDb250ZXh0UmVmIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uc1BhdGgpCitFd2tDb250ZXh0OjpFd2tDb250
ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiAgICAg
LCBtX2RhdGFiYXNlTWFuYWdlcihzdGQ6Om1ha2VfdW5pcXVlPEV3a0RhdGFiYXNlTWFuYWdlcj4o
V0tDb250ZXh0R2V0RGF0YWJhc2VNYW5hZ2VyKGNvbnRleHQpKSkKICAgICAsIG1fc3RvcmFnZU1h
bmFnZXIoc3RkOjptYWtlX3VuaXF1ZTxFd2tTdG9yYWdlTWFuYWdlcj4oV0tDb250ZXh0R2V0S2V5
VmFsdWVTdG9yYWdlTWFuYWdlcihjb250ZXh0KSkpCkBAIC03Myw3ICs3Myw2IEBAIEV3a0NvbnRl
eHQ6OkV3a0NvbnRleHQoV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZXh0ZW5z
aW9uc1BhdGgpCiAgICAgLCBtX3JlcXVlc3RNYW5hZ2VyQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8
UmVxdWVzdE1hbmFnZXJDbGllbnRFZmw+KGNvbnRleHQpKQogICAgICwgbV9oaXN0b3J5Q2xpZW50
KHN0ZDo6bWFrZV91bmlxdWU8Q29udGV4dEhpc3RvcnlDbGllbnRFZmw+KGNvbnRleHQpKQogICAg
ICwgbV9qc0dsb2JhbENvbnRleHQobnVsbHB0cikKLSAgICAsIG1fZXh0ZW5zaW9uc1BhdGgoZXh0
ZW5zaW9uc1BhdGgpCiB7CiAgICAgQ29udGV4dE1hcDo6QWRkUmVzdWx0IHJlc3VsdCA9IGNvbnRl
eHRNYXAoKS5hZGQoY29udGV4dCwgdGhpcyk7CiAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJl
c3VsdC5pc05ld0VudHJ5KTsKQEAgLTk2LDE3ICs5NSw2IEBAIEV3a0NvbnRleHQ6OkV3a0NvbnRl
eHQoV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uc1BhdGgpCiAK
ICAgICBtX2NhbGxiYWNrRm9yTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZS5jYWxsYmFjayA9IG51
bGxwdHI7CiAgICAgbV9jYWxsYmFja0Zvck1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUudXNlckRh
dGEgPSBudWxscHRyOwotCi0gICAgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRWMSBjbGll
bnQ7Ci0gICAgbWVtc2V0KCZjbGllbnQsIDAsIHNpemVvZihjbGllbnQpKTsKLQotICAgIGNsaWVu
dC5iYXNlLnZlcnNpb24gPSAxOwotICAgIGNsaWVudC5iYXNlLmNsaWVudEluZm8gPSB0aGlzOwot
ICAgIGNsaWVudC5kaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSA9IGRpZFJlY2Vp
dmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlOwotICAgIGNsaWVudC5kaWRSZWNlaXZlU3luY2hy
b25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlID0gZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZTsKLSAgICBjbGllbnQuZ2V0SW5qZWN0ZWRCdW5kbGVJbml0
aWFsaXphdGlvblVzZXJEYXRhID0gZ2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJE
YXRhOwotCi0gICAgV0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQobV9jb250ZXh0Lmdl
dCgpLCAmY2xpZW50LmJhc2UpOwogfQogCiBFd2tDb250ZXh0Ojp+RXdrQ29udGV4dCgpCkBAIC0x
MzIsMjggKzEyMCwxNCBAQCBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IEV3a0NvbnRleHQ6OmNyZWF0
ZSgpCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tDb250ZXh0KGFkb3B0V0soV0tDb250ZXh0
Q3JlYXRlKCkpLmdldCgpKSk7CiB9CiAKLXN0YXRpYyBTdHJpbmcgYnVuZGxlUGF0aEZvckV4dGVu
c2lvbigpCi17Ci0gICAgU3RyaW5nIGJ1bmRsZVBhdGhGb3JFeHRlbnNpb24gPSBXZWJDb3JlOjpw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoU3RyaW5nOjpmcm9tVVRGOChURVNUX0xJQl9ESVIpLCBF
WFRFTlNJT05NQU5BR0VSTkFNRSk7Ci0gICAgaWYgKFdlYkNvcmU6OmZpbGVFeGlzdHMoYnVuZGxl
UGF0aEZvckV4dGVuc2lvbikpCi0gICAgICAgIHJldHVybiBidW5kbGVQYXRoRm9yRXh0ZW5zaW9u
OwotCi0gICAgYnVuZGxlUGF0aEZvckV4dGVuc2lvbiA9IFdlYkNvcmU6OnBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudChTdHJpbmc6OmZyb21VVEY4KEVYVEVOU0lPTk1BTkFHRVJESVIpLCBFWFRFTlNJ
T05NQU5BR0VSTkFNRSk7Ci0gICAgaWYgKFdlYkNvcmU6OmZpbGVFeGlzdHMoYnVuZGxlUGF0aEZv
ckV4dGVuc2lvbikpCi0gICAgICAgIHJldHVybiBidW5kbGVQYXRoRm9yRXh0ZW5zaW9uOwotCi0g
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci19Ci0KLVBhc3NSZWZQdHI8RXdrQ29udGV4dD4gRXdr
Q29udGV4dDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uc1BhdGgpCitQYXNzUmVmUHRy
PEV3a0NvbnRleHQ+IEV3a0NvbnRleHQ6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGluamVjdGVkQnVu
ZGxlUGF0aCkKIHsgICAKLSAgICBTdHJpbmcgYnVuZGxlUGF0aCA9IGJ1bmRsZVBhdGhGb3JFeHRl
bnNpb24oKTsKLSAgICBpZiAoYnVuZGxlUGF0aC5pc0VtcHR5KCkpCisgICAgaWYgKCFmaWxlRXhp
c3RzKGluamVjdGVkQnVuZGxlUGF0aCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IHBhdGggPSBhZG9wdFdLKHRvQ29waWVkQVBJKGJ1bmRsZVBhdGgp
KTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcGF0aCA9IGFkb3B0V0sodG9Db3BpZWRB
UEkoaW5qZWN0ZWRCdW5kbGVQYXRoKSk7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a0Nv
bnRleHQoYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoSW5qZWN0ZWRCdW5kbGVQYXRoKHBhdGgu
Z2V0KCkpKS5nZXQoKSwgZXh0ZW5zaW9uc1BhdGgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEV3a0NvbnRleHQoYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoSW5qZWN0ZWRCdW5kbGVQYXRo
KHBhdGguZ2V0KCkpKS5nZXQoKSkpOwogfQogCiBFd2tDb250ZXh0KiBFd2tDb250ZXh0OjpkZWZh
dWx0Q29udGV4dCgpCkBAIC0zOTAsMTEgKzM2NCw2IEBAIHZvaWQgRXdrQ29udGV4dDo6ZGlkUmVj
ZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdL
CiAgICAgdG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLT5wcm9jZXNzUmVjZWl2ZWRNZXNzYWdlRnJv
bUluamVjdGVkQnVuZGxlKG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9keSwgcmV0dXJuRGF0YSk7CiB9
CiAKLVdLVHlwZVJlZiBFd2tDb250ZXh0OjpnZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9u
VXNlckRhdGEoV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxXS1R5cGVSZWY+KHRvQ29waWVkQVBJKHRvRXdrQ29udGV4dChjbGll
bnRJbmZvKS0+ZXh0ZW5zaW9uc1BhdGgoKSkpOwotfQotCiB2b2lkIEV3a0NvbnRleHQ6OnNldE1l
c3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVDYWxsYmFjayhFd2tfQ29udGV4dF9NZXNzYWdlX0Zyb21f
SW5qZWN0ZWRfQnVuZGxlX0NiIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKIHsKICAgICBtX2Nh
bGxiYWNrRm9yTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZS51c2VyRGF0YSA9IHVzZXJEYXRhOwpA
QCAtNDAyLDYgKzM3MSwxOSBAQCB2b2lkIEV3a0NvbnRleHQ6OnNldE1lc3NhZ2VGcm9tSW5qZWN0
ZWRCdW5kbGVDYWxsYmFjayhFd2tfQ29udGV4dF9NZXNzYWdlX0Zyb21fSQogICAgIGlmIChtX2Nh
bGxiYWNrRm9yTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZS5jYWxsYmFjayA9PSBjYWxsYmFjaykK
ICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCFtX2NhbGxiYWNrRm9yTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZS5jYWxsYmFjaykgeworICAgICAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNs
aWVudFYxIGNsaWVudDsKKyAgICAgICAgbWVtc2V0KCZjbGllbnQsIDAsIHNpemVvZihjbGllbnQp
KTsKKworICAgICAgICBjbGllbnQuYmFzZS52ZXJzaW9uID0gMTsKKyAgICAgICAgY2xpZW50LmJh
c2UuY2xpZW50SW5mbyA9IHRoaXM7CisgICAgICAgIGNsaWVudC5kaWRSZWNlaXZlTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZSA9IGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlOwor
ICAgICAgICBjbGllbnQuZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZSA9IGRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGU7CisK
KyAgICAgICAgV0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQobV9jb250ZXh0LmdldCgp
LCAmY2xpZW50LmJhc2UpOworICAgIH0gZWxzZSBpZiAoIWNhbGxiYWNrKQorICAgICAgICBXS0Nv
bnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChtX2NvbnRleHQuZ2V0KCksIG51bGxwdHIpOwor
CiAgICAgbV9jYWxsYmFja0Zvck1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUuY2FsbGJhY2sgPSBj
YWxsYmFjazsKIH0KIApAQCAtNDUxLDcgKzQzMyw3IEBAIEV3a19Db250ZXh0KiBld2tfY29udGV4
dF9uZXcoKQogICAgIHJldHVybiBFd2tDb250ZXh0OjpjcmVhdGUoKS5sZWFrUmVmKCk7CiB9CiAK
LUV3a19Db250ZXh0KiBld2tfY29udGV4dF9uZXdfd2l0aF9leHRlbnNpb25zX3BhdGgoY29uc3Qg
Y2hhciogcGF0aCkKK0V3a19Db250ZXh0KiBld2tfY29udGV4dF9uZXdfd2l0aF9pbmplY3RlZF9i
dW5kbGVfcGF0aChjb25zdCBjaGFyKiBwYXRoKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChwYXRoLCBudWxscHRyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19jb250ZXh0LmgKaW5kZXggZGQ5MWI2ODY5NjFhM2QxNDA1MGZkOTNmYTcx
Y2U5MzkxOWEzMWVmZC4uMWM2NWZlM2MwY2Y5ZDE4MGMxNGUxOTk4YWUzMTU2NWQ5OWY2Y2IzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCkBA
IC0xNjksNyArMTY5LDcgQEAgRUFQSSBFd2tfQ29udGV4dCAqZXdrX2NvbnRleHRfZGVmYXVsdF9n
ZXQodm9pZCk7CiAgKiBAcmV0dXJuIEV3a19Db250ZXh0IG9iamVjdCBvbiBzdWNjZXNzIG9yIEBj
IE5VTEwgb24gZmFpbHVyZQogICoKICAqIEBzZWUgZXdrX29iamVjdF91bnJlZgotICogQHNlZSBl
d2tfY29udGV4dF9uZXdfd2l0aF9leHRlbnNpb25zX3BhdGgKKyAqIEBzZWUgZXdrX2NvbnRleHRf
bmV3X3dpdGhfaW5qZWN0ZWRfYnVuZGxlX3BhdGgKICAqLwogRUFQSSBFd2tfQ29udGV4dCAqZXdr
X2NvbnRleHRfbmV3KHZvaWQpOwogCkBAIC0xNzgsMTcgKzE3OCwxNCBAQCBFQVBJIEV3a19Db250
ZXh0ICpld2tfY29udGV4dF9uZXcodm9pZCk7CiAgKgogICogVGhlIHJldHVybmVkIEV3a19Db250
ZXh0IG9iamVjdCBAYiBzaG91bGQgYmUgdW5yZWYnZWQgYWZ0ZXIgdXNlLgogICoKLSAqIEBwYXJh
bSBwYXRoIGRpcmVjdG9yeSBwYXRoIG9mIGV4dGVuc2lvbnMKKyAqIEBwYXJhbSBwYXRoIHBhdGgg
b2YgaW5qZWN0ZWQgYnVuZGxlIGxpYnJhcnkKICAqCiAgKiBAcmV0dXJuIEV3a19Db250ZXh0IG9i
amVjdCBvbiBzdWNjZXNzIG9yIEBjIE5VTEwgb24gZmFpbHVyZQogICoKLSAqIEBub3RlIEFsbCBz
aGFyZWQgb2JqZWN0cyB3aGljaCBoYXZlIGV3a19leHRlbnNpb25faW5pdCgpIGluIHRoZSBnaXZl
biBAYSBwYXRoIHdpbGwgYmUgbG9hZGVkLgotICoKICAqIEBzZWUgZXdrX29iamVjdF91bnJlZgog
ICogQHNlZSBld2tfY29udGV4dF9uZXcKLSAqIEBzZWUgRXdrX0V4dGVuc2lvbl9Jbml0aWFsaXpl
X0Z1bmN0aW9uCiAgKi8KLUVBUEkgRXdrX0NvbnRleHQgKmV3a19jb250ZXh0X25ld193aXRoX2V4
dGVuc2lvbnNfcGF0aChjb25zdCBjaGFyICpwYXRoKTsKK0VBUEkgRXdrX0NvbnRleHQgKmV3a19j
b250ZXh0X25ld193aXRoX2luamVjdGVkX2J1bmRsZV9wYXRoKGNvbnN0IGNoYXIgKnBhdGgpOwog
CiAvKioKICAqIEdldHMgdGhlIGFwcGxpY2F0aW9uIGNhY2hlIG1hbmFnZXIgaW5zdGFuY2UgZm9y
IHRoaXMgQGEgY29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaAppbmRleCAzMmQyM2VkOWI0M2RlOGY4NDNjMmZi
YWNmNzQ1MjVkNGFlMjkxZWU4Li4xNzI5YzRhMTJhMjI3ZmMwYTMyZDRhOTc1NjE2YjYwNWE3Zjlk
NDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29u
dGV4dF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2NvbnRleHRfcHJpdmF0ZS5oCkBAIC04Niw4ICs4Niw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0SWdub3JlVExTRXJyb3JzKEV3a19UTFNfRXJyb3JfUG9saWN5IFRMU0Vycm9yUG9saWN5KSBj
b25zdDsKIAotICAgIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uc1BhdGgoKSBjb25zdCB7IHJldHVy
biBtX2V4dGVuc2lvbnNQYXRoOyB9Ci0KICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
ICAgICB2b2lkIHNldEFkZGl0aW9uYWxQbHVnaW5QYXRoKGNvbnN0IFN0cmluZyYpOwogI2VuZGlm
CkBAIC05OCwxMiArOTYsMTEgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBtZXNz
YWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
ICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKFdLQ29udGV4dFJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBt
ZXNzYWdlQm9keSwgV0tUeXBlUmVmKiByZXR1cm5EYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKLSAgICBzdGF0aWMgV0tUeXBlUmVmIGdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25V
c2VyRGF0YShXS0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHZvaWQg
c2V0TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZUNhbGxiYWNrKEV3a19Db250ZXh0X01lc3NhZ2Vf
RnJvbV9JbmplY3RlZF9CdW5kbGVfQ2IsIHZvaWQqKTsKICAgICB2b2lkIHByb2Nlc3NSZWNlaXZl
ZE1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlw
ZVJlZiBtZXNzYWdlQm9keSwgV0tUeXBlUmVmKiByZXR1cm5EYXRhKTsKIAogcHJpdmF0ZToKLSAg
ICBleHBsaWNpdCBFd2tDb250ZXh0KFdLQ29udGV4dFJlZiwgY29uc3QgU3RyaW5nJiBleHRlbnNp
b25zUGF0aCA9IFN0cmluZygpKTsKKyAgICBleHBsaWNpdCBFd2tDb250ZXh0KFdLQ29udGV4dFJl
Zik7CiAKICAgICB2b2lkIGVuc3VyZUZhdmljb25EYXRhYmFzZSgpOwogCkBAIC0xMjQsOCArMTIx
LDYgQEAgcHJpdmF0ZToKIAogICAgIEpTR2xvYmFsQ29udGV4dFJlZiBtX2pzR2xvYmFsQ29udGV4
dDsKIAotICAgIFN0cmluZyBtX2V4dGVuc2lvbnNQYXRoOwotCiAgICAgc3RydWN0IHsKICAgICAg
ICAgRXdrX0NvbnRleHRfTWVzc2FnZV9Gcm9tX0luamVjdGVkX0J1bmRsZV9DYiBjYWxsYmFjazsK
ICAgICAgICAgdm9pZCogdXNlckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC90ZXN0cy9JbmplY3RlZEJ1bmRsZS9pbmplY3RlZF9idW5kbGVfc2FtcGxl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL0luamVjdGVkQnVu
ZGxlL2luamVjdGVkX2J1bmRsZV9zYW1wbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0Y2UxM2I2YWM2YmFh
NWM3MzMzZWM1ZDRlZDM4ZGE5YzA2MjQwYTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9JbmplY3RlZEJ1bmRsZS9pbmplY3RlZF9idW5k
bGVfc2FtcGxlLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRs
ZUluaXRpYWxpemUuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRp
ZgorCit2b2lkIFdLQnVuZGxlSW5pdGlhbGl6ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLVHlwZVJl
ZiBpbml0aWFsaXphdGlvblVzZXJEYXRhKQoreworfQorCisjaWZkZWYgX19jcGx1c3BsdXMKK30K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVz
dHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RFbnZpcm9ubWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdEVu
dmlyb25tZW50LmNwcAppbmRleCA5ZWFkZjg2YjRlNGE2ZWRmMGY3OGVmMjIwYzFhMTcxNGU4ZjVi
MjYxLi4wNTlmMDEyNjIwYmNmNTNhZjU0ZTc3ZTY4YmE2NTQ3Yzk5ZjEzNTdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VX
SzJVbml0VGVzdEVudmlyb25tZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdEVudmlyb25tZW50LmNwcApA
QCAtNDMsOSArNDMsOSBAQCBjb25zdCBjaGFyKiBFV0syVW5pdFRlc3RFbnZpcm9ubWVudDo6ZGVm
YXVsdFRoZW1lKCkgY29uc3QKICAgICByZXR1cm4gREVGQVVMVF9USEVNRV9ESVIgIi9kZWZhdWx0
LmVkaiI7CiB9CiAKLWNvbnN0IGNoYXIqIEVXSzJVbml0VGVzdEVudmlyb25tZW50OjpleHRlbnNp
b25TYW1wbGUoKSBjb25zdAorY29uc3QgY2hhciogRVdLMlVuaXRUZXN0RW52aXJvbm1lbnQ6Omlu
amVjdGVkQnVuZGxlU2FtcGxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gVEVTVF9MSUJfRElSICIv
bGliZXdrMlVuaXRUZXN0RXh0ZW5zaW9uU2FtcGxlLnNvIjsKKyAgICByZXR1cm4gVEVTVF9MSUJf
RElSICIvbGliZXdrMlVuaXRUZXN0SW5qZWN0ZWRCdW5kbGVTYW1wbGUuc28iOwogfQogCiBDU3Ry
aW5nIEVXSzJVbml0VGVzdEVudmlyb25tZW50Ojp1cmxGb3JSZXNvdXJjZShjb25zdCBjaGFyKiBy
ZXNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0RW52aXJvbm1lbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0RW52
aXJvbm1lbnQuaAppbmRleCBlYjU1YmY4Zjk5NTFlOWE4YWU1MDZiNzhkZDgyZmQzMDkzM2QwYmU1
Li41ZjllMjIxNWRiY2E1MTc2YmMzN2RjYTk0YzdiMjU0MzVkZGJmMjZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJV
bml0VGVzdEVudmlyb25tZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RFbnZpcm9ubWVudC5oCkBAIC0zMCw3
ICszMCw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IGNoYXIqIGRlZmF1bHRUZXN0UGFnZVVybCgp
IGNvbnN0OwogICAgIGNvbnN0IGNoYXIqIGRlZmF1bHRUaGVtZSgpIGNvbnN0OwotICAgIGNvbnN0
IGNoYXIqIGV4dGVuc2lvblNhbXBsZSgpIGNvbnN0OworICAgIGNvbnN0IGNoYXIqIGluamVjdGVk
QnVuZGxlU2FtcGxlKCkgY29uc3Q7CiAgICAgQ1N0cmluZyB1cmxGb3JSZXNvdXJjZShjb25zdCBj
aGFyKiByZXNvdXJjZSk7CiAgICAgQ1N0cmluZyBwYXRoRm9yUmVzb3VyY2UoY29uc3QgY2hhciog
cmVzb3VyY2UpOwogICAgIENTdHJpbmcgcGF0aEZvclRoZW1lKGNvbnN0IGNoYXIqIHRoZW1lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL2V4dGVu
c2lvbnMvZXh0ZW5zaW9uX3NhbXBsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy9leHRlbnNpb25zL2V4dGVuc2lvbl9zYW1wbGUuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyYTAzZDhlMTg5MjNlNWE0YzQxYmYzMmIwMDMxMTZkMDUwMzk0NTBj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL2V4dGVuc2lvbnMvZXh0ZW5zaW9uX3NhbXBs
ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE0IFJ5dWFuIENob2kgPHJ5dWFuLmNob2lAZ21haWwuY29tPi4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJFV2ViS2l0X0V4dGVuc2lvbi5oIgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAi
QyIgewotI2VuZGlmCi0KLXZvaWQgZXdrX2V4dGVuc2lvbl9pbml0KEV3a19FeHRlbnNpb24gKikK
LXsKLX0KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0
LmNwcAppbmRleCBkYmI2ODc4OWVhYTdiNDFiMGE4ZTU1YTZiYjBmMGQ5MDQ1YWJiMGZhLi42MDJj
YzY4MTNkY2JhZjlhN2U4OTMwNDYyODkxODI1OTQ3NjI3MzgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRl
eHQuY3BwCkBAIC0yMjgsOSArMjI4LDkgQEAgVEVTVF9GKEVXSzJDb250ZXh0VGVzdCwgZXdrX2Nv
bnRleHRfbmV3KQogICAgIGV3a19vYmplY3RfdW5yZWYoY29udGV4dCk7CiB9CiAKLVRFU1RfRihF
V0syQ29udGV4dFRlc3QsIGV3a19jb250ZXh0X25ld193aXRoX2V4dGVuc2lvbnNfcGF0aCkKK1RF
U1RfRihFV0syQ29udGV4dFRlc3QsIGV3a19jb250ZXh0X25ld193aXRoX2luamVjdGVkX2J1bmRs
ZV9wYXRoKQogewotICAgIEV3a19Db250ZXh0KiBjb250ZXh0ID0gZXdrX2NvbnRleHRfbmV3X3dp
dGhfZXh0ZW5zaW9uc19wYXRoKGVudmlyb25tZW50LT5leHRlbnNpb25TYW1wbGUoKSk7CisgICAg
RXdrX0NvbnRleHQqIGNvbnRleHQgPSBld2tfY29udGV4dF9uZXdfd2l0aF9pbmplY3RlZF9idW5k
bGVfcGF0aChlbnZpcm9ubWVudC0+aW5qZWN0ZWRCdW5kbGVTYW1wbGUoKSk7CiAgICAgQVNTRVJU
X1RSVUUoY29udGV4dCk7CiAgICAgZXdrX29iamVjdF91bnJlZihjb250ZXh0KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2VmbC9F
V2ViS2l0X0V4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZWZsL0VXZWJLaXRfRXh0ZW5zaW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI2YWEyYTUyMDg0NzMxYmYzYjZkNmI1MzJjMzU1NDJlMzRhNGVmZTUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZWZsL0VXZWJLaXRfRXh0ZW5zaW9uLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IFJ5dWFu
IENob2kgPHJ5dWFuLmNob2lAZ21haWwuY29tPi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8qKgotICogQGZpbGUgICAg
RVdlYktpdF9FeHRlbnNpb24uaAotICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGhlYWRlciBmaWxl
cyB0aGF0IGFyZSByZXF1aXJlZCBieSBld2Via2l0Mi1leHRlbnNpb24uCi0gKgotICogRVdlYktp
dF9FeHRlbnNpb24gaXMgdGhlIHdheSB0byBleHRlbmQgV2ViUHJvY2VzcyBvZiBld2Via2l0Mi4K
LSAqCi0gKiBJbiBvcmRlciB0byBjcmVhdGUgdGhlIGV4dGVuc2lvbiwgCi0gKiBGaXJzdCwgZXdr
X2V4dGVuc2lvbl9pbml0IG11c3QgYmUgaW1wbGVtZW50ZWQgaW4gdGhlIHNoYXJlZCBvYmplY3Qg
bGlrZSBiZWxvdzoKLSAqCi0gKiBAY29kZQotICogI2luY2x1ZGUgIkVXZWJLaXRfRXh0ZW5zaW9u
LmgiCi0gKiAKLSAqIHZvaWQgZXdrX2V4dGVuc2lvbl9pbml0KEV3a19FeHRlbnNpb24gKmV4dGVu
c2lvbikKLSAqIHsKLSAqICAgIC8vIHByb3ZpZGUgRXdrX0V4dGVuc2lvbl9DbGllbnQgY2FsbGJh
Y2tzIGFzIGNsaWVudC4KLSAqICAgIGV3a19leHRlbnNpb25fY2xpZW50X2FkZChleHRlbnNpb24s
ICZjbGllbnQpOwotICogfQotICogQGVuZGNvZGUKLSAqCi0gKiBBbmQgY29tcGlsZXMgQyBvciBD
KysgZmlsZXMgYXMgc2hhcmVkIG9iamVjdCBsaWtlIGJlbG93OgotICoKLSAqIEB2ZXJiYXRpbQot
ICogZ2NjIC1vIGxpYnNhbXBsZS5zbyBzYW1wbGUuYyAtc2hhcmVkIC1mUElDIGBwa2ctY29uZmln
IC0tY2ZsYWdzIC0tbGlicyBlaW5hIGV3ZWJraXQyLWV4dGVuc2lvbmAKLSAqIEBlbmR2ZXJiYXRp
bQotICogCi0gKiBUaGVuLCBpbnN0YWxsIHRoYXQgb2JqZWN0IGludG8gdGhlIHBhdGggd2hpY2gg
ZXdrX2NvbnRleHRfbmV3X3dpdGhfZXh0ZW5zaW9uc19wYXRoKCkgc3BlY2lmaWVzLgotICoKLSAq
IEBzZWUgZXdrX2NvbnRleHRfbmV3X3dpdGhfZXh0ZW5zaW9uc19wYXRoCi0gKiBAc2VlIGV3a19l
eHRlbnNpb25fY2xpZW50X3NldAotICogQHNlZSBFd2tfRXh0ZW5zaW9uX0luaXRpYWxpemVfRnVu
Y3Rpb24KLSAqLwotCi0jaWZuZGVmIEVXZWJLaXRfRXh0ZW5zaW9uX2gKLSNkZWZpbmUgRVdlYktp
dF9FeHRlbnNpb25faAotCi0jaW5jbHVkZSAiZXdrX2V4dGVuc2lvbi5oIgotCi0jZW5kaWYgLy8g
RVdlYktpdF9FeHRlbnNpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZWZsL2V3a19leHRlbnNpb24uY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZWZsL2V3a19leHRlbnNpb24uY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWJjODU2YjFlYmEzMmU3YzZjMDZhZTNmOGVk
MDliNGIzNzUxOTc2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2VmbC9ld2tf
ZXh0ZW5zaW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTQgUnl1YW4gQ2hvaSA8cnl1YW4uY2hvaUBnbWFpbC5jb20+LiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgImV3a19leHRlbnNpb24uaCIKLQotI2lu
Y2x1ZGUgImV3a19leHRlbnNpb25fcHJpdmF0ZS5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwotCi12b2lkIEV3a0V4dGVuc2lvbjo6YXBwZW5kKEV3a19FeHRlbnNpb25fQ2xpZW50KiBjbGll
bnQpCi17Ci0gICAgbV9jbGllbnRzLmFwcGVuZChjbGllbnQpOwotfQotCi12b2lkIEV3a0V4dGVu
c2lvbjo6cmVtb3ZlKEV3a19FeHRlbnNpb25fQ2xpZW50KiBjbGllbnQpCi17Ci0gICAgbV9jbGll
bnRzLnJlbW92ZShtX2NsaWVudHMuZmluZChjbGllbnQpKTsKLX0KLQotRWluYV9Cb29sIGV3a19l
eHRlbnNpb25fY2xpZW50X2FkZChFd2tfRXh0ZW5zaW9uKiBleHRlbnNpb24sIEV3a19FeHRlbnNp
b25fQ2xpZW50KiBjbGllbnQpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KGV4dGVuc2lvbiwgZmFsc2UpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChj
bGllbnQsIGZhbHNlKTsKLQotICAgIGV4dGVuc2lvbi0+YXBwZW5kKGNsaWVudCk7Ci0KLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotRWluYV9Cb29sIGV3a19leHRlbnNpb25fY2xpZW50X2RlbChFd2tf
RXh0ZW5zaW9uKiBleHRlbnNpb24sIEV3a19FeHRlbnNpb25fQ2xpZW50KiBjbGllbnQpCi17Ci0g
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGV4dGVuc2lvbiwgZmFsc2UpOwotICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjbGllbnQsIGZhbHNlKTsKLQotICAgIGV4
dGVuc2lvbi0+cmVtb3ZlKGNsaWVudCk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2VmbC9ld2tf
ZXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9lZmwvZXdrX2V4dGVuc2lvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4M2M1
MjI5ZTYwNjQ3YzRiOWE2OTRkYTZjMjgyMTRhZGMzMmUyYjE2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2VmbC9ld2tfZXh0ZW5zaW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4
NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IFJ5dWFuIENob2kgPHJ5dWFuLmNo
b2lAZ21haWwuY29tPi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8qKgotICogQGZpbGUgICAgZXdrX2V4dGVuc2lvbi5o
Ci0gKiBAYnJpZWYgICBEZXNjcmliZXMgdGhlIEV3a19FeHRlbnNpb24gQVBJLgotICovCi0KLSNp
Zm5kZWYgZXdrX2V4dGVuc2lvbl9oCi0jZGVmaW5lIGV3a19leHRlbnNpb25faAotCi0jaW5jbHVk
ZSA8RWluYS5oPgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0K
LS8qKgotICogRGVjbGFyZSBFd2tfRXh0ZW5zaW9uLgotICovCi10eXBlZGVmIHN0cnVjdCBFd2tF
eHRlbnNpb24gRXdrX0V4dGVuc2lvbjsKLQotLyoqCi0gKiBEZWNsYXJlIEV3a19FeHRlbnNpb25f
SW5pdGlhbGl6ZV9GdW5jdGlvbi4KLSAqCi0gKiBAYnJpZWYgIFR5cGUgZGVmaW5pdGlvbiBmb3Ig
dGhlIGVudHJ5IG9mIHRoZSBleHRlbnNpb24uCi0gKgotICogQHBhcmFtIGV4dGVuc2lvbiB0aGUg
ZXh0ZW5zaW9uIGluc3RhbmNlIGhlbHBzIHRoZSBjb21tdW5pY2F0aW9uIGJldHdlZW4gV2ViUHJv
Y2VzcyBhbmQgeW91ciBleHRlbnNpb24gbGlicmFyeQotICogQHBhcmFtIHJlc2VydmVkIGV4dHJh
IHBhcmFtZXRlciBmb3IgdGhlIGZ1dHVyZS4gTlVMTCBpcyBmaW5lLCBub3cKLSAqCi0gKi8KLXR5
cGVkZWYgdm9pZCAqKCpFd2tfRXh0ZW5zaW9uX0luaXRpYWxpemVfRnVuY3Rpb24pKEV3a19FeHRl
bnNpb24gKmV4dGVuc2lvbiwgdm9pZCAqcmVzZXJ2ZWQpOwotCi1zdHJ1Y3QgRXdrRXh0ZW5zaW9u
Q2xpZW50IHsKLSAgICBpbnQgdmVyc2lvbjsKLSAgICB2b2lkICpkYXRhOwotfTsKLXR5cGVkZWYg
c3RydWN0IEV3a0V4dGVuc2lvbkNsaWVudCBFd2tfRXh0ZW5zaW9uX0NsaWVudDsKLQotLyoqCi0g
KiBBZGQgYSBjbGllbnQgd2hpY2ggY29udGFpbnMgc2V2ZXJhbCBjYWxsYmFja3MgdG8gdGhlIGV4
dGVuc2lvbi4KLSAqCi0gKiBAcGFyYW0gZXh0ZW5zaW9uIGV4dGVuc2lvbiB0byBhdHRhY2ggY2xp
ZW50IHRvCi0gKiBAcGFyYW0gY2xpZW50IGNsaWVudCB0byBhZGQgdG8gdGhlIGV4dGVuc2lvbgot
ICoKLSAqIFRoaXMgZnVuY3Rpb24gYWRkcyBhIGNsaWVudCwgd2hpY2ggY29udGFpbnMgc2V2ZXJh
bCBjYWxsYmFja3MgcmVjZWl2aW5nIGV2ZW50cwotICogZnJvbSBXZWJQcm9jZXNzIHNpZGUsIHRv
IGEgQHAgZXh0ZW5zaW9uLgotICoKLSAqIEBzZWUgZXdrX2V4dGVuc2lvbl9jbGllbnRfZGVsCi0g
Ki8KLUVBUEkgRWluYV9Cb29sIGV3a19leHRlbnNpb25fY2xpZW50X2FkZChFd2tfRXh0ZW5zaW9u
ICpleHRlbnNpb24sIEV3a19FeHRlbnNpb25fQ2xpZW50ICpjbGllbnQpOwotCi0vKioKLSAqIERl
bGV0ZSBhIGNsaWVudCBmcm9tIHRoZSBleHRlbnNpb24uCi0gKgotICogQHBhcmFtIGV4dGVuc2lv
biBleHRlbnNpb24gdG8gZGVsZXRlIGNsaWVudAotICogQHBhcmFtIGNsaWVudCBjbGllbnQgd2hp
Y2ggY29udGFpbnMgdmVyc2lvbiwgZGF0YSBhbmQgY2FsbGJhY2tzCi0gKi8KLUVBUEkgRWluYV9C
b29sIGV3a19leHRlbnNpb25fY2xpZW50X2RlbChFd2tfRXh0ZW5zaW9uICpleHRlbnNpb24sIEV3
a19FeHRlbnNpb25fQ2xpZW50ICpjbGllbnQpOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNl
bmRpZgotCi0jZW5kaWYgLy8gZXdrX2V4dGVuc2lvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9lZmwvZXdrX2V4dGVuc2lvbl9wcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9lZmwv
ZXdrX2V4dGVuc2lvbl9wcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYz
YjAxOTVkNzQ2YzdjMGNiYjkwMTNjNWI1OTIzMjgwNGNjYmU0MDYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZWZsL2V3a19leHRlbnNpb25fcHJpdmF0ZS5oCisrKyAvZGV2L251
bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBSeXVhbiBDaG9p
IDxyeXVhbi5jaG9pQGdtYWlsLmNvbT4uICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIGV3a19leHRlbnNpb25f
cHJpdmF0ZV9oCi0jZGVmaW5lIGV3a19leHRlbnNpb25fcHJpdmF0ZV9oCi0KLSNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgSW5qZWN0ZWRCdW5kbGU7
Ci19Ci0KLWNsYXNzIEV3a0V4dGVuc2lvbiB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgRXdrRXh0
ZW5zaW9uKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGUqKSB7IH0KLSAgICB+RXdrRXh0ZW5zaW9uKCkg
eyB9Ci0KLSAgICB2b2lkIGFwcGVuZChFd2tfRXh0ZW5zaW9uX0NsaWVudCogY2xpZW50KTsKLSAg
ICB2b2lkIHJlbW92ZShFd2tfRXh0ZW5zaW9uX0NsaWVudCogY2xpZW50KTsKLQotcHJpdmF0ZToK
LSAgICBWZWN0b3I8RXdrX0V4dGVuc2lvbl9DbGllbnQqPiBtX2NsaWVudHM7Ci19OwotCi0jZW5k
aWYgLy8gZXdrX2V4dGVuc2lvbl9wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvZWZsL0V4dGVuc2lvbk1hbmFnZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9lZmwvRXh0ZW5zaW9uTWFuYWdlckVmbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGIzM2UyODZhZTQ2ZTgyYzg2MzUxYzhjZDdkNjIwMTExOTlmNzRlOWEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9lZmwvRXh0ZW5zaW9uTWFuYWdlckVmbC5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IFJ5dWFuIENob2kgPHJ5
dWFuLmNob2lAZ21haWwuY29tPi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJFeHRlbnNpb25NYW5hZ2VyRWZsLmgiCi0KLSNpbmNsdWRlICJNb2R1bGUuaCIKLSNpbmNs
dWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKLSNpbmNsdWRlICJld2tfZXh0ZW5zaW9uLmgiCi0jaW5j
bHVkZSAiZXdrX2V4dGVuc2lvbl9wcml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotRXh0ZW5zaW9uTWFuYWdlckVmbCYgRXh0ZW5zaW9uTWFuYWdlckVmbDo6c2hhcmVkKCkK
LXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RXh0ZW5zaW9uTWFuYWdlckVmbD4gZXh0ZW5z
aW9uTWFuYWdlcjsKLSAgICByZXR1cm4gZXh0ZW5zaW9uTWFuYWdlcjsKLX0KLQotRXh0ZW5zaW9u
TWFuYWdlckVmbDo6RXh0ZW5zaW9uTWFuYWdlckVmbCgpCi17Ci19Ci0KLXZvaWQgRXh0ZW5zaW9u
TWFuYWdlckVmbDo6aW5pdGlhbGl6ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLVHlwZVJlZiB1c2Vy
RGF0YSkKLXsKLSAgICBBU1NFUlQoIW1fZXh0ZW5zaW9uKTsKLQotICAgIFN0cmluZyBleHRlbnNp
b25zRGlyZWN0b3J5ID0gdG9JbXBsKHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPih1c2VyRGF0YSkp
LT5zdHJpbmcoKTsKLSAgICBpZiAoZXh0ZW5zaW9uc0RpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIG1fZXh0ZW5zaW9uID0gc3RkOjptYWtlX3VuaXF1ZTxFd2tFeHRl
bnNpb24+KHRvSW1wbChidW5kbGUpKTsKLQotICAgIFZlY3RvcjxTdHJpbmc+IG1vZHVsZVBhdGhz
ID0gV2ViQ29yZTo6bGlzdERpcmVjdG9yeShleHRlbnNpb25zRGlyZWN0b3J5LCBBU0NJSUxpdGVy
YWwoIiouc28iKSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1vZHVsZVBhdGhzLnNp
emUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChXZWJDb3JlOjpmaWxlRXhpc3RzKG1vZHVsZVBhdGhz
W2ldKSkgewotICAgICAgICAgICAgYXV0byBtb2R1bGUgPSBzdGQ6Om1ha2VfdW5pcXVlPE1vZHVs
ZT4obW9kdWxlUGF0aHNbaV0pOwotICAgICAgICAgICAgaWYgKCFtb2R1bGUtPmxvYWQoKSkKLSAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgRXdrX0V4dGVuc2lvbl9Jbml0
aWFsaXplX0Z1bmN0aW9uIGluaXRpYWxpemVGdW5jdGlvbiA9IG1vZHVsZS0+ZnVuY3Rpb25Qb2lu
dGVyPEV3a19FeHRlbnNpb25fSW5pdGlhbGl6ZV9GdW5jdGlvbj4oImV3a19leHRlbnNpb25faW5p
dCIpOwotICAgICAgICAgICAgaWYgKCFpbml0aWFsaXplRnVuY3Rpb24pCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpbml0aWFsaXplRnVuY3Rpb24obV9leHRlbnNpb24u
Z2V0KCksIG51bGxwdHIgLyogcmVzZXJ2ZWQgZm9yIHRoZSBmdXR1cmUgKi8pOwotICAgICAgICAg
ICAgbV9leHRlbnNpb25Nb2R1bGVzLmFwcGVuZChtb2R1bGUucmVsZWFzZSgpKTsKLSAgICAgICAg
fQotICAgIH0KLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9l
ZmwvRXh0ZW5zaW9uTWFuYWdlckVmbC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwv
RXh0ZW5zaW9uTWFuYWdlckVmbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YmE1
M2I2OTg4ZDQwNGQ0Yzc3ODI0YWMwOTdiZTBjMjY0Y2NhYWI4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZs
L0V4dGVuc2lvbk1hbmFnZXJFZmwuaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgUnl1YW4gQ2hvaSA8cnl1YW4uY2hvaUBnbWFpbC5jb20+
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBFeHRlbnNpb25NYW5hZ2VyRWZsX2gKLSNkZWZpbmUgRXh0ZW5z
aW9uTWFuYWdlckVmbF9oCi0KLSNpbmNsdWRlICJXS0J1bmRsZS5oIgotI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KLQotY2xhc3MgRXdrRXh0ZW5zaW9uOwotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotY2xhc3MgTW9kdWxlOwotCi1jbGFzcyBFeHRlbnNpb25NYW5hZ2VyRWZsIHsKLSAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShFeHRlbnNpb25NYW5hZ2VyRWZsKTsKLXB1YmxpYzoKLSAgICBX
S19FWFBPUlQgc3RhdGljIEV4dGVuc2lvbk1hbmFnZXJFZmwmIHNoYXJlZCgpOwotICAgIFdLX0VY
UE9SVCB2b2lkIGluaXRpYWxpemUoV0tCdW5kbGVSZWYsIFdLVHlwZVJlZik7Ci1wcml2YXRlOgot
ICAgIEV4dGVuc2lvbk1hbmFnZXJFZmwoKTsKLQotICAgIFZlY3RvcjxNb2R1bGUqPiBtX2V4dGVu
c2lvbk1vZHVsZXM7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEV3a0V4dGVuc2lvbj4gbV9leHRlbnNp
b247Ci0KLSAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8RXh0ZW5zaW9uTWFuYWdlckVm
bD47Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBFeHRlbnNpb25NYW5hZ2VyRWZsX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYkluamVjdGVkQnVuZGxlTWFpbkVm
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJJbmplY3RlZEJ1bmRsZU1h
aW5FZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTUwYThjYzFiZmQ2ZThl
NWJmYmRiMjcyNDVkNmRmODQ1YzAwYWVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYkluamVjdGVk
QnVuZGxlTWFpbkVmbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE0IFJ5dWFuIENob2kgPHJ5dWFuLmNob2lAZ21haWwuY29tPi4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkV4dGVuc2lvbk1hbmFnZXJF
ZmwuaCIKLSNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVJbml0aWFsaXplLmg+Ci0KLXVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7Ci0KLWV4dGVybiAiQyIgdm9pZCBXS0J1bmRsZUluaXRpYWxpemUoV0tC
dW5kbGVSZWYgYnVuZGxlLCBXS1R5cGVSZWYgdXNlckRhdGEpCi17Ci0gICAgRXh0ZW5zaW9uTWFu
YWdlckVmbDo6c2hhcmVkKCkuaW5pdGlhbGl6ZShidW5kbGUsIHVzZXJEYXRhKTsKLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL2VmbC9ld2Via2l0Mi1leHRlbnNpb24ucGMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9lZmwvZXdlYmtpdDItZXh0ZW5zaW9uLnBjLmluCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyNjE2Y2RjMmY5Mzk1ZWJlNzI5NmQwNTQ4ZmVjODAxZmM1MWU4M2M0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQyL2VmbC9ld2Via2l0Mi1leHRlbnNpb24ucGMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSw4ICsw
LDAgQEAKLXByZWZpeD1AQ01BS0VfSU5TVEFMTF9QUkVGSVhACi1pbmNsdWRlZGlyPSR7cHJlZml4
fS9pbmNsdWRlCi0KLU5hbWU6IGV3ZWJraXQyLWV4dGVuc2lvbgotRGVzY3JpcHRpb246IEV4dGVu
c2lvbiBmb3IgV2ViS2l0Mi9FRkwoZXdlYmtpdDIpCi1WZXJzaW9uOiBAUFJPSkVDVF9WRVJTSU9O
QAotUmVxdWlyZXM6IGVpbmEKLUNmbGFnczogLUkke2luY2x1ZGVkaXJ9L0BXZWJLaXQyX09VVFBV
VF9OQU1FQC1AUFJPSkVDVF9WRVJTSU9OX01BSk9SQC9leHRlbnNpb24KZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiZWQ1MmEzMTU5YWE4ZGU4YjAx
OGU4NmY3ZjI2NTY5MWUyZDNmMzM3Li4wMmY1NTZjYzFlYzZlYzA2NWFmNWQ3MjZkODM0ZGNkMzkx
MzFiNjM4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMTAtMDggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1
ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNzQzMzUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc1MTUK
KworICAgICAgICBJdCBicm9rZSBFRkwgbGF5b3V0IHRlc3QgdG90YWxseSAoUmVxdWVzdGVkIGJ5
IGd5dXlvdW5nIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5n
ZXNldDoKKworICAgICAgICAiW0VGTF0gSW50cm9kdWNlIEVXZWJLaXRfRXh0ZW5zaW9uIgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0OTIxCisgICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE3NDMzNQorCiAyMDE0LTEwLTA4
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXSBNYWtlIGZvcndhcmRpbmcgaGVhZGVycyBnZW5lcmF0aW9uIGRlcGVuZCBvbiBzb3VyY2Ug
Y29kZQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01p
bmlCcm93c2VyL2VmbC9tYWluLmMKaW5kZXggYjg0M2ZlZTBkNmMxYzhiZDQ5MGNhZTNjZmRmYWE0
ZWQ5MjdlZjNlMC4uZTZhNjAwM2U2ZWQ2MThiNDFjZTY3NjFiYmJhODA0YTYxMmQ5NDNkNCAxMDA2
NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYworKysgYi9Ub29scy9NaW5pQnJv
d3Nlci9lZmwvbWFpbi5jCkBAIC00OCw3ICs0OCw2IEBAIHN0YXRpYyBpbnQgdmVyYm9zZSA9IDE7
CiBzdGF0aWMgRWluYV9MaXN0ICp3aW5kb3dzID0gTlVMTDsKIHN0YXRpYyBjaGFyICpldmFzX2Vu
Z2luZV9uYW1lID0gTlVMTDsKIHN0YXRpYyBjaGFyICp1c2VyX2FnZW50X3N0cmluZyA9IE5VTEw7
Ci1zdGF0aWMgY2hhciAqZXh0ZW5zaW9uc19wYXRoID0gTlVMTDsKIHN0YXRpYyBjaGFyICpiYWNr
Z3JvdW5kX2NvbG9yX3N0cmluZyA9IE5VTEw7CiBzdGF0aWMgRWluYV9Cb29sIGVuY29kaW5nX2Rl
dGVjdG9yX2VuYWJsZWQgPSBFSU5BX0ZBTFNFOwogc3RhdGljIEVpbmFfQm9vbCBmcmFtZV9mbGF0
dGVuaW5nX2VuYWJsZWQgPSBFSU5BX0ZBTFNFOwpAQCAtMTU4LDggKzE1Nyw2IEBAIHN0YXRpYyBj
b25zdCBFY29yZV9HZXRvcHQgb3B0aW9ucyA9IHsKICAgICAgICAgICAgICgncycsICJ3aW5kb3ct
c2l6ZSIsICJXaW5kb3cgc2l6ZSBpbiBmb2xsb3dpbmcgZm9ybWF0ICh3aWR0aCl4KGhlaWdodCku
IiksCiAgICAgICAgIEVDT1JFX0dFVE9QVF9TVE9SRV9TVFIKICAgICAgICAgICAgICgndScsICJ1
c2VyLWFnZW50IiwgIlVzZXIgYWdlbnQgdG8gc2V0LiIpLAotICAgICAgICBFQ09SRV9HRVRPUFRf
U1RPUkVfU1RSCi0gICAgICAgICAgICAoJ3gnLCAiZXh0ZW5zaW9ucy1wYXRoIiwgIlRoZSBwYXRo
IHdoaWNoIGV4dGVuc2lvbnMgYXJlIHN0b3JlZC4iKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX1NU
T1JFX0RPVUJMRQogICAgICAgICAgICAgKCdyJywgImRldmljZS1waXhlbC1yYXRpbyIsICJSYXRp
byBiZXR3ZWVuIHRoZSBDU1MgdW5pdHMgYW5kIGRldmljZSBwaXhlbHMuIiksCiAgICAgICAgIEVD
T1JFX0dFVE9QVF9DQUxMQkFDS19OT0FSR1MKQEAgLTIxNTUsMTQgKzIxNTIsNyBAQCBzdGF0aWMg
QnJvd3Nlcl9XaW5kb3cgKndpbmRvd19jcmVhdGUoRXZhc19PYmplY3QgKm9wZW5lciwgaW50IHdp
ZHRoLCBpbnQgaGVpZ2h0KQogCiAgICAgRXZhcyAqZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0
KHdpbmRvdy0+ZWxtX3dpbmRvdyk7CiAgICAgRXZhc19TbWFydCAqc21hcnQgPSBldmFzX3NtYXJ0
X2NsYXNzX25ldygmZXdrVmlld0NsYXNzLT5zYyk7Ci0gICAgRXdrX0NvbnRleHQgKmNvbnRleHQ7
Ci0gICAgaWYgKG9wZW5lcikKLSAgICAgICAgY29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0
KG9wZW5lcik7Ci0gICAgZWxzZSBpZiAoZXh0ZW5zaW9uc19wYXRoKQotICAgICAgICBjb250ZXh0
ID0gZXdrX2NvbnRleHRfbmV3X3dpdGhfZXh0ZW5zaW9uc19wYXRoKGV4dGVuc2lvbnNfcGF0aCk7
Ci0gICAgZWxzZQotICAgICAgICBjb250ZXh0ID0gZXdrX2NvbnRleHRfZGVmYXVsdF9nZXQoKTsK
LQorICAgIEV3a19Db250ZXh0ICpjb250ZXh0ID0gb3BlbmVyID8gZXdrX3ZpZXdfY29udGV4dF9n
ZXQob3BlbmVyKSA6IGV3a19jb250ZXh0X2RlZmF1bHRfZ2V0KCk7CiAgICAgRXdrX1BhZ2VfR3Jv
dXAgKnBhZ2VHcm91cCA9IG9wZW5lciA/IGV3a192aWV3X3BhZ2VfZ3JvdXBfZ2V0KG9wZW5lcikg
OiBld2tfcGFnZV9ncm91cF9jcmVhdGUoIiIpOwogICAgIHdpbmRvdy0+ZXdrX3ZpZXcgPSBld2tf
dmlld19zbWFydF9hZGQoZXZhcywgc21hcnQsIGNvbnRleHQsIHBhZ2VHcm91cCk7CiAKQEAgLTIy
OTQsNyArMjI4NCw2IEBAIGVsbV9tYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAg
IEVDT1JFX0dFVE9QVF9WQUxVRV9TVFIoZXZhc19lbmdpbmVfbmFtZSksCiAgICAgICAgIEVDT1JF
X0dFVE9QVF9WQUxVRV9TVFIod2luZG93X3NpemVfc3RyaW5nKSwKICAgICAgICAgRUNPUkVfR0VU
T1BUX1ZBTFVFX1NUUih1c2VyX2FnZW50X3N0cmluZyksCi0gICAgICAgIEVDT1JFX0dFVE9QVF9W
QUxVRV9TVFIoZXh0ZW5zaW9uc19wYXRoKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX0RP
VUJMRShkZXZpY2VfcGl4ZWxfcmF0aW8pLAogICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfQk9P
TChxdWl0T3B0aW9uKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX0JPT0woZW5jb2Rpbmdf
ZGV0ZWN0b3JfZW5hYmxlZCksCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jb25maWcvd2F0Y2hsaXN0IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29u
ZmlnL3dhdGNobGlzdAppbmRleCAyZDI4ZmM1OWMyZGZlNTQwMThlOGIyNWI5ZDhmYzEyMDljZjU3
ODZkLi5iMWY4NTMzMjMxNDg2OGJlMzU1ODMxNmRiZTBkYjE5NTBkMzJhNWYyIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvd2F0Y2hsaXN0CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy93YXRjaGxpc3QKQEAgLTEwNyw4ICsx
MDcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgciJ8TGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsLyIsCiAgICAgICAgIH0sCiAgICAgICAgICJFRkxXZWJLaXQyUHVibGljQVBJIjogewotICAg
ICAgICAgICAgImZpbGVuYW1lIjogciJTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9lZmwvIgotICAgICAgICAgICAgICAgICAgICAgICAgciJ8U291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvIgorICAgICAgICAgICAgImZpbGVuYW1lIjogciJTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC8iCiAgICAgICAgICAgICAgICAgICAgICAgICByInxT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsLyIsCiAgICAgICAgIH0sCiAgICAgICAg
ICJFRkxXZWJLaXQyUGxhdGZvcm1TcGVjaWZpYyI6IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlci5weQppbmRleCBkZGFlNjg2NjhhZmJlZmZjZjdjNzQ4ZWU2NTZiMGM0MmQ3OTc1
NmY4Li4yNTNlYjIzZDRkZWE0YzQ3MGI1YzI3Mzk4OGMwZTVjNWNjZmJkYzZjIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC0xOTAsOCArMTkwLDcgQEAgX1BBVEhf
UlVMRVNfU1BFQ0lGSUVSID0gWwogICAgIChbIyBUaGUgRUZMIEFQSXMgdXNlIEVGTCBuYW1pbmcg
c3R5bGUsIHdoaWNoIGluY2x1ZGVzCiAgICAgICAjIGJvdGggbG93ZXItY2FzZWQgYW5kIGNhbWVs
LWNhc2VkLCB1bmRlcnNjb3JlLXNwYXJhdGVkCiAgICAgICAjIHZhbHVlcy4KLSAgICAgICJTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC8iLAotICAgICAgIlNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2VmbC8iXSwKKyAgICAgICJTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC8iXSwKICAgICAgWyItcmVhZGFiaWxpdHkvbmFtaW5nIiwKICAg
ICAgICItcmVhZGFiaWxpdHkvcGFyYW1ldGVyX25hbWUiXSksCiAgICAgKFsjIE1pbmlCcm93c2Vy
L2VmbCBhcmUgRUZMIHNpbXBsZSBhcHBsaWNhdGlvbi4K
</data>

          </attachment>
      

    </bug>

</bugzilla>