<?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>98791</bug_id>
          
          <creation_ts>2012-10-09 10:15:47 -0700</creation_ts>
          <short_desc>[MathML] Improve some addChild methods</short_desc>
          <delta_ts>2012-12-06 21:03:59 -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>MathML</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>
          
          <blocked>97390</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Barton">dbarton</reporter>
          <assigned_to name="Dave Barton">dbarton</assigned_to>
          <cc>davidc</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fred.wang</cc>
    
    <cc>ian</cc>
    
    <cc>inferno</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>737908</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-10-09 10:15:47 -0700</bug_when>
    <thetext>[MathML] Improve some addChild methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737925</commentid>
    <comment_count>1</comment_count>
      <attachid>167779</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-10-09 10:41:26 -0700</bug_when>
    <thetext>Created attachment 167779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737932</commentid>
    <comment_count>2</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-10-09 10:50:28 -0700</bug_when>
    <thetext>David C. &amp; Fred, this small patch does raise a spec/DOM issue. Elements such as mfrac have a fixed number of children, in this case 2 - a numerator and denominator. After the element has been built, is it legal to dynamically alter it through more than just replaceChild? If one deletes the numerator, should the single remaining child change from the denominator to the numerator? Can one temporarily append a 3rd &amp; 4th child, and then delete the 1st &amp; 2nd children, leaving 2 children at the end? I think it&apos;s ok to ignore this for now (just don&apos;t crash), but should precise behavior be required, or intentionally left unspecified (erroneous)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737951</commentid>
    <comment_count>3</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2012-10-09 11:04:34 -0700</bug_when>
    <thetext>I think Gecko will accept this dynamic operation and typically do the same as with successive static versions (I haven&apos;t checked, though):

- When the mfrac has two children it is rendered normally
- Once it gets 3 or 4 children, it is rendered as an &quot;invalid markup&quot; box in lieu of the mfrac element (I think the spec suggests somewhere how to handle invalid markup)
- If you remove the two first children it will render the mfrac normally again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738166</commentid>
    <comment_count>4</comment_count>
    <who name="David Carlisle">davidc</who>
    <bug_when>2012-10-09 14:05:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I think Gecko will accept this dynamic operation and typically do the same as with successive static versions (I haven&apos;t checked, though):
&gt; 
&gt; - When the mfrac has two children it is rendered normally
&gt; - Once it gets 3 or 4 children, it is rendered as an &quot;invalid markup&quot; box in lieu of the mfrac element (I think the spec suggests somewhere how to handle invalid markup)
&gt; - If you remove the two first children it will render the mfrac normally again.

I agree that inconsistent DOM should be allowed to be generated, the mathml spec (in XML tradition) doesn&apos;t really say anything about bad trees they are just bad; but it&apos;s probably best to follow the guidelines of html spec (for html and xml DOM) html says (of parsing rather than dynamically modified trees) (4.8.15 MathML)

User agents must act as if any MathML element whose contents does not match the element&apos;s content model was replaced, for the purposes of MathML layout and rendering, by an merror element in the MathML namespace containing some appropriate error message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738184</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-09 14:28:44 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; User agents must act as if any MathML element whose contents does not match the element&apos;s content model was replaced, for the purposes of MathML layout and rendering, by an merror element in the MathML namespace containing some appropriate error message.

That&apos;s a very XMLy way of doing things.  XML has lost the war for the minds of the web developers of the world.

Since MathML is now being adopted as part of HTML5, I would recommend we take a path of &quot;do something reasonable&quot; and &quot;display as much as possible&quot; instead of the XML &quot;fail fast&quot; model.

Obviously that doesn&apos;t have to be decided all in this bug. :)  I might either just ignore the mfrac, or ignore the children &gt; 2.  I suspect ignoring the mfrac (treating it just like an mrow or whatever the default container would be) is probably more what authors intended.  (But I can&apos;t say I&apos;ve authored much mathml.)

As you&apos;ve done, its just most important that we test whatever behavior we decide on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738208</commentid>
    <comment_count>6</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2012-10-09 14:48:03 -0700</bug_when>
    <thetext>I thought the MathML rendering model was that you just replaced erroreous subtrees with &quot;an error&quot; (much like &lt;merror&gt;) when you hit something bad. Isn&apos;t that what Gecko does?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738234</commentid>
    <comment_count>7</comment_count>
    <who name="David Carlisle">davidc</who>
    <bug_when>2012-10-09 15:08:20 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; User agents must act as if any MathML element whose contents does not match the element&apos;s content model was replaced, for the purposes of MathML layout and rendering, by an merror element in the MathML namespace containing some appropriate error message.
&gt; 
&gt; That&apos;s a very XMLy way of doing things.  XML has lost the war for the minds of the web developers of the world.
&gt; 
&gt; Since MathML is now being adopted as part of HTML5, I would recommend we take a path of &quot;do something reasonable&quot; and &quot;display as much as possible&quot; instead of the XML &quot;fail fast&quot; model.
&gt; 

Perhaps you misread it or me quoting it out of context mislead you. It was intended to be the HTML5 way of doing things (I was quoting the HTML(5) spec).  The XML-flavoured mathml spec doesn&apos;t say what to do for bad input just says its not mathml.  This isn&apos;t really  a &quot;fail&quot; in the sense of xml the rest of the expression still renders but it just means that a fraction with three children should be rendered as something like merror; that is typically a text box with red text indicating that a fraction with three children can&apos;t be rendered normally,it doesn&apos;t prevent the rest of the expression from displaying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738280</commentid>
    <comment_count>8</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-10-09 15:52:44 -0700</bug_when>
    <thetext>Wow. I guess I was thinking like Eric, since that&apos;s what falls out of the current implementation. For now I think you would get something like a fraction displayed as a vertical column, with a horizontal line above its second child. If there are e.g. 3 children, then you&apos;d just get a 2nd denominator below the first one. I guess I can see an argument that an error message would be better, especially if that&apos;s what the spec authors say :), but I don&apos;t think it&apos;s the most important MathML fix to implement next.

I was actually asking more about if someone takes a legal fraction, then does removeChild on its first child, and then later adds another child, say by appending it. Can the denominator silently move to become the numerator this way? Can superscripts become subscripts this way? Maybe I&apos;m hypnotized by the implementation, or was just being lazy, but this current patch doesn&apos;t try to do all that. Basically it supports javascript replaceChild, but not arbitrary addChild/removeChild, with the excuse that a valid mfrac should stay at exactly 2 children. That should be relaxed in the future though?

Finally, I was hoping to land this patch before turning on the fuzzers. I think the google security guys are busy this week - are we waiting on them to review this? Is it better to just enable MathML in Chrome before landing this? Or does this patch need to be changed now for some reason, before it can be reviewed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750190</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-24 16:31:13 -0700</bug_when>
    <thetext>jchaffraix is probably your best reviewer here, but I can if he&apos;s too busy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752697</commentid>
    <comment_count>10</comment_count>
      <attachid>167779</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-26 23:22:58 -0700</bug_when>
    <thetext>Comment on attachment 167779
Patch

Julien is on vacation, but LGTM.  He can comment when he comes back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752800</commentid>
    <comment_count>11</comment_count>
      <attachid>167779</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-27 11:18:53 -0700</bug_when>
    <thetext>Comment on attachment 167779
Patch

Clearing flags on attachment: 167779

Committed r132735: &lt;http://trac.webkit.org/changeset/132735&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752801</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-27 11:18:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785599</commentid>
    <comment_count>13</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-12-06 21:03:59 -0800</bug_when>
    <thetext>*** Bug 100463 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167779</attachid>
            <date>2012-10-09 10:41:26 -0700</date>
            <delta_ts>2012-10-27 11:18:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98791-20121009104027.patch</filename>
            <type>text/plain</type>
            <size>8725</size>
            <attacher name="Dave Barton">dbarton</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDc3NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTA5ICBEYXZpZCBC
YXJ0b24gIDxkYmFydG9uQG1hdGhzY3JpYmUuY29tPgorCisgICAgICAgIFtNYXRoTUxdIEltcHJv
dmUgc29tZSBhZGRDaGlsZCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05ODc5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1hdGhNTCBhZGRDaGlsZCBtZXRob2RzIG5lZWQgdG8gaGFuZGxlIGFu
eSBhbm9ueW1vdXMgcmVuZGVyZXJzIGNvcnJlY3RseS4gQWN0dWFsbHksIG1vc3QgTWF0aE1MIGVs
ZW1lbnRzIGhhdmUgYSBmaXhlZAorICAgICAgICBudW1iZXIgb2YgY2hpbGRyZW4sIHNvIGNvbmZv
cm1hbnQgamF2YXNjcmlwdCB3b24ndCBiZSBkb2luZyBhcmJpdHJhcnkgYWRkQ2hpbGQgYW5kIHJl
bW92ZUNoaWxkIGNhbGxzLiBIb3dldmVyLCB3ZSBkb24ndAorICAgICAgICB3YW50IGFueSBhc3Nl
cnRpb25zIHRvIGZhaWwsIGFuZCB3ZSBkbyB3YW50IGFkZENoaWxkIHRvIHdvcmsgY29ycmVjdGx5
IHdoZW4gYmVmb3JlQ2hpbGQgPT0gMCwgdG8gYnVpbGQgdXAgdGhlIG9yaWdpbmFsCisgICAgICAg
IHJlbmRlcmVyLCBhbmQgdGhlbiByZXBsYWNlQ2hpbGQgYXQgbGVhc3Qgc2hvdWxkIHdvcmsgY29y
cmVjdGx5IGFmdGVyIHRoYXQuIFdlIHRoZXJlZm9yZSBjbGVhbiB1cCB0aGVzZSByb3V0aW5lcyBi
ZWZvcmUKKyAgICAgICAgZ2l2aW5nIHRoZW0gdG8gdGhlIGNocm9taXVtIGZ1enplcnMuCisgICAg
ICAgIAorICAgICAgICBJdCdzIGJlc3QgdG8gYnVpbGQgdGhlIGFub255bW91cyB3cmFwcGVycyBq
dXN0IG9uY2UgaW5pdGlhbGx5IGlmIHBvc3NpYmxlLCBzbyBlbXB0eSB3cmFwcGVycyBhcmVuJ3Qg
bGVmdCBpbiB0aGUgcmVuZGVyCisgICAgICAgIHRyZWUgYWZ0ZXIgbGF0ZXIgcmVtb3ZlQ2hpbGQg
Y2FsbHMuCisKKyAgICAgICAgVGVzdDogbWF0aG1sL3ByZXNlbnRhdGlvbi9keW5hbWljLmh0bWwg
YWRkZWQgZm9yIG1mcmFjIGFuZCBtc3FydC4gVGhlcmUgYXJlIGFscmVhZHkgdGVzdHMgZm9yIGR5
bmFtaWNhbGx5IGNoYW5naW5nCisgICAgICAgIG1zdWIvc3VwIGVsZW1lbnRzLCBpbiBtYXRobWwv
cHJlc2VudGF0aW9uL20qLWNoYW5nZWQueGh0bWwuCisKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTEZyYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1h
dGhNTEZyYWN0aW9uOjphZGRDaGlsZCk6CisgICAgICAgICAgICAtIFRoZSB0d28gd3JhcHBlcnMg
YXJlIGJ1aWx0IGluaXRpYWxseS4gQWxzbywgdGhlIG9sZCBSZW5kZXJNYXRoTUxCbG9jazo6YWRk
Q2hpbGQocm93LCBiZWZvcmVDaGlsZCk7IGRvZXNuJ3QgcmVhbGx5CisgICAgICAgICAgICAgIHdv
cmsgYmVjYXVzZSBiZWZvcmVDaGlsZCBpcyBidXJpZWQgaW5zaWRlIGEgd3JhcHBlci4gVGhpcyBu
ZXcgcm91dGluZSBhbGxvd3MgdGhlIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IgdG8gYmUKKyAg
ICAgICAgICAgICAgYWRkZWQgaW5pdGlhbGx5LCBhbmQgdGhlbiBsYXRlciByZXBsYWNlZCB3aXRo
IHJlcGxhY2VDaGlsZC4gSXQncyBub3QgY2xlYXIgd2hldGhlciBlLmcuIGEgcGxhaW4gcmVtb3Zl
Q2hpbGQgb2YgYQorICAgICAgICAgICAgICBudW1lcmF0b3Igc2hvdWxkIG1vdmUgdGhlIHJlbWFp
bmluZyBjaGlsZCBmcm9tIHRoZSBkZW5vbWluYXRvciB0byB0aGUgbnVtZXJhdG9yIG9yIG5vdCwg
c28gd2UgaWdub3JlIHRoYXQgZm9yIG5vdy4KKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTFJvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MUm9vdDo6
YWRkQ2hpbGQpOgorICAgICAgICAgICAgLSBBIGJpdCBvZiBidWxsZXQtcHJvb2ZpbmcgZm9yIHRo
ZSBmdXp6ZXJzLgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3ViU3Vw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTFN1YlN1cDo6YWRkQ2hpbGQpOgor
ICAgICAgICAgICAgLSBMaWtlIFJlbmRlck1hdGhNTEZyYWN0aW9uOjphZGRDaGlsZCwgd2UgY3Jl
YXRlIHRoZSB3cmFwcGVycyBvbmNlIGluaXRpYWxseSwgYW5kIHRoZW4gZmlsbCB0aGVtIGR5bmFt
aWNhbGx5LgorCiAyMDEyLTEwLTA5ICBQcmF2aW4gRCAgPHByYXZpbmQuMms0QGdtYWlsLmNvbT4K
IAogICAgICAgICBtYXgtd2lkdGggcHJvcGVydHkgaXMgZG9lcyBub3Qgb3ZlcnJpZGluZyB0aGUg
d2lkdGggcHJvcGVydGllcyBmb3IgY3NzIHRhYmxlcyhkaXNwbGF5OnRhYmxlKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxG
cmFjdGlvbi5jcHAJKHJldmlzaW9uIDEzMDc2MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niwx
NCArODYsMjMgQEAgdm9pZCBSZW5kZXJNYXRoTUxGcmFjdGlvbjo6dXBkYXRlRnJvbUVsZQogICAg
IGxhc3RDaGlsZCgpLT5zdHlsZSgpLT5zZXRQYWRkaW5nVG9wKExlbmd0aChzdGF0aWNfY2FzdDxp
bnQ+KG1fbGluZVRoaWNrbmVzcyksIEZpeGVkKSk7CiB9CiAKLXZvaWQgUmVuZGVyTWF0aE1MRnJh
Y3Rpb246OmFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3Jl
Q2hpbGQpCit2b2lkIFJlbmRlck1hdGhNTEZyYWN0aW9uOjphZGRDaGlsZChSZW5kZXJPYmplY3Qq
IGNoaWxkLCBSZW5kZXJPYmplY3QqIC8qIGJlZm9yZUNoaWxkICovKQogewotICAgIFJlbmRlck1h
dGhNTEJsb2NrKiByb3cgPSBjcmVhdGVBbm9ueW1vdXNNYXRoTUxCbG9jaygpOworICAgIGlmIChp
c0VtcHR5KCkpIHsKKyAgICAgICAgUmVuZGVyTWF0aE1MQmxvY2sqIG51bWVyYXRvcldyYXBwZXIg
PSBjcmVhdGVBbm9ueW1vdXNNYXRoTUxCbG9jaygpOworICAgICAgICBSZW5kZXJNYXRoTUxCbG9j
azo6YWRkQ2hpbGQobnVtZXJhdG9yV3JhcHBlcik7CisgICAgICAgIGZpeENoaWxkU3R5bGUobnVt
ZXJhdG9yV3JhcHBlcik7CisgICAgICAgIAorICAgICAgICBSZW5kZXJNYXRoTUxCbG9jayogZGVu
b21pbmF0b3JXcmFwcGVyID0gY3JlYXRlQW5vbnltb3VzTWF0aE1MQmxvY2soKTsKKyAgICAgICAg
UmVuZGVyTWF0aE1MQmxvY2s6OmFkZENoaWxkKGRlbm9taW5hdG9yV3JhcHBlcik7CisgICAgICAg
IGZpeENoaWxkU3R5bGUoZGVub21pbmF0b3JXcmFwcGVyKTsKKyAgICB9CisgICAgCisgICAgaWYg
KGZpcnN0Q2hpbGQoKS0+aXNFbXB0eSgpKQorICAgICAgICBmaXJzdENoaWxkKCktPmFkZENoaWxk
KGNoaWxkKTsKKyAgICBlbHNlCisgICAgICAgIGxhc3RDaGlsZCgpLT5hZGRDaGlsZChjaGlsZCk7
CiAgICAgCi0gICAgUmVuZGVyTWF0aE1MQmxvY2s6OmFkZENoaWxkKHJvdywgYmVmb3JlQ2hpbGQp
OwotICAgIHJvdy0+YWRkQ2hpbGQoY2hpbGQpOwotICAgIAotICAgIGZpeENoaWxkU3R5bGUocm93
KTsKICAgICB1cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvb3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5jcHAJKHJldmlzaW9u
IDEzMDc2MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
Um9vdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBSZW5kZXJNYXRo
TUxSb290OjphZGRDaGlsZChSZW5kZXJPYgogICAgIGlmIChuZXdDaGlsZC0+c3R5bGUoKS0+cG9z
aXRpb24oKSA9PSBBYnNvbHV0ZVBvc2l0aW9uKQogICAgICAgICBSZW5kZXJNYXRoTUxCbG9jazo6
YWRkQ2hpbGQobmV3Q2hpbGQpOwogICAgIGVsc2UKLSAgICAgICAgZmlyc3RDaGlsZCgpLT5hZGRD
aGlsZChuZXdDaGlsZCwgYmVmb3JlQ2hpbGQgJiYgYmVmb3JlQ2hpbGQtPnN0eWxlKCktPnBvc2l0
aW9uKCkgIT0gQWJzb2x1dGVQb3NpdGlvbiA/IGJlZm9yZUNoaWxkIDogMCk7CisgICAgICAgIGZp
cnN0Q2hpbGQoKS0+YWRkQ2hpbGQobmV3Q2hpbGQsIGJlZm9yZUNoaWxkICYmIGJlZm9yZUNoaWxk
LT5wYXJlbnQoKSA9PSBmaXJzdENoaWxkKCkgPyBiZWZvcmVDaGlsZCA6IDApOwogfQogCiBSZW5k
ZXJCb3hNb2RlbE9iamVjdCogUmVuZGVyTWF0aE1MUm9vdDo6aW5kZXgoKSBjb25zdApJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTdWJTdXAuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
U3ViU3VwLmNwcAkocmV2aXNpb24gMTMwNzYyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxTdWJTdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSwyNiAr
NzEsMjIgQEAgdm9pZCBSZW5kZXJNYXRoTUxTdWJTdXA6OmZpeFNjcmlwdHNTdHlsZQogICAgIHNj
cmlwdHNTdHlsZS0+c2V0Rm9udFNpemUoc3RhdGljX2Nhc3Q8aW50PigwLjc1ICogc3R5bGUoKS0+
Zm9udFNpemUoKSkpOwogfQogCi0vLyBGSVhNRTogSGFuZGxlIGFyYml0cmFyeSBhZGRDaGlsZC9y
ZW1vdmVDaGlsZCBjb3JyZWN0bHkgdGhyb3VnaG91dCBNYXRoTUwsIGUuZy4gYWRkL3JlbW92ZS9h
ZGQgYSBiYXNlIGNoaWxkIGhlcmUuCisvLyBGSVhNRTogSGFuZGxlIGFyYml0cmFyeSBhZGRDaGls
ZC9yZW1vdmVDaGlsZCBjb3JyZWN0bHkgdGhyb3VnaG91dCBNYXRoTUwuCiB2b2lkIFJlbmRlck1h
dGhNTFN1YlN1cDo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBi
ZWZvcmVDaGlsZCkKIHsKLSAgICAvLyBOb3RlOiBUaGUgUmVuZGVyTWF0aE1MQmxvY2sgb25seSBh
bGxvd3MgZWxlbWVudCBjaGlsZHJlbiB0byBiZSBhZGRlZC4KLSAgICBFbGVtZW50KiBjaGlsZEVs
ZW1lbnQgPSB0b0VsZW1lbnQoY2hpbGQtPm5vZGUoKSk7Ci0KLSAgICBpZiAoY2hpbGRFbGVtZW50
ICYmICFjaGlsZEVsZW1lbnQtPnByZXZpb3VzRWxlbWVudFNpYmxpbmcoKSkgewotICAgICAgICAv
LyBQb3NpdGlvbiAxIGlzIGFsd2F5cyB0aGUgYmFzZSBvZiB0aGUgbXN1Yi9tc3VwL21zdWJzdXAu
CisgICAgaWYgKGlzRW1wdHkoKSkgewogICAgICAgICBSZW5kZXJNYXRoTUxCbG9jayogYmFzZVdy
YXBwZXIgPSBjcmVhdGVBbm9ueW1vdXNNYXRoTUxCbG9jaygpOwotICAgICAgICBSZW5kZXJNYXRo
TUxCbG9jazo6YWRkQ2hpbGQoYmFzZVdyYXBwZXIsIGZpcnN0Q2hpbGQoKSk7Ci0gICAgICAgIGJh
c2VXcmFwcGVyLT5hZGRDaGlsZChjaGlsZCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgLy8gTWFr
ZSBzdXJlIHdlIGhhdmUgYSBzY3JpcHQgYmxvY2sgZm9yIHJlbmRlcmluZy4KLSAgICAgICAgaWYg
KCFtX3NjcmlwdHMpIHsKLSAgICAgICAgICAgIG1fc2NyaXB0cyA9IGNyZWF0ZUFub255bW91c01h
dGhNTEJsb2NrKCk7Ci0gICAgICAgICAgICBmaXhTY3JpcHRzU3R5bGUoKTsKLSAgICAgICAgICAg
IFJlbmRlck1hdGhNTEJsb2NrOjphZGRDaGlsZChtX3NjcmlwdHMsIGJlZm9yZUNoaWxkKTsKLSAg
ICAgICAgfQotICAgIH0gZWxzZQotICAgICAgICBtX3NjcmlwdHMtPmFkZENoaWxkKGNoaWxkLCBi
ZWZvcmVDaGlsZCA/IG1fc2NyaXB0cy0+Zmlyc3RDaGlsZCgpIDogMCk7CisgICAgICAgIFJlbmRl
ck1hdGhNTEJsb2NrOjphZGRDaGlsZChiYXNlV3JhcHBlcik7CisgICAgICAgIAorICAgICAgICBt
X3NjcmlwdHMgPSBjcmVhdGVBbm9ueW1vdXNNYXRoTUxCbG9jaygpOworICAgICAgICBSZW5kZXJN
YXRoTUxCbG9jazo6YWRkQ2hpbGQobV9zY3JpcHRzKTsKKyAgICAgICAgZml4U2NyaXB0c1N0eWxl
KCk7CisgICAgfQorICAgIAorICAgIGlmIChmaXJzdENoaWxkKCktPmlzRW1wdHkoKSkKKyAgICAg
ICAgZmlyc3RDaGlsZCgpLT5hZGRDaGlsZChjaGlsZCk7CisgICAgZWxzZQorICAgICAgICBtX3Nj
cmlwdHMtPmFkZENoaWxkKGNoaWxkLCBiZWZvcmVDaGlsZCAmJiBiZWZvcmVDaGlsZC0+cGFyZW50
KCkgPT0gbV9zY3JpcHRzID8gYmVmb3JlQ2hpbGQgOiAwKTsKIH0KIAogdm9pZCBSZW5kZXJNYXRo
TUxTdWJTdXA6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzA3NzUpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0xMC0w
OSAgRGF2aWQgQmFydG9uICA8ZGJhcnRvbkBtYXRoc2NyaWJlLmNvbT4KKworICAgICAgICBbTWF0
aE1MXSBJbXByb3ZlIHNvbWUgYWRkQ2hpbGQgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg3OTEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1hdGhtbC9wcmVzZW50YXRpb24vZHluYW1pYy1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL2R5bmFt
aWMuaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMDkgIFByYXZpbiBEICA8cHJhdmluZC4yazRAZ21h
aWwuY29tPgogCiAgICAgICAgIG1heC13aWR0aCBwcm9wZXJ0eSBpcyBkb2VzIG5vdCBvdmVycmlk
aW5nIHRoZSB3aWR0aCBwcm9wZXJ0aWVzIGZvciBjc3MgdGFibGVzKGRpc3BsYXk6dGFibGUpCklu
ZGV4OiBMYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2R5bmFtaWMtZXhwZWN0ZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2R5bmFtaWMt
ZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL21hdGhtbC9wcmVzZW50
YXRpb24vZHluYW1pYy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAK
KzwhRE9DVFlQRSBodG1sPgorCis8bWF0aD4KKyAgICA8bWZyYWMgaWQ9Im1mcmFjIj48bW4+NTwv
bW4+PG1uPjQ8L21uPjwvbWZyYWM+CisgICAgCisgICAgPG1zcXJ0IGlkPSJtc3FydCI+PG1uPjY8
L21uPjxtaT5iPC9taT48bW4+NzwvbW4+PC9tc3FydD4KKzwvbWF0aD4KSW5kZXg6IExheW91dFRl
c3RzL21hdGhtbC9wcmVzZW50YXRpb24vZHluYW1pYy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vZHluYW1pYy5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9keW5hbWljLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8bWF0aD4KKyAgICA8bWZyYWMg
aWQ9Im1mcmFjIj48bW4+MTwvbW4+PG1uPjI8L21uPjwvbWZyYWM+CisgICAgCisgICAgPG1zcXJ0
IGlkPSJtc3FydCI+PG1pPmE8L21pPjxtaT5iPC9taT48bWk+YzwvbWk+PC9tc3FydD4KKyAgICAK
KyAgICA8bW4gaWQ9Im1uNCI+NDwvbW4+CisgICAgPG1uIGlkPSJtbjUiPjU8L21uPgorICAgIDxt
biBpZD0ibW42Ij42PC9tbj4KKyAgICA8bW4gaWQ9Im1uNyI+NzwvbW4+Cis8L21hdGg+CisKKzxz
Y3JpcHQ+CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisgICAgCisgICAgdmFyIG1mcmFj
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1mcmFjIik7CisgICAgbWZyYWMucmVwbGFjZUNo
aWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtbjQiKSwgbWZyYWMubGFzdENoaWxkKTsKKyAg
ICBtZnJhYy5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1uNSIpLCBtZnJh
Yy5maXJzdENoaWxkKTsKKyAgICAKKyAgICB2YXIgbXNxcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibXNxcnQiKTsKKyAgICBtc3FydC5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm1uNiIpLCBtc3FydC5maXJzdENoaWxkKTsKKyAgICBtc3FydC5yZXBsYWNlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1uNyIpLCBtc3FydC5sYXN0Q2hpbGQpOworPC9zY3Jp
cHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>