<?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>234051</bug_id>
          
          <creation_ts>2021-12-08 18:19:56 -0800</creation_ts>
          <short_desc>Support WasmAddress in B3 CSE</short_desc>
          <delta_ts>2021-12-17 13:07:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1821907</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-08 18:19:56 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822240</commentid>
    <comment_count>1</comment_count>
      <attachid>446579</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-09 11:41:32 -0800</bug_when>
    <thetext>Created attachment 446579
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823011</commentid>
    <comment_count>2</comment_count>
      <attachid>446822</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-10 14:59:24 -0800</bug_when>
    <thetext>Created attachment 446822
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824624</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-15 18:20:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/86552957&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824909</commentid>
    <comment_count>4</comment_count>
      <attachid>447398</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-16 17:01:33 -0800</bug_when>
    <thetext>Created attachment 447398
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824910</commentid>
    <comment_count>5</comment_count>
      <attachid>447398</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-16 17:04:57 -0800</bug_when>
    <thetext>Comment on attachment 447398
patch

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

r=me too.

&gt; Source/JavaScriptCore/b3/B3EliminateCommonSubexpressions.cpp:198
&gt; +                if (WasmAddressValue* wasmAddress = value-&gt;as&lt;WasmAddressValue&gt;())
&gt; +                    data.m_wasmAddressesAtTail.add(wasmAddress-&gt;child(0), wasmAddress);

Let&apos;s avoid adding this if data.writesPinned is already true.

&gt; Source/JavaScriptCore/b3/B3EliminateCommonSubexpressions.cpp:261
&gt; +        if (WasmAddressValue* wasmAddress = m_value-&gt;as&lt;WasmAddressValue&gt;()) {
&gt; +            processWasmAddressValue(wasmAddress);
&gt; +            return;
&gt; +        }

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824912</commentid>
    <comment_count>6</comment_count>
      <attachid>447398</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-16 17:06:59 -0800</bug_when>
    <thetext>Comment on attachment 447398
patch

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

&gt;&gt; Source/JavaScriptCore/b3/B3EliminateCommonSubexpressions.cpp:198
&gt;&gt; +                    data.m_wasmAddressesAtTail.add(wasmAddress-&gt;child(0), wasmAddress);
&gt; 
&gt; Let&apos;s avoid adding this if data.writesPinned is already true.

Ah, I misunderstood. This is tracking wasm addresses which are still valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824913</commentid>
    <comment_count>7</comment_count>
      <attachid>447398</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-16 17:07:30 -0800</bug_when>
    <thetext>Comment on attachment 447398
patch

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

&gt;&gt; Source/JavaScriptCore/b3/B3EliminateCommonSubexpressions.cpp:198
&gt;&gt; +                    data.m_wasmAddressesAtTail.add(wasmAddress-&gt;child(0), wasmAddress);
&gt; 
&gt; Let&apos;s avoid adding this if data.writesPinned is already true.

This is still useful because you could still CSE with values that come *after* writes pinned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824914</commentid>
    <comment_count>8</comment_count>
      <attachid>447399</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-16 17:09:45 -0800</bug_when>
    <thetext>Created attachment 447399
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824915</commentid>
    <comment_count>9</comment_count>
      <attachid>447400</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-16 17:11:20 -0800</bug_when>
    <thetext>Created attachment 447400
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824916</commentid>
    <comment_count>10</comment_count>
      <attachid>447401</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-16 17:12:14 -0800</bug_when>
    <thetext>Created attachment 447401
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825169</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-17 13:07:04 -0800</bug_when>
    <thetext>Committed r287203 (245370@main): &lt;https://commits.webkit.org/245370@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447401.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446579</attachid>
            <date>2021-12-09 11:41:32 -0800</date>
            <delta_ts>2021-12-10 14:59:24 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>7781</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg2NzkxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDIxLTEyLTA5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFByb2NlZHVyZTo6c2V0TmVlZHNQQ1RvT3JpZ2luTWFwIHNob3VsZCBjYWxsIENvZGU6OmZvcmNl
UHJlc2VydmF0aW9uT2ZCM09yaWdpbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNDA5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlIG5lZWQgdG8gZG8gdGhpcyB0byBlbnN1cmUgdGhlIHNhbXBsaW5n
IHByb2ZpbGVyIHdvcmtzIGluIEZUTC4KKyAgICAgICAgVGhlIHJlYXNvbiB0aGlzIHdhcyBzb21l
dGltZXMgd29ya2luZyB3YXMgQWlyOjpDb2RlJ3MgY29uc3RydWN0b3IKKyAgICAgICAgd2FzIGxv
b2tpbmcgYXQgUHJvY2VkdXJlJ3MgbV9uZWVkc1BDVG9PcmlnaW5NYXAgYmVmb3JlIGl0IHdhcyBp
bml0aWFsaXplZCwKKyAgICAgICAgaW4gaXRzIGNvbnN0cnVjdG9yLiBUaGlzIGlzIGJlY2F1c2Ug
UHJvY2VkdXJlIHdhcyBjb25zdHJ1Y3RpbmcgQ29kZQorICAgICAgICBiZWZvcmUgYWxsIGl0cyBm
aWVsZHMgd2VyZSBpbml0aWFsaXplZC4gVGhpcyBwYXRjaCBmaXhlcyB0aGF0IGJ1ZyB0bworICAg
ICAgICBjb25zdHJ1Y3QgQ29kZSBhZnRlciBQcm9jZWR1cmUgaGFzIGFsbCBpdHMgZmllbGRzIGlu
aXRpYWxpemVkLgorCisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAgICAgICAoSlND
OjpCMzo6UHJvY2VkdXJlOjpQcm9jZWR1cmUpOgorICAgICAgICAoSlNDOjpCMzo6UHJvY2VkdXJl
OjpzZXROZWVkc1BDVG9PcmlnaW5NYXApOgorICAgICAgICAqIGIzL0IzUHJvY2VkdXJlLmg6Cisg
ICAgICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OnNldE5lZWRzUENUb09yaWdpbk1hcCk6IERlbGV0
ZWQuCisKIDIwMjEtMTItMDkgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIGFuIG9wdGlvbiB0byBkdW1wIHRoZSBCMyBJUiBmb3IgYW4gYWxsb3dsaXN0IG9m
IFdhc20gZnVuY3Rpb24gaW5kaWNlcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
RWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcAkocmV2
aXNpb24gMjg2NzkxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWxpbWluYXRlQ29t
bW9uU3ViZXhwcmVzc2lvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsMTAgKzE0NCwxNCBA
QCBzdHJ1Y3QgSW1wdXJlQmxvY2tEYXRhIHsKIAogICAgIFJhbmdlU2V0PEhlYXBSYW5nZT4gcmVh
ZHM7IC8vIFRoaXMgb25seSBnZXRzIHVzZWQgZm9yIGZvcndhcmQgc3RvcmUgZWxpbWluYXRpb24u
CiAgICAgUmFuZ2VTZXQ8SGVhcFJhbmdlPiB3cml0ZXM7IC8vIFRoaXMgZ2V0cyB1c2VkIGZvciBi
b3RoIGxvYWQgYW5kIHN0b3JlIGVsaW1pbmF0aW9uLgotICAgIGJvb2wgZmVuY2U7CisgICAgYm9v
bCBmZW5jZSB7IGZhbHNlIH07CisgICAgYm9vbCB3cml0ZXNQaW5uZWQgeyBmYWxzZSB9OwogCiAg
ICAgTWVtb3J5VmFsdWVNYXAgc3RvcmVzQXRIZWFkOwogICAgIE1lbW9yeVZhbHVlTWFwIG1lbW9y
eVZhbHVlc0F0VGFpbDsKKworICAgIC8vIFRoaXMgTWFwcyB4LT55IGluICJ5ID0gV2FzbUFkZHJl
c3MoQHgpIgorICAgIEhhc2hNYXA8VmFsdWUqLCBWYWx1ZSo+IG1fd2FzbUFkZHJlc3Nlc0F0VGFp
bDsKIH07CiAKIGNsYXNzIENTRSB7CkBAIC0xODgsNiArMTkyLDE0IEBAIHB1YmxpYzoKIAogICAg
ICAgICAgICAgICAgIGlmIChtZW1vcnkpCiAgICAgICAgICAgICAgICAgICAgIGRhdGEubWVtb3J5
VmFsdWVzQXRUYWlsLmFkZChtZW1vcnkpOworCisgICAgICAgICAgICAgICAgaWYgKFdhc21BZGRy
ZXNzVmFsdWUqIHdhc21BZGRyZXNzID0gdmFsdWUtPmFzPFdhc21BZGRyZXNzVmFsdWU+KCkpCisg
ICAgICAgICAgICAgICAgICAgIGRhdGEubV93YXNtQWRkcmVzc2VzQXRUYWlsLmFkZCh3YXNtQWRk
cmVzcy0+Y2hpbGQoMCksIHdhc21BZGRyZXNzKTsKKworICAgICAgICAgICAgICAgIGlmIChlZmZl
Y3RzLndyaXRlc1Bpbm5lZCkgeworICAgICAgICAgICAgICAgICAgICBkYXRhLndyaXRlc1Bpbm5l
ZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGRhdGEubV93YXNtQWRkcmVzc2VzQXRUYWls
LmNsZWFyKCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBpZiAoQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9uc0ludGVybmFsOjp2ZXJib3NlKQpA
QCAtMjM3LDE1ICsyNDksMjggQEAgcHJpdmF0ZToKIAogICAgICAgICBpZiAobV9wdXJlQ1NFLnBy
b2Nlc3MobV92YWx1ZSwgbV9kb21pbmF0b3JzKSkgewogICAgICAgICAgICAgQVNTRVJUKCFtX3Zh
bHVlLT5lZmZlY3RzKCkud3JpdGVzKTsKKyAgICAgICAgICAgIEFTU0VSVCghbV92YWx1ZS0+ZWZm
ZWN0cygpLndyaXRlc1Bpbm5lZCk7CiAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKFdhc21BZGRyZXNzVmFs
dWUqIHdhc21BZGRyZXNzID0gbV92YWx1ZS0+YXM8V2FzbUFkZHJlc3NWYWx1ZT4oKSkgeworICAg
ICAgICAgICAgcHJvY2Vzc1dhc21BZGRyZXNzVmFsdWUod2FzbUFkZHJlc3MpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgRWZmZWN0cyBlZmZlY3RzID0gbV92YWx1
ZS0+ZWZmZWN0cygpOworCisgICAgICAgIGlmIChlZmZlY3RzLndyaXRlc1Bpbm5lZCkgeworICAg
ICAgICAgICAgbV9kYXRhLndyaXRlc1Bpbm5lZCA9IHRydWU7CisgICAgICAgICAgICBtX2RhdGEu
bV93YXNtQWRkcmVzc2VzQXRUYWlsLmNsZWFyKCk7CisgICAgICAgIH0KKwogICAgICAgICBNZW1v
cnlWYWx1ZSogbWVtb3J5ID0gbV92YWx1ZS0+YXM8TWVtb3J5VmFsdWU+KCk7CiAgICAgICAgIGlm
IChtZW1vcnkgJiYgcHJvY2Vzc01lbW9yeUJlZm9yZUNsb2JiZXIobWVtb3J5KSkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBpZiAoSGVhcFJhbmdlIHdyaXRlcyA9IG1fdmFsdWUtPmVm
ZmVjdHMoKS53cml0ZXMpCisgICAgICAgIGlmIChIZWFwUmFuZ2Ugd3JpdGVzID0gZWZmZWN0cy53
cml0ZXMpCiAgICAgICAgICAgICBjbG9iYmVyKG1fZGF0YSwgd3JpdGVzKTsKICAgICAgICAgCiAg
ICAgICAgIGlmIChtZW1vcnkpCkBAIC02OTQsNiArNzE5LDYwIEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiBtYXRjaGVzOwogICAgIH0KIAorICAgIHZvaWQgcHJvY2Vzc1dhc21BZGRyZXNzVmFs
dWUoV2FzbUFkZHJlc3NWYWx1ZSogd2FzbUFkZHJlc3MpCisgICAgeworICAgICAgICBWYWx1ZSog
cHRyID0gd2FzbUFkZHJlc3MtPmNoaWxkKDApOworCisgICAgICAgIGlmIChWYWx1ZSogcmVwbGFj
ZW1lbnQgPSBtX2RhdGEubV93YXNtQWRkcmVzc2VzQXRUYWlsLmdldChwdHIpKSB7CisgICAgICAg
ICAgICB3YXNtQWRkcmVzcy0+cmVwbGFjZVdpdGhJZGVudGl0eShyZXBsYWNlbWVudCk7CisgICAg
ICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKG1fZGF0YS53cml0ZXNQaW5uZWQpIHsKKyAgICAgICAgICAgIC8vIFNv
bWVvbmUgYmVmb3JlIHVzIGluIHRoaXMgYmxvY2sgd3JvdGUgdG8gcGlubmVkLiBTbyB3ZSBoYXZl
IG5vCisgICAgICAgICAgICAvLyBob3BlIG9mIGZpbmRpbmcgYSBtYXRjaCBpZiB0aGUgYWJvdmUg
c2VhcmNoIGZhaWxlZC4KKyAgICAgICAgICAgIG1fZGF0YS5tX3dhc21BZGRyZXNzZXNBdFRhaWwu
YWRkKHB0ciwgd2FzbUFkZHJlc3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgVmFsdWUqIGNhbmRpZGF0ZVJlcGxhY2VtZW50ID0gbnVsbHB0cjsKKyAgICAgICAg
QmFzaWNCbG9jayogZG9taW5hdG9yID0gbnVsbHB0cjsKKyAgICAgICAgbV9kb21pbmF0b3JzLmZv
ckFsbFN0cmljdERvbWluYXRvcnNPZihtX2Jsb2NrLCBbJl0gKEJhc2ljQmxvY2sqIGJsb2NrKSB7
CisgICAgICAgICAgICBpZiAoY2FuZGlkYXRlUmVwbGFjZW1lbnQpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgICAgICBpZiAoVmFsdWUqIHJlcGxhY2VtZW50ID0gbV9pbXB1cmVC
bG9ja0RhdGFbYmxvY2tdLm1fd2FzbUFkZHJlc3Nlc0F0VGFpbC5nZXQocHRyKSkgeworICAgICAg
ICAgICAgICAgIGNhbmRpZGF0ZVJlcGxhY2VtZW50ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAg
ICAgICAgZG9taW5hdG9yID0gYmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisg
ICAgICAgIGlmICghY2FuZGlkYXRlUmVwbGFjZW1lbnQpIHsKKyAgICAgICAgICAgIG1fZGF0YS5t
X3dhc21BZGRyZXNzZXNBdFRhaWwuYWRkKHB0ciwgd2FzbUFkZHJlc3MpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgQmxvY2tXb3JrbGlzdCB3b3JrbGlzdDsKKyAg
ICAgICAgd29ya2xpc3QucHVzaEFsbChtX2Jsb2NrLT5wcmVkZWNlc3NvcnMoKSk7CisgICAgICAg
IHdoaWxlIChCYXNpY0Jsb2NrKiBibG9jayA9IHdvcmtsaXN0LnBvcCgpKSB7CisgICAgICAgICAg
ICBpZiAoYmxvY2sgPT0gZG9taW5hdG9yKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgaWYgKG1faW1wdXJlQmxvY2tEYXRhW2Jsb2NrXS53cml0ZXNQaW5uZWQpIHsKKyAgICAg
ICAgICAgICAgICBjYW5kaWRhdGVSZXBsYWNlbWVudCA9IG51bGxwdHI7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3b3JrbGlzdC5wdXNoQWxsKGJs
b2NrLT5wcmVkZWNlc3NvcnMoKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2FuZGlkYXRl
UmVwbGFjZW1lbnQpIHsKKyAgICAgICAgICAgIHdhc21BZGRyZXNzLT5yZXBsYWNlV2l0aElkZW50
aXR5KGNhbmRpZGF0ZVJlcGxhY2VtZW50KTsKKyAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7
CisgICAgICAgIH0KKworICAgICAgICBtX2RhdGEubV93YXNtQWRkcmVzc2VzQXRUYWlsLmFkZChw
dHIsIHdhc21BZGRyZXNzKTsKKyAgICB9CisKICAgICBQcm9jZWR1cmUmIG1fcHJvYzsKIAogICAg
IERvbWluYXRvcnMmIG1fZG9taW5hdG9yczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUHJvY2VkdXJlLmNwcAkocmV2aXNpb24gMjg2NzkxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsOCArNDgsMTAgQEAg
UHJvY2VkdXJlOjpQcm9jZWR1cmUoKQogICAgIDogbV9jZmcobmV3IENGRygqdGhpcykpCiAgICAg
LCBtX2xhc3RQaGFzZU5hbWUoImluaXRpYWwiKQogICAgICwgbV9ieXByb2R1Y3RzKG1ha2VVbmlx
dWU8T3BhcXVlQnlwcm9kdWN0cz4oKSkKLSAgICAsIG1fY29kZShuZXcgQWlyOjpDb2RlKCp0aGlz
KSkKIHsKKyAgICAvLyBJbml0aWFsaXplIGFsbCBvdXIgZmllbGRzIGJlZm9yZSBjb25zdHJ1Y3Rp
bmcgQWlyOjpDb2RlIHNpbmNlCisgICAgLy8gaXQgbG9va3MgaW50byBvdXIgZmllbGRzLgorICAg
IG1fY29kZSA9IHN0ZDo6dW5pcXVlX3B0cjxBaXI6OkNvZGU+KG5ldyBBaXI6OkNvZGUoKnRoaXMp
KTsKICAgICBtX2NvZGUtPnNldE51bUVudHJ5cG9pbnRzKG1fbnVtRW50cnlwb2ludHMpOwogfQog
CkBAIC00ODYsNiArNDg4LDEyIEBAIHZvaWQgUHJvY2VkdXJlOjpzZXRTaG91bGREdW1wSVIoKQog
ICAgIG1fY29kZS0+Zm9yY2VQcmVzZXJ2YXRpb25PZkIzT3JpZ2lucygpOwogfQogCit2b2lkIFBy
b2NlZHVyZTo6c2V0TmVlZHNQQ1RvT3JpZ2luTWFwKCkKK3sgCisgICAgbV9uZWVkc1BDVG9Pcmln
aW5NYXAgPSB0cnVlOworICAgIG1fY29kZS0+Zm9yY2VQcmVzZXJ2YXRpb25PZkIzT3JpZ2lucygp
OworfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKIAogI2VuZGlmIC8vIEVOQUJMRShCM19K
SVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAkocmV2aXNpb24g
Mjg2NzkxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3NSw3ICsyNzUsNyBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgUmVnaXN0ZXJTZXQgbXV0YWJsZUdQUnMoKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBSZWdp
c3RlclNldCBtdXRhYmxlRlBScygpOwogCi0gICAgdm9pZCBzZXROZWVkc1BDVG9PcmlnaW5NYXAo
KSB7IG1fbmVlZHNQQ1RvT3JpZ2luTWFwID0gdHJ1ZTsgfQorICAgIHZvaWQgc2V0TmVlZHNQQ1Rv
T3JpZ2luTWFwKCk7CiAgICAgYm9vbCBuZWVkc1BDVG9PcmlnaW5NYXAoKSB7IHJldHVybiBtX25l
ZWRzUENUb09yaWdpbk1hcDsgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBmcmVlVW5u
ZWVkZWRCM1ZhbHVlc0FmdGVyTG93ZXJpbmcoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyQ29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJDb2RlLmNwcAkocmV2aXNpb24gMjg2NzkxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBA
QCBzdGF0aWMgdm9pZCBkZWZhdWx0UHJvbG9ndWVHZW5lcmF0b3IoQ0NhCiBDb2RlOjpDb2RlKFBy
b2NlZHVyZSYgcHJvYykKICAgICA6IG1fcHJvYyhwcm9jKQogICAgICwgbV9jZmcobmV3IENGRygq
dGhpcykpCi0gICAgLCBtX3ByZXNlcnZlQjNPcmlnaW5zKHByb2MubmVlZHNQQ1RvT3JpZ2luTWFw
KCkgfHwgT3B0aW9uczo6ZHVtcEFpckdyYXBoQXRFYWNoUGhhc2UoKSB8fCBPcHRpb25zOjpkdW1w
RlRMRGlzYXNzZW1ibHkoKSkKKyAgICAsIG1fcHJlc2VydmVCM09yaWdpbnMoT3B0aW9uczo6ZHVt
cEFpckdyYXBoQXRFYWNoUGhhc2UoKSB8fCBPcHRpb25zOjpkdW1wRlRMRGlzYXNzZW1ibHkoKSkK
ICAgICAsIG1fbGFzdFBoYXNlTmFtZSgiaW5pdGlhbCIpCiAgICAgLCBtX2RlZmF1bHRQcm9sb2d1
ZUdlbmVyYXRvcihjcmVhdGVTaGFyZWRUYXNrPFByb2xvZ3VlR2VuZXJhdG9yRnVuY3Rpb24+KCZk
ZWZhdWx0UHJvbG9ndWVHZW5lcmF0b3IpKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446822</attachid>
            <date>2021-12-10 14:59:24 -0800</date>
            <delta_ts>2021-12-16 17:01:33 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>4222</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJl
c3Npb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNFbGlt
aW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5jcHAJKHJldmlzaW9uIDI4Njc5MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQ0LDEwICsxNDQsMTQgQEAgc3RydWN0IEltcHVyZUJsb2NrRGF0
YSB7CiAKICAgICBSYW5nZVNldDxIZWFwUmFuZ2U+IHJlYWRzOyAvLyBUaGlzIG9ubHkgZ2V0cyB1
c2VkIGZvciBmb3J3YXJkIHN0b3JlIGVsaW1pbmF0aW9uLgogICAgIFJhbmdlU2V0PEhlYXBSYW5n
ZT4gd3JpdGVzOyAvLyBUaGlzIGdldHMgdXNlZCBmb3IgYm90aCBsb2FkIGFuZCBzdG9yZSBlbGlt
aW5hdGlvbi4KLSAgICBib29sIGZlbmNlOworICAgIGJvb2wgZmVuY2UgeyBmYWxzZSB9OworICAg
IGJvb2wgd3JpdGVzUGlubmVkIHsgZmFsc2UgfTsKIAogICAgIE1lbW9yeVZhbHVlTWFwIHN0b3Jl
c0F0SGVhZDsKICAgICBNZW1vcnlWYWx1ZU1hcCBtZW1vcnlWYWx1ZXNBdFRhaWw7CisKKyAgICAv
LyBUaGlzIE1hcHMgeC0+eSBpbiAieSA9IFdhc21BZGRyZXNzKEB4KSIKKyAgICBIYXNoTWFwPFZh
bHVlKiwgVmFsdWUqPiBtX3dhc21BZGRyZXNzZXNBdFRhaWw7CiB9OwogCiBjbGFzcyBDU0UgewpA
QCAtMTg4LDYgKzE5MiwxNCBAQCBwdWJsaWM6CiAKICAgICAgICAgICAgICAgICBpZiAobWVtb3J5
KQogICAgICAgICAgICAgICAgICAgICBkYXRhLm1lbW9yeVZhbHVlc0F0VGFpbC5hZGQobWVtb3J5
KTsKKworICAgICAgICAgICAgICAgIGlmIChXYXNtQWRkcmVzc1ZhbHVlKiB3YXNtQWRkcmVzcyA9
IHZhbHVlLT5hczxXYXNtQWRkcmVzc1ZhbHVlPigpKQorICAgICAgICAgICAgICAgICAgICBkYXRh
Lm1fd2FzbUFkZHJlc3Nlc0F0VGFpbC5hZGQod2FzbUFkZHJlc3MtPmNoaWxkKDApLCB3YXNtQWRk
cmVzcyk7CisKKyAgICAgICAgICAgICAgICBpZiAoZWZmZWN0cy53cml0ZXNQaW5uZWQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgZGF0YS53cml0ZXNQaW5uZWQgPSB0cnVlOworICAgICAgICAgICAg
ICAgICAgICBkYXRhLm1fd2FzbUFkZHJlc3Nlc0F0VGFpbC5jbGVhcigpOworICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKEIzRWxpbWluYXRlQ29tbW9u
U3ViZXhwcmVzc2lvbnNJbnRlcm5hbDo6dmVyYm9zZSkKQEAgLTIzNywxNSArMjQ5LDI4IEBAIHBy
aXZhdGU6CiAKICAgICAgICAgaWYgKG1fcHVyZUNTRS5wcm9jZXNzKG1fdmFsdWUsIG1fZG9taW5h
dG9ycykpIHsKICAgICAgICAgICAgIEFTU0VSVCghbV92YWx1ZS0+ZWZmZWN0cygpLndyaXRlcyk7
CisgICAgICAgICAgICBBU1NFUlQoIW1fdmFsdWUtPmVmZmVjdHMoKS53cml0ZXNQaW5uZWQpOwog
ICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCisgICAgICAgIGlmIChXYXNtQWRkcmVzc1ZhbHVlKiB3YXNtQWRkcmVzcyA9IG1fdmFs
dWUtPmFzPFdhc21BZGRyZXNzVmFsdWU+KCkpIHsKKyAgICAgICAgICAgIHByb2Nlc3NXYXNtQWRk
cmVzc1ZhbHVlKHdhc21BZGRyZXNzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIEVmZmVjdHMgZWZmZWN0cyA9IG1fdmFsdWUtPmVmZmVjdHMoKTsKKworICAgICAg
ICBpZiAoZWZmZWN0cy53cml0ZXNQaW5uZWQpIHsKKyAgICAgICAgICAgIG1fZGF0YS53cml0ZXNQ
aW5uZWQgPSB0cnVlOworICAgICAgICAgICAgbV9kYXRhLm1fd2FzbUFkZHJlc3Nlc0F0VGFpbC5j
bGVhcigpOworICAgICAgICB9CisKICAgICAgICAgTWVtb3J5VmFsdWUqIG1lbW9yeSA9IG1fdmFs
dWUtPmFzPE1lbW9yeVZhbHVlPigpOwogICAgICAgICBpZiAobWVtb3J5ICYmIHByb2Nlc3NNZW1v
cnlCZWZvcmVDbG9iYmVyKG1lbW9yeSkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
aWYgKEhlYXBSYW5nZSB3cml0ZXMgPSBtX3ZhbHVlLT5lZmZlY3RzKCkud3JpdGVzKQorICAgICAg
ICBpZiAoSGVhcFJhbmdlIHdyaXRlcyA9IGVmZmVjdHMud3JpdGVzKQogICAgICAgICAgICAgY2xv
YmJlcihtX2RhdGEsIHdyaXRlcyk7CiAgICAgICAgIAogICAgICAgICBpZiAobWVtb3J5KQpAQCAt
Njk0LDYgKzcxOSw2MCBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbWF0Y2hlczsKICAgICB9
CiAKKyAgICB2b2lkIHByb2Nlc3NXYXNtQWRkcmVzc1ZhbHVlKFdhc21BZGRyZXNzVmFsdWUqIHdh
c21BZGRyZXNzKQorICAgIHsKKyAgICAgICAgVmFsdWUqIHB0ciA9IHdhc21BZGRyZXNzLT5jaGls
ZCgwKTsKKworICAgICAgICBpZiAoVmFsdWUqIHJlcGxhY2VtZW50ID0gbV9kYXRhLm1fd2FzbUFk
ZHJlc3Nlc0F0VGFpbC5nZXQocHRyKSkgeworICAgICAgICAgICAgd2FzbUFkZHJlc3MtPnJlcGxh
Y2VXaXRoSWRlbnRpdHkocmVwbGFjZW1lbnQpOworICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1
ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX2RhdGEu
d3JpdGVzUGlubmVkKSB7CisgICAgICAgICAgICAvLyBTb21lb25lIGJlZm9yZSB1cyBpbiB0aGlz
IGJsb2NrIHdyb3RlIHRvIHBpbm5lZC4gU28gd2UgaGF2ZSBubworICAgICAgICAgICAgLy8gaG9w
ZSBvZiBmaW5kaW5nIGEgbWF0Y2ggaWYgdGhlIGFib3ZlIHNlYXJjaCBmYWlsZWQuCisgICAgICAg
ICAgICBtX2RhdGEubV93YXNtQWRkcmVzc2VzQXRUYWlsLmFkZChwdHIsIHdhc21BZGRyZXNzKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFZhbHVlKiBjYW5kaWRh
dGVSZXBsYWNlbWVudCA9IG51bGxwdHI7CisgICAgICAgIEJhc2ljQmxvY2sqIGRvbWluYXRvciA9
IG51bGxwdHI7CisgICAgICAgIG1fZG9taW5hdG9ycy5mb3JBbGxTdHJpY3REb21pbmF0b3JzT2Yo
bV9ibG9jaywgWyZdIChCYXNpY0Jsb2NrKiBibG9jaykgeworICAgICAgICAgICAgaWYgKGNhbmRp
ZGF0ZVJlcGxhY2VtZW50KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAg
aWYgKFZhbHVlKiByZXBsYWNlbWVudCA9IG1faW1wdXJlQmxvY2tEYXRhW2Jsb2NrXS5tX3dhc21B
ZGRyZXNzZXNBdFRhaWwuZ2V0KHB0cikpIHsKKyAgICAgICAgICAgICAgICBjYW5kaWRhdGVSZXBs
YWNlbWVudCA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgICAgIGRvbWluYXRvciA9IGJsb2Nr
OworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBpZiAoIWNhbmRpZGF0ZVJl
cGxhY2VtZW50KSB7CisgICAgICAgICAgICBtX2RhdGEubV93YXNtQWRkcmVzc2VzQXRUYWlsLmFk
ZChwdHIsIHdhc21BZGRyZXNzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIEJsb2NrV29ya2xpc3Qgd29ya2xpc3Q7CisgICAgICAgIHdvcmtsaXN0LnB1c2hBbGwo
bV9ibG9jay0+cHJlZGVjZXNzb3JzKCkpOworICAgICAgICB3aGlsZSAoQmFzaWNCbG9jayogYmxv
Y2sgPSB3b3JrbGlzdC5wb3AoKSkgeworICAgICAgICAgICAgaWYgKGJsb2NrID09IGRvbWluYXRv
cikKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChtX2ltcHVyZUJsb2Nr
RGF0YVtibG9ja10ud3JpdGVzUGlubmVkKSB7CisgICAgICAgICAgICAgICAgY2FuZGlkYXRlUmVw
bGFjZW1lbnQgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgd29ya2xpc3QucHVzaEFsbChibG9jay0+cHJlZGVjZXNzb3JzKCkpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKGNhbmRpZGF0ZVJlcGxhY2VtZW50KSB7CisgICAgICAg
ICAgICB3YXNtQWRkcmVzcy0+cmVwbGFjZVdpdGhJZGVudGl0eShjYW5kaWRhdGVSZXBsYWNlbWVu
dCk7CisgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAg
bV9kYXRhLm1fd2FzbUFkZHJlc3Nlc0F0VGFpbC5hZGQocHRyLCB3YXNtQWRkcmVzcyk7CisgICAg
fQorCiAgICAgUHJvY2VkdXJlJiBtX3Byb2M7CiAKICAgICBEb21pbmF0b3JzJiBtX2RvbWluYXRv
cnM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447398</attachid>
            <date>2021-12-16 17:01:33 -0800</date>
            <delta_ts>2021-12-16 17:09:45 -0800</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>5364</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg3MTY0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDIxLTEyLTE2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFN1cHBvcnQgV2FzbUFkZHJlc3MgaW4gQjMgQ1NFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwNTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2
NTUyOTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGluIEIzJ3MgQ1NFIHBoYXNlIHRvIGhhbmRsZSBXYXNt
QWRkcmVzc1ZhbHVlIGNvbXB1dGF0aW9ucy4KKyAgICAgICAgVGhlIHJlYXNvbiB0aGlzIGNhbid0
IHBhcnRha2UgaW4gcHVyZSBDU0UgaXMgdGhhdCBXYXNtQWRkcmVzc1ZhbHVlIHJlYWRzIHBpbm5l
ZC4KKyAgICAgICAgVG8gc3VwcG9ydCB0aGlzLCB3ZSBrZWVwIHRyYWNrIG9mIHdoaWNoIGJsb2Nr
cyB3cml0ZSBwaW5uZWQuIElmIHdlJ3JlIHRyeWluZyB0bworICAgICAgICByZXBsYWNlIGEgdmFs
dWUgVjIgd2l0aCBWMSBiZWNhdXNlIGl0IGFwcGVhcnMgdGhlcmUgaXMgYSByZWR1bmRhbmN5LCB3
ZSBjaGVjayBpZgorICAgICAgICBhbnkgcGF0aHMgZnJvbSBWMSB0byBWMiB3cml0ZSBwaW5uZWQu
IElmIG5vbmUgZG8sIHdlIHByb2NlZWQgd2l0aCB0aGUgcmVwbGFjZW1lbnQuCisKKyAgICAgICAg
KiBiMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcDoKKwogMjAyMS0xMi0xNiAg
U2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgYXJtNjQncyBm
bWF4L2ZtaW4gaW5zdHJ1Y3Rpb25zIGluIFdhc20KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5j
cHAJKHJldmlzaW9uIDI4NzE2NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0VsaW1p
bmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIs
NyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+
CiAjaW5jbHVkZSA8d3RmL1JhbmdlU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0xNDQsMTAgKzE0NSwxNCBAQCBzdHJ1
Y3QgSW1wdXJlQmxvY2tEYXRhIHsKIAogICAgIFJhbmdlU2V0PEhlYXBSYW5nZT4gcmVhZHM7IC8v
IFRoaXMgb25seSBnZXRzIHVzZWQgZm9yIGZvcndhcmQgc3RvcmUgZWxpbWluYXRpb24uCiAgICAg
UmFuZ2VTZXQ8SGVhcFJhbmdlPiB3cml0ZXM7IC8vIFRoaXMgZ2V0cyB1c2VkIGZvciBib3RoIGxv
YWQgYW5kIHN0b3JlIGVsaW1pbmF0aW9uLgotICAgIGJvb2wgZmVuY2U7CisgICAgYm9vbCBmZW5j
ZSB7IGZhbHNlIH07CisgICAgYm9vbCB3cml0ZXNQaW5uZWQgeyBmYWxzZSB9OwogCiAgICAgTWVt
b3J5VmFsdWVNYXAgc3RvcmVzQXRIZWFkOwogICAgIE1lbW9yeVZhbHVlTWFwIG1lbW9yeVZhbHVl
c0F0VGFpbDsKKworICAgIC8vIFRoaXMgTWFwcyB4LT55IGluICJ5ID0gV2FzbUFkZHJlc3MoQHgp
IgorICAgIEhhc2hNYXA8VmFsdWUqLCBWYWx1ZSo+IG1fd2FzbUFkZHJlc3Nlc0F0VGFpbDsKIH07
CiAKIGNsYXNzIENTRSB7CkBAIC0xODgsNiArMTkzLDE0IEBAIHB1YmxpYzoKIAogICAgICAgICAg
ICAgICAgIGlmIChtZW1vcnkpCiAgICAgICAgICAgICAgICAgICAgIGRhdGEubWVtb3J5VmFsdWVz
QXRUYWlsLmFkZChtZW1vcnkpOworCisgICAgICAgICAgICAgICAgaWYgKFdhc21BZGRyZXNzVmFs
dWUqIHdhc21BZGRyZXNzID0gdmFsdWUtPmFzPFdhc21BZGRyZXNzVmFsdWU+KCkpCisgICAgICAg
ICAgICAgICAgICAgIGRhdGEubV93YXNtQWRkcmVzc2VzQXRUYWlsLmFkZCh3YXNtQWRkcmVzcy0+
Y2hpbGQoMCksIHdhc21BZGRyZXNzKTsKKworICAgICAgICAgICAgICAgIGlmIChlZmZlY3RzLndy
aXRlc1Bpbm5lZCkgeworICAgICAgICAgICAgICAgICAgICBkYXRhLndyaXRlc1Bpbm5lZCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgICAgIGRhdGEubV93YXNtQWRkcmVzc2VzQXRUYWlsLmNsZWFy
KCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAo
QjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9uc0ludGVybmFsOjp2ZXJib3NlKQpAQCAtMjM3
LDE1ICsyNTAsMjggQEAgcHJpdmF0ZToKIAogICAgICAgICBpZiAobV9wdXJlQ1NFLnByb2Nlc3Mo
bV92YWx1ZSwgbV9kb21pbmF0b3JzKSkgewogICAgICAgICAgICAgQVNTRVJUKCFtX3ZhbHVlLT5l
ZmZlY3RzKCkud3JpdGVzKTsKKyAgICAgICAgICAgIEFTU0VSVCghbV92YWx1ZS0+ZWZmZWN0cygp
LndyaXRlc1Bpbm5lZCk7CiAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKFdhc21BZGRyZXNzVmFsdWUqIHdh
c21BZGRyZXNzID0gbV92YWx1ZS0+YXM8V2FzbUFkZHJlc3NWYWx1ZT4oKSkgeworICAgICAgICAg
ICAgcHJvY2Vzc1dhc21BZGRyZXNzVmFsdWUod2FzbUFkZHJlc3MpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgRWZmZWN0cyBlZmZlY3RzID0gbV92YWx1ZS0+ZWZm
ZWN0cygpOworCisgICAgICAgIGlmIChlZmZlY3RzLndyaXRlc1Bpbm5lZCkgeworICAgICAgICAg
ICAgbV9kYXRhLndyaXRlc1Bpbm5lZCA9IHRydWU7CisgICAgICAgICAgICBtX2RhdGEubV93YXNt
QWRkcmVzc2VzQXRUYWlsLmNsZWFyKCk7CisgICAgICAgIH0KKwogICAgICAgICBNZW1vcnlWYWx1
ZSogbWVtb3J5ID0gbV92YWx1ZS0+YXM8TWVtb3J5VmFsdWU+KCk7CiAgICAgICAgIGlmIChtZW1v
cnkgJiYgcHJvY2Vzc01lbW9yeUJlZm9yZUNsb2JiZXIobWVtb3J5KSkKICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBpZiAoSGVhcFJhbmdlIHdyaXRlcyA9IG1fdmFsdWUtPmVmZmVjdHMo
KS53cml0ZXMpCisgICAgICAgIGlmIChIZWFwUmFuZ2Ugd3JpdGVzID0gZWZmZWN0cy53cml0ZXMp
CiAgICAgICAgICAgICBjbG9iYmVyKG1fZGF0YSwgd3JpdGVzKTsKICAgICAgICAgCiAgICAgICAg
IGlmIChtZW1vcnkpCkBAIC02OTQsNiArNzIwLDU5IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVy
biBtYXRjaGVzOwogICAgIH0KIAorICAgIHZvaWQgcHJvY2Vzc1dhc21BZGRyZXNzVmFsdWUoV2Fz
bUFkZHJlc3NWYWx1ZSogd2FzbUFkZHJlc3MpCisgICAgeworICAgICAgICBWYWx1ZSogcHRyID0g
d2FzbUFkZHJlc3MtPmNoaWxkKDApOworCisgICAgICAgIGlmIChWYWx1ZSogcmVwbGFjZW1lbnQg
PSBtX2RhdGEubV93YXNtQWRkcmVzc2VzQXRUYWlsLmdldChwdHIpKSB7CisgICAgICAgICAgICB3
YXNtQWRkcmVzcy0+cmVwbGFjZVdpdGhJZGVudGl0eShyZXBsYWNlbWVudCk7CisgICAgICAgICAg
ICBtX2NoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgYXV0byBhZGRQdHJPblNjb3BlRXhpdCA9IG1ha2VTY29wZUV4aXQoWyZdIHsKKyAgICAg
ICAgICAgIG1fZGF0YS5tX3dhc21BZGRyZXNzZXNBdFRhaWwuYWRkKHB0ciwgd2FzbUFkZHJlc3Mp
OworICAgICAgICB9KTsKKworICAgICAgICBpZiAobV9kYXRhLndyaXRlc1Bpbm5lZCkgeworICAg
ICAgICAgICAgLy8gU29tZW9uZSBiZWZvcmUgdXMgaW4gdGhpcyBibG9jayB3cm90ZSB0byBwaW5u
ZWQuIFNvIHdlIGhhdmUgbm8KKyAgICAgICAgICAgIC8vIGhvcGUgb2YgZmluZGluZyBhIG1hdGNo
IGlmIHRoZSBhYm92ZSBzZWFyY2ggZmFpbGVkLgorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgVmFsdWUqIGNhbmRpZGF0ZVJlcGxhY2VtZW50ID0gbnVsbHB0cjsKKyAg
ICAgICAgQmFzaWNCbG9jayogZG9taW5hdG9yID0gbnVsbHB0cjsKKyAgICAgICAgbV9kb21pbmF0
b3JzLmZvckFsbFN0cmljdERvbWluYXRvcnNPZihtX2Jsb2NrLCBbJl0gKEJhc2ljQmxvY2sqIGJs
b2NrKSB7CisgICAgICAgICAgICBpZiAoY2FuZGlkYXRlUmVwbGFjZW1lbnQpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoVmFsdWUqIHJlcGxhY2VtZW50ID0gbV9p
bXB1cmVCbG9ja0RhdGFbYmxvY2tdLm1fd2FzbUFkZHJlc3Nlc0F0VGFpbC5nZXQocHRyKSkgewor
ICAgICAgICAgICAgICAgIGNhbmRpZGF0ZVJlcGxhY2VtZW50ID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgICAgICAgICAgZG9taW5hdG9yID0gYmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgIH0p
OworCisgICAgICAgIGlmICghY2FuZGlkYXRlUmVwbGFjZW1lbnQpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgQmxvY2tXb3JrbGlzdCB3b3JrbGlzdDsKKyAgICAgICAgd29ya2xpc3Qu
cHVzaEFsbChtX2Jsb2NrLT5wcmVkZWNlc3NvcnMoKSk7CisgICAgICAgIHdoaWxlIChCYXNpY0Js
b2NrKiBibG9jayA9IHdvcmtsaXN0LnBvcCgpKSB7CisgICAgICAgICAgICBpZiAoYmxvY2sgPT0g
ZG9taW5hdG9yKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKG1faW1w
dXJlQmxvY2tEYXRhW2Jsb2NrXS53cml0ZXNQaW5uZWQpIHsKKyAgICAgICAgICAgICAgICBjYW5k
aWRhdGVSZXBsYWNlbWVudCA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICB3b3JrbGlzdC5wdXNoQWxsKGJsb2NrLT5wcmVkZWNlc3Nv
cnMoKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2FuZGlkYXRlUmVwbGFjZW1lbnQpIHsK
KyAgICAgICAgICAgIHdhc21BZGRyZXNzLT5yZXBsYWNlV2l0aElkZW50aXR5KGNhbmRpZGF0ZVJl
cGxhY2VtZW50KTsKKyAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAgIH0KKyAg
ICB9CisKICAgICBQcm9jZWR1cmUmIG1fcHJvYzsKIAogICAgIERvbWluYXRvcnMmIG1fZG9taW5h
dG9yczsK
</data>
<flag name="review"
          id="473014"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447399</attachid>
            <date>2021-12-16 17:09:45 -0800</date>
            <delta_ts>2021-12-16 17:11:20 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>5414</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg3MTY0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDIxLTEyLTE2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFN1cHBvcnQgV2FzbUFkZHJlc3MgaW4gQjMgQ1NFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwNTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2
NTUyOTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEZpbGlwIFBpemxvIGFuZCBZdXN1a2UgU3V6
dWtpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGluIEIzJ3MgQ1NFIHBoYXNl
IHRvIGhhbmRsZSBXYXNtQWRkcmVzc1ZhbHVlIGNvbXB1dGF0aW9ucy4KKyAgICAgICAgVGhlIHJl
YXNvbiB0aGlzIGNhbid0IHBhcnRha2UgaW4gcHVyZSBDU0UgaXMgdGhhdCBXYXNtQWRkcmVzc1Zh
bHVlIHJlYWRzIHBpbm5lZC4KKyAgICAgICAgVG8gc3VwcG9ydCB0aGlzLCB3ZSBrZWVwIHRyYWNr
IG9mIHdoaWNoIGJsb2NrcyB3cml0ZSBwaW5uZWQuIElmIHdlJ3JlIHRyeWluZyB0bworICAgICAg
ICByZXBsYWNlIGEgdmFsdWUgVjIgd2l0aCBWMSBiZWNhdXNlIGl0IGFwcGVhcnMgdGhlcmUgaXMg
YSByZWR1bmRhbmN5LCB3ZSBjaGVjayBpZgorICAgICAgICBhbnkgcGF0aHMgZnJvbSBWMSB0byBW
MiB3cml0ZSBwaW5uZWQuIElmIG5vbmUgZG8sIHdlIHByb2NlZWQgd2l0aCB0aGUgcmVwbGFjZW1l
bnQuCisKKyAgICAgICAgKiBiMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcDoK
KwogMjAyMS0xMi0xNiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVc2UgYXJtNjQncyBmbWF4L2ZtaW4gaW5zdHJ1Y3Rpb25zIGluIFdhc20KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNFbGltaW5hdGVDb21tb25T
dWJleHByZXNzaW9ucy5jcHAJKHJldmlzaW9uIDI4NzE2NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL1JhbmdlU2V0Lmg+CisjaW5jbHVkZSA8d3Rm
L1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0xNDQsMTAg
KzE0NSwxNCBAQCBzdHJ1Y3QgSW1wdXJlQmxvY2tEYXRhIHsKIAogICAgIFJhbmdlU2V0PEhlYXBS
YW5nZT4gcmVhZHM7IC8vIFRoaXMgb25seSBnZXRzIHVzZWQgZm9yIGZvcndhcmQgc3RvcmUgZWxp
bWluYXRpb24uCiAgICAgUmFuZ2VTZXQ8SGVhcFJhbmdlPiB3cml0ZXM7IC8vIFRoaXMgZ2V0cyB1
c2VkIGZvciBib3RoIGxvYWQgYW5kIHN0b3JlIGVsaW1pbmF0aW9uLgotICAgIGJvb2wgZmVuY2U7
CisgICAgYm9vbCBmZW5jZSB7IGZhbHNlIH07CisgICAgYm9vbCB3cml0ZXNQaW5uZWQgeyBmYWxz
ZSB9OwogCiAgICAgTWVtb3J5VmFsdWVNYXAgc3RvcmVzQXRIZWFkOwogICAgIE1lbW9yeVZhbHVl
TWFwIG1lbW9yeVZhbHVlc0F0VGFpbDsKKworICAgIC8vIFRoaXMgTWFwcyB4LT55IGluICJ5ID0g
V2FzbUFkZHJlc3MoQHgpIgorICAgIEhhc2hNYXA8VmFsdWUqLCBWYWx1ZSo+IG1fdmFsaWRXYXNt
QWRkcmVzc2VzQXRUYWlsOwogfTsKIAogY2xhc3MgQ1NFIHsKQEAgLTE4OCw2ICsxOTMsMTQgQEAg
cHVibGljOgogCiAgICAgICAgICAgICAgICAgaWYgKG1lbW9yeSkKICAgICAgICAgICAgICAgICAg
ICAgZGF0YS5tZW1vcnlWYWx1ZXNBdFRhaWwuYWRkKG1lbW9yeSk7CisKKyAgICAgICAgICAgICAg
ICBpZiAoV2FzbUFkZHJlc3NWYWx1ZSogd2FzbUFkZHJlc3MgPSB2YWx1ZS0+YXM8V2FzbUFkZHJl
c3NWYWx1ZT4oKSkKKyAgICAgICAgICAgICAgICAgICAgZGF0YS5tX3ZhbGlkV2FzbUFkZHJlc3Nl
c0F0VGFpbC5hZGQod2FzbUFkZHJlc3MtPmNoaWxkKDApLCB3YXNtQWRkcmVzcyk7CisKKyAgICAg
ICAgICAgICAgICBpZiAoZWZmZWN0cy53cml0ZXNQaW5uZWQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgZGF0YS53cml0ZXNQaW5uZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBkYXRhLm1f
dmFsaWRXYXNtQWRkcmVzc2VzQXRUYWlsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNz
aW9uc0ludGVybmFsOjp2ZXJib3NlKQpAQCAtMjM3LDE1ICsyNTAsMjggQEAgcHJpdmF0ZToKIAog
ICAgICAgICBpZiAobV9wdXJlQ1NFLnByb2Nlc3MobV92YWx1ZSwgbV9kb21pbmF0b3JzKSkgewog
ICAgICAgICAgICAgQVNTRVJUKCFtX3ZhbHVlLT5lZmZlY3RzKCkud3JpdGVzKTsKKyAgICAgICAg
ICAgIEFTU0VSVCghbV92YWx1ZS0+ZWZmZWN0cygpLndyaXRlc1Bpbm5lZCk7CiAgICAgICAgICAg
ICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAg
ICAgICAgaWYgKFdhc21BZGRyZXNzVmFsdWUqIHdhc21BZGRyZXNzID0gbV92YWx1ZS0+YXM8V2Fz
bUFkZHJlc3NWYWx1ZT4oKSkgeworICAgICAgICAgICAgcHJvY2Vzc1dhc21BZGRyZXNzVmFsdWUo
d2FzbUFkZHJlc3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
RWZmZWN0cyBlZmZlY3RzID0gbV92YWx1ZS0+ZWZmZWN0cygpOworCisgICAgICAgIGlmIChlZmZl
Y3RzLndyaXRlc1Bpbm5lZCkgeworICAgICAgICAgICAgbV9kYXRhLndyaXRlc1Bpbm5lZCA9IHRy
dWU7CisgICAgICAgICAgICBtX2RhdGEubV92YWxpZFdhc21BZGRyZXNzZXNBdFRhaWwuY2xlYXIo
KTsKKyAgICAgICAgfQorCiAgICAgICAgIE1lbW9yeVZhbHVlKiBtZW1vcnkgPSBtX3ZhbHVlLT5h
czxNZW1vcnlWYWx1ZT4oKTsKICAgICAgICAgaWYgKG1lbW9yeSAmJiBwcm9jZXNzTWVtb3J5QmVm
b3JlQ2xvYmJlcihtZW1vcnkpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChI
ZWFwUmFuZ2Ugd3JpdGVzID0gbV92YWx1ZS0+ZWZmZWN0cygpLndyaXRlcykKKyAgICAgICAgaWYg
KEhlYXBSYW5nZSB3cml0ZXMgPSBlZmZlY3RzLndyaXRlcykKICAgICAgICAgICAgIGNsb2JiZXIo
bV9kYXRhLCB3cml0ZXMpOwogICAgICAgICAKICAgICAgICAgaWYgKG1lbW9yeSkKQEAgLTY5NCw2
ICs3MjAsNTkgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG1hdGNoZXM7CiAgICAgfQogCisg
ICAgdm9pZCBwcm9jZXNzV2FzbUFkZHJlc3NWYWx1ZShXYXNtQWRkcmVzc1ZhbHVlKiB3YXNtQWRk
cmVzcykKKyAgICB7CisgICAgICAgIFZhbHVlKiBwdHIgPSB3YXNtQWRkcmVzcy0+Y2hpbGQoMCk7
CisKKyAgICAgICAgaWYgKFZhbHVlKiByZXBsYWNlbWVudCA9IG1fZGF0YS5tX3ZhbGlkV2FzbUFk
ZHJlc3Nlc0F0VGFpbC5nZXQocHRyKSkgeworICAgICAgICAgICAgd2FzbUFkZHJlc3MtPnJlcGxh
Y2VXaXRoSWRlbnRpdHkocmVwbGFjZW1lbnQpOworICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1
ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gYWRkUHRy
T25TY29wZUV4aXQgPSBtYWtlU2NvcGVFeGl0KFsmXSB7CisgICAgICAgICAgICBtX2RhdGEubV92
YWxpZFdhc21BZGRyZXNzZXNBdFRhaWwuYWRkKHB0ciwgd2FzbUFkZHJlc3MpOworICAgICAgICB9
KTsKKworICAgICAgICBpZiAobV9kYXRhLndyaXRlc1Bpbm5lZCkgeworICAgICAgICAgICAgLy8g
U29tZW9uZSBiZWZvcmUgdXMgaW4gdGhpcyBibG9jayB3cm90ZSB0byBwaW5uZWQuIFNvIHdlIGhh
dmUgbm8KKyAgICAgICAgICAgIC8vIGhvcGUgb2YgZmluZGluZyBhIG1hdGNoIGlmIHRoZSBhYm92
ZSBzZWFyY2ggZmFpbGVkLgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgVmFsdWUqIGNhbmRpZGF0ZVJlcGxhY2VtZW50ID0gbnVsbHB0cjsKKyAgICAgICAgQmFzaWNC
bG9jayogZG9taW5hdG9yID0gbnVsbHB0cjsKKyAgICAgICAgbV9kb21pbmF0b3JzLmZvckFsbFN0
cmljdERvbWluYXRvcnNPZihtX2Jsb2NrLCBbJl0gKEJhc2ljQmxvY2sqIGJsb2NrKSB7CisgICAg
ICAgICAgICBpZiAoY2FuZGlkYXRlUmVwbGFjZW1lbnQpCisgICAgICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgICAgICBpZiAoVmFsdWUqIHJlcGxhY2VtZW50ID0gbV9pbXB1cmVCbG9ja0Rh
dGFbYmxvY2tdLm1fdmFsaWRXYXNtQWRkcmVzc2VzQXRUYWlsLmdldChwdHIpKSB7CisgICAgICAg
ICAgICAgICAgY2FuZGlkYXRlUmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAg
ICAgICBkb21pbmF0b3IgPSBibG9jazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAg
ICAgICAgaWYgKCFjYW5kaWRhdGVSZXBsYWNlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBCbG9ja1dvcmtsaXN0IHdvcmtsaXN0OworICAgICAgICB3b3JrbGlzdC5wdXNoQWxs
KG1fYmxvY2stPnByZWRlY2Vzc29ycygpKTsKKyAgICAgICAgd2hpbGUgKEJhc2ljQmxvY2sqIGJs
b2NrID0gd29ya2xpc3QucG9wKCkpIHsKKyAgICAgICAgICAgIGlmIChibG9jayA9PSBkb21pbmF0
b3IpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAobV9pbXB1cmVCbG9j
a0RhdGFbYmxvY2tdLndyaXRlc1Bpbm5lZCkgeworICAgICAgICAgICAgICAgIGNhbmRpZGF0ZVJl
cGxhY2VtZW50ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHdvcmtsaXN0LnB1c2hBbGwoYmxvY2stPnByZWRlY2Vzc29ycygpKTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChjYW5kaWRhdGVSZXBsYWNlbWVudCkgeworICAgICAg
ICAgICAgd2FzbUFkZHJlc3MtPnJlcGxhY2VXaXRoSWRlbnRpdHkoY2FuZGlkYXRlUmVwbGFjZW1l
bnQpOworICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIFByb2NlZHVyZSYgbV9wcm9jOwogCiAgICAgRG9taW5hdG9ycyYgbV9kb21pbmF0b3JzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447400</attachid>
            <date>2021-12-16 17:11:20 -0800</date>
            <delta_ts>2021-12-16 17:12:14 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>5414</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg3MTY0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDIxLTEyLTE2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFN1cHBvcnQgV2FzbUFkZHJlc3MgaW4gQjMgQ1NFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwNTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2
NTUyOTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEZpbGlwIFBpemxvIGFuZCBZdXN1a2UgU3V6
dWtpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGluIEIzJ3MgQ1NFIHBoYXNl
IHRvIGhhbmRsZSBXYXNtQWRkcmVzc1ZhbHVlIGNvbXB1dGF0aW9ucy4KKyAgICAgICAgVGhlIHJl
YXNvbiB0aGlzIGNhbid0IHBhcnRha2UgaW4gcHVyZSBDU0UgaXMgdGhhdCBXYXNtQWRkcmVzc1Zh
bHVlIHJlYWRzIHBpbm5lZC4KKyAgICAgICAgVG8gc3VwcG9ydCB0aGlzLCB3ZSBrZWVwIHRyYWNr
IG9mIHdoaWNoIGJsb2NrcyB3cml0ZSBwaW5uZWQuIElmIHdlJ3JlIHRyeWluZyB0bworICAgICAg
ICByZXBsYWNlIGEgdmFsdWUgVjIgd2l0aCBWMSBiZWNhdXNlIGl0IGFwcGVhcnMgdGhlcmUgaXMg
YSByZWR1bmRhbmN5LCB3ZSBjaGVjayBpZgorICAgICAgICBhbnkgcGF0aHMgZnJvbSBWMSB0byBW
MiB3cml0ZSBwaW5uZWQuIElmIG5vbmUgZG8sIHdlIHByb2NlZWQgd2l0aCB0aGUgcmVwbGFjZW1l
bnQuCisKKyAgICAgICAgKiBiMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcDoK
KwogMjAyMS0xMi0xNiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVc2UgYXJtNjQncyBmbWF4L2ZtaW4gaW5zdHJ1Y3Rpb25zIGluIFdhc20KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNFbGltaW5hdGVDb21tb25T
dWJleHByZXNzaW9ucy5jcHAJKHJldmlzaW9uIDI4NzE2NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL1JhbmdlU2V0Lmg+CisjaW5jbHVkZSA8d3Rm
L1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0xNDQsMTAg
KzE0NSwxNCBAQCBzdHJ1Y3QgSW1wdXJlQmxvY2tEYXRhIHsKIAogICAgIFJhbmdlU2V0PEhlYXBS
YW5nZT4gcmVhZHM7IC8vIFRoaXMgb25seSBnZXRzIHVzZWQgZm9yIGZvcndhcmQgc3RvcmUgZWxp
bWluYXRpb24uCiAgICAgUmFuZ2VTZXQ8SGVhcFJhbmdlPiB3cml0ZXM7IC8vIFRoaXMgZ2V0cyB1
c2VkIGZvciBib3RoIGxvYWQgYW5kIHN0b3JlIGVsaW1pbmF0aW9uLgotICAgIGJvb2wgZmVuY2U7
CisgICAgYm9vbCBmZW5jZSB7IGZhbHNlIH07CisgICAgYm9vbCB3cml0ZXNQaW5uZWQgeyBmYWxz
ZSB9OwogCiAgICAgTWVtb3J5VmFsdWVNYXAgc3RvcmVzQXRIZWFkOwogICAgIE1lbW9yeVZhbHVl
TWFwIG1lbW9yeVZhbHVlc0F0VGFpbDsKKworICAgIC8vIFRoaXMgTWFwcyB4LT55IGluICJ5ID0g
V2FzbUFkZHJlc3MoQHgpIgorICAgIEhhc2hNYXA8VmFsdWUqLCBWYWx1ZSo+IG1fY2FuZGlkYXRl
QWRkcmVzc2VzQXRUYWlsOwogfTsKIAogY2xhc3MgQ1NFIHsKQEAgLTE4OCw2ICsxOTMsMTQgQEAg
cHVibGljOgogCiAgICAgICAgICAgICAgICAgaWYgKG1lbW9yeSkKICAgICAgICAgICAgICAgICAg
ICAgZGF0YS5tZW1vcnlWYWx1ZXNBdFRhaWwuYWRkKG1lbW9yeSk7CisKKyAgICAgICAgICAgICAg
ICBpZiAoV2FzbUFkZHJlc3NWYWx1ZSogd2FzbUFkZHJlc3MgPSB2YWx1ZS0+YXM8V2FzbUFkZHJl
c3NWYWx1ZT4oKSkKKyAgICAgICAgICAgICAgICAgICAgZGF0YS5tX2NhbmRpZGF0ZUFkZHJlc3Nl
c0F0VGFpbC5hZGQod2FzbUFkZHJlc3MtPmNoaWxkKDApLCB3YXNtQWRkcmVzcyk7CisKKyAgICAg
ICAgICAgICAgICBpZiAoZWZmZWN0cy53cml0ZXNQaW5uZWQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgZGF0YS53cml0ZXNQaW5uZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBkYXRhLm1f
Y2FuZGlkYXRlQWRkcmVzc2VzQXRUYWlsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNz
aW9uc0ludGVybmFsOjp2ZXJib3NlKQpAQCAtMjM3LDE1ICsyNTAsMjggQEAgcHJpdmF0ZToKIAog
ICAgICAgICBpZiAobV9wdXJlQ1NFLnByb2Nlc3MobV92YWx1ZSwgbV9kb21pbmF0b3JzKSkgewog
ICAgICAgICAgICAgQVNTRVJUKCFtX3ZhbHVlLT5lZmZlY3RzKCkud3JpdGVzKTsKKyAgICAgICAg
ICAgIEFTU0VSVCghbV92YWx1ZS0+ZWZmZWN0cygpLndyaXRlc1Bpbm5lZCk7CiAgICAgICAgICAg
ICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAg
ICAgICAgaWYgKFdhc21BZGRyZXNzVmFsdWUqIHdhc21BZGRyZXNzID0gbV92YWx1ZS0+YXM8V2Fz
bUFkZHJlc3NWYWx1ZT4oKSkgeworICAgICAgICAgICAgcHJvY2Vzc1dhc21BZGRyZXNzVmFsdWUo
d2FzbUFkZHJlc3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
RWZmZWN0cyBlZmZlY3RzID0gbV92YWx1ZS0+ZWZmZWN0cygpOworCisgICAgICAgIGlmIChlZmZl
Y3RzLndyaXRlc1Bpbm5lZCkgeworICAgICAgICAgICAgbV9kYXRhLndyaXRlc1Bpbm5lZCA9IHRy
dWU7CisgICAgICAgICAgICBtX2RhdGEubV9jYW5kaWRhdGVBZGRyZXNzZXNBdFRhaWwuY2xlYXIo
KTsKKyAgICAgICAgfQorCiAgICAgICAgIE1lbW9yeVZhbHVlKiBtZW1vcnkgPSBtX3ZhbHVlLT5h
czxNZW1vcnlWYWx1ZT4oKTsKICAgICAgICAgaWYgKG1lbW9yeSAmJiBwcm9jZXNzTWVtb3J5QmVm
b3JlQ2xvYmJlcihtZW1vcnkpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChI
ZWFwUmFuZ2Ugd3JpdGVzID0gbV92YWx1ZS0+ZWZmZWN0cygpLndyaXRlcykKKyAgICAgICAgaWYg
KEhlYXBSYW5nZSB3cml0ZXMgPSBlZmZlY3RzLndyaXRlcykKICAgICAgICAgICAgIGNsb2JiZXIo
bV9kYXRhLCB3cml0ZXMpOwogICAgICAgICAKICAgICAgICAgaWYgKG1lbW9yeSkKQEAgLTY5NCw2
ICs3MjAsNTkgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG1hdGNoZXM7CiAgICAgfQogCisg
ICAgdm9pZCBwcm9jZXNzV2FzbUFkZHJlc3NWYWx1ZShXYXNtQWRkcmVzc1ZhbHVlKiB3YXNtQWRk
cmVzcykKKyAgICB7CisgICAgICAgIFZhbHVlKiBwdHIgPSB3YXNtQWRkcmVzcy0+Y2hpbGQoMCk7
CisKKyAgICAgICAgaWYgKFZhbHVlKiByZXBsYWNlbWVudCA9IG1fZGF0YS5tX2NhbmRpZGF0ZUFk
ZHJlc3Nlc0F0VGFpbC5nZXQocHRyKSkgeworICAgICAgICAgICAgd2FzbUFkZHJlc3MtPnJlcGxh
Y2VXaXRoSWRlbnRpdHkocmVwbGFjZW1lbnQpOworICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1
ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gYWRkUHRy
T25TY29wZUV4aXQgPSBtYWtlU2NvcGVFeGl0KFsmXSB7CisgICAgICAgICAgICBtX2RhdGEubV9j
YW5kaWRhdGVBZGRyZXNzZXNBdFRhaWwuYWRkKHB0ciwgd2FzbUFkZHJlc3MpOworICAgICAgICB9
KTsKKworICAgICAgICBpZiAobV9kYXRhLndyaXRlc1Bpbm5lZCkgeworICAgICAgICAgICAgLy8g
U29tZW9uZSBiZWZvcmUgdXMgaW4gdGhpcyBibG9jayB3cm90ZSB0byBwaW5uZWQuIFNvIHdlIGhh
dmUgbm8KKyAgICAgICAgICAgIC8vIGhvcGUgb2YgZmluZGluZyBhIG1hdGNoIGlmIHRoZSBhYm92
ZSBzZWFyY2ggZmFpbGVkLgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgVmFsdWUqIGNhbmRpZGF0ZVJlcGxhY2VtZW50ID0gbnVsbHB0cjsKKyAgICAgICAgQmFzaWNC
bG9jayogZG9taW5hdG9yID0gbnVsbHB0cjsKKyAgICAgICAgbV9kb21pbmF0b3JzLmZvckFsbFN0
cmljdERvbWluYXRvcnNPZihtX2Jsb2NrLCBbJl0gKEJhc2ljQmxvY2sqIGJsb2NrKSB7CisgICAg
ICAgICAgICBpZiAoY2FuZGlkYXRlUmVwbGFjZW1lbnQpCisgICAgICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgICAgICBpZiAoVmFsdWUqIHJlcGxhY2VtZW50ID0gbV9pbXB1cmVCbG9ja0Rh
dGFbYmxvY2tdLm1fY2FuZGlkYXRlQWRkcmVzc2VzQXRUYWlsLmdldChwdHIpKSB7CisgICAgICAg
ICAgICAgICAgY2FuZGlkYXRlUmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAg
ICAgICBkb21pbmF0b3IgPSBibG9jazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAg
ICAgICAgaWYgKCFjYW5kaWRhdGVSZXBsYWNlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBCbG9ja1dvcmtsaXN0IHdvcmtsaXN0OworICAgICAgICB3b3JrbGlzdC5wdXNoQWxs
KG1fYmxvY2stPnByZWRlY2Vzc29ycygpKTsKKyAgICAgICAgd2hpbGUgKEJhc2ljQmxvY2sqIGJs
b2NrID0gd29ya2xpc3QucG9wKCkpIHsKKyAgICAgICAgICAgIGlmIChibG9jayA9PSBkb21pbmF0
b3IpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAobV9pbXB1cmVCbG9j
a0RhdGFbYmxvY2tdLndyaXRlc1Bpbm5lZCkgeworICAgICAgICAgICAgICAgIGNhbmRpZGF0ZVJl
cGxhY2VtZW50ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHdvcmtsaXN0LnB1c2hBbGwoYmxvY2stPnByZWRlY2Vzc29ycygpKTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChjYW5kaWRhdGVSZXBsYWNlbWVudCkgeworICAgICAg
ICAgICAgd2FzbUFkZHJlc3MtPnJlcGxhY2VXaXRoSWRlbnRpdHkoY2FuZGlkYXRlUmVwbGFjZW1l
bnQpOworICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIFByb2NlZHVyZSYgbV9wcm9jOwogCiAgICAgRG9taW5hdG9ycyYgbV9kb21pbmF0b3JzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447401</attachid>
            <date>2021-12-16 17:12:14 -0800</date>
            <delta_ts>2021-12-17 13:07:06 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>5442</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg3MTY0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDIxLTEyLTE2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFN1cHBvcnQgV2FzbUFkZHJlc3MgaW4gQjMgQ1NFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwNTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2
NTUyOTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEZpbGlwIFBpemxvIGFuZCBZdXN1a2UgU3V6
dWtpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGluIEIzJ3MgQ1NFIHBoYXNl
IHRvIGhhbmRsZSBXYXNtQWRkcmVzc1ZhbHVlIGNvbXB1dGF0aW9ucy4KKyAgICAgICAgVGhlIHJl
YXNvbiB0aGlzIGNhbid0IHBhcnRha2UgaW4gcHVyZSBDU0UgaXMgdGhhdCBXYXNtQWRkcmVzc1Zh
bHVlIHJlYWRzIHBpbm5lZC4KKyAgICAgICAgVG8gc3VwcG9ydCB0aGlzLCB3ZSBrZWVwIHRyYWNr
IG9mIHdoaWNoIGJsb2NrcyB3cml0ZSBwaW5uZWQuIElmIHdlJ3JlIHRyeWluZyB0bworICAgICAg
ICByZXBsYWNlIGEgdmFsdWUgVjIgd2l0aCBWMSBiZWNhdXNlIGl0IGFwcGVhcnMgdGhlcmUgaXMg
YSByZWR1bmRhbmN5LCB3ZSBjaGVjayBpZgorICAgICAgICBhbnkgcGF0aHMgZnJvbSBWMSB0byBW
MiB3cml0ZSBwaW5uZWQuIElmIG5vbmUgZG8sIHdlIHByb2NlZWQgd2l0aCB0aGUgcmVwbGFjZW1l
bnQuCisKKyAgICAgICAgKiBiMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcDoK
KwogMjAyMS0xMi0xNiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVc2UgYXJtNjQncyBmbWF4L2ZtaW4gaW5zdHJ1Y3Rpb25zIGluIFdhc20KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNFbGltaW5hdGVDb21tb25T
dWJleHByZXNzaW9ucy5jcHAJKHJldmlzaW9uIDI4NzE2NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL1JhbmdlU2V0Lmg+CisjaW5jbHVkZSA8d3Rm
L1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0xNDQsMTAg
KzE0NSwxNCBAQCBzdHJ1Y3QgSW1wdXJlQmxvY2tEYXRhIHsKIAogICAgIFJhbmdlU2V0PEhlYXBS
YW5nZT4gcmVhZHM7IC8vIFRoaXMgb25seSBnZXRzIHVzZWQgZm9yIGZvcndhcmQgc3RvcmUgZWxp
bWluYXRpb24uCiAgICAgUmFuZ2VTZXQ8SGVhcFJhbmdlPiB3cml0ZXM7IC8vIFRoaXMgZ2V0cyB1
c2VkIGZvciBib3RoIGxvYWQgYW5kIHN0b3JlIGVsaW1pbmF0aW9uLgotICAgIGJvb2wgZmVuY2U7
CisgICAgYm9vbCBmZW5jZSB7IGZhbHNlIH07CisgICAgYm9vbCB3cml0ZXNQaW5uZWQgeyBmYWxz
ZSB9OwogCiAgICAgTWVtb3J5VmFsdWVNYXAgc3RvcmVzQXRIZWFkOwogICAgIE1lbW9yeVZhbHVl
TWFwIG1lbW9yeVZhbHVlc0F0VGFpbDsKKworICAgIC8vIFRoaXMgTWFwcyB4LT55IGluICJ5ID0g
V2FzbUFkZHJlc3MoQHgpIgorICAgIEhhc2hNYXA8VmFsdWUqLCBWYWx1ZSo+IG1fY2FuZGlkYXRl
V2FzbUFkZHJlc3Nlc0F0VGFpbDsKIH07CiAKIGNsYXNzIENTRSB7CkBAIC0xODgsNiArMTkzLDE0
IEBAIHB1YmxpYzoKIAogICAgICAgICAgICAgICAgIGlmIChtZW1vcnkpCiAgICAgICAgICAgICAg
ICAgICAgIGRhdGEubWVtb3J5VmFsdWVzQXRUYWlsLmFkZChtZW1vcnkpOworCisgICAgICAgICAg
ICAgICAgaWYgKFdhc21BZGRyZXNzVmFsdWUqIHdhc21BZGRyZXNzID0gdmFsdWUtPmFzPFdhc21B
ZGRyZXNzVmFsdWU+KCkpCisgICAgICAgICAgICAgICAgICAgIGRhdGEubV9jYW5kaWRhdGVXYXNt
QWRkcmVzc2VzQXRUYWlsLmFkZCh3YXNtQWRkcmVzcy0+Y2hpbGQoMCksIHdhc21BZGRyZXNzKTsK
KworICAgICAgICAgICAgICAgIGlmIChlZmZlY3RzLndyaXRlc1Bpbm5lZCkgeworICAgICAgICAg
ICAgICAgICAgICBkYXRhLndyaXRlc1Bpbm5lZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAg
IGRhdGEubV9jYW5kaWRhdGVXYXNtQWRkcmVzc2VzQXRUYWlsLmNsZWFyKCk7CisgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoQjNFbGltaW5hdGVDb21t
b25TdWJleHByZXNzaW9uc0ludGVybmFsOjp2ZXJib3NlKQpAQCAtMjM3LDE1ICsyNTAsMjggQEAg
cHJpdmF0ZToKIAogICAgICAgICBpZiAobV9wdXJlQ1NFLnByb2Nlc3MobV92YWx1ZSwgbV9kb21p
bmF0b3JzKSkgewogICAgICAgICAgICAgQVNTRVJUKCFtX3ZhbHVlLT5lZmZlY3RzKCkud3JpdGVz
KTsKKyAgICAgICAgICAgIEFTU0VSVCghbV92YWx1ZS0+ZWZmZWN0cygpLndyaXRlc1Bpbm5lZCk7
CiAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKKyAgICAgICAgaWYgKFdhc21BZGRyZXNzVmFsdWUqIHdhc21BZGRyZXNzID0gbV92
YWx1ZS0+YXM8V2FzbUFkZHJlc3NWYWx1ZT4oKSkgeworICAgICAgICAgICAgcHJvY2Vzc1dhc21B
ZGRyZXNzVmFsdWUod2FzbUFkZHJlc3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgRWZmZWN0cyBlZmZlY3RzID0gbV92YWx1ZS0+ZWZmZWN0cygpOworCisgICAg
ICAgIGlmIChlZmZlY3RzLndyaXRlc1Bpbm5lZCkgeworICAgICAgICAgICAgbV9kYXRhLndyaXRl
c1Bpbm5lZCA9IHRydWU7CisgICAgICAgICAgICBtX2RhdGEubV9jYW5kaWRhdGVXYXNtQWRkcmVz
c2VzQXRUYWlsLmNsZWFyKCk7CisgICAgICAgIH0KKwogICAgICAgICBNZW1vcnlWYWx1ZSogbWVt
b3J5ID0gbV92YWx1ZS0+YXM8TWVtb3J5VmFsdWU+KCk7CiAgICAgICAgIGlmIChtZW1vcnkgJiYg
cHJvY2Vzc01lbW9yeUJlZm9yZUNsb2JiZXIobWVtb3J5KSkKICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICBpZiAoSGVhcFJhbmdlIHdyaXRlcyA9IG1fdmFsdWUtPmVmZmVjdHMoKS53cml0
ZXMpCisgICAgICAgIGlmIChIZWFwUmFuZ2Ugd3JpdGVzID0gZWZmZWN0cy53cml0ZXMpCiAgICAg
ICAgICAgICBjbG9iYmVyKG1fZGF0YSwgd3JpdGVzKTsKICAgICAgICAgCiAgICAgICAgIGlmICht
ZW1vcnkpCkBAIC02OTQsNiArNzIwLDU5IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtYXRj
aGVzOwogICAgIH0KIAorICAgIHZvaWQgcHJvY2Vzc1dhc21BZGRyZXNzVmFsdWUoV2FzbUFkZHJl
c3NWYWx1ZSogd2FzbUFkZHJlc3MpCisgICAgeworICAgICAgICBWYWx1ZSogcHRyID0gd2FzbUFk
ZHJlc3MtPmNoaWxkKDApOworCisgICAgICAgIGlmIChWYWx1ZSogcmVwbGFjZW1lbnQgPSBtX2Rh
dGEubV9jYW5kaWRhdGVXYXNtQWRkcmVzc2VzQXRUYWlsLmdldChwdHIpKSB7CisgICAgICAgICAg
ICB3YXNtQWRkcmVzcy0+cmVwbGFjZVdpdGhJZGVudGl0eShyZXBsYWNlbWVudCk7CisgICAgICAg
ICAgICBtX2NoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgYXV0byBhZGRQdHJPblNjb3BlRXhpdCA9IG1ha2VTY29wZUV4aXQoWyZdIHsKKyAg
ICAgICAgICAgIG1fZGF0YS5tX2NhbmRpZGF0ZVdhc21BZGRyZXNzZXNBdFRhaWwuYWRkKHB0ciwg
d2FzbUFkZHJlc3MpOworICAgICAgICB9KTsKKworICAgICAgICBpZiAobV9kYXRhLndyaXRlc1Bp
bm5lZCkgeworICAgICAgICAgICAgLy8gU29tZW9uZSBiZWZvcmUgdXMgaW4gdGhpcyBibG9jayB3
cm90ZSB0byBwaW5uZWQuIFNvIHdlIGhhdmUgbm8KKyAgICAgICAgICAgIC8vIGhvcGUgb2YgZmlu
ZGluZyBhIG1hdGNoIGlmIHRoZSBhYm92ZSBzZWFyY2ggZmFpbGVkLgorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgVmFsdWUqIGNhbmRpZGF0ZVJlcGxhY2VtZW50ID0g
bnVsbHB0cjsKKyAgICAgICAgQmFzaWNCbG9jayogZG9taW5hdG9yID0gbnVsbHB0cjsKKyAgICAg
ICAgbV9kb21pbmF0b3JzLmZvckFsbFN0cmljdERvbWluYXRvcnNPZihtX2Jsb2NrLCBbJl0gKEJh
c2ljQmxvY2sqIGJsb2NrKSB7CisgICAgICAgICAgICBpZiAoY2FuZGlkYXRlUmVwbGFjZW1lbnQp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoVmFsdWUqIHJlcGxh
Y2VtZW50ID0gbV9pbXB1cmVCbG9ja0RhdGFbYmxvY2tdLm1fY2FuZGlkYXRlV2FzbUFkZHJlc3Nl
c0F0VGFpbC5nZXQocHRyKSkgeworICAgICAgICAgICAgICAgIGNhbmRpZGF0ZVJlcGxhY2VtZW50
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICAgICAgZG9taW5hdG9yID0gYmxvY2s7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIGlmICghY2FuZGlkYXRlUmVwbGFjZW1l
bnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgQmxvY2tXb3JrbGlzdCB3b3JrbGlz
dDsKKyAgICAgICAgd29ya2xpc3QucHVzaEFsbChtX2Jsb2NrLT5wcmVkZWNlc3NvcnMoKSk7Cisg
ICAgICAgIHdoaWxlIChCYXNpY0Jsb2NrKiBibG9jayA9IHdvcmtsaXN0LnBvcCgpKSB7CisgICAg
ICAgICAgICBpZiAoYmxvY2sgPT0gZG9taW5hdG9yKQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgaWYgKG1faW1wdXJlQmxvY2tEYXRhW2Jsb2NrXS53cml0ZXNQaW5uZWQpIHsK
KyAgICAgICAgICAgICAgICBjYW5kaWRhdGVSZXBsYWNlbWVudCA9IG51bGxwdHI7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3b3JrbGlzdC5wdXNo
QWxsKGJsb2NrLT5wcmVkZWNlc3NvcnMoKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2Fu
ZGlkYXRlUmVwbGFjZW1lbnQpIHsKKyAgICAgICAgICAgIHdhc21BZGRyZXNzLT5yZXBsYWNlV2l0
aElkZW50aXR5KGNhbmRpZGF0ZVJlcGxhY2VtZW50KTsKKyAgICAgICAgICAgIG1fY2hhbmdlZCA9
IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKICAgICBQcm9jZWR1cmUmIG1fcHJvYzsKIAogICAg
IERvbWluYXRvcnMmIG1fZG9taW5hdG9yczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>