<?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>223388</bug_id>
          
          <creation_ts>2021-03-17 11:14:18 -0700</creation_ts>
          <short_desc>Determine if we have useFastJITPermissions on arm64e at runtime instead of hardcoding it as always enabled</short_desc>
          <delta_ts>2021-03-17 17:08:04 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mitz</cc>
    
    <cc>msaboff</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1740794</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-03-17 11:14:18 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740795</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-03-17 11:15:25 -0700</bug_when>
    <thetext>&lt;rdar://74819266&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740815</commentid>
    <comment_count>2</comment_count>
      <attachid>423509</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-03-17 11:31:56 -0700</bug_when>
    <thetext>Created attachment 423509
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740818</commentid>
    <comment_count>3</comment_count>
      <attachid>423510</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-03-17 11:38:39 -0700</bug_when>
    <thetext>Created attachment 423510
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740831</commentid>
    <comment_count>4</comment_count>
      <attachid>423510</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-03-17 12:04:37 -0700</bug_when>
    <thetext>Comment on attachment 423510
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=423510&amp;action=review

r=me with suggested improvement.

&gt; Source/WTF/wtf/PlatformEnableCocoa.h:477
&gt; +#if !defined(ENABLE_SEPARATED_WX_HEAP) &amp;&amp; CPU(ARM64)
&gt;  #define ENABLE_SEPARATED_WX_HEAP 1

We used to not build in the code for initializeSeparatedWXHeaps() and jitWriteThunkGenerator() at all on ARM64E.  Now, we do.  Can you add the following to those 2 functions as a sanity check:

    auto exitScope = makeScopeExit([] {
        RELEASE_ASSERT(!g_jscConfig.useFastJITPermissions);
    });</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740850</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-03-17 12:37:27 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #4)
&gt; Comment on attachment 423510 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423510&amp;action=review
&gt; 
&gt; r=me with suggested improvement.
&gt; 
&gt; &gt; Source/WTF/wtf/PlatformEnableCocoa.h:477
&gt; &gt; +#if !defined(ENABLE_SEPARATED_WX_HEAP) &amp;&amp; CPU(ARM64)
&gt; &gt;  #define ENABLE_SEPARATED_WX_HEAP 1
&gt; 
&gt; We used to not build in the code for initializeSeparatedWXHeaps() and
&gt; jitWriteThunkGenerator() at all on ARM64E.  Now, we do.  Can you add the
&gt; following to those 2 functions as a sanity check:
&gt; 
&gt;     auto exitScope = makeScopeExit([] {
&gt;         RELEASE_ASSERT(!g_jscConfig.useFastJITPermissions);
&gt;     });

Sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740922</commentid>
    <comment_count>6</comment_count>
      <attachid>423531</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-03-17 15:26:32 -0700</bug_when>
    <thetext>Created attachment 423531
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740960</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-17 17:08:00 -0700</bug_when>
    <thetext>Committed r274602: &lt;https://commits.webkit.org/r274602&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423531.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423509</attachid>
            <date>2021-03-17 11:31:56 -0700</date>
            <delta_ts>2021-03-17 11:38:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>9311</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc0NTcyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDIxLTAzLTE3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IERldGVybWluZSBpZiB3ZSBoYXZlIHVzZUZhc3RKSVRQZXJtaXNzaW9ucyBvbiBhcm02NGUgYXQg
cnVudGltZSBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgaXQgYXMgYWx3YXlzIGVuYWJsZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzM4OAorICAgICAg
ICA8cmRhcjovLzc0ODE5MjY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogYXNzZW1ibGVyL0Zhc3RKSVRQZXJtaXNzaW9ucy5oOgorICAgICAgICAo
dGhyZWFkU2VsZlJlc3RyaWN0UldYVG9SVyk6CisgICAgICAgICh0aHJlYWRTZWxmUmVzdHJpY3RS
V1hUb1JYKToKKyAgICAgICAgKHVzZUZhc3RKSVRQZXJtaXNzaW9ucyk6IERlbGV0ZWQuCisgICAg
ICAgIChmYXN0SklUUGVybWlzc2lvbnNJc1N1cHBvcnRlZCk6IERlbGV0ZWQuCisgICAgICAgICog
YXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwOgorICAgICAgICAoSlNDOjpMaW5rQnVmZmVyOjpjb3B5
Q29tcGFjdEFuZExpbmtDb2RlKToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5j
cHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24pOgorICAgICAg
ICAqIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmg6CisgICAgICAgIChKU0M6OnBlcmZvcm1KSVRN
ZW1jcHkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDQ29uZmlnLmg6CisKIDIwMjEtMDMtMTcgIEFs
ZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFtXZWJJRExd
IEZpeCBjb252ZXJ0UmVjb3JkKCkgdG8gdGhyb3cgb24gZW51bWVyYWJsZSBzeW1ib2wgfGtleXwK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvRmFzdEpJVFBlcm1pc3Npb25z
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9GYXN0SklU
UGVybWlzc2lvbnMuaAkocmV2aXNpb24gMjc0NTY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9GYXN0SklUUGVybWlzc2lvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMjgg
KzI5LDE3IEBACiAKICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KIAorI2luY2x1ZGUgIkpTQ0Nv
bmZpZy5oIgorCiAjaWYgVVNFKFBUSFJFQURfSklUX1BFUk1JU1NJT05TX0FQSSkKICNpbmNsdWRl
IDxwdGhyZWFkLmg+CiAjZWxpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2luY2x1ZGUgPG9z
L3RocmVhZF9zZWxmX3Jlc3RyaWN0Lmg+IAogI2VuZGlmCiAKLXN0YXRpYyBBTFdBWVNfSU5MSU5F
IGJvb2wgdXNlRmFzdEpJVFBlcm1pc3Npb25zKCkKLXsKLSNpZiBDUFUoQVJNNjRFKQotICAgIHJl
dHVybiB0cnVlOwotI2VsaWYgVVNFKFBUSFJFQURfSklUX1BFUk1JU1NJT05TX0FQSSkgCi0gICAg
cmV0dXJuICEhcHRocmVhZF9qaXRfd3JpdGVfcHJvdGVjdF9zdXBwb3J0ZWRfbnAoKTsKLSNlbGlm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0gICAgcmV0dXJuICEhb3NfdGhyZWFkX3NlbGZfcmVz
dHJpY3Rfcnd4X2lzX3N1cHBvcnRlZCgpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5k
aWYKLX0KLQogc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCB0aHJlYWRTZWxmUmVzdHJpY3RSV1hU
b1JXKCkKIHsKLSAgICBBU1NFUlQodXNlRmFzdEpJVFBlcm1pc3Npb25zKCkpOworICAgIEFTU0VS
VChnX2pzY0NvbmZpZy51c2VGYXN0SklUUGVybWlzc2lvbnMpOwogCiAjaWYgVVNFKFBUSFJFQURf
SklUX1BFUk1JU1NJT05TX0FQSSkgCiAgICAgcHRocmVhZF9qaXRfd3JpdGVfcHJvdGVjdF9ucChm
YWxzZSk7CkBAIC02NSw3ICs1NCw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgdGhyZWFk
U2VsZlJlc3QKIAogc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCB0aHJlYWRTZWxmUmVzdHJpY3RS
V1hUb1JYKCkKIHsKLSAgICBBU1NFUlQodXNlRmFzdEpJVFBlcm1pc3Npb25zKCkpOworICAgIEFT
U0VSVChnX2pzY0NvbmZpZy51c2VGYXN0SklUUGVybWlzc2lvbnMpOwogCiAjaWYgVVNFKFBUSFJF
QURfSklUX1BFUk1JU1NJT05TX0FQSSkgCiAgICAgcHRocmVhZF9qaXRfd3JpdGVfcHJvdGVjdF9u
cCh0cnVlKTsKQEAgLTgwLDE2ICs2OSw2IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgdGhy
ZWFkU2VsZlJlc3QKIAogI2Vsc2UgLy8gTm90IE9TKERBUldJTikgJiYgQ1BVKEFSTTY0KQogCi1j
b25zdGV4cHIgYm9vbCBmYXN0SklUUGVybWlzc2lvbnNJc1N1cHBvcnRlZCgpCi17Ci0gICAgcmV0
dXJuIGZhbHNlOwotfQotCi1jb25zdGV4cHIgYm9vbCB1c2VGYXN0SklUUGVybWlzc2lvbnMoKQot
ewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogTk9fUkVUVVJOX0RVRV9UT19DUkFTSCBBTFdBWVNf
SU5MSU5FIHZvaWQgdGhyZWFkU2VsZlJlc3RyaWN0UldYVG9SVygpCiB7CiAgICAgQ1JBU0goKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNw
cAkocmV2aXNpb24gMjc0NTY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9M
aW5rQnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQzLDcgKzI0Myw3IEBAIHZvaWQgTGlu
a0J1ZmZlcjo6Y29weUNvbXBhY3RBbmRMaW5rQ29kZSgKIAogICAgIHVpbnQ4X3QqIGNvZGVPdXRE
YXRhID0gbV9jb2RlLmRhdGFMb2NhdGlvbjx1aW50OF90Kj4oKTsKIAotICAgIEJyYW5jaENvbXBh
Y3Rpb25MaW5rQnVmZmVyIG91dEJ1ZmZlcihtX3NpemUsIHVzZUZhc3RKSVRQZXJtaXNzaW9ucygp
ID8gY29kZU91dERhdGEgOiAwKTsKKyAgICBCcmFuY2hDb21wYWN0aW9uTGlua0J1ZmZlciBvdXRC
dWZmZXIobV9zaXplLCBnX2pzY0NvbmZpZy51c2VGYXN0SklUUGVybWlzc2lvbnMgPyBjb2RlT3V0
RGF0YSA6IDApOwogICAgIHVpbnQ4X3QqIG91dERhdGEgPSBvdXRCdWZmZXIuZGF0YSgpOwogCiAj
aWYgQ1BVKEFSTTY0KQpAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgTGlua0J1ZmZlcjo6Y29weUNv
bXBhY3RBbmRMaW5rQ29kZSgKICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH07CiAKLSAgICBp
ZiAodXNlRmFzdEpJVFBlcm1pc3Npb25zKCkpCisgICAgaWYgKGdfanNjQ29uZmlnLnVzZUZhc3RK
SVRQZXJtaXNzaW9ucykKICAgICAgICAgdGhyZWFkU2VsZlJlc3RyaWN0UldYVG9SVygpOwogCiAg
ICAgaWYgKG1fc2hvdWxkUGVyZm9ybUJyYW5jaENvbXBhY3Rpb24pIHsKQEAgLTM1Miw3ICszNTIs
NyBAQCB2b2lkIExpbmtCdWZmZXI6OmNvcHlDb21wYWN0QW5kTGlua0NvZGUoCiAgICAgICAgIGNv
bnN0IGludHB0cl90IHRvID0ganVtcHNUb0xpbmtbaV0udG8oKTsKICNlbmRpZgogICAgICAgICB1
aW50OF90KiB0YXJnZXQgPSBjb2RlT3V0RGF0YSArIHRvIC0gZXhlY3V0YWJsZU9mZnNldEZvcih0
byk7Ci0gICAgICAgIGlmICh1c2VGYXN0SklUUGVybWlzc2lvbnMoKSkKKyAgICAgICAgaWYgKGdf
anNjQ29uZmlnLnVzZUZhc3RKSVRQZXJtaXNzaW9ucykKICAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpsaW5rPG1lbWNweVdyYXBwZXI+KGp1bXBzVG9MaW5rW2ldLCBvdXREYXRhICsganVtcHNU
b0xpbmtbaV0uZnJvbSgpLCBsb2NhdGlvbiwgdGFyZ2V0KTsKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Omxpbms8cGVyZm9ybUpJVE1lbWNweT4oanVtcHNUb0xpbmtb
aV0sIG91dERhdGEgKyBqdW1wc1RvTGlua1tpXS5mcm9tKCksIGxvY2F0aW9uLCB0YXJnZXQpOwpA
QCAtMzYyLDEzICszNjIsMTMgQEAgdm9pZCBMaW5rQnVmZmVyOjpjb3B5Q29tcGFjdEFuZExpbmtD
b2RlKAogICAgIGlmICghbV9leGVjdXRhYmxlTWVtb3J5KSB7CiAgICAgICAgIHNpemVfdCBub3BT
aXplSW5CeXRlcyA9IGluaXRpYWxTaXplIC0gY29tcGFjdFNpemU7CiAKLSAgICAgICAgaWYgKHVz
ZUZhc3RKSVRQZXJtaXNzaW9ucygpKQorICAgICAgICBpZiAoZ19qc2NDb25maWcudXNlRmFzdEpJ
VFBlcm1pc3Npb25zKQogICAgICAgICAgICAgQXNzZW1ibGVyOjpmaWxsTm9wczxtZW1jcHlXcmFw
cGVyPihvdXREYXRhICsgY29tcGFjdFNpemUsIG5vcFNpemVJbkJ5dGVzKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgQXNzZW1ibGVyOjpmaWxsTm9wczxwZXJmb3JtSklUTWVtY3B5PihvdXRE
YXRhICsgY29tcGFjdFNpemUsIG5vcFNpemVJbkJ5dGVzKTsKICAgICB9CiAKLSAgICBpZiAodXNl
RmFzdEpJVFBlcm1pc3Npb25zKCkpCisgICAgaWYgKGdfanNjQ29uZmlnLnVzZUZhc3RKSVRQZXJt
aXNzaW9ucykKICAgICAgICAgdGhyZWFkU2VsZlJlc3RyaWN0UldYVG9SWCgpOwogCiAgICAgaWYg
KG1fZXhlY3V0YWJsZU1lbW9yeSkgewpAQCAtMzc3LDcgKzM3Nyw3IEBAIHZvaWQgTGlua0J1ZmZl
cjo6Y29weUNvbXBhY3RBbmRMaW5rQ29kZSgKICAgICB9CiAKICNpZiBFTkFCTEUoSklUKQotICAg
IGlmICh1c2VGYXN0SklUUGVybWlzc2lvbnMoKSkgeworICAgIGlmIChnX2pzY0NvbmZpZy51c2VG
YXN0SklUUGVybWlzc2lvbnMpIHsKICAgICAgICAgQVNTRVJUKGNvZGVPdXREYXRhID09IG91dERh
dGEpOwogICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6ZHVtcEpJVE1lbW9yeVBhdGgoKSkp
CiAgICAgICAgICAgICBkdW1wSklUTWVtb3J5KG91dERhdGEsIG91dERhdGEsIG1fc2l6ZSk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRv
ci5jcHAJKHJldmlzaW9uIDI3NDU2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhl
Y3V0YWJsZUFsbG9jYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0NiwxMiArMzQ2LDIxIEBA
IHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpJVFJlc2VydmF0aW9uIGluaXQKICAgICAgICAgQVNTRVJU
KHJlc2VydmF0aW9uLnBhZ2VSZXNlcnZhdGlvbi5zaXplKCkgPT0gcmVzZXJ2YXRpb24uc2l6ZSk7
CiAgICAgICAgIHJlc2VydmF0aW9uLmJhc2UgPSByZXNlcnZhdGlvbi5wYWdlUmVzZXJ2YXRpb24u
YmFzZSgpOwogCi0gICAgICAgIGJvb2wgZmFzdEpJVFBlcm1pc3Npb25zSXNTdXBwb3J0ZWQgPSB1
c2VGYXN0SklUUGVybWlzc2lvbnMoKTsKLSAgICAgICAgaWYgKGZhc3RKSVRQZXJtaXNzaW9uc0lz
U3VwcG9ydGVkKQorICAgICAgICBib29sIGZhc3RKSVRQZXJtaXNzaW9uc0lzU3VwcG9ydGVkID0g
ZmFsc2U7CisjaWYgT1MoREFSV0lOKSAmJiBDUFUoQVJNNjQpCisjaWYgVVNFKFBUSFJFQURfSklU
X1BFUk1JU1NJT05TX0FQSSkgCisgICAgICAgIGZhc3RKSVRQZXJtaXNzaW9uc0lzU3VwcG9ydGVk
ID0gISFwdGhyZWFkX2ppdF93cml0ZV9wcm90ZWN0X3N1cHBvcnRlZF9ucCgpOworI2VsaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKyAgICAgICAgZmFzdEpJVFBlcm1pc3Npb25zSXNTdXBwb3J0
ZWQgPSAhIW9zX3RocmVhZF9zZWxmX3Jlc3RyaWN0X3J3eF9pc19zdXBwb3J0ZWQoKTsKKyNlbmRp
ZgorI2VuZGlmCisgICAgICAgIGdfanNjQ29uZmlnLnVzZUZhc3RKSVRQZXJtaXNzaW9ucyA9IGZh
c3RKSVRQZXJtaXNzaW9uc0lzU3VwcG9ydGVkOworCisgICAgICAgIGlmIChnX2pzY0NvbmZpZy51
c2VGYXN0SklUUGVybWlzc2lvbnMpCiAgICAgICAgICAgICB0aHJlYWRTZWxmUmVzdHJpY3RSV1hU
b1JYKCk7CiAKICNpZiBFTkFCTEUoU0VQQVJBVEVEX1dYX0hFQVApCi0gICAgICAgIGlmICghZmFz
dEpJVFBlcm1pc3Npb25zSXNTdXBwb3J0ZWQpIHsKKyAgICAgICAgaWYgKCFnX2pzY0NvbmZpZy51
c2VGYXN0SklUUGVybWlzc2lvbnMpIHsKICAgICAgICAgICAgIC8vIEZpcnN0IHBhZ2Ugb2Ygb3Vy
IEpJVCBhbGxvY2F0aW9uIGlzIHJlc2VydmVkLgogICAgICAgICAgICAgQVNTRVJUKHJlc2VydmF0
aW9uLnNpemUgPj0gcGFnZVNpemUoKSAqIDIpOwogICAgICAgICAgICAgcmVzZXJ2YXRpb24uYmFz
ZSA9ICh2b2lkKikoKHVpbnRwdHJfdCkocmVzZXJ2YXRpb24uYmFzZSkgKyBwYWdlU2l6ZSgpKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRv
ci5oCShyZXZpc2lvbiAyNzQ1NjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1
dGFibGVBbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRp
YyBBTFdBWVNfSU5MSU5FIHZvaWQqIHBlcmZvcm1KSVRNZW0KICAgICAgICAgaWYgKFVOTElLRUxZ
KE9wdGlvbnM6OmR1bXBKSVRNZW1vcnlQYXRoKCkpKQogICAgICAgICAgICAgZHVtcEpJVE1lbW9y
eShkc3QsIHNyYywgbik7CiAKLSAgICAgICAgaWYgKHVzZUZhc3RKSVRQZXJtaXNzaW9ucygpKSB7
CisgICAgICAgIGlmIChnX2pzY0NvbmZpZy51c2VGYXN0SklUUGVybWlzc2lvbnMpIHsKICAgICAg
ICAgICAgIHRocmVhZFNlbGZSZXN0cmljdFJXWFRvUlcoKTsKICAgICAgICAgICAgIG1lbWNweShk
c3QsIHNyYywgbik7CiAgICAgICAgICAgICB0aHJlYWRTZWxmUmVzdHJpY3RSV1hUb1JYKCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NDb25maWcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NDb25maWcuaAkocmV2aXNpb24g
Mjc0NTY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDQ29uZmlnLmgJKHdv
cmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDggQEAgc3RydWN0IENvbmZpZyB7CiAgICAgYm9vbCBy
ZXN0cmljdGVkT3B0aW9uc0VuYWJsZWQ7CiAgICAgYm9vbCBqaXREaXNhYmxlZDsKIAorICAgIGJv
b2wgdXNlRmFzdEpJVFBlcm1pc3Npb25zOworCiAgICAgLy8gVGhlIGZvbGxvd2luZyBIYXNCZWVu
Q2FsbGVkIGZsYWdzIGFyZSBmb3IgYXVkaXRpbmcgY2FsbF9vbmNlIGluaXRpYWxpemF0aW9uIGZ1
bmN0aW9ucy4KICAgICBib29sIGluaXRpYWxpemVIYXNCZWVuQ2FsbGVkOwogCkluZGV4OiBTb3Vy
Y2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2
aXNpb24gMjc0NTY3KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNCBAQAorMjAyMS0wMy0xNyAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KKworICAgICAgICBEZXRlcm1pbmUgaWYgd2UgaGF2ZSB1c2VGYXN0SklUUGVybWlzc2lvbnMg
b24gYXJtNjRlIGF0IHJ1bnRpbWUgaW5zdGVhZCBvZiBoYXJkY29kaW5nIGl0IGFzIGFsd2F5cyBl
bmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjMzODgKKyAgICAgICAgPHJkYXI6Ly83NDgxOTI2Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6Cisg
ICAgICAgICogd3RmL1BsYXRmb3JtVXNlLmg6CisKIDIwMjEtMDMtMTYgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gY2hhbmdlIGZvciB0aGUgbGFu
Z3VhZ2Uvc3VidGl0bGUgdHJhY2tzIGJ1dHRvbiB0byB1c2UgYW4gYE5TTWVudWAgaW5zdGVhZCBv
ZiB3ZWIgY29udGVudApJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAkocmV2
aXNpb24gMjc0NTY3KQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00NzMsNyArNDczLDcgQEAKICNkZWZpbmUgRU5BQkxFX1NFQ19JVEVN
X1NISU0gMQogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfU0VQQVJBVEVEX1dYX0hFQVAp
ICYmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIENQVShBUk02NCkgJiYgIUNQVShBUk02NEUpCisj
aWYgIWRlZmluZWQoRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQKSAmJiBDUFUoQVJNNjQpCiAjZGVm
aW5lIEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCAxCiAjZW5kaWYKIApJbmRleDogU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1Vc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVVzZS5oCShyZXZpc2lvbiAyNzQ1NjcpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTcsNyArMTU3LDcgQEAKICNkZWZpbmUgVVNFX0JVSUxUSU5f
RlJBTUVfQUREUkVTUyAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIENQ
VShBUk02NCkgJiYgSEFWRShSRU1BUF9KSVQpCisjaWYgT1MoREFSV0lOKSAmJiBDUFUoQVJNNjQp
ICYmIEhBVkUoUkVNQVBfSklUKQogI2RlZmluZSBVU0VfRVhFQ1VURV9PTkxZX0pJVF9XUklURV9G
VU5DVElPTiAxCiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423510</attachid>
            <date>2021-03-17 11:38:39 -0700</date>
            <delta_ts>2021-03-17 15:26:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>9307</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc0NTcyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDIxLTAzLTE3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IERldGVybWluZSBpZiB3ZSBoYXZlIHVzZUZhc3RKSVRQZXJtaXNzaW9ucyBvbiBhcm02NGUgYXQg
cnVudGltZSBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgaXQgYXMgYWx3YXlzIGVuYWJsZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzM4OAorICAgICAg
ICA8cmRhcjovLzc0ODE5MjY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogYXNzZW1ibGVyL0Zhc3RKSVRQZXJtaXNzaW9ucy5oOgorICAgICAgICAo
dGhyZWFkU2VsZlJlc3RyaWN0UldYVG9SVyk6CisgICAgICAgICh0aHJlYWRTZWxmUmVzdHJpY3RS
V1hUb1JYKToKKyAgICAgICAgKHVzZUZhc3RKSVRQZXJtaXNzaW9ucyk6IERlbGV0ZWQuCisgICAg
ICAgIChmYXN0SklUUGVybWlzc2lvbnNJc1N1cHBvcnRlZCk6IERlbGV0ZWQuCisgICAgICAgICog
YXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwOgorICAgICAgICAoSlNDOjpMaW5rQnVmZmVyOjpjb3B5
Q29tcGFjdEFuZExpbmtDb2RlKToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5j
cHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24pOgorICAgICAg
ICAqIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmg6CisgICAgICAgIChKU0M6OnBlcmZvcm1KSVRN
ZW1jcHkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDQ29uZmlnLmg6CisKIDIwMjEtMDMtMTcgIEFs
ZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFtXZWJJRExd
IEZpeCBjb252ZXJ0UmVjb3JkKCkgdG8gdGhyb3cgb24gZW51bWVyYWJsZSBzeW1ib2wgfGtleXwK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvRmFzdEpJVFBlcm1pc3Npb25z
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9GYXN0SklU
UGVybWlzc2lvbnMuaAkocmV2aXNpb24gMjc0NTY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9GYXN0SklUUGVybWlzc2lvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsOCBAQAogCiAjaWYgT1MoREFSV0lOKSAmJiBDUFUoQVJNNjQpCiAKKyNpbmNsdWRlICJKU0ND
b25maWcuaCIKKwogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogCiAjaWYgVVNFKFBUSFJFQURf
SklUX1BFUk1JU1NJT05TX0FQSSkKQEAgLTM1LDIyICszNyw5IEBACiAjaW5jbHVkZSA8b3MvdGhy
ZWFkX3NlbGZfcmVzdHJpY3QuaD4gCiAjZW5kaWYKIAotc3RhdGljIEFMV0FZU19JTkxJTkUgYm9v
bCB1c2VGYXN0SklUUGVybWlzc2lvbnMoKQotewotI2lmIENQVShBUk02NEUpCi0gICAgcmV0dXJu
IHRydWU7Ci0jZWxpZiBVU0UoUFRIUkVBRF9KSVRfUEVSTUlTU0lPTlNfQVBJKSAKLSAgICByZXR1
cm4gISFwdGhyZWFkX2ppdF93cml0ZV9wcm90ZWN0X3N1cHBvcnRlZF9ucCgpOwotI2VsaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKLSAgICByZXR1cm4gISFvc190aHJlYWRfc2VsZl9yZXN0cmlj
dF9yd3hfaXNfc3VwcG9ydGVkKCk7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgot
fQotCiBzdGF0aWMgQUxXQVlTX0lOTElORSB2b2lkIHRocmVhZFNlbGZSZXN0cmljdFJXWFRvUlco
KQogewotICAgIEFTU0VSVCh1c2VGYXN0SklUUGVybWlzc2lvbnMoKSk7CisgICAgQVNTRVJUKGdf
anNjQ29uZmlnLnVzZUZhc3RKSVRQZXJtaXNzaW9ucyk7CiAKICNpZiBVU0UoUFRIUkVBRF9KSVRf
UEVSTUlTU0lPTlNfQVBJKSAKICAgICBwdGhyZWFkX2ppdF93cml0ZV9wcm90ZWN0X25wKGZhbHNl
KTsKQEAgLTY1LDcgKzU0LDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCB0aHJlYWRTZWxm
UmVzdAogCiBzdGF0aWMgQUxXQVlTX0lOTElORSB2b2lkIHRocmVhZFNlbGZSZXN0cmljdFJXWFRv
UlgoKQogewotICAgIEFTU0VSVCh1c2VGYXN0SklUUGVybWlzc2lvbnMoKSk7CisgICAgQVNTRVJU
KGdfanNjQ29uZmlnLnVzZUZhc3RKSVRQZXJtaXNzaW9ucyk7CiAKICNpZiBVU0UoUFRIUkVBRF9K
SVRfUEVSTUlTU0lPTlNfQVBJKSAKICAgICBwdGhyZWFkX2ppdF93cml0ZV9wcm90ZWN0X25wKHRy
dWUpOwpAQCAtODAsMTYgKzY5LDYgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCB0aHJlYWRT
ZWxmUmVzdAogCiAjZWxzZSAvLyBOb3QgT1MoREFSV0lOKSAmJiBDUFUoQVJNNjQpCiAKLWNvbnN0
ZXhwciBib29sIGZhc3RKSVRQZXJtaXNzaW9uc0lzU3VwcG9ydGVkKCkKLXsKLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLWNvbnN0ZXhwciBib29sIHVzZUZhc3RKSVRQZXJtaXNzaW9ucygpCi17Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCiBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIEFMV0FZU19JTkxJ
TkUgdm9pZCB0aHJlYWRTZWxmUmVzdHJpY3RSV1hUb1JXKCkKIHsKICAgICBDUkFTSCgpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwCShy
ZXZpc2lvbiAyNzQ1NjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtC
dWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDMsNyArMjQzLDcgQEAgdm9pZCBMaW5rQnVm
ZmVyOjpjb3B5Q29tcGFjdEFuZExpbmtDb2RlKAogCiAgICAgdWludDhfdCogY29kZU91dERhdGEg
PSBtX2NvZGUuZGF0YUxvY2F0aW9uPHVpbnQ4X3QqPigpOwogCi0gICAgQnJhbmNoQ29tcGFjdGlv
bkxpbmtCdWZmZXIgb3V0QnVmZmVyKG1fc2l6ZSwgdXNlRmFzdEpJVFBlcm1pc3Npb25zKCkgPyBj
b2RlT3V0RGF0YSA6IDApOworICAgIEJyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyIG91dEJ1ZmZl
cihtX3NpemUsIGdfanNjQ29uZmlnLnVzZUZhc3RKSVRQZXJtaXNzaW9ucyA/IGNvZGVPdXREYXRh
IDogMCk7CiAgICAgdWludDhfdCogb3V0RGF0YSA9IG91dEJ1ZmZlci5kYXRhKCk7CiAKICNpZiBD
UFUoQVJNNjQpCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBMaW5rQnVmZmVyOjpjb3B5Q29tcGFj
dEFuZExpbmtDb2RlKAogICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfTsKIAotICAgIGlmICh1
c2VGYXN0SklUUGVybWlzc2lvbnMoKSkKKyAgICBpZiAoZ19qc2NDb25maWcudXNlRmFzdEpJVFBl
cm1pc3Npb25zKQogICAgICAgICB0aHJlYWRTZWxmUmVzdHJpY3RSV1hUb1JXKCk7CiAKICAgICBp
ZiAobV9zaG91bGRQZXJmb3JtQnJhbmNoQ29tcGFjdGlvbikgewpAQCAtMzUyLDcgKzM1Miw3IEBA
IHZvaWQgTGlua0J1ZmZlcjo6Y29weUNvbXBhY3RBbmRMaW5rQ29kZSgKICAgICAgICAgY29uc3Qg
aW50cHRyX3QgdG8gPSBqdW1wc1RvTGlua1tpXS50bygpOwogI2VuZGlmCiAgICAgICAgIHVpbnQ4
X3QqIHRhcmdldCA9IGNvZGVPdXREYXRhICsgdG8gLSBleGVjdXRhYmxlT2Zmc2V0Rm9yKHRvKTsK
LSAgICAgICAgaWYgKHVzZUZhc3RKSVRQZXJtaXNzaW9ucygpKQorICAgICAgICBpZiAoZ19qc2ND
b25maWcudXNlRmFzdEpJVFBlcm1pc3Npb25zKQogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
Omxpbms8bWVtY3B5V3JhcHBlcj4oanVtcHNUb0xpbmtbaV0sIG91dERhdGEgKyBqdW1wc1RvTGlu
a1tpXS5mcm9tKCksIGxvY2F0aW9uLCB0YXJnZXQpOwogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6bGluazxwZXJmb3JtSklUTWVtY3B5PihqdW1wc1RvTGlua1tpXSwg
b3V0RGF0YSArIGp1bXBzVG9MaW5rW2ldLmZyb20oKSwgbG9jYXRpb24sIHRhcmdldCk7CkBAIC0z
NjIsMTMgKzM2MiwxMyBAQCB2b2lkIExpbmtCdWZmZXI6OmNvcHlDb21wYWN0QW5kTGlua0NvZGUo
CiAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpIHsKICAgICAgICAgc2l6ZV90IG5vcFNpemVJ
bkJ5dGVzID0gaW5pdGlhbFNpemUgLSBjb21wYWN0U2l6ZTsKIAotICAgICAgICBpZiAodXNlRmFz
dEpJVFBlcm1pc3Npb25zKCkpCisgICAgICAgIGlmIChnX2pzY0NvbmZpZy51c2VGYXN0SklUUGVy
bWlzc2lvbnMpCiAgICAgICAgICAgICBBc3NlbWJsZXI6OmZpbGxOb3BzPG1lbWNweVdyYXBwZXI+
KG91dERhdGEgKyBjb21wYWN0U2l6ZSwgbm9wU2l6ZUluQnl0ZXMpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBBc3NlbWJsZXI6OmZpbGxOb3BzPHBlcmZvcm1KSVRNZW1jcHk+KG91dERhdGEg
KyBjb21wYWN0U2l6ZSwgbm9wU2l6ZUluQnl0ZXMpOwogICAgIH0KIAotICAgIGlmICh1c2VGYXN0
SklUUGVybWlzc2lvbnMoKSkKKyAgICBpZiAoZ19qc2NDb25maWcudXNlRmFzdEpJVFBlcm1pc3Np
b25zKQogICAgICAgICB0aHJlYWRTZWxmUmVzdHJpY3RSV1hUb1JYKCk7CiAKICAgICBpZiAobV9l
eGVjdXRhYmxlTWVtb3J5KSB7CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9pZCBMaW5rQnVmZmVyOjpj
b3B5Q29tcGFjdEFuZExpbmtDb2RlKAogICAgIH0KIAogI2lmIEVOQUJMRShKSVQpCi0gICAgaWYg
KHVzZUZhc3RKSVRQZXJtaXNzaW9ucygpKSB7CisgICAgaWYgKGdfanNjQ29uZmlnLnVzZUZhc3RK
SVRQZXJtaXNzaW9ucykgewogICAgICAgICBBU1NFUlQoY29kZU91dERhdGEgPT0gb3V0RGF0YSk7
CiAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjpkdW1wSklUTWVtb3J5UGF0aCgpKSkKICAg
ICAgICAgICAgIGR1bXBKSVRNZW1vcnkob3V0RGF0YSwgb3V0RGF0YSwgbV9zaXplKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNw
cAkocmV2aXNpb24gMjc0NTY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ2LDEyICszNDYsMjEgQEAgc3Rh
dGljIEFMV0FZU19JTkxJTkUgSklUUmVzZXJ2YXRpb24gaW5pdAogICAgICAgICBBU1NFUlQocmVz
ZXJ2YXRpb24ucGFnZVJlc2VydmF0aW9uLnNpemUoKSA9PSByZXNlcnZhdGlvbi5zaXplKTsKICAg
ICAgICAgcmVzZXJ2YXRpb24uYmFzZSA9IHJlc2VydmF0aW9uLnBhZ2VSZXNlcnZhdGlvbi5iYXNl
KCk7CiAKLSAgICAgICAgYm9vbCBmYXN0SklUUGVybWlzc2lvbnNJc1N1cHBvcnRlZCA9IHVzZUZh
c3RKSVRQZXJtaXNzaW9ucygpOwotICAgICAgICBpZiAoZmFzdEpJVFBlcm1pc3Npb25zSXNTdXBw
b3J0ZWQpCisgICAgICAgIGJvb2wgZmFzdEpJVFBlcm1pc3Npb25zSXNTdXBwb3J0ZWQgPSBmYWxz
ZTsKKyNpZiBPUyhEQVJXSU4pICYmIENQVShBUk02NCkKKyNpZiBVU0UoUFRIUkVBRF9KSVRfUEVS
TUlTU0lPTlNfQVBJKSAKKyAgICAgICAgZmFzdEpJVFBlcm1pc3Npb25zSXNTdXBwb3J0ZWQgPSAh
IXB0aHJlYWRfaml0X3dyaXRlX3Byb3RlY3Rfc3VwcG9ydGVkX25wKCk7CisjZWxpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorICAgICAgICBmYXN0SklUUGVybWlzc2lvbnNJc1N1cHBvcnRlZCA9
ICEhb3NfdGhyZWFkX3NlbGZfcmVzdHJpY3Rfcnd4X2lzX3N1cHBvcnRlZCgpOworI2VuZGlmCisj
ZW5kaWYKKyAgICAgICAgZ19qc2NDb25maWcudXNlRmFzdEpJVFBlcm1pc3Npb25zID0gZmFzdEpJ
VFBlcm1pc3Npb25zSXNTdXBwb3J0ZWQ7CisKKyAgICAgICAgaWYgKGdfanNjQ29uZmlnLnVzZUZh
c3RKSVRQZXJtaXNzaW9ucykKICAgICAgICAgICAgIHRocmVhZFNlbGZSZXN0cmljdFJXWFRvUlgo
KTsKIAogI2lmIEVOQUJMRShTRVBBUkFURURfV1hfSEVBUCkKLSAgICAgICAgaWYgKCFmYXN0SklU
UGVybWlzc2lvbnNJc1N1cHBvcnRlZCkgeworICAgICAgICBpZiAoIWdfanNjQ29uZmlnLnVzZUZh
c3RKSVRQZXJtaXNzaW9ucykgewogICAgICAgICAgICAgLy8gRmlyc3QgcGFnZSBvZiBvdXIgSklU
IGFsbG9jYXRpb24gaXMgcmVzZXJ2ZWQuCiAgICAgICAgICAgICBBU1NFUlQocmVzZXJ2YXRpb24u
c2l6ZSA+PSBwYWdlU2l6ZSgpICogMik7CiAgICAgICAgICAgICByZXNlcnZhdGlvbi5iYXNlID0g
KHZvaWQqKSgodWludHB0cl90KShyZXNlcnZhdGlvbi5iYXNlKSArIHBhZ2VTaXplKCkpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgJ
KHJldmlzaW9uIDI3NDU2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJs
ZUFsbG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIEFM
V0FZU19JTkxJTkUgdm9pZCogcGVyZm9ybUpJVE1lbQogICAgICAgICBpZiAoVU5MSUtFTFkoT3B0
aW9uczo6ZHVtcEpJVE1lbW9yeVBhdGgoKSkpCiAgICAgICAgICAgICBkdW1wSklUTWVtb3J5KGRz
dCwgc3JjLCBuKTsKIAotICAgICAgICBpZiAodXNlRmFzdEpJVFBlcm1pc3Npb25zKCkpIHsKKyAg
ICAgICAgaWYgKGdfanNjQ29uZmlnLnVzZUZhc3RKSVRQZXJtaXNzaW9ucykgewogICAgICAgICAg
ICAgdGhyZWFkU2VsZlJlc3RyaWN0UldYVG9SVygpOwogICAgICAgICAgICAgbWVtY3B5KGRzdCwg
c3JjLCBuKTsKICAgICAgICAgICAgIHRocmVhZFNlbGZSZXN0cmljdFJXWFRvUlgoKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0NvbmZpZy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0NvbmZpZy5oCShyZXZpc2lvbiAyNzQ1
NjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NDb25maWcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjQsNiArNjQsOCBAQCBzdHJ1Y3QgQ29uZmlnIHsKICAgICBib29sIHJlc3Ry
aWN0ZWRPcHRpb25zRW5hYmxlZDsKICAgICBib29sIGppdERpc2FibGVkOwogCisgICAgYm9vbCB1
c2VGYXN0SklUUGVybWlzc2lvbnM7CisKICAgICAvLyBUaGUgZm9sbG93aW5nIEhhc0JlZW5DYWxs
ZWQgZmxhZ3MgYXJlIGZvciBhdWRpdGluZyBjYWxsX29uY2UgaW5pdGlhbGl6YXRpb24gZnVuY3Rp
b25zLgogICAgIGJvb2wgaW5pdGlhbGl6ZUhhc0JlZW5DYWxsZWQ7CiAKSW5kZXg6IFNvdXJjZS9X
VEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lv
biAyNzQ1NjcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE0IEBACisyMDIxLTAzLTE3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgor
CisgICAgICAgIERldGVybWluZSBpZiB3ZSBoYXZlIHVzZUZhc3RKSVRQZXJtaXNzaW9ucyBvbiBh
cm02NGUgYXQgcnVudGltZSBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgaXQgYXMgYWx3YXlzIGVuYWJs
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzM4
OAorICAgICAgICA8cmRhcjovLzc0ODE5MjY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1Vc2UuaDoKKwogMjAyMS0wMy0xNiAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBjaGFuZ2UgZm9yIHRoZSBsYW5ndWFn
ZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHRvIHVzZSBhbiBgTlNNZW51YCBpbnN0ZWFkIG9mIHdl
YiBjb250ZW50CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCShyZXZpc2lv
biAyNzQ1NjcpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ3Myw3ICs0NzMsNyBAQAogI2RlZmluZSBFTkFCTEVfU0VDX0lURU1fU0hJ
TSAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCkgJiYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgQ1BVKEFSTTY0KSAmJiAhQ1BVKEFSTTY0RSkKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfU0VQQVJBVEVEX1dYX0hFQVApICYmIENQVShBUk02NCkKICNkZWZpbmUg
RU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQIDEKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybVVzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNl
LmgJKHJldmlzaW9uIDI3NDU2NykKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTE1Nyw3ICsxNTcsNyBAQAogI2RlZmluZSBVU0VfQlVJTFRJTl9GUkFN
RV9BRERSRVNTIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgQ1BVKEFS
TTY0KSAmJiBIQVZFKFJFTUFQX0pJVCkKKyNpZiBPUyhEQVJXSU4pICYmIENQVShBUk02NCkgJiYg
SEFWRShSRU1BUF9KSVQpCiAjZGVmaW5lIFVTRV9FWEVDVVRFX09OTFlfSklUX1dSSVRFX0ZVTkNU
SU9OIDEKICNlbmRpZgogCg==
</data>
<flag name="review"
          id="442888"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423531</attachid>
            <date>2021-03-17 15:26:32 -0700</date>
            <delta_ts>2021-03-17 17:08:02 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>10356</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc0NTcyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDIxLTAzLTE3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IERldGVybWluZSBpZiB3ZSBoYXZlIHVzZUZhc3RKSVRQZXJtaXNzaW9ucyBvbiBhcm02NGUgYXQg
cnVudGltZSBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgaXQgYXMgYWx3YXlzIGVuYWJsZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzM4OAorICAgICAg
ICA8cmRhcjovLzc0ODE5MjY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisg
ICAgICAgICogYXNzZW1ibGVyL0Zhc3RKSVRQZXJtaXNzaW9ucy5oOgorICAgICAgICAodGhyZWFk
U2VsZlJlc3RyaWN0UldYVG9SVyk6CisgICAgICAgICh0aHJlYWRTZWxmUmVzdHJpY3RSV1hUb1JY
KToKKyAgICAgICAgKHVzZUZhc3RKSVRQZXJtaXNzaW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChm
YXN0SklUUGVybWlzc2lvbnNJc1N1cHBvcnRlZCk6IERlbGV0ZWQuCisgICAgICAgICogYXNzZW1i
bGVyL0xpbmtCdWZmZXIuY3BwOgorICAgICAgICAoSlNDOjpMaW5rQnVmZmVyOjpjb3B5Q29tcGFj
dEFuZExpbmtDb2RlKToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHA6Cisg
ICAgICAgIChKU0M6OmluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24pOgorICAgICAgICAqIGpp
dC9FeGVjdXRhYmxlQWxsb2NhdG9yLmg6CisgICAgICAgIChKU0M6OnBlcmZvcm1KSVRNZW1jcHkp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNDQ29uZmlnLmg6CisKIDIwMjEtMDMtMTcgIEFsZXhleSBT
aHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFtXZWJJRExdIEZpeCBj
b252ZXJ0UmVjb3JkKCkgdG8gdGhyb3cgb24gZW51bWVyYWJsZSBzeW1ib2wgfGtleXwKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvRmFzdEpJVFBlcm1pc3Npb25zLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9GYXN0SklUUGVybWlz
c2lvbnMuaAkocmV2aXNpb24gMjc0NTY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9GYXN0SklUUGVybWlzc2lvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBA
QAogCiAjaWYgT1MoREFSV0lOKSAmJiBDUFUoQVJNNjQpCiAKKyNpbmNsdWRlICJKU0NDb25maWcu
aCIKKwogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogCiAjaWYgVVNFKFBUSFJFQURfSklUX1BF
Uk1JU1NJT05TX0FQSSkKQEAgLTM1LDIyICszNyw5IEBACiAjaW5jbHVkZSA8b3MvdGhyZWFkX3Nl
bGZfcmVzdHJpY3QuaD4gCiAjZW5kaWYKIAotc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCB1c2VG
YXN0SklUUGVybWlzc2lvbnMoKQotewotI2lmIENQVShBUk02NEUpCi0gICAgcmV0dXJuIHRydWU7
Ci0jZWxpZiBVU0UoUFRIUkVBRF9KSVRfUEVSTUlTU0lPTlNfQVBJKSAKLSAgICByZXR1cm4gISFw
dGhyZWFkX2ppdF93cml0ZV9wcm90ZWN0X3N1cHBvcnRlZF9ucCgpOwotI2VsaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKLSAgICByZXR1cm4gISFvc190aHJlYWRfc2VsZl9yZXN0cmljdF9yd3hf
aXNfc3VwcG9ydGVkKCk7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBz
dGF0aWMgQUxXQVlTX0lOTElORSB2b2lkIHRocmVhZFNlbGZSZXN0cmljdFJXWFRvUlcoKQogewot
ICAgIEFTU0VSVCh1c2VGYXN0SklUUGVybWlzc2lvbnMoKSk7CisgICAgQVNTRVJUKGdfanNjQ29u
ZmlnLnVzZUZhc3RKSVRQZXJtaXNzaW9ucyk7CiAKICNpZiBVU0UoUFRIUkVBRF9KSVRfUEVSTUlT
U0lPTlNfQVBJKSAKICAgICBwdGhyZWFkX2ppdF93cml0ZV9wcm90ZWN0X25wKGZhbHNlKTsKQEAg
LTY1LDcgKzU0LDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCB0aHJlYWRTZWxmUmVzdAog
CiBzdGF0aWMgQUxXQVlTX0lOTElORSB2b2lkIHRocmVhZFNlbGZSZXN0cmljdFJXWFRvUlgoKQog
ewotICAgIEFTU0VSVCh1c2VGYXN0SklUUGVybWlzc2lvbnMoKSk7CisgICAgQVNTRVJUKGdfanNj
Q29uZmlnLnVzZUZhc3RKSVRQZXJtaXNzaW9ucyk7CiAKICNpZiBVU0UoUFRIUkVBRF9KSVRfUEVS
TUlTU0lPTlNfQVBJKSAKICAgICBwdGhyZWFkX2ppdF93cml0ZV9wcm90ZWN0X25wKHRydWUpOwpA
QCAtODAsMTYgKzY5LDYgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCB0aHJlYWRTZWxmUmVz
dAogCiAjZWxzZSAvLyBOb3QgT1MoREFSV0lOKSAmJiBDUFUoQVJNNjQpCiAKLWNvbnN0ZXhwciBi
b29sIGZhc3RKSVRQZXJtaXNzaW9uc0lzU3VwcG9ydGVkKCkKLXsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KLWNvbnN0ZXhwciBib29sIHVzZUZhc3RKSVRQZXJtaXNzaW9ucygpCi17Ci0gICAgcmV0
dXJuIGZhbHNlOwotfQotCiBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIEFMV0FZU19JTkxJTkUgdm9p
ZCB0aHJlYWRTZWxmUmVzdHJpY3RSV1hUb1JXKCkKIHsKICAgICBDUkFTSCgpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwCShyZXZpc2lv
biAyNzQ1NjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDMsNyArMjQzLDcgQEAgdm9pZCBMaW5rQnVmZmVyOjpj
b3B5Q29tcGFjdEFuZExpbmtDb2RlKAogCiAgICAgdWludDhfdCogY29kZU91dERhdGEgPSBtX2Nv
ZGUuZGF0YUxvY2F0aW9uPHVpbnQ4X3QqPigpOwogCi0gICAgQnJhbmNoQ29tcGFjdGlvbkxpbmtC
dWZmZXIgb3V0QnVmZmVyKG1fc2l6ZSwgdXNlRmFzdEpJVFBlcm1pc3Npb25zKCkgPyBjb2RlT3V0
RGF0YSA6IDApOworICAgIEJyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyIG91dEJ1ZmZlcihtX3Np
emUsIGdfanNjQ29uZmlnLnVzZUZhc3RKSVRQZXJtaXNzaW9ucyA/IGNvZGVPdXREYXRhIDogMCk7
CiAgICAgdWludDhfdCogb3V0RGF0YSA9IG91dEJ1ZmZlci5kYXRhKCk7CiAKICNpZiBDUFUoQVJN
NjQpCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBMaW5rQnVmZmVyOjpjb3B5Q29tcGFjdEFuZExp
bmtDb2RlKAogICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfTsKIAotICAgIGlmICh1c2VGYXN0
SklUUGVybWlzc2lvbnMoKSkKKyAgICBpZiAoZ19qc2NDb25maWcudXNlRmFzdEpJVFBlcm1pc3Np
b25zKQogICAgICAgICB0aHJlYWRTZWxmUmVzdHJpY3RSV1hUb1JXKCk7CiAKICAgICBpZiAobV9z
aG91bGRQZXJmb3JtQnJhbmNoQ29tcGFjdGlvbikgewpAQCAtMzUyLDcgKzM1Miw3IEBAIHZvaWQg
TGlua0J1ZmZlcjo6Y29weUNvbXBhY3RBbmRMaW5rQ29kZSgKICAgICAgICAgY29uc3QgaW50cHRy
X3QgdG8gPSBqdW1wc1RvTGlua1tpXS50bygpOwogI2VuZGlmCiAgICAgICAgIHVpbnQ4X3QqIHRh
cmdldCA9IGNvZGVPdXREYXRhICsgdG8gLSBleGVjdXRhYmxlT2Zmc2V0Rm9yKHRvKTsKLSAgICAg
ICAgaWYgKHVzZUZhc3RKSVRQZXJtaXNzaW9ucygpKQorICAgICAgICBpZiAoZ19qc2NDb25maWcu
dXNlRmFzdEpJVFBlcm1pc3Npb25zKQogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Omxpbms8
bWVtY3B5V3JhcHBlcj4oanVtcHNUb0xpbmtbaV0sIG91dERhdGEgKyBqdW1wc1RvTGlua1tpXS5m
cm9tKCksIGxvY2F0aW9uLCB0YXJnZXQpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6bGluazxwZXJmb3JtSklUTWVtY3B5PihqdW1wc1RvTGlua1tpXSwgb3V0RGF0
YSArIGp1bXBzVG9MaW5rW2ldLmZyb20oKSwgbG9jYXRpb24sIHRhcmdldCk7CkBAIC0zNjIsMTMg
KzM2MiwxMyBAQCB2b2lkIExpbmtCdWZmZXI6OmNvcHlDb21wYWN0QW5kTGlua0NvZGUoCiAgICAg
aWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpIHsKICAgICAgICAgc2l6ZV90IG5vcFNpemVJbkJ5dGVz
ID0gaW5pdGlhbFNpemUgLSBjb21wYWN0U2l6ZTsKIAotICAgICAgICBpZiAodXNlRmFzdEpJVFBl
cm1pc3Npb25zKCkpCisgICAgICAgIGlmIChnX2pzY0NvbmZpZy51c2VGYXN0SklUUGVybWlzc2lv
bnMpCiAgICAgICAgICAgICBBc3NlbWJsZXI6OmZpbGxOb3BzPG1lbWNweVdyYXBwZXI+KG91dERh
dGEgKyBjb21wYWN0U2l6ZSwgbm9wU2l6ZUluQnl0ZXMpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBBc3NlbWJsZXI6OmZpbGxOb3BzPHBlcmZvcm1KSVRNZW1jcHk+KG91dERhdGEgKyBjb21w
YWN0U2l6ZSwgbm9wU2l6ZUluQnl0ZXMpOwogICAgIH0KIAotICAgIGlmICh1c2VGYXN0SklUUGVy
bWlzc2lvbnMoKSkKKyAgICBpZiAoZ19qc2NDb25maWcudXNlRmFzdEpJVFBlcm1pc3Npb25zKQog
ICAgICAgICB0aHJlYWRTZWxmUmVzdHJpY3RSV1hUb1JYKCk7CiAKICAgICBpZiAobV9leGVjdXRh
YmxlTWVtb3J5KSB7CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9pZCBMaW5rQnVmZmVyOjpjb3B5Q29t
cGFjdEFuZExpbmtDb2RlKAogICAgIH0KIAogI2lmIEVOQUJMRShKSVQpCi0gICAgaWYgKHVzZUZh
c3RKSVRQZXJtaXNzaW9ucygpKSB7CisgICAgaWYgKGdfanNjQ29uZmlnLnVzZUZhc3RKSVRQZXJt
aXNzaW9ucykgewogICAgICAgICBBU1NFUlQoY29kZU91dERhdGEgPT0gb3V0RGF0YSk7CiAgICAg
ICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjpkdW1wSklUTWVtb3J5UGF0aCgpKSkKICAgICAgICAg
ICAgIGR1bXBKSVRNZW1vcnkob3V0RGF0YSwgb3V0RGF0YSwgbV9zaXplKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAkocmV2
aXNpb24gMjc0NTY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxs
b2NhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPHd0
Zi9NZXRhQWxsb2NhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1BhZ2VSZXNlcnZhdGlvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNsdWRl
IDx3dGYvU3lzdGVtVHJhY2luZy5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KIApAQCAt
MTY3LDYgKzE2OCwxMCBAQCB2b2lkIEV4ZWN1dGFibGVBbGxvY2F0b3I6OnNldEpJVEVuYWJsZWQo
CiAjaWYgVVNFKEVYRUNVVEVfT05MWV9KSVRfV1JJVEVfRlVOQ1RJT04pCiBzdGF0aWMgQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGppdFdyaXRlVGh1
bmtHZW5lcmF0b3Iodm9pZCogd3JpdGFibGVBZGRyLCB2b2lkKiBzdHViQmFzZSwgc2l6ZV90IHN0
dWJTaXplKQogeworICAgIGF1dG8gZXhpdFNjb3BlID0gbWFrZVNjb3BlRXhpdChbXSB7CisgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKCFnX2pzY0NvbmZpZy51c2VGYXN0SklUUGVybWlzc2lvbnMpOwor
ICAgIH0pOworCiAgICAgdXNpbmcgbmFtZXNwYWNlIEFSTTY0UmVnaXN0ZXJzOwogICAgIHVzaW5n
IFRydXN0ZWRJbW0zMiA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzI7CiAKQEAgLTI1OSw2
ICsyNjQsMTAgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0cgogCiBz
dGF0aWMgQUxXQVlTX0lOTElORSB2b2lkIGluaXRpYWxpemVTZXBhcmF0ZWRXWEhlYXBzKHZvaWQq
IHN0dWJCYXNlLCBzaXplX3Qgc3R1YlNpemUsIHZvaWQqIGppdEJhc2UsIHNpemVfdCBqaXRTaXpl
KQogeworICAgIGF1dG8gZXhpdFNjb3BlID0gbWFrZVNjb3BlRXhpdChbXSB7CisgICAgICAgIFJF
TEVBU0VfQVNTRVJUKCFnX2pzY0NvbmZpZy51c2VGYXN0SklUUGVybWlzc2lvbnMpOworICAgIH0p
OworCiAgICAgbWFjaF92bV9hZGRyZXNzX3Qgd3JpdGFibGVBZGRyID0gMDsKIAogICAgIC8vIENy
ZWF0ZSBhIHNlY29uZCBtYXBwaW5nIG9mIHRoZSBKSVQgcmVnaW9uIGF0IGEgcmFuZG9tIGFkZHJl
c3MuCkBAIC0zNDYsMTIgKzM1NSwyMSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKSVRSZXNlcnZh
dGlvbiBpbml0CiAgICAgICAgIEFTU0VSVChyZXNlcnZhdGlvbi5wYWdlUmVzZXJ2YXRpb24uc2l6
ZSgpID09IHJlc2VydmF0aW9uLnNpemUpOwogICAgICAgICByZXNlcnZhdGlvbi5iYXNlID0gcmVz
ZXJ2YXRpb24ucGFnZVJlc2VydmF0aW9uLmJhc2UoKTsKIAotICAgICAgICBib29sIGZhc3RKSVRQ
ZXJtaXNzaW9uc0lzU3VwcG9ydGVkID0gdXNlRmFzdEpJVFBlcm1pc3Npb25zKCk7Ci0gICAgICAg
IGlmIChmYXN0SklUUGVybWlzc2lvbnNJc1N1cHBvcnRlZCkKKyAgICAgICAgYm9vbCBmYXN0SklU
UGVybWlzc2lvbnNJc1N1cHBvcnRlZCA9IGZhbHNlOworI2lmIE9TKERBUldJTikgJiYgQ1BVKEFS
TTY0KQorI2lmIFVTRShQVEhSRUFEX0pJVF9QRVJNSVNTSU9OU19BUEkpIAorICAgICAgICBmYXN0
SklUUGVybWlzc2lvbnNJc1N1cHBvcnRlZCA9ICEhcHRocmVhZF9qaXRfd3JpdGVfcHJvdGVjdF9z
dXBwb3J0ZWRfbnAoKTsKKyNlbGlmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgICAgIGZh
c3RKSVRQZXJtaXNzaW9uc0lzU3VwcG9ydGVkID0gISFvc190aHJlYWRfc2VsZl9yZXN0cmljdF9y
d3hfaXNfc3VwcG9ydGVkKCk7CisjZW5kaWYKKyNlbmRpZgorICAgICAgICBnX2pzY0NvbmZpZy51
c2VGYXN0SklUUGVybWlzc2lvbnMgPSBmYXN0SklUUGVybWlzc2lvbnNJc1N1cHBvcnRlZDsKKwor
ICAgICAgICBpZiAoZ19qc2NDb25maWcudXNlRmFzdEpJVFBlcm1pc3Npb25zKQogICAgICAgICAg
ICAgdGhyZWFkU2VsZlJlc3RyaWN0UldYVG9SWCgpOwogCiAjaWYgRU5BQkxFKFNFUEFSQVRFRF9X
WF9IRUFQKQotICAgICAgICBpZiAoIWZhc3RKSVRQZXJtaXNzaW9uc0lzU3VwcG9ydGVkKSB7Cisg
ICAgICAgIGlmICghZ19qc2NDb25maWcudXNlRmFzdEpJVFBlcm1pc3Npb25zKSB7CiAgICAgICAg
ICAgICAvLyBGaXJzdCBwYWdlIG9mIG91ciBKSVQgYWxsb2NhdGlvbiBpcyByZXNlcnZlZC4KICAg
ICAgICAgICAgIEFTU0VSVChyZXNlcnZhdGlvbi5zaXplID49IHBhZ2VTaXplKCkgKiAyKTsKICAg
ICAgICAgICAgIHJlc2VydmF0aW9uLmJhc2UgPSAodm9pZCopKCh1aW50cHRyX3QpKHJlc2VydmF0
aW9uLmJhc2UpICsgcGFnZVNpemUoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAkocmV2aXNpb24gMjc0NTY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSB2b2lkKiBwZXJmb3JtSklU
TWVtCiAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjpkdW1wSklUTWVtb3J5UGF0aCgpKSkK
ICAgICAgICAgICAgIGR1bXBKSVRNZW1vcnkoZHN0LCBzcmMsIG4pOwogCi0gICAgICAgIGlmICh1
c2VGYXN0SklUUGVybWlzc2lvbnMoKSkgeworICAgICAgICBpZiAoZ19qc2NDb25maWcudXNlRmFz
dEpJVFBlcm1pc3Npb25zKSB7CiAgICAgICAgICAgICB0aHJlYWRTZWxmUmVzdHJpY3RSV1hUb1JX
KCk7CiAgICAgICAgICAgICBtZW1jcHkoZHN0LCBzcmMsIG4pOwogICAgICAgICAgICAgdGhyZWFk
U2VsZlJlc3RyaWN0UldYVG9SWCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDQ29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDQ29uZmlnLmgJKHJldmlzaW9uIDI3NDU2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ0NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw4IEBAIHN0
cnVjdCBDb25maWcgewogICAgIGJvb2wgcmVzdHJpY3RlZE9wdGlvbnNFbmFibGVkOwogICAgIGJv
b2wgaml0RGlzYWJsZWQ7CiAKKyAgICBib29sIHVzZUZhc3RKSVRQZXJtaXNzaW9uczsKKwogICAg
IC8vIFRoZSBmb2xsb3dpbmcgSGFzQmVlbkNhbGxlZCBmbGFncyBhcmUgZm9yIGF1ZGl0aW5nIGNh
bGxfb25jZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnMuCiAgICAgYm9vbCBpbml0aWFsaXplSGFz
QmVlbkNhbGxlZDsKIApJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NDU2NykKKysrIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDMtMTcgIFNhYW0g
QmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgRGV0ZXJtaW5lIGlmIHdlIGhh
dmUgdXNlRmFzdEpJVFBlcm1pc3Npb25zIG9uIGFybTY0ZSBhdCBydW50aW1lIGluc3RlYWQgb2Yg
aGFyZGNvZGluZyBpdCBhcyBhbHdheXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMzg4CisgICAgICAgIDxyZGFyOi8vNzQ4MTkyNjY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgKiB3dGYvUGxhdGZv
cm1FbmFibGVDb2NvYS5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybVVzZS5oOgorCiAyMDIxLTAz
LTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1Nd
IGNoYW5nZSBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdG8gdXNlIGFu
IGBOU01lbnVgIGluc3RlYWQgb2Ygd2ViIGNvbnRlbnQKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZUNvY29hLmgJKHJldmlzaW9uIDI3NDU2NykKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlQ29jb2EuaAkod29ya2luZyBjb3B5KQpAQCAtNDczLDcgKzQ3Myw3IEBACiAjZGVm
aW5lIEVOQUJMRV9TRUNfSVRFTV9TSElNIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxF
X1NFUEFSQVRFRF9XWF9IRUFQKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBDUFUoQVJNNjQp
ICYmICFDUFUoQVJNNjRFKQorI2lmICFkZWZpbmVkKEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCkg
JiYgQ1BVKEFSTTY0KQogI2RlZmluZSBFTkFCTEVfU0VQQVJBVEVEX1dYX0hFQVAgMQogI2VuZGlm
CiAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi93dGYvUGxhdGZvcm1Vc2UuaAkocmV2aXNpb24gMjc0NTY3KQorKysgU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1Vc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTU3LDcgKzE1Nyw3IEBACiAj
ZGVmaW5lIFVTRV9CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBDUFUoQVJNNjQpICYmIEhBVkUoUkVNQVBfSklUKQorI2lmIE9TKERB
UldJTikgJiYgQ1BVKEFSTTY0KSAmJiBIQVZFKFJFTUFQX0pJVCkKICNkZWZpbmUgVVNFX0VYRUNV
VEVfT05MWV9KSVRfV1JJVEVfRlVOQ1RJT04gMQogI2VuZGlmCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>