<?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>233408</bug_id>
          
          <creation_ts>2021-11-21 06:24:53 -0800</creation_ts>
          <short_desc>FTL&apos;s implementation of HasIndexedProperty for InBounds accesses checks the inverse of what it should be checking when exiting by seeing a hole</short_desc>
          <delta_ts>2021-11-29 17:58:47 -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 Local Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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="Lukas Bernhard">lukas.bernhard</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>lukas.bernhard</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</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>1817188</commentid>
    <comment_count>0</comment_count>
    <who name="Lukas Bernhard">lukas.bernhard</who>
    <bug_when>2021-11-21 06:24:53 -0800</bug_when>
    <thetext>During differential testing of webkit I found a sample triggering a miscomputation in FTL.

JSC on git commit: 249d5fd6931d
build options:
./Tools/Scripts/build-jsc --jsc-only --release --cmakeargs=&quot;-DENABLE_STATIC_JSC=ON -DCMAKE_C_COMPILER=&apos;/usr/bin/clang-12&apos; -DCMAKE_CXX_COMPILER=&apos;/usr/bin/clang++-12&apos; -DCMAKE_CXX_FLAGS=&apos;-O3 -lrt -latomic -fuse-ld=lld&apos;&quot;

Release/bin/jsc --validateOptions=true --useConcurrentJIT=false --useConcurrentGC=false --validateBCE=true --thresholdForJITSoon=1 --thresholdForJITAfterWarmUp=7 --thresholdForOptimizeAfterWarmUp=7 --thresholdForOptimizeAfterLongWarmUp=7 --thresholdForOptimizeSoon=1 --thresholdForFTLOptimizeAfterWarmUp=10 diff.js

diff.js
```
function main() {
    let v17 = {__proto__:[0,0]};
    v17[2] = 4;
        
    let v92 = 0;
    for (let v95 = 0; v95 &lt; 100; v95++) {
        function v103() {
            function v128() {
                v139 = v92++;
            }   
            [0].map(v128);
        }   
        v17.every(v103);
    }   
    print(v139); // 99 w/o FTL, 18 with FLT (also 99 in spidermonkey)
}
main();
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818074</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-28 06:25:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/85787251&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818463</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-11-29 13:57:47 -0800</bug_when>
    <thetext>I have a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818475</commentid>
    <comment_count>3</comment_count>
      <attachid>445343</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-11-29 14:21:59 -0800</bug_when>
    <thetext>Created attachment 445343
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818481</commentid>
    <comment_count>4</comment_count>
      <attachid>445343</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-11-29 14:30:12 -0800</bug_when>
    <thetext>Comment on attachment 445343
patch

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

r=me with fix.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:13398
&gt;                  m_out.notZero64(m_out.load64(baseIndex(m_heaps.ArrayStorage_vector, storage, index, m_graph.varArgChild(m_node, 1))));

Shouldn&apos;t this be `isZero64` instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818490</commentid>
    <comment_count>5</comment_count>
      <attachid>445343</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-11-29 14:47:10 -0800</bug_when>
    <thetext>Comment on attachment 445343
patch

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

&gt;&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:13398
&gt;&gt;                  m_out.notZero64(m_out.load64(baseIndex(m_heaps.ArrayStorage_vector, storage, index, m_graph.varArgChild(m_node, 1))));
&gt; 
&gt; Shouldn&apos;t this be `isZero64` instead?

Yes. Now I need to figure out why my test started passing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818499</commentid>
    <comment_count>6</comment_count>
      <attachid>445353</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-11-29 15:12:06 -0800</bug_when>
    <thetext>Created attachment 445353
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818573</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-29 17:58:45 -0800</bug_when>
    <thetext>Committed r286278 (244639@main): &lt;https://commits.webkit.org/244639@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445353.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445343</attachid>
            <date>2021-11-29 14:21:59 -0800</date>
            <delta_ts>2021-11-29 15:12:06 -0800</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>10934</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODYyNjIpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI2IEBACisyMDIxLTExLTI5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIEZUTCdzIGltcGxlbWVudGF0aW9uIG9mIEhhc0luZGV4ZWRQcm9wZXJ0
eSBmb3IgSW5Cb3VuZHMgYWNjZXNzZXMgY2hlY2tzIHRoZSBpbnZlcnNlIG9mIHdoYXQgaXQgc2hv
dWxkIGJlIGNoZWNraW5nIHdoZW4gZXhpdGluZyBieSBzZWVpbmcgYSBob2xlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM0MDgKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzg1Nzg3MjUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RyZXNzL2luLWJ5LXZhbC1oYXMtaW5kZXhlZC1wcm9wZXJ0eS1m
dGwtMi5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnQpOgorICAgICAgICAobWFpbi4pOgorICAg
ICAgICAobWFpbik6CisgICAgICAgICogc3RyZXNzL2luLWJ5LXZhbC1oYXMtaW5kZXhlZC1wcm9w
ZXJ0eS1mdGwuanM6IEFkZGVkLgorICAgICAgICAoYXNzZXJ0KToKKyAgICAgICAgKHRlc3QxLmZ1
bmMpOgorICAgICAgICAodGVzdDEpOgorICAgICAgICAodGVzdDIuZnVuYyk6CisgICAgICAgICh0
ZXN0Mik6CisgICAgICAgICh0ZXN0My5mdW5jKToKKyAgICAgICAgKHRlc3QzKToKKyAgICAgICAg
KHRlc3Q0LmZ1bmMpOgorICAgICAgICAodGVzdDQpOgorCiAyMDIxLTExLTI5ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gQWRkIEludGwuTnVtYmVy
Rm9ybWF0LmZvcm1hdFJhbmdlVG9QYXJ0cwpJbmRleDogSlNUZXN0cy9zdHJlc3MvaW4tYnktdmFs
LWhhcy1pbmRleGVkLXByb3BlcnR5LWZ0bC0yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3Ry
ZXNzL2luLWJ5LXZhbC1oYXMtaW5kZXhlZC1wcm9wZXJ0eS1mdGwtMi5qcwkobm9uZXhpc3RlbnQp
CisrKyBKU1Rlc3RzL3N0cmVzcy9pbi1ieS12YWwtaGFzLWluZGV4ZWQtcHJvcGVydHktZnRsLTIu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOCBAQAorLy9AIHJ1bkRlZmF1bHQoIi0tdmFs
aWRhdGVPcHRpb25zPXRydWUiLCAiLS11c2VDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdXNlQ29u
Y3VycmVudEdDPWZhbHNlIiwgIi0tdmFsaWRhdGVCQ0U9dHJ1ZSIsICItLXRocmVzaG9sZEZvckpJ
VFNvb249MSIsICItLXRocmVzaG9sZEZvckpJVEFmdGVyV2FybVVwPTciLCAiLS10aHJlc2hvbGRG
b3JPcHRpbWl6ZUFmdGVyV2FybVVwPTciLCAiLS10aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9u
Z1dhcm1VcD03IiwgIi0tdGhyZXNob2xkRm9yT3B0aW1pemVTb29uPTEiLCAiLS10aHJlc2hvbGRG
b3JGVExPcHRpbWl6ZUFmdGVyV2FybVVwPTEwIikKKworZnVuY3Rpb24gYXNzZXJ0KGIpIHsKKyAg
ICBpZiAoIWIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcjsKK30KKworZnVuY3Rpb24gbWFpbigp
IHsKKyAgICBsZXQgdjE3ID0ge19fcHJvdG9fXzpbNDIsMV19OworICAgIHYxN1syXSA9IDQ7Cisg
ICAgICAgIAorICAgIGxldCB2OTIgPSAwOworICAgIGZvciAobGV0IHY5NSA9IDA7IHY5NSA8IDEw
MDsgdjk1KyspIHsKKyAgICAgICAgZnVuY3Rpb24gZG9FdmVyeShlLCBpKSB7CisgICAgICAgICAg
ICBhc3NlcnQoZSA9PT0gNDIpOworICAgICAgICAgICAgYXNzZXJ0KGkgPT09IDApOworICAgICAg
ICAgICAgZnVuY3Rpb24gZG9NYXAoKSB7CisgICAgICAgICAgICAgICAgdjEzOSA9IHY5MisrOwor
ICAgICAgICAgICAgfSAgIAorICAgICAgICAgICAgbm9JbmxpbmUoZG9NYXApOworICAgICAgICAg
ICAgWzBdLm1hcChkb01hcCk7CisgICAgICAgIH0gICAKKyAgICAgICAgbm9JbmxpbmUoZG9FdmVy
eSk7CisgICAgICAgIHYxNy5ldmVyeShkb0V2ZXJ5KTsKKyAgICB9ICAgCisgICAgYXNzZXJ0KHYx
MzkgPT09IDk5KTsKK30KK21haW4oKTsKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL2luLWJ5LXZhbC1o
YXMtaW5kZXhlZC1wcm9wZXJ0eS1mdGwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3Mv
aW4tYnktdmFsLWhhcy1pbmRleGVkLXByb3BlcnR5LWZ0bC5qcwkobm9uZXhpc3RlbnQpCisrKyBK
U1Rlc3RzL3N0cmVzcy9pbi1ieS12YWwtaGFzLWluZGV4ZWQtcHJvcGVydHktZnRsLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsOTQgQEAKK2Z1bmN0aW9uIGFzc2VydChiKSB7CisgICAgaWYg
KCFiKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3I7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkgewor
ICAgIGZ1bmN0aW9uIGZ1bmMoYiwgbykgeworICAgICAgICBpZiAoYikKKyAgICAgICAgICAgIHJl
dHVybiAwIGluIG87CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBub0lubGluZShm
dW5jKTsKKworICAgIGxldCBvID0ge19fcHJvdG9fXzpbMCwgMV19OworICAgIG9bMl0gPSA0Owor
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAgICAgZnVuYyh0cnVlLCBv
KTsKKyAgICAgICAgZnVuYyhmYWxzZSwgbyk7CisgICAgfQorCisgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIGFzc2VydChmdW5jKGZhbHNlLCBvKSk7CisgICAg
fQorICAgIGFzc2VydChmdW5jKHRydWUsIG8pKTsKK30KK3Rlc3QxKCk7CisKK2Z1bmN0aW9uIHRl
c3QyKCkgeworICAgIGZ1bmN0aW9uIGZ1bmMoYiwgbykgeworICAgICAgICBpZiAoYikKKyAgICAg
ICAgICAgIHJldHVybiAwIGluIG87CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBu
b0lubGluZShmdW5jKTsKKworICAgIGxldCBvID0ge19fcHJvdG9fXzpbMCwgMV19OworICAgIG9b
Ml0gPSAxMy4zMzM7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDA7ICsraSkgeworICAgICAg
ICBmdW5jKHRydWUsIG8pOworICAgICAgICBmdW5jKGZhbHNlLCBvKTsKKyAgICB9CisKKyAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgYXNzZXJ0KGZ1bmMoZmFs
c2UsIG8pKTsKKyAgICB9CisgICAgYXNzZXJ0KGZ1bmModHJ1ZSwgbykpOworfQordGVzdDIoKTsK
KworZnVuY3Rpb24gdGVzdDMoKSB7CisgICAgZnVuY3Rpb24gZnVuYyhiLCBvKSB7CisgICAgICAg
IGlmIChiKQorICAgICAgICAgICAgcmV0dXJuIDAgaW4gbzsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIG5vSW5saW5lKGZ1bmMpOworCisgICAgbGV0IG8gPSB7X19wcm90b19fOlsw
LCAxXX07CisgICAgb1syXSA9IHt9OworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyArK2kp
IHsKKyAgICAgICAgZnVuYyh0cnVlLCBvKTsKKyAgICAgICAgZnVuYyhmYWxzZSwgbyk7CisgICAg
fQorCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIGFzc2Vy
dChmdW5jKGZhbHNlLCBvKSk7CisgICAgfQorICAgIGFzc2VydChmdW5jKHRydWUsIG8pKTsKK30K
K3Rlc3QzKCk7CisKK2Z1bmN0aW9uIHRlc3Q0KCkgeworICAgIGZ1bmN0aW9uIGZ1bmMoYiwgbykg
eworICAgICAgICBpZiAoYikKKyAgICAgICAgICAgIHJldHVybiAwIGluIG87CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICBub0lubGluZShmdW5jKTsKKworICAgIGxldCBvID0ge19f
cHJvdG9fXzpbMCwgMV19OworICAgIG9bMl0gPSB7fTsKKyAgICAkdm0uZW5zdXJlQXJyYXlTdG9y
YWdlKG8pOworCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDA7ICsraSkgeworICAgICAgICBm
dW5jKHRydWUsIG8pOworICAgICAgICBmdW5jKGZhbHNlLCBvKTsKKyAgICB9CisKKyAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgYXNzZXJ0KGZ1bmMoZmFsc2Us
IG8pKTsKKyAgICB9CisgICAgYXNzZXJ0KGZ1bmModHJ1ZSwgbykpOworfQordGVzdDQoKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg2MjI2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisy
MDIxLTExLTI5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIEZU
TCdzIGltcGxlbWVudGF0aW9uIG9mIEhhc0luZGV4ZWRQcm9wZXJ0eSBmb3IgSW5Cb3VuZHMgYWNj
ZXNzZXMgY2hlY2tzIHRoZSBpbnZlcnNlIG9mIHdoYXQgaXQgc2hvdWxkIGJlIGNoZWNraW5nIHdo
ZW4gZXhpdGluZyBieSBzZWVpbmcgYSBob2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM0MDgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1Nzg3
MjUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSBpbXBsZW1lbnRhdGlvbiBvZiBhbiBJbkJvdW5kcyBIYXNJbmRleGVkUHJvcGVydHkgaW4gRlRM
LCB3aGVuIHNwZWN1bGF0aW5nLCB3ZQorICAgICAgICB3b3VsZCBleGl0IHdoZW4gd2UgZGlkIG5v
dCBzZWUgYSBob2xlLCBub3Qgd2hlbiB3ZSBkaWQgc2VlIGEgaG9sZS4gVGhpcyBpcworICAgICAg
ICB0aGUgaW52ZXJzZSBvZiB3aGF0IHdlIG5lZWQgdG8gZG8sIHdlIHNob3VsZCBleGl0IHdoZW4g
d2UgZG8gc2VlIGEgaG9sZS4KKworICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0cmlj
dEVxKToKKyAgICAgICAgKiB0b29scy9KU0RvbGxhclZNLmNwcDoKKyAgICAgICAgKEpTQzo6SlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6SlNEb2xsYXJWTTo6ZmluaXNo
Q3JlYXRpb24pOgorCiAyMDIxLTExLTI5ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbUklTQ1Y2NF0gUG9wdWxhdGUgUklTQ1Y2NEFzc2VtYmxlciB3aXRo
IGluc3RydWN0aW9uLWdlbmVyYXRpb24gbWV0aG9kcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjg2MjI2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzMyMSwxNSArMTMzMjEsMTUgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAg
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgbGFzdE5leHQgPSBtX291dC5pbnNlcnRO
ZXdCbG9ja3NCZWZvcmUoc2xvd0Nhc2UpOwogCi0gICAgICAgICAgICBMVmFsdWUgY2hlY2tIb2xl
UmVzdWx0VmFsdWUgPQotICAgICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm82NChtX291dC5sb2Fk
NjQoYmFzZUluZGV4KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1f
bm9kZSwgMSkpKSk7Ci0gICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGVja0hvbGVSZXN1bHQg
PSBtX291dC5hbmNob3IoY2hlY2tIb2xlUmVzdWx0VmFsdWUpOworICAgICAgICAgICAgTFZhbHVl
IGlzSG9sZSA9CisgICAgICAgICAgICAgICAgbV9vdXQuaXNaZXJvNjQobV9vdXQubG9hZDY0KGJh
c2VJbmRleChoZWFwLCBzdG9yYWdlLCBpbmRleCwgbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUs
IDEpKSkpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgY2hlY2tIb2xlUmVzdWx0ID0gbV9v
dXQuYW5jaG9yKG1fb3V0LmxvZ2ljYWxOb3QoaXNIb2xlKSk7CiAgICAgICAgICAgICBpZiAobW9k
ZS5pc0luQm91bmRzU2FuZUNoYWluKCkpCiAgICAgICAgICAgICAgICAgbV9vdXQuanVtcChjb250
aW51YXRpb24pOwogICAgICAgICAgICAgZWxzZSBpZiAoIW1vZGUuaXNJbkJvdW5kcygpKQotICAg
ICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChjaGVja0hvbGVSZXN1bHRWYWx1ZSwgdXN1YWxseShj
b250aW51YXRpb24pLCByYXJlbHkoc2xvd0Nhc2UpKTsKKyAgICAgICAgICAgICAgICBtX291dC5i
cmFuY2goaXNIb2xlLCByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGNvbnRpbnVhdGlvbikpOwog
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNwZWN1bGF0ZUFuZEp1bXAoY29udGlu
dWF0aW9uLCBMb2FkRnJvbUhvbGUsIG5vVmFsdWUoKSwgbnVsbHB0ciwgY2hlY2tIb2xlUmVzdWx0
VmFsdWUpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZUFuZEp1bXAoY29udGludWF0aW9uLCBM
b2FkRnJvbUhvbGUsIG5vVmFsdWUoKSwgbnVsbHB0ciwgaXNIb2xlKTsKIAogICAgICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICBWYWx1
ZUZyb21CbG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKApAQCAtMTMzNTksMTQgKzEzMzU5
LDE0IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICBsYXN0TmV4
dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZShzbG93Q2FzZSk7CiAKICAgICAgICAgICAg
IExWYWx1ZSBkb3VibGVWYWx1ZSA9IG1fb3V0LmxvYWREb3VibGUoYmFzZUluZGV4KGhlYXAsIHN0
b3JhZ2UsIGluZGV4LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSkpKTsKLSAgICAgICAg
ICAgIExWYWx1ZSBjaGVja0hvbGVSZXN1bHRWYWx1ZSA9IG1fb3V0LmRvdWJsZUVxdWFsKGRvdWJs
ZVZhbHVlLCBkb3VibGVWYWx1ZSk7Ci0gICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGVja0hv
bGVSZXN1bHQgPSBtX291dC5hbmNob3IoY2hlY2tIb2xlUmVzdWx0VmFsdWUpOworICAgICAgICAg
ICAgTFZhbHVlIG5vdEhvbGUgPSBtX291dC5kb3VibGVFcXVhbChkb3VibGVWYWx1ZSwgZG91Ymxl
VmFsdWUpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgY2hlY2tIb2xlUmVzdWx0ID0gbV9v
dXQuYW5jaG9yKG5vdEhvbGUpOwogICAgICAgICAgICAgaWYgKG1vZGUuaXNJbkJvdW5kc1NhbmVD
aGFpbigpKQogICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKCFtb2RlLmlzSW5Cb3VuZHMoKSkKLSAgICAgICAgICAgICAgICBtX291
dC5icmFuY2goY2hlY2tIb2xlUmVzdWx0VmFsdWUsIHVzdWFsbHkoY29udGludWF0aW9uKSwgcmFy
ZWx5KHNsb3dDYXNlKSk7CisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG5vdEhvbGUsIHVz
dWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5KHNsb3dDYXNlKSk7CiAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgc3BlY3VsYXRlQW5kSnVtcChjb250aW51YXRpb24sIExvYWRGcm9t
SG9sZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBjaGVja0hvbGVSZXN1bHRWYWx1ZSk7CisgICAgICAg
ICAgICAgICAgc3BlY3VsYXRlQW5kSnVtcChjb250aW51YXRpb24sIExvYWRGcm9tSG9sZSwgbm9W
YWx1ZSgpLCBudWxscHRyLCBtX291dC5sb2dpY2FsTm90KG5vdEhvbGUpKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7CiAg
ICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKApAQCAt
MTMzOTQsMTUgKzEzMzk0LDE1IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0TmV3Qmxv
Y2tzQmVmb3JlKHNsb3dDYXNlKTsKIAotICAgICAgICAgICAgTFZhbHVlIGNoZWNrSG9sZVJlc3Vs
dFZhbHVlID0KKyAgICAgICAgICAgIExWYWx1ZSBpc0hvbGUgPQogICAgICAgICAgICAgICAgIG1f
b3V0Lm5vdFplcm82NChtX291dC5sb2FkNjQoYmFzZUluZGV4KG1faGVhcHMuQXJyYXlTdG9yYWdl
X3ZlY3Rvciwgc3RvcmFnZSwgaW5kZXgsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSkp
KTsKLSAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoZWNrSG9sZVJlc3VsdCA9IG1fb3V0LmFu
Y2hvcihjaGVja0hvbGVSZXN1bHRWYWx1ZSk7CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBj
aGVja0hvbGVSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQubG9naWNhbE5vdChpc0hvbGUpKTsK
ICAgICAgICAgICAgIGlmIChtb2RlLmlzSW5Cb3VuZHNTYW5lQ2hhaW4oKSkKICAgICAgICAgICAg
ICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICBlbHNlIGlmICghbW9k
ZS5pc0luQm91bmRzKCkpCi0gICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGNoZWNrSG9sZVJl
c3VsdFZhbHVlLCB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseShzbG93Q2FzZSkpOworICAg
ICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0hvbGUsIHJhcmVseShzbG93Q2FzZSksIHVzdWFs
bHkoY29udGludWF0aW9uKSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc3Bl
Y3VsYXRlQW5kSnVtcChjb250aW51YXRpb24sIExvYWRGcm9tSG9sZSwgbm9WYWx1ZSgpLCBudWxs
cHRyLCBjaGVja0hvbGVSZXN1bHRWYWx1ZSk7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlQW5k
SnVtcChjb250aW51YXRpb24sIExvYWRGcm9tSG9sZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBpc0hv
bGUpOwogCiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9u
KTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Io
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCShyZXZp
c2lvbiAyODYyMjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMzIsNiArMjEzMiw4IEBAIHN0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW8KIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uUmVzZXRKSVRTaXplU3RhdGlzdGljcyk7CiAjZW5kaWYKIAorc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UpOworCiBjb25z
dCBDbGFzc0luZm8gSlNEb2xsYXJWTTo6c19pbmZvID0geyAiRG9sbGFyVk0iLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTRG9sbGFyVk0pIH07
CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBkb1ByaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBib29sIGFkZExpbmVGZWVkKQpAQCAtMzgyNiw2
ICszODI4LDE4IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblJlc2V0SkkKIH0K
ICNlbmRpZgogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25FbnN1cmVBcnJheVN0
b3JhZ2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKworICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKworICAgIEpTVmFsdWUgYXJnID0gY2FsbEZyYW1lLT5h
cmd1bWVudCgwKTsKKyAgICBpZiAoYXJnLmlzT2JqZWN0KCkpCisgICAgICAgIGFzT2JqZWN0KGFy
ZyktPmVuc3VyZUFycmF5U3RvcmFnZSh2bSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKK30KKwogY29uc3RleHByIHVuc2lnbmVkIGpzRG9sbGFyVk1Qcm9wZXJ0
eUF0dHJpYnV0ZXMgPSBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZTsKIAogdm9pZCBK
U0RvbGxhclZNOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCkBAIC0zOTk2LDYgKzQwMTAsOCBAQCB2
b2lkIEpTRG9sbGFyVk06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBhZGRGdW5jdGlvbih2
bSwgInJlc2V0SklUU2l6ZVN0YXRpc3RpY3MiLCBmdW5jdGlvblJlc2V0SklUU2l6ZVN0YXRpc3Rp
Y3MsIDApOwogI2VuZGlmCiAKKyAgICBhZGRGdW5jdGlvbih2bSwgImVuc3VyZUFycmF5U3RvcmFn
ZSIsIGZ1bmN0aW9uRW5zdXJlQXJyYXlTdG9yYWdlLCAxKTsKKwogICAgIG1fb2JqZWN0RG9pbmdT
aWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzU3RydWN0dXJlLnNldCh2bSwgdGhp
cywgT2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwganNOdWxsKCkpKTsKIH0KIAo=
</data>
<flag name="review"
          id="470497"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445353</attachid>
            <date>2021-11-29 15:12:06 -0800</date>
            <delta_ts>2021-11-29 17:58:46 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>12934</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODYyNjIpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDIxLTExLTI5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIEZUTCdzIGltcGxlbWVudGF0aW9uIG9mIEhhc0luZGV4ZWRQcm9wZXJ0
eSBmb3IgSW5Cb3VuZHMgYWNjZXNzZXMgY2hlY2tzIHRoZSBpbnZlcnNlIG9mIHdoYXQgaXQgc2hv
dWxkIGJlIGNoZWNraW5nIHdoZW4gZXhpdGluZyBieSBzZWVpbmcgYSBob2xlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM0MDgKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzg1Nzg3MjUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgor
CisgICAgICAgICogc3RyZXNzL2luLWJ5LXZhbC1oYXMtaW5kZXhlZC1wcm9wZXJ0eS1mdGwtMy5q
czogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2luLWJ5LXZhbC1oYXMtaW5kZXhlZC1wcm9wZXJ0
eS1mdGwtMi5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2luLWJ5LXZhbC1oYXMtaW5kZXhl
ZC1wcm9wZXJ0eS1mdGwuanM6IEFkZGVkLgorCiAyMDIxLTExLTI5ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gQWRkIEludGwuTnVtYmVyRm9ybWF0
LmZvcm1hdFJhbmdlVG9QYXJ0cwpJbmRleDogSlNUZXN0cy9zdHJlc3MvaW4tYnktdmFsLWhhcy1p
bmRleGVkLXByb3BlcnR5LWZ0bC0yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL2lu
LWJ5LXZhbC1oYXMtaW5kZXhlZC1wcm9wZXJ0eS1mdGwtMi5qcwkobm9uZXhpc3RlbnQpCisrKyBK
U1Rlc3RzL3N0cmVzcy9pbi1ieS12YWwtaGFzLWluZGV4ZWQtcHJvcGVydHktZnRsLTIuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyOCBAQAorLy9AIHJ1bkRlZmF1bHQoIi0tdmFsaWRhdGVP
cHRpb25zPXRydWUiLCAiLS11c2VDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdXNlQ29uY3VycmVu
dEdDPWZhbHNlIiwgIi0tdmFsaWRhdGVCQ0U9dHJ1ZSIsICItLXRocmVzaG9sZEZvckpJVFNvb249
MSIsICItLXRocmVzaG9sZEZvckpJVEFmdGVyV2FybVVwPTciLCAiLS10aHJlc2hvbGRGb3JPcHRp
bWl6ZUFmdGVyV2FybVVwPTciLCAiLS10aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1V
cD03IiwgIi0tdGhyZXNob2xkRm9yT3B0aW1pemVTb29uPTEiLCAiLS10aHJlc2hvbGRGb3JGVExP
cHRpbWl6ZUFmdGVyV2FybVVwPTEwIikKKworZnVuY3Rpb24gYXNzZXJ0KGIpIHsKKyAgICBpZiAo
IWIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcjsKK30KKworZnVuY3Rpb24gbWFpbigpIHsKKyAg
ICBsZXQgdjE3ID0ge19fcHJvdG9fXzpbNDIsMV19OworICAgIHYxN1syXSA9IDQ7CisgICAgICAg
IAorICAgIGxldCB2OTIgPSAwOworICAgIGZvciAobGV0IHY5NSA9IDA7IHY5NSA8IDEwMDsgdjk1
KyspIHsKKyAgICAgICAgZnVuY3Rpb24gZG9FdmVyeShlLCBpKSB7CisgICAgICAgICAgICBhc3Nl
cnQoZSA9PT0gNDIpOworICAgICAgICAgICAgYXNzZXJ0KGkgPT09IDApOworICAgICAgICAgICAg
ZnVuY3Rpb24gZG9NYXAoKSB7CisgICAgICAgICAgICAgICAgdjEzOSA9IHY5MisrOworICAgICAg
ICAgICAgfSAgIAorICAgICAgICAgICAgbm9JbmxpbmUoZG9NYXApOworICAgICAgICAgICAgWzBd
Lm1hcChkb01hcCk7CisgICAgICAgIH0gICAKKyAgICAgICAgbm9JbmxpbmUoZG9FdmVyeSk7Cisg
ICAgICAgIHYxNy5ldmVyeShkb0V2ZXJ5KTsKKyAgICB9ICAgCisgICAgYXNzZXJ0KHYxMzkgPT09
IDk5KTsKK30KK21haW4oKTsKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL2luLWJ5LXZhbC1oYXMtaW5k
ZXhlZC1wcm9wZXJ0eS1mdGwtMy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9pbi1i
eS12YWwtaGFzLWluZGV4ZWQtcHJvcGVydHktZnRsLTMuanMJKG5vbmV4aXN0ZW50KQorKysgSlNU
ZXN0cy9zdHJlc3MvaW4tYnktdmFsLWhhcy1pbmRleGVkLXByb3BlcnR5LWZ0bC0zLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsOTcgQEAKK2Z1bmN0aW9uIGFzc2VydChiKSB7CisgICAgaWYg
KCFiKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3I7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkgewor
ICAgIGZ1bmN0aW9uIGZ1bmMoYiwgbykgeworICAgICAgICBpZiAoYikKKyAgICAgICAgICAgIHJl
dHVybiAyIGluIG87CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgbm9JbmxpbmUo
ZnVuYyk7CisKKyAgICBsZXQgbyA9IHtfX3Byb3RvX186WzAsIDFdfTsKKyAgICBvWzNdID0gNDI7
CisKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CisgICAgICAgIGZ1bmModHJ1
ZSwgbyk7CisgICAgICAgIGZ1bmMoZmFsc2UsIG8pOworICAgIH0KKworICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICBhc3NlcnQoIWZ1bmMoZmFsc2UsIG8pKTsK
KyAgICB9CisgICAgYXNzZXJ0KCFmdW5jKHRydWUsIG8pKTsKK30KK3Rlc3QxKCk7CisKK2Z1bmN0
aW9uIHRlc3QyKCkgeworICAgIGZ1bmN0aW9uIGZ1bmMoYiwgbykgeworICAgICAgICBpZiAoYikK
KyAgICAgICAgICAgIHJldHVybiAyIGluIG87CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgbm9JbmxpbmUoZnVuYyk7CisKKyAgICBsZXQgbyA9IHtfX3Byb3RvX186WzAsIDFdfTsK
KyAgICBvWzNdID0ge307CisKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgKytpKSB7Cisg
ICAgICAgIGZ1bmModHJ1ZSwgbyk7CisgICAgICAgIGZ1bmMoZmFsc2UsIG8pOworICAgIH0KKwor
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICBhc3NlcnQoIWZ1
bmMoZmFsc2UsIG8pKTsKKyAgICB9CisgICAgYXNzZXJ0KCFmdW5jKHRydWUsIG8pKTsKK30KK3Rl
c3QyKCk7CisKK2Z1bmN0aW9uIHRlc3QzKCkgeworICAgIGZ1bmN0aW9uIGZ1bmMoYiwgbykgewor
ICAgICAgICBpZiAoYikKKyAgICAgICAgICAgIHJldHVybiAyIGluIG87CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgbm9JbmxpbmUoZnVuYyk7CisKKyAgICBsZXQgbyA9IHtfX3By
b3RvX186WzAsIDFdfTsKKyAgICBvWzNdID0gNDIuMjsKKworICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgMTAwOyArK2kpIHsKKyAgICAgICAgZnVuYyh0cnVlLCBvKTsKKyAgICAgICAgZnVuYyhmYWxz
ZSwgbyk7CisgICAgfQorCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7Cisg
ICAgICAgIGFzc2VydCghZnVuYyhmYWxzZSwgbykpOworICAgIH0KKyAgICBhc3NlcnQoIWZ1bmMo
dHJ1ZSwgbykpOworfQordGVzdDMoKTsKKworZnVuY3Rpb24gdGVzdDQoKSB7CisgICAgZnVuY3Rp
b24gZnVuYyhiLCBvKSB7CisgICAgICAgIGlmIChiKQorICAgICAgICAgICAgcmV0dXJuIDIgaW4g
bzsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBub0lubGluZShmdW5jKTsKKwor
ICAgIGxldCBvID0ge19fcHJvdG9fXzpbMCwgMV19OworICAgIG9bM10gPSB7fTsKKyAgICAkdm0u
ZW5zdXJlQXJyYXlTdG9yYWdlKG8pOworCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDA7ICsr
aSkgeworICAgICAgICBmdW5jKHRydWUsIG8pOworICAgICAgICBmdW5jKGZhbHNlLCBvKTsKKyAg
ICB9CisKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgYXNz
ZXJ0KCFmdW5jKGZhbHNlLCBvKSk7CisgICAgfQorICAgIGFzc2VydCghZnVuYyh0cnVlLCBvKSk7
Cit9Cit0ZXN0NCgpOwpJbmRleDogSlNUZXN0cy9zdHJlc3MvaW4tYnktdmFsLWhhcy1pbmRleGVk
LXByb3BlcnR5LWZ0bC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9pbi1ieS12YWwt
aGFzLWluZGV4ZWQtcHJvcGVydHktZnRsLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3Ry
ZXNzL2luLWJ5LXZhbC1oYXMtaW5kZXhlZC1wcm9wZXJ0eS1mdGwuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw5NCBAQAorZnVuY3Rpb24gYXNzZXJ0KGIpIHsKKyAgICBpZiAoIWIpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcjsKK30KKworZnVuY3Rpb24gdGVzdDEoKSB7CisgICAgZnVuY3Rp
b24gZnVuYyhiLCBvKSB7CisgICAgICAgIGlmIChiKQorICAgICAgICAgICAgcmV0dXJuIDAgaW4g
bzsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG5vSW5saW5lKGZ1bmMpOworCisg
ICAgbGV0IG8gPSB7X19wcm90b19fOlswLCAxXX07CisgICAgb1syXSA9IDQ7CisgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCAxMDA7ICsraSkgeworICAgICAgICBmdW5jKHRydWUsIG8pOworICAgICAg
ICBmdW5jKGZhbHNlLCBvKTsKKyAgICB9CisKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAw
OyArK2kpIHsKKyAgICAgICAgYXNzZXJ0KGZ1bmMoZmFsc2UsIG8pKTsKKyAgICB9CisgICAgYXNz
ZXJ0KGZ1bmModHJ1ZSwgbykpOworfQordGVzdDEoKTsKKworZnVuY3Rpb24gdGVzdDIoKSB7Cisg
ICAgZnVuY3Rpb24gZnVuYyhiLCBvKSB7CisgICAgICAgIGlmIChiKQorICAgICAgICAgICAgcmV0
dXJuIDAgaW4gbzsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG5vSW5saW5lKGZ1
bmMpOworCisgICAgbGV0IG8gPSB7X19wcm90b19fOlswLCAxXX07CisgICAgb1syXSA9IDEzLjMz
MzsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CisgICAgICAgIGZ1bmModHJ1
ZSwgbyk7CisgICAgICAgIGZ1bmMoZmFsc2UsIG8pOworICAgIH0KKworICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICBhc3NlcnQoZnVuYyhmYWxzZSwgbykpOwor
ICAgIH0KKyAgICBhc3NlcnQoZnVuYyh0cnVlLCBvKSk7Cit9Cit0ZXN0MigpOworCitmdW5jdGlv
biB0ZXN0MygpIHsKKyAgICBmdW5jdGlvbiBmdW5jKGIsIG8pIHsKKyAgICAgICAgaWYgKGIpCisg
ICAgICAgICAgICByZXR1cm4gMCBpbiBvOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cisg
ICAgbm9JbmxpbmUoZnVuYyk7CisKKyAgICBsZXQgbyA9IHtfX3Byb3RvX186WzAsIDFdfTsKKyAg
ICBvWzJdID0ge307CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDA7ICsraSkgeworICAgICAg
ICBmdW5jKHRydWUsIG8pOworICAgICAgICBmdW5jKGZhbHNlLCBvKTsKKyAgICB9CisKKyAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgYXNzZXJ0KGZ1bmMoZmFs
c2UsIG8pKTsKKyAgICB9CisgICAgYXNzZXJ0KGZ1bmModHJ1ZSwgbykpOworfQordGVzdDMoKTsK
KworZnVuY3Rpb24gdGVzdDQoKSB7CisgICAgZnVuY3Rpb24gZnVuYyhiLCBvKSB7CisgICAgICAg
IGlmIChiKQorICAgICAgICAgICAgcmV0dXJuIDAgaW4gbzsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIG5vSW5saW5lKGZ1bmMpOworCisgICAgbGV0IG8gPSB7X19wcm90b19fOlsw
LCAxXX07CisgICAgb1syXSA9IHt9OworICAgICR2bS5lbnN1cmVBcnJheVN0b3JhZ2Uobyk7CisK
KyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CisgICAgICAgIGZ1bmModHJ1ZSwg
byk7CisgICAgICAgIGZ1bmMoZmFsc2UsIG8pOworICAgIH0KKworICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICBhc3NlcnQoZnVuYyhmYWxzZSwgbykpOworICAg
IH0KKyAgICBhc3NlcnQoZnVuYyh0cnVlLCBvKSk7Cit9Cit0ZXN0NCgpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODYyMjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTEtMjkg
IFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgRlRMJ3MgaW1wbGVt
ZW50YXRpb24gb2YgSGFzSW5kZXhlZFByb3BlcnR5IGZvciBJbkJvdW5kcyBhY2Nlc3NlcyBjaGVj
a3MgdGhlIGludmVyc2Ugb2Ygd2hhdCBpdCBzaG91bGQgYmUgY2hlY2tpbmcgd2hlbiBleGl0aW5n
IGJ5IHNlZWluZyBhIGhvbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzQwOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU3ODcyNTE+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9u
IG9mIGFuIEluQm91bmRzIEhhc0luZGV4ZWRQcm9wZXJ0eSBpbiBGVEwsIHdoZW4gc3BlY3VsYXRp
bmcsIHdlCisgICAgICAgIHdvdWxkIGV4aXQgd2hlbiB3ZSBkaWQgbm90IHNlZSBhIGhvbGUsIG5v
dCB3aGVuIHdlIGRpZCBzZWUgYSBob2xlLiBUaGlzIGlzCisgICAgICAgIHRoZSBpbnZlcnNlIG9m
IHdoYXQgd2UgbmVlZCB0byBkbywgd2Ugc2hvdWxkIGV4aXQgd2hlbiB3ZSBkbyBzZWUgYSBob2xl
LgorCisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAgICAgICAq
IHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAoSlNDOjpKU0RvbGxhclZNOjpmaW5pc2hDcmVhdGlvbik6CisKIDIw
MjEtMTEtMjkgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtSSVNDVjY0XSBQb3B1bGF0ZSBSSVNDVjY0QXNzZW1ibGVyIHdpdGggaW5zdHJ1Y3Rpb24tZ2Vu
ZXJhdGlvbiBtZXRob2RzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyODYyMjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMzIxLDE1ICsx
MzMyMSwxNSBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgICAgICBsYXN0TmV4dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZShz
bG93Q2FzZSk7CiAKLSAgICAgICAgICAgIExWYWx1ZSBjaGVja0hvbGVSZXN1bHRWYWx1ZSA9Ci0g
ICAgICAgICAgICAgICAgbV9vdXQubm90WmVybzY0KG1fb3V0LmxvYWQ2NChiYXNlSW5kZXgoaGVh
cCwgc3RvcmFnZSwgaW5kZXgsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSkpKTsKLSAg
ICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoZWNrSG9sZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihj
aGVja0hvbGVSZXN1bHRWYWx1ZSk7CisgICAgICAgICAgICBMVmFsdWUgaXNIb2xlID0KKyAgICAg
ICAgICAgICAgICBtX291dC5pc1plcm82NChtX291dC5sb2FkNjQoYmFzZUluZGV4KGhlYXAsIHN0
b3JhZ2UsIGluZGV4LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSkpKSk7CisgICAgICAg
ICAgICBWYWx1ZUZyb21CbG9jayBjaGVja0hvbGVSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQu
bG9naWNhbE5vdChpc0hvbGUpKTsKICAgICAgICAgICAgIGlmIChtb2RlLmlzSW5Cb3VuZHNTYW5l
Q2hhaW4oKSkKICAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAgICAg
ICAgICAgICBlbHNlIGlmICghbW9kZS5pc0luQm91bmRzKCkpCi0gICAgICAgICAgICAgICAgbV9v
dXQuYnJhbmNoKGNoZWNrSG9sZVJlc3VsdFZhbHVlLCB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJh
cmVseShzbG93Q2FzZSkpOworICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0hvbGUsIHJh
cmVseShzbG93Q2FzZSksIHVzdWFsbHkoY29udGludWF0aW9uKSk7CiAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgc3BlY3VsYXRlQW5kSnVtcChjb250aW51YXRpb24sIExvYWRGcm9t
SG9sZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBjaGVja0hvbGVSZXN1bHRWYWx1ZSk7CisgICAgICAg
ICAgICAgICAgc3BlY3VsYXRlQW5kSnVtcChjb250aW51YXRpb24sIExvYWRGcm9tSG9sZSwgbm9W
YWx1ZSgpLCBudWxscHRyLCBpc0hvbGUpOwogCiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhz
bG93Q2FzZSwgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dS
ZXN1bHQgPSBtX291dC5hbmNob3IoCkBAIC0xMzM1OSwxNCArMTMzNTksMTQgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0
TmV3QmxvY2tzQmVmb3JlKHNsb3dDYXNlKTsKIAogICAgICAgICAgICAgTFZhbHVlIGRvdWJsZVZh
bHVlID0gbV9vdXQubG9hZERvdWJsZShiYXNlSW5kZXgoaGVhcCwgc3RvcmFnZSwgaW5kZXgsIG1f
Z3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSkpOwotICAgICAgICAgICAgTFZhbHVlIGNoZWNr
SG9sZVJlc3VsdFZhbHVlID0gbV9vdXQuZG91YmxlRXF1YWwoZG91YmxlVmFsdWUsIGRvdWJsZVZh
bHVlKTsKLSAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoZWNrSG9sZVJlc3VsdCA9IG1fb3V0
LmFuY2hvcihjaGVja0hvbGVSZXN1bHRWYWx1ZSk7CisgICAgICAgICAgICBMVmFsdWUgbm90SG9s
ZSA9IG1fb3V0LmRvdWJsZUVxdWFsKGRvdWJsZVZhbHVlLCBkb3VibGVWYWx1ZSk7CisgICAgICAg
ICAgICBWYWx1ZUZyb21CbG9jayBjaGVja0hvbGVSZXN1bHQgPSBtX291dC5hbmNob3Iobm90SG9s
ZSk7CiAgICAgICAgICAgICBpZiAobW9kZS5pc0luQm91bmRzU2FuZUNoYWluKCkpCiAgICAgICAg
ICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwogICAgICAgICAgICAgZWxzZSBpZiAo
IW1vZGUuaXNJbkJvdW5kcygpKQotICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChjaGVja0hv
bGVSZXN1bHRWYWx1ZSwgdXN1YWxseShjb250aW51YXRpb24pLCByYXJlbHkoc2xvd0Nhc2UpKTsK
KyAgICAgICAgICAgICAgICBtX291dC5icmFuY2gobm90SG9sZSwgdXN1YWxseShjb250aW51YXRp
b24pLCByYXJlbHkoc2xvd0Nhc2UpKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBzcGVjdWxhdGVBbmRKdW1wKGNvbnRpbnVhdGlvbiwgTG9hZEZyb21Ib2xlLCBub1ZhbHVlKCks
IG51bGxwdHIsIGNoZWNrSG9sZVJlc3VsdFZhbHVlKTsKKyAgICAgICAgICAgICAgICBzcGVjdWxh
dGVBbmRKdW1wKGNvbnRpbnVhdGlvbiwgTG9hZEZyb21Ib2xlLCBub1ZhbHVlKCksIG51bGxwdHIs
IG1fb3V0LmxvZ2ljYWxOb3Qobm90SG9sZSkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBt
X291dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIFZhbHVl
RnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3IoCkBAIC0xMzM5NCwxNSArMTMzOTQs
MTUgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICAgICAgbGFzdE5leHQgPSBtX291dC5pbnNlcnROZXdCbG9ja3NCZWZvcmUoc2xvd0Nh
c2UpOwogCi0gICAgICAgICAgICBMVmFsdWUgY2hlY2tIb2xlUmVzdWx0VmFsdWUgPQotICAgICAg
ICAgICAgICAgIG1fb3V0Lm5vdFplcm82NChtX291dC5sb2FkNjQoYmFzZUluZGV4KG1faGVhcHMu
QXJyYXlTdG9yYWdlX3ZlY3Rvciwgc3RvcmFnZSwgaW5kZXgsIG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bV9ub2RlLCAxKSkpKTsKLSAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoZWNrSG9sZVJlc3Vs
dCA9IG1fb3V0LmFuY2hvcihjaGVja0hvbGVSZXN1bHRWYWx1ZSk7CisgICAgICAgICAgICBMVmFs
dWUgaXNIb2xlID0KKyAgICAgICAgICAgICAgICBtX291dC5pc1plcm82NChtX291dC5sb2FkNjQo
YmFzZUluZGV4KG1faGVhcHMuQXJyYXlTdG9yYWdlX3ZlY3Rvciwgc3RvcmFnZSwgaW5kZXgsIG1f
Z3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSkpKTsKKyAgICAgICAgICAgIFZhbHVlRnJvbUJs
b2NrIGNoZWNrSG9sZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5sb2dpY2FsTm90KGlzSG9s
ZSkpOwogICAgICAgICAgICAgaWYgKG1vZGUuaXNJbkJvdW5kc1NhbmVDaGFpbigpKQogICAgICAg
ICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAgICAgICAgIGVsc2UgaWYg
KCFtb2RlLmlzSW5Cb3VuZHMoKSkKLSAgICAgICAgICAgICAgICBtX291dC5icmFuY2goY2hlY2tI
b2xlUmVzdWx0VmFsdWUsIHVzdWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5KHNsb3dDYXNlKSk7
CisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzSG9sZSwgcmFyZWx5KHNsb3dDYXNlKSwg
dXN1YWxseShjb250aW51YXRpb24pKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBzcGVjdWxhdGVBbmRKdW1wKGNvbnRpbnVhdGlvbiwgTG9hZEZyb21Ib2xlLCBub1ZhbHVlKCks
IG51bGxwdHIsIGNoZWNrSG9sZVJlc3VsdFZhbHVlKTsKKyAgICAgICAgICAgICAgICBzcGVjdWxh
dGVBbmRKdW1wKGNvbnRpbnVhdGlvbiwgTG9hZEZyb21Ib2xlLCBub1ZhbHVlKCksIG51bGxwdHIs
IGlzSG9sZSk7CiAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dDYXNlLCBjb250aW51
YXRpb24pOwogICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFu
Y2hvcigKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAJ
KHJldmlzaW9uIDI4NjIyNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxh
clZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEzMiw2ICsyMTMyLDggQEAgc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpbwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25SZXNldEpJVFNpemVTdGF0aXN0aWNzKTsKICNlbmRpZgogCitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVuc3VyZUFycmF5U3RvcmFnZSk7CisK
IGNvbnN0IENsYXNzSW5mbyBKU0RvbGxhclZNOjpzX2luZm8gPSB7ICJEb2xsYXJWTSIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNEb2xsYXJW
TSkgfTsKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIGRvUHJpbnQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGJvb2wgYWRkTGluZUZlZWQpCkBAIC0z
ODI2LDYgKzM4MjgsMTggQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVzZXRK
SQogfQogI2VuZGlmCiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVuc3VyZUFy
cmF5U3RvcmFnZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK3sKKyAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOworCisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworCisgICAgSlNWYWx1ZSBhcmcgPSBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApOworICAgIGlmIChhcmcuaXNPYmplY3QoKSkKKyAgICAgICAgYXNPYmpl
Y3QoYXJnKS0+ZW5zdXJlQXJyYXlTdG9yYWdlKHZtKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOworfQorCiBjb25zdGV4cHIgdW5zaWduZWQganNEb2xsYXJWTVBy
b3BlcnR5QXR0cmlidXRlcyA9IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlOwogCiB2
b2lkIEpTRG9sbGFyVk06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKQEAgLTM5OTYsNiArNDAxMCw4
IEBAIHZvaWQgSlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIGFkZEZ1bmN0
aW9uKHZtLCAicmVzZXRKSVRTaXplU3RhdGlzdGljcyIsIGZ1bmN0aW9uUmVzZXRKSVRTaXplU3Rh
dGlzdGljcywgMCk7CiAjZW5kaWYKIAorICAgIGFkZEZ1bmN0aW9uKHZtLCAiZW5zdXJlQXJyYXlT
dG9yYWdlIiwgZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UsIDEpOworCiAgICAgbV9vYmplY3RE
b2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXNTdHJ1Y3R1cmUuc2V0KHZt
LCB0aGlzLCBPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXM6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBqc051bGwoKSkpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>