<?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>200792</bug_id>
          
          <creation_ts>2019-08-15 15:25:03 -0700</creation_ts>
          <short_desc>CodeBlock destructor should clear all of its watchpoints.</short_desc>
          <delta_ts>2019-08-16 15:50:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>justin_michaud</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</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>1561795</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-08-15 15:25:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/53947800&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561796</commentid>
    <comment_count>1</comment_count>
      <attachid>376434</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-08-15 15:31:09 -0700</bug_when>
    <thetext>Created attachment 376434
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561969</commentid>
    <comment_count>2</comment_count>
      <attachid>376482</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-08-16 00:58:42 -0700</bug_when>
    <thetext>Created attachment 376482
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561981</commentid>
    <comment_count>3</comment_count>
      <attachid>376482</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-08-16 01:34:08 -0700</bug_when>
    <thetext>Comment on attachment 376482
proposed patch.

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

r=me with comments.
And can you ensure that all the watchpoints having CodeBlock as an owner are cleared by DFG::Common::clearWatchpoints?
LLIntPrototypeLoadAdaptiveStructureWatchpoint is not included, but it is OK since it is held by CodeBlock directly.

&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:814
&gt; +#if ENABLE(DFG_JIT)

Can you add a comment describing this pathological thing here?

&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:815
&gt; +    if (JITCode::isOptimizingJIT(jitType()))

Is baseline JIT OK?

&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:816
&gt; +        jitCode()-&gt;dfgCommon()-&gt;clearWatchpoints();

The watchpoints are typically registered to jettison CodeBlock when the critical invariant is broken.
After CodeBlock is destroyed, I think that JITCode code itself is completely invalid.
Is it possible that the JITCode is executed while CodeBlock is destroyed. If it happens, why is it safe? If it does not happen, can we add assertion to ensure it in JITCode or some places?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562249</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-08-16 15:38:48 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to Yusuke Suzuki from comment #3)
&gt; Comment on attachment 376482 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=376482&amp;action=review
&gt; 
&gt; r=me with comments.
&gt; And can you ensure that all the watchpoints having CodeBlock as an owner are
&gt; cleared by DFG::Common::clearWatchpoints?
&gt; LLIntPrototypeLoadAdaptiveStructureWatchpoint is not included, but it is OK
&gt; since it is held by CodeBlock directly.

I&apos;ve audited all the Watchpoint types and verified that any watchpoints associated with a CodeBlock is handled by this patch.  I&apos;ll documented the audit details in the ChangeLog.


&gt; &gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:814
&gt; &gt; +#if ENABLE(DFG_JIT)
&gt; 
&gt; Can you add a comment describing this pathological thing here?

Added.
 
&gt; &gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:815
&gt; &gt; +    if (JITCode::isOptimizingJIT(jitType()))
&gt; 
&gt; Is baseline JIT OK?

Yes.  baseline JIT ha a null dfgCommon(), and hence, cannot have any of the watchpoints in there.

&gt; &gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:816
&gt; &gt; +        jitCode()-&gt;dfgCommon()-&gt;clearWatchpoints();
&gt; 
&gt; The watchpoints are typically registered to jettison CodeBlock when the
&gt; critical invariant is broken.
&gt; After CodeBlock is destroyed, I think that JITCode code itself is completely
&gt; invalid.
&gt; Is it possible that the JITCode is executed while CodeBlock is destroyed. If
&gt; it happens, why is it safe? If it does not happen, can we add assertion to
&gt; ensure it in JITCode or some places?

I don&apos;t think we execute any code in the JITCode after the CodeBlock is destroyed.  We don&apos;t have control flow that will lead to us stepping on the dead code.  However, we do need to clear the watchpoints because we do have control flow that can lead to us stepping on the dead watchpoints if we don&apos;t eagerly clear them out.

To ensure that the dead JITCode is not executed after the CodeBlock is destroyed, we can do 1 of the following:
1. on debug builds, fill the JITCode with breakpoint traps on CodeBlock destruction if JITCode&apos;s refCount is greater than 1.  This ensure that we&apos;ll crash if someone tries to execute any instructions in there.  Or, ...
2. re-architect the system to ensure that CodeBlock is the sole owner of JITCode, and can cleanly delete it on destruction.

I think option 2 is the more efficient solution, but this is out of scope for this patch.  I can look into this later on.

I&apos;ll land this patch with the added comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562257</commentid>
    <comment_count>5</comment_count>
      <attachid>376550</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-08-16 15:46:51 -0700</bug_when>
    <thetext>Created attachment 376550
patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562259</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-08-16 15:50:27 -0700</bug_when>
    <thetext>Landed in r248800: &lt;http://trac.webkit.org/r248800&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376434</attachid>
            <date>2019-08-15 15:31:09 -0700</date>
            <delta_ts>2019-08-15 16:08:54 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-200792.patch</filename>
            <type>text/plain</type>
            <size>4385</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDg3NTApCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTA4LTE1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBDb2RlQmxvY2sgZGVzdHJ1Y3RvciBzaG91bGQgY2xlYXIgYWxsIG9mIGl0
cyB3YXRjaHBvaW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMDc5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTM5NDc4MDA+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvY29kZWJs
b2NrLXNob3VsZC1jbGVhci13YXRjaHBvaW50cy1vbi1kZXN0cnVjdGlvbi5qczogQWRkZWQuCisK
IDIwMTktMDgtMTUgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAg
ICAgICAgIERhdGVDb252ZXJzaW9uOjpmb3JtYXREYXRlVGltZSBpbmNvcnJlY3RseSBmb3JtYXRz
IG5lZ2F0aXZlIHllYXJzCkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9jb2RlYmxvY2stc2hvdWxkLWNs
ZWFyLXdhdGNocG9pbnRzLW9uLWRlc3RydWN0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMv
c3RyZXNzL2NvZGVibG9jay1zaG91bGQtY2xlYXItd2F0Y2hwb2ludHMtb24tZGVzdHJ1Y3Rpb24u
anMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9zdHJlc3MvY29kZWJsb2NrLXNob3VsZC1jbGVh
ci13YXRjaHBvaW50cy1vbi1kZXN0cnVjdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQ3IEBACisvLyBUaGlzIHRlc3Qgc2hvdWxkIG5vdCBjcmFzaC4KKworbGV0IHNvdXJjZTsKK2Zv
ciAoX192MSBvZiAnZ3UnKSB7CisgICAgbGV0IF9fdjMgPSBuZXcgUmVnRXhwKHNvdXJjZSwgX192
MSk7CisgICAgbGV0IF9fdjAgPSAnT3ZlciBtYW55IGEgcXVhaW50IGFuZCBjdXJpb3VzIHZvbHVt
ZSBvZiBmb3Jnb3R0ZW4gbG9yZSwnLnJlcGxhY2UoX192MywgKC4uLl9fdjApID0+IHsKKyAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgICAgICAgICAgZm9yIChsZXQgX192MCA9IDI3OyBfX3YwIDwgMTAwMDsgKytfX3YwKSB7
fQorICAgICAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBfX3Y0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAg
ICAgICAgICAgICAgZ2MoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoX192Mykg
eworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAg
ICAgICAgICAgICh7fSkuX19wcm90b19fW19fdjBdID0gX192MzsKKyAgICAgICAgICAgICAgICAg
ICAgZm9yIChfX3YxIG9mICdndScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfX3Yz
ID0gbmV3IFJlZ0V4cChzb3VyY2UsIF9fdjEpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IF9fdjAgPSAnT3ZlciBtYW55IGEgcXVhaW50IGFuZCBjdXJpb3VzIHZvbHVtZSBvZiBmb3Jnb3R0
ZW4gbG9yZSwnLnJlcGxhY2UoX192MywgKC4uLl9fdjApID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkgeygoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoJ2JsYWhibGFoYmxhaGJsYWgnICsgX192MCkgKyBfX3Yw
KSArIF9fdjApICsgX192MCkgKyBfX3YwIGluc3RhbmNlb2YgX192MCkgKyBfX3YwKSArIF9fdjAg
PT09IF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjAg
IT0gX192MCkgKyBfX3YxKSArIF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkg
KyBfX3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwKSAr
IF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCA9PT0gX192MCkgKyBfX3Y1KSAr
IF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjIgKyBf
X3YwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSBjYXRjaCAoX192MykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbCgndGFn
YEhlbGxvXG4ke3Z9d29ybGRgJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0g
ZmluYWxseSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBldmFsKCd0YWdgSGVsbG9cbiR7dn13b3JsZGAnKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworfQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwko
cmV2aXNpb24gMjQ4NzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA4LTE1ICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KKworICAgICAgICBDb2RlQmxvY2sgZGVzdHJ1Y3RvciBzaG91bGQgY2xl
YXIgYWxsIG9mIGl0cyB3YXRjaHBvaW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMDc5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTM5NDc4
MDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBi
eXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6On5Db2RlQmxv
Y2spOgorCiAyMDE5LTA4LTE1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNv
bT4KIAogICAgICAgICBEYXRlQ29udmVyc2lvbjo6Zm9ybWF0RGF0ZVRpbWUgaW5jb3JyZWN0bHkg
Zm9ybWF0cyBuZWdhdGl2ZSB5ZWFycwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDI0ODc0NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MTEsNiAr
ODExLDEwIEBAIENvZGVCbG9jazo6fkNvZGVCbG9jaygpCiB7CiAgICAgVk0mIHZtID0gKm1fdm07
CiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKKyAgICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklU
KGppdFR5cGUoKSkpCisgICAgICAgIGppdENvZGUoKS0+ZGZnQ29tbW9uKCktPmNsZWFyV2F0Y2hw
b2ludHMoKTsKKyNlbmRpZgogICAgIHZtLmhlYXAuY29kZUJsb2NrU2V0KCkucmVtb3ZlKHRoaXMp
OwogICAgIAogICAgIGlmIChVTkxJS0VMWSh2bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXIpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376482</attachid>
            <date>2019-08-16 00:58:42 -0700</date>
            <delta_ts>2019-08-16 15:46:51 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-200792.patch</filename>
            <type>text/plain</type>
            <size>5766</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDg3NjQpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTA4LTE2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBDb2RlQmxvY2sgZGVzdHJ1Y3RvciBzaG91bGQgY2xlYXIgYWxsIG9mIGl0
cyB3YXRjaHBvaW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMDc5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTM5NDc4MDA+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvY29kZWJs
b2NrLXNob3VsZC1jbGVhci13YXRjaHBvaW50cy1vbi1kZXN0cnVjdGlvbi5qczogQWRkZWQuCisK
IDIwMTktMDgtMTUgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAg
ICAgICAgIERhdGVDb252ZXJzaW9uOjpmb3JtYXREYXRlVGltZSBpbmNvcnJlY3RseSBmb3JtYXRz
IG5lZ2F0aXZlIHllYXJzCkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9jb2RlYmxvY2stc2hvdWxkLWNs
ZWFyLXdhdGNocG9pbnRzLW9uLWRlc3RydWN0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMv
c3RyZXNzL2NvZGVibG9jay1zaG91bGQtY2xlYXItd2F0Y2hwb2ludHMtb24tZGVzdHJ1Y3Rpb24u
anMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9zdHJlc3MvY29kZWJsb2NrLXNob3VsZC1jbGVh
ci13YXRjaHBvaW50cy1vbi1kZXN0cnVjdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQ5IEBACisvL0AgcnVuRlRMTm9DSklUKCItLXRocmVzaG9sZEZvckZUTE9wdGltaXplQWZ0ZXJX
YXJtVXA9MTAwMCIpCisKKy8vIFRoaXMgdGVzdCBzaG91bGQgbm90IGNyYXNoLgorCitsZXQgc291
cmNlOworZm9yIChfX3YxIG9mICdndScpIHsKKyAgICBsZXQgX192MyA9IG5ldyBSZWdFeHAoc291
cmNlLCBfX3YxKTsKKyAgICBsZXQgX192MCA9ICdPdmVyIG1hbnkgYSBxdWFpbnQgYW5kIGN1cmlv
dXMgdm9sdW1lIG9mIGZvcmdvdHRlbiBsb3JlLCcucmVwbGFjZShfX3YzLCAoLi4uX192MCkgPT4g
eworICAgICAgICB0cnkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB0cnkg
eworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBfX3YwID0gMjc7IF9fdjAgPCAxMDAwOyAr
K19fdjApIHt9CisgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIF9fdjQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBmaW5hbGx5
IHsKKyAgICAgICAgICAgICAgICBnYygpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNo
IChfX3YzKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAg
ICAgICAgICAgICAgICAgICAgKHt9KS5fX3Byb3RvX19bX192MF0gPSBfX3YzOworICAgICAgICAg
ICAgICAgICAgICBmb3IgKF9fdjEgb2YgJ2d1JykgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IF9fdjMgPSBuZXcgUmVnRXhwKHNvdXJjZSwgX192MSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgX192MCA9ICdPdmVyIG1hbnkgYSBxdWFpbnQgYW5kIGN1cmlvdXMgdm9sdW1lIG9m
IGZvcmdvdHRlbiBsb3JlLCcucmVwbGFjZShfX3YzLCAoLi4uX192MCkgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7KCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgnYmxhaGJsYWhibGFoYmxhaCcgKyBfX3Yw
KSArIF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjAgaW5zdGFuY2VvZiBfX3YwKSArIF9fdjAp
ICsgX192MCA9PT0gX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjAp
ICsgX192MCAhPSBfX3YwKSArIF9fdjEpICsgX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkg
KyBfX3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwKSAr
IF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwID09PSBfX3YwKSAr
IF9fdjUpICsgX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjApICsg
X192MiArIF9fdjA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChfX3YzKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
dmFsKCd0YWdgSGVsbG9cbiR7dn13b3JsZGAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRy
eSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoJ3RhZ2BIZWxsb1xuJHt2fXdvcmxk
YCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fSk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNDg3NjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTktMDgtMTYgIE1hcmsgTGFt
ICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIENvZGVCbG9jayBkZXN0cnVjdG9yIHNo
b3VsZCBjbGVhciBhbGwgb2YgaXRzIHdhdGNocG9pbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNzkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81Mzk0NzgwMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZSBuZWVkIHRvIGNsZWFyIHRoZSB3YXRjaHBvaW50cyBleHBsaWNpdGx5IChqdXN0IGxp
a2Ugd2UgZG8gaW4gQ29kZUJsb2NrOjpqZXR0aXNvbigpKQorICAgICAgICBiZWNhdXNlIHRoZSBK
SVRDb2RlIG1heSBvdXRsaXZlIHRoZSBDb2RlQmxvY2sgZm9yIGEgd2hpbGUuICBGb3IgZXhhbXBs
ZSwgdGhlIEpJVENvZGUKKyAgICAgICAgaXMgcmVmJ2QgaW4gSW50ZXJwcmV0ZXI6OmV4ZWN1dGUo
SlNDOjpDYWxsRnJhbWVDbG9zdXJlJikgbGlrZSBzbzoKKworICAgICAgICAgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNh
bGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUucHJvdG9DYWxsRnJhbWUpOworCisgICAgICAgIFRo
ZSBjYWxsIHRvIGdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCkgcmV0dXJucyBhIFJlZjxKSVRDb2Rl
PiB3aXRoIHRoZSB1bmRlcmx5aW5nCisgICAgICAgIEpJVENvZGUgcmVmJ2QuICBIZW5jZSwgd2hp
bGUgdGhlIGludGVycHJldGVyIGZyYW1lIGlzIHN0aWxsIG9uIHRoZSBzdGFjaywgdGhlCisgICAg
ICAgIGV4ZWN1dGluZyBKSVRDb2RlIGluc3RhbmNlIHdpbGwgaGF2ZSBhIG5vbi16ZXJvIHJlZkNv
dW50LCBhbmQgYmUga2VwdCBhbGl2ZSBldmVuCisgICAgICAgIHRob3VnaCBpdHMgQ29kZUJsb2Nr
IG1heSBoYXZlIGFscmVhZHkgYmVlbiBkZXN0cnVjdGVkLgorCisgICAgICAgIE5vdGU6IHRoZSBJ
bnRlcnByZXRlciBleGVjdXRlKCkgbWV0aG9kcyBhcmVuJ3QgdGhlIG9ubHkgb25lcyB3aG8gd291
bGQgcmVmIHRoZSBKSVRDb2RlOgorICAgICAgICBFeGVjdXRhYmxlQmFzZSBhbHNvIGhvbGRzIGEg
UmVmUHRyPEpJVENvZGU+IG1faml0Q29kZUZvckNhbGwgYW5kIFJlZlB0cjxKSVRDb2RlPgorICAg
ICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3QuICBCdXQgYSBDb2RlQmxvY2sgd2lsbCBiZSB1bmlu
c3RhbGxlZCBiZWZvcmUgaXQgZ2V0cyBkZXN0cnVjdGVkLgorICAgICAgICBIZW5jZSwgdGhlIHVu
aW5zdGFsbGF0aW9uIHdpbGwgZGVyZWYgdGhlIEpJVENvZGUgYmVmb3JlIHdlIGdldCB0byB0aGUg
Q29kZUJsb2NrCisgICAgICAgIGRlc3RydWN0b3IuICBUaGF0IHNhaWQsIHdlIHNob3VsZCBiZSBh
d2FyZSB0aGF0IGEgSklUQ29kZSdzIHJlZkNvdW50IGlzIG5vdCBhbHdheXMKKyAgICAgICAgMSBh
ZnRlciB0aGUgSklUIGluc3RhbGxzIGl0IGludG8gdGhlIENvZGVCbG9jaywgYW5kIGl0IHNob3Vs
ZCBub3QgYmUgYXNzdW1lZCB0byBiZSBzby4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9j
ay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6fkNvZGVCbG9jayk6CisKIDIwMTktMDgt
MTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbV1RGXSBB
ZGQgbWFrZVVuaXF1ZTxUPiwgd2hpY2ggZW5zdXJlcyBUIGlzIGZhc3QtYWxsb2NhdGVkLCBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRCBhbm5vdGF0aW9uIHBhcnQKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAyNDg3NjQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODExLDYgKzgxMSwxMCBAQCBDb2RlQmxvY2s6On5Db2RlQmxvY2soKQogewogICAgIFZN
JiB2bSA9ICptX3ZtOwogCisjaWYgRU5BQkxFKERGR19KSVQpCisgICAgaWYgKEpJVENvZGU6Omlz
T3B0aW1pemluZ0pJVChqaXRUeXBlKCkpKQorICAgICAgICBqaXRDb2RlKCktPmRmZ0NvbW1vbigp
LT5jbGVhcldhdGNocG9pbnRzKCk7CisjZW5kaWYKICAgICB2bS5oZWFwLmNvZGVCbG9ja1NldCgp
LnJlbW92ZSh0aGlzKTsKICAgICAKICAgICBpZiAoVU5MSUtFTFkodm0ubV9wZXJCeXRlY29kZVBy
b2ZpbGVyKSkK
</data>
<flag name="review"
          id="392262"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376550</attachid>
            <date>2019-08-16 15:46:51 -0700</date>
            <delta_ts>2019-08-16 15:46:51 -0700</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-200792.patch</filename>
            <type>text/plain</type>
            <size>9077</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDg3OTkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTA4LTE2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBDb2RlQmxvY2sgZGVzdHJ1Y3RvciBzaG91bGQgY2xlYXIgYWxsIG9mIGl0
cyB3YXRjaHBvaW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMDc5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTM5NDc4MDA+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICAqIHN0cmVzcy9jb2RlYmxv
Y2stc2hvdWxkLWNsZWFyLXdhdGNocG9pbnRzLW9uLWRlc3RydWN0aW9uLmpzOiBBZGRlZC4KKwog
MjAxOS0wOC0xNiAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IEluQm91bmRzIHNwZWN1bGF0aW9uIG9mIHR5cGVkIGFycmF5IFB1dEJ5VmFs
IGFuZCBhZGQgZXh0cmEgc3RlcCB0byBpbnRlZ2VyIHJhbmdlIG9wdGltaXphdGlvbiB0byBzZWFy
Y2ggZm9yIGVxdWFsaXR5IHJlbGF0aW9uc2hpcHMgb24gdGhlIFJIUyB2YWx1ZQpJbmRleDogSlNU
ZXN0cy9zdHJlc3MvY29kZWJsb2NrLXNob3VsZC1jbGVhci13YXRjaHBvaW50cy1vbi1kZXN0cnVj
dGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9jb2RlYmxvY2stc2hvdWxkLWNs
ZWFyLXdhdGNocG9pbnRzLW9uLWRlc3RydWN0aW9uLmpzCShub25leGlzdGVudCkKKysrIEpTVGVz
dHMvc3RyZXNzL2NvZGVibG9jay1zaG91bGQtY2xlYXItd2F0Y2hwb2ludHMtb24tZGVzdHJ1Y3Rp
b24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAorLy9AIHJ1bkZUTE5vQ0pJVCgi
LS10aHJlc2hvbGRGb3JGVExPcHRpbWl6ZUFmdGVyV2FybVVwPTEwMDAiKQorCisvLyBUaGlzIHRl
c3Qgc2hvdWxkIG5vdCBjcmFzaC4KKworbGV0IHNvdXJjZTsKK2ZvciAoX192MSBvZiAnZ3UnKSB7
CisgICAgbGV0IF9fdjMgPSBuZXcgUmVnRXhwKHNvdXJjZSwgX192MSk7CisgICAgbGV0IF9fdjAg
PSAnT3ZlciBtYW55IGEgcXVhaW50IGFuZCBjdXJpb3VzIHZvbHVtZSBvZiBmb3Jnb3R0ZW4gbG9y
ZSwnLnJlcGxhY2UoX192MywgKC4uLl9fdjApID0+IHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZm9y
IChsZXQgX192MCA9IDI3OyBfX3YwIDwgMTAwMDsgKytfX3YwKSB7fQorICAgICAgICAgICAgICAg
IH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBfX3Y0OworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgZ2MoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoX192MykgeworICAgICAgICAgICAgdHJ5
IHsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgICAgICh7fSkuX19w
cm90b19fW19fdjBdID0gX192MzsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChfX3YxIG9mICdn
dScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfX3YzID0gbmV3IFJlZ0V4cChzb3Vy
Y2UsIF9fdjEpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF9fdjAgPSAnT3ZlciBtYW55
IGEgcXVhaW50IGFuZCBjdXJpb3VzIHZvbHVtZSBvZiBmb3Jnb3R0ZW4gbG9yZSwnLnJlcGxhY2Uo
X192MywgKC4uLl9fdjApID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9IGZpbmFsbHkgeygoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoJ2JsYWhibGFoYmxhaGJsYWgnICsgX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkg
KyBfX3YwIGluc3RhbmNlb2YgX192MCkgKyBfX3YwKSArIF9fdjAgPT09IF9fdjApICsgX192MCkg
KyBfX3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjAgIT0gX192MCkgKyBfX3YxKSAr
IF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjApICsg
X192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjApICsgX192MCkgKyBf
X3YwKSArIF9fdjApICsgX192MCA9PT0gX192MCkgKyBfX3Y1KSArIF9fdjApICsgX192MCkgKyBf
X3YwKSArIF9fdjApICsgX192MCkgKyBfX3YwKSArIF9fdjIgKyBfX3YwOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRj
aCAoX192MykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbCgndGFnYEhlbGxvXG4ke3Z9d29ybGRg
Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmFsKCd0YWdgSGVsbG9cbiR7dn13b3JsZGAnKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworfQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ4Nzk5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDc0IEBACisyMDE5LTA4LTE2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKwor
ICAgICAgICBDb2RlQmxvY2sgZGVzdHJ1Y3RvciBzaG91bGQgY2xlYXIgYWxsIG9mIGl0cyB3YXRj
aHBvaW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMDc5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTM5NDc4MDA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICBXZSBuZWVkIHRvIGNsZWFyIHRoZSB3
YXRjaHBvaW50cyBleHBsaWNpdGx5IChqdXN0IGxpa2Ugd2UgZG8gaW4gQ29kZUJsb2NrOjpqZXR0
aXNvbigpKQorICAgICAgICBiZWNhdXNlIHRoZSBKSVRDb2RlIG1heSBvdXRsaXZlIHRoZSBDb2Rl
QmxvY2sgZm9yIGEgd2hpbGUuICBGb3IgZXhhbXBsZSwgdGhlIEpJVENvZGUKKyAgICAgICAgaXMg
cmVmJ2QgaW4gSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoSlNDOjpDYWxsRnJhbWVDbG9zdXJlJikgbGlr
ZSBzbzoKKworICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhl
Y3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUu
cHJvdG9DYWxsRnJhbWUpOworCisgICAgICAgIFRoZSBjYWxsIHRvIGdlbmVyYXRlZEpJVENvZGVG
b3JDYWxsKCkgcmV0dXJucyBhIFJlZjxKSVRDb2RlPiB3aXRoIHRoZSB1bmRlcmx5aW5nCisgICAg
ICAgIEpJVENvZGUgcmVmJ2QuICBIZW5jZSwgd2hpbGUgdGhlIGludGVycHJldGVyIGZyYW1lIGlz
IHN0aWxsIG9uIHRoZSBzdGFjaywgdGhlCisgICAgICAgIGV4ZWN1dGluZyBKSVRDb2RlIGluc3Rh
bmNlIHdpbGwgaGF2ZSBhIG5vbi16ZXJvIHJlZkNvdW50LCBhbmQgYmUga2VwdCBhbGl2ZSBldmVu
CisgICAgICAgIHRob3VnaCBpdHMgQ29kZUJsb2NrIG1heSBoYXZlIGFscmVhZHkgYmVlbiBkZXN0
cnVjdGVkLgorCisgICAgICAgIE5vdGU6IHRoZSBJbnRlcnByZXRlciBleGVjdXRlKCkgbWV0aG9k
cyBhcmVuJ3QgdGhlIG9ubHkgb25lcyB3aG8gd291bGQgcmVmIHRoZSBKSVRDb2RlOgorICAgICAg
ICBFeGVjdXRhYmxlQmFzZSBhbHNvIGhvbGRzIGEgUmVmUHRyPEpJVENvZGU+IG1faml0Q29kZUZv
ckNhbGwgYW5kIFJlZlB0cjxKSVRDb2RlPgorICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3Qu
ICBCdXQgYSBDb2RlQmxvY2sgd2lsbCBiZSB1bmluc3RhbGxlZCBiZWZvcmUgaXQgZ2V0cyBkZXN0
cnVjdGVkLgorICAgICAgICBIZW5jZSwgdGhlIHVuaW5zdGFsbGF0aW9uIHdpbGwgZGVyZWYgdGhl
IEpJVENvZGUgYmVmb3JlIHdlIGdldCB0byB0aGUgQ29kZUJsb2NrCisgICAgICAgIGRlc3RydWN0
b3IuICBUaGF0IHNhaWQsIHdlIHNob3VsZCBiZSBhd2FyZSB0aGF0IGEgSklUQ29kZSdzIHJlZkNv
dW50IGlzIG5vdCBhbHdheXMKKyAgICAgICAgMSBhZnRlciB0aGUgSklUIGluc3RhbGxzIGl0IGlu
dG8gdGhlIENvZGVCbG9jaywgYW5kIGl0IHNob3VsZCBub3QgYmUgYXNzdW1lZCB0byBiZSBzby4K
KworICAgICAgICBGb3IgdGhpcyBwYXRjaCwgSSBhbHNvIGF1ZGl0ZWQgYWxsIFdhdGNocG9pbnQg
c3ViY2xhc3NlcyB0byBlbnN1cmUgdGhhdCB3ZSBhcmUKKyAgICAgICAgY2xlYXJpbmcgYWxsIHRo
ZSByZWxldmFudCB3YXRjaHBvaW50cyBpbiB0aGUgQ29kZUJsb2NrIGRlc3RydWN0b3IuICBIZXJl
IGlzIHRoZQorICAgICAgICBsaXN0IG9mIGF1ZGl0ZWQgV2F0Y2hwb2ludHM6CisKKyAgICAgICAg
ICAgIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludAorICAgICAgICAgICAgQWRhcHRpdmVT
dHJ1Y3R1cmVXYXRjaHBvaW50CisgICAgICAgICAgICBBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlW
YWx1ZVdhdGNocG9pbnQKKyAgICAgICAgICAgICAgICAtIHRoZXNlIGFyZSBoZWxkIGluIHRoZSBE
Rkc6OkNvbW1vbkRhdGEsIGFuZCBpcyB0aWVkIHRvIEpJVENvZGUncyBsaWZlIGN5Y2xlLgorICAg
ICAgICAgICAgICAgIC0gdGhleSBuZWVkIHRvIGJlIGNsZWFyZWQgZWFnZXJseSBpbiBDb2RlQmxv
Y2sncyBkZXN0cnVjdG9yLgorCisgICAgICAgICAgICBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2
ZVN0cnVjdHVyZVdhdGNocG9pbnQKKyAgICAgICAgICAgICAgICAtIHN0b3JlZCBpbiBtX2xsaW50
R2V0QnlJZFdhdGNocG9pbnRNYXAgaW4gdGhlIENvZGVCbG9jay4KKyAgICAgICAgICAgICAgICAt
IHRoaXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNsZWFyZWQgb24gQ29kZUJsb2NrIGRlc3RydWN0
aW9uLgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgZG9lcyBub3QgcmVmZXJlbmNlIENvZGVCbG9j
azoKKworICAgICAgICAgICAgRnVuY3Rpb25SYXJlRGF0YTo6QWxsb2NhdGlvblByb2ZpbGVDbGVh
cmluZ1dhdGNocG9pbnQKKyAgICAgICAgICAgICAgICAtIHN0b3JlZCBpbiBGdW5jdGlvblJhcmVE
YXRhIGFuZCB3aWxsIGJlIGNsZWFyZWQgYXV0b21hdGljYWxseSBvbgorICAgICAgICAgICAgICAg
ICAgRnVuY3Rpb25SYXJlRGF0YSBkZXN0cnVjdGlvbi4KKyAgICAgICAgICAgICAgICAtIG9ubHkg
cmVmZXJlbmNlcyB0aGUgb3duZXIgRnVuY3Rpb25SYXJlRGF0YS4KKworICAgICAgICAgICAgT2Jq
ZWN0VG9TdHJpbmdBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQKKyAgICAgICAgICAgIE9iamVj
dFRvU3RyaW5nQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50CisgICAgICAg
ICAgICAgICAgLSBzdG9yZWQgaW4gU3RydWN0dXJlUmFyZURhdGEgYW5kIHdpbGwgYmUgY2xlYXJl
ZCBhdXRvbWF0aWNhbGx5IG9uCisgICAgICAgICAgICAgICAgICBTdHJ1Y3R1cmVSYXJlRGF0YSBk
ZXN0cnVjdGlvbi4KKworICAgICAgICAgICAgT2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdh
dGNocG9pbnQKKyAgICAgICAgICAgICAgICAtIHN0b3JlZCBpbiBKU0dsb2JhbE9iamVjdCwgYW5k
IHdpbGwgYmUgY2xlYXJlZCBhdXRvbWF0aWNhbGx5IG9uCisgICAgICAgICAgICAgICAgICBKU0ds
b2JhbE9iamVjdCBkZXN0cnVjdGlvbi4KKyAgICAgICAgICAgICAgICAtIG9ubHkgcmVmZXJlbmNl
cyB0aGUgb3duZXIgSlNHbG9iYWxPYmplY3QuCisKKyAgICAgICAgICAgIFN0cnVjdHVyZVN0dWJD
bGVhcmluZ1dhdGNocG9pbnQKKyAgICAgICAgICAgICAgICAtIHN0b3JlZCBpbiBXYXRjaHBvaW50
c09uU3RydWN0dXJlU3R1YkluZm8gYW5kIHdpbGwgYmUgY2xlYXJlZCBhdXRvbWF0aWNhbGx5Cisg
ICAgICAgICAgICAgICAgICBvbiBXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1YkluZm8gZGVzdHJ1
Y3Rpb24uCisKKyAgICAgICAgICAgIFByb3BlcnR5V2F0Y2hwb2ludAorICAgICAgICAgICAgU3Ry
dWN0dXJlV2F0Y2hwb2ludAorICAgICAgICAgICAgICAgIC0gZW1iZWRkZWQgaW4gQWRhcHRpdmVJ
bmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZSwgd2hpY2ggaXMgZXh0ZW5kZWQKKyAg
ICAgICAgICAgICAgICAgIGFzIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2lu
dCwgT2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQsCisgICAgICAgICAgICAg
ICAgICBhbmQgT2JqZWN0VG9TdHJpbmdBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNo
cG9pbnQuCisgICAgICAgICAgICAgICAgLSBsaWZlIGN5Y2xlIGlzIGhhbmRsZWQgYnkgdGhvc2Ug
MyBzdWJjbGFzc2VzLgorCisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjp+Q29kZUJsb2NrKToKKwogMjAxOS0wOC0xNiAgSnVzdGluIE1p
Y2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IEluQm91bmRz
IHNwZWN1bGF0aW9uIG9mIHR5cGVkIGFycmF5IFB1dEJ5VmFsIGFuZCBhZGQgZXh0cmEgc3RlcCB0
byBpbnRlZ2VyIHJhbmdlIG9wdGltaXphdGlvbiB0byBzZWFyY2ggZm9yIGVxdWFsaXR5IHJlbGF0
aW9uc2hpcHMgb24gdGhlIFJIUyB2YWx1ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDI0ODc5OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MTEs
NiArODExLDI2IEBAIENvZGVCbG9jazo6fkNvZGVCbG9jaygpCiB7CiAgICAgVk0mIHZtID0gKm1f
dm07CiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKKyAgICAvLyBUaGUgSklUQ29kZSAoYW5kIGl0cyBj
b3JyZXNwb25kaW5nIERGRzo6Q29tbW9uRGF0YSkgbWF5IG91dGxpdmUgdGhlIENvZGVCbG9jayBi
eQorICAgIC8vIGEgc2hvcnQgYW1vdW50IG9mIHRpbWUgYWZ0ZXIgdGhlIENvZGVCbG9jayBpcyBk
ZXN0cnVjdGVkLiBGb3IgZXhhbXBsZSwgdGhlCisgICAgLy8gSW50ZXJwcmV0ZXI6OmV4ZWN1dGUg
bWV0aG9kcyB3aWxsIHJlZiBKSVRDb2RlIGJlZm9yZSBpbnZva2luZyBpdC4gVGhpcyBjYW4KKyAg
ICAvLyByZXN1bHQgaW4gdGhlIEpJVENvZGUgaGF2aW5nIGEgbm9uLXplcm8gcmVmQ291bnQgd2hl
biBpdHMgb3duZXIgQ29kZUJsb2NrIGlzCisgICAgLy8gZGVzdHJ1Y3RlZC4KKyAgICAvLworICAg
IC8vIEhlbmNlLCB3ZSBjYW5ub3QgcmVseSBvbiBERkc6OkNvbW1vbkRhdGEgZGVzdHJ1Y3Rpb24g
dG8gY2xlYXIgdGhlc2Ugbm93IGludmFsaWQKKyAgICAvLyB3YXRjaHBvaW50cyBpbiBhIHRpbWVs
eSBtYW5uZXIuIFdlJ2xsIGVuc3VyZSB0aGV5IGFyZSBjbGVhcmVkIGhlcmUgZWFnZXJseS4KKyAg
ICAvLworICAgIC8vIFdlIG9ubHkgbmVlZCB0byBkbyB0aGlzIGZvciBhIERGRy9GVEwgQ29kZUJs
b2NrIGJlY2F1c2Ugb25seSB0aGVzZSB3aWxsIGhhdmUgYQorICAgIC8vIERGRzpDb21tb25EYXRh
LiBIZW5jZSwgdGhlIExMSW50IGFuZCBCYXNlbGluZSB3aWxsIG5vdCBoYXZlIGFueSBvZiB0aGVz
ZSB3YXRjaHBvaW50cy4KKyAgICAvLworICAgIC8vIE5vdGUgYWxzbyB0aGF0IHRoZSBMTEludFBy
b3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQgaXMgYWxzbyByZWxhdGVkCisg
ICAgLy8gdG8gdGhlIENvZGVCbG9jay4gSG93ZXZlciwgaXRzIGxpZmVjeWNsZSBpcyB0aWVkIGRp
cmVjdGx5IHRvIHRoZSBDb2RlQmxvY2ssIGFuZAorICAgIC8vIHdpbGwgYmUgYXV0b21hdGljYWxs
eSBjbGVhcmVkIHdoZW4gdGhlIENvZGVCbG9jayBkZXN0cnVjdHMuCisKKyAgICBpZiAoSklUQ29k
ZTo6aXNPcHRpbWl6aW5nSklUKGppdFR5cGUoKSkpCisgICAgICAgIGppdENvZGUoKS0+ZGZnQ29t
bW9uKCktPmNsZWFyV2F0Y2hwb2ludHMoKTsKKyNlbmRpZgogICAgIHZtLmhlYXAuY29kZUJsb2Nr
U2V0KCkucmVtb3ZlKHRoaXMpOwogICAgIAogICAgIGlmIChVTkxJS0VMWSh2bS5tX3BlckJ5dGVj
b2RlUHJvZmlsZXIpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>