<?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>125672</bug_id>
          
          <creation_ts>2013-12-12 19:44:40 -0800</creation_ts>
          <short_desc>jsCStack: Fix exception handling for the LLINT.</short_desc>
          <delta_ts>2013-12-13 16:38:25 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>959441</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-12 19:44:40 -0800</bug_when>
    <thetext>We need to re-establish the sp for the catch callFrame in op_catch and nativeCallTrampoline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959442</commentid>
    <comment_count>1</comment_count>
      <attachid>219143</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-12 19:46:52 -0800</bug_when>
    <thetext>Created attachment 219143
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959451</commentid>
    <comment_count>2</comment_count>
      <attachid>219143</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-12-12 20:32:52 -0800</bug_when>
    <thetext>Comment on attachment 219143
the patch.

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

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:283
&gt; +    # So far, we&apos;ve unwound the stack to the farme just above the sentinel frame.

Typo: &quot;farme&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959463</commentid>
    <comment_count>3</comment_count>
      <attachid>219143</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-12-12 21:12:42 -0800</bug_when>
    <thetext>Comment on attachment 219143
the patch.

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

r=me

&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:283
&gt;&gt; +    # So far, we&apos;ve unwound the stack to the farme just above the sentinel frame.
&gt; 
&gt; Typo: &quot;farme&quot;

The stack grows downward, so I think you meant &quot;below&quot; here, and not &quot;above&quot;.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:1971
&gt; +    # So far, we&apos;ve unwound the stack until the native frame. We need to pop it,
&gt; +    # and pick up unwinding from its caller now (if needed).

This comment is misleading. We didn&apos;t &quot;unwind the stack&quot;. Instead, the host function returned to us in the normal way. A better thing to say here is just &quot;Pop the host function stack frame created by op_call&quot;.

Even that is not a great comment, since it doesn&apos;t explain *why*. Why does _llint_throw_from_native_call need us to pop the host function stack frame? I&apos;m not sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959500</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-12 23:34:20 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 219143 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=219143&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:283
&gt; &gt;&gt; +    # So far, we&apos;ve unwound the stack to the farme just above the sentinel frame.
&gt; &gt; 
&gt; &gt; Typo: &quot;farme&quot;
&gt; 
&gt; The stack grows downward, so I think you meant &quot;below&quot; here, and not &quot;above&quot;.

Fixed.

&gt; &gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:1971
&gt; &gt; +    # So far, we&apos;ve unwound the stack until the native frame. We need to pop it,
&gt; &gt; +    # and pick up unwinding from its caller now (if needed).
&gt; 
&gt; This comment is misleading. We didn&apos;t &quot;unwind the stack&quot;. Instead, the host function returned to us in the normal way. A better thing to say here is just &quot;Pop the host function stack frame created by op_call&quot;.

We&apos;re only here because an exception was thrown and uncaught / unhandled in the native function or any of the JS functions it called.  Hence, there was some stack unwinding action happening prior to getting here, and the frame that we stopped unwinding on is the native frame and it did not handle and clear the exception in the VM.  What this piece of code is suppose to do is to continue the unwinding process from the caller of the native frame.

The reason I added this comment was to provide some context of what happened before, and where we need to pick up the unwinding work.  Is this not adequate as a reason to have this comment?

&gt; Even that is not a great comment, since it doesn&apos;t explain *why*. Why does _llint_throw_from_native_call need us to pop the host function stack frame? I&apos;m not sure.

The exception handling mechanism that unwinds the stack will stop unwinding when it sees a native / host function frame.  Just to clarify, are you suggesting that _llint_throw_from_native_call should do the work of popping off the host frame?

Actually looking at the implementation of _llint_throw_from_native_call, I see that it is a useless function that only asserts that VM::m_exception is not null.  But the only way we could possibly reach this code path is if VM::m_exception is not null.  Hence, _llint_throw_from_native_call should be removed altogether.

I&apos;ll clean that up, test it, and upload another patch for a follow up review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959526</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-13 02:18:47 -0800</bug_when>
    <thetext>There appears to be a regression after I svn’ed up.  This patch is no longer adequate to make exception handling work for the LLINT.  I’m currently investigating the new issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959572</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-13 09:48:16 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; There appears to be a regression after I svn’ed up.  This patch is no longer adequate to make exception handling work for the LLINT.  I’m currently investigating the new issues.

Correction: the regression is not in the vicinity of the exception handling code.  Instead the following statement caused the crash I saw:

    print(“My object: “ + { });

I haven’t dug deeper yet, but it may have to do with Object.toString().  The issue is documented in https://bugs.webkit.org/show_bug.cgi?id=125694.

Continuing with exceptions work now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959628</commentid>
    <comment_count>7</comment_count>
      <attachid>219181</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-13 12:43:24 -0800</bug_when>
    <thetext>Created attachment 219181
patch 2: removed llint_throw_from_native_call.

I changed my mind about the comment in nativeCallTrampoline.  Without the now elided call to llint_throw_from_native_call, the exception handling section is much simpler and I don&apos;t think the comment is needed anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959683</commentid>
    <comment_count>8</comment_count>
      <attachid>219181</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-12-13 14:54:56 -0800</bug_when>
    <thetext>Comment on attachment 219181
patch 2: removed llint_throw_from_native_call.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959709</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-13 16:38:25 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r160573 on the jsCStack branch: &lt;http://trac.webkit.org/r160573&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219143</attachid>
            <date>2013-12-12 19:46:52 -0800</date>
            <delta_ts>2013-12-13 12:43:24 -0800</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-125672.patch</filename>
            <type>text/plain</type>
            <size>2568</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYwNTI0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEzLTEyLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggZXhjZXB0aW9uIGhhbmRsaW5nIGZvciB0aGUgTExJTlQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU2NzIuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJhc2VsaW5lIEpJVCBleGNlcHRpb24g
aGFuZGxpbmcgaXMgc3RpbGwgYnJva2VuLgorCisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjY0LmFzbToKKyAgICAgICAgLSBCYXNpY2FsbHkgbmVlZCB0byBjYWxsIHRoZSByZXN0
b3JlU3RhY2tQb2ludGVyQWZ0ZXJKU0NhbGwoKSBtYWNybworICAgICAgICAgIGluIG9wX2NhdGNo
IGFuZCBuYXRpdmVDYWxsVHJhbXBvbGluZS4KKyAgICAgICAgLSBBbHNvIHJlbW92ZWQgdGhlIGNo
ZWNrIGZvciB0aGUgc2VudGluZWwgZnJhbWUgaW4gaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24KKyAg
ICAgICAgICBiZWNhdXNlIHdlJ3JlIGd1YXJhbnRlZWQgdG8gYmUgYXQgdGhlIGZyYW1lIGFib3Zl
IHRoZSBzZW50aW5lbCBmcmFtZS4KKwogMjAxMy0xMi0xMiAgTWljaGFlbCBTYWJvZmYgIDxtc2Fi
b2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBDU3RhY2sgQnJhbmNoOiBBZGQgZXF1aXZhbGVudCB2
YWx1ZXMgZnJvbSBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIHRvIGxpbnQgZmlsZXMK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAxNjA1MjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMjgw
LDEwICsyODAsMTEgQEAgX2hhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgogICAgIGxvYWRwIE1hcmtl
ZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKICAgICBsb2FkcCBWTTo6
Y2FsbEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKIAotICAgIGJwZXEgQ29kZUJsb2NrW2Nmcl0sIDEs
IC5jYWxsZWVGcmFtZVBvcHBlZAorICAgICMgU28gZmFyLCB3ZSd2ZSB1bndvdW5kIHRoZSBzdGFj
ayB0byB0aGUgZmFybWUganVzdCBhYm92ZSB0aGUgc2VudGluZWwgZnJhbWUuCisgICAgIyBXZSBu
ZWVkIHRvIHBvcCB0byB0aGUgc2VudGluZWwgZnJhbWUgYW5kIGRvIHRoZSBuZWNlc3NhcnkgY2xl
YW4gdXAgZm9yCisgICAgIyByZXR1cm5pbmcgdG8gdGhlIGNhbGxlciBDIGZyYW1lLgogICAgIGxv
YWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgogCi0uY2FsbGVlRnJhbWVQb3BwZWQ6CiAgICAgbG9h
ZHAgQ2FsbGVlW2Nmcl0sIHQzICMgVk0udG9wQ2FsbEZyYW1lCiAgICAgbG9hZHAgU2NvcGVDaGFp
bltjZnJdLCB0NgogICAgIHN0b3JlcCB0NiwgW3QzXQpAQCAtMTg1Miw2ICsxODUzLDggQEAgX2xs
aW50X29wX2NhdGNoOgogICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgIGxvYWRwIE1h
cmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKICAgICBsb2FkcCBW
TTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKKyAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0
ZXJKU0NhbGwoKQorCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIFBCCiAgICAgbG9hZHAgQ29k
ZUJsb2NrOjptX2luc3RydWN0aW9uc1tQQl0sIFBCCiAgICAgbG9hZHAgVk06OnRhcmdldEludGVy
cHJldGVyUENGb3JUaHJvd1t0M10sIFBDCkBAIC0xOTYzLDYgKzE5NjYsMTIgQEAgbWFjcm8gbmF0
aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZgogICAgIGlmIFg4Nl82NAogICAgICAgICBw
b3AgdDEKICAgICBlbmQKKworICAgICMgU28gZmFyLCB3ZSd2ZSB1bndvdW5kIHRoZSBzdGFjayB1
bnRpbCB0aGUgbmF0aXZlIGZyYW1lLiBXZSBuZWVkIHRvIHBvcCBpdCwKKyAgICAjIGFuZCBwaWNr
IHVwIHVud2luZGluZyBmcm9tIGl0cyBjYWxsZXIgbm93IChpZiBuZWVkZWQpLgorICAgIGxvYWRw
IENhbGxlckZyYW1lW2Nmcl0sIGNmcgorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckpTQ2Fs
bCgpCisKICAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCiAgICAg
bG9hZHAgQ29kZUJsb2NrW2Nmcl0sIFBCCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX3ZtW1BCXSwg
dDAK
</data>
<flag name="review"
          id="242732"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219181</attachid>
            <date>2013-12-13 12:43:24 -0800</date>
            <delta_ts>2013-12-13 14:54:56 -0800</delta_ts>
            <desc>patch 2: removed llint_throw_from_native_call.</desc>
            <filename>bug-125672.patch</filename>
            <type>text/plain</type>
            <size>8536</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYwNTQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDEzLTEyLTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggZXhjZXB0aW9uIGhhbmRsaW5nIGZvciB0aGUgTExJTlQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU2NzIuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJhc2VsaW5lIEpJVCBleGNlcHRpb24g
aGFuZGxpbmcgaXMgc3RpbGwgYnJva2VuLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUub3Jk
ZXI6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAqIGxsaW50
L0xMSW50U2xvd1BhdGhzLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAg
ICAgLSB1cGRhdGVkIHRoZSAzMmJpdCBmaWxlIHdpdGggc29tZSBvZiB0aGUgY2hhbmdlcyB0byBr
ZWVwIHRyYWNrIHdpdGggdGhlIDY0Yml0CisgICAgICAgICAgb25lIHRob3VnaCBpdCBkb2Vzbid0
IGJ1aWxkIHlldC4gVGhlIGJ1aWxkIGZhaWx1cmUgd2lsbCBjbGVhcmx5IHRlbGwgdXMgc29tZSBv
ZgorICAgICAgICAgIHRoZSB0aGluZ3MgdGhhdCBuZWVkIHRvIGJlIGZpeGVkIGxhdGVyLgorICAg
ICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgIC0gQ2FsbGVk
IHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKSBpbiBvcF9jYXRjaCBhbmQgbmF0aXZlQ2Fs
bFRyYW1wb2xpbmUgdG8KKyAgICAgICAgICByZXN0b3JlIHRoZSBhcHByb3ByaWF0ZSBzdGFjayBw
b2ludGVyLgorICAgICAgICAtIFJlbmFtZWQgdGhlIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckpT
Q2FsbCgpIG1hY3JvIHRvIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwKKyAgICAgICAgICBi
ZWNhdXNlIHdlIGFsc28gbmVlZCB0byBjYWxsIGl0IGFmdGVyIGEgY2FsbCB0byBhIG5hdGl2ZSAv
IGhvc3QgZnVuY3Rpb24uCisgICAgICAgIC0gUmVtb3ZlZCBsbGludF90aHJvd19mcm9tX25hdGl2
ZV9jYWxsIGJlY2F1c2UgaXQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcgdXNlZnVsLgorICAgICAg
ICAtIE1vdmVkIGNhbGwgdG8gZnVuY3Rpb25FcGlsb2d1ZSgpIGluIG5hdGl2ZUNhbGxUcmFtcG9s
aW5lIGJlZm9yZSB0aGUgZXhjZXB0aW9uCisgICAgICAgICAgY2hlY2sgYmVjYXVzZSB3ZSBzaG91
bGQgaGF2ZSByZXR1cm5lZCBmcm9tIHRoZSBuYXRpdmUgLyBob3N0IGZ1bmN0aW9uIGFscmVhZHku
CisKKyAgICAgICAgICBUaGUgSW50ZXJwcmV0ZXI6OnVud2luZCgpIGNvZGUgYWxzbyByZWxpZXMg
b24gdGhpcy4gVGhlIFZNIHdpbGwgdW53aW5kIGFuZCAicG9wIgorICAgICAgICAgIEpTIGZyYW1l
cywgYnV0IHdpbGwgc3RvcCBhdCBob3N0IGZyYW1lcy4gVGhlIGhvc3QgZnJhbWUgc2hvdWxkIHBv
cCBpdHNlbGYuIFRoZW4sCisgICAgICAgICAgd2UgY2FsbCBJbnRlcnByZXRlcjo6dW53aW5kKCkg
YWdhaW4gdG8gY29udGludWUgZm9yIGNhbGxlciBmcmFtZXMgZnVydGhlciB1cAorICAgICAgICAg
IHRoZSBzdGFjay4KKworICAgICAgICAtIFJlbW92ZWQgdGhlIGNoZWNrIGZvciB0aGUgc2VudGlu
ZWwgZnJhbWUgaW4gaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24gYmVjYXVzZQorICAgICAgICAgIHdl
J3JlIGd1YXJhbnRlZWQgdG8gYmUgYXQgdGhlIGZyYW1lIGFib3ZlIHRoZSBzZW50aW5lbCBmcmFt
ZS4KKwogMjAxMy0xMi0xMiAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDU3RhY2sgQnJhbmNoOiBVc2UgcHJvcGVyIHZhbHVlcyBmb3Igc3RhY2sgY2hlY2tz
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCShyZXZp
c2lvbiAxNjA1MjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3Jk
ZXIJKHdvcmtpbmcgY29weSkKQEAgLTQ5ODEsNyArNDk4MSw2IEBAIF9sbGludF9zbG93X3BhdGhf
aGFuZGxlX3dhdGNoZG9nX3RpbWVyCiBfbGxpbnRfc2xvd19wYXRoX2RlYnVnCiBfbGxpbnRfc2xv
d19wYXRoX3Byb2ZpbGVfd2lsbF9jYWxsCiBfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2Nh
bGwKLV9sbGludF90aHJvd19mcm9tX25hdGl2ZV9jYWxsCiBfbGxpbnRfYmVnaW4KIF9sbGludF9w
cm9ncmFtX3Byb2xvZ3VlCiBfbGxpbnRfZXZhbF9wcm9sb2d1ZQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxNjA1MjQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzA3LDEzICsxMzA3LDYgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xv
d19wYXRoX3Byb2ZpbGVfZAogICAgIExMSU5UX0VORCgpOwogfQogCi1MTElOVF9TTE9XX1BBVEhf
REVDTCh0aHJvd19mcm9tX25hdGl2ZV9jYWxsKQotewotICAgIExMSU5UX0JFR0lOKCk7Ci0gICAg
QVNTRVJUKHZtLmV4Y2VwdGlvbigpKTsKLSAgICBMTElOVF9FTkQoKTsKLX0KLQogTExJTlRfU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX2hhbmRsZV9leGNlcHRpb24pCiB7CiAgICAgTExJTlRfQkVH
SU5fTk9fU0VUX1BDKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRT
bG93UGF0aHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuaAkocmV2aXNpb24gMTYwNTI0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50U2xvd1BhdGhzLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNiBA
QCBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2hhCiBMTElOVF9TTE9XX1BB
VEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2RlYnVnKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwpOwogTExJTlRfU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9wcm9maWxlX2RpZF9jYWxsKTsKLUxMSU5UX1NMT1dfUEFUSF9ISURE
RU5fREVDTCh0aHJvd19mcm9tX25hdGl2ZV9jYWxsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfaGFuZGxlX2V4Y2VwdGlvbik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVO
X0RFQ0woc2xvd19wYXRoX3Jlc29sdmVfc2NvcGUpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9E
RUNMKHNsb3dfcGF0aF9nZXRfZnJvbV9zY29wZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkocmV2
aXNpb24gMTYwNTI0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTM0MywxMSArMzQzLDIzIEBAIG1h
Y3JvIG1ha2VIb3N0RnVuY3Rpb25DYWxsKGVudHJ5LCB0ZW1wKQogICAgIGNhbGwgdGVtcAogZW5k
CiAKLW1hY3JvIGRvSGFuZGxlVW5jYXVnaHRFeGNlcHRpb24oZXh0cmFTdGFja1NwYWNlKQogX2hh
bmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgotICAgIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1Nw
YWNlKQorICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKKyAgICBhbmRwIE1hcmtlZEJsb2Nr
TWFzaywgdDMKKyAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92
bVt0M10sIHQzCisgICAgbG9hZHAgVk06OmNhbGxGcmFtZUZvclRocm93W3QzXSwgY2ZyCisKKyAg
ICAjIFNvIGZhciwgd2UndmUgdW53b3VuZCB0aGUgc3RhY2sgdG8gdGhlIGZyYW1lIGp1c3QgYmVs
b3cgdGhlIHNlbnRpbmVsIGZyYW1lLgorICAgICMgV2UgbmVlZCB0byBwb3AgdG8gdGhlIHNlbnRp
bmVsIGZyYW1lIGFuZCBkbyB0aGUgbmVjZXNzYXJ5IGNsZWFuIHVwIGZvcgorICAgICMgcmV0dXJu
aW5nIHRvIHRoZSBjYWxsZXIgQyBmcmFtZS4KKyAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBj
ZnIKKworICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MyAjIFZNLnRvcENhbGxGcmFtZQorICAgIGxv
YWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDYKKyAgICBzdG9yZXAgdDYsIFt0M10KKworICAgIGNhbGxU
b0phdmFTY3JpcHRFcGlsb2d1ZSgpCiAgICAgcmV0Ci1lbmQKIAogbWFjcm8gZG9SZXR1cm5Gcm9t
SG9zdEZ1bmN0aW9uKGV4dHJhU3RhY2tTcGFjZSkKICAgICBmdW5jdGlvbkVwaWxvZ3VlKGV4dHJh
U3RhY2tTcGFjZSkKQEAgLTIxMjksMTIgKzIxNDEsMTMgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1w
b2xpbmUoZXhlY3V0YWJsZU9mZgogICAgIGVsc2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKLSAg
ICBiaW5lcSBWTTo6bV9leGNlcHRpb24gKyBUYWdPZmZzZXRbdDNdLCBFbXB0eVZhbHVlVGFnLCAu
ZXhjZXB0aW9uCisgICAgYmluZXEgVk06Om1fZXhjZXB0aW9uICsgVGFnT2Zmc2V0W3QzXSwgRW1w
dHlWYWx1ZVRhZywgLmhhbmRsZUV4Y2VwdGlvbgogICAgIHJldAotLmV4Y2VwdGlvbjoKKworLmhh
bmRsZUV4Y2VwdGlvbjoKICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDEpICMg
VGhpcyBpcyByZWFsbHkgb25seSBuZWVkZWQgb24gWDg2Ci0gICAgbG9hZGkgQXJndW1lbnRDb3Vu
dCArIFRhZ09mZnNldFtjZnJdLCBQQwotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdGhyb3dfZnJv
bV9uYXRpdmVfY2FsbCkKKyAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQorICAg
IHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQogICAgIGptcCBfbGxpbnRfdGhyb3dfZnJv
bV9zbG93X3BhdGhfdHJhbXBvbGluZQogZW5kCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAx
NjA1MjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMTQxLDcgKzE0MSw3IEBAIG1hY3JvIG1vdmVTdGFj
a1BvaW50ZXJGb3JDYWxsZnJhbWUoY29kZWIKICAgICBzdWJwIGNmciwgdDEsIHNwCiBlbmQKIAot
bWFjcm8gcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVySlNDYWxsKCkKK21hY3JvIHJlc3RvcmVTdGFj
a1BvaW50ZXJBZnRlckNhbGwoKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQogICAgIGxv
YWRpIENvZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFdLCB0MQogICAgIGxzaGlmdHAg
MywgdDEKQEAgLTI4MCwxMCArMjgwLDExIEBAIF9oYW5kbGVVbmNhdWdodEV4Y2VwdGlvbjoKICAg
ICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCiAg
ICAgbG9hZHAgVk06OmNhbGxGcmFtZUZvclRocm93W3QzXSwgY2ZyCiAKLSAgICBicGVxIENvZGVC
bG9ja1tjZnJdLCAxLCAuY2FsbGVlRnJhbWVQb3BwZWQKKyAgICAjIFNvIGZhciwgd2UndmUgdW53
b3VuZCB0aGUgc3RhY2sgdG8gdGhlIGZyYW1lIGp1c3QgYmVsb3cgdGhlIHNlbnRpbmVsIGZyYW1l
LgorICAgICMgV2UgbmVlZCB0byBwb3AgdG8gdGhlIHNlbnRpbmVsIGZyYW1lIGFuZCBkbyB0aGUg
bmVjZXNzYXJ5IGNsZWFuIHVwIGZvcgorICAgICMgcmV0dXJuaW5nIHRvIHRoZSBjYWxsZXIgQyBm
cmFtZS4KICAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBjZnIKIAotLmNhbGxlZUZyYW1lUG9w
cGVkOgogICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MyAjIFZNLnRvcENhbGxGcmFtZQogICAgIGxv
YWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDYKICAgICBzdG9yZXAgdDYsIFt0M10KQEAgLTE4NTIsNiAr
MTg1Myw4IEBAIF9sbGludF9vcF9jYXRjaDoKICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMK
ICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQz
CiAgICAgbG9hZHAgVk06OmNhbGxGcmFtZUZvclRocm93W3QzXSwgY2ZyCisgICAgcmVzdG9yZVN0
YWNrUG9pbnRlckFmdGVyQ2FsbCgpCisKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgUEIKICAg
ICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW1BCXSwgUEIKICAgICBsb2FkcCBWTTo6
dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93W3QzXSwgUEMKQEAgLTE5NTYsMTkgKzE5NTksMTQg
QEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZgogICAgICAgICBlcnJv
cgogICAgIGVuZAogCi0gICAgYnRxbnogVk06Om1fZXhjZXB0aW9uW3QzXSwgLmV4Y2VwdGlvbgog
ICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQorCisgICAgYnRxbnogVk06Om1fZXhjZXB0aW9uW3QzXSwg
LmhhbmRsZUV4Y2VwdGlvbgogICAgIHJldAotLmV4Y2VwdGlvbjoKLSAgICBpZiBYODZfNjQKLSAg
ICAgICAgcG9wIHQxCi0gICAgZW5kCi0gICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNl
dFtjZnJdLCBQQwotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgotICAgIGxvYWRwIENvZGVC
bG9jazo6bV92bVtQQl0sIHQwCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1tQ
Ql0sIFBCCi0gICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0MF0KLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2NhbGwpCisKKy5oYW5kbGVFeGNlcHRpb246
CisgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KKyAgICByZXN0b3JlU3RhY2tQ
b2ludGVyQWZ0ZXJDYWxsKCkKICAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3Ry
YW1wb2xpbmUKIGVuZAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAxNjA1MjQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29w
eSkKQEAgLTI3Niw3ICsyNzYsNyBAQCBtYWNybyBjYWxsVGFyZ2V0RnVuY3Rpb24oY2FsbExpbmtJ
bmZvLCBjCiAgICAgZWxzZQogICAgICAgICBtb3ZlIGNhbGxlZUZyYW1lUHRyLCBzcAogICAgICAg
ICBjYWxsIExMSW50Q2FsbExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdldFtjYWxsTGlua0luZm9d
Ci0gICAgICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckpTQ2FsbCgpCisgICAgICAgIHJlc3Rv
cmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQogICAgICAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCiAg
ICAgZW5kCiBlbmQKQEAgLTI5MCw3ICsyOTAsNyBAQCBtYWNybyBzbG93UGF0aEZvckNhbGwoc2xv
d1BhdGgpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgYWRkcCBDYWxsZXJGcmFt
ZUFuZFBDU2l6ZSwgdDEsIHNwCiAgICAgICAgICAgICAgICAgY2FsbCBjYWxsZWUKLSAgICAgICAg
ICAgICAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJKU0NhbGwoKQorICAgICAgICAgICAgICAg
IHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQogICAgICAgICAgICAgICAgIGRpc3BhdGNo
QWZ0ZXJDYWxsKCkKICAgICAgICAgICAgIGVuZAogICAgICAgICBlbmQpCg==
</data>
<flag name="review"
          id="242776"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>