<?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>52241</bug_id>
          
          <creation_ts>2011-01-11 12:40:57 -0800</creation_ts>
          <short_desc>REGRESSION(r69831): focus() in onkeypress discards input (affects chaseonline.chase.com)</short_desc>
          <delta_ts>2011-01-12 21:17: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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://chaseonline.chase.com/public/enroll/IdentifyUser.aspx?LOB=RBGLogon</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>jschuh</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>332567</commentid>
    <comment_count>0</comment_count>
      <attachid>78581</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-01-11 12:40:57 -0800</bug_when>
    <thetext>Created attachment 78581
Testcase

Changing focus during the onkeypress handler causes the pressed key to be dropped (see attached testcase). This makes it impossible to enter a social security number on the Chase bank website.

In debug builds, I&apos;m getting:
ASSERTION FAILED: !ec
(/Volumes/work/WebKit/Source/WebCore/dom/Range.cpp:86 WebCore::Range::Range(WTF::PassRefPtr&lt;WebCore::Document&gt;, WTF::PassRefPtr&lt;WebCore::Node&gt;, int, WTF::PassRefPtr&lt;WebCore::Node&gt;, int))

Copying a few people who have modified Range.cpp recently just in case they have a better idea about this.

Filed in chromium as http://crbug.com/69126</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332880</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-11 20:07:56 -0800</bug_when>
    <thetext>This is a regression from Safari 5. WebKit2 also fails, but with a different assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333246</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-12 12:56:27 -0800</bug_when>
    <thetext>Works:
r68833
r69429
r69026
r69221
r69647
r69728

Does not:
r69836
r70098</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333248</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-12 13:00:39 -0800</bug_when>
    <thetext>Between these two revisions, WebCore/editing had the following changesets:
http://trac.webkit.org/changeset/69831
http://trac.webkit.org/changeset/69836</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333260</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-12 13:51:35 -0800</bug_when>
    <thetext>I confirmed that the bug reproduces on r69831 and doesn&apos;t reproduce on r69830.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333268</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-01-12 13:56:12 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; I confirmed that the bug reproduces on r69831 and doesn&apos;t reproduce on r69830.

+Justin

It is also worth noting that patch is merged onto 517 and 552.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333270</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-12 13:58:17 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; I confirmed that the bug reproduces on r69831 and doesn&apos;t reproduce on r69830.
&gt; 
&gt; +Justin
&gt; 
&gt; It is also worth noting that patch is merged onto 517 and 552.

Actually, the original patch was written by me.  Justin just committed it.  I should be able to post a patch tonight or within the next couple of days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333425</commentid>
    <comment_count>7</comment_count>
      <attachid>78758</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-12 16:55:20 -0800</bug_when>
    <thetext>Created attachment 78758
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333428</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-12 16:57:45 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=78758) [details]
&gt; fixes the bug

It turned out that the root cause of this bug was present before r69831 but VisiblePosition was more &quot;forgiving&quot; for historical reasons (e.g. legacy editing position).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333432</commentid>
    <comment_count>9</comment_count>
      <attachid>78758</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-12 17:02:47 -0800</bug_when>
    <thetext>Comment on attachment 78758
fixes the bug

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

&gt; Source/WebCore/rendering/RenderTextControl.cpp:311
&gt; +        if (offset &lt;= start &amp;&amp; start &lt;= offset + length) {
&gt; +            if (node-&gt;isTextNode()) {
&gt; +            } else {
&gt; +            }
&gt; +        if (offset &lt;= end &amp;&amp; end &lt;= offset + length) {
&gt; +                end -= offset;
&gt; +                endNode = node-&gt;parentNode();
&gt; +            }
&gt; +            break;
&gt; +        }

These two blocks are basically identical.  Seems we should use an inline function here instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333452</commentid>
    <comment_count>10</comment_count>
      <attachid>78764</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-12 17:30:19 -0800</bug_when>
    <thetext>Created attachment 78764
fixed per Eric&apos;s comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333460</commentid>
    <comment_count>11</comment_count>
      <attachid>78764</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-12 17:40:02 -0800</bug_when>
    <thetext>Comment on attachment 78764
fixed per Eric&apos;s comment

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

Seems sane.

&gt; LayoutTests/fast/forms/focus-change-on-keypress.html:36
&gt; +    if (shouldChangeSelection)
&gt; +        expected = name == &apos;textarea&apos; ? &apos;ac\n&apos; : &apos;acb&apos;;
&gt; +    else
&gt; +        expected = name == &apos;textarea&apos; ? &apos;a\nc&apos; : &apos;abc&apos;;

This seems slightly odd way to write this if, but oK. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333463</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-12 17:41:42 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 78764 [details])
&gt; &gt; LayoutTests/fast/forms/focus-change-on-keypress.html:36
&gt; &gt; +    if (shouldChangeSelection)
&gt; &gt; +        expected = name == &apos;textarea&apos; ? &apos;ac\n&apos; : &apos;acb&apos;;
&gt; &gt; +    else
&gt; &gt; +        expected = name == &apos;textarea&apos; ? &apos;a\nc&apos; : &apos;abc&apos;;
&gt; 
&gt; This seems slightly odd way to write this if, but oK. :)

Maybe I should do:

if (name == &apos;textarea&apos;)
    expected = shouldChangeSelection ? &apos;ac\n&apos; : &apos;a\nc&apos;
else
    expected = shouldChangeSelection ? &apos;acb&apos; : &apos;abc&apos;

instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333470</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-12 18:13:32 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (From update of attachment 78764 [details] [details])
&gt; &gt; &gt; LayoutTests/fast/forms/focus-change-on-keypress.html:36
&gt; &gt; &gt; +    if (shouldChangeSelection)
&gt; &gt; &gt; +        expected = name == &apos;textarea&apos; ? &apos;ac\n&apos; : &apos;acb&apos;;
&gt; &gt; &gt; +    else
&gt; &gt; &gt; +        expected = name == &apos;textarea&apos; ? &apos;a\nc&apos; : &apos;abc&apos;;
&gt; &gt; 
&gt; &gt; This seems slightly odd way to write this if, but oK. :)
&gt; 
&gt; Maybe I should do:
&gt; 
&gt; if (name == &apos;textarea&apos;)
&gt;     expected = shouldChangeSelection ? &apos;ac\n&apos; : &apos;a\nc&apos;
&gt; else
&gt;     expected = shouldChangeSelection ? &apos;acb&apos; : &apos;abc&apos;
&gt; 
&gt; instead?

Sorry I read those both as &apos;abc&apos;, now I understand why the complexity is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333473</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-12 18:20:30 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; Maybe I should do:
&gt; &gt; 
&gt; &gt; if (name == &apos;textarea&apos;)
&gt; &gt;     expected = shouldChangeSelection ? &apos;ac\n&apos; : &apos;a\nc&apos;
&gt; &gt; else
&gt; &gt;     expected = shouldChangeSelection ? &apos;acb&apos; : &apos;abc&apos;
&gt; &gt; 
&gt; &gt; instead?
&gt; 
&gt; Sorry I read those both as &apos;abc&apos;, now I understand why the complexity is needed.

No problem.  I&apos;ll use new one nonetheless because it reads better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333528</commentid>
    <comment_count>15</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-01-12 21:10:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/8858076&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333529</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-12 21:17:14 -0800</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/75677.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>78581</attachid>
            <date>2011-01-11 12:40:57 -0800</date>
            <delta_ts>2011-01-11 12:40:57 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>keypress.html</filename>
            <type>text/html</type>
            <size>454</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">VHlwZSAzIGNoYXJhY3RlcnMgaW50byB0aGUgZmlyc3QgdGV4dCBib3guCjxpbnB1dCBpZD0iaW5w
MSIgdHlwZT0idGV4dCIgb25rZXlwcmVzcz0iaGFuZGxlS2V5cHJlc3MoKSI+CjxpbnB1dCBpZD0i
aW5wMiIgdHlwZT0idGV4dCIgb25rZXlwcmVzcz0iIj4KPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CjxzY3JpcHQ+CmZ1bmN0aW9uIGxvZyhtc2cpIHsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyI8YnI+IjsKfQoKZnVuY3Rpb24gaGFuZGxlS2V5
cHJlc3MoKSB7CiAgbG9nKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnAxIikudmFsdWUpOwog
IGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnAxIikudmFsdWUubGVuZ3RoID09IDIpCiAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wMiIpLmZvY3VzKCk7Cn0KPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78758</attachid>
            <date>2011-01-12 16:55:20 -0800</date>
            <delta_ts>2011-01-12 17:30:15 -0800</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-52241-20110112165519.patch</filename>
            <type>text/plain</type>
            <size>6801</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NjdlYmJlMjQ1ZjRmOTcyNzBjYTViYzgzZmY1ZGFmMDNiYWQxNTUyLi42OWQ0ZDY2
ODFlMTc2MWYxNzc0YjMzMWNmM2VmMDlhYjYyNmEzYTFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDEtMTIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTihyNjk4MzEp
OiBmb2N1cygpIGluIG9ua2V5cHJlc3MgZGlzY2FyZHMgaW5wdXQgKGFmZmVjdHMgY2hhc2Vvbmxp
bmUuY2hhc2UuY29tKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTIyNDEKKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8gZW5zdXJlIFdlYktpdCBpbnNl
cnRzIHRoZSBjaGFyYWN0ZXIgdHlwZWQgYnkgYSB1c2VyIHdoZW4gZm9jdXMncyBub2RlCisgICAg
ICAgIGlzIGNoYW5nZWQgYnkgYSBwcmVzc2tleSBldmVudCBoYW5kbGVyLgorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9mb2N1cy1jaGFuZ2Utb24ta2V5cHJlc3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2ZvY3VzLWNoYW5nZS1vbi1rZXlwcmVzcy5odG1sOiBBZGRl
ZC4KKwogMjAxMS0wMS0xMCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3NTM5OCwgcjc1NDA3LApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb2N1cy1jaGFuZ2Utb24ta2V5cHJlc3MtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb2N1cy1jaGFuZ2Utb24ta2V5cHJlc3MtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmNTQxMGNlZjM3YTZkYjQxNThkNTk2MDlkNWY3NWRjZmJl
YjdiNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZvY3VzLWNo
YW5nZS1vbi1rZXlwcmVzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGhpcyB0ZXN0
cyBjaGFuZ2luZyB0aGUgZm9jdXMgb24ga2V5cHJlc3MgZXZlbnQuIFRoZSBjaGFyYWN0ZXIgdHlw
ZWQgYnkgdXNlciBzaG91bGQgYmUgaW5zZXJ0ZWQgaW50byBpbnB1dC4gVGhpcyB0ZXN0IG9ubHkg
cnVucyBpbiBEUlQuCisKK2lucHV0IHdpdGhvdXQgc2VsZWN0aW9uY2hhbmdlCitQQVNTCisKK2lu
cHV0IHdpdGggc2VsZWN0aW9uY2hhbmdlCitQQVNTCisKK3RleHRhcmVhIHdpdGhvdXQgc2VsZWN0
aW9uY2hhbmdlCitQQVNTCisKK3RleHRhcmVhIHdpdGggc2VsZWN0aW9uY2hhbmdlCitQQVNTCisK
K0RPTkUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb2N1cy1jaGFuZ2Ut
b24ta2V5cHJlc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9jdXMtY2hhbmdlLW9u
LWtleXByZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUxMWIyNGZiYjJhMTkxMzc4N2VjOWUwYWQyZGNi
NjhhODIxMTNlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9j
dXMtY2hhbmdlLW9uLWtleXByZXNzLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBjaGFuZ2luZyB0aGUgZm9jdXMgb24g
a2V5cHJlc3MgZXZlbnQuIFRoZSBjaGFyYWN0ZXIgdHlwZWQgYnkgdXNlciBzaG91bGQgYmUgaW5z
ZXJ0ZWQgaW50byBpbnB1dC4gVGhpcyB0ZXN0IG9ubHkgcnVucyBpbiBEUlQuPC9wPgorPHByZT48
c2NyaXB0PgorCitmdW5jdGlvbiBydW5UZXN0KG5hbWUsIHNob3VsZENoYW5nZVNlbGVjdGlvbikg
eworICAgIHZhciBkdW1teSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkdW1teSk7CisKKyAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChlbGVtZW50KTsKKyAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywgZnVu
Y3Rpb24oKSB7CisgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLmxlbmd0aCA+PSAyKQorICAgICAg
ICAgICAgZHVtbXkuZm9jdXMoKTsKKyAgICB9KQorCisgICAgZG9jdW1lbnQud3JpdGVsbihuYW1l
ICsgKHNob3VsZENoYW5nZVNlbGVjdGlvbiA/ICcgd2l0aCBzZWxlY3Rpb25jaGFuZ2UnIDogJyB3
aXRob3V0IHNlbGVjdGlvbmNoYW5nZScpKTsKKworICAgIGVsZW1lbnQuZm9jdXMoKTsKKyAgICBl
dmVudFNlbmRlci5rZXlEb3duKCdhJyk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAw
KTsKKyAgICBldmVudFNlbmRlci5rZXlEb3duKG5hbWUgPT0gJ3RleHRhcmVhJyA/ICdcbicgOiAn
YicpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMCk7CisgICAgaWYgKHNob3VsZENo
YW5nZVNlbGVjdGlvbikgeworICAgICAgICBlbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gMTsKKyAg
ICAgICAgZWxlbWVudC5zZWxlY3Rpb25FbmQgPSAxOworICAgIH0KKyAgICBldmVudFNlbmRlci5r
ZXlEb3duKCdjJyk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKKworICAgIHZh
ciBleHBlY3RlZCA9IG51bGw7CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbikKKyAgICAg
ICAgZXhwZWN0ZWQgPSBuYW1lID09ICd0ZXh0YXJlYScgPyAnYWNcbicgOiAnYWNiJzsKKyAgICBl
bHNlCisgICAgICAgIGV4cGVjdGVkID0gbmFtZSA9PSAndGV4dGFyZWEnID8gJ2FcbmMnIDogJ2Fi
Yyc7CisKKyAgICBpZiAoZWxlbWVudC52YWx1ZSA9PSBleHBlY3RlZCkKKyAgICAgICAgZG9jdW1l
bnQud3JpdGVsbignUEFTUycpOworICAgIGVsc2UKKyAgICAgICAgZG9jdW1lbnQud3JpdGVsbign
RkFJTDogdmFsdWUgd2FzICInICsgZWxlbWVudC52YWx1ZSArICciIGJ1dCBleHBlY3RlZCAiJyAr
IGV4cGVjdGVkICsgJyInKTsKKyAgICBkb2N1bWVudC53cml0ZWxuKCk7Cit9CisKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgcnVuVGVzdCgnaW5wdXQnLCBm
YWxzZSk7CisgICAgcnVuVGVzdCgnaW5wdXQnLCB0cnVlKTsKKyAgICBydW5UZXN0KCd0ZXh0YXJl
YScsIGZhbHNlKTsKKyAgICBydW5UZXN0KCd0ZXh0YXJlYScsIHRydWUpOworCisgICAgZG9jdW1l
bnQud3JpdGVsbignRE9ORScpOworfQorCis8L3NjcmlwdD48L3ByZT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAxNDg5Y2U3Njg5ZjFkY2RiOTkyYjRlNjY5ODY5OTA0NGZhOTU0NmUx
Li42YWVmZWY0NTE1YjBiMGI4ZTkyZjRjZmI0NjIyZGNiMjUxYTNlMjY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTEtMDEtMTIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUkVH
UkVTU0lPTihyNjk4MzEpOiBmb2N1cygpIGluIG9ua2V5cHJlc3MgZGlzY2FyZHMgaW5wdXQgKGFm
ZmVjdHMgY2hhc2VvbmxpbmUuY2hhc2UuY29tKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIyNDEKKworICAgICAgICBUaGUgYnVnIHdhcyBjYXVzZWQg
YnkgUmVuZGVyVGV4dENvbnRyb2w6OnNlbGVjdGlvbidzIGNyZWF0aW5nIGEgUmFuZ2Ugd2l0aCBt
X2luc2VydFRleHQKKyAgICAgICAgd2hpY2ggaXMgYSBzaGFkb3cgRE9NIGRpdiBhcyBib3RoIHN0
YXJ0IGFuZCBlbmQgY29udGFpbmVycy4gRml4ZWQgdGhlIGJ1ZyBieSB0cmF2ZXJzaW5nCisgICAg
ICAgIHRocm91Z2ggdGhlIGRlc2NlbmRlbnRzIG9mIG1faW5uZXJUZXh0IGFuZCB1c2luZyB0aGUg
cmlnaHQgc3RhcnQgYW5kIGVuZCBjb250YWluZXJzIHRvCisgICAgICAgIGNyZWF0ZSBhIFJhbmdl
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvZm9jdXMtY2hhbmdlLW9uLWtleXByZXNzLmh0
bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6c2VsZWN0aW9uKTogU2VlIGFib3ZlLgorCiAy
MDExLTAxLTEwICBMZW9uaWQgRWJyaWwgIDxsZW9uaWQuZWJyaWxAbm9raWEuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKaW5kZXggMDE5MmVlNDk0MTdi
ZDZiZTE2ZDk1YWNlOTA1MDVkZmYzZGZmZmUwNi4uOTUwMTM2MGI2ZDg1ZGI2YmJmNTI1ZGY5Zjc1
MzQ0ZjY4Mjc2ZDEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIK
KyNpbmNsdWRlICJQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCkBAIC0yNzUsMTAg
KzI3Niw0NiBAQCBib29sIFJlbmRlclRleHRDb250cm9sOjppc1NlbGVjdGFibGVFbGVtZW50KE5v
ZGUqIG5vZGUpIGNvbnN0CiAKIFBhc3NSZWZQdHI8UmFuZ2U+IFJlbmRlclRleHRDb250cm9sOjpz
ZWxlY3Rpb24oaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAogeworICAgIEFTU0VSVChzdGFydCA8
PSBlbmQpOwogICAgIGlmICghbV9pbm5lclRleHQpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
cmV0dXJuIFJhbmdlOjpjcmVhdGUoZG9jdW1lbnQoKSwgbV9pbm5lclRleHQsIHN0YXJ0LCBtX2lu
bmVyVGV4dCwgZW5kKTsKKyAgICBpZiAoIW1faW5uZXJUZXh0LT5maXJzdENoaWxkKCkpCisgICAg
ICAgIHJldHVybiBSYW5nZTo6Y3JlYXRlKGRvY3VtZW50KCksIG1faW5uZXJUZXh0LCAwLCBtX2lu
bmVyVGV4dCwgMCk7CisKKyAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICBOb2RlKiBzdGFydE5vZGUg
PSAwOworICAgIE5vZGUqIGVuZE5vZGUgPSAwOworICAgIGZvciAoTm9kZSogbm9kZSA9IG1faW5u
ZXJUZXh0LT5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2Rl
KG1faW5uZXJUZXh0LmdldCgpKSkgeworICAgICAgICBBU1NFUlQoIW5vZGUtPmZpcnN0Q2hpbGQo
KSk7CisgICAgICAgIEFTU0VSVChub2RlLT5pc1RleHROb2RlKCkgfHwgbm9kZS0+aGFzVGFnTmFt
ZShiclRhZykpOworICAgICAgICBpbnQgbGVuZ3RoID0gbm9kZS0+aXNUZXh0Tm9kZSgpID8gbGFz
dE9mZnNldEluTm9kZShub2RlKSA6IDE7CisgICAgICAgIGlmIChvZmZzZXQgPD0gc3RhcnQgJiYg
c3RhcnQgPD0gb2Zmc2V0ICsgbGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAobm9kZS0+aXNUZXh0
Tm9kZSgpKSB7CisgICAgICAgICAgICAgICAgc3RhcnROb2RlID0gbm9kZTsKKyAgICAgICAgICAg
ICAgICBzdGFydCAtPSBvZmZzZXQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIHN0YXJ0Tm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKKyAgICAgICAgICAgICAgICBzdGFy
dCA9IG5vZGUtPm5vZGVJbmRleCgpICsgc3RhcnQgLSBvZmZzZXQ7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKG9mZnNldCA8PSBlbmQgJiYgZW5kIDw9IG9mZnNldCArIGxl
bmd0aCkgeworICAgICAgICAgICAgaWYgKG5vZGUtPmlzVGV4dE5vZGUoKSkgeworICAgICAgICAg
ICAgICAgIGVuZE5vZGUgPSBub2RlOworICAgICAgICAgICAgICAgIGVuZCAtPSBvZmZzZXQ7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVuZE5vZGUgPSBub2RlLT5wYXJl
bnROb2RlKCk7CisgICAgICAgICAgICAgICAgZW5kID0gbm9kZS0+bm9kZUluZGV4KCkgKyBlbmQg
LSBvZmZzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBvZmZzZXQgKz0gbGVuZ3RoOworICAgIH0KKyAgICAKKyAgICBpZiAoIXN0YXJ0Tm9k
ZSB8fCAhZW5kTm9kZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gUmFuZ2U6OmNy
ZWF0ZShkb2N1bWVudCgpLCBzdGFydE5vZGUsIHN0YXJ0LCBlbmROb2RlLCBlbmQpOwogfQogCiBW
aXNpYmxlUG9zaXRpb24gUmVuZGVyVGV4dENvbnRyb2w6OnZpc2libGVQb3NpdGlvbkZvckluZGV4
KGludCBpbmRleCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78764</attachid>
            <date>2011-01-12 17:30:19 -0800</date>
            <delta_ts>2011-01-12 17:40:02 -0800</delta_ts>
            <desc>fixed per Eric&apos;s comment</desc>
            <filename>bug-52241-20110112173018.patch</filename>
            <type>text/plain</type>
            <size>7008</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NjdlYmJlMjQ1ZjRmOTcyNzBjYTViYzgzZmY1ZGFmMDNiYWQxNTUyLi42OWQ0ZDY2
ODFlMTc2MWYxNzc0YjMzMWNmM2VmMDlhYjYyNmEzYTFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDEtMTIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTihyNjk4MzEp
OiBmb2N1cygpIGluIG9ua2V5cHJlc3MgZGlzY2FyZHMgaW5wdXQgKGFmZmVjdHMgY2hhc2Vvbmxp
bmUuY2hhc2UuY29tKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTIyNDEKKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8gZW5zdXJlIFdlYktpdCBpbnNl
cnRzIHRoZSBjaGFyYWN0ZXIgdHlwZWQgYnkgYSB1c2VyIHdoZW4gZm9jdXMncyBub2RlCisgICAg
ICAgIGlzIGNoYW5nZWQgYnkgYSBwcmVzc2tleSBldmVudCBoYW5kbGVyLgorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9mb2N1cy1jaGFuZ2Utb24ta2V5cHJlc3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2ZvY3VzLWNoYW5nZS1vbi1rZXlwcmVzcy5odG1sOiBBZGRl
ZC4KKwogMjAxMS0wMS0xMCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3NTM5OCwgcjc1NDA3LApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb2N1cy1jaGFuZ2Utb24ta2V5cHJlc3MtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb2N1cy1jaGFuZ2Utb24ta2V5cHJlc3MtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmNTQxMGNlZjM3YTZkYjQxNThkNTk2MDlkNWY3NWRjZmJl
YjdiNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZvY3VzLWNo
YW5nZS1vbi1rZXlwcmVzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGhpcyB0ZXN0
cyBjaGFuZ2luZyB0aGUgZm9jdXMgb24ga2V5cHJlc3MgZXZlbnQuIFRoZSBjaGFyYWN0ZXIgdHlw
ZWQgYnkgdXNlciBzaG91bGQgYmUgaW5zZXJ0ZWQgaW50byBpbnB1dC4gVGhpcyB0ZXN0IG9ubHkg
cnVucyBpbiBEUlQuCisKK2lucHV0IHdpdGhvdXQgc2VsZWN0aW9uY2hhbmdlCitQQVNTCisKK2lu
cHV0IHdpdGggc2VsZWN0aW9uY2hhbmdlCitQQVNTCisKK3RleHRhcmVhIHdpdGhvdXQgc2VsZWN0
aW9uY2hhbmdlCitQQVNTCisKK3RleHRhcmVhIHdpdGggc2VsZWN0aW9uY2hhbmdlCitQQVNTCisK
K0RPTkUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb2N1cy1jaGFuZ2Ut
b24ta2V5cHJlc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9jdXMtY2hhbmdlLW9u
LWtleXByZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUxMWIyNGZiYjJhMTkxMzc4N2VjOWUwYWQyZGNi
NjhhODIxMTNlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9j
dXMtY2hhbmdlLW9uLWtleXByZXNzLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBjaGFuZ2luZyB0aGUgZm9jdXMgb24g
a2V5cHJlc3MgZXZlbnQuIFRoZSBjaGFyYWN0ZXIgdHlwZWQgYnkgdXNlciBzaG91bGQgYmUgaW5z
ZXJ0ZWQgaW50byBpbnB1dC4gVGhpcyB0ZXN0IG9ubHkgcnVucyBpbiBEUlQuPC9wPgorPHByZT48
c2NyaXB0PgorCitmdW5jdGlvbiBydW5UZXN0KG5hbWUsIHNob3VsZENoYW5nZVNlbGVjdGlvbikg
eworICAgIHZhciBkdW1teSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkdW1teSk7CisKKyAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChlbGVtZW50KTsKKyAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywgZnVu
Y3Rpb24oKSB7CisgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLmxlbmd0aCA+PSAyKQorICAgICAg
ICAgICAgZHVtbXkuZm9jdXMoKTsKKyAgICB9KQorCisgICAgZG9jdW1lbnQud3JpdGVsbihuYW1l
ICsgKHNob3VsZENoYW5nZVNlbGVjdGlvbiA/ICcgd2l0aCBzZWxlY3Rpb25jaGFuZ2UnIDogJyB3
aXRob3V0IHNlbGVjdGlvbmNoYW5nZScpKTsKKworICAgIGVsZW1lbnQuZm9jdXMoKTsKKyAgICBl
dmVudFNlbmRlci5rZXlEb3duKCdhJyk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAw
KTsKKyAgICBldmVudFNlbmRlci5rZXlEb3duKG5hbWUgPT0gJ3RleHRhcmVhJyA/ICdcbicgOiAn
YicpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMCk7CisgICAgaWYgKHNob3VsZENo
YW5nZVNlbGVjdGlvbikgeworICAgICAgICBlbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gMTsKKyAg
ICAgICAgZWxlbWVudC5zZWxlY3Rpb25FbmQgPSAxOworICAgIH0KKyAgICBldmVudFNlbmRlci5r
ZXlEb3duKCdjJyk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKKworICAgIHZh
ciBleHBlY3RlZCA9IG51bGw7CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbikKKyAgICAg
ICAgZXhwZWN0ZWQgPSBuYW1lID09ICd0ZXh0YXJlYScgPyAnYWNcbicgOiAnYWNiJzsKKyAgICBl
bHNlCisgICAgICAgIGV4cGVjdGVkID0gbmFtZSA9PSAndGV4dGFyZWEnID8gJ2FcbmMnIDogJ2Fi
Yyc7CisKKyAgICBpZiAoZWxlbWVudC52YWx1ZSA9PSBleHBlY3RlZCkKKyAgICAgICAgZG9jdW1l
bnQud3JpdGVsbignUEFTUycpOworICAgIGVsc2UKKyAgICAgICAgZG9jdW1lbnQud3JpdGVsbign
RkFJTDogdmFsdWUgd2FzICInICsgZWxlbWVudC52YWx1ZSArICciIGJ1dCBleHBlY3RlZCAiJyAr
IGV4cGVjdGVkICsgJyInKTsKKyAgICBkb2N1bWVudC53cml0ZWxuKCk7Cit9CisKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgcnVuVGVzdCgnaW5wdXQnLCBm
YWxzZSk7CisgICAgcnVuVGVzdCgnaW5wdXQnLCB0cnVlKTsKKyAgICBydW5UZXN0KCd0ZXh0YXJl
YScsIGZhbHNlKTsKKyAgICBydW5UZXN0KCd0ZXh0YXJlYScsIHRydWUpOworCisgICAgZG9jdW1l
bnQud3JpdGVsbignRE9ORScpOworfQorCis8L3NjcmlwdD48L3ByZT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAxNDg5Y2U3Njg5ZjFkY2RiOTkyYjRlNjY5ODY5OTA0NGZhOTU0NmUx
Li4yNmIzNzRiOTkyOWYwMDU2ZTA1Y2Y1MmMwOWYxZGJlMjhkOTk3ZDUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTEtMDEtMTIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUkVH
UkVTU0lPTihyNjk4MzEpOiBmb2N1cygpIGluIG9ua2V5cHJlc3MgZGlzY2FyZHMgaW5wdXQgKGFm
ZmVjdHMgY2hhc2VvbmxpbmUuY2hhc2UuY29tKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIyNDEKKworICAgICAgICBUaGUgYnVnIHdhcyBjYXVzZWQg
YnkgUmVuZGVyVGV4dENvbnRyb2w6OnNlbGVjdGlvbidzIGNyZWF0aW5nIGEgUmFuZ2Ugd2l0aCBt
X2luc2VydFRleHQKKyAgICAgICAgd2hpY2ggaXMgYSBzaGFkb3cgRE9NIGRpdiBhcyBib3RoIHN0
YXJ0IGFuZCBlbmQgY29udGFpbmVycy4gRml4ZWQgdGhlIGJ1ZyBieSB0cmF2ZXJzaW5nCisgICAg
ICAgIHRocm91Z2ggdGhlIGRlc2NlbmRlbnRzIG9mIG1faW5uZXJUZXh0IGFuZCB1c2luZyB0aGUg
cmlnaHQgc3RhcnQgYW5kIGVuZCBjb250YWluZXJzIHRvCisgICAgICAgIGNyZWF0ZSBhIFJhbmdl
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvZm9jdXMtY2hhbmdlLW9uLWtleXByZXNzLmh0
bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzZXRDb250YWluZXJBbmRPZmZzZXRGb3JSYW5nZSk6IEFkZGVkOyBhIGhlbHBl
ciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpzZWxlY3Rp
b24pOiBTZWUgYWJvdmUuCisKIDIwMTEtMDEtMTAgIExlb25pZCBFYnJpbCAgPGxlb25pZC5lYnJp
bEBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3Rp
YW5zZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNw
cAppbmRleCAwMTkyZWU0OTQxN2JkNmJlMTZkOTVhY2U5MDUwNWRmZjNkZmZmZTA2Li44ODc5YWQy
YzdjOWJjMzEwY2JhYmQ0MDQ0ZTZjNWJmOTBmYTgzNTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFy
VGhlbWUuaCIKQEAgLTI3MywxMiArMjc0LDQ5IEBAIGJvb2wgUmVuZGVyVGV4dENvbnRyb2w6Omlz
U2VsZWN0YWJsZUVsZW1lbnQoTm9kZSogbm9kZSkgY29uc3QKICAgICAgICAgfHwgKHNoYWRvd0Fu
Y2VzdG9yLT5oYXNUYWdOYW1lKGlucHV0VGFnKSAmJiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Kj4oc2hhZG93QW5jZXN0b3IpLT5pc1RleHRGaWVsZCgpKSk7CiB9CiAKK3N0YXRpYyBpbmxp
bmUgdm9pZCBzZXRDb250YWluZXJBbmRPZmZzZXRGb3JSYW5nZShOb2RlKiBub2RlLCBpbnQgb2Zm
c2V0LCBOb2RlKiYgY29udGFpbmVyTm9kZSwgaW50JiBvZmZzZXRJbkNvbnRhaW5lcikKK3sKKyAg
ICBpZiAobm9kZS0+aXNUZXh0Tm9kZSgpKSB7CisgICAgICAgIGNvbnRhaW5lck5vZGUgPSBub2Rl
OworICAgICAgICBvZmZzZXRJbkNvbnRhaW5lciA9IG9mZnNldDsKKyAgICB9IGVsc2UgeworICAg
ICAgICBjb250YWluZXJOb2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOworICAgICAgICBvZmZzZXRJ
bkNvbnRhaW5lciA9IG5vZGUtPm5vZGVJbmRleCgpICsgb2Zmc2V0OworICAgIH0KK30KKwogUGFz
c1JlZlB0cjxSYW5nZT4gUmVuZGVyVGV4dENvbnRyb2w6OnNlbGVjdGlvbihpbnQgc3RhcnQsIGlu
dCBlbmQpIGNvbnN0CiB7CisgICAgQVNTRVJUKHN0YXJ0IDw9IGVuZCk7CiAgICAgaWYgKCFtX2lu
bmVyVGV4dCkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gUmFuZ2U6OmNyZWF0ZShk
b2N1bWVudCgpLCBtX2lubmVyVGV4dCwgc3RhcnQsIG1faW5uZXJUZXh0LCBlbmQpOworICAgIGlm
ICghbV9pbm5lclRleHQtPmZpcnN0Q2hpbGQoKSkKKyAgICAgICAgcmV0dXJuIFJhbmdlOjpjcmVh
dGUoZG9jdW1lbnQoKSwgbV9pbm5lclRleHQsIDAsIG1faW5uZXJUZXh0LCAwKTsKKworICAgIGlu
dCBvZmZzZXQgPSAwOworICAgIE5vZGUqIHN0YXJ0Tm9kZSA9IDA7CisgICAgTm9kZSogZW5kTm9k
ZSA9IDA7CisgICAgZm9yIChOb2RlKiBub2RlID0gbV9pbm5lclRleHQtPmZpcnN0Q2hpbGQoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUobV9pbm5lclRleHQuZ2V0KCkpKSB7
CisgICAgICAgIEFTU0VSVCghbm9kZS0+Zmlyc3RDaGlsZCgpKTsKKyAgICAgICAgQVNTRVJUKG5v
ZGUtPmlzVGV4dE5vZGUoKSB8fCBub2RlLT5oYXNUYWdOYW1lKGJyVGFnKSk7CisgICAgICAgIGlu
dCBsZW5ndGggPSBub2RlLT5pc1RleHROb2RlKCkgPyBsYXN0T2Zmc2V0SW5Ob2RlKG5vZGUpIDog
MTsKKyAgICAKKyAgICAgICAgaWYgKG9mZnNldCA8PSBzdGFydCAmJiBzdGFydCA8PSBvZmZzZXQg
KyBsZW5ndGgpCisgICAgICAgICAgICBzZXRDb250YWluZXJBbmRPZmZzZXRGb3JSYW5nZShub2Rl
LCBzdGFydCAtIG9mZnNldCwgc3RhcnROb2RlLCBzdGFydCk7CisKKyAgICAgICAgaWYgKG9mZnNl
dCA8PSBlbmQgJiYgZW5kIDw9IG9mZnNldCArIGxlbmd0aCkgeworICAgICAgICAgICAgc2V0Q29u
dGFpbmVyQW5kT2Zmc2V0Rm9yUmFuZ2Uobm9kZSwgZW5kIC0gb2Zmc2V0LCBlbmROb2RlLCBlbmQp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBvZmZzZXQgKz0gbGVu
Z3RoOworICAgIH0KKyAgICAKKyAgICBpZiAoIXN0YXJ0Tm9kZSB8fCAhZW5kTm9kZSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCgpLCBzdGFy
dE5vZGUsIHN0YXJ0LCBlbmROb2RlLCBlbmQpOwogfQogCiBWaXNpYmxlUG9zaXRpb24gUmVuZGVy
VGV4dENvbnRyb2w6OnZpc2libGVQb3NpdGlvbkZvckluZGV4KGludCBpbmRleCkgY29uc3QK
</data>
<flag name="review"
          id="70127"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>