<?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>92163</bug_id>
          
          <creation_ts>2012-07-24 14:35:39 -0700</creation_ts>
          <short_desc>flexitems can overflow the flexbox due to rounding</short_desc>
          <delta_ts>2012-07-26 11:07:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>http://plexode.com/eval3/#ht=%3Cdiv%20style%3D%22padding%3A%2010px%3B%20background-color%3A%20black%22%3E%0A%0A%3Cdiv%20style%3D%22display%3A-webkit-flex%3B%20width%3A%20101px%3B%20background-color%3A%20grey%22%3E%0A%20%20%3Cdiv%20id%3Da%20style%3D%22-webkit-flex%3A%201%3B%20background-color%3A%20blue%3B%20height%3A%2030px%22%3Ehello%3C%2Fdiv%3E%0A%20%20%3Cdiv%20id%3Db%20style%3D%22-webkit-flex%3A%201%3B%20background-color%3A%20yellow%3B%20-webkit-align-self%3Aflex-start%22%3Eworld%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0A%0A%3C%2Fdiv%3E%0A&amp;jt=getComputedStyle(document.getElementById(&apos;a&apos;)).width%20%2B%20%22%2C%22%20%2B%20getComputedStyle(document.getElementById(&apos;b&apos;)).width%0A</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>92352</dependson>
          <blocked>62048</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>677210</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-24 14:35:39 -0700</bug_when>
    <thetext>Flexbox items don&apos;t seem to be getting subpixel positions when rounding.  See the URL for an example.  It&apos;s a flexbox that is 101 pixels wide and has 2 children, each should be the same size (50.5px each).  Instead, they are both 51px.

For reference, in RenderFlexibleBox.cpp, we use setOverrideLogicalContent{Width,Height}() to set the width/height of children after we have computed the desired value.  We use setLocation() to position each child.  This happens in RenderFlexibleBox::layoutAndPlaceChildren.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677238</commentid>
    <comment_count>1</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-07-24 15:12:09 -0700</bug_when>
    <thetext>It would be interesting to know where the rounding happens as both values seems to be rounded independently of each other.

Looking into it quickly it seems like the values are rounded before being passed into the layoutAndPlaceChildren method in the childSizes vector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677242</commentid>
    <comment_count>2</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-07-24 15:14:37 -0700</bug_when>
    <thetext>The problem might be the following code in RenderFlexibleBox::resolveFlexibleLengths:

            if (availableFreeSpace &gt; 0 &amp;&amp; totalFlexGrow &gt; 0 &amp;&amp; flexSign == PositiveFlexibility &amp;&amp; isfinite(totalFlexGrow))
                childSize += static_cast&lt;int&gt;(lroundf(availableFreeSpace * child-&gt;style()-&gt;flexGrow() / totalFlexGrow));
            else if (availableFreeSpace &lt; 0 &amp;&amp; totalWeightedFlexShrink &gt; 0 &amp;&amp; flexSign == NegativeFlexibility &amp;&amp; isfinite(totalWeightedFlexShrink))
                childSize += static_cast&lt;int&gt;(lroundf(availableFreeSpace * child-&gt;style()-&gt;flexShrink() * preferredChildSize / totalWeightedFlexShrink));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677246</commentid>
    <comment_count>3</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-24 15:18:29 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; The problem might be the following code in RenderFlexibleBox::resolveFlexibleLengths:
&gt; 
&gt;             if (availableFreeSpace &gt; 0 &amp;&amp; totalFlexGrow &gt; 0 &amp;&amp; flexSign == PositiveFlexibility &amp;&amp; isfinite(totalFlexGrow))
&gt;                 childSize += static_cast&lt;int&gt;(lroundf(availableFreeSpace * child-&gt;style()-&gt;flexGrow() / totalFlexGrow));
&gt;             else if (availableFreeSpace &lt; 0 &amp;&amp; totalWeightedFlexShrink &gt; 0 &amp;&amp; flexSign == NegativeFlexibility &amp;&amp; isfinite(totalWeightedFlexShrink))
&gt;                 childSize += static_cast&lt;int&gt;(lroundf(availableFreeSpace * child-&gt;style()-&gt;flexShrink() * preferredChildSize / totalWeightedFlexShrink));

That seems likely.  I&apos;ll see if I can track down the history of the lroundf usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677254</commentid>
    <comment_count>4</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-07-24 15:20:11 -0700</bug_when>
    <thetext>turns out it is not quite that easy. Getting rid of that rounding makes both boxes return 50.5 and prevents the yellow box from being painted outside the container but it does cause the blue and yellow boxes to overlap by one pixel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677267</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-24 15:28:39 -0700</bug_when>
    <thetext>The lroundf is from the initial commit.  It doesn&apos;t seem necessary now, but we&apos;ll have to do something more to prevent the overlapping content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677272</commentid>
    <comment_count>6</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-07-24 15:31:09 -0700</bug_when>
    <thetext>Changing childLocation on line 1022 from IntPoint to LayoutPoint, in addition to getting rid of the rounding, seems to fix the issue. Might be other edge cases though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677276</commentid>
    <comment_count>7</comment_count>
      <attachid>154156</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-07-24 15:33:18 -0700</bug_when>
    <thetext>Created attachment 154156
proof of concept patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677282</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-24 15:35:28 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Changing childLocation on line 1022 from IntPoint to LayoutPoint, in addition to getting rid of the rounding, seems to fix the issue. Might be other edge cases though.

Magical!  When I make both those changes, all the flexbox tests pass for me.  I&apos;ll add a layout test for this and upload as a new patch.  Thanks for the help!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677284</commentid>
    <comment_count>9</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-07-24 15:37:05 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; Changing childLocation on line 1022 from IntPoint to LayoutPoint, in addition to getting rid of the rounding, seems to fix the issue. Might be other edge cases though.
&gt; 
&gt; Magical!  When I make both those changes, all the flexbox tests pass for me.  I&apos;ll add a layout test for this and upload as a new patch.  Thanks for the help!

Nice! Glad I was able to help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678611</commentid>
    <comment_count>10</comment_count>
      <attachid>154482</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-25 16:45:24 -0700</bug_when>
    <thetext>Created attachment 154482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678703</commentid>
    <comment_count>11</comment_count>
      <attachid>154482</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-07-25 18:17:16 -0700</bug_when>
    <thetext>Comment on attachment 154482
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678776</commentid>
    <comment_count>12</comment_count>
      <attachid>154482</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-25 19:25:10 -0700</bug_when>
    <thetext>Comment on attachment 154482
Patch

Clearing flags on attachment: 154482

Committed r123696: &lt;http://trac.webkit.org/changeset/123696&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678777</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-25 19:25:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679504</commentid>
    <comment_count>14</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2012-07-26 10:46:05 -0700</bug_when>
    <thetext>It looks like this patch caused a couple test failures:

http://build.webkit.org/results/Apple%20Lion%20Debug%20WK1%20(Tests)/r123756%20(1286)/results.html

http://build.webkit.org/results/Apple%20Lion%20Debug%20WK1%20(Tests)/r123756%20(1286)/css3/flexbox/flex-algorithm-min-max-pretty-diff.html

and 

http://build.webkit.org/results/Apple%20Lion%20Debug%20WK1%20(Tests)/r123756%20(1286)/css3/flexbox/flex-rounding-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679530</commentid>
    <comment_count>15</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-26 11:07:58 -0700</bug_when>
    <thetext>Tracking test failures in bug 92352.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154156</attachid>
            <date>2012-07-24 15:33:18 -0700</date>
            <delta_ts>2012-07-25 16:45:19 -0700</delta_ts>
            <desc>proof of concept patch</desc>
            <filename>subpixel_flex.patch</filename>
            <type>text/plain</type>
            <size>1894</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cAkocmV2aXNpb24gMTIzMjU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
ZXhpYmxlQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODc4LDkgKzg3OCw5IEBACiAgICAgICAg
ICAgICBMYXlvdXRVbml0IHByZWZlcnJlZENoaWxkU2l6ZSA9IHByZWZlcnJlZE1haW5BeGlzQ29u
dGVudEV4dGVudEZvckNoaWxkKGNoaWxkKTsKICAgICAgICAgICAgIExheW91dFVuaXQgY2hpbGRT
aXplID0gcHJlZmVycmVkQ2hpbGRTaXplOwogICAgICAgICAgICAgaWYgKGF2YWlsYWJsZUZyZWVT
cGFjZSA+IDAgJiYgdG90YWxGbGV4R3JvdyA+IDAgJiYgZmxleFNpZ24gPT0gUG9zaXRpdmVGbGV4
aWJpbGl0eSAmJiBpc2Zpbml0ZSh0b3RhbEZsZXhHcm93KSkKLSAgICAgICAgICAgICAgICBjaGls
ZFNpemUgKz0gc3RhdGljX2Nhc3Q8aW50Pihscm91bmRmKGF2YWlsYWJsZUZyZWVTcGFjZSAqIGNo
aWxkLT5zdHlsZSgpLT5mbGV4R3JvdygpIC8gdG90YWxGbGV4R3JvdykpOworICAgICAgICAgICAg
ICAgIGNoaWxkU2l6ZSArPSBhdmFpbGFibGVGcmVlU3BhY2UgKiBjaGlsZC0+c3R5bGUoKS0+Zmxl
eEdyb3coKSAvIHRvdGFsRmxleEdyb3c7CiAgICAgICAgICAgICBlbHNlIGlmIChhdmFpbGFibGVG
cmVlU3BhY2UgPCAwICYmIHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5rID4gMCAmJiBmbGV4U2lnbiA9
PSBOZWdhdGl2ZUZsZXhpYmlsaXR5ICYmIGlzZmluaXRlKHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5r
KSkKLSAgICAgICAgICAgICAgICBjaGlsZFNpemUgKz0gc3RhdGljX2Nhc3Q8aW50Pihscm91bmRm
KGF2YWlsYWJsZUZyZWVTcGFjZSAqIGNoaWxkLT5zdHlsZSgpLT5mbGV4U2hyaW5rKCkgKiBwcmVm
ZXJyZWRDaGlsZFNpemUgLyB0b3RhbFdlaWdodGVkRmxleFNocmluaykpOworICAgICAgICAgICAg
ICAgIGNoaWxkU2l6ZSArPSBhdmFpbGFibGVGcmVlU3BhY2UgKiBjaGlsZC0+c3R5bGUoKS0+Zmxl
eFNocmluaygpICogcHJlZmVycmVkQ2hpbGRTaXplIC8gdG90YWxXZWlnaHRlZEZsZXhTaHJpbms7
CiAKICAgICAgICAgICAgIExheW91dFVuaXQgYWRqdXN0ZWRDaGlsZFNpemUgPSBhZGp1c3RDaGls
ZFNpemVGb3JNaW5BbmRNYXgoY2hpbGQsIGNoaWxkU2l6ZSwgZmxleGJveEF2YWlsYWJsZUNvbnRl
bnRFeHRlbnQpOwogICAgICAgICAgICAgY2hpbGRTaXplcy5hcHBlbmQoYWRqdXN0ZWRDaGlsZFNp
emUpOwpAQCAtMTAxOCw3ICsxMDE5LDcgQEAKICAgICAgICAgbWFpbkF4aXNPZmZzZXQgKz0gZmxv
d0F3YXJlTWFyZ2luU3RhcnRGb3JDaGlsZChjaGlsZCk7CiAKICAgICAgICAgTGF5b3V0VW5pdCBj
aGlsZE1haW5FeHRlbnQgPSBtYWluQXhpc0V4dGVudEZvckNoaWxkKGNoaWxkKTsKLSAgICAgICAg
SW50UG9pbnQgY2hpbGRMb2NhdGlvbihzaG91bGRGbGlwTWFpbkF4aXMgPyB0b3RhbE1haW5FeHRl
bnQgLSBtYWluQXhpc09mZnNldCAtIGNoaWxkTWFpbkV4dGVudCA6IG1haW5BeGlzT2Zmc2V0LAor
ICAgICAgICBMYXlvdXRQb2ludCBjaGlsZExvY2F0aW9uKHNob3VsZEZsaXBNYWluQXhpcyA/IHRv
dGFsTWFpbkV4dGVudCAtIG1haW5BeGlzT2Zmc2V0IC0gY2hpbGRNYWluRXh0ZW50IDogbWFpbkF4
aXNPZmZzZXQsCiAgICAgICAgICAgICBjcm9zc0F4aXNPZmZzZXQgKyBmbG93QXdhcmVNYXJnaW5C
ZWZvcmVGb3JDaGlsZChjaGlsZCkpOwogCiAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0aW5nIGxh
eW91dCBkZWx0YXMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154482</attachid>
            <date>2012-07-25 16:45:24 -0700</date>
            <delta_ts>2012-07-25 19:25:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92163-20120725164540.patch</filename>
            <type>text/plain</type>
            <size>8029</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTFkYzQ5NTRlNTM0Yjkw
ZjIyZDJlZjRiMjQyY2YwNDU5ZmNmMmZjNi4uNjNiOWU0NjM4NTkwYzU1ODJlMWY1MzQ3NDU5NzVh
MDNmZTg4ODVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA3LTI1ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgZmxleGl0ZW1zIGNhbiBvdmVy
ZmxvdyB0aGUgZmxleGJveCBkdWUgdG8gcm91bmRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3Qgcm91bmQgZmxleCBpdGVtIHNpemVzIGFuZCB1
c2UgTGF5b3V0UG9pbnQgZm9yIHRoZSBsb2NhdGlvbiBvZiBmbGV4IGl0ZW1zLgorCisgICAgICAg
IFRlc3Q6IGNzczMvZmxleGJveC9mbGV4LXJvdW5kaW5nLmh0bWwKKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4
aWJsZUJveDo6cmVzb2x2ZUZsZXhpYmxlTGVuZ3Rocyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbGV4aWJsZUJveDo6bGF5b3V0QW5kUGxhY2VDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0Q29sdW1uUmV2ZXJzZSk6CisKIDIwMTItMDctMjUg
IE1pa2UgUmVlZCAgPHJlZWRAZ29vZ2xlLmNvbT4KIAogICAgICAgICBmaXggdGVzdCBpbiBiZWdp
bkxheWVyQ2xpcHBlZFRvSW1hZ2UgdG8gY2hlY2sgZm9yIGltbXV0YWJpbGl0eSBpZiB3ZSdyZSBn
b2luZyB0byBkbyBhIHNoYWxsb3ctY29weQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggZTdjMDU2M2Q2ZDFiNzgyNDU3ZWVlNWE4YTU1MDVi
YzY4Y2Y3MjYxNS4uNThjMTQ1NDgzYmZkNzZlNzY1ZmQ3OWJkMTc5ZDhjNjQwMjdhM2M4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBAIC04
NzgsOSArODc4LDkgQEAgYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6cmVzb2x2ZUZsZXhpYmxlTGVu
Z3RocyhGbGV4U2lnbiBmbGV4U2lnbiwgY29uc3QgT3JkZXJlZEYKICAgICAgICAgICAgIExheW91
dFVuaXQgcHJlZmVycmVkQ2hpbGRTaXplID0gcHJlZmVycmVkTWFpbkF4aXNDb250ZW50RXh0ZW50
Rm9yQ2hpbGQoY2hpbGQpOwogICAgICAgICAgICAgTGF5b3V0VW5pdCBjaGlsZFNpemUgPSBwcmVm
ZXJyZWRDaGlsZFNpemU7CiAgICAgICAgICAgICBpZiAoYXZhaWxhYmxlRnJlZVNwYWNlID4gMCAm
JiB0b3RhbEZsZXhHcm93ID4gMCAmJiBmbGV4U2lnbiA9PSBQb3NpdGl2ZUZsZXhpYmlsaXR5ICYm
IGlzZmluaXRlKHRvdGFsRmxleEdyb3cpKQotICAgICAgICAgICAgICAgIGNoaWxkU2l6ZSArPSBz
dGF0aWNfY2FzdDxpbnQ+KGxyb3VuZGYoYXZhaWxhYmxlRnJlZVNwYWNlICogY2hpbGQtPnN0eWxl
KCktPmZsZXhHcm93KCkgLyB0b3RhbEZsZXhHcm93KSk7CisgICAgICAgICAgICAgICAgY2hpbGRT
aXplICs9IGF2YWlsYWJsZUZyZWVTcGFjZSAqIGNoaWxkLT5zdHlsZSgpLT5mbGV4R3JvdygpIC8g
dG90YWxGbGV4R3JvdzsKICAgICAgICAgICAgIGVsc2UgaWYgKGF2YWlsYWJsZUZyZWVTcGFjZSA8
IDAgJiYgdG90YWxXZWlnaHRlZEZsZXhTaHJpbmsgPiAwICYmIGZsZXhTaWduID09IE5lZ2F0aXZl
RmxleGliaWxpdHkgJiYgaXNmaW5pdGUodG90YWxXZWlnaHRlZEZsZXhTaHJpbmspKQotICAgICAg
ICAgICAgICAgIGNoaWxkU2l6ZSArPSBzdGF0aWNfY2FzdDxpbnQ+KGxyb3VuZGYoYXZhaWxhYmxl
RnJlZVNwYWNlICogY2hpbGQtPnN0eWxlKCktPmZsZXhTaHJpbmsoKSAqIHByZWZlcnJlZENoaWxk
U2l6ZSAvIHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5rKSk7CisgICAgICAgICAgICAgICAgY2hpbGRT
aXplICs9IGF2YWlsYWJsZUZyZWVTcGFjZSAqIGNoaWxkLT5zdHlsZSgpLT5mbGV4U2hyaW5rKCkg
KiBwcmVmZXJyZWRDaGlsZFNpemUgLyB0b3RhbFdlaWdodGVkRmxleFNocmluazsKIAogICAgICAg
ICAgICAgTGF5b3V0VW5pdCBhZGp1c3RlZENoaWxkU2l6ZSA9IGFkanVzdENoaWxkU2l6ZUZvck1p
bkFuZE1heChjaGlsZCwgY2hpbGRTaXplLCBmbGV4Ym94QXZhaWxhYmxlQ29udGVudEV4dGVudCk7
CiAgICAgICAgICAgICBjaGlsZFNpemVzLmFwcGVuZChhZGp1c3RlZENoaWxkU2l6ZSk7CkBAIC0x
MDE4LDcgKzEwMTgsNyBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRBbmRQbGFjZUNo
aWxkcmVuKExheW91dFVuaXQmIGNyb3NzQXhpc09mZnNldCwgY29ucwogICAgICAgICBtYWluQXhp
c09mZnNldCArPSBmbG93QXdhcmVNYXJnaW5TdGFydEZvckNoaWxkKGNoaWxkKTsKIAogICAgICAg
ICBMYXlvdXRVbml0IGNoaWxkTWFpbkV4dGVudCA9IG1haW5BeGlzRXh0ZW50Rm9yQ2hpbGQoY2hp
bGQpOwotICAgICAgICBJbnRQb2ludCBjaGlsZExvY2F0aW9uKHNob3VsZEZsaXBNYWluQXhpcyA/
IHRvdGFsTWFpbkV4dGVudCAtIG1haW5BeGlzT2Zmc2V0IC0gY2hpbGRNYWluRXh0ZW50IDogbWFp
bkF4aXNPZmZzZXQsCisgICAgICAgIExheW91dFBvaW50IGNoaWxkTG9jYXRpb24oc2hvdWxkRmxp
cE1haW5BeGlzID8gdG90YWxNYWluRXh0ZW50IC0gbWFpbkF4aXNPZmZzZXQgLSBjaGlsZE1haW5F
eHRlbnQgOiBtYWluQXhpc09mZnNldCwKICAgICAgICAgICAgIGNyb3NzQXhpc09mZnNldCArIGZs
b3dBd2FyZU1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkKSk7CiAKICAgICAgICAgLy8gRklYTUU6
IFN1cHBvcnRpbmcgbGF5b3V0IGRlbHRhcy4KQEAgLTEwNjEsNyArMTA2MSw3IEBAIHZvaWQgUmVu
ZGVyRmxleGlibGVCb3g6OmxheW91dENvbHVtblJldmVyc2UoY29uc3QgT3JkZXJlZEZsZXhJdGVt
TGlzdCYgY2hpbGRyZW4sCiAgICAgICAgIG1haW5BeGlzT2Zmc2V0IC09IG1haW5BeGlzRXh0ZW50
Rm9yQ2hpbGQoY2hpbGQpICsgZmxvd0F3YXJlTWFyZ2luRW5kRm9yQ2hpbGQoY2hpbGQpOwogCiAg
ICAgICAgIExheW91dFJlY3Qgb2xkUmVjdCA9IGNoaWxkLT5mcmFtZVJlY3QoKTsKLSAgICAgICAg
c2V0Rmxvd0F3YXJlTG9jYXRpb25Gb3JDaGlsZChjaGlsZCwgSW50UG9pbnQobWFpbkF4aXNPZmZz
ZXQsIGNyb3NzQXhpc09mZnNldCArIGZsb3dBd2FyZU1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxk
KSkpOworICAgICAgICBzZXRGbG93QXdhcmVMb2NhdGlvbkZvckNoaWxkKGNoaWxkLCBMYXlvdXRQ
b2ludChtYWluQXhpc09mZnNldCwgY3Jvc3NBeGlzT2Zmc2V0ICsgZmxvd0F3YXJlTWFyZ2luQmVm
b3JlRm9yQ2hpbGQoY2hpbGQpKSk7CiAgICAgICAgIGlmICghc2VsZk5lZWRzTGF5b3V0KCkgJiYg
Y2hpbGQtPmNoZWNrRm9yUmVwYWludER1cmluZ0xheW91dCgpKQogICAgICAgICAgICAgY2hpbGQt
PnJlcGFpbnREdXJpbmdMYXlvdXRJZk1vdmVkKG9sZFJlY3QpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjdjOGI3ZTlk
MjU2ZjcwMzM3ZjI3YTEzNTY4NDUwMGEzNTIzODNlMC4uMjE5MjIyNzI4NDdjM2E0MDJjNDk0MTY2
ZTQ5YjgxMGI2MmZhYWU2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA3LTI1ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgZmxleGl0ZW1zIGNhbiBvdmVy
ZmxvdyB0aGUgZmxleGJveCBkdWUgdG8gcm91bmRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIGRpdmlkaW5nIHNwYWNlIGluIG5vbi1p
bnRlZ3JhbCBhbW91bnRzLgorCisgICAgICAgICogY3NzMy9mbGV4Ym94L2ZsZXgtcm91bmRpbmct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvZmxleC1yb3VuZGlu
Zy5odG1sOiBBZGRlZC4KKwogMjAxMi0wNy0yNSAgTHVjaWFubyBXb2xmICA8bHVjaWFuby53b2xm
QG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSBmYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBz
ZSB0ZXN0cyBuZWVkIHVwZGF0ZSBhZnRlciByZWJhc2VsaW5lIGFuZCBuZXcgdGVzdGZvbnRzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1yb3VuZGluZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1yb3VuZGluZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjYxOTY2ZDAzMDgyYWJmMDY3ZmZhYzEyOTVjNGQyY2JjNzE5ODVlNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9mbGV4LXJvdW5kaW5n
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmxleGJv
eC9mbGV4LXJvdW5kaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1yb3Vu
ZGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2NDUyMGZmMGFjN2UxM2I3ZDNiODRkMGEzOWQ2ZDhhMGQ1
OWVkOTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1y
b3VuZGluZy5odG1sCkBAIC0wLDAgKzEsOTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
c3R5bGU+CisuZmxleGJveCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgIGJhY2tn
cm91bmQtY29sb3I6ICNhYWE7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorLmZsZXhib3gg
Om50aC1jaGlsZCgxKSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKy5mbGV4Ym94
IDpudGgtY2hpbGQoMikgeworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorLmZsZXhi
b3ggOm50aC1jaGlsZCgzKSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorLmZsZXhi
b3ggOm50aC1jaGlsZCg0KSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OworfQorLmZs
ZXhib3ggOm50aC1jaGlsZCg1KSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcHVycGxlOworfQor
LmZsZXhib3ggOm50aC1jaGlsZCg2KSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOwor
fQorLmZsZXhib3ggOm50aC1jaGlsZCg3KSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogbGltZTsK
K30KKworLmZsZXhib3ggPiBkaXYgeworICAgIC13ZWJraXQtZmxleDogMTsKK30KKy5jb2x1bW4g
eworICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICB3aWR0aDogMjAwcHg7
CisgICAgaGVpZ2h0OiAyMDBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2NoZWNrLWxheW91dC5qcyI+PC9zY3JpcHQ+Cis8Ym9k
eSBvbmxvYWQ9ImNoZWNrTGF5b3V0KCcuZmxleGJveCcpIj4KKworPGRpdiBjbGFzcz0iZmxleGJv
eCIgc3R5bGU9IndpZHRoOiAxMDFweDsgaGVpZ2h0OiAxMHB4Ij4KKyAgICA8ZGl2IGRhdGEtZXhw
ZWN0ZWQtd2lkdGg9IjUxIiBkYXRhLW9mZnNldC14PSIwIj48L2Rpdj4KKyAgICA8ZGl2IGRhdGEt
ZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLW9mZnNldC14PSI1MSI+PC9kaXY+Cis8L2Rpdj4KKwor
PGRpdiBjbGFzcz0iZmxleGJveCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMHB4Ij4K
KyAgICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjMzIiBkYXRhLW9mZnNldC14PSIwIj48L2Rp
dj4KKyAgICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjM0IiBkYXRhLW9mZnNldC14PSIzMyI+
PC9kaXY+CisgICAgPGRpdiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzMyIgZGF0YS1vZmZzZXQteD0i
NjciPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImZsZXhib3giIHN0eWxlPSItd2Via2l0
LWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgd2lkdGg6IDEwMXB4OyBoZWlnaHQ6IDEwcHgi
PgorICAgIDxkaXYgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtb2Zmc2V0LXg9IjUxIj48
L2Rpdj4KKyAgICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUxIiBkYXRhLW9mZnNldC14PSIw
Ij48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJmbGV4Ym94IiBzdHlsZT0iLXdlYmtpdC1m
bGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMHB4Ij4K
KyAgICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjMzIiBkYXRhLW9mZnNldC14PSI2NyI+PC9k
aXY+CisgICAgPGRpdiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzNCIgZGF0YS1vZmZzZXQteD0iMzMi
PjwvZGl2PgorICAgIDxkaXYgZGF0YS1leHBlY3RlZC13aWR0aD0iMzMiIGRhdGEtb2Zmc2V0LXg9
IjAiPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImZsZXhib3giIHN0eWxlPSItd2Via2l0
LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGhlaWdodDogMTAxcHg7IHdpZHRoOiAxMDBweCI+Cisg
ICAgPGRpdiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTEiIGRhdGEtb2Zmc2V0LXk9IjAiPjwvZGl2
PgorICAgIDxkaXYgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIiBkYXRhLW9mZnNldC15PSI1MSI+
PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iZmxleGJveCIgc3R5bGU9Ii13ZWJraXQtZmxl
eC1kaXJlY3Rpb246IGNvbHVtbjsgaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDEwMHB4Ij4KKyAgICA8
ZGl2IGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIzMyIgZGF0YS1vZmZzZXQteT0iMCI+PC9kaXY+Cisg
ICAgPGRpdiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMzQiIGRhdGEtb2Zmc2V0LXk9IjMzIj48L2Rp
dj4KKyAgICA8ZGl2IGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIzMyIgZGF0YS1vZmZzZXQteT0iNjci
PjwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImZsZXhib3giIHN0eWxlPSItd2Via2l0LWZs
ZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgaGVpZ2h0OiAxMDFweDsgd2lkdGg6IDEwMHB4
Ij4KKyAgICA8ZGl2IGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCIgZGF0YS1vZmZzZXQteT0iNTEi
PjwvZGl2PgorICAgIDxkaXYgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUxIiBkYXRhLW9mZnNldC15
PSIwIj48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJmbGV4Ym94IiBzdHlsZT0iLXdlYmtp
dC1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IGhlaWdodDogMTAwcHg7IHdpZHRoOiAx
MDBweCI+CisgICAgPGRpdiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMzMiIGRhdGEtb2Zmc2V0LXk9
IjY3Ij48L2Rpdj4KKyAgICA8ZGl2IGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIzNCIgZGF0YS1vZmZz
ZXQteT0iMzMiPjwvZGl2PgorICAgIDxkaXYgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjMzIiBkYXRh
LW9mZnNldC15PSIwIj48L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>