<?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>47391</bug_id>
          
          <creation_ts>2010-10-07 19:02:35 -0700</creation_ts>
          <short_desc>Fix scrolling of noncomposited iframes within composited document</short_desc>
          <delta_ts>2010-10-25 18:07:07 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nat Duca">nduca</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>291388</commentid>
    <comment_count>0</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-10-07 19:02:35 -0700</bug_when>
    <thetext>With tests such as the attached, GraphicsLayer does not receive a setNeedsDisplay for the ScrollView&apos;s content area, leading to scrolling artifacts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291389</commentid>
    <comment_count>1</comment_count>
      <attachid>70185</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-10-07 19:03:25 -0700</bug_when>
    <thetext>Created attachment 70185
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291397</commentid>
    <comment_count>2</comment_count>
      <attachid>70187</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-10-07 19:12:39 -0700</bug_when>
    <thetext>Created attachment 70187
Patch for the purposes of discussion only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291404</commentid>
    <comment_count>3</comment_count>
      <attachid>70190</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-10-07 19:33:34 -0700</bug_when>
    <thetext>Created attachment 70190
Issue invalidate in the right coordinate system. Oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293129</commentid>
    <comment_count>4</comment_count>
      <attachid>70190</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-12 14:57:11 -0700</bug_when>
    <thetext>Comment on attachment 70190
Issue invalidate in the right coordinate system. Oops.

On Mac, redrawing of composited iframes on scrolling happens via the swizzled setNeedsDisplayInRect: method in WebTMLView.mm. It is broken on Windows and in WebKit2, so something like this patch is needed.

However, this patch adds an invalidate for every scroll, not just scrolls of iframes in compositing layers. We certainly don&apos;t want that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293152</commentid>
    <comment_count>5</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-10-12 15:57:17 -0700</bug_when>
    <thetext>Haha! Good point. Hmm....

(In reply to comment #4)
&gt; (From update of attachment 70190 [details])
&gt; On Mac, redrawing of composited iframes on scrolling happens via the swizzled setNeedsDisplayInRect: method in WebTMLView.mm. It is broken on Windows and in WebKit2, so something like this patch is needed.
&gt; 
&gt; However, this patch adds an invalidate for every scroll, not just scrolls of iframes in compositing layers. We certainly don&apos;t want that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293722</commentid>
    <comment_count>6</comment_count>
      <attachid>70663</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-10-13 14:34:28 -0700</bug_when>
    <thetext>Created attachment 70663
Only issue invalidates for layers that have owner renderer&apos;s who have a layer that itself is composited. The check for the layer is important for iframes that render directly onto the window, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293784</commentid>
    <comment_count>7</comment_count>
      <attachid>70663</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-13 15:55:59 -0700</bug_when>
    <thetext>Comment on attachment 70663
Only issue invalidates for layers that have owner renderer&apos;s who have a layer that itself is composited. The check for the layer is important for iframes that render directly onto the window, I think.

I&apos;d like to try this in composited iframes in webkit2 on mac (or old webkit on windows), but don&apos;t have time at present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294370</commentid>
    <comment_count>8</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-10-14 14:27:38 -0700</bug_when>
    <thetext>I hear you... I&apos;d test myself but I&apos;m new enough to the team to not have either VS2005 or a mac yet.

Given that, do you want to wait on trying the patch yourself before we land this? Or, is it low-enough risk in terms of breakage that it can land anyway?

I&apos;m fine either way, just trying to decide on next steps given I can&apos;t do much myself.

(In reply to comment #7)
&gt; (From update of attachment 70663 [details])
&gt; I&apos;d like to try this in composited iframes in webkit2 on mac (or old webkit on windows), but don&apos;t have time at present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294451</commentid>
    <comment_count>9</comment_count>
      <attachid>70663</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-14 16:30:54 -0700</bug_when>
    <thetext>Comment on attachment 70663
Only issue invalidates for layers that have owner renderer&apos;s who have a layer that itself is composited. The check for the layer is important for iframes that render directly onto the window, I think.

This doesn&apos;t fix webkit2 iframe scrolling on Mac, so is likely not correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294454</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-14 16:31:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/8554258&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295311</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-17 19:54:19 -0700</bug_when>
    <thetext>Here&apos;s the stack where the problem occurs:

#1  0x0000000100203302 in WebKit::ChunkedUpdateDrawingArea::scroll
#2  0x0000000100248037 in WebKit::WebChromeClient::scroll
#3  0x0000000100fa1129 in WebCore::Chrome::scroll
#4  0x00000001012bd06b in WebCore::FrameView::scrollContentsFastPath
#5  0x00000001019e6808 in WebCore::ScrollView::scrollContents
#6  0x00000001019e6a1e in WebCore::ScrollView::valueChanged
#7  0x00000001012bcccc in WebCore::FrameView::valueChanged
#8  0x00000001019dd6b4 in WebCore::Scrollbar::setCurrentPos
#9  0x00000001019dd867 in WebCore::Scrollbar::setValue

The bug is that ScrollView::scrollContents() always call through to hostWindow to invalidate on scrolling. If the iframe is composited, it needs to repaint via a RenderObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295332</commentid>
    <comment_count>12</comment_count>
      <attachid>70994</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-17 21:20:26 -0700</bug_when>
    <thetext>Created attachment 70994
Patch illustrating the correct approach

This is closer to the correct solution, but see the FIXMEs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296827</commentid>
    <comment_count>13</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-10-20 09:20:03 -0700</bug_when>
    <thetext>I like this approach better. Thanks. :) It definitely didn&apos;t feel clean to wedge this code into the scrollChanged path... pushing the slowScroll to FrameView makes a lot of sense to me.

However, I do have a basic question for my own education -- you said that attachment 70663 did not fix iframe scrolling on webkit2. However, when I apply that patch to webkit2 on my mac, it actually does fix things. Is there a use case that I&apos;m not trying out or something?

Not trying to be cantankerous, just trying to understand what the algorithmic change is, versus stylistic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296847</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-20 09:44:44 -0700</bug_when>
    <thetext>google.com is a bad thing to use in an iframe because it takes over the main frame if you&apos;re signed in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296850</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-20 09:54:28 -0700</bug_when>
    <thetext>The patch doesn&apos;t work because it calls invalidateRect(), which does not invalidate compositing layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297647</commentid>
    <comment_count>16</comment_count>
      <attachid>71494</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-10-21 14:28:26 -0700</bug_when>
    <thetext>Created attachment 71494
Simon&apos;s patch, but repaint  only the iframe on the parent renderer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297651</commentid>
    <comment_count>17</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-10-21 14:33:53 -0700</bug_when>
    <thetext>Regarding two of the fixme&apos;s you added...

The hostWindow()-&gt;invalidateWindow() calls in ScrollViewContents:
- Not sure I follow your point here; if I could get to understanding the distinction you&apos;re making, I&apos;m ok doing a refactor.

The pan-scroll issue:
Great point. I&apos;m happy to file and take ownership of a separate bug for this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298638</commentid>
    <comment_count>18</comment_count>
      <attachid>71494</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-24 12:28:42 -0700</bug_when>
    <thetext>Comment on attachment 71494
Simon&apos;s patch, but repaint  only the iframe on the parent renderer.

I&apos;m not sure updateRect is correct for transformed iframes in compositing layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299202</commentid>
    <comment_count>19</comment_count>
      <attachid>71822</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-25 17:14:52 -0700</bug_when>
    <thetext>Created attachment 71822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299206</commentid>
    <comment_count>20</comment_count>
      <attachid>71822</attachid>
    <who name="">mitz</who>
    <bug_when>2010-10-25 17:20:28 -0700</bug_when>
    <thetext>Comment on attachment 71822
Patch

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

&gt; WebCore/page/FrameView.cpp:1011
&gt; +            IntRect rect(0, 0, visibleWidth(), visibleHeight());
&gt; +            // Add borders and padding.
&gt; +            rect.move(frameRenderer-&gt;borderLeft() + frameRenderer-&gt;paddingLeft(),
&gt; +                      frameRenderer-&gt;borderTop() + frameRenderer-&gt;paddingTop());

How about initializing the rect with the correct origin?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299224</commentid>
    <comment_count>21</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-25 18:07:07 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/70509</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>70185</attachid>
            <date>2010-10-07 19:03:25 -0700</date>
            <delta_ts>2010-10-07 19:03:25 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>fancy3_a.html</filename>
            <type>text/html</type>
            <size>163</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">PGh0bWw+IA0KPHN0eWxlPiANCjwvc3R5bGU+IA0KPGJvZHk+IA0KPGRpdiBzdHlsZT0iLXdlYmtp
dC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTsiPg0KICA8aWZyYW1lIHNyYz0iaHR0cDov
L3d3dy5nb29nbGUuY29tLyI+PC9pZnJhbWU+DQo8L2JvZHk+IA0KPC9odG1sPiANCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70187</attachid>
            <date>2010-10-07 19:12:39 -0700</date>
            <delta_ts>2010-10-07 19:33:31 -0700</delta_ts>
            <desc>Patch for the purposes of discussion only.</desc>
            <filename>bug-47391-20101007191238.patch</filename>
            <type>text/plain</type>
            <size>1447</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTM3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTAtMTAtMDcgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJv
bWl1bV0gRml4IHNjcm9sbGluZyBvZiBub25jb21wb3NpdGVkIGlmcmFtZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MzkxCisKKyAgICAgICAgKiBw
YWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFBv
c2l0aW9uQ2hhbmdlZCk6CisKIDIwMTAtMTAtMDcgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKaWFuIExpCkluZGV4OiBXZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAkocmV2aXNpb24gNjkzMjYpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTEzMCw2ICsxMTMwLDE1IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxQb3Np
dGlvbkNoYW5nZWQoKQogICAgIGlmIChSZW5kZXJWaWV3KiByb290ID0gbV9mcmFtZS0+Y29udGVu
dFJlbmRlcmVyKCkpIHsKICAgICAgICAgaWYgKHJvb3QtPnVzZXNDb21wb3NpdGluZygpKQogICAg
ICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLT5mcmFtZVZpZXdEaWRTY3JvbGwoc2Nyb2xsUG9z
aXRpb24oKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgIC8vIEludmFsaWRhdGUgdGhlIGZy
YW1lIC0tLSB0aGlzIGlzIHRoZSBjb21wb3NpdGVkIGVxdWl2YWxlbnQgb2YgCisgICAgICAgICAg
Ly8gU2Nyb2xsVmlldzo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbC4KKyAgICAgICAg
ICBJbnRSZWN0IGNsaXBSZWN0ID0gd2luZG93Q2xpcFJlY3QoKTsKKyAgICAgICAgICBJbnRSZWN0
IHNjcm9sbFZpZXdSZWN0ID0gY29udmVydFRvQ29udGFpbmluZ1ZpZXcoSW50UmVjdCgwLCAwLCB2
aXNpYmxlV2lkdGgoKSwgdmlzaWJsZUhlaWdodCgpKSk7CisgICAgICAgICAgSW50UmVjdCB1cGRh
dGVSZWN0ID0gY2xpcFJlY3Q7CisgICAgICAgICAgdXBkYXRlUmVjdC5pbnRlcnNlY3Qoc2Nyb2xs
Vmlld1JlY3QpOworICAgICAgICAgIGludmFsaWRhdGVSZWN0KHVwZGF0ZVJlY3QpOworICAgICAg
ICB9CiAgICAgfQogI2VuZGlmCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70190</attachid>
            <date>2010-10-07 19:33:34 -0700</date>
            <delta_ts>2010-10-13 14:34:25 -0700</delta_ts>
            <desc>Issue invalidate in the right coordinate system. Oops.</desc>
            <filename>bug-47391-20101007193333.patch</filename>
            <type>text/plain</type>
            <size>1504</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTM3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTAtMTAtMDcgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJv
bWl1bV0gRml4IHNjcm9sbGluZyBvZiBub25jb21wb3NpdGVkIGlmcmFtZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MzkxCisKKyAgICAgICAgKiBw
YWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFBv
c2l0aW9uQ2hhbmdlZCk6CisKIDIwMTAtMTAtMDcgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKaWFuIExpCkluZGV4OiBXZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAkocmV2aXNpb24gNjkzMjYpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTEzMCw2ICsxMTMwLDE0IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxQb3Np
dGlvbkNoYW5nZWQoKQogICAgIGlmIChSZW5kZXJWaWV3KiByb290ID0gbV9mcmFtZS0+Y29udGVu
dFJlbmRlcmVyKCkpIHsKICAgICAgICAgaWYgKHJvb3QtPnVzZXNDb21wb3NpdGluZygpKQogICAg
ICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLT5mcmFtZVZpZXdEaWRTY3JvbGwoc2Nyb2xsUG9z
aXRpb24oKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gSW52YWxpZGF0ZSB0aGUg
ZnJhbWUgLS0tIHRoaXMgaXMgdGhlIGNvbXBvc2l0ZWQgZXF1aXZhbGVudCBvZiAKKyAgICAgICAg
ICAgIC8vIFNjcm9sbFZpZXc6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwuCisgICAg
ICAgICAgICBJbnRSZWN0IHNjcm9sbFZpZXdSZWN0KEludFBvaW50KDAsIDApLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRTaXplKG1heCgwLCB3aWR0aCgpIC0gKHZlcnRp
Y2FsU2Nyb2xsYmFyKCkgJiYgdmVydGljYWxTY3JvbGxiYXIoKS0+d2lkdGgoKSkpLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgoMCwgaGVpZ2h0KCkgLSAo
aG9yaXpvbnRhbFNjcm9sbGJhcigpICYmIGhvcml6b250YWxTY3JvbGxiYXIoKS0+aGVpZ2h0KCkp
KSkpOworICAgICAgICAgICAgaW52YWxpZGF0ZVJlY3Qoc2Nyb2xsVmlld1JlY3QpOworICAgICAg
ICB9CiAgICAgfQogI2VuZGlmCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70663</attachid>
            <date>2010-10-13 14:34:28 -0700</date>
            <delta_ts>2010-10-21 14:28:21 -0700</delta_ts>
            <desc>Only issue invalidates for layers that have owner renderer&apos;s who have a layer that itself is composited. The check for the layer is important for iframes that render directly onto the window, I think.</desc>
            <filename>bug-47391-20101013143427.patch</filename>
            <type>text/plain</type>
            <size>1890</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTU5MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMTMgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJv
bWl1bV0gRml4IHNjcm9sbGluZyBvZiBub25jb21wb3NpdGVkIGlmcmFtZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MzkxCisKKyAgICAgICAgSXNz
dWUgaW52YWxpZGF0ZVJlY3Qgb24gY29tcG9zaXRlZCBsYXllcnMgdGhhdCBoYXZlIHBhcmVudCBS
ZW5kZXJWaWV3cworICAgICAgICB0aGF0IGFyZSBhbHNvIGNvbXBvc2l0ZWQuCisKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9s
bFBvc2l0aW9uQ2hhbmdlZCk6CisKIDIwMTAtMTAtMTIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCkluZGV4OiBXZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAkocmV2aXNpb24gNjk1OTEpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTEzMCw2ICsxMTMwLDE4IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3Jv
bGxQb3NpdGlvbkNoYW5nZWQoKQogICAgIGlmIChSZW5kZXJWaWV3KiByb290ID0gbV9mcmFtZS0+
Y29udGVudFJlbmRlcmVyKCkpIHsKICAgICAgICAgaWYgKHJvb3QtPnVzZXNDb21wb3NpdGluZygp
KQogICAgICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLT5mcmFtZVZpZXdEaWRTY3JvbGwoc2Ny
b2xsUG9zaXRpb24oKSk7CisgICAgICAgIGVsc2UgaWYgKG1fZnJhbWUgJiYgbV9mcmFtZS0+b3du
ZXJSZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAobV9mcmFtZS0+b3duZXJSZW5kZXJlcigp
LT5sYXllcigpCisgICAgICAgICAgICAgICAmJiBtX2ZyYW1lLT5vd25lclJlbmRlcmVyKCktPmxh
eWVyKCktPmlzQ29tcG9zaXRlZCgpKSB7CisgICAgICAgICAgICAgICAgLy8gSW52YWxpZGF0ZSB0
aGUgY29udGVudCBhcmVhIGZvciBmcmFtZXMgdGhhdCByZW5kZXIgaW50bworICAgICAgICAgICAg
ICAgIC8vIGNvbXBvc2l0ZWQgbGF5ZXJzLiBUaGlzIGlzIGVxdWl2YWxlbnQgYmVoYXZpb3IgdG8K
KyAgICAgICAgICAgICAgICAvLyBTY3JvbGxWaWV3OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93
U2Nyb2xsLgorICAgICAgICAgICAgICAgIEludFJlY3Qgc2Nyb2xsVmlld1JlY3QoSW50UG9pbnQo
MCwgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRTaXplKG1h
eCgwLCB3aWR0aCgpIC0gKHZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgdmVydGljYWxTY3JvbGxiYXIo
KS0+d2lkdGgoKSkpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWF4KDAsIGhlaWdodCgpIC0gKGhvcml6b250YWxTY3JvbGxiYXIoKSAmJiBob3Jpem9u
dGFsU2Nyb2xsYmFyKCktPmhlaWdodCgpKSkpKTsKKyAgICAgICAgICAgICAgICBpbnZhbGlkYXRl
UmVjdChzY3JvbGxWaWV3UmVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAj
ZW5kaWYKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70994</attachid>
            <date>2010-10-17 21:20:26 -0700</date>
            <delta_ts>2010-10-25 17:14:45 -0700</delta_ts>
            <desc>Patch illustrating the correct approach</desc>
            <filename>47391_patch.txt</filename>
            <type>text/plain</type>
            <size>5547</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29tcG9zaXRlZC1p
ZnJhbWUtc2Nyb2xsLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2NvbXBv
c2l0ZWQtaWZyYW1lLXNjcm9sbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjk2ZWZlYzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9p
ZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXNjcm9sbC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwh
RE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
IG1lZGlhPSJzY3JlZW4iPgorICAgIGlmcmFtZSB7CisgICAgICBtYXJnaW46IDE1cHg7CisgICAg
ICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKKyAgICAgIHBhZGRpbmc6IDUwcHg7
CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKyAgPGlmcmFtZSBzcmM9InJl
c291cmNlcy9zdWJmcmFtZS5odG1sIj48L2lmcmFtZT4KKworPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAppbmRleCA2NzZjODY0Li5lMzJjYzRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMTAwMCw2
ICsxMDAwLDE5IEBAIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0
IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCit2b2lkIEZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0
JiB1cGRhdGVSZWN0KQoreworICAgIGlmIChSZW5kZXJPYmplY3QqIGZyYW1lUmVuZGVyZXIgPSBt
X2ZyYW1lLT5vd25lclJlbmRlcmVyKCkpIHsKKyAgICAgICAgaWYgKGZyYW1lUmVuZGVyZXItPmhh
c0xheWVyKCkgJiYgdG9SZW5kZXJCb3hNb2RlbE9iamVjdChmcmFtZVJlbmRlcmVyKS0+bGF5ZXIo
KS0+aXNDb21wb3NpdGVkKCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBjb21wdXRlIGEgYmV0
dGVyIHJlcGFpbnQgcmVjdCAodXBkYXRlUmVjdCBpc24ndCBtdWNoIHVzZSB0byB1cykuCisgICAg
ICAgICAgICBmcmFtZVJlbmRlcmVyLT5yZXBhaW50KCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50c1Nsb3dQYXRo
KHVwZGF0ZVJlY3QpOworfQorCiAvLyBOb3RlIHRoYXQgdGhpcyBnZXRzIGNhbGxlZCBhdCBwYWlu
dGluZyB0aW1lLgogdm9pZCBGcmFtZVZpZXc6OnNldElzT3ZlcmxhcHBlZChib29sIGlzT3Zlcmxh
cHBlZCkKIHsKQEAgLTE4OTksNiArMTkxMiw3IEBAIGJvb2wgRnJhbWVWaWV3OjpoYXNDdXN0b21T
Y3JvbGxiYXJzKCkgY29uc3QKIAogdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUNvbnRyb2xUaW50cygp
CiB7CityZXR1cm47CiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgd2hlbiBjb250cm9sIHRpbnRzIGFy
ZSBjaGFuZ2VkIGZyb20gYXF1YS9ncmFwaGl0ZSB0byBjbGVhciBhbmQgdmljZSB2ZXJzYS4KICAg
ICAvLyBXZSBkbyBhICJmYWtlIiBwYWludCwgYW5kIHdoZW4gdGhlIHRoZW1lIGdldHMgYSBwYWlu
dCBjYWxsLCBpdCBjYW4gdGhlbiBkbyBhbiBpbnZhbGlkYXRlLgogICAgIC8vIFRoaXMgaXMgb25s
eSBkb25lIGlmIHRoZSB0aGVtZSBzdXBwb3J0cyBjb250cm9sIHRpbnRpbmcuIEl0J3MgdXAgdG8g
dGhlIHRoZW1lIGFuZCBwbGF0Zm9ybQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDE1MTgyMzMuLmY5MjEyYzEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKQEAgLTI0Miw3ICsyNDIsOCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxE
ZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVj
dCk7Ci0gICAgCisgICAgdmlydHVhbCB2b2lkIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3Qg
SW50UmVjdCYgdXBkYXRlUmVjdCk7CisKIHByaXZhdGU6CiAgICAgRnJhbWVWaWV3KEZyYW1lKik7
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDY2ZGNiOGEuLjFkMTY2YzcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmNwcApAQCAtNTM1LDYgKzUzNSw4IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2Ny
b2xsQ29udGVudHMoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCiAgICAgaG9zdFdpbmRvdygp
LT5pbnZhbGlkYXRlV2luZG93KHVwZGF0ZVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8pOwogCiAg
ICAgaWYgKG1fZHJhd1BhblNjcm9sbEljb24pIHsKKyAgICAgICAgLy8gRklYTUU6IHRoaXMgcGFu
SWNvbiBzdHVmZiB3aWxsIGJlIGJyb2tlbiB3aGVuIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGlz
IG9uLCBzaW5jZSBpdCB3aWxsIGRyYXcgdW5kZXIgdGhlIGNvbXBvc2l0aW5nIGxheWVycy4KKyAg
ICAgICAgLy8gV2h5IGlzIGl0IGhlcmUgYW55d2F5PwogICAgICAgICBpbnQgcGFuSWNvbkRpcnR5
U3F1YXJlU2l6ZUxlbmd0aCA9IDIgKiAocGFuSWNvblNpemVMZW5ndGggKyBtYXgoYWJzKHNjcm9s
bERlbHRhLndpZHRoKCkpLCBhYnMoc2Nyb2xsRGVsdGEuaGVpZ2h0KCkpKSk7IC8vIFdlIG9ubHkg
d2FudCB0byByZXBhaW50IHdoYXQncyBuZWNlc3NhcnkKICAgICAgICAgSW50UG9pbnQgcGFuSWNv
bkRpcnR5U3F1YXJlTG9jYXRpb24gPSBJbnRQb2ludChtX3BhblNjcm9sbEljb25Qb2ludC54KCkg
LSAocGFuSWNvbkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCAvIDIpLCBtX3BhblNjcm9sbEljb25Qb2lu
dC55KCkgLSAocGFuSWNvbkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCAvIDIpKTsKICAgICAgICAgSW50
UmVjdCBwYW5TY3JvbGxJY29uRGlydHlSZWN0ID0gSW50UmVjdChwYW5JY29uRGlydHlTcXVhcmVM
b2NhdGlvbiAsIEludFNpemUocGFuSWNvbkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCwgcGFuSWNvbkRp
cnR5U3F1YXJlU2l6ZUxlbmd0aCkpOwpAQCAtNTQ1LDE3ICs1NDcsMTggQEAgdm9pZCBTY3JvbGxW
aWV3OjpzY3JvbGxDb250ZW50cyhjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICBpZiAo
Y2FuQmxpdE9uU2Nyb2xsKCkpIHsgLy8gVGhlIG1haW4gZnJhbWUgY2FuIGp1c3QgYmxpdCB0aGUg
V2ViVmlldyB3aW5kb3cKICAgICAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gc2Nyb2xsIHN1
YmZyYW1lcyB3aXRoIHRoaXMgZmFzdGVyIHBhdGgKICAgICAgICAgaWYgKCFzY3JvbGxDb250ZW50
c0Zhc3RQYXRoKC1zY3JvbGxEZWx0YSwgc2Nyb2xsVmlld1JlY3QsIGNsaXBSZWN0KSkKLSAgICAg
ICAgICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCh1cGRh
dGVSZWN0LCBmYWxzZSk7CisgICAgICAgICAgICBzY3JvbGxDb250ZW50c1Nsb3dQYXRoKHVwZGF0
ZVJlY3QpOwogICAgIH0gZWxzZSB7IAogICAgICAgIC8vIFdlIG5lZWQgdG8gZ28gYWhlYWQgYW5k
IHJlcGFpbnQgdGhlIGVudGlyZSBiYWNraW5nIHN0b3JlLiAgRG8gaXQgbm93IGJlZm9yZSBtb3Zp
bmcgdGhlCiAgICAgICAgLy8gd2luZG93ZWQgcGx1Z2lucy4KLSAgICAgICBob3N0V2luZG93KCkt
PmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwodXBkYXRlUmVjdCwgZmFsc2UpOworICAg
ICAgIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgodXBkYXRlUmVjdCk7CiAgICAgfQogCiAgICAgLy8g
VGhpcyBjYWxsIHdpbGwgbW92ZSBjaGlsZHJlbiB3aXRoIG5hdGl2ZSB3aWRnZXRzIChwbHVnaW5z
KSBhbmQgaW52YWxpZGF0ZSB0aGVtIGFzIHdlbGwuCiAgICAgZnJhbWVSZWN0c0NoYW5nZWQoKTsK
IAogICAgIC8vIE5vdyBibGl0IHRoZSBiYWNraW5nc3RvcmUgaW50byB0aGUgd2luZG93IHdoaWNo
IHNob3VsZCBiZSB2ZXJ5IGZhc3QuCisgICAgLy8gRklYTUU6IHdoeSBpcyBwbGF0Zm9ybS1zcGVj
aWZpYyBsb2dpYyByZWxhdGVkIHRvIGJhY2tpbmcgc3RvcmVzIGFuZCBibGl0dGluZyBoZXJlPwog
ICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZVdpbmRvdyhJbnRSZWN0KCksIHRydWUpOwogfQog
CkBAIC01NjUsNiArNTY4LDExIEBAIGJvb2wgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0
UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK3ZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25z
dCBJbnRSZWN0JiB1cGRhdGVSZWN0KQoreworICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNv
bnRlbnRzRm9yU2xvd1Njcm9sbCh1cGRhdGVSZWN0LCBmYWxzZSk7Cit9CisKIEludFBvaW50IFNj
cm9sbFZpZXc6OndpbmRvd1RvQ29udGVudHMoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBj
b25zdAogewogICAgIEludFBvaW50IHZpZXdQb2ludCA9IGNvbnZlcnRGcm9tQ29udGFpbmluZ1dp
bmRvdyh3aW5kb3dQb2ludCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuaCBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDIzZjQ4Y2EuLmVlZjZk
MGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0yNjQsOCArMjY0LDEwIEBAIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2Nyb2xsQ29ybmVyKCk7CiAgICAgdmlydHVhbCB2b2lk
IHBhaW50U2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmIGNvcm5l
clJlY3QpOwogCi0gICAgLy8gU2Nyb2xsIHRoZSBjb250ZW50IGJ5IGJsaXR0aW5nIHRoZSBwaXhl
bHMKKyAgICAvLyBTY3JvbGwgdGhlIGNvbnRlbnQgYnkgYmxpdHRpbmcgdGhlIHBpeGVscy4KICAg
ICB2aXJ0dWFsIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3Jv
bGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlw
UmVjdCk7CisgICAgLy8gU2Nyb2xsIHRoZSBjb250ZW50IGJ5IGludmFsaWRhdGluZyBldmVyeXRo
aW5nLgorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0IEludFJl
Y3QmIHVwZGF0ZVJlY3QpOwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxTY3JvbGxiYXI+IG1faG9y
aXpvbnRhbFNjcm9sbGJhcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71494</attachid>
            <date>2010-10-21 14:28:26 -0700</date>
            <delta_ts>2010-10-25 17:14:48 -0700</delta_ts>
            <desc>Simon&apos;s patch, but repaint  only the iframe on the parent renderer.</desc>
            <filename>bug-47391-20101021142825.patch</filename>
            <type>text/plain</type>
            <size>6948</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDI2MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMTAtMjEgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
bm9uY29tcG9zaXRlZCBpZnJhbWVzIHNlbmQgYSByZXBhaW50IHRvIHRoZWlyIG93bmVyCisgICAg
ICAgIHJlbmRlcmVyIHdoZW4gc2Nyb2xsZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NzM5MQorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL2lm
cmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtc2Nyb2xsLmh0bWwKKworICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNT
bG93UGF0aCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNjcm9sbENv
bnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzU2xv
d1BhdGgpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuaDoKKwogMjAxMC0xMC0yMSAg
RGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gNzAyNjMpCisrKyBXZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwMCw2ICsxMDAwLDIzIEBA
IGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGMKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK3ZvaWQgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0IElu
dFJlY3QmIHVwZGF0ZVJlY3QpCit7CisgICAgaWYgKFJlbmRlclBhcnQqIGZyYW1lUmVuZGVyZXIg
PSBtX2ZyYW1lLT5vd25lclJlbmRlcmVyKCkpIHsKKyAgICAgICAgaWYgKGZyYW1lUmVuZGVyZXIt
Pmhhc0xheWVyKCkgJiYgZnJhbWVSZW5kZXJlci0+bGF5ZXIoKS0+aXNDb21wb3NpdGVkKCkpIHsK
KyAgICAgICAgICAgIEludFJlY3QgcmVjdCgwLCAwLCB2aXNpYmxlV2lkdGgoKSwgdmlzaWJsZUhl
aWdodCgpKTsKKyAgICAgICAgICAgIC8vIEFkZCBib3JkZXJzIGFuZCBwYWRkaW5nLgorICAgICAg
ICAgICAgcmVjdC5tb3ZlKGZyYW1lUmVuZGVyZXItPmJvcmRlckxlZnQoKSArIGZyYW1lUmVuZGVy
ZXItPnBhZGRpbmdMZWZ0KCksCisgICAgICAgICAgICAgICAgICAgICAgZnJhbWVSZW5kZXJlci0+
Ym9yZGVyVG9wKCkgKyBmcmFtZVJlbmRlcmVyLT5wYWRkaW5nVG9wKCkpOworCisgICAgICAgICAg
ICBmcmFtZVJlbmRlcmVyLT5yZXBhaW50UmVjdGFuZ2xlKHJlY3QpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHNT
bG93UGF0aCh1cGRhdGVSZWN0KTsKK30KKwogLy8gTm90ZSB0aGF0IHRoaXMgZ2V0cyBjYWxsZWQg
YXQgcGFpbnRpbmcgdGltZS4KIHZvaWQgRnJhbWVWaWV3OjpzZXRJc092ZXJsYXBwZWQoYm9vbCBp
c092ZXJsYXBwZWQpCiB7CkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCShyZXZpc2lvbiA3MDI2MykKKysrIFdlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjQyLDcgKzI0Miw4IEBAIHB1
YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxDb250ZW50c0Zhc3RQ
YXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3Jv
bGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsKLSAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KTsKKwogcHJpdmF0
ZToKICAgICBGcmFtZVZpZXcoRnJhbWUqKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
CShyZXZpc2lvbiA3MDI2MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUzNSw2ICs1MzUsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbENv
bnRlbnRzKGNvbnN0IEluCiAgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlV2luZG93KHVwZGF0
ZVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8pOwogCiAgICAgaWYgKG1fZHJhd1BhblNjcm9sbElj
b24pIHsKKyAgICAgICAgLy8gRklYTUU6IHRoaXMgcGFuSWNvbiBzdHVmZiB3aWxsIGJlIGJyb2tl
biB3aGVuIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGlzIG9uLCBzaW5jZSBpdCB3aWxsIGRyYXcg
dW5kZXIgdGhlIGNvbXBvc2l0aW5nIGxheWVycy4KKyAgICAgICAgLy8gV2h5IGlzIGl0IGhlcmUg
YW55d2F5PwogICAgICAgICBpbnQgcGFuSWNvbkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCA9IDIgKiAo
cGFuSWNvblNpemVMZW5ndGggKyBtYXgoYWJzKHNjcm9sbERlbHRhLndpZHRoKCkpLCBhYnMoc2Ny
b2xsRGVsdGEuaGVpZ2h0KCkpKSk7IC8vIFdlIG9ubHkgd2FudCB0byByZXBhaW50IHdoYXQncyBu
ZWNlc3NhcnkKICAgICAgICAgSW50UG9pbnQgcGFuSWNvbkRpcnR5U3F1YXJlTG9jYXRpb24gPSBJ
bnRQb2ludChtX3BhblNjcm9sbEljb25Qb2ludC54KCkgLSAocGFuSWNvbkRpcnR5U3F1YXJlU2l6
ZUxlbmd0aCAvIDIpLCBtX3BhblNjcm9sbEljb25Qb2ludC55KCkgLSAocGFuSWNvbkRpcnR5U3F1
YXJlU2l6ZUxlbmd0aCAvIDIpKTsKICAgICAgICAgSW50UmVjdCBwYW5TY3JvbGxJY29uRGlydHlS
ZWN0ID0gSW50UmVjdChwYW5JY29uRGlydHlTcXVhcmVMb2NhdGlvbiAsIEludFNpemUocGFuSWNv
bkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCwgcGFuSWNvbkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCkpOwpA
QCAtNTQ1LDE3ICs1NDcsMTggQEAgdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50cyhjb25z
dCBJbgogICAgIGlmIChjYW5CbGl0T25TY3JvbGwoKSkgeyAvLyBUaGUgbWFpbiBmcmFtZSBjYW4g
anVzdCBibGl0IHRoZSBXZWJWaWV3IHdpbmRvdwogICAgICAgICAvLyBGSVhNRTogRmluZCBhIHdh
eSB0byBzY3JvbGwgc3ViZnJhbWVzIHdpdGggdGhpcyBmYXN0ZXIgcGF0aAogICAgICAgICBpZiAo
IXNjcm9sbENvbnRlbnRzRmFzdFBhdGgoLXNjcm9sbERlbHRhLCBzY3JvbGxWaWV3UmVjdCwgY2xp
cFJlY3QpKQotICAgICAgICAgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNGb3JT
bG93U2Nyb2xsKHVwZGF0ZVJlY3QsIGZhbHNlKTsKKyAgICAgICAgICAgIHNjcm9sbENvbnRlbnRz
U2xvd1BhdGgodXBkYXRlUmVjdCk7CiAgICAgfSBlbHNlIHsgCiAgICAgICAgLy8gV2UgbmVlZCB0
byBnbyBhaGVhZCBhbmQgcmVwYWludCB0aGUgZW50aXJlIGJhY2tpbmcgc3RvcmUuICBEbyBpdCBu
b3cgYmVmb3JlIG1vdmluZyB0aGUKICAgICAgICAvLyB3aW5kb3dlZCBwbHVnaW5zLgotICAgICAg
IGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCh1cGRhdGVSZWN0
LCBmYWxzZSk7CisgICAgICAgc2Nyb2xsQ29udGVudHNTbG93UGF0aCh1cGRhdGVSZWN0KTsKICAg
ICB9CiAKICAgICAvLyBUaGlzIGNhbGwgd2lsbCBtb3ZlIGNoaWxkcmVuIHdpdGggbmF0aXZlIHdp
ZGdldHMgKHBsdWdpbnMpIGFuZCBpbnZhbGlkYXRlIHRoZW0gYXMgd2VsbC4KICAgICBmcmFtZVJl
Y3RzQ2hhbmdlZCgpOwogCiAgICAgLy8gTm93IGJsaXQgdGhlIGJhY2tpbmdzdG9yZSBpbnRvIHRo
ZSB3aW5kb3cgd2hpY2ggc2hvdWxkIGJlIHZlcnkgZmFzdC4KKyAgICAvLyBGSVhNRTogd2h5IGlz
IHBsYXRmb3JtLXNwZWNpZmljIGxvZ2ljIHJlbGF0ZWQgdG8gYmFja2luZyBzdG9yZXMgYW5kIGJs
aXR0aW5nIGhlcmU/CiAgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlV2luZG93KEludFJlY3Qo
KSwgdHJ1ZSk7CiB9CiAKQEAgLTU2NSw2ICs1NjgsMTEgQEAgYm9vbCBTY3JvbGxWaWV3OjpzY3Jv
bGxDb250ZW50c0Zhc3RQYXRoKAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFNjcm9sbFZp
ZXc6OnNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkKK3sK
KyAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwodXBkYXRl
UmVjdCwgZmFsc2UpOworfQorCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojp3aW5kb3dUb0NvbnRlbnRz
KGNvbnN0IEludFBvaW50JiB3aW5kb3dQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2ludCB2aWV3
UG9pbnQgPSBjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cod2luZG93UG9pbnQpOwpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxWaWV3LmgJKHJldmlzaW9uIDcwMjYzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2NCw4ICsyNjQsMTAgQEAgcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTY3JvbGxDb3JuZXIoKTsKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRTY3JvbGxDb3JuZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYgY29y
bmVyUmVjdCk7CiAKLSAgICAvLyBTY3JvbGwgdGhlIGNvbnRlbnQgYnkgYmxpdHRpbmcgdGhlIHBp
eGVscworICAgIC8vIFNjcm9sbCB0aGUgY29udGVudCBieSBibGl0dGluZyB0aGUgcGl4ZWxzLgog
ICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNs
aXBSZWN0KTsKKyAgICAvLyBTY3JvbGwgdGhlIGNvbnRlbnQgYnkgaW52YWxpZGF0aW5nIGV2ZXJ5
dGhpbmcuCisgICAgdmlydHVhbCB2b2lkIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3QgSW50
UmVjdCYgdXBkYXRlUmVjdCk7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPFNjcm9sbGJhcj4gbV9o
b3Jpem9udGFsU2Nyb2xsYmFyOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzAyNjMpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMC0y
MSAgTmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBub25jb21wb3NpdGVkIGlmcmFtZXMgc2Vu
ZCBhIHJlcGFpbnQgdG8gdGhlaXIgb3duZXIKKyAgICAgICAgcmVuZGVyZXIgd2hlbiBzY3JvbGxl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3Mzkx
CisKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXNjcm9s
bC5odG1sOiBBZGRlZC4KKwogMjAxMC0xMC0yMSAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXNjcm9sbC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29tcG9zaXRlZC1pZnJh
bWUtc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9p
ZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXNjcm9sbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlIHR5
cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICBpZnJhbWUgeworICAgICAgbWFyZ2lu
OiAxNXB4OworICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAgICBw
YWRkaW5nOiA1MHB4OworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICBTaW1w
bGUgdGVzdCBvZiBzY3JvbGxpbmcgaWZyYW1lIGNvbnRlbnRzLiBUaGUgaW5uZXIgaWZyYW1lIHNo
b3VsZAorICBjb250YWluIGEgYmx1ZSBib3ggYW5kIGEgc2Nyb2xsYmFyLiBTY3JvbGxpbmcgdGhl
IGlmcmFtZSBzaG91bGQgbW92ZQorICB0aGUgYmx1ZSBib3guCisgIDxpZnJhbWUgc3JjPSJyZXNv
dXJjZXMvc3ViZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71822</attachid>
            <date>2010-10-25 17:14:52 -0700</date>
            <delta_ts>2010-10-25 17:20:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47391-20101025171451.patch</filename>
            <type>text/plain</type>
            <size>13074</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwODJkNThhZjE1MjNhNTUzMTczMDlhYTc2N2U0YzMxZjdkNzJjNzU5Li5jMGUwMGY2
NTJlNjVkOWFkNzQ5Nzk4OGNiNTNjZmM3NzdmNzcxOWFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTAtMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHNjcm9sbGlu
ZyBvZiBub25jb21wb3NpdGVkIGlmcmFtZXMgd2l0aGluIGNvbXBvc2l0ZWQgZG9jdW1lbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MzkxCisgICAg
ICAgIAorICAgICAgICBUZXN0Y2FzZSBmb3Igc2Nyb2xsaW5nIGEgdHJhbnNmb3JtZWQgaWZyYW1l
IGluc2lkZSBhIGNvbXBvc2l0aW5nIGxheWVyLgorCisgICAgICAgICogY29tcG9zaXRpbmcvaWZy
YW1lcy9jb21wb3NpdGVkLWlmcmFtZS1zY3JvbGwtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtc2Nyb2xsLWV4
cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9jb21wb3Np
dGVkLWlmcmFtZS1zY3JvbGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3Np
dGluZy9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXNjcm9sbC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9ncmVlbi1yZWQtc3ViZnJhbWUuaHRt
bDogQWRkZWQuCisKIDIwMTAtMTAtMjUgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS1zY3JvbGwtZXhwZWN0ZWQu
Y2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZy
YW1lLXNjcm9sbC1leHBlY3RlZC5jaGVja3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDU2ZmEwNjg0YTQzNDM2
Nzg2YTY2OTllOWNhZDY1NGY5ZGI0NjEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS1zY3JvbGwtZXhwZWN0ZWQuY2hl
Y2tzdW0KQEAgLTAsMCArMSBAQAorNTBiZTg5YmU2ZWRlOGE4M2M1MjE5N2Y2NzFlN2I5MjgKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXNjcm9sbC1leHBlY3RlZC5wbmcgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXNjcm9sbC1leHBl
Y3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZjMDFhZTA0NGRkNzhiYThhOTE2MmNlZWYwYTM5NzUzZDc3
MWMzMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTExNDgKemNtZUFTQE4/KG9sSHlgdVZCcSFp
YTB5fnlVeyt2WVYyYT5pMUIlUWxZYnBTOC1lbyNGMlk1Tz1EK0NuZnIpQjEoCnpHQjh2eXd1WVJ+
N0lxWipYT18zfWYpWW5tSHM3WC0yfSspa3QyMTEkbkVlJEAlSTNLKHpzKz8qaW1+VWxKaFJ2RAp6
KVY0MHxjPUc2Pyk7LXNeMyklbFMkVz90dihmNFlOYUBEeEVTfGUkcHhiRFpaY3xPfmd6QitLTz8o
O3FLX3FGK0QKel9aZkpMRX00OTdWMHByT0paTzwlVz1AUyQpfUljQnpEMW1sQ2FSJmctfXRHcElX
YHludGJUckBpb1k+Qj5+UXQoCnpAPWZKeVhJPEpoaUBvS3EhdnB0T0g/PW1yN2NiPEI2a19WSXh4
WX5KY25RYi0kMlVIYD45X1EmdFQ/IXBVKSVPYgp6cSo5SDhzcVZSWS15T2tjUldDYTxkc3N+UVN7
UChFPVgmPik+JDI+YmQxPVFeMjwtS3J1eCQ2NGNkTF5ZJmhoKWsKekgofkdHRkxpI0tAN1d6dkpq
NS16KjR9TUxANFQtKVNNNDdxSzN3d2JOU20jVWd6MStiMzhMR2pSe2soT0JvWiYrCnp0RyswdEBU
TU5gI35KSlhoSkVzQ0R3dHEjRGtaVUBJTGdFU3g9LUdaVUcxIzNZUylGPUtQbkZrZHwyNXBvUE9g
aAp6LVNAN3luQVJLYyQ/ezA/JTtOUDM1TzhIbG9VdExtcTBMNmgmfTM3UXo0QkB7PkItZWJyN0Jz
d09PamtSSSMhJEEKenZFM2ZIPGdVIz40VytePCZSYVBxe2MtJUt3Zj8wNCk1QFF4Vj5hOWZgI3hw
dT57K2AkSitNQ2RibW1TZXgkQm90CnpKVENUKXRDQFBHWTt3NSF2XkFBZ2R1RnxudlZSamstU0Fu
SFk1JFNwNFpsQz8jIW8jblU5KDV6PTtQNE91ZUA3SQp6cVlUYU8mKEVwMXd0YntgVVReRVE7PGNV
Sz0zJXBecn5sM0pgMkI5eHAyXlFiZkJNSUx7ckQmUz8yK1YwbnVjbSsKelVDJExlcnl0ZShJTyZH
PllWSm5+eHlMIT9QSG9lP2xzb2E0JUdIRX5TJG4/ZiRKJDMlPn4qVz5gNUhKeV4zMGA+CnomaFBi
eXZ7RnB3PyZRbj0pcW5mPUFNcSNPeVBuVjJWQTlXZGFBTX1KK35DNlowdC1gQDxgdTdGNjVvSFpf
UVNUawp6PzhTOCFlXj9ASFIqUzYtR00lcm1oZiRgaXktTXpkPThWaEpyayVBNllTKT1SZERxS1JO
a0x9PFphVzdCVTAxIUgKej5NZ2M7V0B5c092S3VvbSVqVUB9dn4+REBXVnUpQjxYYEpRM1UydGpB
P1dBTkg5PEcpe0dfZm1QWENwRVY5I0lJCnowfk90ITM9OWVrby1VM2Q2Xnc2aDlgdGsjNm1XNEFe
Knp2WHc4aSY4WW5TOH4hOEZDTSpEdUhEKzxXJW1AJThpWAp6NUI0KUtHTz0oN0NeJDMjOFNHNXs/
RC1XPCRVXiY+bjJ4bEFCX1hOfiV4cXc9VD5NUHtOZiotKl5IQnhCRmRHZEEKek5HY2kpaHRZNXRF
Z3dlOU5wUCgpVDNedHgtYU9Db1p+S0FRemZiQEYkTmFhSDwpNlpia0tjWl9aYEZqPCU+Z1diCnoq
cTV4aDM5Wl5ldTkoMlc7Km4mbWdzN3wrYUJ4Z21sOyNZb2BYUjEjNUU0LTZKbGdeMUdjK25HSUNS
YjhnfjxhWQp6SlJLVFQlIzt5cjI5fll7MkYpeHBoPD5tfTYtTEhNSCtvPWczWlI0cjZWcz9lTW5o
eVlqZzAwUkw8byRRQmNtbmoKelhrOVp9YDtOOXBNcTZsejVFeU1Mank5ZUxaRmkjYWAxPCtyUUJz
MUM7VD4+fkNxZCtjYH48LT5tUGozPlNjaXJaCnpZaX5xRGhzQk1OKFd1RSU5alYqSiVgcVZfLTRv
STZJLXNIODtBWmR+c1NqMWMkYXZ8azRrc2RHTlUqWTs7Q01DJQp6c2J7OUE7SU0xMUR3NCZFOHlG
LUgmSmprcT9nQUB8JE0oJUMyI1hVJDFRZThLNmVHRTlSfENWI3ZTfjtiX2JAU34KenVvVXx0K355
IUlwbTZ1eEJxV09pOVU2S1AmTE8kJjErYWcySjVtVD91Pmx2eVhyUFArTzU8b3NYJkI4dUVGN2F7
CnozS1Bwe0xGK0pEYHZAcUVSPl9QXnF3TiVpTSVwKnRIY2laTFZQTjMhMSs0YERrSHdHSE01OHFr
czEtazI2T0duSAp5enlle2tDS3wxWWZGbEVSc0VJfnZBTHQwb1ExMXRRO08kdCZ6ajl5MjRtO29+
VEx3PjhLYkxoKjJ+N1pyKXptfSkKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtc2Nyb2xs
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29tcG9zaXRl
ZC1pZnJhbWUtc2Nyb2xsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2MyNWNkNzgwZGQ0Mjg3
Zjk3ZWM2ZTliODI2OWEzY2Y2ZDA2NGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS1zY3JvbGwtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTkgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MAorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MAorICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICgwLDApIHNpemUgODAweDAKK2xheWVyIGF0ICgxMjAsMTIwKSBzaXplIDIwMHgyMDAK
KyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgxMjAsMTIwKSBzaXplIDIwMHgy
MDAgW2JnY29sb3I9I0ZGMDAwMF0KK2xheWVyIGF0ICgwLDEwMCkgc2l6ZSAyNDB4MjQ0CisgIFJl
bmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwxMDApIHNpemUgMjQweDI0NAorICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDEwLDExMCkg
c2l6ZSAyMjB4MjIwCisgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDEwLDEwKSBzaXpl
IDIyMHgyMjAKKyAgICBsYXllciBhdCAoMCwwKSBzaXplIDIwMHg0MDAKKyAgICAgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyMDB4NDAw
CisgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAyMDB4NDAwCisgICAgICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICgwLDApIHNpemUgMjAweDQwMAorICAgICAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjAweDIwMCBbYmdjb2xvcj0jRkYwMDAwXQorICAg
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIwMCkgc2l6ZSAyMDB4MjAwIFtiZ2NvbG9y
PSMwMDgwMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nv
bXBvc2l0ZWQtaWZyYW1lLXNjcm9sbC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy9jb21wb3NpdGVkLWlmcmFtZS1zY3JvbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NmU3Yjk2ZDAw
ZDE2YzdiNTk2MWY3OWIwNjNkOGExZDczMmM5ZThmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS1zY3JvbGwuaHRtbApA
QCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICBib2R5IHsKKyAgICAgIG1h
cmdpbjogMDsKKyAgICB9CisgICAgCisgICAgaWZyYW1lIHsKKyAgICAgIGhlaWdodDogMjAwcHg7
CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBtYXJnaW46IDEwcHg7CisgICAgICBwYWRkaW5n
OiAxMHB4OworICAgICAgYm9yZGVyOiBub25lOworICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRy
YW5zbGF0ZVgoMTAwcHgpOworICAgIH0KKyAgICAKKyAgICAuY29udGFpbmVyIHsKKyAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHRvcDogMTAwcHg7CisgICAgICAtd2Via2l0LXRyYW5z
Zm9ybTogdHJhbnNsYXRlWigwKTsKKyAgICB9CisgICAgCisgICAgI2luZGljYXRvciB7CisgICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICB0b3A6IDEyMHB4OworICAgICAgbGVmdDogMTIw
cHg7CisgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmVkOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAKKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworCisgICAgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICB7CisgICAgICB3aW5kb3cuc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXTsKKyAgICAgICAgaWZyYW1lLmNvbnRlbnRXaW5k
b3cuc2Nyb2xsVG8oMCwgMjAwKTsKKworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgIH0sIDApCisgICAgfQorICAgIAorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2Fk
JywgZG9UZXN0LCBmYWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDwhLS0g
WW91IHNob3VsZCBzZWUgYSBncmVlbiBib3ggYmVsb3cuIC0tPgorICA8ZGl2IGlkPSJpbmRpY2F0
b3IiPjwvZGl2PgorCisgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgPGlmcmFtZSBzcmM9
InJlc291cmNlcy9ncmVlbi1yZWQtc3ViZnJhbWUuaHRtbCIgc2Nyb2xsaW5nPSJubyI+PC9pZnJh
bWU+CisgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9ncmVlbi1yZWQtc3ViZnJhbWUuaHRtbCBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL2dyZWVuLXJlZC1zdWJm
cmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3OGM1ZmJmYTM0OWFiYWFmODA4OGVjMWQ4NDU2NjAwMDQy
M2IwNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVz
L3Jlc291cmNlcy9ncmVlbi1yZWQtc3ViZnJhbWUuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURP
Q1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBt
ZWRpYT0ic2NyZWVuIj4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAg
CisgICAgLmJveCB7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgIHdpZHRoOiAyMDBw
eDsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworICAgIDxkaXYgY2xhc3M9
ImJveCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsiPjwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVuOyI+PC9kaXY+CisKKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggODNiOTlkZGU0ZjUwOTU5NDhhOWQ2NDJmYzAxZjg5NGI4ZjMyMjM0NS4uOWE3
NDQ2ZWE2NDQxMjFiY2NmYjA4ZjFhYzI1ODdiYTM2YTQ2ZDc4MiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAx
MC0xMC0yNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggc2Nyb2xsaW5nIG9m
IG5vbmNvbXBvc2l0ZWQgaWZyYW1lcyB3aXRoaW4gY29tcG9zaXRlZCBkb2N1bWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDczOTEKKyAgICAgICAg
CisgICAgICAgIFdoZW4gYW4gaWZyYW1lIHRoYXQgaXMgcGFpbnRpbmcgaW50byBhIGNvbXBvc2l0
aW5nIGxheWVyIGlzIHNjcm9sbGVkLAorICAgICAgICB3ZSBuZWVkIHRvIHJlcGFpbnQgdmlhIHRo
ZSBSZW5kZXJPYmplY3QgKHdoaWNoIGRpcnRpZXMgdGhlIGNvbXBvc2l0aW5nIGxheWVyIGNvbnRl
bnRzKSwKKyAgICAgICAgcmF0aGVyIHRoYW4gZ29pbmcgb3V0IHRvIGhvc3RXaW5kb3cuCisKKyAg
ICAgICAgVGVzdDogY29tcG9zaXRpbmcvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS1zY3JvbGwu
aHRtbAorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c1Nsb3dQYXRoKToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsVmlldzo6c2Nyb2xsQ29udGVudHNTbG93UGF0aCk6CisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsVmlldy5oOgorCiAyMDEwLTEwLTI1ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMGMw
NjNlMGY3NzAyN2Y4ODhjYTRjNGQwMDZlMjkwZmUzZDdiNjI3MS4uOTQwMTg0MjZjNWI1YmM4MDE2
ZjJmYzRkZDYzYTMwODM1YTMxMzgyMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTEwMDAsNiArMTAwMCwy
NSBAQCBib29sIEZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9p
ZCBGcmFtZVZpZXc6OnNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3QgSW50UmVjdCYgdXBkYXRl
UmVjdCkKK3sKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKFJlbmRl
clBhcnQqIGZyYW1lUmVuZGVyZXIgPSBtX2ZyYW1lLT5vd25lclJlbmRlcmVyKCkpIHsKKyAgICAg
ICAgaWYgKGZyYW1lUmVuZGVyZXItPmNvbnRhaW5lckZvclJlcGFpbnQoKSkgeworICAgICAgICAg
ICAgSW50UmVjdCByZWN0KDAsIDAsIHZpc2libGVXaWR0aCgpLCB2aXNpYmxlSGVpZ2h0KCkpOwor
ICAgICAgICAgICAgLy8gQWRkIGJvcmRlcnMgYW5kIHBhZGRpbmcuCisgICAgICAgICAgICByZWN0
Lm1vdmUoZnJhbWVSZW5kZXJlci0+Ym9yZGVyTGVmdCgpICsgZnJhbWVSZW5kZXJlci0+cGFkZGlu
Z0xlZnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICBmcmFtZVJlbmRlcmVyLT5ib3JkZXJUb3Ao
KSArIGZyYW1lUmVuZGVyZXItPnBhZGRpbmdUb3AoKSk7CisKKyAgICAgICAgICAgIGZyYW1lUmVu
ZGVyZXItPnJlcGFpbnRSZWN0YW5nbGUocmVjdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICB9CisjZW5kaWYKKworICAgIFNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzU2xv
d1BhdGgodXBkYXRlUmVjdCk7Cit9CisKIC8vIE5vdGUgdGhhdCB0aGlzIGdldHMgY2FsbGVkIGF0
IHBhaW50aW5nIHRpbWUuCiB2b2lkIEZyYW1lVmlldzo6c2V0SXNPdmVybGFwcGVkKGJvb2wgaXNP
dmVybGFwcGVkKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDE1MTgyMzM5NTNmYjgwZmQ5MzdiNDliNDNmZDcw
MjU4OWUwYjFjNmUuLmY5MjEyYzFhOTllYWYyZjkyOTE1ZjkxMzljOTVhYTY2YWZiZWMyNmMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKQEAgLTI0Miw3ICsyNDIsOCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxE
ZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVj
dCk7Ci0gICAgCisgICAgdmlydHVhbCB2b2lkIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3Qg
SW50UmVjdCYgdXBkYXRlUmVjdCk7CisKIHByaXZhdGU6CiAgICAgRnJhbWVWaWV3KEZyYW1lKik7
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IGY1MTc0ZDMwOGQ4ZGFkM2ZiZWE4MzUwMWIz
ZDNjZDg3ODNmMDU3MTguLjYzZTk0Mjc3YmFmMDg2YzUyZmMxZDE1Y2YzN2ZkMTMxOWM5MDQ0ODYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNTM1LDYgKzUzNSw4IEBAIHZvaWQgU2Nyb2xs
Vmlldzo6c2Nyb2xsQ29udGVudHMoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCiAgICAgaG9z
dFdpbmRvdygpLT5pbnZhbGlkYXRlV2luZG93KHVwZGF0ZVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRl
Ki8pOwogCiAgICAgaWYgKG1fZHJhd1BhblNjcm9sbEljb24pIHsKKyAgICAgICAgLy8gRklYTUU6
IHRoZSBwYW4gaWNvbiBpcyBicm9rZW4gd2hlbiBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBpcyBv
biwgc2luY2UgaXQgd2lsbCBkcmF3IHVuZGVyIHRoZSBjb21wb3NpdGluZyBsYXllcnMuCisgICAg
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzgzNwogICAg
ICAgICBpbnQgcGFuSWNvbkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCA9IDIgKiAocGFuSWNvblNpemVM
ZW5ndGggKyBtYXgoYWJzKHNjcm9sbERlbHRhLndpZHRoKCkpLCBhYnMoc2Nyb2xsRGVsdGEuaGVp
Z2h0KCkpKSk7IC8vIFdlIG9ubHkgd2FudCB0byByZXBhaW50IHdoYXQncyBuZWNlc3NhcnkKICAg
ICAgICAgSW50UG9pbnQgcGFuSWNvbkRpcnR5U3F1YXJlTG9jYXRpb24gPSBJbnRQb2ludChtX3Bh
blNjcm9sbEljb25Qb2ludC54KCkgLSAocGFuSWNvbkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCAvIDIp
LCBtX3BhblNjcm9sbEljb25Qb2ludC55KCkgLSAocGFuSWNvbkRpcnR5U3F1YXJlU2l6ZUxlbmd0
aCAvIDIpKTsKICAgICAgICAgSW50UmVjdCBwYW5TY3JvbGxJY29uRGlydHlSZWN0ID0gSW50UmVj
dChwYW5JY29uRGlydHlTcXVhcmVMb2NhdGlvbiAsIEludFNpemUocGFuSWNvbkRpcnR5U3F1YXJl
U2l6ZUxlbmd0aCwgcGFuSWNvbkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCkpOwpAQCAtNTQ1LDExICs1
NDcsMTEgQEAgdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50cyhjb25zdCBJbnRTaXplJiBz
Y3JvbGxEZWx0YSkKICAgICBpZiAoY2FuQmxpdE9uU2Nyb2xsKCkpIHsgLy8gVGhlIG1haW4gZnJh
bWUgY2FuIGp1c3QgYmxpdCB0aGUgV2ViVmlldyB3aW5kb3cKICAgICAgICAgLy8gRklYTUU6IEZp
bmQgYSB3YXkgdG8gc2Nyb2xsIHN1YmZyYW1lcyB3aXRoIHRoaXMgZmFzdGVyIHBhdGgKICAgICAg
ICAgaWYgKCFzY3JvbGxDb250ZW50c0Zhc3RQYXRoKC1zY3JvbGxEZWx0YSwgc2Nyb2xsVmlld1Jl
Y3QsIGNsaXBSZWN0KSkKLSAgICAgICAgICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRl
bnRzRm9yU2xvd1Njcm9sbCh1cGRhdGVSZWN0LCBmYWxzZSk7CisgICAgICAgICAgICBzY3JvbGxD
b250ZW50c1Nsb3dQYXRoKHVwZGF0ZVJlY3QpOwogICAgIH0gZWxzZSB7IAogICAgICAgIC8vIFdl
IG5lZWQgdG8gZ28gYWhlYWQgYW5kIHJlcGFpbnQgdGhlIGVudGlyZSBiYWNraW5nIHN0b3JlLiAg
RG8gaXQgbm93IGJlZm9yZSBtb3ZpbmcgdGhlCiAgICAgICAgLy8gd2luZG93ZWQgcGx1Z2lucy4K
LSAgICAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwodXBk
YXRlUmVjdCwgZmFsc2UpOworICAgICAgIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgodXBkYXRlUmVj
dCk7CiAgICAgfQogCiAgICAgLy8gVGhpcyBjYWxsIHdpbGwgbW92ZSBjaGlsZHJlbiB3aXRoIG5h
dGl2ZSB3aWRnZXRzIChwbHVnaW5zKSBhbmQgaW52YWxpZGF0ZSB0aGVtIGFzIHdlbGwuCkBAIC01
NjUsNiArNTY3LDExIEBAIGJvb2wgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aChj
b25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKK3ZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0KQoreworICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRz
Rm9yU2xvd1Njcm9sbCh1cGRhdGVSZWN0LCBmYWxzZSk7Cit9CisKIEludFBvaW50IFNjcm9sbFZp
ZXc6OndpbmRvd1RvQ29udGVudHMoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBjb25zdAog
ewogICAgIEludFBvaW50IHZpZXdQb2ludCA9IGNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdyh3
aW5kb3dQb2ludCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDIzZjQ4Y2FiZTg2NzllM2U5NjA2
YmE3YzVkOWFlZTFlOWFmYTU3ZTcuLmVlZjZkMGJhYjQ4NGE2NDA3ZDMxNGUxMWZkZGQwNjM2M2Iz
MmFmNDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0yNjQsOCArMjY0LDEwIEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2Nyb2xsQ29ybmVyKCk7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50U2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmIGNv
cm5lclJlY3QpOwogCi0gICAgLy8gU2Nyb2xsIHRoZSBjb250ZW50IGJ5IGJsaXR0aW5nIHRoZSBw
aXhlbHMKKyAgICAvLyBTY3JvbGwgdGhlIGNvbnRlbnQgYnkgYmxpdHRpbmcgdGhlIHBpeGVscy4K
ICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBz
Y3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBj
bGlwUmVjdCk7CisgICAgLy8gU2Nyb2xsIHRoZSBjb250ZW50IGJ5IGludmFsaWRhdGluZyBldmVy
eXRoaW5nLgorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0IElu
dFJlY3QmIHVwZGF0ZVJlY3QpOwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxTY3JvbGxiYXI+IG1f
aG9yaXpvbnRhbFNjcm9sbGJhcjsK
</data>
<flag name="review"
          id="61950"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>