<?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>27481</bug_id>
          
          <creation_ts>2009-07-20 21:02:00 -0700</creation_ts>
          <short_desc>onbeforeunload not called at window close + frame or iframe focused</short_desc>
          <delta_ts>2010-03-26 17:14:30 -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>Frames</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>35046</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Marc Bonnier">chrome</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>creis</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>jasneet</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>sam</cc>
    
    <cc>wdm</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133357</commentid>
    <comment_count>0</comment_count>
      <attachid>33141</attachid>
    <who name="Marc Bonnier">chrome</who>
    <bug_when>2009-07-20 21:02:00 -0700</bug_when>
    <thetext>Created attachment 33141
onbeforeonload is not called because child frame is focused.

The bug I have is about onbeforeonload assigned to a window which contain an iframe
or a frameset. The handler is properly called if we back the document or if we load
the document and immediately close the window. Yet if the contained frame or iframe
is focused (using JS as in the attached reduction) when the window is closed then,
the window beforeonload handler is not called.

Note (1): FAIL: Safari4/WinddowsXP 4.0.2 (530.19.1)
Note (2): OK: Safari4/Mac
Note(3): related bugs: https://bugs.webkit.org/show_bug.cgi?id=19418 as well as
https://bugs.webkit.org/show_bug.cgi?id=21669 are about an onbeforeunload handler
when it is assigned to the frame content or the iframe itself. In the bug described above, we do not assign to iframe or frame but on the parent window.

Note (2): Safari4/Mac is ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133358</commentid>
    <comment_count>1</comment_count>
      <attachid>33142</attachid>
    <who name="Marc Bonnier">chrome</who>
    <bug_when>2009-07-20 21:02:55 -0700</bug_when>
    <thetext>Created attachment 33142
onbeforeonload is not called because child iframe is focused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139233</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-08-11 22:16:09 -0700</bug_when>
    <thetext>*** Bug 28206 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187858</commentid>
    <comment_count>3</comment_count>
      <attachid>48156</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-04 10:47:42 -0800</bug_when>
    <thetext>Created attachment 48156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187860</commentid>
    <comment_count>4</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-04 10:50:50 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=48156) [details]
&gt; Patch

This bug affects both WebKit on Windows and Chromium.  See:
http://code.google.com/p/chromium/issues/detail?id=32615
http://code.google.com/p/chromium/issues/detail?id=17157

I wrote a layout test for it, but it doesn&apos;t seem to be able to reproduce the bug.  The bug only occurs if you close the browser window, not if you call window.close() from JavaScript.

I do have a Chromium UI test ready to commit that shows the bug is fixed on that side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188233</commentid>
    <comment_count>5</comment_count>
      <attachid>48156</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-02-05 11:37:44 -0800</bug_when>
    <thetext>Comment on attachment 48156
Patch

This looks like the correct fix. It is good to make Windows and Chromium match the Mac in this respect.

&gt; +        Layout tests aren&apos;t able to test this bug, since it requires closing
&gt; +        the actual browser window, not calling window.close().

Did you try to make a test?

I understand that window.close() is not helpful to test this, but it should be testable in DumpRenderTree. We have existing tests for beforeunload and they had no problem with this. For example, onunload-clears-onbeforeunload.html.

If you do need a way to test this, we would typically add a way to do it to DumpRenderTree. We have features already to test opening and closing multiple windows. You can find 73 tests that use the layoutTestController.setCanOpenWindows() and you can probably create a test that way.

If you try all these things and fail, at least you should add a test to the WebCore/manual-tests directory.

review- because this does need a test, and further, an automated test should be possible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188245</commentid>
    <comment_count>6</comment_count>
      <attachid>48247</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-05 12:22:49 -0800</bug_when>
    <thetext>Created attachment 48247
Attempted layout test

I did try to write a layout test for this (based on the other unload tests) before uploading the patch, and I&apos;ve attached it here.  It does use setCanOpenWindows and setCloseRemaningWindowsWhenComplete.

I was never able to get the test to reproduce the bug, though.  Calling window.close() or navigating won&apos;t trigger the bug-- the window has to be closed via the WebView.  The closest thing I saw was layoutTestController.setCallCloseOnWebViews(), but I didn&apos;t see a way to close the window with that during the test, at a point when the resulting alert would still show up in the output.

I could adapt this test to go into WebCore/manual-tests, or I could try to add a way to directly close a particular WebView to layoutTestController.  Not sure if that&apos;s useful in other tests, though.  Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188373</commentid>
    <comment_count>7</comment_count>
      <attachid>48276</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-05 17:43:41 -0800</bug_when>
    <thetext>Created attachment 48276
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188376</commentid>
    <comment_count>8</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-05 17:48:15 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=48276) [details]
&gt; Patch

Here&apos;s a version with a manual test, since I haven&apos;t been able to figure out how to get a layout test to call WebView::shouldClose.  If there is a way, I&apos;m happy to update the layout test draft that I attached in comment #6 and include that instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188377</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-05 18:20:50 -0800</bug_when>
    <thetext>You can always add an API to DumpRenderTree to call WebView::shouldClose.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188514</commentid>
    <comment_count>10</comment_count>
      <attachid>48276</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-02-07 13:11:13 -0800</bug_when>
    <thetext>Comment on attachment 48276
Patch

An automated test would be much better. I&apos;m sure we&apos;ll want to do lots of other tests relating to closing windows.

r=me but please don&apos;t drop the effort to make an automated test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188819</commentid>
    <comment_count>11</comment_count>
      <attachid>48276</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-08 16:32:32 -0800</bug_when>
    <thetext>Comment on attachment 48276
Patch

Clearing flags on attachment: 48276

Committed r54519: &lt;http://trac.webkit.org/changeset/54519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188820</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-08 16:32:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188834</commentid>
    <comment_count>13</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-08 17:07:07 -0800</bug_when>
    <thetext>Thanks-- I&apos;ll take a look at extending DumpRenderTree to support an automated test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188908</commentid>
    <comment_count>14</comment_count>
    <who name="Marc Bonnier">chrome</who>
    <bug_when>2010-02-08 23:12:45 -0800</bug_when>
    <thetext>Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189577</commentid>
    <comment_count>15</comment_count>
      <attachid>48541</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-10 19:06:53 -0800</bug_when>
    <thetext>Created attachment 48541
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189578</commentid>
    <comment_count>16</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-10 19:09:14 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Created an attachment (id=48541) [details]
&gt; Patch

Sorry for the delay.  Here&apos;s another patch to add an automated layout test for this bug, by adding a method to LayoutTestController.  Let me know if I missed a place I need to update, since I haven&apos;t added things there before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189599</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-10 21:07:25 -0800</bug_when>
    <thetext>Attachment 48541 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/256764</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189714</commentid>
    <comment_count>18</comment_count>
      <attachid>48574</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-11 09:33:12 -0800</bug_when>
    <thetext>Created attachment 48574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190699</commentid>
    <comment_count>19</comment_count>
      <attachid>48574</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-16 12:52:52 -0800</bug_when>
    <thetext>Comment on attachment 48574
Patch

LGTM.  Manual tests -&gt; automatic tests = win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190700</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-16 12:53:22 -0800</bug_when>
    <thetext>Re-open so the commit-bot will see the new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190822</commentid>
    <comment_count>21</comment_count>
      <attachid>48574</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-16 17:08:03 -0800</bug_when>
    <thetext>Comment on attachment 48574
Patch

Rejecting patch 48574 from commit-queue.

Failed to run &quot;[&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, &apos;--reviewer&apos;, &apos;Adam Barth&apos;, &apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
cused-iframe-expected.txt
patching file LayoutTests/fast/events/onbeforeunload-focused-iframe.html
patching file LayoutTests/fast/events/resources/onbeforeunload-focused-iframe-frame.html
patching file LayoutTests/platform/gtk/Skipped
Hunk #1 FAILED at 5814.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/platform/gtk/Skipped.rej
patching file LayoutTests/platform/qt/Skipped
Hunk #1 FAILED at 5077.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/platform/qt/Skipped.rej

Full output: http://webkit-commit-queue.appspot.com/results/270611</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191072</commentid>
    <comment_count>22</comment_count>
      <attachid>48906</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-17 10:20:40 -0800</bug_when>
    <thetext>Created attachment 48906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191074</commentid>
    <comment_count>23</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-17 10:22:00 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 48574 [details])
&gt; Rejecting patch 48574 from commit-queue.
&gt; 

Looks like that was just an svn conflict on the Skipped files.  I resolved it and uploaded a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191087</commentid>
    <comment_count>24</comment_count>
      <attachid>48906</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-17 10:48:57 -0800</bug_when>
    <thetext>Comment on attachment 48906
Patch

Rejecting patch 48906 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 12190 test cases.
fast/events/onchange-click-hang.html -&gt; failed

Exiting early after 1 failures. 6339 tests run.
94.80s total testing time

6338 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
2 test cases (&lt;1%) had stderr output

Full output: http://webkit-commit-queue.appspot.com/results/277248</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191113</commentid>
    <comment_count>25</comment_count>
      <attachid>48906</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-17 11:30:06 -0800</bug_when>
    <thetext>Comment on attachment 48906
Patch

Flaky test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191120</commentid>
    <comment_count>26</comment_count>
      <attachid>48906</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-17 11:41:36 -0800</bug_when>
    <thetext>Comment on attachment 48906
Patch

Rejecting patch 48906 from commit-queue.

Failed to run &quot;[&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, &apos;--reviewer&apos;, &apos;Eric Seidel&apos;, &apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
itTools/DumpRenderTree/qt/LayoutTestControllerQt.h.rej
patching file WebKitTools/DumpRenderTree/win/LayoutTestControllerWin.cpp
patching file LayoutTests/ChangeLog
patching file LayoutTests/fast/events/onbeforeunload-focused-iframe-expected.txt
patching file LayoutTests/fast/events/onbeforeunload-focused-iframe.html
patching file LayoutTests/fast/events/resources/onbeforeunload-focused-iframe-frame.html
patching file LayoutTests/platform/gtk/Skipped
patching file LayoutTests/platform/qt/Skipped

Full output: http://webkit-commit-queue.appspot.com/results/276274</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191130</commentid>
    <comment_count>27</comment_count>
      <attachid>48919</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-17 11:56:23 -0800</bug_when>
    <thetext>Created attachment 48919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191131</commentid>
    <comment_count>28</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-17 11:57:25 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; Created an attachment (id=48919) [details]
&gt; Patch

Fixes the svn conflict in LayoutTestControllerQt.{h,cpp}.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191140</commentid>
    <comment_count>29</comment_count>
      <attachid>48919</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-17 12:19:43 -0800</bug_when>
    <thetext>Comment on attachment 48919
Patch

Rejecting patch 48919 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 12190 test cases.
fast/events/onchange-click-hang.html -&gt; failed

Exiting early after 1 failures. 6339 tests run.
95.43s total testing time

6338 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
2 test cases (&lt;1%) had stderr output

Full output: http://webkit-commit-queue.appspot.com/results/277303</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191143</commentid>
    <comment_count>30</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-17 12:22:29 -0800</bug_when>
    <thetext>*** Bug 35046 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191144</commentid>
    <comment_count>31</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-17 12:22:53 -0800</bug_when>
    <thetext>I&apos;ll look at the commit-bot machine, but it looks like there is an issue with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191155</commentid>
    <comment_count>32</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-17 12:37:31 -0800</bug_when>
    <thetext>I saw nothing abnormal with the commit-bot machine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191683</commentid>
    <comment_count>33</comment_count>
      <attachid>48919</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-18 11:31:59 -0800</bug_when>
    <thetext>Comment on attachment 48919
Patch

This fails on my box too.  It looks like the new test is leaking state into another test.  Did you run-webkit-tests before uploading this patch?

--- /tmp/layout-test-results/fast/events/onchange-click-hang-expected.txt	2010-02-18 11:21:04.000000000 -0800
+++ /tmp/layout-test-results/fast/events/onchange-click-hang-actual.txt	2010-02-18 11:21:04.000000000 -0800
@@ -1,3 +1,4 @@
+ALERT: beforeUnload
 These checkboxes call their own and each others click() method from their onchange callbacks. Click the first checkbox. This should not crash or hang. This also shows that click() is protected on per-element basis.
  
 checkbox1 onchange enter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191692</commentid>
    <comment_count>34</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-18 11:45:43 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 48919 [details])
&gt; This fails on my box too.  It looks like the new test is leaking state into
&gt; another test.  Did you run-webkit-tests before uploading this patch?
&gt; 
&gt; --- /tmp/layout-test-results/fast/events/onchange-click-hang-expected.txt   
&gt; 2010-02-18 11:21:04.000000000 -0800
&gt; +++ /tmp/layout-test-results/fast/events/onchange-click-hang-actual.txt   
&gt; 2010-02-18 11:21:04.000000000 -0800
&gt; @@ -1,3 +1,4 @@
&gt; +ALERT: beforeUnload
&gt;  These checkboxes call their own and each others click() method from their
&gt; onchange callbacks. Click the first checkbox. This should not crash or hang.
&gt; This also shows that click() is protected on per-element basis.
&gt; 
&gt;  checkbox1 onchange enter

Ack, interactions across tests...  I&apos;ll take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191717</commentid>
    <comment_count>35</comment_count>
      <attachid>49040</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-18 13:42:28 -0800</bug_when>
    <thetext>Created attachment 49040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191719</commentid>
    <comment_count>36</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-18 13:46:09 -0800</bug_when>
    <thetext>(In reply to comment #35)
&gt; Created an attachment (id=49040) [details]
&gt; Patch

This patch clears the beforeunload handler once the test finishes, since it appeared to still be present in the subsequent test.

I ran the full set of layout tests, and this resolves the onchange-click-hang.html failure (since that happened to be the next test to run after this one).  There were a handful of other failures, but they look like they had more to do with my machine than the patch (e.g., no WebGL context found, etc).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191720</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-18 13:46:54 -0800</bug_when>
    <thetext>Attachment 49040 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/283739</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191723</commentid>
    <comment_count>38</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-18 13:51:25 -0800</bug_when>
    <thetext>Why would we need to clear the onbeforeunload handler in javascript?  Shouldn&apos;t navigating the frame clear the window object and any associated listeners?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191724</commentid>
    <comment_count>39</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-18 14:06:37 -0800</bug_when>
    <thetext>(In reply to comment #38)
&gt; Why would we need to clear the onbeforeunload handler in javascript?  Shouldn&apos;t
&gt; navigating the frame clear the window object and any associated listeners?

That&apos;s a very good question, but I can only think that it has something to do with the way the tests are run.  Two things that stand out to me: 

(1) Tests that set an unload listener end up having a &quot;main frame - has 1 onunload handler(s)&quot; line printed in their output, suggesting that DRT knows about these handlers. 

(2) The other beforeunload tests I&apos;ve found either clear the handler (e.g., fast/events/onunload-clears-onbeforeunload.html) or do nothing in it (eg., dom/Window/HTMLBodyElement-window-event-Listener-attributes.html).

I&apos;m not familiar with how DRT deals with those event listeners, though.

BTW, I have a fix coming for the failed compile on the last patch.  It was just a failed SVN merge on LayoutTestController.cpp, but I&apos;m double checking that the whole thing compiles and tests before uploading again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191729</commentid>
    <comment_count>40</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-18 14:12:28 -0800</bug_when>
    <thetext>Sam may have some clue why the onload listener doesn&apos;t appear to be getting cleared.

Or it might just be that the logging is happending between tests and bleeding into the next test somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191773</commentid>
    <comment_count>41</comment_count>
      <attachid>49047</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-02-18 15:51:10 -0800</bug_when>
    <thetext>Created attachment 49047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202576</commentid>
    <comment_count>42</comment_count>
      <attachid>49047</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-22 10:22:24 -0700</bug_when>
    <thetext>Comment on attachment 49047
Patch

Sorry we dropped the ball on this patch Charlie.  Thanks for your persistence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202855</commentid>
    <comment_count>43</comment_count>
      <attachid>49047</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-22 17:55:18 -0700</bug_when>
    <thetext>Comment on attachment 49047
Patch

Rejecting patch 49047 from commit-queue.

Failed to run &quot;[&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, &apos;--reviewer&apos;, &apos;Adam Barth&apos;, &apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
ching file LayoutTests/fast/events/onbeforeunload-focused-iframe-expected.txt
patching file LayoutTests/fast/events/onbeforeunload-focused-iframe.html
patching file LayoutTests/fast/events/resources/onbeforeunload-focused-iframe-frame.html
patching file LayoutTests/platform/gtk/Skipped
Hunk #1 succeeded at 5762 with fuzz 2 (offset -92 lines).
patching file LayoutTests/platform/qt/Skipped
Hunk #1 FAILED at 5068.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/platform/qt/Skipped.rej

Full output: http://webkit-commit-queue.appspot.com/results/1017131</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203753</commentid>
    <comment_count>44</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-24 20:09:57 -0700</bug_when>
    <thetext>Charlie isn&apos;t a committer.  So it seems that the cq- is effectively the same as an r-.  Please revise and resubmit this patch.  (Unless Adam would like to land it?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204095</commentid>
    <comment_count>45</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-03-25 09:32:40 -0700</bug_when>
    <thetext>(In reply to comment #44)
&gt; Charlie isn&apos;t a committer.  So it seems that the cq- is effectively the same as
&gt; an r-.  Please revise and resubmit this patch.  (Unless Adam would like to land
&gt; it?)

Adam and I have talked about coordinating on Friday to get a fresh patch uploaded and committed, since these files seem to pick up merge conflicts pretty quickly if you let them sit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204433</commentid>
    <comment_count>46</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-25 23:35:26 -0700</bug_when>
    <thetext>Committed r56606</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204620</commentid>
    <comment_count>47</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2010-03-26 09:29:58 -0700</bug_when>
    <thetext>(In reply to comment #46)
&gt; Committed r56606

Thanks Adam!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>33141</attachid>
            <date>2009-07-20 21:02:00 -0700</date>
            <delta_ts>2009-07-20 21:02:00 -0700</delta_ts>
            <desc>onbeforeonload is not called because child frame is focused.</desc>
            <filename>chrome-win-onbeforeunload-frame.html</filename>
            <type>text/html</type>
            <size>441</size>
            <attacher name="Marc Bonnier">chrome</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+QlVHOiBjaHJvbWU6IG9uYmVmb3JldW5sb2FkIG5vdCBjYWxs
ZWQgYXQgY2xvc2U8L3RpdGxlPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8vQlVH
OiBDaHJvbWU6IHdoZW4gYSBmcmFtZSBpcyBmb2N1c2VkLCBjbG9zaW5nIHRoZSB3aW5kb3cgd2ls
bCBub3QgY2FsbCBvbmJlZm9yZXVubG9hZC4Kd2luZG93Lm9uYmVmb3JldW5sb2FkID0gdHN0CmZ1
bmN0aW9uIHRzdChldmVudCkgewoJZXZlbnQgPSBldmVudCA/IGV2ZW50IDogd2luZG93LmV2ZW50
CglyZXR1cm4gIkFBQSIKCX0KZnVuY3Rpb24gZG9mb2N1cygpIHsKCWZyYW1lc1swXS5mb2N1cygp
Cgl9Cjwvc2NyaXB0Pgo8L2hlYWQ+CjxmcmFtZXNldCBvbmxvYWQ9ImRvZm9jdXMoKSI+Cgk8ZnJh
bWUgc3JjPSJhYm91dDpibGFuayI+CjwvZnJhbWVzZXQ+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>33142</attachid>
            <date>2009-07-20 21:02:55 -0700</date>
            <delta_ts>2009-07-20 21:02:55 -0700</delta_ts>
            <desc>onbeforeonload is not called because child iframe is focused.</desc>
            <filename>chrome-win-onbeforeunload-iframe.html</filename>
            <type>text/html</type>
            <size>405</size>
            <attacher name="Marc Bonnier">chrome</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+QlVHOiBjaHJvbWU6IG9uYmVmb3JldW5sb2FkIG5vdCBjYWxs
ZWQgYXQgY2xvc2U8L3RpdGxlPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CndpbmRv
dy5vbmJlZm9yZXVubG9hZCA9IHRzdApmdW5jdGlvbiB0c3QoZXZlbnQpIHsKCXJldHVybiAiQUFB
IgoJfQpmdW5jdGlvbiBkb2ZvY3VzKCkgewoJZnJhbWVzWzBdLmZvY3VzKCkKCX0KPC9zY3JpcHQ+
CjwvaGVhZD4KPGJvZHkgb25sb2FkPSJkb2ZvY3VzKCkiPgpCVUc6IENocm9tZTogd2hlbiBhbiBp
ZnJhbWUgaXMgZm9jdXNlZCwgY2xvc2luZyB0aGUgd2luZG93IHdpbGwgbm90IGNhbGwgb25iZWZv
cmV1bmxvYWQuCgk8aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgo8L2JvZHk+Cjwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48156</attachid>
            <date>2010-02-04 10:47:42 -0800</date>
            <delta_ts>2010-02-05 17:43:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-27481-20100204104741.patch</filename>
            <type>text/plain</type>
            <size>2978</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTQzNTUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDItMDQgIENoYXJs
aWUgUmVpcyAgPGNyZWlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBvbmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRv
dyBjbG9zZSArIGZyYW1lIG9yIGlmcmFtZSBmb2N1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ4MQorICAgICAgICBodHRwOi8vY29kZS5nb29n
bGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0zMjYxNQorICAgICAgICBodHRwOi8v
Y29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0xNzE1NworCisgICAg
ICAgIENocm9taXVtIGFuZCBXZWJLaXQgb24gV2luZG93cyB3aWxsIG5vdyBmaXJlIGJlZm9yZXVu
bG9hZCBoYW5kbGVycworICAgICAgICBldmVuIGlmIGFuIGlubmVyIGZyYW1lIGlzIGZvY3VzZWQu
CisKKyAgICAgICAgTGF5b3V0IHRlc3RzIGFyZW4ndCBhYmxlIHRvIHRlc3QgdGhpcyBidWcsIHNp
bmNlIGl0IHJlcXVpcmVzIGNsb3NpbmcKKyAgICAgICAgdGhlIGFjdHVhbCBicm93c2VyIHdpbmRv
dywgbm90IGNhbGxpbmcgd2luZG93LmNsb3NlKCkuCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlzcGF0Y2hCZWZvcmVVbmxv
YWRFdmVudCk6CisKIDIwMTAtMDItMDQgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gNTQzMDYpCisrKyBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4Miw3ICsxMTgyLDcg
QEAgYm9vbCBXZWJWaWV3SW1wbDo6ZGlzcGF0Y2hCZWZvcmVVbmxvYWRFdgogICAgIC8vIEZJWE1F
OiBUaGlzIHNob3VsZCByZWFsbHkgY2F1c2UgYSByZWN1cnNpdmUgZGVwdGgtZmlyc3Qgd2FsayBv
ZiBhbGwKICAgICAvLyBmcmFtZXMgaW4gdGhlIHRyZWUsIGNhbGxpbmcgZWFjaCBmcmFtZSdzIG9u
YmVmb3JldW5sb2FkLiAgQXQgdGhlIG1vbWVudCwKICAgICAvLyB3ZSdyZSBjb25zaXN0ZW50IHdp
dGggU2FmYXJpIDMuMSwgbm90IElFL0ZGLgotICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+Zm9j
dXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIEZyYW1lKiBmcmFtZSA9
IG1fcGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93
aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA1NDM1NSkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDItMDQgIENoYXJsaWUgUmVpcyAg
PGNyZWlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBvbmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSAr
IGZyYW1lIG9yIGlmcmFtZSBmb2N1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNzQ4MQorICAgICAgICAKKyAgICAgICAgQ2hyb21pdW0gYW5kIFdl
YktpdCBvbiBXaW5kb3dzIHdpbGwgbm93IGZpcmUgYmVmb3JldW5sb2FkIGhhbmRsZXJzCisgICAg
ICAgIGV2ZW4gaWYgYW4gaW5uZXIgZnJhbWUgaXMgZm9jdXNlZC4gIAorCisgICAgICAgIExheW91
dCB0ZXN0cyBhcmVuJ3QgYWJsZSB0byB0ZXN0IHRoaXMgYnVnLCBzaW5jZSBpdCByZXF1aXJlcyBj
bG9zaW5nCisgICAgICAgIHRoZSBhY3R1YWwgYnJvd3NlciB3aW5kb3csIG5vdCBjYWxsaW5nIHdp
bmRvdy5jbG9zZSgpLgorCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3
OjpzaG91bGRDbG9zZSk6CisKIDIwMTAtMDItMDMgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3Rl
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEZhbGtlbmJ1cmcuCklu
ZGV4OiBXZWJLaXQvd2luL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2Vi
Vmlldy5jcHAJKHJldmlzaW9uIDU0MzA2KQorKysgV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTA2MCw3ICs1MDYwLDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBXZWJWaWV3OjpzaG91bAogICAgIH0KIAogICAgICpyZXN1bHQgPSBUUlVFOwotICAgIGlmIChG
cmFtZSogZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJh
bWUoKSkKKyAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKSkKICAgICAg
ICAgKnJlc3VsdCA9IGZyYW1lLT5zaG91bGRDbG9zZSgpID8gVFJVRSA6IEZBTFNFOwogICAgIHJl
dHVybiBTX09LOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>48247</attachid>
            <date>2010-02-05 12:22:49 -0800</date>
            <delta_ts>2010-02-05 12:24:39 -0800</delta_ts>
            <desc>Attempted layout test</desc>
            <filename>layout-test-27481.diff</filename>
            <type>text/plain</type>
            <size>4539</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWZvY3VzZWQtaWZyYW1lLWV4
cGVjdGVkLnR4dA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5s
b2FkLWZvY3VzZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkNCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9vbnVubG9hZC1mb2N1c2VkLWlmcmFtZS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApDQpAQCAtMCwwICsxLDcgQEANCitBTEVSVDogYmVmb3JlVW5sb2FkDQorVGhpcyB0
ZXN0cyB0aGF0IGJlZm9yZXVubG9hZCBydW5zIHdoZW4gYSB3aW5kb3cgd2l0aCBhIGZvY3VzZWQg
aWZyYW1lIGlzIGNsb3NlZC4NCitUbyBydW4gbWFudWFsbHkgY2xpY2sgdGhlIGxpbmsgYmVsb3cu
DQorT3BlbiB0ZXN0IHdpbmRvdy4NCitPcGVuaW5nIHRlc3Qgd2luZG93Lg0KK0Nsb3NpbmcgdGVz
dCB3aW5kb3cuDQorDQoNClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzXGZhc3RcZXZl
bnRzXG9udW5sb2FkLWZvY3VzZWQtaWZyYW1lLWV4cGVjdGVkLnR4dA0KX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KQWRk
ZWQ6IHN2bjplb2wtc3R5bGUNCiAgICsgTEYNCg0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL29udW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9vbnVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sCShyZXZpc2lvbiAw
KQ0KKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0
bWwJKHJldmlzaW9uIDApDQpAQCAtMCwwICsxLDQ2IEBADQorPGh0bWw+DQorICAgIDxoZWFkPg0K
KyAgICAgICAgPHNjcmlwdD4NCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsNCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQor
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsNCisg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsN
CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7DQorICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hl
bkNvbXBsZXRlKCk7DQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UG9wdXBC
bG9ja2luZ0VuYWJsZWQoZmFsc2UpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgZnVuY3Rpb24g
dGVzdCgpDQorICAgICAgICB7DQorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgew0KKyAgICAgICAgICAgICAgICBvcGVuVGVzdFdpbmRvdygpOw0KKyAgICAgICAg
ICAgIH0NCisgICAgICAgIH0NCisNCisgICAgICAgIGZ1bmN0aW9uIG9wZW5UZXN0V2luZG93KCkN
CisgICAgICAgIHsNCisgICAgICAgICAgICBsb2coIk9wZW5pbmcgdGVzdCB3aW5kb3cuIik7DQor
ICAgICAgICAgICAgdmFyIHcgPSB3aW5kb3cub3BlbigicmVzb3VyY2VzL29udW5sb2FkLWZvY3Vz
ZWQtaWZyYW1lLXdpbmRvdy5odG1sIik7DQorICAgICAgICB9DQorDQorICAgICAgICBmdW5jdGlv
biBjbG9zZVRlc3RXaW5kb3cod2luVG9DbG9zZSkgew0KKyAgICAgICAgICAgIGxvZygiQ2xvc2lu
ZyB0ZXN0IHdpbmRvdy4iKTsNCisgICAgICAgICAgICB3aW5Ub0Nsb3NlLmNsb3NlKCk7DQorICAg
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCisgICAgICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOw0KKyAgICAgICAgfQ0KKw0KKyAg
ICAgICAgZnVuY3Rpb24gbG9nKG1zZykNCisgICAgICAgIHsNCisgICAgICAgICAgICB2YXIgcmVz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlcycpOw0KKyAgICAgICAgICAgIHJlcy5pbm5l
ckhUTUwgPSByZXMuaW5uZXJIVE1MICsgbXNnICsgIjxicj4iOw0KKyAgICAgICAgfQ0KKyAgICAg
ICAgPC9zY3JpcHQ+DQorICAgIDwvaGVhZD4NCisgICAgPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPg0K
KyAgICAgICAgVGhpcyB0ZXN0cyB0aGF0IGJlZm9yZXVubG9hZCBydW5zIHdoZW4gYSB3aW5kb3cg
d2l0aCBhIGZvY3VzZWQgaWZyYW1lIGlzIGNsb3NlZC48YnI+DQorICAgICAgICBUbyBydW4gbWFu
dWFsbHkgY2xpY2sgdGhlIGxpbmsgYmVsb3cuPGJyPg0KKyAgICAgICAgPGEgaHJlZj0iIyIgb25j
bGljaz0ib3BlblRlc3RXaW5kb3coKSI+T3BlbiB0ZXN0IHdpbmRvdy48L2E+PGJyPg0KKyAgICAg
ICAgPGRpdiBpZD0icmVzIj48L2Rpdj4NCisgICAgPC9ib2R5Pg0KKzwvaHRtbD4NCg0KUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHNcZmFzdFxldmVudHNcb251bmxvYWQtZm9jdXNlZC1p
ZnJhbWUuaHRtbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXw0KQWRkZWQ6IHN2bjplb2wtc3R5bGUNCiAgICsgTEYNCg0K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9vbnVubG9hZC1mb2N1c2Vk
LWlmcmFtZS1mcmFtZS5odG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcmVzb3VyY2VzL29udW5sb2FkLWZvY3VzZWQtaWZyYW1lLWZyYW1lLmh0bWwJKHJldmlzaW9u
IDApDQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL29udW5sb2FkLWZvY3Vz
ZWQtaWZyYW1lLWZyYW1lLmh0bWwJKHJldmlzaW9uIDApDQpAQCAtMCwwICsxLDEzIEBADQorPGh0
bWw+DQorPGJvZHkgb25sb2FkPSJsb2FkKCkiPg0KKyAgICBUaGlzIGZyYW1lIHNob3VsZCBnZXQg
dGhlIGZvY3VzLg0KKwk8aW5wdXQgaWQ9ImJveCI+PC9pbnB1dD4NCisgICAgPHNjcmlwdD4NCisg
ICAgICAgIGZ1bmN0aW9uIGxvYWQoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJib3giKS5mb2N1cygpOw0KKyAgICAgICAgICAgIHNldFRpbWVvdXQo
IndpbmRvdy50b3AuY2xvc2VXaW5kb3coKSIsIDEwMDApOw0KKyAgICAgICAgfQ0KKyAgICA8L3Nj
cmlwdD4NCis8L2JvZHk+DQorPC9odG1sPg0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQoN
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzXGZhc3RcZXZlbnRzXHJlc291cmNlc1xv
bnVubG9hZC1mb2N1c2VkLWlmcmFtZS1mcmFtZS5odG1sDQpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpBZGRlZDogc3Zu
OmVvbC1zdHlsZQ0KICAgKyBMRg0KDQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVz
b3VyY2VzL29udW5sb2FkLWZvY3VzZWQtaWZyYW1lLXdpbmRvdy5odG1sDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL29udW5sb2FkLWZvY3VzZWQtaWZy
YW1lLXdpbmRvdy5odG1sCShyZXZpc2lvbiAwKQ0KKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Jlc291cmNlcy9vbnVubG9hZC1mb2N1c2VkLWlmcmFtZS13aW5kb3cuaHRtbAkocmV2aXNpb24g
MCkNCkBAIC0wLDAgKzEsMTggQEANCis8aHRtbD4NCis8Ym9keT4NCisJTmV3IHdpbmRvdyB3aXRo
IGJlZm9yZVVubG9hZCBoYW5kbGVyLjxicj4NCisJPGlmcmFtZSBzcmM9Im9udW5sb2FkLWZvY3Vz
ZWQtaWZyYW1lLWZyYW1lLmh0bWwiIGlkPSJmb2N1c2VkRnJhbWUiPjwvaWZyYW1lPg0KKwk8c2Ny
aXB0Pg0KKwkgICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0gYmVmb3JlVW5sb2FkOw0KKwkJZnVu
Y3Rpb24gYmVmb3JlVW5sb2FkKCkNCisJCXsNCisJCQlhbGVydCgiYmVmb3JlVW5sb2FkIik7DQor
CQl9DQorDQorCQlmdW5jdGlvbiBjbG9zZVdpbmRvdygpDQorCQl7DQorCQkJd2luZG93Lm9wZW5l
ci5jbG9zZVRlc3RXaW5kb3cod2luZG93KTsNCisJCX0NCisJCTwvc2NyaXB0Pg0KKzwvYm9keT4N
Cis8L2h0bWw+DQoNClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzXGZhc3RcZXZlbnRz
XHJlc291cmNlc1xvbnVubG9hZC1mb2N1c2VkLWlmcmFtZS13aW5kb3cuaHRtbA0KX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xw0KQWRkZWQ6IHN2bjplb2wtc3R5bGUNCiAgICsgTEYNCg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48276</attachid>
            <date>2010-02-05 17:43:41 -0800</date>
            <delta_ts>2010-02-10 19:06:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-27481-20100205174340.patch</filename>
            <type>text/plain</type>
            <size>6220</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDQ1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMDItMDUgIENoYXJsaWUgUmVpcyAgPGNyZWlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBv
bmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSArIGZyYW1lIG9yIGlmcmFt
ZSBmb2N1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNzQ4MQorICAgICAgICAKKyAgICAgICAgQ2hyb21pdW0gYW5kIFdlYktpdCBvbiBXaW5kb3dz
IHdpbGwgbm93IGZpcmUgYmVmb3JldW5sb2FkIGhhbmRsZXJzCisgICAgICAgIGV2ZW4gaWYgYW4g
aW5uZXIgZnJhbWUgaXMgZm9jdXNlZC4gIAorCisgICAgICAgIExheW91dCB0ZXN0cyBhcmVuJ3Qg
YWJsZSB0byB0ZXN0IHRoaXMgYnVnLCBzaW5jZSBpdCByZXF1aXJlcyBjbG9zaW5nCisgICAgICAg
IHRoZSBhY3R1YWwgYnJvd3NlciB3aW5kb3csIG5vdCBjYWxsaW5nIHdpbmRvdy5jbG9zZSgpLiAg
SW5zdGVhZCwKKyAgICAgICAgdGVzdCB3aXRoIFdlYkNvcmUvbWFudWFsLXRlc3RzL29uYmVmb3Jl
dW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwuCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvb25i
ZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogbWFudWFs
LXRlc3RzL3Jlc291cmNlcy9mb2N1c2VkLWlmcmFtZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMi0w
NSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gRnJhc2VyLgpJbmRleDogV2ViQ29yZS9tYW51YWwtdGVzdHMvb25iZWZvcmV1bmxv
YWQtZm9jdXNlZC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL21hbnVhbC10ZXN0
cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9tYW51YWwtdGVzdHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0Mv
L0RURCBIVE1MIDQuMDEvL0VOIgorICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv
c3RyaWN0LmR0ZCI+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKzwvaGVhZD4KKzxCT0RZIG9u
YmVmb3JldW5sb2FkPSJyZXR1cm4gJ29uQmVmb3JlVW5sb2FkSGFuZGxlciByZXR1cm4gc3RyaW5n
IGlzIGRpc3BsYXllZCBoZXJlLic7Ij4KKzxwPjxiPkJVRyBJRDo8L2I+IDxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ4MSI+Mjc0ODE8L2E+IG9uYmVm
b3JldW5sb2FkIG5vdCBjYWxsZWQgYXQgd2luZG93IGNsb3NlICsgZnJhbWUgb3IgaWZyYW1lIGZv
Y3VzZWQ8L3A+CisKKzxwIGlkPSJ0ZXN0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpza3libHVl
OyBwYWRkaW5nOjNweDsiPjxiPlNURVBTIFRPIFRFU1Q6PC9iPiAKKzxvbD4KKyAgICA8bGk+Q2xv
c2UgdGhpcyBicm93c2VyIHdpbmRvdyB3aGlsZSB0aGUgaW5uZXIgZnJhbWUgaGFzIGZvY3VzLgor
PC9vbD4KKzwvcD4KKworPHAgaWQ9InN1Y2Nlc3MiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOnBh
bGVncmVlbjsgcGFkZGluZzozcHg7Ij48Yj5URVNUIFBBU1M6PC9iPiAKK0FmdGVyIHRoZSBjbG9z
ZSBidXR0b24gaXMgY2xpY2tlZCwgeW91IHNob3VsZCBzZWUgYSBkaWFsb2cgdGhhdCByZWFkczo8
L3A+Cis8cHJlPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBuYXZpZ2F0ZSBhd2F5IGZyb20gdGhp
cyBwYWdlPworCitvbkJlZm9yZVVubG9hZEhhbmRsZXIgcmV0dXJuIHN0cmluZyBpcyBkaXNwbGF5
ZWQgaGVyZS4KKworUHJlc3MgT0sgdG8gY29udGludWUgb3IgQ2FuY2VsIHRvIHN0YXkgb24gdGhl
IGN1cnJlbnQgcGFnZS48L3ByZT4KKworPHAgaWQ9ImZhaWx1cmUiIHN0eWxlPSJiYWNrZ3JvdW5k
LWNvbG9yOiNGRjMzMDA7IHBhZGRpbmc6M3B4OyI+PGI+VEVTVCBGQUlMOjwvYj4gIAorTm8gZGlh
bG9nIChhcyBkZXNjcmliZWQgYWJvdmUpIHdoZW4gY2xvc2luZyB0aGUgYnJvd3NlciB3aW5kb3cu
Cis8L3A+CisKKzxCT0RZIG9uYmVmb3JldW5sb2FkPSJyZXR1cm4gJ29uQmVmb3JlVW5sb2FkSGFu
ZGxlciByZXR1cm4gc3RyaW5nIGlzIGRpc3BsYXllZCBoZXJlLic7Ij4KKzxpZnJhbWUgc3JjPSJy
ZXNvdXJjZXMvZm9jdXNlZC1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8cD5DbG9zZSB0aGlzIGJy
b3dzZXIgd2luZG93LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFdlYkNvcmUvbWFudWFs
LXRlc3RzL3Jlc291cmNlcy9mb2N1c2VkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvbWFudWFsLXRlc3RzL3Jlc291cmNlcy9mb2N1c2VkLWlmcmFtZS5odG1sCShyZXZpc2lvbiAw
KQorKysgV2ViQ29yZS9tYW51YWwtdGVzdHMvcmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKKzxodG1sPgorPGJvZHkgb25sb2FkPSJsb2Fk
KCkiPgorICAgIFRoaXMgZnJhbWUgc2hvdWxkIGdldCB0aGUgZm9jdXMuCisgICAgPGlucHV0IGlk
PSJib3giPjwvaW5wdXQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gbG9hZCgpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3giKS5mb2N1
cygpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU0MzU1KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEwLTAyLTA0ICBDaGFybGllIFJlaXMg
IDxjcmVpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgb25iZWZvcmV1bmxvYWQgbm90IGNhbGxlZCBhdCB3aW5kb3cgY2xvc2Ug
KyBmcmFtZSBvciBpZnJhbWUgZm9jdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0ODEKKyAgICAgICAgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9w
L2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MzI2MTUKKyAgICAgICAgaHR0cDovL2NvZGUuZ29v
Z2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTcxNTcKKworICAgICAgICBDaHJv
bWl1bSBhbmQgV2ViS2l0IG9uIFdpbmRvd3Mgd2lsbCBub3cgZmlyZSBiZWZvcmV1bmxvYWQgaGFu
ZGxlcnMKKyAgICAgICAgZXZlbiBpZiBhbiBpbm5lciBmcmFtZSBpcyBmb2N1c2VkLgorCisgICAg
ICAgIExheW91dCB0ZXN0cyBhcmVuJ3QgYWJsZSB0byB0ZXN0IHRoaXMgYnVnLCBzaW5jZSBpdCBy
ZXF1aXJlcyBjbG9zaW5nCisgICAgICAgIHRoZSBhY3R1YWwgYnJvd3NlciB3aW5kb3csIG5vdCBj
YWxsaW5nIHdpbmRvdy5jbG9zZSgpLiAgSW5zdGVhZCwKKyAgICAgICAgdGVzdCB3aXRoIFdlYkNv
cmUvbWFudWFsLXRlc3RzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwuCisKKyAg
ICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6ZGlzcGF0Y2hCZWZvcmVVbmxvYWRFdmVudCk6CisKIDIwMTAtMDItMDQgIE5hdGUgQ2hhcGlu
ICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEds
YXprb3YuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gNTQz
MDYpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTE4Miw3ICsxMTgyLDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6ZGlzcGF0Y2hCZWZvcmVV
bmxvYWRFdgogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZWFsbHkgY2F1c2UgYSByZWN1cnNp
dmUgZGVwdGgtZmlyc3Qgd2FsayBvZiBhbGwKICAgICAvLyBmcmFtZXMgaW4gdGhlIHRyZWUsIGNh
bGxpbmcgZWFjaCBmcmFtZSdzIG9uYmVmb3JldW5sb2FkLiAgQXQgdGhlIG1vbWVudCwKICAgICAv
LyB3ZSdyZSBjb25zaXN0ZW50IHdpdGggU2FmYXJpIDMuMSwgbm90IElFL0ZGLgotICAgIEZyYW1l
KiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgp
OworICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgaWYgKCFmcmFt
ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA1NDM1NSkKKysrIFdl
YktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAt
MDItMDQgIENoYXJsaWUgUmVpcyAgPGNyZWlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBvbmJlZm9yZXVubG9hZCBub3QgY2Fs
bGVkIGF0IHdpbmRvdyBjbG9zZSArIGZyYW1lIG9yIGlmcmFtZSBmb2N1c2VkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ4MQorICAgICAgICAKKyAg
ICAgICAgQ2hyb21pdW0gYW5kIFdlYktpdCBvbiBXaW5kb3dzIHdpbGwgbm93IGZpcmUgYmVmb3Jl
dW5sb2FkIGhhbmRsZXJzCisgICAgICAgIGV2ZW4gaWYgYW4gaW5uZXIgZnJhbWUgaXMgZm9jdXNl
ZC4gIAorCisgICAgICAgIExheW91dCB0ZXN0cyBhcmVuJ3QgYWJsZSB0byB0ZXN0IHRoaXMgYnVn
LCBzaW5jZSBpdCByZXF1aXJlcyBjbG9zaW5nCisgICAgICAgIHRoZSBhY3R1YWwgYnJvd3NlciB3
aW5kb3csIG5vdCBjYWxsaW5nIHdpbmRvdy5jbG9zZSgpLiAgSW5zdGVhZCwKKyAgICAgICAgdGVz
dCB3aXRoIFdlYkNvcmUvbWFudWFsLXRlc3RzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1l
Lmh0bWwuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnNob3Vs
ZENsb3NlKToKKwogMjAxMC0wMi0wMyAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU3RldmUgRmFsa2VuYnVyZy4KSW5kZXg6IFdl
YktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cAkocmV2aXNpb24gNTQzMDYpCisrKyBXZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MDYwLDcgKzUwNjAsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZp
ZXc6OnNob3VsCiAgICAgfQogCiAgICAgKnJlc3VsdCA9IFRSVUU7Ci0gICAgaWYgKEZyYW1lKiBm
cmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpKQor
ICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpKQogICAgICAgICAqcmVz
dWx0ID0gZnJhbWUtPnNob3VsZENsb3NlKCkgPyBUUlVFIDogRkFMU0U7CiAgICAgcmV0dXJuIFNf
T0s7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48541</attachid>
            <date>2010-02-10 19:06:53 -0800</date>
            <delta_ts>2010-02-11 09:33:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-27481-20100210190652.patch</filename>
            <type>text/plain</type>
            <size>13985</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDYzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDItMTAgIENoYXJsaWUgUmVpcyAgPGNyZWlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBv
bmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSArIGZyYW1lIG9yIGlmcmFt
ZSBmb2N1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNzQ4MQorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3Vz
ZWQtaWZyYW1lLmh0bWwKKworICAgICAgICBSZXBsYWNlcyBpbml0aWFsIG1hbnVhbCB0ZXN0cyB3
aXRoIGEgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvb25iZWZvcmV1bmxv
YWQtZm9jdXNlZC1pZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtYW51YWwtdGVzdHMv
cmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisKIDIwMTAtMDItMTAgIFN0
ZXBoYW4gQcOfbXVzICA8c3VwZXJzdGlwcGlAZ214LmRlPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhdmlkIExldmluLgpJbmRleDogV2ViQ29yZS9tYW51YWwtdGVzdHMvb25iZWZvcmV1bmxvYWQt
Zm9jdXNlZC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL21hbnVhbC10ZXN0cy9v
bmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sCShyZXZpc2lvbiA1NDYzNCkKKysrIFdl
YkNvcmUvbWFudWFsLXRlc3RzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMzEgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9X
M0MvL0RURCBIVE1MIDQuMDEvL0VOIgotICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRt
bDQvc3RyaWN0LmR0ZCI+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLTwvaGVhZD4KLTxCT0RZ
IG9uYmVmb3JldW5sb2FkPSJyZXR1cm4gJ29uQmVmb3JlVW5sb2FkSGFuZGxlciByZXR1cm4gc3Ry
aW5nIGlzIGRpc3BsYXllZCBoZXJlLic7Ij4KLTxwPjxiPkJVRyBJRDo8L2I+IDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ4MSI+Mjc0ODE8L2E+IG9u
YmVmb3JldW5sb2FkIG5vdCBjYWxsZWQgYXQgd2luZG93IGNsb3NlICsgZnJhbWUgb3IgaWZyYW1l
IGZvY3VzZWQ8L3A+Ci0KLTxwIGlkPSJ0ZXN0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpza3li
bHVlOyBwYWRkaW5nOjNweDsiPjxiPlNURVBTIFRPIFRFU1Q6PC9iPiAKLTxvbD4KLSAgICA8bGk+
Q2xvc2UgdGhpcyBicm93c2VyIHdpbmRvdyB3aGlsZSB0aGUgaW5uZXIgZnJhbWUgaGFzIGZvY3Vz
LgotPC9vbD4KLTwvcD4KLQotPHAgaWQ9InN1Y2Nlc3MiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9y
OnBhbGVncmVlbjsgcGFkZGluZzozcHg7Ij48Yj5URVNUIFBBU1M6PC9iPiAKLUFmdGVyIHRoZSBj
bG9zZSBidXR0b24gaXMgY2xpY2tlZCwgeW91IHNob3VsZCBzZWUgYSBkaWFsb2cgdGhhdCByZWFk
czo8L3A+Ci08cHJlPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBuYXZpZ2F0ZSBhd2F5IGZyb20g
dGhpcyBwYWdlPwotCi1vbkJlZm9yZVVubG9hZEhhbmRsZXIgcmV0dXJuIHN0cmluZyBpcyBkaXNw
bGF5ZWQgaGVyZS4KLQotUHJlc3MgT0sgdG8gY29udGludWUgb3IgQ2FuY2VsIHRvIHN0YXkgb24g
dGhlIGN1cnJlbnQgcGFnZS48L3ByZT4KLQotPHAgaWQ9ImZhaWx1cmUiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWNvbG9yOiNGRjMzMDA7IHBhZGRpbmc6M3B4OyI+PGI+VEVTVCBGQUlMOjwvYj4gIAotTm8g
ZGlhbG9nIChhcyBkZXNjcmliZWQgYWJvdmUpIHdoZW4gY2xvc2luZyB0aGUgYnJvd3NlciB3aW5k
b3cuCi08L3A+Ci0KLTxCT0RZIG9uYmVmb3JldW5sb2FkPSJyZXR1cm4gJ29uQmVmb3JlVW5sb2Fk
SGFuZGxlciByZXR1cm4gc3RyaW5nIGlzIGRpc3BsYXllZCBoZXJlLic7Ij4KLTxpZnJhbWUgc3Jj
PSJyZXNvdXJjZXMvZm9jdXNlZC1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Ci08cD5DbG9zZSB0aGlz
IGJyb3dzZXIgd2luZG93LjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IFdlYkNvcmUvbWFu
dWFsLXRlc3RzL3Jlc291cmNlcy9mb2N1c2VkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvbWFudWFsLXRlc3RzL3Jlc291cmNlcy9mb2N1c2VkLWlmcmFtZS5odG1sCShyZXZpc2lv
biA1NDYzNCkKKysrIFdlYkNvcmUvbWFudWFsLXRlc3RzL3Jlc291cmNlcy9mb2N1c2VkLWlmcmFt
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAgQEAKLTxodG1sPgotPGJvZHkgb25s
b2FkPSJsb2FkKCkiPgotICAgIFRoaXMgZnJhbWUgc2hvdWxkIGdldCB0aGUgZm9jdXMuCi0gICAg
PGlucHV0IGlkPSJib3giPjwvaW5wdXQ+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgZnVuY3Rpb24g
bG9hZCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJi
b3giKS5mb2N1cygpOwotICAgICAgICB9Ci0gICAgPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA1NDYzNykKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEwLTAyLTEwICBDaGFybGllIFJlaXMgIDxj
cmVpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgb25iZWZvcmV1bmxvYWQgbm90IGNhbGxlZCBhdCB3aW5kb3cgY2xvc2UgKyBm
cmFtZSBvciBpZnJhbWUgZm9jdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mjc0ODEKKworICAgICAgICBBZGRzIGEgY2FsbFNob3VsZENsb3NlT25X
ZWJWaWV3IG1ldGhvZCB0byBMYXlvdXRUZXN0Q29udHJvbGxlciwKKyAgICAgICAgdG8gYWxsb3cg
YXV0b21hdGVkIHRlc3RpbmcgZm9yIGJ1ZyAyNzQ4MS4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKGNhbGxTaG91bGRDbG9zZU9u
V2ViVmlld0NhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNG
dW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxkQ2xvc2VPbldl
YlZpZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxkQ2xvc2VP
bldlYlZpZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91bGRDbG9z
ZU9uV2ViVmlldyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250
cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxk
Q2xvc2VPbldlYlZpZXcpOgorCiAyMDEwLTAyLTEwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cAkocmV2aXNpb24gNTQ2MzQpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw2ICsyODAsMTQgQEAgc3Rh
dGljIEpTVmFsdWVSZWYgYWRkRGlzYWxsb3dlZFVSTENhbGxiYQogICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgY2FsbFNob3Vs
ZENsb3NlT25XZWJWaWV3Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorewor
ICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCisgICAgTGF5b3V0VGVzdENv
bnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+
KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1h
a2VCb29sZWFuKGNvbnRleHQsIGNvbnRyb2xsZXItPmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygp
KTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgY2xlYXJBbGxEYXRhYmFzZXNDYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1td
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyAmIHdpbmRvd3MgaW1w
bGVtZW50YXRpb24KQEAgLTEzMTYsNiArMTMyNCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91
dFRlc3RDb250cm9sbGVyOjoKICAgICAgICAgeyAiYWRkRGlzYWxsb3dlZFVSTCIsIGFkZERpc2Fs
bG93ZWRVUkxDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJhZGRVc2VyU2NyaXB0IiwgYWRk
VXNlclNjcmlwdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImFkZFVzZXJTdHlsZVNoZWV0
IiwgYWRkVXNlclN0eWxlU2hlZXRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJjYWxsU2hv
dWxkQ2xvc2VPbldlYlZpZXciLCBjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXdDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJjbGVhckFsbERhdGFiYXNlcyIsIGNsZWFyQWxsRGF0YWJhc2VzQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY2xlYXJCYWNrRm9yd2FyZExpc3QiLCBjbGVhckJh
Y2tGb3J3YXJkTGlzdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNsZWFyUGVyc2lzdGVu
dFVzZXJTdHlsZVNoZWV0IiwgY2xlYXJQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LApJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiA1NDYzNCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2
LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB2b2lkIGNs
ZWFyQmFja0ZvcndhcmRMaXN0KCk7CiAgICAgdm9pZCBjbGVhclBlcnNpc3RlbnRVc2VyU3R5bGVT
aGVldCgpOworICAgIGJvb2wgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCk7CiAgICAgSlNTdHJp
bmdSZWYgY29weURlY29kZWRIb3N0TmFtZShKU1N0cmluZ1JlZiBuYW1lKTsKICAgICBKU1N0cmlu
Z1JlZiBjb3B5RW5jb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5hbWUpOwogICAgIHZvaWQgZGlz
YWJsZUltYWdlTG9hZGluZygpOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCShyZXZpc2lvbiA1
NDYzNCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyNSw2ICs0MjUsMTEgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0UGVyc2lzdGVudAogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
IH0KIAorYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3
KCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciB0ZXN0aW5nIGZpeCBmb3IgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDgxCit9CisKIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmNsZWFyUGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0KCkKIHsKICAgICAv
LyBGSVhNRTogaW1wbGVtZW50CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCShyZXZpc2lvbiA1NDYz
NCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSwxMSBAQCB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjphZGREaXNhbGxvd2VkCiAgICAgQ0ZTZXRBZGRWYWx1ZShkaXNhbGxvd2Vk
VVJMcywgW3JlcXVlc3QgVVJMXSk7CiB9CiAKK2Jvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNh
bGxTaG91bGRDbG9zZU9uV2ViVmlldygpCit7CisgICAgcmV0dXJuIFtbbWFpbkZyYW1lIHdlYlZp
ZXddIHNob3VsZENsb3NlXTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJB
bGxEYXRhYmFzZXMoKQogewogICAgIFtbV2ViRGF0YWJhc2VNYW5hZ2VyIHNoYXJlZFdlYkRhdGFi
YXNlTWFuYWdlcl0gZGVsZXRlQWxsRGF0YWJhc2VzXTsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCShy
ZXZpc2lvbiA1NDYzNCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTgsNiArMzk4LDExIEBAIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERhdGFiYXNlUXUKICAgICBtX3RvcExvYWRpbmdG
cmFtZS0+c2VjdXJpdHlPcmlnaW4oKS5zZXREYXRhYmFzZVF1b3RhKHNpemUpOwogfQogCitib29s
IExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKQoreworICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIHRlc3RpbmcgZml4IGZvciBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0ODEKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6Y2xlYXJBbGxEYXRhYmFzZXMoKQogewogICAgIFFXZWJEYXRhYmFzZTo6cmVtb3ZlQWxs
RGF0YWJhc2VzKCk7CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0
VGVzdENvbnRyb2xsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9uIDU0NjM0KQor
KysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDYgKzExMCwyMSBAQCB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpjbGVhckJhY2tGb3J3CiAgICAgYmFja0ZvcndhcmRMaXN0LT5nb1RvSXRlbShp
dGVtLmdldCgpKTsKIH0KIAorYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFNob3VsZENs
b3NlT25XZWJWaWV3KCkKK3sKKyAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7CisgICAgaWYg
KEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB2aWV3UHJpdmF0ZTsKKyAgICBpZiAoRkFJ
TEVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3UHJpdmF0ZSkpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBCT09MIHJlc3VsdDsKKyAgICB2aWV3UHJpdmF0ZS0+c2hvdWxkQ2xv
c2UoJnJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogSlNTdHJpbmdSZWYgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmNvcHlEZWNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFtZSkKIHsK
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ2MzcpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAx
MC0wMi0xMCAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIG9uYmVmb3JldW5sb2FkIG5vdCBj
YWxsZWQgYXQgd2luZG93IGNsb3NlICsgZnJhbWUgb3IgaWZyYW1lIGZvY3VzZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDgxCisKKyAgICAgICAg
QWRkcyBhIGxheW91dCB0ZXN0IGZvciBidWcgMjc0ODEuICBSZXF1aXJlcyBjYWxsaW5nIHNob3Vs
ZENsb3NlIG9uCisgICAgICAgIHRoZSBXZWJWaWV3LCB3aGljaCBpcyBkb25lIHdpdGggYSBuZXcg
bWV0aG9kIG9uIExheW91dFRlc3RDb250cm9sbGVyLgorCisgICAgICAgICogZmFzdC9ldmVudHMv
b25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9yZXNvdXJjZXMvb25iZWZvcmV1bmxvYWQtZm9jdXNl
ZC1pZnJhbWUtZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBw
ZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMC0wMi0xMCAgQ3NhYmEg
T3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJv
bGwgb3V0IHI1NDYyNiwgYmVjYXVzZSBpdCBicm9rZSBHVEsgYW5kIFdpbiBidWlsZC4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vbmJlZm9y
ZXVubG9hZC1mb2N1c2VkLWlmcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorQUxFUlQ6IGJlZm9yZVVubG9hZAor
TmV3IHdpbmRvdyB3aXRoIGJlZm9yZVVubG9hZCBoYW5kbGVyLgorWW91IHNob3VsZCBzZWUgYW4g
YWxlcnQgd2l0aCAiYmVmb3JlVW5sb2FkIiBpZiB5b3UgdHJ5IHRvIGNsb3NlIHRoZSB3aW5kb3cu
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnZm9jdXNlZEZyYW1lJworLS0tLS0tLS0KK1RoaXMgZnJh
bWUgc2hvdWxkIGdldCB0aGUgZm9jdXMuIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
b25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNl
ZC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAorPGh0bWw+Cis8Ym9k
eT4KKyAgICBOZXcgd2luZG93IHdpdGggYmVmb3JlVW5sb2FkIGhhbmRsZXIuPGJyPgorICAgIFlv
dSBzaG91bGQgc2VlIGFuIGFsZXJ0IHdpdGggImJlZm9yZVVubG9hZCIgaWYgeW91IHRyeSB0byBj
bG9zZSB0aGUgd2luZG93Ljxicj4KKyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL29uYmVmb3Jl
dW5sb2FkLWZvY3VzZWQtaWZyYW1lLWZyYW1lLmh0bWwiIGlkPSJmb2N1c2VkRnJhbWUiPjwvaWZy
YW1lPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwor
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAg
ICB9CisKKyAgICAgICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0gYmVmb3JlVW5sb2FkOworICAg
ICAgICBmdW5jdGlvbiBiZWZvcmVVbmxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBhbGVy
dCgiYmVmb3JlVW5sb2FkIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzaW11bGF0
ZUNsb3NlV2luZG93KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIGFuIGF0dGVtcHQg
dG8gY2xvc2UgdGhlIHdpbmRvdworICAgICAgICAgICAgICAgIGlmICghbGF5b3V0VGVzdENvbnRy
b2xsZXIuY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCkpCisgICAgICAgICAgICAgICAgICAgIGFs
ZXJ0KCJTaG91bGQgaGF2ZSBydW4gdGhlIGJlZm9yZVVubG9hZCBoYW5kbGVyLiIpOworICAgICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZy
YW1lLWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVz
b3VyY2VzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLWZyYW1lLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvb25iZWZvcmV1bmxvYWQt
Zm9jdXNlZC1pZnJhbWUtZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAor
PGh0bWw+Cis8Ym9keSBvbmxvYWQ9ImxvYWQoKSI+CisgICAgVGhpcyBmcmFtZSBzaG91bGQgZ2V0
IHRoZSBmb2N1cy4KKyAgICA8aW5wdXQgaWQ9ImJveCI+PC9pbnB1dD4KKyAgICA8c2NyaXB0Pgor
ICAgICAgICBmdW5jdGlvbiBsb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImJveCIpLmZvY3VzKCk7CisgICAgICAgICAgICB3aW5kb3cudG9wLnNp
bXVsYXRlQ2xvc2VXaW5kb3coKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHJldmlzaW9uIDU0NjM0KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTU4
MTQsMyArNTgxNCw2IEBAIGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvCiAKICMgSW1wbGVtZW50IExh
eW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZlBhZ2VzKCkuCiBwcmludGluZy9udW1iZXJPZlBh
Z2VzLmh0bWwKKworIyBJbXBsZW1lbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91bGRD
bG9zZU9uV2ViVmlldygpCitmYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFt
ZS5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDU0NjM0KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTA3Nywz
ICs1MDc3LDYgQEAgZmFzdC9jc3MvZGFzaGJvYXJkLXJlZ2lvbnMtYXR0ci1jcmFzaC5odAogCiAj
IEltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZQYWdlcygpLgogcHJpbnRp
bmcvbnVtYmVyT2ZQYWdlcy5odG1sCisKKyMgSW1wbGVtZW50IExheW91dFRlc3RDb250cm9sbGVy
OjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKQorZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQt
Zm9jdXNlZC1pZnJhbWUuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48574</attachid>
            <date>2010-02-11 09:33:12 -0800</date>
            <delta_ts>2010-02-17 10:20:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-27481-20100211093313.patch</filename>
            <type>text/plain</type>
            <size>14486</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDYzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDItMTAgIENoYXJsaWUgUmVpcyAgPGNyZWlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBv
bmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSArIGZyYW1lIG9yIGlmcmFt
ZSBmb2N1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNzQ4MQorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3Vz
ZWQtaWZyYW1lLmh0bWwKKworICAgICAgICBSZXBsYWNlcyBpbml0aWFsIG1hbnVhbCB0ZXN0cyB3
aXRoIGEgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvb25iZWZvcmV1bmxv
YWQtZm9jdXNlZC1pZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtYW51YWwtdGVzdHMv
cmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisKIDIwMTAtMDItMTAgIFN0
ZXBoYW4gQcOfbXVzICA8c3VwZXJzdGlwcGlAZ214LmRlPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhdmlkIExldmluLgpJbmRleDogV2ViQ29yZS9tYW51YWwtdGVzdHMvb25iZWZvcmV1bmxvYWQt
Zm9jdXNlZC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL21hbnVhbC10ZXN0cy9v
bmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sCShyZXZpc2lvbiA1NDYzNCkKKysrIFdl
YkNvcmUvbWFudWFsLXRlc3RzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMzEgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9X
M0MvL0RURCBIVE1MIDQuMDEvL0VOIgotICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRt
bDQvc3RyaWN0LmR0ZCI+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLTwvaGVhZD4KLTxCT0RZ
IG9uYmVmb3JldW5sb2FkPSJyZXR1cm4gJ29uQmVmb3JlVW5sb2FkSGFuZGxlciByZXR1cm4gc3Ry
aW5nIGlzIGRpc3BsYXllZCBoZXJlLic7Ij4KLTxwPjxiPkJVRyBJRDo8L2I+IDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ4MSI+Mjc0ODE8L2E+IG9u
YmVmb3JldW5sb2FkIG5vdCBjYWxsZWQgYXQgd2luZG93IGNsb3NlICsgZnJhbWUgb3IgaWZyYW1l
IGZvY3VzZWQ8L3A+Ci0KLTxwIGlkPSJ0ZXN0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpza3li
bHVlOyBwYWRkaW5nOjNweDsiPjxiPlNURVBTIFRPIFRFU1Q6PC9iPiAKLTxvbD4KLSAgICA8bGk+
Q2xvc2UgdGhpcyBicm93c2VyIHdpbmRvdyB3aGlsZSB0aGUgaW5uZXIgZnJhbWUgaGFzIGZvY3Vz
LgotPC9vbD4KLTwvcD4KLQotPHAgaWQ9InN1Y2Nlc3MiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9y
OnBhbGVncmVlbjsgcGFkZGluZzozcHg7Ij48Yj5URVNUIFBBU1M6PC9iPiAKLUFmdGVyIHRoZSBj
bG9zZSBidXR0b24gaXMgY2xpY2tlZCwgeW91IHNob3VsZCBzZWUgYSBkaWFsb2cgdGhhdCByZWFk
czo8L3A+Ci08cHJlPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBuYXZpZ2F0ZSBhd2F5IGZyb20g
dGhpcyBwYWdlPwotCi1vbkJlZm9yZVVubG9hZEhhbmRsZXIgcmV0dXJuIHN0cmluZyBpcyBkaXNw
bGF5ZWQgaGVyZS4KLQotUHJlc3MgT0sgdG8gY29udGludWUgb3IgQ2FuY2VsIHRvIHN0YXkgb24g
dGhlIGN1cnJlbnQgcGFnZS48L3ByZT4KLQotPHAgaWQ9ImZhaWx1cmUiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWNvbG9yOiNGRjMzMDA7IHBhZGRpbmc6M3B4OyI+PGI+VEVTVCBGQUlMOjwvYj4gIAotTm8g
ZGlhbG9nIChhcyBkZXNjcmliZWQgYWJvdmUpIHdoZW4gY2xvc2luZyB0aGUgYnJvd3NlciB3aW5k
b3cuCi08L3A+Ci0KLTxCT0RZIG9uYmVmb3JldW5sb2FkPSJyZXR1cm4gJ29uQmVmb3JlVW5sb2Fk
SGFuZGxlciByZXR1cm4gc3RyaW5nIGlzIGRpc3BsYXllZCBoZXJlLic7Ij4KLTxpZnJhbWUgc3Jj
PSJyZXNvdXJjZXMvZm9jdXNlZC1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Ci08cD5DbG9zZSB0aGlz
IGJyb3dzZXIgd2luZG93LjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IFdlYkNvcmUvbWFu
dWFsLXRlc3RzL3Jlc291cmNlcy9mb2N1c2VkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvbWFudWFsLXRlc3RzL3Jlc291cmNlcy9mb2N1c2VkLWlmcmFtZS5odG1sCShyZXZpc2lv
biA1NDYzNCkKKysrIFdlYkNvcmUvbWFudWFsLXRlc3RzL3Jlc291cmNlcy9mb2N1c2VkLWlmcmFt
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAgQEAKLTxodG1sPgotPGJvZHkgb25s
b2FkPSJsb2FkKCkiPgotICAgIFRoaXMgZnJhbWUgc2hvdWxkIGdldCB0aGUgZm9jdXMuCi0gICAg
PGlucHV0IGlkPSJib3giPjwvaW5wdXQ+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgZnVuY3Rpb24g
bG9hZCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJi
b3giKS5mb2N1cygpOwotICAgICAgICB9Ci0gICAgPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA1NDYzNykKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEwLTAyLTEwICBDaGFybGllIFJlaXMgIDxj
cmVpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgb25iZWZvcmV1bmxvYWQgbm90IGNhbGxlZCBhdCB3aW5kb3cgY2xvc2UgKyBm
cmFtZSBvciBpZnJhbWUgZm9jdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mjc0ODEKKworICAgICAgICBBZGRzIGEgY2FsbFNob3VsZENsb3NlT25X
ZWJWaWV3IG1ldGhvZCB0byBMYXlvdXRUZXN0Q29udHJvbGxlciwKKyAgICAgICAgdG8gYWxsb3cg
YXV0b21hdGVkIHRlc3RpbmcgZm9yIGJ1ZyAyNzQ4MS4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKGNhbGxTaG91bGRDbG9zZU9u
V2ViVmlld0NhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNG
dW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxkQ2xvc2VPbldl
YlZpZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxkQ2xvc2VP
bldlYlZpZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91bGRDbG9z
ZU9uV2ViVmlldyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250
cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxk
Q2xvc2VPbldlYlZpZXcpOgorCiAyMDEwLTAyLTEwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cAkocmV2aXNpb24gNTQ2MzQpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw2ICsyODAsMTQgQEAgc3Rh
dGljIEpTVmFsdWVSZWYgYWRkRGlzYWxsb3dlZFVSTENhbGxiYQogICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgY2FsbFNob3Vs
ZENsb3NlT25XZWJWaWV3Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorewor
ICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCisgICAgTGF5b3V0VGVzdENv
bnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+
KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1h
a2VCb29sZWFuKGNvbnRleHQsIGNvbnRyb2xsZXItPmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygp
KTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgY2xlYXJBbGxEYXRhYmFzZXNDYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1td
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyAmIHdpbmRvd3MgaW1w
bGVtZW50YXRpb24KQEAgLTEzMTYsNiArMTMyNCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91
dFRlc3RDb250cm9sbGVyOjoKICAgICAgICAgeyAiYWRkRGlzYWxsb3dlZFVSTCIsIGFkZERpc2Fs
bG93ZWRVUkxDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJhZGRVc2VyU2NyaXB0IiwgYWRk
VXNlclNjcmlwdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImFkZFVzZXJTdHlsZVNoZWV0
IiwgYWRkVXNlclN0eWxlU2hlZXRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJjYWxsU2hv
dWxkQ2xvc2VPbldlYlZpZXciLCBjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXdDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJjbGVhckFsbERhdGFiYXNlcyIsIGNsZWFyQWxsRGF0YWJhc2VzQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY2xlYXJCYWNrRm9yd2FyZExpc3QiLCBjbGVhckJh
Y2tGb3J3YXJkTGlzdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNsZWFyUGVyc2lzdGVu
dFVzZXJTdHlsZVNoZWV0IiwgY2xlYXJQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LApJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiA1NDYzNCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2
LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB2b2lkIGNs
ZWFyQmFja0ZvcndhcmRMaXN0KCk7CiAgICAgdm9pZCBjbGVhclBlcnNpc3RlbnRVc2VyU3R5bGVT
aGVldCgpOworICAgIGJvb2wgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCk7CiAgICAgSlNTdHJp
bmdSZWYgY29weURlY29kZWRIb3N0TmFtZShKU1N0cmluZ1JlZiBuYW1lKTsKICAgICBKU1N0cmlu
Z1JlZiBjb3B5RW5jb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5hbWUpOwogICAgIHZvaWQgZGlz
YWJsZUltYWdlTG9hZGluZygpOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCShyZXZpc2lvbiA1
NDYzNCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4MSwzICs1ODEsOSBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpyZW1vdmVBbGxWaXNpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzLgogfQorCitib29sIExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxkQ2xvc2VP
bldlYlZpZXcoKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIHRlc3RpbmcgZml4IGZv
ciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0ODEKKyAgICByZXR1
cm4gZmFsc2U7Cit9CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0
VGVzdENvbnRyb2xsZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCShyZXZpc2lvbiA1NDYzNCkKKysr
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSwxMSBAQCB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjphZGREaXNhbGxvd2VkCiAgICAgQ0ZTZXRBZGRWYWx1ZShkaXNhbGxvd2VkVVJMcywg
W3JlcXVlc3QgVVJMXSk7CiB9CiAKK2Jvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91
bGRDbG9zZU9uV2ViVmlldygpCit7CisgICAgcmV0dXJuIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNo
b3VsZENsb3NlXTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBbGxEYXRh
YmFzZXMoKQogewogICAgIFtbV2ViRGF0YWJhc2VNYW5hZ2VyIHNoYXJlZFdlYkRhdGFiYXNlTWFu
YWdlcl0gZGVsZXRlQWxsRGF0YWJhc2VzXTsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCShyZXZpc2lv
biA1NDYzNCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250
cm9sbGVyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjYsMyArNDY2LDEwIEBAIGludCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6cGFnZU51bWJlckZvckUKIAogICAgIHJldHVybiBxdF9kcnRfcGFn
ZU51bWJlckZvckVsZW1lbnRCeUlkKG1fZHJ0LT53ZWJQYWdlKCktPm1haW5GcmFtZSgpLCBpZCwg
d2lkdGgsIGhlaWdodCk7CiB9CisKK2Jvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91
bGRDbG9zZU9uV2ViVmlldygpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgdGVzdGlu
ZyBmaXggZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ4MQor
ICAgIHJldHVybiBmYWxzZTsKK30KKwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAkocmV2aXNpb24gNTQ2MzQp
CisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw2ICsxNDksNyBAQCBwdWJsaWMgc2xvdHM6CiAgICAg
dm9pZCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlk
ZGVuLCBjb25zdCBRU3RyaW5nJiBzY2hlbWUpOwogICAgIGludCB3b3JrZXJUaHJlYWRDb3VudCgp
OwogICAgIGludCBwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoY29uc3QgUVN0cmluZyYgaWQsIGZs
b2F0IHdpZHRoID0gMCwgZmxvYXQgaGVpZ2h0ID0gMCk7CisgICAgYm9vbCBjYWxsU2hvdWxkQ2xv
c2VPbldlYlZpZXcoKTsKIAogcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIHByb2Nlc3NXb3JrKCk7
CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xs
ZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9M
YXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9uIDU0NjM0KQorKysgV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTEwLDYgKzExMCwyMSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpj
bGVhckJhY2tGb3J3CiAgICAgYmFja0ZvcndhcmRMaXN0LT5nb1RvSXRlbShpdGVtLmdldCgpKTsK
IH0KIAorYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3
KCkKK3sKKyAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7CisgICAgaWYgKEZBSUxFRChmcmFt
ZS0+d2ViVmlldygmd2ViVmlldykpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDT01Q
dHI8SVdlYlZpZXdQcml2YXRlPiB2aWV3UHJpdmF0ZTsKKyAgICBpZiAoRkFJTEVEKHdlYlZpZXct
PlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3UHJpdmF0ZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBCT09MIHJlc3VsdDsKKyAgICB2aWV3UHJpdmF0ZS0+c2hvdWxkQ2xvc2UoJnJlc3VsdCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogSlNTdHJpbmdSZWYgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmNvcHlEZWNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFtZSkKIHsKICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ2MzcpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wMi0xMCAgQ2hh
cmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIG9uYmVmb3JldW5sb2FkIG5vdCBjYWxsZWQgYXQgd2lu
ZG93IGNsb3NlICsgZnJhbWUgb3IgaWZyYW1lIGZvY3VzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDgxCisKKyAgICAgICAgQWRkcyBhIGxheW91
dCB0ZXN0IGZvciBidWcgMjc0ODEuICBSZXF1aXJlcyBjYWxsaW5nIHNob3VsZENsb3NlIG9uCisg
ICAgICAgIHRoZSBXZWJWaWV3LCB3aGljaCBpcyBkb25lIHdpdGggYSBuZXcgbWV0aG9kIG9uIExh
eW91dFRlc3RDb250cm9sbGVyLgorCisgICAgICAgICogZmFzdC9ldmVudHMvb25iZWZvcmV1bmxv
YWQtZm9jdXNlZC1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy9yZXNvdXJjZXMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUtZnJh
bWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMC0wMi0xMCAgQ3NhYmEgT3N6dHJvZ29uw6Fj
ICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJvbGwgb3V0IHI1NDYy
NiwgYmVjYXVzZSBpdCBicm9rZSBHVEsgYW5kIFdpbiBidWlsZC4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1
c2VkLWlmcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsOSBAQAorQUxFUlQ6IGJlZm9yZVVubG9hZAorTmV3IHdpbmRvdyB3
aXRoIGJlZm9yZVVubG9hZCBoYW5kbGVyLgorWW91IHNob3VsZCBzZWUgYW4gYWxlcnQgd2l0aCAi
YmVmb3JlVW5sb2FkIiBpZiB5b3UgdHJ5IHRvIGNsb3NlIHRoZSB3aW5kb3cuCisKKworLS0tLS0t
LS0KK0ZyYW1lOiAnZm9jdXNlZEZyYW1lJworLS0tLS0tLS0KK1RoaXMgZnJhbWUgc2hvdWxkIGdl
dCB0aGUgZm9jdXMuIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb25iZWZvcmV1bmxv
YWQtZm9jdXNlZC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAorPGh0bWw+Cis8Ym9keT4KKyAgICBOZXcg
d2luZG93IHdpdGggYmVmb3JlVW5sb2FkIGhhbmRsZXIuPGJyPgorICAgIFlvdSBzaG91bGQgc2Vl
IGFuIGFsZXJ0IHdpdGggImJlZm9yZVVubG9hZCIgaWYgeW91IHRyeSB0byBjbG9zZSB0aGUgd2lu
ZG93Ljxicj4KKyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL29uYmVmb3JldW5sb2FkLWZvY3Vz
ZWQtaWZyYW1lLWZyYW1lLmh0bWwiIGlkPSJmb2N1c2VkRnJhbWUiPjwvaWZyYW1lPgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAg
ICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0gYmVmb3JlVW5sb2FkOworICAgICAgICBmdW5jdGlv
biBiZWZvcmVVbmxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBhbGVydCgiYmVmb3JlVW5s
b2FkIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzaW11bGF0ZUNsb3NlV2luZG93
KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIGFuIGF0dGVtcHQgdG8gY2xvc2UgdGhl
IHdpbmRvdworICAgICAgICAgICAgICAgIGlmICghbGF5b3V0VGVzdENvbnRyb2xsZXIuY2FsbFNo
b3VsZENsb3NlT25XZWJWaWV3KCkpCisgICAgICAgICAgICAgICAgICAgIGFsZXJ0KCJTaG91bGQg
aGF2ZSBydW4gdGhlIGJlZm9yZVVubG9hZCBoYW5kbGVyLiIpOworICAgICAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvcmVzb3VyY2VzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL29uYmVm
b3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJh
bWUtZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8Ym9k
eSBvbmxvYWQ9ImxvYWQoKSI+CisgICAgVGhpcyBmcmFtZSBzaG91bGQgZ2V0IHRoZSBmb2N1cy4K
KyAgICA8aW5wdXQgaWQ9ImJveCI+PC9pbnB1dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5j
dGlvbiBsb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImJveCIpLmZvY3VzKCk7CisgICAgICAgICAgICB3aW5kb3cudG9wLnNpbXVsYXRlQ2xvc2VX
aW5kb3coKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHJldmlzaW9uIDU0NjM0KQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTU4MTQsMyArNTgxNCw2
IEBAIGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvCiAKICMgSW1wbGVtZW50IExheW91dFRlc3RDb250
cm9sbGVyOjpudW1iZXJPZlBhZ2VzKCkuCiBwcmludGluZy9udW1iZXJPZlBhZ2VzLmh0bWwKKwor
IyBJbXBsZW1lbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmll
dygpCitmYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDU0NjM0KQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTA3NywzICs1MDc3LDYgQEAg
ZmFzdC9jc3MvZGFzaGJvYXJkLXJlZ2lvbnMtYXR0ci1jcmFzaC5odAogCiAjIEltcGxlbWVudCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZQYWdlcygpLgogcHJpbnRpbmcvbnVtYmVyT2ZQ
YWdlcy5odG1sCisKKyMgSW1wbGVtZW50IExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxk
Q2xvc2VPbldlYlZpZXcoKQorZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJh
bWUuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48906</attachid>
            <date>2010-02-17 10:20:40 -0800</date>
            <delta_ts>2010-02-17 11:56:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-27481-20100217102039.patch</filename>
            <type>text/plain</type>
            <size>14861</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDg5OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDItMTAgIENoYXJsaWUgUmVpcyAgPGNyZWlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBv
bmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSArIGZyYW1lIG9yIGlmcmFt
ZSBmb2N1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNzQ4MQorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3Vz
ZWQtaWZyYW1lLmh0bWwKKworICAgICAgICBSZXBsYWNlcyBpbml0aWFsIG1hbnVhbCB0ZXN0cyB3
aXRoIGEgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvb25iZWZvcmV1bmxv
YWQtZm9jdXNlZC1pZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtYW51YWwtdGVzdHMv
cmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisKIDIwMTAtMDItMTcgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KSW5kZXg6IFdlYkNvcmUvbWFudWFsLXRlc3Rz
L29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9tYW51YWwtdGVzdHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUuaHRtbAkocmV2aXNp
b24gNTQ4OTkpCisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9vbmJlZm9yZXVubG9hZC1mb2N1c2Vk
LWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMxICswLDAgQEAKLTwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIKLSAgICAgICAgImh0dHA6Ly93
d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+
Ci08L2hlYWQ+Ci08Qk9EWSBvbmJlZm9yZXVubG9hZD0icmV0dXJuICdvbkJlZm9yZVVubG9hZEhh
bmRsZXIgcmV0dXJuIHN0cmluZyBpcyBkaXNwbGF5ZWQgaGVyZS4nOyI+Ci08cD48Yj5CVUcgSUQ6
PC9iPiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0
ODEiPjI3NDgxPC9hPiBvbmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSAr
IGZyYW1lIG9yIGlmcmFtZSBmb2N1c2VkPC9wPgotCi08cCBpZD0idGVzdCIgc3R5bGU9ImJhY2tn
cm91bmQtY29sb3I6c2t5Ymx1ZTsgcGFkZGluZzozcHg7Ij48Yj5TVEVQUyBUTyBURVNUOjwvYj4g
Ci08b2w+Ci0gICAgPGxpPkNsb3NlIHRoaXMgYnJvd3NlciB3aW5kb3cgd2hpbGUgdGhlIGlubmVy
IGZyYW1lIGhhcyBmb2N1cy4KLTwvb2w+Ci08L3A+Ci0KLTxwIGlkPSJzdWNjZXNzIiBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjpwYWxlZ3JlZW47IHBhZGRpbmc6M3B4OyI+PGI+VEVTVCBQQVNTOjwv
Yj4gCi1BZnRlciB0aGUgY2xvc2UgYnV0dG9uIGlzIGNsaWNrZWQsIHlvdSBzaG91bGQgc2VlIGEg
ZGlhbG9nIHRoYXQgcmVhZHM6PC9wPgotPHByZT5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gbmF2
aWdhdGUgYXdheSBmcm9tIHRoaXMgcGFnZT8KLQotb25CZWZvcmVVbmxvYWRIYW5kbGVyIHJldHVy
biBzdHJpbmcgaXMgZGlzcGxheWVkIGhlcmUuCi0KLVByZXNzIE9LIHRvIGNvbnRpbnVlIG9yIENh
bmNlbCB0byBzdGF5IG9uIHRoZSBjdXJyZW50IHBhZ2UuPC9wcmU+Ci0KLTxwIGlkPSJmYWlsdXJl
IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojRkYzMzAwOyBwYWRkaW5nOjNweDsiPjxiPlRFU1Qg
RkFJTDo8L2I+ICAKLU5vIGRpYWxvZyAoYXMgZGVzY3JpYmVkIGFib3ZlKSB3aGVuIGNsb3Npbmcg
dGhlIGJyb3dzZXIgd2luZG93LgotPC9wPgotCi08Qk9EWSBvbmJlZm9yZXVubG9hZD0icmV0dXJu
ICdvbkJlZm9yZVVubG9hZEhhbmRsZXIgcmV0dXJuIHN0cmluZyBpcyBkaXNwbGF5ZWQgaGVyZS4n
OyI+Ci08aWZyYW1lIHNyYz0icmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWwiPjwvaWZyYW1l
PgotPHA+Q2xvc2UgdGhpcyBicm93c2VyIHdpbmRvdy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9yZXNvdXJjZXMvZm9jdXNlZC1pZnJhbWUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL21hbnVhbC10ZXN0cy9yZXNvdXJjZXMvZm9jdXNlZC1pZnJh
bWUuaHRtbAkocmV2aXNpb24gNTQ4OTkpCisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9yZXNvdXJj
ZXMvZm9jdXNlZC1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08
aHRtbD4KLTxib2R5IG9ubG9hZD0ibG9hZCgpIj4KLSAgICBUaGlzIGZyYW1lIHNob3VsZCBnZXQg
dGhlIGZvY3VzLgotICAgIDxpbnB1dCBpZD0iYm94Ij48L2lucHV0PgotICAgIDxzY3JpcHQ+Ci0g
ICAgICAgIGZ1bmN0aW9uIGxvYWQoKQotICAgICAgICB7Ci0gICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYm94IikuZm9jdXMoKTsKLSAgICAgICAgfQotICAgIDwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ4OTkpCisrKyBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wMi0xMCAg
Q2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIG9uYmVmb3JldW5sb2FkIG5vdCBjYWxsZWQgYXQg
d2luZG93IGNsb3NlICsgZnJhbWUgb3IgaWZyYW1lIGZvY3VzZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDgxCisKKyAgICAgICAgQWRkcyBhIGNh
bGxTaG91bGRDbG9zZU9uV2ViVmlldyBtZXRob2QgdG8gTGF5b3V0VGVzdENvbnRyb2xsZXIsCisg
ICAgICAgIHRvIGFsbG93IGF1dG9tYXRlZCB0ZXN0aW5nIGZvciBidWcgMjc0ODEuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChj
YWxsU2hvdWxkQ2xvc2VPbldlYlZpZXdDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRU
ZXN0Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2Fs
bFNob3VsZENsb3NlT25XZWJWaWV3KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5
b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4v
TGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldyk6CisKIDIwMTAtMDItMTcgIEp1bGllbiBDaGFm
ZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQXJp
eWEgSGlkYXlhdC4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDU0ODk5KQorKysgV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yODAsNiArMjgwLDE0IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGFkZERpc2FsbG93ZWRVUkxDYWxs
YmEKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRp
YyBKU1ZhbHVlUmVmIGNhbGxTaG91bGRDbG9zZU9uV2ViVmlld0NhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRh
dGlvbgorICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8
TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwor
CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCBjb250cm9sbGVyLT5jYWxs
U2hvdWxkQ2xvc2VPbldlYlZpZXcoKSk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIGNsZWFyQWxs
RGF0YWJhc2VzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0
aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3Qg
SlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8v
IEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCkBAIC0xMzQwLDYgKzEzNDgsNyBAQCBK
U1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6CiAgICAgICAgIHsgImFkZERp
c2FsbG93ZWRVUkwiLCBhZGREaXNhbGxvd2VkVVJMQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAiYWRkVXNlclNjcmlwdCIsIGFkZFVzZXJTY3JpcHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJhZGRVc2VyU3R5bGVTaGVldCIsIGFkZFVzZXJTdHlsZVNoZWV0Q2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKKyAgICAgICAgeyAiY2FsbFNob3VsZENsb3NlT25XZWJWaWV3IiwgY2FsbFNob3VsZENsb3Nl
T25XZWJWaWV3Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY2xlYXJBbGxEYXRhYmFzZXMi
LCBjbGVhckFsbERhdGFiYXNlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNsZWFyQmFj
a0ZvcndhcmRMaXN0IiwgY2xlYXJCYWNrRm9yd2FyZExpc3RDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJjbGVhclBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldCIsIGNsZWFyUGVyc2lzdGVudFVz
ZXJTdHlsZVNoZWV0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24gNTQ4OTkpCisr
KyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQWxsRGF0
YWJhc2VzKCk7CiAgICAgdm9pZCBjbGVhckJhY2tGb3J3YXJkTGlzdCgpOwogICAgIHZvaWQgY2xl
YXJQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXQoKTsKKyAgICBib29sIGNhbGxTaG91bGRDbG9zZU9u
V2ViVmlldygpOwogICAgIEpTU3RyaW5nUmVmIGNvcHlEZWNvZGVkSG9zdE5hbWUoSlNTdHJpbmdS
ZWYgbmFtZSk7CiAgICAgSlNTdHJpbmdSZWYgY29weUVuY29kZWRIb3N0TmFtZShKU1N0cmluZ1Jl
ZiBuYW1lKTsKICAgICB2b2lkIGRpc2FibGVJbWFnZUxvYWRpbmcoKTsKSW5kZXg6IFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9s
bGVyR3RrLmNwcAkocmV2aXNpb24gNTQ4OTkpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OTUs
MyArNTk1LDkgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlQWxsVmlzaQogewog
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KIH0KKworYm9vbCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IGZvciB0ZXN0aW5nIGZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI3NDgxCisgICAgcmV0dXJuIGZhbHNlOworfQpJbmRleDogV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5t
bQkocmV2aXNpb24gNTQ4OTkpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5
b3V0VGVzdENvbnRyb2xsZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsxMTUsMTEg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkRGlzYWxsb3dlZAogICAgIENGU2V0QWRk
VmFsdWUoZGlzYWxsb3dlZFVSTHMsIFtyZXF1ZXN0IFVSTF0pOwogfQogCitib29sIExheW91dFRl
c3RDb250cm9sbGVyOjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKQoreworICAgIHJldHVybiBb
W21haW5GcmFtZSB3ZWJWaWV3XSBzaG91bGRDbG9zZV07Cit9CisKIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmNsZWFyQWxsRGF0YWJhc2VzKCkKIHsKICAgICBbW1dlYkRhdGFiYXNlTWFuYWdl
ciBzaGFyZWRXZWJEYXRhYmFzZU1hbmFnZXJdIGRlbGV0ZUFsbERhdGFiYXNlc107CkluZGV4OiBX
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0LmNwcAkocmV2aXNpb24gNTQ4OTkpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDk0
LDMgKzQ5NCwxMCBAQCBpbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VOdW1iZXJGb3JFCiAK
ICAgICByZXR1cm4gcXRfZHJ0X3BhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChtX2RydC0+d2ViUGFn
ZSgpLT5tYWluRnJhbWUoKSwgaWQsIHdpZHRoLCBoZWlnaHQpOwogfQorCitib29sIExheW91dFRl
c3RDb250cm9sbGVyOjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKQoreworICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgZm9yIHRlc3RpbmcgZml4IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mjc0ODEKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKSW5kZXg6IFdlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxl
clF0LmgJKHJldmlzaW9uIDU0ODk5KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsNiArMTUzLDcg
QEAgcHVibGljIHNsb3RzOgogICAgIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZv
clVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKICAgICBp
bnQgd29ya2VyVGhyZWFkQ291bnQoKTsKICAgICBpbnQgcGFnZU51bWJlckZvckVsZW1lbnRCeUlk
KGNvbnN0IFFTdHJpbmcmIGlkLCBmbG9hdCB3aWR0aCA9IDAsIGZsb2F0IGhlaWdodCA9IDApOwor
ICAgIGJvb2wgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCk7CiAKIHByaXZhdGUgc2xvdHM6CiAg
ICAgdm9pZCBwcm9jZXNzV29yaygpOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCShyZXZpc2lv
biA1NDg5OSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29u
dHJvbGxlcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMCw2ICsxMTAsMjEgQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJCYWNrRm9ydwogICAgIGJhY2tGb3J3YXJkTGlzdC0+
Z29Ub0l0ZW0oaXRlbS5nZXQoKSk7CiB9CiAKK2Jvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNh
bGxTaG91bGRDbG9zZU9uV2ViVmlldygpCit7CisgICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3
OworICAgIGlmIChGQUlMRUQoZnJhbWUtPndlYlZpZXcoJndlYlZpZXcpKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgQ09NUHRyPElXZWJWaWV3UHJpdmF0ZT4gdmlld1ByaXZhdGU7Cisg
ICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5RdWVyeUludGVyZmFjZSgmdmlld1ByaXZhdGUpKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQk9PTCByZXN1bHQ7CisgICAgdmlld1ByaXZhdGUt
PnNob3VsZENsb3NlKCZyZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIEpTU3RyaW5n
UmVmIExheW91dFRlc3RDb250cm9sbGVyOjpjb3B5RGVjb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVm
IG5hbWUpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCEKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0
ODk5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTAtMDItMTAgIENoYXJsaWUgUmVpcyAgPGNyZWlzQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBvbmJlZm9yZXVu
bG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSArIGZyYW1lIG9yIGlmcmFtZSBmb2N1c2Vk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ4MQor
CisgICAgICAgIEFkZHMgYSBsYXlvdXQgdGVzdCBmb3IgYnVnIDI3NDgxLiAgUmVxdWlyZXMgY2Fs
bGluZyBzaG91bGRDbG9zZSBvbgorICAgICAgICB0aGUgV2ViVmlldywgd2hpY2ggaXMgZG9uZSB3
aXRoIGEgbmV3IG1ldGhvZCBvbiBMYXlvdXRUZXN0Q29udHJvbGxlci4KKworICAgICAgICAqIGZh
c3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcmVzb3VyY2VzL29uYmVmb3JldW5s
b2FkLWZvY3VzZWQtaWZyYW1lLWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisKIDIwMTAtMDIt
MTcgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAg
Tm90IHJldmlld2VkLiBUcnkgdG8gdHVybiB3aW5kb3dzIHNsYXZlcyBhZ2FpbiwgYnkgc2tpcHBp
bmcgdHdvIHdlYnNvY2tldCB0ZXN0cyB0aGF0IGZhaWwgcmVsaWFibGUuCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQt
Zm9jdXNlZC1pZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkgQEAKK0FMRVJUOiBiZWZvcmVVbmxvYWQKK05ldyB3aW5k
b3cgd2l0aCBiZWZvcmVVbmxvYWQgaGFuZGxlci4KK1lvdSBzaG91bGQgc2VlIGFuIGFsZXJ0IHdp
dGggImJlZm9yZVVubG9hZCIgaWYgeW91IHRyeSB0byBjbG9zZSB0aGUgd2luZG93LgorCisKKy0t
LS0tLS0tCitGcmFtZTogJ2ZvY3VzZWRGcmFtZScKKy0tLS0tLS0tCitUaGlzIGZyYW1lIHNob3Vs
ZCBnZXQgdGhlIGZvY3VzLiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29uYmVmb3Jl
dW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1l
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKzxodG1sPgorPGJvZHk+CisgICAg
TmV3IHdpbmRvdyB3aXRoIGJlZm9yZVVubG9hZCBoYW5kbGVyLjxicj4KKyAgICBZb3Ugc2hvdWxk
IHNlZSBhbiBhbGVydCB3aXRoICJiZWZvcmVVbmxvYWQiIGlmIHlvdSB0cnkgdG8gY2xvc2UgdGhl
IHdpbmRvdy48YnI+CisgICAgPGlmcmFtZSBzcmM9InJlc291cmNlcy9vbmJlZm9yZXVubG9hZC1m
b2N1c2VkLWlmcmFtZS1mcmFtZS5odG1sIiBpZD0iZm9jdXNlZEZyYW1lIj48L2lmcmFtZT4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9IGJlZm9yZVVubG9hZDsKKyAgICAgICAgZnVu
Y3Rpb24gYmVmb3JlVW5sb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAgYWxlcnQoImJlZm9y
ZVVubG9hZCIpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2ltdWxhdGVDbG9zZVdp
bmRvdygpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgICAgICAgICAgICAvLyBTaW11bGF0ZSBhbiBhdHRlbXB0IHRvIGNsb3Nl
IHRoZSB3aW5kb3cKKyAgICAgICAgICAgICAgICBpZiAoIWxheW91dFRlc3RDb250cm9sbGVyLmNh
bGxTaG91bGRDbG9zZU9uV2ViVmlldygpKQorICAgICAgICAgICAgICAgICAgICBhbGVydCgiU2hv
dWxkIGhhdmUgcnVuIHRoZSBiZWZvcmVVbmxvYWQgaGFuZGxlci4iKTsKKyAgICAgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS1mcmFt
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9v
bmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS1mcmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQt
aWZyYW1lLWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1sPgor
PGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIFRoaXMgZnJhbWUgc2hvdWxkIGdldCB0aGUgZm9j
dXMuCisgICAgPGlucHV0IGlkPSJib3giPjwvaW5wdXQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
ZnVuY3Rpb24gbG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJib3giKS5mb2N1cygpOworICAgICAgICAgICAgd2luZG93LnRvcC5zaW11bGF0ZUNs
b3NlV2luZG93KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiA1NDg5OSkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC01ODU0LDYgKzU4
NTQsOSBAQCBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nLwogIyBJbXBsZW1lbnQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6Om51bWJlck9mUGFnZXMoKS4KIHByaW50aW5nL251bWJlck9mUGFnZXMuaHRtbAog
CisjIEltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFNob3VsZENsb3NlT25XZWJW
aWV3KCkKK2Zhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwKKwog
IyBOZXcgdGVzdCB0aGF0IHJlcG9ydHMgd3JvbmcgdmFsdWVzCiAjIFNlZSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ5MTgKIGZhc3QvdGV4dC9nbHlwaC1yZW9yZGVy
aW5nLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkocmV2aXNpb24gNTQ4OTkpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC01MDYz
LDYgKzUwNjMsOSBAQCBmYXN0L2Nzcy9kYXNoYm9hcmQtcmVnaW9ucy1hdHRyLWNyYXNoLmh0CiAj
IEltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZQYWdlcygpLgogcHJpbnRp
bmcvbnVtYmVyT2ZQYWdlcy5odG1sCiAKKyMgSW1wbGVtZW50IExheW91dFRlc3RDb250cm9sbGVy
OjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKQorZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQt
Zm9jdXNlZC1pZnJhbWUuaHRtbAorCiAjIFtRdF0gcGVybCB3ZWJzb2NrZXQgdGVzdChzKSB0aW1l
IG91dAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4ODIKIHdl
YnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS5wbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48919</attachid>
            <date>2010-02-17 11:56:23 -0800</date>
            <delta_ts>2010-02-18 13:42:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-27481-20100217115622.patch</filename>
            <type>text/plain</type>
            <size>14797</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDkwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDItMTAgIENoYXJsaWUgUmVpcyAgPGNyZWlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBv
bmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSArIGZyYW1lIG9yIGlmcmFt
ZSBmb2N1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNzQ4MQorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3Vz
ZWQtaWZyYW1lLmh0bWwKKworICAgICAgICBSZXBsYWNlcyBpbml0aWFsIG1hbnVhbCB0ZXN0cyB3
aXRoIGEgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvb25iZWZvcmV1bmxv
YWQtZm9jdXNlZC1pZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtYW51YWwtdGVzdHMv
cmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisKIDIwMTAtMDItMTcgIEFs
b2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQXJpeWEgSGlkYXlhdC4KSW5kZXg6IFdlYkNvcmUvbWFudWFsLXRlc3RzL29uYmVmb3JldW5s
b2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVz
dHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUuaHRtbAkocmV2aXNpb24gNTQ5MDQpCisr
KyBXZWJDb3JlL21hbnVhbC10ZXN0cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMxICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIKLSAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RS
L2h0bWw0L3N0cmljdC5kdGQiPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+Ci08L2hlYWQ+Ci08
Qk9EWSBvbmJlZm9yZXVubG9hZD0icmV0dXJuICdvbkJlZm9yZVVubG9hZEhhbmRsZXIgcmV0dXJu
IHN0cmluZyBpcyBkaXNwbGF5ZWQgaGVyZS4nOyI+Ci08cD48Yj5CVUcgSUQ6PC9iPiA8YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0ODEiPjI3NDgxPC9h
PiBvbmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSArIGZyYW1lIG9yIGlm
cmFtZSBmb2N1c2VkPC9wPgotCi08cCBpZD0idGVzdCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6
c2t5Ymx1ZTsgcGFkZGluZzozcHg7Ij48Yj5TVEVQUyBUTyBURVNUOjwvYj4gCi08b2w+Ci0gICAg
PGxpPkNsb3NlIHRoaXMgYnJvd3NlciB3aW5kb3cgd2hpbGUgdGhlIGlubmVyIGZyYW1lIGhhcyBm
b2N1cy4KLTwvb2w+Ci08L3A+Ci0KLTxwIGlkPSJzdWNjZXNzIiBzdHlsZT0iYmFja2dyb3VuZC1j
b2xvcjpwYWxlZ3JlZW47IHBhZGRpbmc6M3B4OyI+PGI+VEVTVCBQQVNTOjwvYj4gCi1BZnRlciB0
aGUgY2xvc2UgYnV0dG9uIGlzIGNsaWNrZWQsIHlvdSBzaG91bGQgc2VlIGEgZGlhbG9nIHRoYXQg
cmVhZHM6PC9wPgotPHByZT5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gbmF2aWdhdGUgYXdheSBm
cm9tIHRoaXMgcGFnZT8KLQotb25CZWZvcmVVbmxvYWRIYW5kbGVyIHJldHVybiBzdHJpbmcgaXMg
ZGlzcGxheWVkIGhlcmUuCi0KLVByZXNzIE9LIHRvIGNvbnRpbnVlIG9yIENhbmNlbCB0byBzdGF5
IG9uIHRoZSBjdXJyZW50IHBhZ2UuPC9wcmU+Ci0KLTxwIGlkPSJmYWlsdXJlIiBzdHlsZT0iYmFj
a2dyb3VuZC1jb2xvcjojRkYzMzAwOyBwYWRkaW5nOjNweDsiPjxiPlRFU1QgRkFJTDo8L2I+ICAK
LU5vIGRpYWxvZyAoYXMgZGVzY3JpYmVkIGFib3ZlKSB3aGVuIGNsb3NpbmcgdGhlIGJyb3dzZXIg
d2luZG93LgotPC9wPgotCi08Qk9EWSBvbmJlZm9yZXVubG9hZD0icmV0dXJuICdvbkJlZm9yZVVu
bG9hZEhhbmRsZXIgcmV0dXJuIHN0cmluZyBpcyBkaXNwbGF5ZWQgaGVyZS4nOyI+Ci08aWZyYW1l
IHNyYz0icmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgotPHA+Q2xvc2Ug
dGhpcyBicm93c2VyIHdpbmRvdy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBXZWJDb3Jl
L21hbnVhbC10ZXN0cy9yZXNvdXJjZXMvZm9jdXNlZC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL21hbnVhbC10ZXN0cy9yZXNvdXJjZXMvZm9jdXNlZC1pZnJhbWUuaHRtbAkocmV2
aXNpb24gNTQ5MDQpCisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9yZXNvdXJjZXMvZm9jdXNlZC1p
ZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08aHRtbD4KLTxib2R5
IG9ubG9hZD0ibG9hZCgpIj4KLSAgICBUaGlzIGZyYW1lIHNob3VsZCBnZXQgdGhlIGZvY3VzLgot
ICAgIDxpbnB1dCBpZD0iYm94Ij48L2lucHV0PgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIGZ1bmN0
aW9uIGxvYWQoKQotICAgICAgICB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYm94IikuZm9jdXMoKTsKLSAgICAgICAgfQotICAgIDwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRv
b2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ5MDQpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wMi0xMCAgQ2hhcmxpZSBSZWlz
ICA8Y3JlaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIG9uYmVmb3JldW5sb2FkIG5vdCBjYWxsZWQgYXQgd2luZG93IGNsb3Nl
ICsgZnJhbWUgb3IgaWZyYW1lIGZvY3VzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI3NDgxCisKKyAgICAgICAgQWRkcyBhIGNhbGxTaG91bGRDbG9z
ZU9uV2ViVmlldyBtZXRob2QgdG8gTGF5b3V0VGVzdENvbnRyb2xsZXIsCisgICAgICAgIHRvIGFs
bG93IGF1dG9tYXRlZCB0ZXN0aW5nIGZvciBidWcgMjc0ODEuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChjYWxsU2hvdWxkQ2xv
c2VPbldlYlZpZXdDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3Rh
dGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxl
ckd0ay5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFNob3VsZENsb3Nl
T25XZWJWaWV3KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRy
b2xsZXJNYWMubW06CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFNob3VsZENs
b3NlT25XZWJWaWV3KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxk
Q2xvc2VPbldlYlZpZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENv
bnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91
bGRDbG9zZU9uV2ViVmlldyk6CisKIDIwMTAtMDItMTcgIERpZWdvIEdvbnphbGV6ICA8ZGllZ28u
Z29uemFsZXpAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBcml5YSBIaWRh
eWF0LgpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNTQ5MDQpCisrKyBXZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw2
ICsyODAsMTQgQEAgc3RhdGljIEpTVmFsdWVSZWYgYWRkRGlzYWxsb3dlZFVSTENhbGxiYQogICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorc3RhdGljIEpTVmFs
dWVSZWYgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3Qg
YXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKQoreworICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCisg
ICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRU
ZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisKKyAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIGNvbnRyb2xsZXItPmNhbGxTaG91bGRD
bG9zZU9uV2ViVmlldygpKTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgY2xlYXJBbGxEYXRhYmFz
ZXNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1h
YyAmIHdpbmRvd3MgaW1wbGVtZW50YXRpb24KQEAgLTEzNDAsNiArMTM0OCw3IEBAIEpTU3RhdGlj
RnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjoKICAgICAgICAgeyAiYWRkRGlzYWxsb3dl
ZFVSTCIsIGFkZERpc2FsbG93ZWRVUkxDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJhZGRV
c2VyU2NyaXB0IiwgYWRkVXNlclNjcmlwdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImFk
ZFVzZXJTdHlsZVNoZWV0IiwgYWRkVXNlclN0eWxlU2hlZXRDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAg
ICAgICB7ICJjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXciLCBjYWxsU2hvdWxkQ2xvc2VPbldlYlZp
ZXdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJjbGVhckFsbERhdGFiYXNlcyIsIGNsZWFy
QWxsRGF0YWJhc2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY2xlYXJCYWNrRm9yd2Fy
ZExpc3QiLCBjbGVhckJhY2tGb3J3YXJkTGlzdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
ImNsZWFyUGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0IiwgY2xlYXJQZXJzaXN0ZW50VXNlclN0eWxl
U2hlZXRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiA1NDkwNCkKKysrIFdlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJBbGxEYXRhYmFzZXMo
KTsKICAgICB2b2lkIGNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CiAgICAgdm9pZCBjbGVhclBlcnNp
c3RlbnRVc2VyU3R5bGVTaGVldCgpOworICAgIGJvb2wgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3
KCk7CiAgICAgSlNTdHJpbmdSZWYgY29weURlY29kZWRIb3N0TmFtZShKU1N0cmluZ1JlZiBuYW1l
KTsKICAgICBKU1N0cmluZ1JlZiBjb3B5RW5jb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5hbWUp
OwogICAgIHZvaWQgZGlzYWJsZUltYWdlTG9hZGluZygpOwpJbmRleDogV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsu
Y3BwCShyZXZpc2lvbiA1NDkwNCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9M
YXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5NSwzICs1OTUs
OSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVBbGxWaXNpCiB7CiAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aGlzLgogfQorCitib29sIExheW91dFRlc3RDb250cm9sbGVyOjpj
YWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9y
IHRlc3RpbmcgZml4IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjc0ODEKKyAgICByZXR1cm4gZmFsc2U7Cit9CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCShyZXZp
c2lvbiA1NDkwNCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0
Q29udHJvbGxlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSwxMSBAQCB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjphZGREaXNhbGxvd2VkCiAgICAgQ0ZTZXRBZGRWYWx1ZShk
aXNhbGxvd2VkVVJMcywgW3JlcXVlc3QgVVJMXSk7CiB9CiAKK2Jvb2wgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygpCit7CisgICAgcmV0dXJuIFtbbWFpbkZy
YW1lIHdlYlZpZXddIHNob3VsZENsb3NlXTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6Y2xlYXJBbGxEYXRhYmFzZXMoKQogewogICAgIFtbV2ViRGF0YWJhc2VNYW5hZ2VyIHNoYXJl
ZFdlYkRhdGFiYXNlTWFuYWdlcl0gZGVsZXRlQWxsRGF0YWJhc2VzXTsKSW5kZXg6IFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwCShyZXZpc2lvbiA1NDkwNSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDAsMyArNTAw
LDkgQEAgaW50IExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZlBhZ2VzKAogewogICAgIHJl
dHVybiBxdF9kcnRfbnVtYmVyT2ZQYWdlcyhtX2RydC0+d2ViUGFnZSgpLT5tYWluRnJhbWUoKSwg
d2lkdGgsIGhlaWdodCk7CiB9CisKK2Jvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91
bGRDbG9zZU9uV2ViVmlldygpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgdGVzdGlu
ZyBmaXggZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ4MQor
ICAgIHJldHVybiBmYWxzZTsKK30KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgJKHJldmlzaW9uIDU0OTA1KQor
KysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNiArMTU0LDcgQEAgcHVibGljIHNsb3RzOgogICAgIGlu
dCB3b3JrZXJUaHJlYWRDb3VudCgpOwogICAgIGludCBwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQo
Y29uc3QgUVN0cmluZyYgaWQsIGZsb2F0IHdpZHRoID0gMCwgZmxvYXQgaGVpZ2h0ID0gMCk7CiAg
ICAgaW50IG51bWJlck9mUGFnZXMoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisgICAgYm9v
bCBjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKTsKIAogcHJpdmF0ZSBzbG90czoKICAgICB2b2lk
IHByb2Nlc3NXb3JrKCk7CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5
b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9uIDU0OTA0
KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDYgKzExMCwyMSBAQCB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpjbGVhckJhY2tGb3J3CiAgICAgYmFja0ZvcndhcmRMaXN0LT5nb1RvSXRl
bShpdGVtLmdldCgpKTsKIH0KIAorYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFNob3Vs
ZENsb3NlT25XZWJWaWV3KCkKK3sKKyAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7CisgICAg
aWYgKEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB2aWV3UHJpdmF0ZTsKKyAgICBpZiAo
RkFJTEVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3UHJpdmF0ZSkpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBCT09MIHJlc3VsdDsKKyAgICB2aWV3UHJpdmF0ZS0+c2hvdWxk
Q2xvc2UoJnJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogSlNTdHJpbmdSZWYgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmNvcHlEZWNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFtZSkK
IHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ5MDQpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAor
MjAxMC0wMi0xMCAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIG9uYmVmb3JldW5sb2FkIG5v
dCBjYWxsZWQgYXQgd2luZG93IGNsb3NlICsgZnJhbWUgb3IgaWZyYW1lIGZvY3VzZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDgxCisKKyAgICAg
ICAgQWRkcyBhIGxheW91dCB0ZXN0IGZvciBidWcgMjc0ODEuICBSZXF1aXJlcyBjYWxsaW5nIHNo
b3VsZENsb3NlIG9uCisgICAgICAgIHRoZSBXZWJWaWV3LCB3aGljaCBpcyBkb25lIHdpdGggYSBu
ZXcgbWV0aG9kIG9uIExheW91dFRlc3RDb250cm9sbGVyLgorCisgICAgICAgICogZmFzdC9ldmVu
dHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9yZXNvdXJjZXMvb25iZWZvcmV1bmxvYWQtZm9j
dXNlZC1pZnJhbWUtZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMC0wMi0xNyAgTmlr
b2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBOb3QgcmV2
aWV3ZWQuIFRyeSB0byB0dXJuIHdpbmRvd3Mgc2xhdmVzIGFnYWluLCBieSBza2lwcGluZyB0d28g
d2Vic29ja2V0IHRlc3RzIHRoYXQgZmFpbCByZWxpYWJsZS4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2Vk
LWlmcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsOSBAQAorQUxFUlQ6IGJlZm9yZVVubG9hZAorTmV3IHdpbmRvdyB3aXRo
IGJlZm9yZVVubG9hZCBoYW5kbGVyLgorWW91IHNob3VsZCBzZWUgYW4gYWxlcnQgd2l0aCAiYmVm
b3JlVW5sb2FkIiBpZiB5b3UgdHJ5IHRvIGNsb3NlIHRoZSB3aW5kb3cuCisKKworLS0tLS0tLS0K
K0ZyYW1lOiAnZm9jdXNlZEZyYW1lJworLS0tLS0tLS0KK1RoaXMgZnJhbWUgc2hvdWxkIGdldCB0
aGUgZm9jdXMuIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQt
Zm9jdXNlZC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAorPGh0bWw+Cis8Ym9keT4KKyAgICBOZXcgd2lu
ZG93IHdpdGggYmVmb3JlVW5sb2FkIGhhbmRsZXIuPGJyPgorICAgIFlvdSBzaG91bGQgc2VlIGFu
IGFsZXJ0IHdpdGggImJlZm9yZVVubG9hZCIgaWYgeW91IHRyeSB0byBjbG9zZSB0aGUgd2luZG93
Ljxicj4KKyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQt
aWZyYW1lLWZyYW1lLmh0bWwiIGlkPSJmb2N1c2VkRnJhbWUiPjwvaWZyYW1lPgorICAgIDxzY3Jp
cHQ+CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAg
d2luZG93Lm9uYmVmb3JldW5sb2FkID0gYmVmb3JlVW5sb2FkOworICAgICAgICBmdW5jdGlvbiBi
ZWZvcmVVbmxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBhbGVydCgiYmVmb3JlVW5sb2Fk
Iik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzaW11bGF0ZUNsb3NlV2luZG93KCkK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIGFuIGF0dGVtcHQgdG8gY2xvc2UgdGhlIHdp
bmRvdworICAgICAgICAgICAgICAgIGlmICghbGF5b3V0VGVzdENvbnRyb2xsZXIuY2FsbFNob3Vs
ZENsb3NlT25XZWJWaWV3KCkpCisgICAgICAgICAgICAgICAgICAgIGFsZXJ0KCJTaG91bGQgaGF2
ZSBydW4gdGhlIGJlZm9yZVVubG9hZCBoYW5kbGVyLiIpOworICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvcmVzb3VyY2VzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLWZyYW1lLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL29uYmVmb3Jl
dW5sb2FkLWZvY3VzZWQtaWZyYW1lLWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUt
ZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8Ym9keSBv
bmxvYWQ9ImxvYWQoKSI+CisgICAgVGhpcyBmcmFtZSBzaG91bGQgZ2V0IHRoZSBmb2N1cy4KKyAg
ICA8aW5wdXQgaWQ9ImJveCI+PC9pbnB1dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlv
biBsb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImJveCIpLmZvY3VzKCk7CisgICAgICAgICAgICB3aW5kb3cudG9wLnNpbXVsYXRlQ2xvc2VXaW5k
b3coKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHJldmlzaW9uIDU0OTA0KQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTU4NTQsNiArNTg1NCw5IEBA
IGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvCiAjIEltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6bnVtYmVyT2ZQYWdlcygpLgogcHJpbnRpbmcvbnVtYmVyT2ZQYWdlcy5odG1sCiAKKyMgSW1w
bGVtZW50IExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKQor
ZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUuaHRtbAorCiAjIE5ldyB0
ZXN0IHRoYXQgcmVwb3J0cyB3cm9uZyB2YWx1ZXMKICMgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNDkxOAogZmFzdC90ZXh0L2dseXBoLXJlb3JkZXJpbmcuaHRt
bApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCShyZXZpc2lvbiA1NDkwNCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTUwNjMsNiArNTA2
Myw5IEBAIGZhc3QvY3NzL2Rhc2hib2FyZC1yZWdpb25zLWF0dHItY3Jhc2guaHQKICMgSW1wbGVt
ZW50IExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZlBhZ2VzKCkuCiBwcmludGluZy9udW1i
ZXJPZlBhZ2VzLmh0bWwKIAorIyBJbXBsZW1lbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxT
aG91bGRDbG9zZU9uV2ViVmlldygpCitmYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2Vk
LWlmcmFtZS5odG1sCisKICMgW1F0XSBwZXJsIHdlYnNvY2tldCB0ZXN0KHMpIHRpbWUgb3V0CiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDg4Mgogd2Vic29ja2V0
L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHktY29va2llLnBsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49040</attachid>
            <date>2010-02-18 13:42:28 -0800</date>
            <delta_ts>2010-02-18 15:51:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-27481-20100218134227.patch</filename>
            <type>text/plain</type>
            <size>14228</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDk4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDItMTAgIENoYXJsaWUgUmVpcyAgPGNyZWlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBv
bmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSArIGZyYW1lIG9yIGlmcmFt
ZSBmb2N1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNzQ4MQorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3Vz
ZWQtaWZyYW1lLmh0bWwKKworICAgICAgICBSZXBsYWNlcyBpbml0aWFsIG1hbnVhbCB0ZXN0cyB3
aXRoIGEgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvb25iZWZvcmV1bmxv
YWQtZm9jdXNlZC1pZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtYW51YWwtdGVzdHMv
cmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisKIDIwMTAtMDItMTggIFBl
dGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUuY29tPgogCiAgICAgICAgIE5vdCByZXZpZXdl
ZCwgYnVzdGFnZSBmaXguCkluZGV4OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9vbmJlZm9yZXVubG9h
ZC1mb2N1c2VkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbWFudWFsLXRlc3Rz
L29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDU0OTg1KQorKysg
V2ViQ29yZS9tYW51YWwtdGVzdHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L1czQy8vRFREIEhUTUwgNC4wMS8vRU4iCi0gICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9o
dG1sNC9zdHJpY3QuZHRkIj4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotPC9oZWFkPgotPEJP
RFkgb25iZWZvcmV1bmxvYWQ9InJldHVybiAnb25CZWZvcmVVbmxvYWRIYW5kbGVyIHJldHVybiBz
dHJpbmcgaXMgZGlzcGxheWVkIGhlcmUuJzsiPgotPHA+PGI+QlVHIElEOjwvYj4gPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDgxIj4yNzQ4MTwvYT4g
b25iZWZvcmV1bmxvYWQgbm90IGNhbGxlZCBhdCB3aW5kb3cgY2xvc2UgKyBmcmFtZSBvciBpZnJh
bWUgZm9jdXNlZDwvcD4KLQotPHAgaWQ9InRlc3QiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOnNr
eWJsdWU7IHBhZGRpbmc6M3B4OyI+PGI+U1RFUFMgVE8gVEVTVDo8L2I+IAotPG9sPgotICAgIDxs
aT5DbG9zZSB0aGlzIGJyb3dzZXIgd2luZG93IHdoaWxlIHRoZSBpbm5lciBmcmFtZSBoYXMgZm9j
dXMuCi08L29sPgotPC9wPgotCi08cCBpZD0ic3VjY2VzcyIgc3R5bGU9ImJhY2tncm91bmQtY29s
b3I6cGFsZWdyZWVuOyBwYWRkaW5nOjNweDsiPjxiPlRFU1QgUEFTUzo8L2I+IAotQWZ0ZXIgdGhl
IGNsb3NlIGJ1dHRvbiBpcyBjbGlja2VkLCB5b3Ugc2hvdWxkIHNlZSBhIGRpYWxvZyB0aGF0IHJl
YWRzOjwvcD4KLTxwcmU+QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG5hdmlnYXRlIGF3YXkgZnJv
bSB0aGlzIHBhZ2U/Ci0KLW9uQmVmb3JlVW5sb2FkSGFuZGxlciByZXR1cm4gc3RyaW5nIGlzIGRp
c3BsYXllZCBoZXJlLgotCi1QcmVzcyBPSyB0byBjb250aW51ZSBvciBDYW5jZWwgdG8gc3RheSBv
biB0aGUgY3VycmVudCBwYWdlLjwvcHJlPgotCi08cCBpZD0iZmFpbHVyZSIgc3R5bGU9ImJhY2tn
cm91bmQtY29sb3I6I0ZGMzMwMDsgcGFkZGluZzozcHg7Ij48Yj5URVNUIEZBSUw6PC9iPiAgCi1O
byBkaWFsb2cgKGFzIGRlc2NyaWJlZCBhYm92ZSkgd2hlbiBjbG9zaW5nIHRoZSBicm93c2VyIHdp
bmRvdy4KLTwvcD4KLQotPEJPRFkgb25iZWZvcmV1bmxvYWQ9InJldHVybiAnb25CZWZvcmVVbmxv
YWRIYW5kbGVyIHJldHVybiBzdHJpbmcgaXMgZGlzcGxheWVkIGhlcmUuJzsiPgotPGlmcmFtZSBz
cmM9InJlc291cmNlcy9mb2N1c2VkLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KLTxwPkNsb3NlIHRo
aXMgYnJvd3NlciB3aW5kb3cuPC9wPgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogV2ViQ29yZS9t
YW51YWwtdGVzdHMvcmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9tYW51YWwtdGVzdHMvcmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWwJKHJldmlz
aW9uIDU0OTg1KQorKysgV2ViQ29yZS9tYW51YWwtdGVzdHMvcmVzb3VyY2VzL2ZvY3VzZWQtaWZy
YW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPGh0bWw+Ci08Ym9keSBv
bmxvYWQ9ImxvYWQoKSI+Ci0gICAgVGhpcyBmcmFtZSBzaG91bGQgZ2V0IHRoZSBmb2N1cy4KLSAg
ICA8aW5wdXQgaWQ9ImJveCI+PC9pbnB1dD4KLSAgICA8c2NyaXB0PgotICAgICAgICBmdW5jdGlv
biBsb2FkKCkKLSAgICAgICAgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImJveCIpLmZvY3VzKCk7Ci0gICAgICAgIH0KLSAgICA8L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0OTg1KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDItMTAgIENoYXJsaWUgUmVpcyAg
PGNyZWlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBvbmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSAr
IGZyYW1lIG9yIGlmcmFtZSBmb2N1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNzQ4MQorCisgICAgICAgIEFkZHMgYSBjYWxsU2hvdWxkQ2xvc2VP
bldlYlZpZXcgbWV0aG9kIHRvIExheW91dFRlc3RDb250cm9sbGVyLAorICAgICAgICB0byBhbGxv
dyBhdXRvbWF0ZWQgdGVzdGluZyBmb3IgYnVnIDI3NDgxLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoY2FsbFNob3VsZENsb3Nl
T25XZWJWaWV3Q2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRp
Y0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJH
dGsuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91bGRDbG9zZU9u
V2ViVmlldyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9s
bGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91bGRDbG9z
ZU9uV2ViVmlldyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFNob3VsZENs
b3NlT25XZWJWaWV3KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250
cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxk
Q2xvc2VPbldlYlZpZXcpOgorCiAyMDEwLTAyLTE4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAko
cmV2aXNpb24gNTQ5ODUpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNTUsNiArMTM1NSw3IEBAIEpTU3Rh
dGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjoKICAgICAgICAgeyAiYWRkVXNlclNj
cmlwdCIsIGFkZFVzZXJTY3JpcHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJhZGRVc2Vy
U3R5bGVTaGVldCIsIGFkZFVzZXJTdHlsZVNoZWV0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAiYXBpVGVzdE5ld1dpbmRvd0RhdGFMb2FkQmFzZVVSTCIsIGFwaVRlc3ROZXdXaW5kb3dEYXRh
TG9hZEJhc2VVUkxDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJjYWxsU2hvdWxkQ2xvc2VP
bldlYlZpZXciLCBjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXdDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJjbGVhckFsbERhdGFiYXNlcyIsIGNsZWFyQWxsRGF0YWJhc2VzQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAiY2xlYXJCYWNrRm9yd2FyZExpc3QiLCBjbGVhckJhY2tGb3J3YXJk
TGlzdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNsZWFyUGVyc2lzdGVudFVzZXJTdHls
ZVNoZWV0IiwgY2xlYXJQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApJ
bmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCShyZXZpc2lvbiA1NDk4NSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB2b2lkIGNsZWFyQmFja0Zv
cndhcmRMaXN0KCk7CiAgICAgdm9pZCBjbGVhclBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldCgpOwor
ICAgIGJvb2wgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCk7CiAgICAgSlNTdHJpbmdSZWYgY29w
eURlY29kZWRIb3N0TmFtZShKU1N0cmluZ1JlZiBuYW1lKTsKICAgICBKU1N0cmluZ1JlZiBjb3B5
RW5jb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5hbWUpOwogICAgIHZvaWQgZGlzYWJsZUltYWdl
TG9hZGluZygpOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRl
c3RDb250cm9sbGVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCShyZXZpc2lvbiA1NDk4NSkKKysr
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU5Niw2ICs1OTYsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6cmVtb3ZlQWxsVmlzaQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KIH0K
IAorYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCkK
K3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciB0ZXN0aW5nIGZpeCBmb3IgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDgxCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphcGlUZXN0TmV3V2luZG93RGF0YUxvYWRC
YXNlVVJMKEpTU3RyaW5nUmVmIHV0ZjhEYXRhLCBKU1N0cmluZ1JlZiBiYXNlVVJMKQogewogCklu
ZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91
dFRlc3RDb250cm9sbGVyTWFjLm1tCShyZXZpc2lvbiA1NDk4NSkKKysrIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQkod29ya2luZyBjb3B5
KQpAQCAtMTE1LDYgKzExNSwxMSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGREaXNh
bGxvd2VkCiAgICAgQ0ZTZXRBZGRWYWx1ZShkaXNhbGxvd2VkVVJMcywgW3JlcXVlc3QgVVJMXSk7
CiB9CiAKK2Jvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmll
dygpCit7CisgICAgcmV0dXJuIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNob3VsZENsb3NlXTsKK30K
Kwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBbGxEYXRhYmFzZXMoKQogewogICAg
IFtbV2ViRGF0YWJhc2VNYW5hZ2VyIHNoYXJlZFdlYkRhdGFiYXNlTWFuYWdlcl0gZGVsZXRlQWxs
RGF0YWJhc2VzXTsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCShyZXZpc2lvbiA1NDk4NSkKKysrIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01MDAsMyArNTAwLDkgQEAgaW50IExheW91dFRlc3RDb250cm9sbGVy
OjpudW1iZXJPZlBhZ2VzKAogewogICAgIHJldHVybiBxdF9kcnRfbnVtYmVyT2ZQYWdlcyhtX2Ry
dC0+d2ViUGFnZSgpLT5tYWluRnJhbWUoKSwgd2lkdGgsIGhlaWdodCk7CiB9CisKK2Jvb2wgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygpCit7CisgICAgLy8g
RklYTUU6IEltcGxlbWVudCBmb3IgdGVzdGluZyBmaXggZm9yIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ4MQorICAgIHJldHVybiBmYWxzZTsKK30KSW5kZXg6IFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0LmgJKHJldmlzaW9uIDU0OTg1KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNiArMTU0
LDcgQEAgcHVibGljIHNsb3RzOgogICAgIGludCB3b3JrZXJUaHJlYWRDb3VudCgpOwogICAgIGlu
dCBwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoY29uc3QgUVN0cmluZyYgaWQsIGZsb2F0IHdpZHRo
ID0gMCwgZmxvYXQgaGVpZ2h0ID0gMCk7CiAgICAgaW50IG51bWJlck9mUGFnZXMoZmxvYXQgd2lk
dGgsIGZsb2F0IGhlaWdodCk7CisgICAgYm9vbCBjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKTsK
IAogcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIHByb2Nlc3NXb3JrKCk7CkluZGV4OiBXZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJv
bGxlcldpbi5jcHAJKHJldmlzaW9uIDU0OTg1KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEw
LDYgKzExMCwyMSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpjbGVhckJhY2tGb3J3CiAg
ICAgYmFja0ZvcndhcmRMaXN0LT5nb1RvSXRlbShpdGVtLmdldCgpKTsKIH0KIAorYm9vbCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCkKK3sKKyAgICBDT01Q
dHI8SVdlYlZpZXc+IHdlYlZpZXc7CisgICAgaWYgKEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2Vi
VmlldykpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDT01QdHI8SVdlYlZpZXdQcml2
YXRlPiB2aWV3UHJpdmF0ZTsKKyAgICBpZiAoRkFJTEVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNl
KCZ2aWV3UHJpdmF0ZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBCT09MIHJlc3Vs
dDsKKyAgICB2aWV3UHJpdmF0ZS0+c2hvdWxkQ2xvc2UoJnJlc3VsdCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKwogSlNTdHJpbmdSZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvcHlEZWNvZGVk
SG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFtZSkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IQpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gNTQ5ODUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wMi0xMCAgQ2hhcmxpZSBSZWlzICA8Y3Jl
aXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIG9uYmVmb3JldW5sb2FkIG5vdCBjYWxsZWQgYXQgd2luZG93IGNsb3NlICsgZnJh
bWUgb3IgaWZyYW1lIGZvY3VzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3NDgxCisKKyAgICAgICAgQWRkcyBhIGxheW91dCB0ZXN0IGZvciBidWcg
Mjc0ODEuICBSZXF1aXJlcyBjYWxsaW5nIHNob3VsZENsb3NlIG9uCisgICAgICAgIHRoZSBXZWJW
aWV3LCB3aGljaCBpcyBkb25lIHdpdGggYSBuZXcgbWV0aG9kIG9uIExheW91dFRlc3RDb250cm9s
bGVyLgorCisgICAgICAgICogZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJh
bWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9vbmJlZm9yZXVu
bG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9y
ZXNvdXJjZXMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUtZnJhbWUuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQv
U2tpcHBlZDoKKwogMjAxMC0wMi0xOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21l
Lm9yZz4KIAogICAgICAgICBbUXRdW0dUS10gZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVx
dWVzdC1ub25leGlzdGVudC1maWxlLmh0bWwgZmFpbHMgKERSVCBzaWRlZWZmZWN0KQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29uYmVmb3Jl
dW5sb2FkLWZvY3VzZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitBTEVSVDogYmVmb3JlVW5sb2FkCitO
ZXcgd2luZG93IHdpdGggYmVmb3JlVW5sb2FkIGhhbmRsZXIuCitZb3Ugc2hvdWxkIHNlZSBhbiBh
bGVydCB3aXRoICJiZWZvcmVVbmxvYWQiIGlmIHlvdSB0cnkgdG8gY2xvc2UgdGhlIHdpbmRvdy4K
KworCistLS0tLS0tLQorRnJhbWU6ICdmb2N1c2VkRnJhbWUnCistLS0tLS0tLQorVGhpcyBmcmFt
ZSBzaG91bGQgZ2V0IHRoZSBmb2N1cy4gCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9v
bmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2Vk
LWlmcmFtZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACis8aHRtbD4KKzxib2R5
PgorICAgIE5ldyB3aW5kb3cgd2l0aCBiZWZvcmVVbmxvYWQgaGFuZGxlci48YnI+CisgICAgWW91
IHNob3VsZCBzZWUgYW4gYWxlcnQgd2l0aCAiYmVmb3JlVW5sb2FkIiBpZiB5b3UgdHJ5IHRvIGNs
b3NlIHRoZSB3aW5kb3cuPGJyPgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvb25iZWZvcmV1
bmxvYWQtZm9jdXNlZC1pZnJhbWUtZnJhbWUuaHRtbCIgaWQ9ImZvY3VzZWRGcmFtZSI+PC9pZnJh
bWU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cisg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAg
IH0KKworICAgICAgICB3aW5kb3cub25iZWZvcmV1bmxvYWQgPSBiZWZvcmVVbmxvYWQ7CisgICAg
ICAgIGZ1bmN0aW9uIGJlZm9yZVVubG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGFsZXJ0
KCJiZWZvcmVVbmxvYWQiKTsKKyAgICAgICAgICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9IG51
bGw7CisgICAgICAgIH0KKworCisgICAgICAgIGZ1bmN0aW9uIHNpbXVsYXRlQ2xvc2VXaW5kb3co
KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgICAgICAgICAgICAgLy8gU2ltdWxhdGUgYW4gYXR0ZW1wdCB0byBjbG9zZSB0aGUg
d2luZG93CisgICAgICAgICAgICAgICAgaWYgKCFsYXlvdXRUZXN0Q29udHJvbGxlci5jYWxsU2hv
dWxkQ2xvc2VPbldlYlZpZXcoKSkKKyAgICAgICAgICAgICAgICAgICAgYWxlcnQoIlNob3VsZCBo
YXZlIHJ1biB0aGUgYmVmb3JlVW5sb2FkIGhhbmRsZXIuIik7CisgICAgICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9yZXNvdXJjZXMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUtZnJhbWUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvb25iZWZv
cmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUtZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFt
ZS1mcmFtZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxib2R5
IG9ubG9hZD0ibG9hZCgpIj4KKyAgICBUaGlzIGZyYW1lIHNob3VsZCBnZXQgdGhlIGZvY3VzLgor
ICAgIDxpbnB1dCBpZD0iYm94Ij48L2lucHV0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0
aW9uIGxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYm94IikuZm9jdXMoKTsKKyAgICAgICAgICAgIHdpbmRvdy50b3Auc2ltdWxhdGVDbG9zZVdp
bmRvdygpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkocmV2aXNpb24gNTQ5ODUpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTg1NCw2ICs1ODU0LDkg
QEAgZmFzdC9mcmFtZXMvZmxhdHRlbmluZy8KICMgSW1wbGVtZW50IExheW91dFRlc3RDb250cm9s
bGVyOjpudW1iZXJPZlBhZ2VzKCkuCiBwcmludGluZy9udW1iZXJPZlBhZ2VzLmh0bWwKIAorIyBJ
bXBsZW1lbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygp
CitmYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sCisKICMgQ3Jh
c2hlcyBvbiByZWxlYXNlL2RlYnVnIGJvdHMsIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzUwODAKIGZhc3QvY3NzL2ZvbnQtZmFjZS1vcGVudHlwZS5odG1sCiAK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkocmV2aXNpb24gNTQ5ODUpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC01MDY4LDYgKzUwNjgs
OSBAQCBmYXN0L2xvYWRlci9jcmFzaC1jb3B5aW5nLWJhY2tmb3J3YXJkbGlzCiAjIEJlY2F1c2Ug
RU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUPTAgaXMgdGhlIGRlZmF1bHQgb3B0aW9uLiAoQXBwbGUn
cyBkYXNoYm9hcmQgc3VwcG9ydCBpbiBPUyBYKQogZmFzdC9jc3MvZGFzaGJvYXJkLXJlZ2lvbnMt
YXR0ci1jcmFzaC5odG1sCiAKKyMgSW1wbGVtZW50IExheW91dFRlc3RDb250cm9sbGVyOjpjYWxs
U2hvdWxkQ2xvc2VPbldlYlZpZXcoKQorZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNl
ZC1pZnJhbWUuaHRtbAorCiAjIFtRdF0gcGVybCB3ZWJzb2NrZXQgdGVzdChzKSB0aW1lIG91dAog
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4ODIKIHdlYnNvY2tl
dC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS5wbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49047</attachid>
            <date>2010-02-18 15:51:10 -0800</date>
            <delta_ts>2010-03-22 17:55:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-27481-20100218155109.patch</filename>
            <type>text/plain</type>
            <size>15005</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDk4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDItMTggIENoYXJsaWUgUmVpcyAgPGNyZWlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBv
bmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSArIGZyYW1lIG9yIGlmcmFt
ZSBmb2N1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNzQ4MQorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3Vz
ZWQtaWZyYW1lLmh0bWwKKworICAgICAgICBSZXBsYWNlcyBpbml0aWFsIG1hbnVhbCB0ZXN0cyB3
aXRoIGEgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvb25iZWZvcmV1bmxv
YWQtZm9jdXNlZC1pZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtYW51YWwtdGVzdHMv
cmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisKIDIwMTAtMDItMTggIFBl
dGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUuY29tPgogCiAgICAgICAgIE5vdCByZXZpZXdl
ZCwgYnVzdGFnZSBmaXguCkluZGV4OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9vbmJlZm9yZXVubG9h
ZC1mb2N1c2VkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbWFudWFsLXRlc3Rz
L29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDU0OTg1KQorKysg
V2ViQ29yZS9tYW51YWwtdGVzdHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L1czQy8vRFREIEhUTUwgNC4wMS8vRU4iCi0gICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9o
dG1sNC9zdHJpY3QuZHRkIj4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotPC9oZWFkPgotPEJP
RFkgb25iZWZvcmV1bmxvYWQ9InJldHVybiAnb25CZWZvcmVVbmxvYWRIYW5kbGVyIHJldHVybiBz
dHJpbmcgaXMgZGlzcGxheWVkIGhlcmUuJzsiPgotPHA+PGI+QlVHIElEOjwvYj4gPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDgxIj4yNzQ4MTwvYT4g
b25iZWZvcmV1bmxvYWQgbm90IGNhbGxlZCBhdCB3aW5kb3cgY2xvc2UgKyBmcmFtZSBvciBpZnJh
bWUgZm9jdXNlZDwvcD4KLQotPHAgaWQ9InRlc3QiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOnNr
eWJsdWU7IHBhZGRpbmc6M3B4OyI+PGI+U1RFUFMgVE8gVEVTVDo8L2I+IAotPG9sPgotICAgIDxs
aT5DbG9zZSB0aGlzIGJyb3dzZXIgd2luZG93IHdoaWxlIHRoZSBpbm5lciBmcmFtZSBoYXMgZm9j
dXMuCi08L29sPgotPC9wPgotCi08cCBpZD0ic3VjY2VzcyIgc3R5bGU9ImJhY2tncm91bmQtY29s
b3I6cGFsZWdyZWVuOyBwYWRkaW5nOjNweDsiPjxiPlRFU1QgUEFTUzo8L2I+IAotQWZ0ZXIgdGhl
IGNsb3NlIGJ1dHRvbiBpcyBjbGlja2VkLCB5b3Ugc2hvdWxkIHNlZSBhIGRpYWxvZyB0aGF0IHJl
YWRzOjwvcD4KLTxwcmU+QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG5hdmlnYXRlIGF3YXkgZnJv
bSB0aGlzIHBhZ2U/Ci0KLW9uQmVmb3JlVW5sb2FkSGFuZGxlciByZXR1cm4gc3RyaW5nIGlzIGRp
c3BsYXllZCBoZXJlLgotCi1QcmVzcyBPSyB0byBjb250aW51ZSBvciBDYW5jZWwgdG8gc3RheSBv
biB0aGUgY3VycmVudCBwYWdlLjwvcHJlPgotCi08cCBpZD0iZmFpbHVyZSIgc3R5bGU9ImJhY2tn
cm91bmQtY29sb3I6I0ZGMzMwMDsgcGFkZGluZzozcHg7Ij48Yj5URVNUIEZBSUw6PC9iPiAgCi1O
byBkaWFsb2cgKGFzIGRlc2NyaWJlZCBhYm92ZSkgd2hlbiBjbG9zaW5nIHRoZSBicm93c2VyIHdp
bmRvdy4KLTwvcD4KLQotPEJPRFkgb25iZWZvcmV1bmxvYWQ9InJldHVybiAnb25CZWZvcmVVbmxv
YWRIYW5kbGVyIHJldHVybiBzdHJpbmcgaXMgZGlzcGxheWVkIGhlcmUuJzsiPgotPGlmcmFtZSBz
cmM9InJlc291cmNlcy9mb2N1c2VkLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KLTxwPkNsb3NlIHRo
aXMgYnJvd3NlciB3aW5kb3cuPC9wPgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogV2ViQ29yZS9t
YW51YWwtdGVzdHMvcmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9tYW51YWwtdGVzdHMvcmVzb3VyY2VzL2ZvY3VzZWQtaWZyYW1lLmh0bWwJKHJldmlz
aW9uIDU0OTg1KQorKysgV2ViQ29yZS9tYW51YWwtdGVzdHMvcmVzb3VyY2VzL2ZvY3VzZWQtaWZy
YW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPGh0bWw+Ci08Ym9keSBv
bmxvYWQ9ImxvYWQoKSI+Ci0gICAgVGhpcyBmcmFtZSBzaG91bGQgZ2V0IHRoZSBmb2N1cy4KLSAg
ICA8aW5wdXQgaWQ9ImJveCI+PC9pbnB1dD4KLSAgICA8c2NyaXB0PgotICAgICAgICBmdW5jdGlv
biBsb2FkKCkKLSAgICAgICAgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImJveCIpLmZvY3VzKCk7Ci0gICAgICAgIH0KLSAgICA8L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0OTg1KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDItMTggIENoYXJsaWUgUmVpcyAg
PGNyZWlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBvbmJlZm9yZXVubG9hZCBub3QgY2FsbGVkIGF0IHdpbmRvdyBjbG9zZSAr
IGZyYW1lIG9yIGlmcmFtZSBmb2N1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNzQ4MQorCisgICAgICAgIEFkZHMgYSBjYWxsU2hvdWxkQ2xvc2VP
bldlYlZpZXcgbWV0aG9kIHRvIExheW91dFRlc3RDb250cm9sbGVyLAorICAgICAgICB0byBhbGxv
dyBhdXRvbWF0ZWQgdGVzdGluZyBmb3IgYnVnIDI3NDgxLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoY2FsbFNob3VsZENsb3Nl
T25XZWJWaWV3Q2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRp
Y0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJH
dGsuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91bGRDbG9zZU9u
V2ViVmlldyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9s
bGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxTaG91bGRDbG9z
ZU9uV2ViVmlldyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFNob3VsZENs
b3NlT25XZWJWaWV3KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250
cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxk
Q2xvc2VPbldlYlZpZXcpOgorCiAyMDEwLTAyLTE4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAko
cmV2aXNpb24gNTQ5ODUpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw2ICsyODAsMTQgQEAgc3RhdGlj
IEpTVmFsdWVSZWYgYWRkRGlzYWxsb3dlZFVSTENhbGxiYQogICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgY2FsbFNob3VsZENs
b3NlT25XZWJWaWV3Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAg
IC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCisgICAgTGF5b3V0VGVzdENvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpT
T2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VC
b29sZWFuKGNvbnRleHQsIGNvbnRyb2xsZXItPmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygpKTsK
K30KKwogc3RhdGljIEpTVmFsdWVSZWYgY2xlYXJBbGxEYXRhYmFzZXNDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyAmIHdpbmRvd3MgaW1wbGVt
ZW50YXRpb24KQEAgLTEzNTUsNiArMTM2Myw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRl
c3RDb250cm9sbGVyOjoKICAgICAgICAgeyAiYWRkVXNlclNjcmlwdCIsIGFkZFVzZXJTY3JpcHRD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJhZGRVc2VyU3R5bGVTaGVldCIsIGFkZFVzZXJT
dHlsZVNoZWV0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiYXBpVGVzdE5ld1dpbmRvd0Rh
dGFMb2FkQmFzZVVSTCIsIGFwaVRlc3ROZXdXaW5kb3dEYXRhTG9hZEJhc2VVUkxDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAorICAgICAgICB7ICJjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXciLCBjYWxsU2hvdWxk
Q2xvc2VPbldlYlZpZXdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJjbGVhckFsbERhdGFi
YXNlcyIsIGNsZWFyQWxsRGF0YWJhc2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY2xl
YXJCYWNrRm9yd2FyZExpc3QiLCBjbGVhckJhY2tGb3J3YXJkTGlzdENhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgImNsZWFyUGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0IiwgY2xlYXJQZXJzaXN0
ZW50VXNlclN0eWxlU2hlZXRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDogV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiA1NDk4
NSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJB
bGxEYXRhYmFzZXMoKTsKICAgICB2b2lkIGNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CiAgICAgdm9p
ZCBjbGVhclBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldCgpOworICAgIGJvb2wgY2FsbFNob3VsZENs
b3NlT25XZWJWaWV3KCk7CiAgICAgSlNTdHJpbmdSZWYgY29weURlY29kZWRIb3N0TmFtZShKU1N0
cmluZ1JlZiBuYW1lKTsKICAgICBKU1N0cmluZ1JlZiBjb3B5RW5jb2RlZEhvc3ROYW1lKEpTU3Ry
aW5nUmVmIG5hbWUpOwogICAgIHZvaWQgZGlzYWJsZUltYWdlTG9hZGluZygpOwpJbmRleDogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENv
bnRyb2xsZXJHdGsuY3BwCShyZXZpc2lvbiA1NDk4NSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU5Niw2ICs1OTYsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlQWxsVmlz
aQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KIH0KIAorYm9vbCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCkKK3sKKyAgICAvLyBGSVhNRTogSW1w
bGVtZW50IGZvciB0ZXN0aW5nIGZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI3NDgxCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjphcGlUZXN0TmV3V2luZG93RGF0YUxvYWRCYXNlVVJMKEpTU3RyaW5nUmVmIHV0
ZjhEYXRhLCBKU1N0cmluZ1JlZiBiYXNlVVJMKQogewogCkluZGV4OiBXZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1t
CShyZXZpc2lvbiA1NDk4NSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlv
dXRUZXN0Q29udHJvbGxlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSwxMSBA
QCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGREaXNhbGxvd2VkCiAgICAgQ0ZTZXRBZGRW
YWx1ZShkaXNhbGxvd2VkVVJMcywgW3JlcXVlc3QgVVJMXSk7CiB9CiAKK2Jvb2wgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygpCit7CisgICAgcmV0dXJuIFtb
bWFpbkZyYW1lIHdlYlZpZXddIHNob3VsZENsb3NlXTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6Y2xlYXJBbGxEYXRhYmFzZXMoKQogewogICAgIFtbV2ViRGF0YWJhc2VNYW5hZ2Vy
IHNoYXJlZFdlYkRhdGFiYXNlTWFuYWdlcl0gZGVsZXRlQWxsRGF0YWJhc2VzXTsKSW5kZXg6IFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250
cm9sbGVyUXQuY3BwCShyZXZpc2lvbiA1NDk4NSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDAs
MyArNTAwLDkgQEAgaW50IExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZlBhZ2VzKAogewog
ICAgIHJldHVybiBxdF9kcnRfbnVtYmVyT2ZQYWdlcyhtX2RydC0+d2ViUGFnZSgpLT5tYWluRnJh
bWUoKSwgd2lkdGgsIGhlaWdodCk7CiB9CisKK2Jvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNh
bGxTaG91bGRDbG9zZU9uV2ViVmlldygpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3Ig
dGVzdGluZyBmaXggZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NzQ4MQorICAgIHJldHVybiBmYWxzZTsKK30KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgJKHJldmlzaW9uIDU0
OTg1KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNiArMTU0LDcgQEAgcHVibGljIHNsb3RzOgog
ICAgIGludCB3b3JrZXJUaHJlYWRDb3VudCgpOwogICAgIGludCBwYWdlTnVtYmVyRm9yRWxlbWVu
dEJ5SWQoY29uc3QgUVN0cmluZyYgaWQsIGZsb2F0IHdpZHRoID0gMCwgZmxvYXQgaGVpZ2h0ID0g
MCk7CiAgICAgaW50IG51bWJlck9mUGFnZXMoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7Cisg
ICAgYm9vbCBjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKTsKIAogcHJpdmF0ZSBzbG90czoKICAg
ICB2b2lkIHByb2Nlc3NXb3JrKCk7CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9u
IDU0OTg1KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250
cm9sbGVyV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDYgKzExMCwyMSBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpjbGVhckJhY2tGb3J3CiAgICAgYmFja0ZvcndhcmRMaXN0LT5n
b1RvSXRlbShpdGVtLmdldCgpKTsKIH0KIAorYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2Fs
bFNob3VsZENsb3NlT25XZWJWaWV3KCkKK3sKKyAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7
CisgICAgaWYgKEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB2aWV3UHJpdmF0ZTsKKyAg
ICBpZiAoRkFJTEVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3UHJpdmF0ZSkpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBCT09MIHJlc3VsdDsKKyAgICB2aWV3UHJpdmF0ZS0+
c2hvdWxkQ2xvc2UoJnJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogSlNTdHJpbmdS
ZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvcHlEZWNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYg
bmFtZSkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IQpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTQ5
ODUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
OSBAQAorMjAxMC0wMi0xOCAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIG9uYmVmb3JldW5s
b2FkIG5vdCBjYWxsZWQgYXQgd2luZG93IGNsb3NlICsgZnJhbWUgb3IgaWZyYW1lIGZvY3VzZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDgxCisK
KyAgICAgICAgQWRkcyBhIGxheW91dCB0ZXN0IGZvciBidWcgMjc0ODEuICBSZXF1aXJlcyBjYWxs
aW5nIHNob3VsZENsb3NlIG9uCisgICAgICAgIHRoZSBXZWJWaWV3LCB3aGljaCBpcyBkb25lIHdp
dGggYSBuZXcgbWV0aG9kIG9uIExheW91dFRlc3RDb250cm9sbGVyLgorCisgICAgICAgICogZmFz
dC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9yZXNvdXJjZXMvb25iZWZvcmV1bmxv
YWQtZm9jdXNlZC1pZnJhbWUtZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMC0wMi0x
OCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBbUXRd
W0dUS10gZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1ub25leGlzdGVudC1maWxl
Lmh0bWwgZmFpbHMgKERSVCBzaWRlZWZmZWN0KQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29uYmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1l
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29u
YmVmb3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw5IEBACitBTEVSVDogYmVmb3JlVW5sb2FkCitOZXcgd2luZG93IHdpdGggYmVmb3Jl
VW5sb2FkIGhhbmRsZXIuCitZb3Ugc2hvdWxkIHNlZSBhbiBhbGVydCB3aXRoICJiZWZvcmVVbmxv
YWQiIGlmIHlvdSB0cnkgdG8gY2xvc2UgdGhlIHdpbmRvdy4KKworCistLS0tLS0tLQorRnJhbWU6
ICdmb2N1c2VkRnJhbWUnCistLS0tLS0tLQorVGhpcyBmcmFtZSBzaG91bGQgZ2V0IHRoZSBmb2N1
cy4gCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2Vk
LWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29uYmVm
b3JldW5sb2FkLWZvY3VzZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDMyIEBACis8aHRtbD4KKzxib2R5PgorICAgIE5ldyB3aW5kb3cgd2l0
aCBiZWZvcmVVbmxvYWQgaGFuZGxlci48YnI+CisgICAgWW91IHNob3VsZCBzZWUgYW4gYWxlcnQg
d2l0aCAiYmVmb3JlVW5sb2FkIiBpZiB5b3UgdHJ5IHRvIGNsb3NlIHRoZSB3aW5kb3cuPGJyPgor
ICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUt
ZnJhbWUuaHRtbCIgaWQ9ImZvY3VzZWRGcmFtZSI+PC9pZnJhbWU+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cu
b25iZWZvcmV1bmxvYWQgPSBiZWZvcmVVbmxvYWQ7CisgICAgICAgIGZ1bmN0aW9uIGJlZm9yZVVu
bG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGFsZXJ0KCJiZWZvcmVVbmxvYWQiKTsKKyAg
ICAgICAgICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9IG51bGw7CisgICAgICAgIH0KKworCisg
ICAgICAgIGZ1bmN0aW9uIHNpbXVsYXRlQ2xvc2VXaW5kb3coKQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAg
Ly8gU2ltdWxhdGUgYW4gYXR0ZW1wdCB0byBjbG9zZSB0aGUgd2luZG93CisgICAgICAgICAgICAg
ICAgaWYgKCFsYXlvdXRUZXN0Q29udHJvbGxlci5jYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKSkK
KyAgICAgICAgICAgICAgICAgICAgYWxlcnQoIlNob3VsZCBoYXZlIHJ1biB0aGUgYmVmb3JlVW5s
b2FkIGhhbmRsZXIuIik7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvb25i
ZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUtZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJh
bWUtZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jl
c291cmNlcy9vbmJlZm9yZXVubG9hZC1mb2N1c2VkLWlmcmFtZS1mcmFtZS5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAg
ICBUaGlzIGZyYW1lIHNob3VsZCBnZXQgdGhlIGZvY3VzLgorICAgIDxpbnB1dCBpZD0iYm94Ij48
L2lucHV0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGxvYWQoKQorICAgICAgICB7
CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94IikuZm9jdXMoKTsKKyAg
ICAgICAgICAgIHdpbmRvdy50b3Auc2ltdWxhdGVDbG9zZVdpbmRvdygpOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tp
cHBlZAkocmV2aXNpb24gNTQ5ODUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZAkod29ya2luZyBjb3B5KQpAQCAtNTg1NCw2ICs1ODU0LDkgQEAgZmFzdC9mcmFtZXMvZmxhdHRl
bmluZy8KICMgSW1wbGVtZW50IExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZlBhZ2VzKCku
CiBwcmludGluZy9udW1iZXJPZlBhZ2VzLmh0bWwKIAorIyBJbXBsZW1lbnQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygpCitmYXN0L2V2ZW50cy9vbmJlZm9y
ZXVubG9hZC1mb2N1c2VkLWlmcmFtZS5odG1sCisKICMgQ3Jhc2hlcyBvbiByZWxlYXNlL2RlYnVn
IGJvdHMsIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUwODAK
IGZhc3QvY3NzL2ZvbnQtZmFjZS1vcGVudHlwZS5odG1sCiAKSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
U2tpcHBlZAkocmV2aXNpb24gNTQ5ODUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkCSh3b3JraW5nIGNvcHkpCkBAIC01MDY4LDYgKzUwNjgsOSBAQCBmYXN0L2xvYWRlci9jcmFz
aC1jb3B5aW5nLWJhY2tmb3J3YXJkbGlzCiAjIEJlY2F1c2UgRU5BQkxFX0RBU0hCT0FSRF9TVVBQ
T1JUPTAgaXMgdGhlIGRlZmF1bHQgb3B0aW9uLiAoQXBwbGUncyBkYXNoYm9hcmQgc3VwcG9ydCBp
biBPUyBYKQogZmFzdC9jc3MvZGFzaGJvYXJkLXJlZ2lvbnMtYXR0ci1jcmFzaC5odG1sCiAKKyMg
SW1wbGVtZW50IExheW91dFRlc3RDb250cm9sbGVyOjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXco
KQorZmFzdC9ldmVudHMvb25iZWZvcmV1bmxvYWQtZm9jdXNlZC1pZnJhbWUuaHRtbAorCiAjIFtR
dF0gcGVybCB3ZWJzb2NrZXQgdGVzdChzKSB0aW1lIG91dAogIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4ODIKIHdlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBv
bmx5LWNvb2tpZS5wbAo=
</data>
<flag name="review"
          id="31805"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="34538"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>