<?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>160077</bug_id>
          
          <creation_ts>2016-07-22 00:20:43 -0700</creation_ts>
          <short_desc>Painting issues with menclose and reflow / repaint</short_desc>
          <delta_ts>2017-11-30 00:08:40 -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>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>161126</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>alex</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbarton</cc>
    
    <cc>dino</cc>
    
    <cc>distler</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rego</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1213512</commentid>
    <comment_count>0</comment_count>
      <attachid>284311</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-22 00:20:43 -0700</bug_when>
    <thetext>Created attachment 284311
Testcase Dirac Equation

The following issue has been reported by Jacques Distler on his Instiki sandbox page: &quot;Multiple missing symbols in the Dirac Equation.&quot;. I&apos;m not exactly sure when it happens, it seems that his page currently uses MathJax for WebKit, which might causing unnecessary reflow or style that make the analysis complicated.

I have isolated a testcase, but I&apos;m not sure it is fully reduced (the bug does not show up for a single equation for example). I noticed that changing the CSS font-size or selecting the content causes the 0 or the operators to disappear. It seems that the menclose element is also involved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213527</commentid>
    <comment_count>1</comment_count>
      <attachid>284318</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-22 01:51:39 -0700</bug_when>
    <thetext>Created attachment 284318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213605</commentid>
    <comment_count>2</comment_count>
      <attachid>284318</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-07-22 09:36:06 -0700</bug_when>
    <thetext>Comment on attachment 284318
Patch

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

I am confident your patch fixes the problem you describe, but I think we should try to fix it in GraphicsContextStateSaver, unless we discover that GCSS explicitly avoids protecting the paint rect.

&gt; Source/WebCore/ChangeLog:9
&gt; +        restored by GraphicsContextStateSaver. To avoid some weird rendering bugs in MathOperator

Doesn&apos;t it seem like the problem we should be solving is why GraphicsContextStateSaver isn&apos;t working properly?

&gt; Source/WebCore/ChangeLog:11
&gt; +        original PaintInfo before applying the transform.

Perhaps there is no performance difference in ensuring that GraphicsContextStateSaver does the right thing, versus your (and SVG&apos;s) solution of duplicating the PaintInfo before making adjustments. Still, this seems like a bad pattern, since we presumable knew about the problem when it was fixed in SVG, but did not realize the problem existed here as well.

It sounds like we are very likely to have even more cases of this issue in our code!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213606</commentid>
    <comment_count>3</comment_count>
      <attachid>284318</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-07-22 09:39:33 -0700</bug_when>
    <thetext>Comment on attachment 284318
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        original PaintInfo before applying the transform.
&gt; 
&gt; Perhaps there is no performance difference in ensuring that GraphicsContextStateSaver does the right thing, versus your (and SVG&apos;s) solution of duplicating the PaintInfo before making adjustments. Still, this seems like a bad pattern, since we presumable knew about the problem when it was fixed in SVG, but did not realize the problem existed here as well.
&gt; 
&gt; It sounds like we are very likely to have even more cases of this issue in our code!

Wait -- I&apos;m way off base here. The GraphicsContextStateSaver only knows about the context, so of course it can&apos;t protect the rect.

It seems like your solution of copying the PaintInfo and transforming the copy is the right approach, though I do worry that this pattern may not be handled properly in other parts of the code resulting in weird drawing problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213607</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-07-22 09:41:59 -0700</bug_when>
    <thetext>Zalan: The bug Frédéric discovered here seems likely to exist in other parts of our code. Do we have some way to automate the process of protecting the drawing state when doing a transform like this code?

Since this was something found and fixed in SVG, and now again in MathML, I&apos;m worried we have other cases where this is being handled improperly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213880</commentid>
    <comment_count>5</comment_count>
      <attachid>284318</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-23 01:20:58 -0700</bug_when>
    <thetext>Comment on attachment 284318
Patch

Clearing flags on attachment: 284318

Committed r203639: &lt;http://trac.webkit.org/changeset/203639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213881</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-23 01:21:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213883</commentid>
    <comment_count>7</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-23 01:26:30 -0700</bug_when>
    <thetext>I agree with Brent, but does not see an easy way to fix it (unless we write such a save/restore mechanism for the paintInfo too).

For the menclose, we could also have gotten rid of the applyTransfrom since that&apos;s just a simple translate (that&apos;s how I initially fixed this bug). However, I did notsee how to do that for MathOperator as the transform is more complex, so just copied SVG in the two cases for consistency.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>284311</attachid>
            <date>2016-07-22 00:20:43 -0700</date>
            <delta_ts>2016-07-22 00:20:43 -0700</delta_ts>
            <desc>Testcase Dirac Equation</desc>
            <filename>testcase-dirac.html</filename>
            <type>text/html</type>
            <size>1086</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5IG9ubG9hZD0iZG9jdW1lbnQuYm9keS5zdHlsZS5mb250U2l6ZT0nMzAwJSci
PgoKPHA+PG1hdGggeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwnPjxt
cm93Pjxtcm93PjxtbyBzdHJldGNoeT0iZmFsc2UiPig8L21vPjxtaT5pPC9taT48bWVuY2xvc2Ug
bm90YXRpb249InVwZGlhZ29uYWxzdHJpa2UiPjxtaT5EPC9taT48L21lbmNsb3NlPjxtbz4rPC9t
bz48bWk+bTwvbWk+PG1vIHN0cmV0Y2h5PSJmYWxzZSI+KTwvbW8+PG1pPiZwc2k7PC9taT48bW8+
PTwvbW8+PG1uPjA8L21uPjwvbXJvdz48L21yb3c+PC9tYXRoPjwvcD4KCjxwPjxtYXRoIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MJz48bXJvdz48bXJvdz48bW8gc3Ry
ZXRjaHk9ImZhbHNlIj4oPC9tbz48bWk+aTwvbWk+PG1lbmNsb3NlIG5vdGF0aW9uPSJ1cGRpYWdv
bmFsc3RyaWtlIj48bWk+RDwvbWk+PC9tZW5jbG9zZT48bW8+KzwvbW8+PG1pPm08L21pPjxtbyBz
dHJldGNoeT0iZmFsc2UiPik8L21vPjxtaT4mcHNpOzwvbWk+PG1vPj08L21vPjxtbj4wPC9tbj48
L21yb3c+PC9tcm93PjwvbWF0aD48L3A+Cgo8cD48bWF0aCB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OC9NYXRoL01hdGhNTCc+PG1yb3c+PG1vIHN0cmV0Y2h5PSJmYWxzZSI+KDwvbW8+PG1p
Pmk8L21pPjxtaT5EPC9taT48bW8+KzwvbW8+PG1pPm08L21pPjxtbyBzdHJldGNoeT0iZmFsc2Ui
Pik8L21vPjxtaT4mcHNpOzwvbWk+PG1vPj08L21vPjxtbj4wPC9tbj48L21yb3c+PC9tYXRoPjwv
cD4KCjxwPjxtYXRoIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MJz48
bXJvdz48bXJvdz48bW8gc3RyZXRjaHk9ImZhbHNlIj4oPC9tbz48bWk+aTwvbWk+PG1lbmNsb3Nl
IG5vdGF0aW9uPSJ1cGRpYWdvbmFsc3RyaWtlIj48bWk+RDwvbWk+PC9tZW5jbG9zZT48bW8+Kzwv
bW8+PG1pPm08L21pPjxtbyBzdHJldGNoeT0iZmFsc2UiPik8L21vPjxtaT4mcHNpOzwvbWk+PG1v
Pj08L21vPjxtbj4wPC9tbj48L21yb3c+PC9tcm93PjwvbWF0aD48L3A+Cgo8L2JvZHk+CjwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284318</attachid>
            <date>2016-07-22 01:51:39 -0700</date>
            <delta_ts>2016-07-23 01:20:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Bug-160077-Painting-issues-with-menclose-and-reflow-.patch</filename>
            <type>text/plain</type>
            <size>10276</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSAyY2RhYWYxYWE5YjY4NjcwYmU5NGIzYzFmMTAyYjYwOWFhYmJjMWY4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmcmVkLndhbmdAZnJlZS5mcj4KRGF0
ZTogRnJpLCAyMiBKdWwgMjAxNiAxMDo0ODowOSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEJ1ZyAx
NjAwNzcgLSBQYWludGluZyBpc3N1ZXMgd2l0aCBtZW5jbG9zZSBhbmQgcmVmbG93IC8KIHJlcGFp
bnQKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgMTAgKysrKysrKysrKwogLi4uL3ByZXNlbnRhdGlvbi9idWcxNjAwNzctZXhwZWN0ZWQt
bWlzbWF0Y2guaHRtbCAgIHwgMTMgKysrKysrKysrKysrKwogTGF5b3V0VGVzdHMvbWF0aG1sL3By
ZXNlbnRhdGlvbi9idWcxNjAwNzcuaHRtbCAgICAgIHwgMTMgKysrKysrKysrKysrKwogU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTkgKysrKysr
KysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9NYXRoT3BlcmF0
b3IuY3BwICAgIHwgMTAgKysrKysrLS0tLQogLi4uL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MTWVuY2xvc2UuY3BwICAgICAgIHwgMjEgKysrKysrKysrKysrLS0tLS0tLS0tCiA2IGZpbGVz
IGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vYnVnMTYwMDc3LWV4cGVjdGVk
LW1pc21hdGNoLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9tYXRobWwvcHJl
c2VudGF0aW9uL2J1ZzE2MDA3Ny5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcxMDlhYzQuLjQ1ZDk1MGQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxNi0wNy0yMiAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW01hdGhNTF0gUGFpbnRJbmZvIHN0YXRlIG5vdCBwcm9wZXJseSBy
ZXN0b3JlZCBhZnRlciBhcHBseVRyYW5zZm9ybS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogbWF0aG1sL3ByZXNlbnRhdGlvbi9idWcxNjAwNzctZXhw
ZWN0ZWQtbWlzbWF0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogbWF0aG1sL3ByZXNlbnRhdGlv
bi9idWcxNjAwNzcuaHRtbDogQWRkZWQuCisKIDIwMTYtMDctMjEgIEZyZWRlcmljIFdhbmcgIDxm
d2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlc2V0IGZvbnQtc3R5bGUgb24gdGhlIDxtYXRo
PiBlbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL2J1
ZzE2MDA3Ny1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNl
bnRhdGlvbi9idWcxNjAwNzctZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi43ZDZlYmVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9idWcxNjAwNzctZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApA
QCAtMCwwICsxLDEzIEBACis8aHRtbD4KKyAgPGJvZHkgc3R5bGU9ImZvbnQtc2l6ZTogMzAwJSI+
CisKKyAgICA8cD48bWF0aCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhN
TCc+PG1yb3c+PG1yb3c+PG1vIHN0cmV0Y2h5PSJmYWxzZSI+KDwvbW8+PG1pPmk8L21pPjxtZW5j
bG9zZSBub3RhdGlvbj0idXBkaWFnb25hbHN0cmlrZSI+PG1pPkQ8L21pPjwvbWVuY2xvc2U+PG1v
Pis8L21vPjxtaT5tPC9taT48bW8gc3RyZXRjaHk9ImZhbHNlIj4pPC9tbz48bWk+JnBzaTs8L21p
Pjxtbz49PC9tbz48bW4+MDwvbW4+PC9tcm93PjwvbXJvdz48L21hdGg+PC9wPgorCisgICAgPHA+
PG1hdGggeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwnPjxtcm93Pjxt
cm93PjxtbyBzdHJldGNoeT0iZmFsc2UiPig8L21vPjxtaT5pPC9taT48bWVuY2xvc2Ugbm90YXRp
b249InVwZGlhZ29uYWxzdHJpa2UiPjxtaT5EPC9taT48L21lbmNsb3NlPjxtbz4rPC9tbz48bWk+
bTwvbWk+PG1vIHN0cmV0Y2h5PSJmYWxzZSI+KTwvbW8+PG1pPiZwc2k7PC9taT48bW8+PTwvbW8+
PG1uPjA8L21uPjwvbXJvdz48L21yb3c+PC9tYXRoPjwvcD4KKworICAgIDxwPjxtYXRoIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MJz48bXJvdz48bW8gc3RyZXRjaHk9
ImZhbHNlIj4oPC9tbz48bWk+aTwvbWk+PG1pPkQ8L21pPjxtbz4rPC9tbz48bWk+bTwvbWk+PG1v
IHN0cmV0Y2h5PSJmYWxzZSI+KTwvbW8+PG1pPiZwc2k7PC9taT48bW8+PTwvbW8+PG1uPjA8L21u
PjwvbXJvdz48L21hdGg+PC9wPgorCisgICAgPHA+PG1hdGggeG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTgvTWF0aC9NYXRoTUwnPjxtcm93Pjxtcm93PjxtbyBzdHJldGNoeT0iZmFsc2UiPig8
L21vPjxtaT5pPC9taT48bWVuY2xvc2Ugbm90YXRpb249InVwZGlhZ29uYWxzdHJpa2UiPjxtaT5E
PC9taT48L21lbmNsb3NlPjxtbz4rPC9tbz48bWk+bTwvbWk+PG1vIHN0cmV0Y2h5PSJmYWxzZSI+
KTwvbW8+PG1pPiZwc2k7PC9taT48bW8gbWF0aGNvbG9yPSJyZWQiPj08L21vPjxtbj4wPC9tbj48
L21yb3c+PC9tcm93PjwvbWF0aD48L3A+CisKKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9idWcxNjAwNzcuaHRtbCBiL0xheW91
dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vYnVnMTYwMDc3Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZDA4ZmE4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21hdGhtbC9wcmVzZW50YXRpb24vYnVnMTYwMDc3Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAor
PGh0bWw+CisgIDxib2R5IG9ubG9hZD0iZG9jdW1lbnQuYm9keS5zdHlsZS5mb250U2l6ZT0nMzAw
JSciPgorCisgICAgPHA+PG1hdGggeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9N
YXRoTUwnPjxtcm93Pjxtcm93PjxtbyBzdHJldGNoeT0iZmFsc2UiPig8L21vPjxtaT5pPC9taT48
bWVuY2xvc2Ugbm90YXRpb249InVwZGlhZ29uYWxzdHJpa2UiPjxtaT5EPC9taT48L21lbmNsb3Nl
Pjxtbz4rPC9tbz48bWk+bTwvbWk+PG1vIHN0cmV0Y2h5PSJmYWxzZSI+KTwvbW8+PG1pPiZwc2k7
PC9taT48bW8+PTwvbW8+PG1uPjA8L21uPjwvbXJvdz48L21yb3c+PC9tYXRoPjwvcD4KKworICAg
IDxwPjxtYXRoIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MJz48bXJv
dz48bXJvdz48bW8gc3RyZXRjaHk9ImZhbHNlIj4oPC9tbz48bWk+aTwvbWk+PG1lbmNsb3NlIG5v
dGF0aW9uPSJ1cGRpYWdvbmFsc3RyaWtlIj48bWk+RDwvbWk+PC9tZW5jbG9zZT48bW8+KzwvbW8+
PG1pPm08L21pPjxtbyBzdHJldGNoeT0iZmFsc2UiPik8L21vPjxtaT4mcHNpOzwvbWk+PG1vPj08
L21vPjxtbj4wPC9tbj48L21yb3c+PC9tcm93PjwvbWF0aD48L3A+CisKKyAgICA8cD48bWF0aCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCc+PG1yb3c+PG1vIHN0cmV0
Y2h5PSJmYWxzZSI+KDwvbW8+PG1pPmk8L21pPjxtaT5EPC9taT48bW8+KzwvbW8+PG1pPm08L21p
PjxtbyBzdHJldGNoeT0iZmFsc2UiPik8L21vPjxtaT4mcHNpOzwvbWk+PG1vPj08L21vPjxtbj4w
PC9tbj48L21yb3c+PC9tYXRoPjwvcD4KKworICAgIDxwPjxtYXRoIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MJz48bXJvdz48bXJvdz48bW8gc3RyZXRjaHk9ImZhbHNl
Ij4oPC9tbz48bWk+aTwvbWk+PG1lbmNsb3NlIG5vdGF0aW9uPSJ1cGRpYWdvbmFsc3RyaWtlIj48
bWk+RDwvbWk+PC9tZW5jbG9zZT48bW8+KzwvbW8+PG1pPm08L21pPjxtbyBzdHJldGNoeT0iZmFs
c2UiPik8L21vPjxtaT4mcHNpOzwvbWk+PG1vPj08L21vPjxtbj4wPC9tbj48L21yb3c+PC9tcm93
PjwvbWF0aD48L3A+CisKKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg1MzFjNGUu
LjYxZDlkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNi0wNy0yMiAgRnJlZGVy
aWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CisKKyAgICAgICAgW01hdGhNTF0gUGFpbnRJbmZv
IHN0YXRlIGlzIG5vdCBwcm9wZXJseSByZXN0b3JlZCBhZnRlciBhcHBseVRyYW5zZm9ybS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDA3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhaW50SW5mbzo6
YXBwbHlUcmFuc2Zvcm0gbW9kaWZpZXMgUGFpbnRJbmZvOjpyZWN0IGFuZCB0aGUgb3JpZ2luYWwg
c3RhdGUgaXMgbm90IHByb3Blcmx5CisgICAgICAgIHJlc3RvcmVkIGJ5IEdyYXBoaWNzQ29udGV4
dFN0YXRlU2F2ZXIuIFRvIGF2b2lkIHNvbWUgd2VpcmQgcmVuZGVyaW5nIGJ1Z3MgaW4gTWF0aE9w
ZXJhdG9yCisgICAgICAgIGFuZCBSZW5kZXJNYXRoTUxNZW5jbG9zZSwgd2UgZm9sbG93IHdoYXQg
aXMgZG9uZSBpbiBTVkcgcmVuZGVyZXJzIGFuZCBtYWtlIGEgY29weSBvZiB0aGUKKyAgICAgICAg
b3JpZ2luYWwgUGFpbnRJbmZvIGJlZm9yZSBhcHBseWluZyB0aGUgdHJhbnNmb3JtLgorCisgICAg
ICAgIFRlc3Q6IG1hdGhtbC9wcmVzZW50YXRpb24vYnVnMTYwMDc3Lmh0bWwKKworICAgICAgICAq
IHJlbmRlcmluZy9tYXRobWwvTWF0aE9wZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhPcGVyYXRvcjo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MTWVuY2xvc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MTWVuY2xvc2U6
OnBhaW50KToKKwogMjAxNi0wNy0yMSAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmVzZXQgZm9udC1zdHlsZSBvbiB0aGUgPG1hdGg+IGVsZW1lbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvTWF0aE9wZXJhdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvTWF0aE9wZXJhdG9yLmNwcAppbmRleCA1
N2RmYzFmLi5kOTNiMmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL01hdGhPcGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9NYXRoT3BlcmF0b3IuY3BwCkBAIC02MDAsOCArNjAwLDEwIEBAIHZvaWQgTWF0aE9wZXJhdG9y
OjpwYWludChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIFBhaW50SW5mbyYgaW5mbywgY29uc3Qg
TGF5b3V0CiAgICAgaWYgKGluZm8uY29udGV4dCgpLnBhaW50aW5nRGlzYWJsZWQoKSB8fCBpbmZv
LnBoYXNlICE9IFBhaW50UGhhc2VGb3JlZ3JvdW5kIHx8IHN0eWxlLnZpc2liaWxpdHkoKSAhPSBW
SVNJQkxFKQogICAgICAgICByZXR1cm47CiAKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVy
IHN0YXRlU2F2ZXIoaW5mby5jb250ZXh0KCkpOwotICAgIGluZm8uY29udGV4dCgpLnNldEZpbGxD
b2xvcihzdHlsZS52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvcikpOworICAg
IC8vIE1ha2UgYSBjb3B5IG9mIHRoZSBQYWludEluZm8gYmVjYXVzZSBhcHBseVRyYW5zZm9ybSB3
aWxsIG1vZGlmeSBpdHMgcmVjdC4KKyAgICBQYWludEluZm8gcGFpbnRJbmZvKGluZm8pOworICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihwYWludEluZm8uY29udGV4dCgp
KTsKKyAgICBwYWludEluZm8uY29udGV4dCgpLnNldEZpbGxDb2xvcihzdHlsZS52aXNpdGVkRGVw
ZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvcikpOwogCiAgICAgLy8gRm9yIGEgcmFkaWNhbCBj
aGFyYWN0ZXIsIHdlIG1heSBuZWVkIHNvbWUgc2NhbGUgdHJhbnNmb3JtIHRvIHN0cmV0Y2ggaXQg
dmVydGljYWxseSBvciBtaXJyb3IgaXQuCiAgICAgaWYgKG1fYmFzZUNoYXJhY3RlciA9PSBrUmFk
aWNhbE9wZXJhdG9yKSB7CkBAIC02MDksNyArNjExLDcgQEAgdm9pZCBNYXRoT3BlcmF0b3I6OnBh
aW50KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBMYXlv
dXQKICAgICAgICAgaWYgKHJhZGljYWxIb3Jpem9udGFsU2NhbGUgPT0gLTEgfHwgbV9yYWRpY2Fs
VmVydGljYWxTY2FsZSA+IDEpIHsKICAgICAgICAgICAgIExheW91dFBvaW50IHNjYWxlT3JpZ2lu
ID0gcGFpbnRPZmZzZXQ7CiAgICAgICAgICAgICBzY2FsZU9yaWdpbi5tb3ZlKG1fd2lkdGggLyAy
LCAwKTsKLSAgICAgICAgICAgIGluZm8uYXBwbHlUcmFuc2Zvcm0oQWZmaW5lVHJhbnNmb3JtKCku
dHJhbnNsYXRlKHNjYWxlT3JpZ2luKS5zY2FsZShyYWRpY2FsSG9yaXpvbnRhbFNjYWxlLCBtX3Jh
ZGljYWxWZXJ0aWNhbFNjYWxlKS50cmFuc2xhdGUoLXNjYWxlT3JpZ2luKSk7CisgICAgICAgICAg
ICBwYWludEluZm8uYXBwbHlUcmFuc2Zvcm0oQWZmaW5lVHJhbnNmb3JtKCkudHJhbnNsYXRlKHNj
YWxlT3JpZ2luKS5zY2FsZShyYWRpY2FsSG9yaXpvbnRhbFNjYWxlLCBtX3JhZGljYWxWZXJ0aWNh
bFNjYWxlKS50cmFuc2xhdGUoLXNjYWxlT3JpZ2luKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAg
LTYzNSw3ICs2MzcsNyBAQCB2b2lkIE1hdGhPcGVyYXRvcjo6cGFpbnQoY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBQYWludEluZm8mIGluZm8sIGNvbnN0IExheW91dAogICAgIExheW91dFBvaW50
IG9wZXJhdG9yVG9wTGVmdCA9IHBhaW50T2Zmc2V0OwogICAgIEZsb2F0UmVjdCBnbHlwaEJvdW5k
cyA9IGJvdW5kc0ZvckdseXBoKGdseXBoRGF0YSk7CiAgICAgTGF5b3V0UG9pbnQgb3BlcmF0b3JP
cmlnaW4ob3BlcmF0b3JUb3BMZWZ0LngoKSwgb3BlcmF0b3JUb3BMZWZ0LnkoKSAtIGdseXBoQm91
bmRzLnkoKSk7Ci0gICAgaW5mby5jb250ZXh0KCkuZHJhd0dseXBocyhzdHlsZS5mb250Q2FzY2Fk
ZSgpLCAqZ2x5cGhEYXRhLmZvbnQsIGJ1ZmZlciwgMCwgMSwgb3BlcmF0b3JPcmlnaW4pOworICAg
IHBhaW50SW5mby5jb250ZXh0KCkuZHJhd0dseXBocyhzdHlsZS5mb250Q2FzY2FkZSgpLCAqZ2x5
cGhEYXRhLmZvbnQsIGJ1ZmZlciwgMCwgMSwgb3BlcmF0b3JPcmlnaW4pOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1lbmNs
b3NlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWVu
Y2xvc2UuY3BwCmluZGV4IDU4NzkzMjguLjk3NGRlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWVuY2xvc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWVuY2xvc2UuY3BwCkBAIC0y
MTEsMTMgKzIxMSwxNiBAQCB2b2lkIFJlbmRlck1hdGhNTE1lbmNsb3NlOjpwYWludChQYWludElu
Zm8mIGluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldAogICAgICAgICByZXR1cm47
CiAKICAgICBMYXlvdXRVbml0IHRoaWNrbmVzcyA9IHJ1bGVUaGlja25lc3MoKTsKLSAgICBHcmFw
aGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoaW5mby5jb250ZXh0KCkpOwogCi0gICAg
aW5mby5jb250ZXh0KCkuc2V0U3Ryb2tlVGhpY2tuZXNzKHRoaWNrbmVzcyk7Ci0gICAgaW5mby5j
b250ZXh0KCkuc2V0U3Ryb2tlU3R5bGUoU29saWRTdHJva2UpOwotICAgIGluZm8uY29udGV4dCgp
LnNldFN0cm9rZUNvbG9yKHN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5
Q29sb3IpKTsKLSAgICBpbmZvLmNvbnRleHQoKS5zZXRGaWxsQ29sb3IoQ29sb3I6OnRyYW5zcGFy
ZW50KTsKLSAgICBpbmZvLmFwcGx5VHJhbnNmb3JtKEFmZmluZVRyYW5zZm9ybSgpLnRyYW5zbGF0
ZShwYWludE9mZnNldCArIGxvY2F0aW9uKCkpKTsKKyAgICAvLyBNYWtlIGEgY29weSBvZiB0aGUg
UGFpbnRJbmZvIGJlY2F1c2UgYXBwbHlUcmFuc2Zvcm0gd2lsbCBtb2RpZnkgaXRzIHJlY3QuCisg
ICAgUGFpbnRJbmZvIHBhaW50SW5mbyhpbmZvKTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIocGFpbnRJbmZvLmNvbnRleHQoKSk7CisKKyAgICBwYWludEluZm8uY29u
dGV4dCgpLnNldFN0cm9rZVRoaWNrbmVzcyh0aGlja25lc3MpOworICAgIHBhaW50SW5mby5jb250
ZXh0KCkuc2V0U3Ryb2tlU3R5bGUoU29saWRTdHJva2UpOworICAgIHBhaW50SW5mby5jb250ZXh0
KCkuc2V0U3Ryb2tlQ29sb3Ioc3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVy
dHlDb2xvcikpOworICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2V0RmlsbENvbG9yKENvbG9yOjp0
cmFuc3BhcmVudCk7CisgICAgcGFpbnRJbmZvLmFwcGx5VHJhbnNmb3JtKEFmZmluZVRyYW5zZm9y
bSgpLnRyYW5zbGF0ZShwYWludE9mZnNldCArIGxvY2F0aW9uKCkpKTsKIAogICAgIC8vIEluIHRo
ZSBNYXRoTUwgaW4gSFRNTDUgaW1wbGVtZW50YXRpb24gbm90ZSwgdGhlICJsZWZ0IiBub3RhdGlv
biBpcyBkZXNjcmliZWQgYXMgZm9sbG93czoKICAgICAvLyAtIGNlbnRlciBvZiB0aGUgbGVmdCB2
ZXJ0aWNhbCBiYXIgaXMgYXQgM1x4aV84IHBhZGRpbmcgKyBceGlfOCBib3JkZXIvMiA9IDdceGlf
OC8yCkBAIC0yOTYsNyArMjk5LDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxNZW5jbG9zZTo6cGFpbnQo
UGFpbnRJbmZvJiBpbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQKICAgICAgICAg
cm91bmRlZFJlY3QuaW5mbGF0ZSg3ICogdGhpY2tuZXNzIC8gMik7CiAgICAgICAgIFBhdGggcGF0
aDsKICAgICAgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChyb3VuZGVkUmVjdCk7Ci0gICAgICAgIGlu
Zm8uY29udGV4dCgpLnN0cm9rZVBhdGgocGF0aCk7CisgICAgICAgIHBhaW50SW5mby5jb250ZXh0
KCkuc3Ryb2tlUGF0aChwYXRoKTsKICAgICB9CiAKICAgICAvLyBGb3IgbG9uZ2Rpdiwgd2UgdXNl
IG91ciBvd24gcnVsZXMgZm9yIG5vdzoKQEAgLTMyMiw3ICszMjUsNyBAQCB2b2lkIFJlbmRlck1h
dGhNTE1lbmNsb3NlOjpwYWludChQYWludEluZm8mIGluZm8sIGNvbnN0IExheW91dFBvaW50JiBw
YWludE9mZnNldAogICAgICAgICBwYXRoLm1vdmVUbyhMYXlvdXRQb2ludChyaWdodCwgdG9wKSk7
CiAgICAgICAgIHBhdGguYWRkTGluZVRvKExheW91dFBvaW50KGxlZnQsIHRvcCkpOwogICAgICAg
ICBwYXRoLmFkZFF1YWRDdXJ2ZVRvKExheW91dFBvaW50KG1pZFgsIG1pZFkpLCBGbG9hdFBvaW50
KGxlZnQsIGJvdHRvbSkpOwotICAgICAgICBpbmZvLmNvbnRleHQoKS5zdHJva2VQYXRoKHBhdGgp
OworICAgICAgICBwYWludEluZm8uY29udGV4dCgpLnN0cm9rZVBhdGgocGF0aCk7CiAgICAgfQog
CiAgICAgLy8gSW4gdGhlIE1hdGhNTCBpbiBIVE1MNSBpbXBsZW1lbnRhdGlvbiBub3RlLCB0aGUg
ImNpcmNsZSIgbm90YXRpb24gaXMgZGVzY3JpYmVkIGFzIGZvbGxvd3M6CkBAIC0zMzcsNyArMzQw
LDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxNZW5jbG9zZTo6cGFpbnQoUGFpbnRJbmZvJiBpbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQKICAgICAgICAgZWxsaXBzZVJlY3Quc2V0WSht
X2NvbnRlbnRSZWN0LnkoKSAtIChlbGxpcHNlUmVjdC5oZWlnaHQoKSAtIG1fY29udGVudFJlY3Qu
aGVpZ2h0KCkpIC8gMik7CiAgICAgICAgIFBhdGggcGF0aDsKICAgICAgICAgcGF0aC5hZGRFbGxp
cHNlKGVsbGlwc2VSZWN0KTsKLSAgICAgICAgaW5mby5jb250ZXh0KCkuc3Ryb2tlUGF0aChwYXRo
KTsKKyAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQoKS5zdHJva2VQYXRoKHBhdGgpOwogICAgIH0K
IH0KIAotLSAKMi44LjEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>