<?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>51928</bug_id>
          
          <creation_ts>2011-01-05 07:36:39 -0800</creation_ts>
          <short_desc>[chromium] Enable reuse of RenderSurface for drawing.</short_desc>
          <delta_ts>2011-01-10 12:29:50 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="W. James MacLean">wjmaclean</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>backer</cc>
    
    <cc>cmarrin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>enne</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>levin</cc>
    
    <cc>rjkroege</cc>
    
    <cc>scheib</cc>
    
    <cc>senorblanco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vangelis</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>329559</commentid>
    <comment_count>0</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-01-05 07:36:39 -0800</bug_when>
    <thetext>[chromium] Enable reuse of RenderSurface for drawing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329561</commentid>
    <comment_count>1</comment_count>
      <attachid>78006</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-01-05 07:40:47 -0800</bug_when>
    <thetext>Created attachment 78006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329565</commentid>
    <comment_count>2</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-01-05 07:55:09 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=78006) [details]

This patch suggest a modification to RenderSurfaceChromium that allows the object to be selected for drawing multiple times via LayerRendererChromium::useRenderSurface. This use case arises when compositing to an offscreen texture (atlhough not often it appears ...the test compositing/geometry/fixed-position.html is the only case I know of thus far).

This patch also contains two minor modifications to 
LayerRendererChromium::drawLayers(), which I would like to *discuss* (I&apos;m not necessarily proposing they would be part of the final patch).

The mods are marked with comments that begin &quot;// WJM&quot;. While testing with fixed-position.html and using offscreen compositing, I found that there was a problem with the alpha layers, and it seems to be solved if we turn on the alpha channel mask during drawLayers. The test places two transparent rectangles on the tab, and a piece of text below them. As the text is scrolled up into the region of the rectangles, it is visible &apos;through the colored layers&apos;, and the black text takes on the colours of the rectangles. Without the two commented lines, the text changes color, but the rectangles are not visible, and thus the test fails. Again, this only occurs during offscreen compositing. The change does not change test results for any other GPU test *during offscreen compositing*.

I&apos;d be interested in thoughts/suggestions regarding this apparent difference between compositing directly to the display versus to an offscreen texture. It may be we will need to address this in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329566</commentid>
    <comment_count>3</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-01-05 08:01:49 -0800</bug_when>
    <thetext>Not what you&apos;re asking for, but something to consider for a another revision: colorMask is a bad api.  Those bools should be enums as the current form is unreadable and fragile.
  &quot;m_context-&gt;colorMask(true, true, true, true)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329571</commentid>
    <comment_count>4</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-01-05 08:14:19 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Not what you&apos;re asking for, but something to consider for a another revision: colorMask is a bad api.  Those bools should be enums as the current form is unreadable and fragile.
&gt;   &quot;m_context-&gt;colorMask(true, true, true, true)&quot;

Thanks David. If these lines do end up in the final patch, I will look into converting to using enums.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329614</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-05 09:41:19 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Not what you&apos;re asking for, but something to consider for a another revision: colorMask is a bad api.  Those bools should be enums as the current form is unreadable and fragile.
&gt; &gt;   &quot;m_context-&gt;colorMask(true, true, true, true)&quot;
&gt; 
&gt; Thanks David. If these lines do end up in the final patch, I will look into converting to using enums.

Please don&apos;t do that. The GraphicsContext3D methods mirror the OpenGL ES 2.0 API and for better or worse this is how OpenGL phrases this call. Please do not make spurious changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329621</commentid>
    <comment_count>6</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-01-05 10:01:31 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; Not what you&apos;re asking for, but something to consider for a another revision: colorMask is a bad api.  Those bools should be enums as the current form is unreadable and fragile.
&gt; &gt; &gt;   &quot;m_context-&gt;colorMask(true, true, true, true)&quot;
&gt; &gt; 
&gt; &gt; Thanks David. If these lines do end up in the final patch, I will look into converting to using enums.
&gt; 
&gt; Please don&apos;t do that. The GraphicsContext3D methods mirror the OpenGL ES 2.0 API and for better or worse this is how OpenGL phrases this call. Please do not make spurious changes.

Thanks for explaining.

fwiw, I think you&apos;re repeating yourself: &quot;Please don&apos;t do that. ... Please do not make spurious changes.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330179</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-01-06 09:21:40 -0800</bug_when>
    <thetext>It&apos;s unfortunate that the Render* prefix is used in this code (not new in this patch though), since it&apos;s well-established for RenderObject and subclasses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330201</commentid>
    <comment_count>8</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-01-06 10:20:48 -0800</bug_when>
    <thetext>This change seems to violate the comment above it:

    // Mask out writes to alpha channel: subpixel antialiasing via Skia results in invalid
    // zero alpha values on text glyphs. The root layer is always opaque.
    m_context-&gt;colorMask(true, true, true, false);

Either this change is wrong, or the comment is wrong.  Vangelis, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330217</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-01-06 10:48:06 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; It&apos;s unfortunate that the Render* prefix is used in this code (not new in this patch though), since it&apos;s well-established for RenderObject and subclasses.

I think the risk of confusion is low here given that RenderSurface exists in platform/ and is never referenced outside of platform/, so there can&apos;t be any code that uses RenderObject or RenderLayer and RenderSurface at the same time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330752</commentid>
    <comment_count>10</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-01-07 06:59:07 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; This change seems to violate the comment above it:
&gt; 
&gt;     // Mask out writes to alpha channel: subpixel antialiasing via Skia results in invalid
&gt;     // zero alpha values on text glyphs. The root layer is always opaque.
&gt;     m_context-&gt;colorMask(true, true, true, false);
&gt; 
&gt; Either this change is wrong, or the comment is wrong.  Vangelis, what do you think?

I&apos;ve moved the comment along with the change to the color mask, but I do not know about the origin of the comment.

I&apos;m happy to prepare a test-patch people could apply to ToT to see for themselves the difference between leaving the alpha mask on and off, if that would help. As mentioned earlier, so far it&apos;s just the one test case I know of that triggers it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330833</commentid>
    <comment_count>11</comment_count>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2011-01-07 10:08:32 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; &gt; This change seems to violate the comment above it:
&gt; &gt; 
&gt; &gt;     // Mask out writes to alpha channel: subpixel antialiasing via Skia results in invalid
&gt; &gt;     // zero alpha values on text glyphs. The root layer is always opaque.
&gt; &gt;     m_context-&gt;colorMask(true, true, true, false);
&gt; &gt; 
&gt; &gt; Either this change is wrong, or the comment is wrong.  Vangelis, what do you think?
&gt; 
&gt; I&apos;ve moved the comment along with the change to the color mask, but I do not know about the origin of the comment.
&gt; 
&gt; I&apos;m happy to prepare a test-patch people could apply to ToT to see for themselves the difference between leaving the alpha mask on and off, if that would help. As mentioned earlier, so far it&apos;s just the one test case I know of that triggers it.


The comment originated with a change I made to remove zero values from the alpha channel. Writing to the alpha channel is momentarily disabled:
http://trac.webkit.org/changeset/69266
+    // Mask out writes to alpha channel: ClearType via Skia results in invalid
+    // zero alpha values on text glyphs. The root layer is always opaque.
+    GLC(m_context, m_context-&gt;colorMask(true, true, true, false));
     TransformationMatrix layerMatrix;
     layerMatrix.translate3d( ... );
     LayerChromium::drawTexturedQuad( ... );
+    GLC(m_context, m_context-&gt;colorMask(true, true, true, true));

A trivial change, then this change that modified logic and comment:
http://trac.webkit.org/changeset/74568
The color mask is modified to only ever be set to false for alpha.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330836</commentid>
    <comment_count>12</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-01-07 10:11:54 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; &gt; This change seems to violate the comment above it:
&gt; &gt; 
&gt; &gt;     // Mask out writes to alpha channel: subpixel antialiasing via Skia results in invalid
&gt; &gt;     // zero alpha values on text glyphs. The root layer is always opaque.
&gt; &gt;     m_context-&gt;colorMask(true, true, true, false);
&gt; &gt; 
&gt; &gt; Either this change is wrong, or the comment is wrong.  Vangelis, what do you think?
&gt; 
&gt; I&apos;ve moved the comment along with the change to the color mask, but I do not know about the origin of the comment.
&gt; 
&gt; I&apos;m happy to prepare a test-patch people could apply to ToT to see for themselves the difference between leaving the alpha mask on and off, if that would help. As mentioned earlier, so far it&apos;s just the one test case I know of that triggers it.

Here&apos;s my suspicion as to what&apos;s happening:  The RenderSurface&apos;s texture starts out with Alpha = 1 for all pixels (which is guaranteed from setting the colorMask to (true, true, true, true) and clearing).  The code subsequently masks out alpha writes which should guarantee that the RenderSurface texture keeps alpha = 1 for all pixels all the way through.

In the offscreen rendering path, if your window backbuffer was never cleared, it could have non-one alpha values for pixels so when you render the one large quad with the RenderSurface&apos;s contents, since you are masking alpha, you won&apos;t affect the existing alpha values.  

Can you try setting the color mask back to (true, true, true, true) before drawing the offscreen texture into the final window backbuffer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330838</commentid>
    <comment_count>13</comment_count>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2011-01-07 10:15:42 -0800</bug_when>
    <thetext>(In reply to comment #11)
[sorry, adding CC sent comment early, continuing] 

enne made that logic change.

That logic was then adjusted with a clear that is permitted to write to the alpha channel by wjmaclean@chromium.org
http://trac.webkit.org/changeset/75030

So, it seems we desire:
alpha writes enabled for clear
alpha writes disabled at all other times</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330842</commentid>
    <comment_count>14</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-01-07 10:19:36 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; This change seems to violate the comment above it:
&gt; &gt; &gt; 
&gt; &gt; &gt;     // Mask out writes to alpha channel: subpixel antialiasing via Skia results in invalid
&gt; &gt; &gt;     // zero alpha values on text glyphs. The root layer is always opaque.
&gt; &gt; &gt;     m_context-&gt;colorMask(true, true, true, false);
&gt; &gt; &gt; 
&gt; &gt; &gt; Either this change is wrong, or the comment is wrong.  Vangelis, what do you think?
&gt; &gt; 
&gt; &gt; I&apos;ve moved the comment along with the change to the color mask, but I do not know about the origin of the comment.
&gt; &gt; 
&gt; &gt; I&apos;m happy to prepare a test-patch people could apply to ToT to see for themselves the difference between leaving the alpha mask on and off, if that would help. As mentioned earlier, so far it&apos;s just the one test case I know of that triggers it.
&gt; 
&gt; Here&apos;s my suspicion as to what&apos;s happening:  The RenderSurface&apos;s texture starts out with Alpha = 1 for all pixels (which is guaranteed from setting the colorMask to (true, true, true, true) and clearing).  The code subsequently masks out alpha writes which should guarantee that the RenderSurface texture keeps alpha = 1 for all pixels all the way through.
&gt; 
&gt; In the offscreen rendering path, if your window backbuffer was never cleared, it could have non-one alpha values for pixels so when you render the one large quad with the RenderSurface&apos;s contents, since you are masking alpha, you won&apos;t affect the existing alpha values.  
&gt; 
&gt; Can you try setting the color mask back to (true, true, true, true) before drawing the offscreen texture into the final window backbuffer?

I&apos;d be happy to try that --- it sounds like a good idea. It will have to wait until Monday, as my z600 is somewhere in transit while we do our office move. If the change is successful, I&apos;ll re-submit the patch with the colorMask lines removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330859</commentid>
    <comment_count>15</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-01-07 10:39:58 -0800</bug_when>
    <thetext>Are there any plans for adding automated testing of offscreen compositing so that this doesn&apos;t break again in the future? As I&apos;m sure the compositor will get refactored again in the future, it&apos;d be nice to have some tests as a warning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330862</commentid>
    <comment_count>16</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-01-07 10:45:45 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Are there any plans for adding automated testing of offscreen compositing so that this doesn&apos;t break again in the future? As I&apos;m sure the compositor will get refactored again in the future, it&apos;d be nice to have some tests as a warning.

You read my mind on this one.

Is it worth (i) adding a command-line switch (--test-offscreen-compositing or something similar), and (ii) in debug mode compiling in the test function which copies the offscreen texture back to the display buffer? Then the test suite could be automatically run on the offscreen compositing version as well.

If this seems like a reasonable approach, I can file a new bug and submit the appropriate patch at the beginning of next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331675</commentid>
    <comment_count>17</comment_count>
      <attachid>78407</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-01-10 10:19:40 -0800</bug_when>
    <thetext>Created attachment 78407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331677</commentid>
    <comment_count>18</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-01-10 10:21:29 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Created an attachment (id=78407) [details]
&gt; Patch

Vangelis&apos; solution seems to have fixed it. In fact I had been clearing the display buffer, but I was only clearing the alpha channel. Clearing all channels seems to be necessary.

I will check in the command-line switch for testing of offscreen rendering in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331684</commentid>
    <comment_count>19</comment_count>
      <attachid>78407</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-10 10:35:31 -0800</bug_when>
    <thetext>Comment on attachment 78407
Patch

Looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331767</commentid>
    <comment_count>20</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-01-10 11:36:00 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; Created an attachment (id=78407) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; Vangelis&apos; solution seems to have fixed it. In fact I had been clearing the display buffer, but I was only clearing the alpha channel. Clearing all channels seems to be necessary.
&gt; 

Glad to hear it works. From the behavior you&apos;re describing it sounds like when you do the final draw to the backbuffer you have blending enabled.  Unless you&apos;re expecting to composite multiple results, it will be a big performance win if you disable blend before rendering.  At that point you should in theory only have to clear the alpha channel of the backbuffer once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331800</commentid>
    <comment_count>21</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-01-10 11:59:40 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #18)
&gt; &gt; (In reply to comment #17)
&gt; &gt; &gt; Created an attachment (id=78407) [details] [details] [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Vangelis&apos; solution seems to have fixed it. In fact I had been clearing the display buffer, but I was only clearing the alpha channel. Clearing all channels seems to be necessary.
&gt; &gt; 
&gt; 
&gt; Glad to hear it works. From the behavior you&apos;re describing it sounds like when you do the final draw to the backbuffer you have blending enabled.  Unless you&apos;re expecting to composite multiple results, it will be a big performance win if you disable blend before rendering.  At that point you should in theory only have to clear the alpha channel of the backbuffer once.

I think then end goal is to composite multiple results, although there will likely be times when only one offscreen texture is being copied to the screen. In those cases we could disable blending before display.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331840</commentid>
    <comment_count>22</comment_count>
      <attachid>78407</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-10 12:29:43 -0800</bug_when>
    <thetext>Comment on attachment 78407
Patch

Clearing flags on attachment: 78407

Committed r75410: &lt;http://trac.webkit.org/changeset/75410&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331841</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-10 12:29:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78006</attachid>
            <date>2011-01-05 07:40:47 -0800</date>
            <delta_ts>2011-01-10 10:19:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51928-20110105103740.patch</filename>
            <type>text/plain</type>
            <size>5743</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzNhN2U3MWQxZWY3MTgxNGM5NTRlNjA1ZmUwYTQ3ZTJiMzUzZDk5OS4uM2QzMDFhMDMxODIzNTI3
YjNhNGFlNjNiMzNlMzFiMjY3ZGJmM2QyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0wMS0wNSAgVy4g
SmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBFbmFibGUgcmV1c2Ug
b2YgUmVuZGVyU3VyZmFjZSBmb3IgZHJhd2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUxOTI4CisKKyAgICAgICAgTW9kaWZpZXMgUmVuZGVyU3Vy
ZmFjZUNocm9taXVtOjpwcmVwYXJlQ29udGVudHNUZXh0dXJlIHRvIGF2b2lkIHRyeWluZyB0byAn
cmVzZXJ2ZScgYSB0ZXh0dXJlCisgICAgICAgIHRoYXQgaXMgYWxyZWFkeSByZXNlcnZlZCwgc2hv
dWxkIGFuIGF0dGVtcHQgYmUgbWFkZSB0byByZS1zZWxlY3QgYSBwcmV2aW91c2x5IGRyYXduIHJl
bmRlciBzdXJmYWNlCisgICAgICAgIGluIG9yZGVyIHRvIGNvbnRpbnVlIGRyYXdpbmcgdG8gaXQu
IFRoaXMgdXNlIGNhc2UgYXBwZWFycyB3aGVuIGNvbXBvc2l0aW5nIGludG8gYW4gb2Zmc2NyZWVu
IHRleHR1cmUuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0IChjb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi5odG1sKSB3aGVuIG9mZnNjcmVlbiBjb21wb3NpdGlu
ZyBlbmFibGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJS
ZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJv
bWl1bTo6ZHJhd0xheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJUZXh0dXJlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllclRleHR1cmU6OmlzUmVzZXJ2
ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VD
aHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdXJmYWNlQ2hyb21pdW06OnBy
ZXBhcmVDb250ZW50c1RleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RleHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYW5hZ2Vy
Ojppc1Byb3RlY3RlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4
dHVyZU1hbmFnZXIuaDoKKwogMjAxMS0wMS0wNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgRXJpYyBTZWlkZWwuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
UmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggOGQ3N2JlYWU5YjUzNjIyNzNiMzhhOThlOWM2YzQz
NzNiNDQ2ZjRiNC4uNjZiNDQyNTJmMDgyZTJkNzRmZjVjNmIxMzJlMWVkZjU2MDMyZDU2OCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVy
Q2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtMjY1LDggKzI2NSw4IEBAIHZvaWQgTGF5ZXJSZW5k
ZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzKGNvbnN0IEludFJlY3QmIHZpc2libGVSZWN0LCBjb25z
dCBJbnRSZWN0CiAgICAgbV9jb250ZXh0LT5jbGVhcihHcmFwaGljc0NvbnRleHQzRDo6Q09MT1Jf
QlVGRkVSX0JJVCk7CiAgICAgLy8gTWFzayBvdXQgd3JpdGVzIHRvIGFscGhhIGNoYW5uZWw6IHN1
YnBpeGVsIGFudGlhbGlhc2luZyB2aWEgU2tpYSByZXN1bHRzIGluIGludmFsaWQKICAgICAvLyB6
ZXJvIGFscGhhIHZhbHVlcyBvbiB0ZXh0IGdseXBocy4gVGhlIHJvb3QgbGF5ZXIgaXMgYWx3YXlz
IG9wYXF1ZS4KLSAgICBtX2NvbnRleHQtPmNvbG9yTWFzayh0cnVlLCB0cnVlLCB0cnVlLCBmYWxz
ZSk7Ci0KKyAgICBtX2NvbnRleHQtPmNvbG9yTWFzayh0cnVlLCB0cnVlLCB0cnVlLCB0cnVlKTsg
Ly8gV0pNIC0gbm9ybWFsbHkgc2hvdWxkIGJlIHQsdCx0LGYgYnV0IHNlZW1zIG5lY2Vzc2FyeSBm
b3IgY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24uaHRtbAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICBvbmx5IG5lZWRl
ZCB3aGVuIHJlbmRlcmluZyB0byBvZmZzY3JlZW4gdGV4dHVyZSAuLi4gY29tbWVudHMvc3VnZ2Vz
dGlvbnM/CiAgICAgdXBkYXRlQW5kRHJhd1Jvb3RMYXllcih0aWxlUGFpbnQsIHNjcm9sbGJhclBh
aW50LCB2aXNpYmxlUmVjdCwgY29udGVudFJlY3QpOwogCiAgICAgLy8gU2V0IHRoZSByb290IHZp
c2libGUvY29udGVudCByZWN0cyAtLS0gdXNlZCBieSBzdWJzZXF1ZW50IGRyYXdMYXllcnMgY2Fs
bHMuCkBAIC0zMjEsNiArMzIxLDggQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdM
YXllcnMoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QsIGNvbnN0IEludFJlY3QKIAogICAgIEdM
QyhtX2NvbnRleHQuZ2V0KCksIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHQzRDo6
U0NJU1NPUl9URVNUKSk7CiAgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9jb250ZXh0LT5kaXNh
YmxlKEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORCkpOworCisgICAgbV9jb250ZXh0LT5jb2xvck1h
c2sodHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpOyAvLyBXSk0gLSByZXNldCB0byBleHBlY3RlZCB2
YWx1ZSAuLi4KIH0KIAogdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmZpbmlzaCgpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZS5o
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmUuaAppbmRl
eCAzMTJhZGZhZTFjY2M0NGZmNzQ3ZDRhMjgzNzgwN2FhMDVjZmU2MjY1Li43MTFlNjg3Y2YwOGE0
YjY2NGUzMDFhODM3NDY1YzE2N2RiMjg3OWE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlLmgKQEAgLTQ4LDYgKzQ4LDExIEBAIHB1Ymxp
YzoKICAgICBib29sIGlzVmFsaWQoY29uc3QgSW50U2l6ZSYsIHVuc2lnbmVkIGZvcm1hdCk7CiAg
ICAgYm9vbCByZXNlcnZlKGNvbnN0IEludFNpemUmLCB1bnNpZ25lZCBmb3JtYXQpOwogICAgIHZv
aWQgdW5yZXNlcnZlKCk7CisgICAgYm9vbCBpc1Jlc2VydmVkKCkKKyAgICB7CisgICAgICAgIEFT
U0VSVChtX3RleHR1cmVNYW5hZ2VyKTsKKyAgICAgICAgcmV0dXJuIG1fdGV4dHVyZU1hbmFnZXIt
PmlzUHJvdGVjdGVkKG1fdG9rZW4pOworICAgIH0KIAogICAgIHZvaWQgYmluZFRleHR1cmUoKTsK
ICAgICB2b2lkIGZyYW1lYnVmZmVyVGV4dHVyZTJEKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAK
aW5kZXggZThiOWExMmIwMmNkZGUwMGVlYWFlNzczNGQ3YTA5YjczMDExYmJjMi4uNjk2ODI4ZmI4
MTZiOTUwNzI0ODIwNjc5ZDkzZjBlNmI1ZDhjZmNmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmNw
cApAQCAtMTI0LDYgKzEyNCw5IEBAIGJvb2wgUmVuZGVyU3VyZmFjZUNocm9taXVtOjpwcmVwYXJl
Q29udGVudHNUZXh0dXJlKCkKICAgICBpZiAoIW1fY29udGVudHNUZXh0dXJlKQogICAgICAgICBt
X2NvbnRlbnRzVGV4dHVyZSA9IExheWVyVGV4dHVyZTo6Y3JlYXRlKGxheWVyUmVuZGVyZXIoKS0+
Y29udGV4dCgpLCB0ZXh0dXJlTWFuYWdlcik7CiAKKyAgICBpZiAobV9jb250ZW50c1RleHR1cmUt
PmlzUmVzZXJ2ZWQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBpZiAoIW1fY29udGVu
dHNUZXh0dXJlLT5yZXNlcnZlKHJlcXVpcmVkU2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEp
KSB7CiAgICAgICAgIG1fc2tpcHNEcmF3ID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFu
YWdlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5h
Z2VyLmNwcAppbmRleCA5NTc5ZWY5ZWVlYjg1MTRlYmYyN2FlYThkMGEzZmE3MDQ3YjM1N2U4Li5j
NGFkOTU4NDdmODIzNmM3YzdhMDgxYTYzOGRjZmYyY2Y5ZWNlNzQzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmNwcApAQCAt
NzAsNiArNzAsMTEgQEAgYm9vbCBUZXh0dXJlTWFuYWdlcjo6aGFzVGV4dHVyZShUZXh0dXJlVG9r
ZW4gdG9rZW4pCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFRleHR1cmVNYW5hZ2VyOjpp
c1Byb3RlY3RlZChUZXh0dXJlVG9rZW4gdG9rZW4pCit7CisgICAgcmV0dXJuIHRva2VuICYmIGhh
c1RleHR1cmUodG9rZW4pICYmIG1fdGV4dHVyZXMuZ2V0KHRva2VuKS5pc1Byb3RlY3RlZDsKK30K
Kwogdm9pZCBUZXh0dXJlTWFuYWdlcjo6cHJvdGVjdFRleHR1cmUoVGV4dHVyZVRva2VuIHRva2Vu
KQogewogICAgIEFTU0VSVChoYXNUZXh0dXJlKHRva2VuKSk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmggYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmgKaW5kZXggMWU4NTBjZGE1
MTk2NTY5MzA0NjI1ZDczZDVhNGE4MzVlNmQ5MGNmMC4uNDg5MWNjNzNhZDczNzdmOGI2ZjQ1NjA5
MDIzMWQ3NTgyN2Q3MGMwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UZXh0dXJlTWFuYWdlci5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHByb3RlY3RUZXh0dXJlKFRleHR1cmVUb2tlbik7CiAgICAgdm9pZCB1bnByb3RlY3RU
ZXh0dXJlKFRleHR1cmVUb2tlbik7CisgICAgYm9vbCBpc1Byb3RlY3RlZChUZXh0dXJlVG9rZW4p
OwogCiBwcml2YXRlOgogICAgIFRleHR1cmVNYW5hZ2VyKEdyYXBoaWNzQ29udGV4dDNEKiwgc2l6
ZV90IG1lbW9yeUxpbWl0Qnl0ZXMsIGludCBtYXhUZXh0dXJlU2l6ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78407</attachid>
            <date>2011-01-10 10:19:40 -0800</date>
            <delta_ts>2011-01-10 12:29:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51928-20110110131938.patch</filename>
            <type>text/plain</type>
            <size>4161</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkY2UxMTg0OTMyZmJlNTRkNjVjNTY3MWEyZDVlZGJkYjViYjIwMDlmLi44
M2Q5Njk4NzIzYmVmMzg0ZDU1NDJmY2EwODAzZDBlMWVhYmUzYmZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTEtMDEtMTAgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtjaHJvbWl1bV0gRW5hYmxlIHJldXNlIG9mIFJlbmRlclN1cmZhY2UgZm9yIGRyYXdpbmcu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTkyOAor
CisgICAgICAgIE1vZGlmaWVzIFJlbmRlclN1cmZhY2VDaHJvbWl1bTo6cHJlcGFyZUNvbnRlbnRz
VGV4dHVyZSB0byBhdm9pZCB0cnlpbmcgdG8gJ3Jlc2VydmUnIGEgdGV4dHVyZQorICAgICAgICB0
aGF0IGlzIGFscmVhZHkgcmVzZXJ2ZWQsIHNob3VsZCBhbiBhdHRlbXB0IGJlIG1hZGUgdG8gcmUt
c2VsZWN0IGEgcHJldmlvdXNseSBkcmF3biByZW5kZXIgc3VyZmFjZQorICAgICAgICBpbiBvcmRl
ciB0byBjb250aW51ZSBkcmF3aW5nIHRvIGl0LiBUaGlzIHVzZSBjYXNlIGFwcGVhcnMgd2hlbiBj
b21wb3NpdGluZyBpbnRvIGFuIG9mZnNjcmVlbiB0ZXh0dXJlLgorCisgICAgICAgIENvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdCAoY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24uaHRt
bCkgd2hlbiBvZmZzY3JlZW4gY29tcG9zaXRpbmcgZW5hYmxlZC4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TGF5ZXJUZXh0dXJlOjppc1Jlc2VydmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3VyZmFjZUNocm9taXVtOjpwcmVwYXJlQ29udGVudHNUZXh0dXJlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFuYWdlcjo6aXNQcm90ZWN0ZWQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmg6CisKIDIwMTEtMDEtMTAgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdpbmRvd3MgYnVpbGQgZml4IGFm
dGVyIHI3NTMxMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJUZXh0dXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclRleHR1cmUuaAppbmRleCAzMTJhZGZhZTFjY2M0NGZmNzQ3ZDRhMjgz
NzgwN2FhMDVjZmU2MjY1Li43MTFlNjg3Y2YwOGE0YjY2NGUzMDFhODM3NDY1YzE2N2RiMjg3OWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclRleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclRleHR1cmUuaApAQCAtNDgsNiArNDgsMTEgQEAgcHVibGljOgogICAgIGJvb2wg
aXNWYWxpZChjb25zdCBJbnRTaXplJiwgdW5zaWduZWQgZm9ybWF0KTsKICAgICBib29sIHJlc2Vy
dmUoY29uc3QgSW50U2l6ZSYsIHVuc2lnbmVkIGZvcm1hdCk7CiAgICAgdm9pZCB1bnJlc2VydmUo
KTsKKyAgICBib29sIGlzUmVzZXJ2ZWQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdGV4dHVy
ZU1hbmFnZXIpOworICAgICAgICByZXR1cm4gbV90ZXh0dXJlTWFuYWdlci0+aXNQcm90ZWN0ZWQo
bV90b2tlbik7CisgICAgfQogCiAgICAgdm9pZCBiaW5kVGV4dHVyZSgpOwogICAgIHZvaWQgZnJh
bWVidWZmZXJUZXh0dXJlMkQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uY3Bw
CmluZGV4IGU4YjlhMTJiMDJjZGRlMDBlZWFhZTc3MzRkN2EwOWI3MzAxMWJiYzIuLjY5NjgyOGZi
ODE2Yjk1MDcyNDgyMDY3OWQ5M2YwZTZiNWQ4Y2ZjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3Vy
ZmFjZUNocm9taXVtLmNwcApAQCAtMTI0LDYgKzEyNCw5IEBAIGJvb2wgUmVuZGVyU3VyZmFjZUNo
cm9taXVtOjpwcmVwYXJlQ29udGVudHNUZXh0dXJlKCkKICAgICBpZiAoIW1fY29udGVudHNUZXh0
dXJlKQogICAgICAgICBtX2NvbnRlbnRzVGV4dHVyZSA9IExheWVyVGV4dHVyZTo6Y3JlYXRlKGxh
eWVyUmVuZGVyZXIoKS0+Y29udGV4dCgpLCB0ZXh0dXJlTWFuYWdlcik7CiAKKyAgICBpZiAobV9j
b250ZW50c1RleHR1cmUtPmlzUmVzZXJ2ZWQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAg
ICBpZiAoIW1fY29udGVudHNUZXh0dXJlLT5yZXNlcnZlKHJlcXVpcmVkU2l6ZSwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQkEpKSB7CiAgICAgICAgIG1fc2tpcHNEcmF3ID0gdHJ1ZTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuY3BwCmluZGV4IDk1NzllZjllZWViODUx
NGViZjI3YWVhOGQwYTNmYTcwNDdiMzU3ZTguLmM0YWQ5NTg0N2Y4MjM2YzdjN2EwODFhNjM4ZGNm
ZjJjZjllY2U3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5jcHAKQEAgLTcwLDYgKzcwLDExIEBA
IGJvb2wgVGV4dHVyZU1hbmFnZXI6Omhhc1RleHR1cmUoVGV4dHVyZVRva2VuIHRva2VuKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBUZXh0dXJlTWFuYWdlcjo6aXNQcm90ZWN0ZWQoVGV4
dHVyZVRva2VuIHRva2VuKQoreworICAgIHJldHVybiB0b2tlbiAmJiBoYXNUZXh0dXJlKHRva2Vu
KSAmJiBtX3RleHR1cmVzLmdldCh0b2tlbikuaXNQcm90ZWN0ZWQ7Cit9CisKIHZvaWQgVGV4dHVy
ZU1hbmFnZXI6OnByb3RlY3RUZXh0dXJlKFRleHR1cmVUb2tlbiB0b2tlbikKIHsKICAgICBBU1NF
UlQoaGFzVGV4dHVyZSh0b2tlbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmgKaW5kZXggMWU4NTBjZGE1
MTk2NTY5MzA0NjI1ZDczZDVhNGE4MzVlNmQ5MGNmMC4uNDg5MWNjNzNhZDczNzdmOGI2ZjQ1NjA5
MDIzMWQ3NTgyN2Q3MGMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTWFuYWdlci5oCkBAIC01MSw2ICs1MSw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgcHJvdGVjdFRleHR1cmUoVGV4dHVyZVRva2VuKTsKICAgICB2
b2lkIHVucHJvdGVjdFRleHR1cmUoVGV4dHVyZVRva2VuKTsKKyAgICBib29sIGlzUHJvdGVjdGVk
KFRleHR1cmVUb2tlbik7CiAKIHByaXZhdGU6CiAgICAgVGV4dHVyZU1hbmFnZXIoR3JhcGhpY3ND
b250ZXh0M0QqLCBzaXplX3QgbWVtb3J5TGltaXRCeXRlcywgaW50IG1heFRleHR1cmVTaXplKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>