<?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>46219</bug_id>
          
          <creation_ts>2010-09-21 14:48:27 -0700</creation_ts>
          <short_desc>[chromium] invalidateRootLayerRect needs to schedule compositor</short_desc>
          <delta_ts>2010-09-28 16:05:02 -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>PC</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="Nat Duca">nduca</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>282569</commentid>
    <comment_count>0</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-21 14:48:27 -0700</bug_when>
    <thetext>When a root layer invalidation occurs, we need to schedule a compositor run.

Without this, selecting text on the root layer appears to be broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282593</commentid>
    <comment_count>1</comment_count>
      <attachid>68296</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-21 15:48:03 -0700</bug_when>
    <thetext>Created attachment 68296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282608</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-21 16:18:06 -0700</bug_when>
    <thetext>Why do we need this?  LayerChromium::setNeedsDisplay() should call setNeedsCommit() which should call notifySyncRequired() which do the same thing.  In fact there&apos;s this comment in setNeedsCommit():

    // Call notifySyncRequired(), which in this implementation plumbs through to
    // call setRootLayerNeedsDisplay() on the WebView, which will cause LayerRendererChromium
    // to render a frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282612</commentid>
    <comment_count>3</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-21 16:22:20 -0700</bug_when>
    <thetext>Good question.

In the current implementation, the root layer behaves differently than all other layers, and does not actually call notifySyncRequired.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282614</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-21 16:23:23 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Good question.
&gt; 
&gt; In the current implementation, the root layer behaves differently than all other layers, and does not actually call notifySyncRequired.

Isn&apos;t that the actual bug, then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282625</commentid>
    <comment_count>5</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-21 16:30:09 -0700</bug_when>
    <thetext>Yes and no. The current compositor architecture intentionally treats the root layer the same as non-root layers. I have been making incremental changes to get the root layer more-and-more similar to the other layers, but we&apos;re not to the point of unification yet.

As things stand right now, the root layer is broken when you for example highlight text on it.

So, yes, the current architecture is flawed. But, fixing the flaw is something we might want to hit in another changelist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282630</commentid>
    <comment_count>6</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-21 16:34:42 -0700</bug_when>
    <thetext>Erm, mistake in typing --- &quot;The current compositor architecture intentionally treats the root layer the same as non-root layers&quot; should read &quot;The current compositor architecture intentionally treats the root layer ***differently*** from non-root layers&quot;

Hahah</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282728</commentid>
    <comment_count>7</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-21 18:51:18 -0700</bug_when>
    <thetext>As far as I can tell, that is by design of the overall compositor. E.g. the code shared with Safari Windows, treats root &amp; child layers differently as well.

If you want me to update the comment you saw to say something like &quot;except on root layer,&quot; that would be fine, since the comment is a lie.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283197</commentid>
    <comment_count>8</comment_count>
      <attachid>68429</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-22 13:23:43 -0700</bug_when>
    <thetext>Created attachment 68429
Add comments to LayerChromium::setNeedsDisplay</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283374</commentid>
    <comment_count>9</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-22 17:01:46 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Good question.
&gt; &gt; 
&gt; &gt; In the current implementation, the root layer behaves differently than all other layers, and does not actually call notifySyncRequired.
&gt; 
&gt; Isn&apos;t that the actual bug, then?

I think Nat&apos;s solution is correct here.  The root layer does behave differently from the rest of the layers so it isn&apos;t that surprising that it needs to notify the window to repaint somewhat differently from other layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283424</commentid>
    <comment_count>10</comment_count>
      <attachid>68487</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-22 18:18:21 -0700</bug_when>
    <thetext>Created attachment 68487
Minimally-controversial approach (I hope) to root layer damage tracking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283429</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-22 18:22:28 -0700</bug_when>
    <thetext>Looks OK to me - will r+ if Vangelis agrees.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283438</commentid>
    <comment_count>12</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-22 18:31:40 -0700</bug_when>
    <thetext>I think James has brought up a good point, though, in his reviews, which is essentially that our current use of the LayerChromium is extremely hacky. The reason for this is because root vs non-root layers behave differently in WebKit.

What I have done in the new patch is to stop the root layer damage logic from piggybacking on the LayerChromium code. By pulling it into the WebView, we keep our code clear.

My guess is that iframe handling will end up driving us to resolve root vs non-root issues. A bug for this exists at http://code.google.com/p/chromium/issues/detail?id=54758. I think that bug will ensure that the root-non-root concerns brought up in this discussion will not get swept under the rug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284692</commentid>
    <comment_count>13</comment_count>
      <attachid>68487</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-24 14:20:47 -0700</bug_when>
    <thetext>Comment on attachment 68487
Minimally-controversial approach (I hope) to root layer damage tracking.

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

&gt; WebKit/chromium/src/WebViewImpl.cpp:2290
&gt; +    IntRect contentRect = view-&gt;windowToContents(rect);

Is this transformation necessary?  It seems to me that both regular and scroll damage rects are in viewport space.

&gt; WebKit/chromium/src/WebViewImpl.cpp:2412
&gt; +    m_rootLayerDirtyRect = WebRect();

WebRect() -&gt; IntRect() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284733</commentid>
    <comment_count>14</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-24 14:55:24 -0700</bug_when>
    <thetext>Use of content space is still necessary to deal with scrolls mixed with dirty rects; otherwise, I&apos;d have to scroll the content dirty rect when we scroll. However, I&apos;d rather not touch this as I have to rip this all out and write yet another version to fix the scrollbars issue.

Will upload fix for the webrect now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284738</commentid>
    <comment_count>15</comment_count>
      <attachid>68760</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-24 15:00:25 -0700</bug_when>
    <thetext>Created attachment 68760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285727</commentid>
    <comment_count>16</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-27 14:08:06 -0700</bug_when>
    <thetext>Vangelis - any feedback or are you good?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285734</commentid>
    <comment_count>17</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-27 14:13:43 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Vangelis - any feedback or are you good?

Oops, sorry for not responding earlier.  I like the latest patch. No issues here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286444</commentid>
    <comment_count>18</comment_count>
      <attachid>68760</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-28 12:20:30 -0700</bug_when>
    <thetext>Comment on attachment 68760
Patch

Rejecting patch 68760 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--quiet&apos;, 68760]&quot; exit_code: 2
Cleaning working directory
Updating working directory
Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=68760&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=46219&amp;ctype=xml
Processing 1 patch from 1 bug.
Processing patch 68760 from bug 46219.
Failed to run &quot;[u&apos;/Users/abarth/git/webkit-queue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;James Robinson&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4144001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286564</commentid>
    <comment_count>19</comment_count>
      <attachid>69116</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2010-09-28 15:05:58 -0700</bug_when>
    <thetext>Created attachment 69116
Make it commitable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286605</commentid>
    <comment_count>20</comment_count>
      <attachid>69116</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-28 16:04:56 -0700</bug_when>
    <thetext>Comment on attachment 69116
Make it commitable.

Clearing flags on attachment: 69116

Committed r68604: &lt;http://trac.webkit.org/changeset/68604&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286606</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-28 16:05:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68296</attachid>
            <date>2010-09-21 15:48:03 -0700</date>
            <delta_ts>2010-09-22 13:23:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46219-20100921154802.patch</filename>
            <type>text/plain</type>
            <size>1173</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjc5ODgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDktMjEgIE5hdCBE
dWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gaW52YWxpZGF0ZVJvb3RMYXllclJlY3QgbmVl
ZHMgdG8gc2NoZWR1bGUgY29tcG9zaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDYyMTkKKworICAgICAgICBJbnNpZGUgaW52YWxpZGF0ZVJvb3RM
YXllclJlY3QsIGNhbGwgc2V0Um9vdExheWVyTmVlZHNEaXNwbGF5KCkuCisKKyAgICAgICAgKiBz
cmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aW52YWxp
ZGF0ZVJvb3RMYXllclJlY3QpOgorCiAyMDEwLTA5LTIxICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5hdGUgQ2hhcGluLgpJbmRleDog
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDY3OTg2KQorKysgV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyOTMsNiAr
MjI5Myw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmludmFsaWRhdGVSb290TGF5ZXJSZWMKIAogICAg
IC8vIEZJWE1FOiBhZGQgYSBzbWFydGVyIGRhbWFnZSBhZ2dyZWdhdGlvbiBsb2dpYz8gUmlnaHQg
bm93LCBMYXllckNocm9taXVtIGRvZXMgc2ltcGxlIHVuaW9uLWluZy4KICAgICBtX2xheWVyUmVu
ZGVyZXItPnJvb3RMYXllcigpLT5zZXROZWVkc0Rpc3BsYXkoY29udGVudFJlY3QpOworICAgIHNl
dFJvb3RMYXllck5lZWRzRGlzcGxheSgpOwogfQogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68429</attachid>
            <date>2010-09-22 13:23:43 -0700</date>
            <delta_ts>2010-09-22 18:18:17 -0700</delta_ts>
            <desc>Add comments to LayerChromium::setNeedsDisplay</desc>
            <filename>bug-46219-20100922132342.patch</filename>
            <type>text/plain</type>
            <size>3291</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODA3NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDktMjIgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJv
bWl1bV0gaW52YWxpZGF0ZVJvb3RMYXllclJlY3QgbmVlZHMgdG8gc2NoZWR1bGUgY29tcG9zaXRv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYyMTkK
KworICAgICAgICBBZGQgY29tbWVudHMgdG8gTGF5ZXJDaHJvbWl1bSBleHBsYWluaW5nIGN1cnJl
bnQgc2V0TmVlZHNDb21taXQKKyAgICAgICAgYmVoYXZpb3IgZm9yIHJvb3QgdmVyc3VzIG5vbi1y
b290IGxheWVycy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2V0TmVlZHND
b21taXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2V0TmVlZHNEaXNwbGF5
KToKKwogMjAxMC0wOS0yMiAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3Nh
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAko
cmV2aXNpb24gNjc5ODYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjQsOSArMjI0LDEwIEBAIHVuc2ln
bmVkIExheWVyQ2hyb21pdW06OmNyZWF0ZVNoYWRlclByb2cKIAogdm9pZCBMYXllckNocm9taXVt
OjpzZXROZWVkc0NvbW1pdCgpCiB7Ci0gICAgLy8gQ2FsbCBub3RpZnlTeW5jUmVxdWlyZWQoKSwg
d2hpY2ggaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBwbHVtYnMgdGhyb3VnaCB0bworICAgIC8vIENh
bGwgbm90aWZ5U3luY1JlcXVpcmVkKCksIHdoaWNoIGZvciBub24tcm9vdCBsYXllcnMgcGx1bWJz
IHRocm91Z2ggdG8KICAgICAvLyBjYWxsIHNldFJvb3RMYXllck5lZWRzRGlzcGxheSgpIG9uIHRo
ZSBXZWJWaWV3LCB3aGljaCB3aWxsIGNhdXNlIExheWVyUmVuZGVyZXJDaHJvbWl1bQogICAgIC8v
IHRvIHJlbmRlciBhIGZyYW1lLgorICAgIC8vIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBv
biByb290IGxheWVycy4KICAgICBpZiAobV9vd25lcikKICAgICAgICAgbV9vd25lci0+bm90aWZ5
U3luY1JlcXVpcmVkKCk7CiB9CkBAIC0zNTIsOCArMzUzLDkgQEAgTGF5ZXJDaHJvbWl1bSogTGF5
ZXJDaHJvbWl1bTo6c3VwZXJsYXllcgogCiB2b2lkIExheWVyQ2hyb21pdW06OnNldE5lZWRzRGlz
cGxheShjb25zdCBGbG9hdFJlY3QmIGRpcnR5UmVjdCkKIHsKLSAgICAvLyBTaW1wbHkgbWFyayB0
aGUgY29udGVudHMgYXMgZGlydHkuIFRoZSBhY3R1YWwgcmVkcmF3IHdpbGwKLSAgICAvLyBoYXBw
ZW4gd2hlbiBpdCdzIHRpbWUgdG8gZG8gdGhlIGNvbXBvc2l0aW5nLgorICAgIC8vIFNpbXBseSBt
YXJrIHRoZSBjb250ZW50cyBhcyBkaXJ0eS4gRm9yIG5vbi1yb290IGxheWVycywgdGhlIGNhbGwg
dG8KKyAgICAvLyBzZXROZWVkc0NvbW1pdCB3aWxsIHNjaGVkdWxlIGEgZnJlc2ggY29tcG9zaXRp
bmcgcGFzcy4KKyAgICAvLyBGb3IgdGhlIHJvb3QgbGF5ZXIsIG9uZSBtdXN0IG1hbnVhbGx5IHNj
aGVkdWxlIGEgY29tcG9zaXRvciBydW4uCiAgICAgbV9jb250ZW50c0RpcnR5ID0gdHJ1ZTsKIAog
ICAgIG1fZGlydHlSZWN0LnVuaXRlKGRpcnR5UmVjdCk7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDY4MDc1KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDEwLTA5LTIyICBOYXQgRHVjYSAgPG5kdWNhQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hy
b21pdW1dIGludmFsaWRhdGVSb290TGF5ZXJSZWN0IG5lZWRzIHRvIHNjaGVkdWxlIGNvbXBvc2l0
b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MjE5
CisKKyAgICAgICAgSW5zaWRlIGludmFsaWRhdGVSb290TGF5ZXJSZWN0LCBjYWxsIHNldFJvb3RM
YXllck5lZWRzRGlzcGxheSgpLgorCisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmludmFsaWRhdGVSb290TGF5ZXJSZWN0KToKKwog
MjAxMC0wOS0yMiAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgQ2hyb21pdW0gYnVpbGQgZml4LiBGaXggYnVpbGQgd2hlbiBhY2NlbGVyYXRl
ZApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDY3OTg2KQor
KysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIyOTMsNiArMjI5Myw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmludmFsaWRhdGVSb290TGF5ZXJS
ZWMKIAogICAgIC8vIEZJWE1FOiBhZGQgYSBzbWFydGVyIGRhbWFnZSBhZ2dyZWdhdGlvbiBsb2dp
Yz8gUmlnaHQgbm93LCBMYXllckNocm9taXVtIGRvZXMgc2ltcGxlIHVuaW9uLWluZy4KICAgICBt
X2xheWVyUmVuZGVyZXItPnJvb3RMYXllcigpLT5zZXROZWVkc0Rpc3BsYXkoY29udGVudFJlY3Qp
OworICAgIHNldFJvb3RMYXllck5lZWRzRGlzcGxheSgpOwogfQogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68487</attachid>
            <date>2010-09-22 18:18:21 -0700</date>
            <delta_ts>2010-09-24 15:00:21 -0700</delta_ts>
            <desc>Minimally-controversial approach (I hope) to root layer damage tracking.</desc>
            <filename>bug-46219-20100922181820.patch</filename>
            <type>text/plain</type>
            <size>9523</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODEwNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDktMjIgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJv
bWl1bV0gaW52YWxpZGF0ZVJvb3RMYXllclJlY3QgbmVlZHMgdG8gc2NoZWR1bGUgY29tcG9zaXRv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYyMTkK
KworICAgICAgICBVcGRhdGUgY29tbWVudHMgb24gTGF5ZXJDaHJvbWl1bSBjb21taXQvZGlzcGxh
eSBmdW5jdGlvbnMgdG8gY2xhcmlmeQorICAgICAgICB0aGVpciBsaW1pdGF0aW9ucy4gUmVtb3Zl
IHVudXNlZCBkaXJ0eWluZyBsb2dpYyBmcm9tIAorICAgICAgICBMYXllclJlbmRlcmVyQ2hyb21p
dW0uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldE5lZWRzQ29tbWl0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldE5lZWRzRGlzcGxheSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6TGF5ZXJSZW5kZXJl
ckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6cHJl
c2VudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmg6CisKIDIwMTAtMDktMjIgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IER1bWl0cnUgRGFuaWxpdWMuCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5jcHAJKHJldmlzaW9uIDY3OTg2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI0LDkgKzIyNCwxMCBA
QCB1bnNpZ25lZCBMYXllckNocm9taXVtOjpjcmVhdGVTaGFkZXJQcm9nCiAKIHZvaWQgTGF5ZXJD
aHJvbWl1bTo6c2V0TmVlZHNDb21taXQoKQogewotICAgIC8vIENhbGwgbm90aWZ5U3luY1JlcXVp
cmVkKCksIHdoaWNoIGluIHRoaXMgaW1wbGVtZW50YXRpb24gcGx1bWJzIHRocm91Z2ggdG8KKyAg
ICAvLyBDYWxsIG5vdGlmeVN5bmNSZXF1aXJlZCgpLCB3aGljaCBmb3Igbm9uLXJvb3QgbGF5ZXJz
IHBsdW1icyB0aHJvdWdoIHRvCiAgICAgLy8gY2FsbCBzZXRSb290TGF5ZXJOZWVkc0Rpc3BsYXko
KSBvbiB0aGUgV2ViVmlldywgd2hpY2ggd2lsbCBjYXVzZSBMYXllclJlbmRlcmVyQ2hyb21pdW0K
ICAgICAvLyB0byByZW5kZXIgYSBmcmFtZS4KKyAgICAvLyBUaGlzIGZ1bmN0aW9uIGhhcyBubyBl
ZmZlY3Qgb24gcm9vdCBsYXllcnMuCiAgICAgaWYgKG1fb3duZXIpCiAgICAgICAgIG1fb3duZXIt
Pm5vdGlmeVN5bmNSZXF1aXJlZCgpOwogfQpAQCAtMzUyLDggKzM1Myw5IEBAIExheWVyQ2hyb21p
dW0qIExheWVyQ2hyb21pdW06OnN1cGVybGF5ZXIKIAogdm9pZCBMYXllckNocm9taXVtOjpzZXRO
ZWVkc0Rpc3BsYXkoY29uc3QgRmxvYXRSZWN0JiBkaXJ0eVJlY3QpCiB7Ci0gICAgLy8gU2ltcGx5
IG1hcmsgdGhlIGNvbnRlbnRzIGFzIGRpcnR5LiBUaGUgYWN0dWFsIHJlZHJhdyB3aWxsCi0gICAg
Ly8gaGFwcGVuIHdoZW4gaXQncyB0aW1lIHRvIGRvIHRoZSBjb21wb3NpdGluZy4KKyAgICAvLyBT
aW1wbHkgbWFyayB0aGUgY29udGVudHMgYXMgZGlydHkuIEZvciBub24tcm9vdCBsYXllcnMsIHRo
ZSBjYWxsIHRvCisgICAgLy8gc2V0TmVlZHNDb21taXQgd2lsbCBzY2hlZHVsZSBhIGZyZXNoIGNv
bXBvc2l0aW5nIHBhc3MuCisgICAgLy8gRm9yIHRoZSByb290IGxheWVyLCBzZXROZWVkc0NvbW1p
dCBoYXMgbm8gZWZmZWN0LgogICAgIG1fY29udGVudHNEaXJ0eSA9IHRydWU7CiAKICAgICBtX2Rp
cnR5UmVjdC51bml0ZShkaXJ0eVJlY3QpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAko
cmV2aXNpb24gNjc5ODYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkxLDYgQEAg
TGF5ZXJSZW5kZXJlckNocm9taXVtOjpMYXllclJlbmRlcmVyQ2hybwogICAgICwgbV9yb290TGF5
ZXJUZXh0dXJlSGVpZ2h0KDApCiAgICAgLCBtX3Njcm9sbFNoYWRlclByb2dyYW0oMCkKICAgICAs
IG1fcm9vdExheWVyKDApCi0gICAgLCBtX25lZWRzRGlzcGxheShmYWxzZSkKICAgICAsIG1fc2Ny
b2xsUG9zaXRpb24oSW50UG9pbnQoLTEsIC0xKSkKICAgICAsIG1fY3VycmVudFNoYWRlcigwKQog
ICAgICwgbV9jb250ZXh0KGNvbnRleHQpCkBAIC0zNDgsNyArMzQ3LDYgQEAgdm9pZCBMYXllclJl
bmRlcmVyQ2hyb21pdW06OnByZXNlbnQoKQogICAgIC8vIE5vdGUgdGhhdCBjdXJyZW50bHkgdGhp
cyBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIHN3YXBCdWZmZXJzOyB3ZSBzaG91bGQKICAgICAvLyBj
b25zaWRlciBleHBvc2luZyBhIGRpZmZlcmVudCBlbnRyeSBwb2ludCBvbiBHcmFwaGljc0NvbnRl
eHQzRC4KICAgICBtX2NvbnRleHQtPnByZXBhcmVUZXh0dXJlKCk7Ci0gICAgbV9uZWVkc0Rpc3Bs
YXkgPSBmYWxzZTsKIH0KIAogdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmdldEZyYW1lYnVm
ZmVyUGl4ZWxzKHZvaWQgKnBpeGVscywgY29uc3QgSW50UmVjdCYgcmVjdCkKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRl
cmVyQ2hyb21pdW0uaAkocmV2aXNpb24gNjc5ODYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpCkBAIC04
MSw4ICs4MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJvb3RMYXllcihQYXNzUmVmUHRyPExh
eWVyQ2hyb21pdW0+IGxheWVyKSB7IG1fcm9vdExheWVyID0gbGF5ZXI7IH0KICAgICBMYXllckNo
cm9taXVtKiByb290TGF5ZXIoKSB7IHJldHVybiBtX3Jvb3RMYXllci5nZXQoKTsgfQogCi0gICAg
dm9pZCBzZXROZWVkc0Rpc3BsYXkoKSB7IG1fbmVlZHNEaXNwbGF5ID0gdHJ1ZTsgfQotCiAgICAg
Ym9vbCBoYXJkd2FyZUNvbXBvc2l0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9oYXJkd2FyZUNvbXBv
c2l0aW5nOyB9CiAKICAgICB2b2lkIHNldFJvb3RMYXllckNhbnZhc1NpemUoY29uc3QgSW50U2l6
ZSYpOwpAQCAtMTM5LDcgKzEzNyw2IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8TGF5ZXJDaHJv
bWl1bT4gbV9yb290TGF5ZXI7CiAKLSAgICBib29sIG1fbmVlZHNEaXNwbGF5OwogICAgIEludFBv
aW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAgYm9vbCBtX2hhcmR3YXJlQ29tcG9zaXRpbmc7CiAK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjgxMDUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDktMjIgIE5hdCBE
dWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gaW52YWxpZGF0ZVJvb3RMYXllclJlY3QgbmVl
ZHMgdG8gc2NoZWR1bGUgY29tcG9zaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDYyMTkKKworICAgICAgICBNYWtlIHN1cmUgc2V0Um9vdExheWVy
TmVkc0Rpc3BsYXkgaXMgY2FsbGVkIGJ5IHJvb3QgaW52YWxpZGF0aW9uLgorICAgICAgICBUbyBh
dm9pZCBjb25mdXNpb24gYWJvdXQgcm9vdC1sYXllciB2ZXJzdXMgbm9uLXJvb3QtbGF5ZXIKKyAg
ICAgICAgYmVoYXZpb3IsIG1vdmUgdGhlIHJvb3QgbGF5ZXIgZGFtYWdlIHN0YXRlIHRvIHRoZSBX
ZWJWaWV3LgorICAgICAgICAKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0Um9vdExheWVyTmVlZHNEaXNwbGF5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNjcm9sbFJvb3RMYXllclJlY3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6aW52YWxpZGF0ZVJvb3RMYXllclJlY3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6ZG9Db21wb3NpdGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5oOgorCiAyMDEwLTA5LTIyICBFcmljIFVocmhhbmUgIDxlcmljdUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRHVtaXRydSBEYW5pbGl1Yy4KSW5kZXg6IFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA2Nzk4NikKKysrIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjA2LDggKzIyMDYsNiBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRSb290R3JhcGhpY3NMYXllcihXCiAKIHZvaWQgV2ViVmll
d0ltcGw6OnNldFJvb3RMYXllck5lZWRzRGlzcGxheSgpCiB7Ci0gICAgaWYgKG1fbGF5ZXJSZW5k
ZXJlcikKLSAgICAgICAgbV9sYXllclJlbmRlcmVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKICAgICBt
X2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUoKTsKICAgICAvLyBGSVhNRTogVG8gYXZvaWQgYnJl
YWtpbmcgdGhlIGRvd25zdHJlYW0gQ2hyb21lIHJlbmRlcl93aWRnZXQgd2hpbGUgZG93bnN0cmVh
bQogICAgIC8vIGNoYW5nZXMgbGFuZCwgd2UgYWxzbyBoYXZlIHRvIHBhc3MgYSAxeDEgaW52YWxp
ZGF0ZSB1cCB0byB0aGUgY2xpZW50CkBAIC0yMjQ3LDcgKzIyNDUsNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpzY3JvbGxSb290TGF5ZXJSZWN0KGNvCiAgICAgLy8gcmVjdHMgYWxsb3dzIHVzIHRvIGlu
dGVybWl4IGludmFsaWRhdGVzIHdpdGggc2Nyb2xscy4KICAgICBJbnRSZWN0IGRhbWFnZWRDb250
ZW50c1JlY3Q7CiAgICAgaWYgKHNjcm9sbERlbHRhLndpZHRoKCkpIHsKLSAgICAgICAgZmxvYXQg
ZHggPSBzdGF0aWNfY2FzdDxmbG9hdD4oc2Nyb2xsRGVsdGEud2lkdGgoKSk7CisgICAgICAgIGlu
dCBkeCA9IHNjcm9sbERlbHRhLndpZHRoKCk7CiAgICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Qu
c2V0WShjb250ZW50UmVjdC55KCkpOwogICAgICAgICBkYW1hZ2VkQ29udGVudHNSZWN0LnNldEhl
aWdodChjb250ZW50UmVjdC5oZWlnaHQoKSk7CiAgICAgICAgIGlmIChkeCA+IDApIHsKQEAgLTIy
NTgsNyArMjI1Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNjcm9sbFJvb3RMYXllclJlY3QoY28K
ICAgICAgICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Quc2V0V2lkdGgoLWR4KTsKICAgICAgICAg
fQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGZsb2F0IGR5ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNj
cm9sbERlbHRhLmhlaWdodCgpKTsKKyAgICAgICAgaW50IGR5ID0gc2Nyb2xsRGVsdGEuaGVpZ2h0
KCk7CiAgICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Quc2V0WChjb250ZW50UmVjdC54KCkpOwog
ICAgICAgICBkYW1hZ2VkQ29udGVudHNSZWN0LnNldFdpZHRoKGNvbnRlbnRSZWN0LndpZHRoKCkp
OwogICAgICAgICBpZiAoZHkgPiAwKSB7CkBAIC0yMjcwLDcgKzIyNjgsNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpzY3JvbGxSb290TGF5ZXJSZWN0KGNvCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBt
X3Njcm9sbERhbWFnZS51bml0ZShkYW1hZ2VkQ29udGVudHNSZWN0KTsKKyAgICBtX3Jvb3RMYXll
clNjcm9sbERhbWFnZS51bml0ZShkYW1hZ2VkQ29udGVudHNSZWN0KTsKICAgICBzZXRSb290TGF5
ZXJOZWVkc0Rpc3BsYXkoKTsKIH0KIApAQCAtMjI4OSwxMCArMjI4NywxMiBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjppbnZhbGlkYXRlUm9vdExheWVyUmVjCiAKICAgICAvLyByZWN0IGlzIGluIHZpZXdw
b3J0IHNwYWNlLiBDb252ZXJ0IHRvIGNvbnRlbnQgc3BhY2UKICAgICAvLyBzbyB0aGF0IGludmFs
aWRhdGlvbnMgYW5kIHNjcm9sbCBpbnZhbGlkYXRpb25zIHBsYXkgd2VsbCB3aXRoIG9uZS1hbm90
aGVyLgotICAgIEZsb2F0UmVjdCBjb250ZW50UmVjdCA9IHZpZXctPndpbmRvd1RvQ29udGVudHMo
cmVjdCk7CisgICAgSW50UmVjdCBjb250ZW50UmVjdCA9IHZpZXctPndpbmRvd1RvQ29udGVudHMo
cmVjdCk7CiAKLSAgICAvLyBGSVhNRTogYWRkIGEgc21hcnRlciBkYW1hZ2UgYWdncmVnYXRpb24g
bG9naWM/IFJpZ2h0IG5vdywgTGF5ZXJDaHJvbWl1bSBkb2VzIHNpbXBsZSB1bmlvbi1pbmcuCi0g
ICAgbV9sYXllclJlbmRlcmVyLT5yb290TGF5ZXIoKS0+c2V0TmVlZHNEaXNwbGF5KGNvbnRlbnRS
ZWN0KTsKKyAgICAvLyBGSVhNRTogYWRkIGEgc21hcnRlciBkYW1hZ2UgYWdncmVnYXRpb24gbG9n
aWMgYW5kL29yIHVuaWZ5IHdpdGggCisgICAgLy8gTGF5ZXJDaHJvbWl1bSdzIGRhbWFnZSBsb2dp
YworICAgIG1fcm9vdExheWVyRGlydHlSZWN0LnVuaXRlKGNvbnRlbnRSZWN0KTsKKyAgICBzZXRS
b290TGF5ZXJOZWVkc0Rpc3BsYXkoKTsKIH0KIAogCkBAIC0yMzkxLDE0ICsyMzkxLDE0IEBAIHZv
aWQgV2ViVmlld0ltcGw6OmRvQ29tcG9zaXRlKCkKICAgICBtX2xheWVyUmVuZGVyZXItPnByZXBh
cmVUb0RyYXdMYXllcnModmlzaWJsZVJlY3QsIGNvbnRlbnRSZWN0LCBJbnRQb2ludCh2aWV3LT5z
Y3JvbGxYKCksIHZpZXctPnNjcm9sbFkoKSkpOwogCiAgICAgLy8gRHJhdyB0aGUgY29udGVudHMg
b2YgdGhlIHJvb3QgbGF5ZXIuCi0gICAgVmVjdG9yPEZsb2F0UmVjdD4gZGFtYWdlUmVjdHM7Ci0g
ICAgZGFtYWdlUmVjdHMuYXBwZW5kKG1fc2Nyb2xsRGFtYWdlKTsKLSAgICBkYW1hZ2VSZWN0cy5h
cHBlbmQobV9sYXllclJlbmRlcmVyLT5yb290TGF5ZXIoKS0+ZGlydHlSZWN0KCkpOworICAgIFZl
Y3RvcjxJbnRSZWN0PiBkYW1hZ2VSZWN0czsKKyAgICBkYW1hZ2VSZWN0cy5hcHBlbmQobV9yb290
TGF5ZXJTY3JvbGxEYW1hZ2UpOworICAgIGRhbWFnZVJlY3RzLmFwcGVuZChtX3Jvb3RMYXllckRp
cnR5UmVjdCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYW1hZ2VSZWN0cy5zaXplKCk7
ICsraSkgewogICAgICAgICAvLyBUaGUgZGFtYWdlIHJlY3QgZm9yIHRoZSByb290IGxheWVyIGlz
IGluIGNvbnRlbnQgc3BhY2UgW2UuZy4gdW5zY3JvbGxlZF0uCiAgICAgICAgIC8vIENvbnZlcnQg
ZnJvbSBjb250ZW50IHNwYWNlIHRvIHZpZXdQb3J0IHNwYWNlLgotICAgICAgICBjb25zdCBGbG9h
dFJlY3QgZGFtYWdlZENvbnRlbnRSZWN0ID0gZGFtYWdlUmVjdHNbaV07Ci0gICAgICAgIEludFJl
Y3QgZGFtYWdlZFJlY3QgPSB2aWV3LT5jb250ZW50c1RvV2luZG93KEludFJlY3QoZGFtYWdlZENv
bnRlbnRSZWN0KSk7CisgICAgICAgIGNvbnN0IEludFJlY3QgZGFtYWdlZENvbnRlbnRSZWN0ID0g
ZGFtYWdlUmVjdHNbaV07CisgICAgICAgIEludFJlY3QgZGFtYWdlZFJlY3QgPSB2aWV3LT5jb250
ZW50c1RvV2luZG93KGRhbWFnZWRDb250ZW50UmVjdCk7CiAKICAgICAgICAgLy8gSW50ZXJzZWN0
IHRoaXMgcmVjdGFuZ2xlIHdpdGggdGhlIHZpZXdQb3J0LgogICAgICAgICBkYW1hZ2VkUmVjdC5p
bnRlcnNlY3Qodmlld1BvcnQpOwpAQCAtMjQwOSw4ICsyNDA5LDggQEAgdm9pZCBXZWJWaWV3SW1w
bDo6ZG9Db21wb3NpdGUoKQogICAgICAgICAgICAgbV9sYXllclJlbmRlcmVyLT51cGRhdGVSb290
TGF5ZXJUZXh0dXJlUmVjdChkYW1hZ2VkUmVjdCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgbV9s
YXllclJlbmRlcmVyLT5yb290TGF5ZXIoKS0+cmVzZXROZWVkc0Rpc3BsYXkoKTsKLSAgICBtX3Nj
cm9sbERhbWFnZSA9IFdlYlJlY3QoKTsKKyAgICBtX3Jvb3RMYXllckRpcnR5UmVjdCA9IFdlYlJl
Y3QoKTsKKyAgICBtX3Jvb3RMYXllclNjcm9sbERhbWFnZSA9IFdlYlJlY3QoKTsKIAogICAgIC8v
IERyYXcgdGhlIGFjdHVhbCBsYXllcnMuLi4KICAgICBtX2xheWVyUmVuZGVyZXItPmRyYXdMYXll
cnModmlzaWJsZVJlY3QsIGNvbnRlbnRSZWN0KTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmgJKHJldmlzaW9uIDY3OTg2KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MjYsNyArNTI2LDggQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8V2ViQ29yZTo6Tm9kZT4gbV9tb3VzZUNhcHR1cmVOb2RlOwogCiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotICAgIFdlYkNvcmU6OkludFJlY3QgbV9zY3JvbGxEYW1hZ2U7Cisg
ICAgV2ViQ29yZTo6SW50UmVjdCBtX3Jvb3RMYXllckRpcnR5UmVjdDsKKyAgICBXZWJDb3JlOjpJ
bnRSZWN0IG1fcm9vdExheWVyU2Nyb2xsRGFtYWdlOwogICAgIE93blB0cjxXZWJDb3JlOjpMYXll
clJlbmRlcmVyQ2hyb21pdW0+IG1fbGF5ZXJSZW5kZXJlcjsKICAgICBib29sIG1faXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQWN0aXZlOwogICAgIGJvb2wgbV9jb21wb3NpdG9yQ3JlYXRpb25GYWls
ZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68760</attachid>
            <date>2010-09-24 15:00:25 -0700</date>
            <delta_ts>2010-09-28 15:05:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46219-20100924150024.patch</filename>
            <type>text/plain</type>
            <size>9523</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODEwNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDktMjIgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJv
bWl1bV0gaW52YWxpZGF0ZVJvb3RMYXllclJlY3QgbmVlZHMgdG8gc2NoZWR1bGUgY29tcG9zaXRv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYyMTkK
KworICAgICAgICBVcGRhdGUgY29tbWVudHMgb24gTGF5ZXJDaHJvbWl1bSBjb21taXQvZGlzcGxh
eSBmdW5jdGlvbnMgdG8gY2xhcmlmeQorICAgICAgICB0aGVpciBsaW1pdGF0aW9ucy4gUmVtb3Zl
IHVudXNlZCBkaXJ0eWluZyBsb2dpYyBmcm9tIAorICAgICAgICBMYXllclJlbmRlcmVyQ2hyb21p
dW0uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldE5lZWRzQ29tbWl0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldE5lZWRzRGlzcGxheSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6TGF5ZXJSZW5kZXJl
ckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6cHJl
c2VudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmg6CisKIDIwMTAtMDktMjIgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IER1bWl0cnUgRGFuaWxpdWMuCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5jcHAJKHJldmlzaW9uIDY3OTg2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI0LDkgKzIyNCwxMCBA
QCB1bnNpZ25lZCBMYXllckNocm9taXVtOjpjcmVhdGVTaGFkZXJQcm9nCiAKIHZvaWQgTGF5ZXJD
aHJvbWl1bTo6c2V0TmVlZHNDb21taXQoKQogewotICAgIC8vIENhbGwgbm90aWZ5U3luY1JlcXVp
cmVkKCksIHdoaWNoIGluIHRoaXMgaW1wbGVtZW50YXRpb24gcGx1bWJzIHRocm91Z2ggdG8KKyAg
ICAvLyBDYWxsIG5vdGlmeVN5bmNSZXF1aXJlZCgpLCB3aGljaCBmb3Igbm9uLXJvb3QgbGF5ZXJz
IHBsdW1icyB0aHJvdWdoIHRvCiAgICAgLy8gY2FsbCBzZXRSb290TGF5ZXJOZWVkc0Rpc3BsYXko
KSBvbiB0aGUgV2ViVmlldywgd2hpY2ggd2lsbCBjYXVzZSBMYXllclJlbmRlcmVyQ2hyb21pdW0K
ICAgICAvLyB0byByZW5kZXIgYSBmcmFtZS4KKyAgICAvLyBUaGlzIGZ1bmN0aW9uIGhhcyBubyBl
ZmZlY3Qgb24gcm9vdCBsYXllcnMuCiAgICAgaWYgKG1fb3duZXIpCiAgICAgICAgIG1fb3duZXIt
Pm5vdGlmeVN5bmNSZXF1aXJlZCgpOwogfQpAQCAtMzUyLDggKzM1Myw5IEBAIExheWVyQ2hyb21p
dW0qIExheWVyQ2hyb21pdW06OnN1cGVybGF5ZXIKIAogdm9pZCBMYXllckNocm9taXVtOjpzZXRO
ZWVkc0Rpc3BsYXkoY29uc3QgRmxvYXRSZWN0JiBkaXJ0eVJlY3QpCiB7Ci0gICAgLy8gU2ltcGx5
IG1hcmsgdGhlIGNvbnRlbnRzIGFzIGRpcnR5LiBUaGUgYWN0dWFsIHJlZHJhdyB3aWxsCi0gICAg
Ly8gaGFwcGVuIHdoZW4gaXQncyB0aW1lIHRvIGRvIHRoZSBjb21wb3NpdGluZy4KKyAgICAvLyBT
aW1wbHkgbWFyayB0aGUgY29udGVudHMgYXMgZGlydHkuIEZvciBub24tcm9vdCBsYXllcnMsIHRo
ZSBjYWxsIHRvCisgICAgLy8gc2V0TmVlZHNDb21taXQgd2lsbCBzY2hlZHVsZSBhIGZyZXNoIGNv
bXBvc2l0aW5nIHBhc3MuCisgICAgLy8gRm9yIHRoZSByb290IGxheWVyLCBzZXROZWVkc0NvbW1p
dCBoYXMgbm8gZWZmZWN0LgogICAgIG1fY29udGVudHNEaXJ0eSA9IHRydWU7CiAKICAgICBtX2Rp
cnR5UmVjdC51bml0ZShkaXJ0eVJlY3QpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAko
cmV2aXNpb24gNjc5ODYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkxLDYgQEAg
TGF5ZXJSZW5kZXJlckNocm9taXVtOjpMYXllclJlbmRlcmVyQ2hybwogICAgICwgbV9yb290TGF5
ZXJUZXh0dXJlSGVpZ2h0KDApCiAgICAgLCBtX3Njcm9sbFNoYWRlclByb2dyYW0oMCkKICAgICAs
IG1fcm9vdExheWVyKDApCi0gICAgLCBtX25lZWRzRGlzcGxheShmYWxzZSkKICAgICAsIG1fc2Ny
b2xsUG9zaXRpb24oSW50UG9pbnQoLTEsIC0xKSkKICAgICAsIG1fY3VycmVudFNoYWRlcigwKQog
ICAgICwgbV9jb250ZXh0KGNvbnRleHQpCkBAIC0zNDgsNyArMzQ3LDYgQEAgdm9pZCBMYXllclJl
bmRlcmVyQ2hyb21pdW06OnByZXNlbnQoKQogICAgIC8vIE5vdGUgdGhhdCBjdXJyZW50bHkgdGhp
cyBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIHN3YXBCdWZmZXJzOyB3ZSBzaG91bGQKICAgICAvLyBj
b25zaWRlciBleHBvc2luZyBhIGRpZmZlcmVudCBlbnRyeSBwb2ludCBvbiBHcmFwaGljc0NvbnRl
eHQzRC4KICAgICBtX2NvbnRleHQtPnByZXBhcmVUZXh0dXJlKCk7Ci0gICAgbV9uZWVkc0Rpc3Bs
YXkgPSBmYWxzZTsKIH0KIAogdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmdldEZyYW1lYnVm
ZmVyUGl4ZWxzKHZvaWQgKnBpeGVscywgY29uc3QgSW50UmVjdCYgcmVjdCkKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRl
cmVyQ2hyb21pdW0uaAkocmV2aXNpb24gNjc5ODYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpCkBAIC04
MSw4ICs4MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJvb3RMYXllcihQYXNzUmVmUHRyPExh
eWVyQ2hyb21pdW0+IGxheWVyKSB7IG1fcm9vdExheWVyID0gbGF5ZXI7IH0KICAgICBMYXllckNo
cm9taXVtKiByb290TGF5ZXIoKSB7IHJldHVybiBtX3Jvb3RMYXllci5nZXQoKTsgfQogCi0gICAg
dm9pZCBzZXROZWVkc0Rpc3BsYXkoKSB7IG1fbmVlZHNEaXNwbGF5ID0gdHJ1ZTsgfQotCiAgICAg
Ym9vbCBoYXJkd2FyZUNvbXBvc2l0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9oYXJkd2FyZUNvbXBv
c2l0aW5nOyB9CiAKICAgICB2b2lkIHNldFJvb3RMYXllckNhbnZhc1NpemUoY29uc3QgSW50U2l6
ZSYpOwpAQCAtMTM5LDcgKzEzNyw2IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8TGF5ZXJDaHJv
bWl1bT4gbV9yb290TGF5ZXI7CiAKLSAgICBib29sIG1fbmVlZHNEaXNwbGF5OwogICAgIEludFBv
aW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAgYm9vbCBtX2hhcmR3YXJlQ29tcG9zaXRpbmc7CiAK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjgxMDUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDktMjIgIE5hdCBE
dWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gaW52YWxpZGF0ZVJvb3RMYXllclJlY3QgbmVl
ZHMgdG8gc2NoZWR1bGUgY29tcG9zaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDYyMTkKKworICAgICAgICBNYWtlIHN1cmUgc2V0Um9vdExheWVy
TmVkc0Rpc3BsYXkgaXMgY2FsbGVkIGJ5IHJvb3QgaW52YWxpZGF0aW9uLgorICAgICAgICBUbyBh
dm9pZCBjb25mdXNpb24gYWJvdXQgcm9vdC1sYXllciB2ZXJzdXMgbm9uLXJvb3QtbGF5ZXIKKyAg
ICAgICAgYmVoYXZpb3IsIG1vdmUgdGhlIHJvb3QgbGF5ZXIgZGFtYWdlIHN0YXRlIHRvIHRoZSBX
ZWJWaWV3LgorICAgICAgICAKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0Um9vdExheWVyTmVlZHNEaXNwbGF5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNjcm9sbFJvb3RMYXllclJlY3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6aW52YWxpZGF0ZVJvb3RMYXllclJlY3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6ZG9Db21wb3NpdGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5oOgorCiAyMDEwLTA5LTIyICBFcmljIFVocmhhbmUgIDxlcmljdUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRHVtaXRydSBEYW5pbGl1Yy4KSW5kZXg6IFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA2Nzk4NikKKysrIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjA2LDggKzIyMDYsNiBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRSb290R3JhcGhpY3NMYXllcihXCiAKIHZvaWQgV2ViVmll
d0ltcGw6OnNldFJvb3RMYXllck5lZWRzRGlzcGxheSgpCiB7Ci0gICAgaWYgKG1fbGF5ZXJSZW5k
ZXJlcikKLSAgICAgICAgbV9sYXllclJlbmRlcmVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKICAgICBt
X2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUoKTsKICAgICAvLyBGSVhNRTogVG8gYXZvaWQgYnJl
YWtpbmcgdGhlIGRvd25zdHJlYW0gQ2hyb21lIHJlbmRlcl93aWRnZXQgd2hpbGUgZG93bnN0cmVh
bQogICAgIC8vIGNoYW5nZXMgbGFuZCwgd2UgYWxzbyBoYXZlIHRvIHBhc3MgYSAxeDEgaW52YWxp
ZGF0ZSB1cCB0byB0aGUgY2xpZW50CkBAIC0yMjQ3LDcgKzIyNDUsNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpzY3JvbGxSb290TGF5ZXJSZWN0KGNvCiAgICAgLy8gcmVjdHMgYWxsb3dzIHVzIHRvIGlu
dGVybWl4IGludmFsaWRhdGVzIHdpdGggc2Nyb2xscy4KICAgICBJbnRSZWN0IGRhbWFnZWRDb250
ZW50c1JlY3Q7CiAgICAgaWYgKHNjcm9sbERlbHRhLndpZHRoKCkpIHsKLSAgICAgICAgZmxvYXQg
ZHggPSBzdGF0aWNfY2FzdDxmbG9hdD4oc2Nyb2xsRGVsdGEud2lkdGgoKSk7CisgICAgICAgIGlu
dCBkeCA9IHNjcm9sbERlbHRhLndpZHRoKCk7CiAgICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Qu
c2V0WShjb250ZW50UmVjdC55KCkpOwogICAgICAgICBkYW1hZ2VkQ29udGVudHNSZWN0LnNldEhl
aWdodChjb250ZW50UmVjdC5oZWlnaHQoKSk7CiAgICAgICAgIGlmIChkeCA+IDApIHsKQEAgLTIy
NTgsNyArMjI1Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNjcm9sbFJvb3RMYXllclJlY3QoY28K
ICAgICAgICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Quc2V0V2lkdGgoLWR4KTsKICAgICAgICAg
fQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGZsb2F0IGR5ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNj
cm9sbERlbHRhLmhlaWdodCgpKTsKKyAgICAgICAgaW50IGR5ID0gc2Nyb2xsRGVsdGEuaGVpZ2h0
KCk7CiAgICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Quc2V0WChjb250ZW50UmVjdC54KCkpOwog
ICAgICAgICBkYW1hZ2VkQ29udGVudHNSZWN0LnNldFdpZHRoKGNvbnRlbnRSZWN0LndpZHRoKCkp
OwogICAgICAgICBpZiAoZHkgPiAwKSB7CkBAIC0yMjcwLDcgKzIyNjgsNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpzY3JvbGxSb290TGF5ZXJSZWN0KGNvCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBt
X3Njcm9sbERhbWFnZS51bml0ZShkYW1hZ2VkQ29udGVudHNSZWN0KTsKKyAgICBtX3Jvb3RMYXll
clNjcm9sbERhbWFnZS51bml0ZShkYW1hZ2VkQ29udGVudHNSZWN0KTsKICAgICBzZXRSb290TGF5
ZXJOZWVkc0Rpc3BsYXkoKTsKIH0KIApAQCAtMjI4OSwxMCArMjI4NywxMiBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjppbnZhbGlkYXRlUm9vdExheWVyUmVjCiAKICAgICAvLyByZWN0IGlzIGluIHZpZXdw
b3J0IHNwYWNlLiBDb252ZXJ0IHRvIGNvbnRlbnQgc3BhY2UKICAgICAvLyBzbyB0aGF0IGludmFs
aWRhdGlvbnMgYW5kIHNjcm9sbCBpbnZhbGlkYXRpb25zIHBsYXkgd2VsbCB3aXRoIG9uZS1hbm90
aGVyLgotICAgIEZsb2F0UmVjdCBjb250ZW50UmVjdCA9IHZpZXctPndpbmRvd1RvQ29udGVudHMo
cmVjdCk7CisgICAgSW50UmVjdCBjb250ZW50UmVjdCA9IHZpZXctPndpbmRvd1RvQ29udGVudHMo
cmVjdCk7CiAKLSAgICAvLyBGSVhNRTogYWRkIGEgc21hcnRlciBkYW1hZ2UgYWdncmVnYXRpb24g
bG9naWM/IFJpZ2h0IG5vdywgTGF5ZXJDaHJvbWl1bSBkb2VzIHNpbXBsZSB1bmlvbi1pbmcuCi0g
ICAgbV9sYXllclJlbmRlcmVyLT5yb290TGF5ZXIoKS0+c2V0TmVlZHNEaXNwbGF5KGNvbnRlbnRS
ZWN0KTsKKyAgICAvLyBGSVhNRTogYWRkIGEgc21hcnRlciBkYW1hZ2UgYWdncmVnYXRpb24gbG9n
aWMgYW5kL29yIHVuaWZ5IHdpdGggCisgICAgLy8gTGF5ZXJDaHJvbWl1bSdzIGRhbWFnZSBsb2dp
YworICAgIG1fcm9vdExheWVyRGlydHlSZWN0LnVuaXRlKGNvbnRlbnRSZWN0KTsKKyAgICBzZXRS
b290TGF5ZXJOZWVkc0Rpc3BsYXkoKTsKIH0KIAogCkBAIC0yMzkxLDE0ICsyMzkxLDE0IEBAIHZv
aWQgV2ViVmlld0ltcGw6OmRvQ29tcG9zaXRlKCkKICAgICBtX2xheWVyUmVuZGVyZXItPnByZXBh
cmVUb0RyYXdMYXllcnModmlzaWJsZVJlY3QsIGNvbnRlbnRSZWN0LCBJbnRQb2ludCh2aWV3LT5z
Y3JvbGxYKCksIHZpZXctPnNjcm9sbFkoKSkpOwogCiAgICAgLy8gRHJhdyB0aGUgY29udGVudHMg
b2YgdGhlIHJvb3QgbGF5ZXIuCi0gICAgVmVjdG9yPEZsb2F0UmVjdD4gZGFtYWdlUmVjdHM7Ci0g
ICAgZGFtYWdlUmVjdHMuYXBwZW5kKG1fc2Nyb2xsRGFtYWdlKTsKLSAgICBkYW1hZ2VSZWN0cy5h
cHBlbmQobV9sYXllclJlbmRlcmVyLT5yb290TGF5ZXIoKS0+ZGlydHlSZWN0KCkpOworICAgIFZl
Y3RvcjxJbnRSZWN0PiBkYW1hZ2VSZWN0czsKKyAgICBkYW1hZ2VSZWN0cy5hcHBlbmQobV9yb290
TGF5ZXJTY3JvbGxEYW1hZ2UpOworICAgIGRhbWFnZVJlY3RzLmFwcGVuZChtX3Jvb3RMYXllckRp
cnR5UmVjdCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYW1hZ2VSZWN0cy5zaXplKCk7
ICsraSkgewogICAgICAgICAvLyBUaGUgZGFtYWdlIHJlY3QgZm9yIHRoZSByb290IGxheWVyIGlz
IGluIGNvbnRlbnQgc3BhY2UgW2UuZy4gdW5zY3JvbGxlZF0uCiAgICAgICAgIC8vIENvbnZlcnQg
ZnJvbSBjb250ZW50IHNwYWNlIHRvIHZpZXdQb3J0IHNwYWNlLgotICAgICAgICBjb25zdCBGbG9h
dFJlY3QgZGFtYWdlZENvbnRlbnRSZWN0ID0gZGFtYWdlUmVjdHNbaV07Ci0gICAgICAgIEludFJl
Y3QgZGFtYWdlZFJlY3QgPSB2aWV3LT5jb250ZW50c1RvV2luZG93KEludFJlY3QoZGFtYWdlZENv
bnRlbnRSZWN0KSk7CisgICAgICAgIGNvbnN0IEludFJlY3QgZGFtYWdlZENvbnRlbnRSZWN0ID0g
ZGFtYWdlUmVjdHNbaV07CisgICAgICAgIEludFJlY3QgZGFtYWdlZFJlY3QgPSB2aWV3LT5jb250
ZW50c1RvV2luZG93KGRhbWFnZWRDb250ZW50UmVjdCk7CiAKICAgICAgICAgLy8gSW50ZXJzZWN0
IHRoaXMgcmVjdGFuZ2xlIHdpdGggdGhlIHZpZXdQb3J0LgogICAgICAgICBkYW1hZ2VkUmVjdC5p
bnRlcnNlY3Qodmlld1BvcnQpOwpAQCAtMjQwOSw4ICsyNDA5LDggQEAgdm9pZCBXZWJWaWV3SW1w
bDo6ZG9Db21wb3NpdGUoKQogICAgICAgICAgICAgbV9sYXllclJlbmRlcmVyLT51cGRhdGVSb290
TGF5ZXJUZXh0dXJlUmVjdChkYW1hZ2VkUmVjdCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgbV9s
YXllclJlbmRlcmVyLT5yb290TGF5ZXIoKS0+cmVzZXROZWVkc0Rpc3BsYXkoKTsKLSAgICBtX3Nj
cm9sbERhbWFnZSA9IFdlYlJlY3QoKTsKKyAgICBtX3Jvb3RMYXllckRpcnR5UmVjdCA9IEludFJl
Y3QoKTsKKyAgICBtX3Jvb3RMYXllclNjcm9sbERhbWFnZSA9IEludFJlY3QoKTsKIAogICAgIC8v
IERyYXcgdGhlIGFjdHVhbCBsYXllcnMuLi4KICAgICBtX2xheWVyUmVuZGVyZXItPmRyYXdMYXll
cnModmlzaWJsZVJlY3QsIGNvbnRlbnRSZWN0KTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmgJKHJldmlzaW9uIDY3OTg2KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MjYsNyArNTI2LDggQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8V2ViQ29yZTo6Tm9kZT4gbV9tb3VzZUNhcHR1cmVOb2RlOwogCiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotICAgIFdlYkNvcmU6OkludFJlY3QgbV9zY3JvbGxEYW1hZ2U7Cisg
ICAgV2ViQ29yZTo6SW50UmVjdCBtX3Jvb3RMYXllckRpcnR5UmVjdDsKKyAgICBXZWJDb3JlOjpJ
bnRSZWN0IG1fcm9vdExheWVyU2Nyb2xsRGFtYWdlOwogICAgIE93blB0cjxXZWJDb3JlOjpMYXll
clJlbmRlcmVyQ2hyb21pdW0+IG1fbGF5ZXJSZW5kZXJlcjsKICAgICBib29sIG1faXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQWN0aXZlOwogICAgIGJvb2wgbV9jb21wb3NpdG9yQ3JlYXRpb25GYWls
ZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69116</attachid>
            <date>2010-09-28 15:05:58 -0700</date>
            <delta_ts>2010-09-28 16:04:56 -0700</delta_ts>
            <desc>Make it commitable.</desc>
            <filename>bug-46219-20100928150556.patch</filename>
            <type>text/plain</type>
            <size>9508</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODU2NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDktMjggIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJv
bWl1bV0gaW52YWxpZGF0ZVJvb3RMYXllclJlY3QgbmVlZHMgdG8gc2NoZWR1bGUgY29tcG9zaXRv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYyMTkK
KworICAgICAgICBVcGRhdGUgY29tbWVudHMgb24gTGF5ZXJDaHJvbWl1bSBjb21taXQvZGlzcGxh
eSBmdW5jdGlvbnMgdG8gY2xhcmlmeQorICAgICAgICB0aGVpciBsaW1pdGF0aW9ucy4gUmVtb3Zl
IHVudXNlZCBkaXJ0eWluZyBsb2dpYyBmcm9tIAorICAgICAgICBMYXllclJlbmRlcmVyQ2hyb21p
dW0uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldE5lZWRzQ29tbWl0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldE5lZWRzRGlzcGxheSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6TGF5ZXJSZW5kZXJl
ckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6cHJl
c2VudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmg6CisKIDIwMTAtMDktMjcgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3Bw
CShyZXZpc2lvbiA2ODU2MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMSw5ICsyMjEsMTAgQEAgdW5z
aWduZWQgTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlU2hhZGVyUHJvZwogCiB2b2lkIExheWVyQ2hyb21p
dW06OnNldE5lZWRzQ29tbWl0KCkKIHsKLSAgICAvLyBDYWxsIG5vdGlmeVN5bmNSZXF1aXJlZCgp
LCB3aGljaCBpbiB0aGlzIGltcGxlbWVudGF0aW9uIHBsdW1icyB0aHJvdWdoIHRvCisgICAgLy8g
Q2FsbCBub3RpZnlTeW5jUmVxdWlyZWQoKSwgd2hpY2ggZm9yIG5vbi1yb290IGxheWVycyBwbHVt
YnMgdGhyb3VnaCB0bwogICAgIC8vIGNhbGwgc2V0Um9vdExheWVyTmVlZHNEaXNwbGF5KCkgb24g
dGhlIFdlYlZpZXcsIHdoaWNoIHdpbGwgY2F1c2UgTGF5ZXJSZW5kZXJlckNocm9taXVtCiAgICAg
Ly8gdG8gcmVuZGVyIGEgZnJhbWUuCisgICAgLy8gVGhpcyBmdW5jdGlvbiBoYXMgbm8gZWZmZWN0
IG9uIHJvb3QgbGF5ZXJzLgogICAgIGlmIChtX293bmVyKQogICAgICAgICBtX293bmVyLT5ub3Rp
ZnlTeW5jUmVxdWlyZWQoKTsKIH0KQEAgLTM0OSw4ICszNTAsOSBAQCBMYXllckNocm9taXVtKiBM
YXllckNocm9taXVtOjpzdXBlcmxheWVyCiAKIHZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0TmVlZHNE
aXNwbGF5KGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0KQogewotICAgIC8vIFNpbXBseSBtYXJr
IHRoZSBjb250ZW50cyBhcyBkaXJ0eS4gVGhlIGFjdHVhbCByZWRyYXcgd2lsbAotICAgIC8vIGhh
cHBlbiB3aGVuIGl0J3MgdGltZSB0byBkbyB0aGUgY29tcG9zaXRpbmcuCisgICAgLy8gU2ltcGx5
IG1hcmsgdGhlIGNvbnRlbnRzIGFzIGRpcnR5LiBGb3Igbm9uLXJvb3QgbGF5ZXJzLCB0aGUgY2Fs
bCB0bworICAgIC8vIHNldE5lZWRzQ29tbWl0IHdpbGwgc2NoZWR1bGUgYSBmcmVzaCBjb21wb3Np
dGluZyBwYXNzLgorICAgIC8vIEZvciB0aGUgcm9vdCBsYXllciwgc2V0TmVlZHNDb21taXQgaGFz
IG5vIGVmZmVjdC4KICAgICBtX2NvbnRlbnRzRGlydHkgPSB0cnVlOwogCiAgICAgbV9kaXJ0eVJl
Y3QudW5pdGUoZGlydHlSZWN0KTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAJKHJldmlz
aW9uIDY4NTYzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw2IEBAIExheWVy
UmVuZGVyZXJDaHJvbWl1bTo6TGF5ZXJSZW5kZXJlckNocm8KICAgICAsIG1fcm9vdExheWVyVGV4
dHVyZUhlaWdodCgwKQogICAgICwgbV9zY3JvbGxTaGFkZXJQcm9ncmFtKDApCiAgICAgLCBtX3Jv
b3RMYXllcigwKQotICAgICwgbV9uZWVkc0Rpc3BsYXkoZmFsc2UpCiAgICAgLCBtX3Njcm9sbFBv
c2l0aW9uKEludFBvaW50KC0xLCAtMSkpCiAgICAgLCBtX2N1cnJlbnRTaGFkZXIoMCkKICAgICAs
IG1fY29udGV4dChjb250ZXh0KQpAQCAtMzQ4LDcgKzM0Nyw2IEBAIHZvaWQgTGF5ZXJSZW5kZXJl
ckNocm9taXVtOjpwcmVzZW50KCkKICAgICAvLyBOb3RlIHRoYXQgY3VycmVudGx5IHRoaXMgaGFz
IHRoZSBzYW1lIGVmZmVjdCBhcyBzd2FwQnVmZmVyczsgd2Ugc2hvdWxkCiAgICAgLy8gY29uc2lk
ZXIgZXhwb3NpbmcgYSBkaWZmZXJlbnQgZW50cnkgcG9pbnQgb24gR3JhcGhpY3NDb250ZXh0M0Qu
CiAgICAgbV9jb250ZXh0LT5wcmVwYXJlVGV4dHVyZSgpOwotICAgIG1fbmVlZHNEaXNwbGF5ID0g
ZmFsc2U7CiB9CiAKIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpnZXRGcmFtZWJ1ZmZlclBp
eGVscyh2b2lkICpwaXhlbHMsIGNvbnN0IEludFJlY3QmIHJlY3QpCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmgJKHJldmlzaW9uIDY4NTYzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQpAQCAtODQsOCAr
ODQsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSb290TGF5ZXIoUGFzc1JlZlB0cjxMYXllckNo
cm9taXVtPiBsYXllcikgeyBtX3Jvb3RMYXllciA9IGxheWVyOyB9CiAgICAgTGF5ZXJDaHJvbWl1
bSogcm9vdExheWVyKCkgeyByZXR1cm4gbV9yb290TGF5ZXIuZ2V0KCk7IH0KIAotICAgIHZvaWQg
c2V0TmVlZHNEaXNwbGF5KCkgeyBtX25lZWRzRGlzcGxheSA9IHRydWU7IH0KLQogICAgIGJvb2wg
aGFyZHdhcmVDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faGFyZHdhcmVDb21wb3NpdGlu
ZzsgfQogCiAgICAgdm9pZCBzZXRSb290TGF5ZXJDYW52YXNTaXplKGNvbnN0IEludFNpemUmKTsK
QEAgLTE0NCw3ICsxNDIsNiBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+
IG1fcm9vdExheWVyOwogCi0gICAgYm9vbCBtX25lZWRzRGlzcGxheTsKICAgICBJbnRQb2ludCBt
X3Njcm9sbFBvc2l0aW9uOwogICAgIGJvb2wgbV9oYXJkd2FyZUNvbXBvc2l0aW5nOwogCkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4NTY1KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA5LTI4ICBOYXQgRHVjYSAg
PG5kdWNhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBbY2hyb21pdW1dIGludmFsaWRhdGVSb290TGF5ZXJSZWN0IG5lZWRzIHRv
IHNjaGVkdWxlIGNvbXBvc2l0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ2MjE5CisKKyAgICAgICAgTWFrZSBzdXJlIHNldFJvb3RMYXllck5lZHNE
aXNwbGF5IGlzIGNhbGxlZCBieSByb290IGludmFsaWRhdGlvbi4KKyAgICAgICAgVG8gYXZvaWQg
Y29uZnVzaW9uIGFib3V0IHJvb3QtbGF5ZXIgdmVyc3VzIG5vbi1yb290LWxheWVyCisgICAgICAg
IGJlaGF2aW9yLCBtb3ZlIHRoZSByb290IGxheWVyIGRhbWFnZSBzdGF0ZSB0byB0aGUgV2ViVmll
dy4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpzZXRSb290TGF5ZXJOZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2Nyb2xsUm9vdExheWVyUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjppbnZhbGlkYXRlUm9vdExheWVyUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpkb0NvbXBvc2l0ZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIw
MTAtMDktMjggIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCShyZXZpc2lvbiA2ODU2MykKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjAxLDggKzIyMDEsNiBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpzZXRSb290R3JhcGhpY3NMYXllcihXCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldFJvb3RM
YXllck5lZWRzRGlzcGxheSgpCiB7Ci0gICAgaWYgKG1fbGF5ZXJSZW5kZXJlcikKLSAgICAgICAg
bV9sYXllclJlbmRlcmVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKICAgICBtX2NsaWVudC0+c2NoZWR1
bGVDb21wb3NpdGUoKTsKICAgICAvLyBGSVhNRTogVG8gYXZvaWQgYnJlYWtpbmcgdGhlIGRvd25z
dHJlYW0gQ2hyb21lIHJlbmRlcl93aWRnZXQgd2hpbGUgZG93bnN0cmVhbQogICAgIC8vIGNoYW5n
ZXMgbGFuZCwgd2UgYWxzbyBoYXZlIHRvIHBhc3MgYSAxeDEgaW52YWxpZGF0ZSB1cCB0byB0aGUg
Y2xpZW50CkBAIC0yMjQyLDcgKzIyNDAsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzY3JvbGxSb290
TGF5ZXJSZWN0KGNvCiAgICAgLy8gcmVjdHMgYWxsb3dzIHVzIHRvIGludGVybWl4IGludmFsaWRh
dGVzIHdpdGggc2Nyb2xscy4KICAgICBJbnRSZWN0IGRhbWFnZWRDb250ZW50c1JlY3Q7CiAgICAg
aWYgKHNjcm9sbERlbHRhLndpZHRoKCkpIHsKLSAgICAgICAgZmxvYXQgZHggPSBzdGF0aWNfY2Fz
dDxmbG9hdD4oc2Nyb2xsRGVsdGEud2lkdGgoKSk7CisgICAgICAgIGludCBkeCA9IHNjcm9sbERl
bHRhLndpZHRoKCk7CiAgICAgICAgIGRhbWFnZWRDb250ZW50c1JlY3Quc2V0WShjb250ZW50UmVj
dC55KCkpOwogICAgICAgICBkYW1hZ2VkQ29udGVudHNSZWN0LnNldEhlaWdodChjb250ZW50UmVj
dC5oZWlnaHQoKSk7CiAgICAgICAgIGlmIChkeCA+IDApIHsKQEAgLTIyNTMsNyArMjI1MSw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnNjcm9sbFJvb3RMYXllclJlY3QoY28KICAgICAgICAgICAgIGRh
bWFnZWRDb250ZW50c1JlY3Quc2V0V2lkdGgoLWR4KTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7
Ci0gICAgICAgIGZsb2F0IGR5ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNjcm9sbERlbHRhLmhlaWdo
dCgpKTsKKyAgICAgICAgaW50IGR5ID0gc2Nyb2xsRGVsdGEuaGVpZ2h0KCk7CiAgICAgICAgIGRh
bWFnZWRDb250ZW50c1JlY3Quc2V0WChjb250ZW50UmVjdC54KCkpOwogICAgICAgICBkYW1hZ2Vk
Q29udGVudHNSZWN0LnNldFdpZHRoKGNvbnRlbnRSZWN0LndpZHRoKCkpOwogICAgICAgICBpZiAo
ZHkgPiAwKSB7CkBAIC0yMjY1LDcgKzIyNjMsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzY3JvbGxS
b290TGF5ZXJSZWN0KGNvCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBtX3Njcm9sbERhbWFnZS51
bml0ZShkYW1hZ2VkQ29udGVudHNSZWN0KTsKKyAgICBtX3Jvb3RMYXllclNjcm9sbERhbWFnZS51
bml0ZShkYW1hZ2VkQ29udGVudHNSZWN0KTsKICAgICBzZXRSb290TGF5ZXJOZWVkc0Rpc3BsYXko
KTsKIH0KIApAQCAtMjI4NCwxMCArMjI4MiwxMiBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnZhbGlk
YXRlUm9vdExheWVyUmVjCiAKICAgICAvLyByZWN0IGlzIGluIHZpZXdwb3J0IHNwYWNlLiBDb252
ZXJ0IHRvIGNvbnRlbnQgc3BhY2UKICAgICAvLyBzbyB0aGF0IGludmFsaWRhdGlvbnMgYW5kIHNj
cm9sbCBpbnZhbGlkYXRpb25zIHBsYXkgd2VsbCB3aXRoIG9uZS1hbm90aGVyLgotICAgIEZsb2F0
UmVjdCBjb250ZW50UmVjdCA9IHZpZXctPndpbmRvd1RvQ29udGVudHMocmVjdCk7CisgICAgSW50
UmVjdCBjb250ZW50UmVjdCA9IHZpZXctPndpbmRvd1RvQ29udGVudHMocmVjdCk7CiAKLSAgICAv
LyBGSVhNRTogYWRkIGEgc21hcnRlciBkYW1hZ2UgYWdncmVnYXRpb24gbG9naWM/IFJpZ2h0IG5v
dywgTGF5ZXJDaHJvbWl1bSBkb2VzIHNpbXBsZSB1bmlvbi1pbmcuCi0gICAgbV9sYXllclJlbmRl
cmVyLT5yb290TGF5ZXIoKS0+c2V0TmVlZHNEaXNwbGF5KGNvbnRlbnRSZWN0KTsKKyAgICAvLyBG
SVhNRTogYWRkIGEgc21hcnRlciBkYW1hZ2UgYWdncmVnYXRpb24gbG9naWMgYW5kL29yIHVuaWZ5
IHdpdGggCisgICAgLy8gTGF5ZXJDaHJvbWl1bSdzIGRhbWFnZSBsb2dpYworICAgIG1fcm9vdExh
eWVyRGlydHlSZWN0LnVuaXRlKGNvbnRlbnRSZWN0KTsKKyAgICBzZXRSb290TGF5ZXJOZWVkc0Rp
c3BsYXkoKTsKIH0KIAogCkBAIC0yMzg4LDE0ICsyMzg4LDE0IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmRvQ29tcG9zaXRlKCkKICAgICBtX2xheWVyUmVuZGVyZXItPnByZXBhcmVUb0RyYXdMYXllcnMo
dmlzaWJsZVJlY3QsIGNvbnRlbnRSZWN0LCBJbnRQb2ludCh2aWV3LT5zY3JvbGxYKCksIHZpZXct
PnNjcm9sbFkoKSkpOwogCiAgICAgLy8gRHJhdyB0aGUgY29udGVudHMgb2YgdGhlIHJvb3QgbGF5
ZXIuCi0gICAgVmVjdG9yPEZsb2F0UmVjdD4gZGFtYWdlUmVjdHM7Ci0gICAgZGFtYWdlUmVjdHMu
YXBwZW5kKG1fc2Nyb2xsRGFtYWdlKTsKLSAgICBkYW1hZ2VSZWN0cy5hcHBlbmQobV9sYXllclJl
bmRlcmVyLT5yb290TGF5ZXIoKS0+ZGlydHlSZWN0KCkpOworICAgIFZlY3RvcjxJbnRSZWN0PiBk
YW1hZ2VSZWN0czsKKyAgICBkYW1hZ2VSZWN0cy5hcHBlbmQobV9yb290TGF5ZXJTY3JvbGxEYW1h
Z2UpOworICAgIGRhbWFnZVJlY3RzLmFwcGVuZChtX3Jvb3RMYXllckRpcnR5UmVjdCk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYW1hZ2VSZWN0cy5zaXplKCk7ICsraSkgewogICAgICAg
ICAvLyBUaGUgZGFtYWdlIHJlY3QgZm9yIHRoZSByb290IGxheWVyIGlzIGluIGNvbnRlbnQgc3Bh
Y2UgW2UuZy4gdW5zY3JvbGxlZF0uCiAgICAgICAgIC8vIENvbnZlcnQgZnJvbSBjb250ZW50IHNw
YWNlIHRvIHZpZXdQb3J0IHNwYWNlLgotICAgICAgICBjb25zdCBGbG9hdFJlY3QgZGFtYWdlZENv
bnRlbnRSZWN0ID0gZGFtYWdlUmVjdHNbaV07Ci0gICAgICAgIEludFJlY3QgZGFtYWdlZFJlY3Qg
PSB2aWV3LT5jb250ZW50c1RvV2luZG93KEludFJlY3QoZGFtYWdlZENvbnRlbnRSZWN0KSk7Cisg
ICAgICAgIGNvbnN0IEludFJlY3QgZGFtYWdlZENvbnRlbnRSZWN0ID0gZGFtYWdlUmVjdHNbaV07
CisgICAgICAgIEludFJlY3QgZGFtYWdlZFJlY3QgPSB2aWV3LT5jb250ZW50c1RvV2luZG93KGRh
bWFnZWRDb250ZW50UmVjdCk7CiAKICAgICAgICAgLy8gSW50ZXJzZWN0IHRoaXMgcmVjdGFuZ2xl
IHdpdGggdGhlIHZpZXdQb3J0LgogICAgICAgICBkYW1hZ2VkUmVjdC5pbnRlcnNlY3Qodmlld1Bv
cnQpOwpAQCAtMjQwNiw4ICsyNDA2LDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZG9Db21wb3NpdGUo
KQogICAgICAgICAgICAgbV9sYXllclJlbmRlcmVyLT51cGRhdGVSb290TGF5ZXJUZXh0dXJlUmVj
dChkYW1hZ2VkUmVjdCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgbV9sYXllclJlbmRlcmVyLT5y
b290TGF5ZXIoKS0+cmVzZXROZWVkc0Rpc3BsYXkoKTsKLSAgICBtX3Njcm9sbERhbWFnZSA9IFdl
YlJlY3QoKTsKKyAgICBtX3Jvb3RMYXllckRpcnR5UmVjdCA9IEludFJlY3QoKTsKKyAgICBtX3Jv
b3RMYXllclNjcm9sbERhbWFnZSA9IEludFJlY3QoKTsKIAogICAgIC8vIERyYXcgdGhlIGFjdHVh
bCBsYXllcnMuLi4KICAgICBtX2xheWVyUmVuZGVyZXItPmRyYXdMYXllcnModmlzaWJsZVJlY3Qs
IGNvbnRlbnRSZWN0KTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9u
IDY4NTYzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MjIsNyArNTIyLDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9k
ZT4gbV9tb3VzZUNhcHR1cmVOb2RlOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotICAgIFdlYkNvcmU6OkludFJlY3QgbV9zY3JvbGxEYW1hZ2U7CisgICAgV2ViQ29yZTo6SW50
UmVjdCBtX3Jvb3RMYXllckRpcnR5UmVjdDsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IG1fcm9vdExh
eWVyU2Nyb2xsRGFtYWdlOwogICAgIFJlZlB0cjxXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21p
dW0+IG1fbGF5ZXJSZW5kZXJlcjsKICAgICBib29sIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5n
QWN0aXZlOwogICAgIGJvb2wgbV9jb21wb3NpdG9yQ3JlYXRpb25GYWlsZWQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>