<?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>43400</bug_id>
          
          <creation_ts>2010-08-02 19:43:50 -0700</creation_ts>
          <short_desc>Add priority attribute to XMLHttpRequest</short_desc>
          <delta_ts>2023-03-27 05:48:31 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc>http://www.mail-archive.com/public-webapps@w3.org/msg08218.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>46778</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="James Simonsen">simonjam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>bugs</cc>
    
    <cc>caustin</cc>
    
    <cc>eric</cc>
    
    <cc>mbelshe</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
    
    <cc>syoichi</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>259265</commentid>
    <comment_count>0</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-08-02 19:43:50 -0700</bug_when>
    <thetext>Add a priority attribute to XMLHttpRequest.

Spec is as discussed in this thread on public-webapps:

http://www.mail-archive.com/public-webapps@w3.org/msg08218.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259275</commentid>
    <comment_count>1</comment_count>
      <attachid>63294</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-08-02 20:15:27 -0700</bug_when>
    <thetext>Created attachment 63294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259402</commentid>
    <comment_count>2</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2010-08-03 06:00:47 -0700</bug_when>
    <thetext>I added a comment here: http://lists.w3.org/Archives/Public/public-webapps/2010JulSep/0338.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259422</commentid>
    <comment_count>3</comment_count>
      <attachid>63294</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-03 06:41:42 -0700</bug_when>
    <thetext>Comment on attachment 63294
Patch

This should at least be behind an ifdef, so that platforms that ignore this flag wouldn&apos;t look like they honor it to JS code. Maybe this shouldn&apos;t be in WebKit trunk at all, as it&apos;s purely an experiment.

+    const char* const names[5] = { &quot;critical&quot;, &quot;high&quot;, &quot;normal&quot;, &quot;low&quot;, &quot;lowest&quot; };

Normally, constants are numbers, not strings. See e.g. XMLHttpRequest.readyState.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259543</commentid>
    <comment_count>4</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-08-03 10:51:12 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 63294 [details])
&gt; This should at least be behind an ifdef, so that platforms that ignore this flag wouldn&apos;t look like they honor it to JS code. Maybe this shouldn&apos;t be in WebKit trunk at all, as it&apos;s purely an experiment.

The proposal (http://www.belshe.com/test/xmlhttprequest.priorities.html) says it&apos;s safe to ignore:

&quot;Browsers are not required to support the priority requested by applications, and may ignore it altogether.&quot;

I think it&apos;s fine that most WebKit implementations ignore it. Chrome will use it soon.

&gt; 
&gt; +    const char* const names[5] = { &quot;critical&quot;, &quot;high&quot;, &quot;normal&quot;, &quot;low&quot;, &quot;lowest&quot; };
&gt; 
&gt; Normally, constants are numbers, not strings. See e.g. XMLHttpRequest.readyState.

It&apos;s modeled after lineCap and lineJoin in the canvas tag. I think the thinking is that it&apos;d be easier to add to or change the priorities later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259544</commentid>
    <comment_count>5</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-08-03 10:51:46 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I added a comment here: http://lists.w3.org/Archives/Public/public-webapps/2010JulSep/0338.html

Sorry I missed that. I&apos;ll send a new patch in a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259599</commentid>
    <comment_count>6</comment_count>
      <attachid>63363</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-08-03 11:54:57 -0700</bug_when>
    <thetext>Created attachment 63363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259621</commentid>
    <comment_count>7</comment_count>
      <attachid>63363</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-03 12:31:09 -0700</bug_when>
    <thetext>Comment on attachment 63363
Patch

r- for the same reasons as before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260113</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-08-04 11:25:15 -0700</bug_when>
    <thetext>Guarding this behind a USE macro seems like the right thing to do.

Also, it&apos;s worth pointing out there is a mozilla patch (but it appears to be stalled):
https://bugzilla.mozilla.org/show_bug.cgi?id=559092

FWIW, the moz patch goes the route of a integral constants instead of strings like ap suggests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260129</commentid>
    <comment_count>9</comment_count>
    <who name="Mike Belshe">mbelshe</who>
    <bug_when>2010-08-04 11:45:49 -0700</bug_when>
    <thetext>To clarify the ints vs strings issue:
   - the very first draft (prior to feedback from the mlist) was ints.
   - the mozilla patch was implemented before the feedback and has not been committed (as far as I know)
   - based on mlist feedback we changed to strings

I don&apos;t think ints vs strings are critical, but the latest version is what we had achieved consensus around on the mlist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260189</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-04 13:30:19 -0700</bug_when>
    <thetext>&gt; Guarding this behind a USE macro seems like the right thing to do.

My understanding is that these should be ENABLE macros, not USE ones. I don&apos;t have a link to any document describing the differences, unfortunately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260369</commentid>
    <comment_count>11</comment_count>
      <attachid>63539</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-08-04 21:03:03 -0700</bug_when>
    <thetext>Created attachment 63539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260372</commentid>
    <comment_count>12</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-08-04 21:11:12 -0700</bug_when>
    <thetext>I&apos;ve added the ENABLE macro.

I left the enum as a string as it&apos;s defined in the proposal. I&apos;m happy to change it to ints if you&apos;d like, but I think we should change the proposal to match.

For the layout tests, I believe the correct thing to do is to have them expect to fail. Once this feature is enabled in Chrome (in a separate patch), I&apos;ll add a different -expected.txt for Chrome where all tests pass. Please let me know if this is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260434</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-04 23:55:31 -0700</bug_when>
    <thetext>Thanks for adding the ENABLE guards!

+FAIL xhr.priority should be normal (of type string). Was undefined (of type undefined).

I&apos;m not super happy with the addition of priority to xmlhttprequest-default-attributes test. Now we&apos;re getting a &quot;FAIL&quot; line in output for something that isn&apos;t a failure. This experimental feature may or may not get added to XHR spec, and may or may not be enabled in shipping products at some point, so startling developers with FAIL in common test results isn&apos;t great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260460</commentid>
    <comment_count>14</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2010-08-05 01:18:05 -0700</bug_when>
    <thetext>FYI, I expect to add this to the XMLHttpRequest Level 2 specification once I revised the original XMLHttpRequest test suite to match today&apos;s specification. I got nothing but positive feedback from people about this feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260474</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-05 02:16:09 -0700</bug_when>
    <thetext>Oh, interesting. In general, I&apos;m not thrilled by features that will likely be only used by 5-10 super incredibly optimized sites on the Web. If someone is willing to invest such enormous resources in optimizing a site (and manually specifying loading priorities is not easy), they are probably much better served by making a native application instead. For others, this is just an opportunity to make a mistake, and to slow down loading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260768</commentid>
    <comment_count>16</comment_count>
      <attachid>63617</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-08-05 12:25:03 -0700</bug_when>
    <thetext>Created attachment 63617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260770</commentid>
    <comment_count>17</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-08-05 12:27:42 -0700</bug_when>
    <thetext>I reverted the default value layout test and instead moved the priority default value test into the priority-enum layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261451</commentid>
    <comment_count>18</comment_count>
      <attachid>63617</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-06 14:08:09 -0700</bug_when>
    <thetext>Comment on attachment 63617
Patch

WebCore/xml/XMLHttpRequest.cpp:401
 +      const char* const names[5] = { &quot;critical&quot;, &quot;high&quot;, &quot;normal&quot;, &quot;low&quot;, &quot;lowest&quot; };
Since we have this list...

WebCore/xml/XMLHttpRequest.cpp:412
 +      if (s == &quot;critical&quot;) {
why not just use it here.  And use a for loop for the search?  Sure, it&apos;s &quot;slow&quot;, but this code is not hot.  And will be less code (and less error prone).

Otherwise this looks OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261453</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-06 14:09:21 -0700</bug_when>
    <thetext>I agree with AP that this is a bad feature.

I&apos;m not sure we want this in WebKit.  I think this is just going to cause trouble for sites and browsers and not speed up the web.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261454</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-06 14:09:35 -0700</bug_when>
    <thetext>I recommend we close this as WONTFIX.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261470</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-06 14:31:59 -0700</bug_when>
    <thetext>My r- is more about my preference for implementation using a for instead of an if cascade.  A &quot;nit&quot; for sure, but I think it might make the code slightly less error-prone.

I&apos;m ambivalent about this.  I feel very uninformed.  Mike Belshe attempted to inform me some this afternoon.

I don&apos;t wish to stand in the way of progress.

Mike explained that this is designed to be an experiment to see if better performance can be delivered to complex applications like Google Maps.  The &quot;priority&quot; level is intended as a hint to the browser, not as a service guarantee.

I wonder if the scheduling could/should be implemented at the WebCore level instead of in the network stack.  Maybe it has to be implemented in the network stack.

How does the &quot;priority&quot; of XHR requests relate to the priority of requests generated from the browser?

Mike mentions that the desire here is to have an experiment which can be run for a few (3-4) months.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261483</commentid>
    <comment_count>22</comment_count>
    <who name="Mike Belshe">mbelshe</who>
    <bug_when>2010-08-06 14:40:24 -0700</bug_when>
    <thetext>To clarify on some points for Eric:
* The browser implementation is intentionally left open so that we don&apos;t lock browsers into a very specific implementation.  Thus, the attribute is a hint, not a mandate.
* We intentionally designed it to be backward compatible with the existing API, and, it can also easily be removed with no negative effect.
* It&apos;s not true that this can be implemented completely in JS today.  In JS, you can schedule a lot of your own requests.  But, JS applications cannot schedule their requests with knowledge of other work the browser is doing, cannot understand network properties like if there is a proxy, if it is a high speed link, a slow-speed link, etc.
* Note that we specifically only applied it to XHR, which is already an advanced corner of the web.  It&apos;s not exposed onto HTML for a reason - to keep it as an advanced feature.

I do concede that we don&apos;t know that this will be a big win.  I&apos;d highly recommend most websites stay far away from this feature for a long time until it is thoroughly understood.  But I also know that we can&apos;t research and test it without getting this API plumbed through.

Finally, just to make sure people don&apos;t think this is willy-nilly, here is some history.
* Various teams have been asking chrome for this for some time (maybe a year?)
* We put together a proposal about 3 months ago after we had solid improvement data from what the maps team was able to do in JS alone.
* That proposal went over to the W3C, and had no real negative feedback (as Anne noted already)
* Here we are.

I hope this background is useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261552</commentid>
    <comment_count>23</comment_count>
      <attachid>63779</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-08-06 16:20:51 -0700</bug_when>
    <thetext>Created attachment 63779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262910</commentid>
    <comment_count>24</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-08-10 16:57:09 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; I wonder if the scheduling could/should be implemented at the WebCore level instead of in the network stack.  Maybe it has to be implemented in the network stack.

I think it&apos;s doable to implement this in WebCore. We&apos;d basically need to simulate the network layer&apos;s backlog when several XHRs have been sent from WebCore. I think we&apos;d do this by placing a cap on the number of XHRs sent to the network layer from WebCore and queuing those that exceed the cap based on the description in the proposed spec. I can hack this up in a separate bug.

Are there any further comments on this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274512</commentid>
    <comment_count>25</comment_count>
      <attachid>63779</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-06 00:02:16 -0700</bug_when>
    <thetext>Comment on attachment 63779
Patch

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

Nits below.  I don&apos;t have an opinion on whether WebKit wants this feature.

&gt; WebCore/xml/XMLHttpRequest.cpp:176
&gt; +#endif // ENABLE(XMLHTTPREQUEST_PRIORITY)
We don&apos;t need the comment here.

&gt; WebCore/xml/XMLHttpRequest.cpp:406
&gt; +void XMLHttpRequest::setPriority(const String&amp; s, ExceptionCode&amp; ec)
Please don&apos;t use one-letter variables names.  Perhaps s =&gt; priority ?

&gt; WebCore/xml/XMLHttpRequest.cpp:413
&gt; +    for (int i = 0; i &lt; 5; ++i) {
The magic constant 5 seems quite decoupled from the size of the array.  Do we have an arraysize macro in this code?  Failing that, a global constant used in place of each instance of 5 would be preferable.

&gt; WebCore/xml/XMLHttpRequest.cpp:418
&gt; +    }
I&apos;d assert the invariants of m_priority at the end of this function, just to be clear about what&apos;s going on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282528</commentid>
    <comment_count>26</comment_count>
      <attachid>68286</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-09-21 13:42:41 -0700</bug_when>
    <thetext>Created attachment 68286
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282534</commentid>
    <comment_count>27</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-09-21 13:48:15 -0700</bug_when>
    <thetext>Sorry for the extremely slow turnaround. I&apos;ve addressed all of your comments.

(In reply to comment #25)
&gt; (From update of attachment 63779 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=63779&amp;action=prettypatch
&gt; &gt; WebCore/xml/XMLHttpRequest.cpp:413
&gt; &gt; +    for (int i = 0; i &lt; 5; ++i) {
&gt; The magic constant 5 seems quite decoupled from the size of the array.  Do we have an arraysize macro in this code?  Failing that, a global constant used in place of each instance of 5 would be preferable.

I used sizeof(array)/sizeof(array[0]) and stored that in a global constant. This seems to be the common way for WebKit code to determine array size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292357</commentid>
    <comment_count>28</comment_count>
      <attachid>68286</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-10 12:43:40 -0700</bug_when>
    <thetext>Comment on attachment 68286
Patch

These ChangeLogs don&apos;t tell me anything interesting.  Why are we making this change?  Is there more that needs to be done to complete this feature?  etc.  Also, this patch doesn&apos;t seem to do anything.  Has this feature actually been added to the XMLHttpRequest spec?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292373</commentid>
    <comment_count>29</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2010-10-10 13:25:36 -0700</bug_when>
    <thetext>It&apos;s not. It is probably better implemented using a prefix for now, i.e. webkitPriority.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367649</commentid>
    <comment_count>30</comment_count>
    <who name="Olli Pettay (:smaug)">bugs</who>
    <bug_when>2011-03-15 07:23:02 -0700</bug_when>
    <thetext>What is the state of this bug?
I was thinking to update 
https://bugzilla.mozilla.org/show_bug.cgi?id=559092
but before doing that we should agree what the API should look like.

In my patch I was using consts, you&apos;re using string, although
internally those are just converted to consts.
I think we could just allow any
priority between some minimum (0?) and max(100?) and then
it is up to the implementation to use those values as hints.
Having numbers makes it easier to increase and decrease the values.
(Mozilla&apos;s implementation does allow changing priority while the
XHR is processing the request. It is then up to the network layer to
handle that change.)

So the API could be for example
XMLHttpRequest {
...
  const unsigned short LOW_PRIORITY = 0;
  const unsigned short HIGH_PRIORITY = 100;

  // when setting the value, if bigger than HIGH_PRIORITY
  // priorityHint is set to HIGH_PRIORITY.
  unsigned short priorityHint; 

}


Also, seems like your setPriority may throw an exception.
The patch for Mozilla doesn&apos;t do that.

And as Anne says, .priority should be prefixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367679</commentid>
    <comment_count>31</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-15 08:48:59 -0700</bug_when>
    <thetext>I still think that this would be a misfeature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367697</commentid>
    <comment_count>32</comment_count>
    <who name="Mike Belshe">mbelshe</who>
    <bug_when>2011-03-15 09:16:19 -0700</bug_when>
    <thetext>Since @ap replied that he thinks this is a misfeature, I wanted to counter that.

Support for XHR Prioritization:
1) Today browsers don&apos;t have a priority for XHR requests and cannot determine which order is best.  Apps can help browsers run faster by hinting at which requests are needed most.

2) The solution is simple, backward-compatible, easy to implement, and advisory.  It gives the browser more information to react intelligently without requiring specific behavior.

3) many websites today are writing their own XHR loaders to load all content in order to have priority based loading.  As they do this, they make it more difficult for the browser to help them going forward, and throw a lot of code into javascript.  These solutions are also sub-optimal, as a single webpage never has as much intelligence about network activity as the browser itself.  Sites known that do this today include Google (maps, search, docs, and others) and Facebook.  There are probably more.

4) as we build new web protocols which support priorities natively, XHR prioritization ensures that apps can leverage the new feature.

5) As Anne pointed out (comment #14), there really hasn&apos;t been any negative feedback on this feature from the XHR group.  


Negative comments on XHR Prioritization
1) ap (comment #15) said that he doesn&apos;t like features which are &quot;only used by 5-10 super incredibly optimized sites on the Web&quot;.  I&apos;d agree, except that those 5-10 websites represent a much larger percentage of web traffic.

2) the rest is syntax nits, and minor implementation notes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009338</commentid>
    <comment_count>33</comment_count>
    <who name="Chad Austin">caustin</who>
    <bug_when>2014-05-14 14:33:50 -0700</bug_when>
    <thetext>Hi,

For our WebGL application, we stream down hundreds of individual assets to load a scene.  Some of these assets (skeletons, meshes, low-res textures) are far more important than others (high-res textures).  In addition, some objects in a 3D scene are more important than others.  Your own 3D character is more important than others.  The room is more important than props in the room.

To minimize load times, we want to make full use of the customer&apos;s pipe while also receiving data in order of decreasing importance.

In our native applications, we have the ability to prioritize network traffic appropriately, but on the web, we don&apos;t.  Being able to prioritize XMLHttpRequest would be a large improvement to our customer experience.

Thanks,
Chad</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1944189</commentid>
    <comment_count>34</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2023-03-27 05:48:31 -0700</bug_when>
    <thetext>This did not get standardized and at this point XMLHttpRequest won&apos;t get new features, just bug fixes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63294</attachid>
            <date>2010-08-02 20:15:27 -0700</date>
            <delta_ts>2010-08-03 11:54:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43400-20100802201526.patch</filename>
            <type>text/plain</type>
            <size>9595</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YzU4OTIyMTc0MmIwNmJlZmQ1NjQzYTZjYzUzNWIwYzY5ZWE0MzFjLi5hMzVhNzFm
MTY2MGY0MDE3ZjU4OTJhNTQxMTI2OGNkYTcwZjZkMWIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDgtMDIgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW0rd2Via2l0QGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHBy
aW9yaXR5IGF0dHJpYnV0ZSB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM0MDAKKworICAgICAgICAqIGZhc3QveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWRlZmF1bHQtYXR0cmlidXRlcy5qczoK
KyAgICAgICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1w
cmlvcml0eS1lbnVtLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0L3ht
bGh0dHByZXF1ZXN0LWRlZmF1bHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVz
dC1wcmlvcml0eS1lbnVtLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA4LTAyICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCB0ZXN0IGV4cGVjdGF0
aW9uIHVwZGF0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtZGVmYXVsdC1hdHRyaWJ1dGVzLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtZGVmYXVsdC1h
dHRyaWJ1dGVzLmpzCmluZGV4IGFhMzUzMWVkMWU2MWFmY2M1ZGQ1ZmUzYWQ0N2ZhN2YyNWZhMjli
NDUuLmJjNTg1NTBmZTIzMzE1ZDQwM2YxN2VmYTEwM2Q3NThmOWMzZTk5OTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0
LWRlZmF1bHQtYXR0cmlidXRlcy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1kZWZhdWx0LWF0dHJpYnV0ZXMuanMKQEAgLTgs
NiArOCw3IEBAIHNob3VsZEJlTnVsbCgieGhyLm9ubG9hZCIpOwogc2hvdWxkQmVOdWxsKCJ4aHIu
b25sb2Fkc3RhcnQiKTsKIHNob3VsZEJlTnVsbCgieGhyLm9ucHJvZ3Jlc3MiKTsKIHNob3VsZEJl
TnVsbCgieGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSIpOworc2hvdWxkQmUoInhoci5wcmlvcml0eSIs
ICJcIm5vcm1hbFwiIik7CiBzaG91bGRCZSgieGhyLnJlYWR5U3RhdGUiLCAiMCIpOwogCiBzaG91
bGRCZU51bGwoInhoci51cGxvYWQub25hYm9ydCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZW51
bS5qcyBiL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHBy
ZXF1ZXN0LXByaW9yaXR5LWVudW0uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc1MGVlNTcyNWRjMzE4ODE3Nzdj
YjA1MzE1YzUyZmNmMzMwMTc5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0uanMK
QEAgLTAsMCArMSwzMiBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRo
ZSBYTUxIdHRwUmVxdWVzdCBhY2Nlc3NvcnMgd29yayBjb3JyZWN0bHkgYW5kIHJlamVjdCBpbnZh
bGlkIHZhbHVlcy4iKTsKKwordmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworCit4aHIu
cHJpb3JpdHkgPSAiY3JpdGljYWwiOworc2hvdWxkQmUoInhoci5wcmlvcml0eSIsICJcImNyaXRp
Y2FsXCIiKTsKKworeGhyLnByaW9yaXR5ID0gImhpZ2giOworc2hvdWxkQmUoInhoci5wcmlvcml0
eSIsICJcImhpZ2hcIiIpOworCit4aHIucHJpb3JpdHkgPSAibm9ybWFsIjsKK3Nob3VsZEJlKCJ4
aHIucHJpb3JpdHkiLCAiXCJub3JtYWxcIiIpOworCit4aHIucHJpb3JpdHkgPSAibG93IjsKK3No
b3VsZEJlKCJ4aHIucHJpb3JpdHkiLCAiXCJsb3dcIiIpOworCit4aHIucHJpb3JpdHkgPSAibG93
ZXN0IjsKK3Nob3VsZEJlKCJ4aHIucHJpb3JpdHkiLCAiXCJsb3dlc3RcIiIpOworCisvLyBUaGUg
Zm9sbG93aW5nIHZhbHVlcyBhcmUgaW52YWxpZC4gVGhlIGNoYW5nZXMgc2hvdWxkIGJlIHJlamVj
dGVkIGFuZCB0aGUgb2xkIHZhbHVlIHJldGFpbmVkLgorCit4aHIucHJpb3JpdHkgPSAiQ1JJVElD
QUwiOworc2hvdWxkQmUoInhoci5wcmlvcml0eSIsICJcImxvd2VzdFwiIik7CisKK3hoci5wcmlv
cml0eSA9ICJIaWdoIjsKK3Nob3VsZEJlKCJ4aHIucHJpb3JpdHkiLCAiXCJsb3dlc3RcIiIpOwor
Cit4aHIucHJpb3JpdHkgPSAiaW52YWxpZCI7CitzaG91bGRCZSgieGhyLnByaW9yaXR5IiwgIlwi
bG93ZXN0XCIiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZGVmYXVs
dC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3QtZGVmYXVsdC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBi
NDZiOWI3MWU4ZWY4OWM5OGY5ZmU3ZTQzZjZhMDgzMWI1MDk5MDQwLi42Zjc4MmIxNWE3MDQyZTBl
ZTIzOWY3MzBhZDc4YmQ3MmIwYTgyMDRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3ht
bGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWRlZmF1bHQtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1k
ZWZhdWx0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC05LDYgKzksNyBAQCBQQVNTIHhoci5v
bmxvYWQgaXMgbnVsbAogUEFTUyB4aHIub25sb2Fkc3RhcnQgaXMgbnVsbAogUEFTUyB4aHIub25w
cm9ncmVzcyBpcyBudWxsCiBQQVNTIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgaXMgbnVsbAorUEFT
UyB4aHIucHJpb3JpdHkgaXMgIm5vcm1hbCIKIFBBU1MgeGhyLnJlYWR5U3RhdGUgaXMgMAogUEFT
UyB4aHIudXBsb2FkLm9uYWJvcnQgaXMgbnVsbAogUEFTUyB4aHIudXBsb2FkLm9uZXJyb3IgaXMg
bnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRw
cmVxdWVzdC1wcmlvcml0eS1lbnVtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveG1s
aHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZW51bS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjlhZDVjNzkwYzUzOWY1YWE2MWJmZGFjZmVhMzYwMGY3ZmQ5YThkNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3QtcHJpb3JpdHktZW51bS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgdGhlIFhNTEh0dHBSZXF1ZXN0IGFjY2Vzc29ycyB3b3JrIGNvcnJlY3Rs
eSBhbmQgcmVqZWN0IGludmFsaWQgdmFsdWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyB4aHIucHJpb3JpdHkgaXMgImNyaXRpY2FsIgorUEFTUyB4aHIucHJpb3JpdHkg
aXMgImhpZ2giCitQQVNTIHhoci5wcmlvcml0eSBpcyAibm9ybWFsIgorUEFTUyB4aHIucHJpb3Jp
dHkgaXMgImxvdyIKK1BBU1MgeGhyLnByaW9yaXR5IGlzICJsb3dlc3QiCitQQVNTIHhoci5wcmlv
cml0eSBpcyAibG93ZXN0IgorUEFTUyB4aHIucHJpb3JpdHkgaXMgImxvd2VzdCIKK1BBU1MgeGhy
LnByaW9yaXR5IGlzICJsb3dlc3QiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NThjY2ExY2Y4Yzc4OTY1NThjMDM2NDdmYTgwYWQ5MzdlOTM0YzA4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1w
cmlvcml0eS1lbnVtLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJhNGY2YzQ5NWRlNTMyYTg3N2YzYmIzYzRjZWY4NDhl
NmFmYjYwOS4uNjRkNGQzMmRmMzlkNjBhZDAyMzM1YmQ3YzRkNTE0ZmZmYzY4YTFhYiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMSBAQAorMjAxMC0wOC0wMiAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbSt3ZWJraXRAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgcHJpb3JpdHkgYXR0cmlidXRlIHRvIFhNTEh0dHBSZXF1ZXN0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzQwMAorCisgICAgICAgIFRlc3Q6
IGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZW51bS5odG1sCisK
KyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3Q6OlhNTEh0dHBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0Ojpwcmlvcml0eSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6c2V0
UHJpb3JpdHkpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MSHR0cFJlcXVlc3Q6Oik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6Z2V0UHJpb3JpdHkpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGw6CisKIDIw
MTAtMDgtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCAzZTc2
NDA3YWMxOTBmN2ZiYjgxZjg3ODcwZTEzMjI5MzEwOWU1YWY1Li4wN2NhN2QyODMwYTY5NjYxMjcy
MDBkYjU3NGJkNzExYzM3YjNhM2UwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0xNzEsNiAr
MTcxLDcgQEAgWE1MSHR0cFJlcXVlc3Q6OlhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKICAg
ICAsIG1fYXN5bmModHJ1ZSkKICAgICAsIG1faW5jbHVkZUNyZWRlbnRpYWxzKGZhbHNlKQorICAg
ICwgbV9wcmlvcml0eShOT1JNQUwpCiAgICAgLCBtX3N0YXRlKFVOU0VOVCkKICAgICAsIG1fcmVz
cG9uc2VUZXh0KCIiKQogICAgICwgbV9jcmVhdGVkRG9jdW1lbnQoZmFsc2UpCkBAIC0zOTAsNiAr
MzkxLDI4IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2Qs
IGNvbnN0IEtVUkwmIHVybCwgYm9vbCBhc3luYywgY29uCiAgICAgb3BlbihtZXRob2QsIHVybFdp
dGhDcmVkZW50aWFscywgYXN5bmMsIGVjKTsKIH0KIAorU3RyaW5nIFhNTEh0dHBSZXF1ZXN0Ojpw
cmlvcml0eSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fcHJpb3JpdHkgPj0gMCk7CisgICAgQVNT
RVJUKG1fcHJpb3JpdHkgPCA1KTsKKyAgICBjb25zdCBjaGFyKiBjb25zdCBuYW1lc1s1XSA9IHsg
ImNyaXRpY2FsIiwgImhpZ2giLCAibm9ybWFsIiwgImxvdyIsICJsb3dlc3QiIH07CisgICAgcmV0
dXJuIG5hbWVzW21fcHJpb3JpdHldOworfQorCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRQcmlv
cml0eShjb25zdCBTdHJpbmcmIHMpCit7CisgICAgaWYgKHMgPT0gImNyaXRpY2FsIikKKyAgICAg
ICAgbV9wcmlvcml0eSA9IENSSVRJQ0FMOworICAgIGVsc2UgaWYgKHMgPT0gImhpZ2giKQorICAg
ICAgICBtX3ByaW9yaXR5ID0gSElHSDsKKyAgICBlbHNlIGlmIChzID09ICJub3JtYWwiKQorICAg
ICAgICBtX3ByaW9yaXR5ID0gTk9STUFMOworICAgIGVsc2UgaWYgKHMgPT0gImxvdyIpCisgICAg
ICAgIG1fcHJpb3JpdHkgPSBMT1c7CisgICAgZWxzZSBpZiAocyA9PSAibG93ZXN0IikKKyAgICAg
ICAgbV9wcmlvcml0eSA9IExPV0VTVDsKK30KKwogYm9vbCBYTUxIdHRwUmVxdWVzdDo6aW5pdFNl
bmQoRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCBjYTMwOGNjNDU2OWU4YzkzOGYzOGEyNTgyYTQ0Mjhj
Mjg0N2NmNjYzLi5iZjBiNWQzMTQ4ZWVjMmEwMWQyNzZkZjMyNzE0MzEyZjQ4ZDE4YWFmIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmgKQEAgLTU1LDYgKzU1LDE0IEBAIHB1YmxpYzoKICAgICAgICAgRE9ORSA9
IDQKICAgICB9OwogCisgICAgZW51bSBQcmlvcml0eSB7CisgICAgICAgIENSSVRJQ0FMID0gMCwK
KyAgICAgICAgSElHSCA9IDEsCisgICAgICAgIE5PUk1BTCA9IDIsCisgICAgICAgIExPVyA9IDMs
CisgICAgICAgIExPV0VTVCA9IDQKKyAgICB9OworCiAgICAgdmlydHVhbCBYTUxIdHRwUmVxdWVz
dCogdG9YTUxIdHRwUmVxdWVzdCgpIHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBjb250ZXh0RGVzdHJveWVkKCk7CkBAIC03NCw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IG9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBL
VVJMJiwgYm9vbCBhc3luYywgY29uc3QgU3RyaW5nJiB1c2VyLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBLVVJMJiwgYm9vbCBhc3lu
YywgY29uc3QgU3RyaW5nJiB1c2VyLCBjb25zdCBTdHJpbmcmIHBhc3N3b3JkLCBFeGNlcHRpb25D
b2RlJik7CisgICAgU3RyaW5nIHByaW9yaXR5KCkgY29uc3Q7CisgICAgdm9pZCBzZXRQcmlvcml0
eShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNlbmQoRXhjZXB0aW9uQ29kZSYpOwogICAgIHZv
aWQgc2VuZChEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNlbmQoY29uc3Qg
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtODgsNiArOTgsNyBAQCBwdWJsaWM6CiAgICAg
RG9jdW1lbnQqIHJlc3BvbnNlWE1MKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMYXN0U2VuZExpbmVO
dW1iZXIodW5zaWduZWQgbGluZU51bWJlcikgeyBtX2xhc3RTZW5kTGluZU51bWJlciA9IGxpbmVO
dW1iZXI7IH0KICAgICB2b2lkIHNldExhc3RTZW5kVVJMKGNvbnN0IFN0cmluZyYgdXJsKSB7IG1f
bGFzdFNlbmRVUkwgPSB1cmw7IH0KKyAgICBQcmlvcml0eSBnZXRQcmlvcml0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJpb3JpdHk7IH0KIAogICAgIFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiB1cGxvYWQo
KTsKICAgICBYTUxIdHRwUmVxdWVzdFVwbG9hZCogb3B0aW9uYWxVcGxvYWQoKSBjb25zdCB7IHJl
dHVybiBtX3VwbG9hZC5nZXQoKTsgfQpAQCAtMTU1LDYgKzE2Niw3IEBAIHByaXZhdGU6CiAgICAg
U3RyaW5nIG1fbWltZVR5cGVPdmVycmlkZTsKICAgICBib29sIG1fYXN5bmM7CiAgICAgYm9vbCBt
X2luY2x1ZGVDcmVkZW50aWFsczsKKyAgICBQcmlvcml0eSBtX3ByaW9yaXR5OwogCiAgICAgUmVm
UHRyPFRocmVhZGFibGVMb2FkZXI+IG1fbG9hZGVyOwogICAgIFN0YXRlIG1fc3RhdGU7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwgYi9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5pZGwKaW5kZXggNTg0MTNmZjM1Y2I5NTA4Nzg3ZWE4NDAxNzQzYzk0NmFlYmU3
MjU0NC4uMmZiZjIzZTA0NzhkY2Q5ZjkzNjE5ZDI0YmQ3ZDMwMDQzZWZmYjNkNSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCisrKyBiL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmlkbApAQCAtNjgsNiArNjgsNyBAQCBtb2R1bGUgeG1sIHsKICAgICAgICAgW1Jl
cXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldFJlcXVlc3RIZWFkZXIoaW4gRE9NU3Ry
aW5nIGhlYWRlciwgaW4gRE9NU3RyaW5nIHZhbHVlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKKyAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIHByaW9yaXR5OwogICAgICAgICAvLyB2b2lkIHNlbmQoKTsKICAgICAgICAgLy8g
dm9pZCBzZW5kKGluIERPTVN0cmluZyBkYXRhKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZW5k
KGluIERvY3VtZW50IGRhdGEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63363</attachid>
            <date>2010-08-03 11:54:57 -0700</date>
            <delta_ts>2010-08-04 21:03:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43400-20100803115456.patch</filename>
            <type>text/plain</type>
            <size>10439</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyYzE2NDNiMjQ4YmU3NmRi
MDk2ZjM0Zjg2YWUzMWE0MzE4Y2NmMDJmLi5kNzI2NTQ2MmI2ZTcwYjA1N2RkOTlmNzI3MmE3MTQ4
NDU5OWJkNDg3IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTAtMDgtMDIgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW0rd2Via2l0QGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIHByaW9yaXR5IGF0dHJpYnV0ZSB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM0MDAKKworICAgICAgICAqIFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpYTUxIdHRwUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6cHJpb3JpdHkpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFByaW9y
aXR5KToKKyAgICAgICAgKiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAo
V2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6Oik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6Z2V0UHJpb3JpdHkpOgorICAgICAgICAqIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmlkbDoKKwogMjAxMC0wOC0wMiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVjNTg5MjIxNzQyYjA2
YmVmZDU2NDNhNmNjNTM1YjBjNjllYTQzMWMuLmEzNWE3MWYxNjYwZjQwMTdmNTg5MmE1NDExMjY4
Y2RhNzBmNmQxYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOC0wMiAgSmFtZXMgU2lt
b25zZW4gIDxzaW1vbmphbSt3ZWJraXRAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcHJpb3JpdHkgYXR0cmlidXRlIHRvIFhN
TEh0dHBSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MzQwMAorCisgICAgICAgICogZmFzdC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1s
aHR0cHJlcXVlc3QtZGVmYXVsdC1hdHRyaWJ1dGVzLmpzOgorICAgICAgICAqIGZhc3QveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0uanM6IEFkZGVk
LgorICAgICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZGVmYXVsdC1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0L3ht
bGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0uaHRtbDog
QWRkZWQuCisKIDIwMTAtMDgtMDIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRpb24gdXBkYXRlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVz
dC1kZWZhdWx0LWF0dHJpYnV0ZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1kZWZhdWx0LWF0dHJpYnV0ZXMuanMKaW5kZXggYWEz
NTMxZWQxZTYxYWZjYzVkZDVmZTNhZDQ3ZmE3ZjI1ZmEyOWI0NS4uYmM1ODU1MGZlMjMzMTVkNDAz
ZjE3ZWZhMTAzZDc1OGY5YzNlOTk5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtZGVmYXVsdC1hdHRyaWJ1dGVzLmpz
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHBy
ZXF1ZXN0LWRlZmF1bHQtYXR0cmlidXRlcy5qcwpAQCAtOCw2ICs4LDcgQEAgc2hvdWxkQmVOdWxs
KCJ4aHIub25sb2FkIik7CiBzaG91bGRCZU51bGwoInhoci5vbmxvYWRzdGFydCIpOwogc2hvdWxk
QmVOdWxsKCJ4aHIub25wcm9ncmVzcyIpOwogc2hvdWxkQmVOdWxsKCJ4aHIub25yZWFkeXN0YXRl
Y2hhbmdlIik7CitzaG91bGRCZSgieGhyLnByaW9yaXR5IiwgIlwibm9ybWFsXCIiKTsKIHNob3Vs
ZEJlKCJ4aHIucmVhZHlTdGF0ZSIsICIwIik7CiAKIHNob3VsZEJlTnVsbCgieGhyLnVwbG9hZC5v
bmFib3J0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3Jl
c291cmNlcy94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZW51bS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40ODc3MmUxY2JmYWQxYjNmMmExM2Y2YTQ2MzBjOWUxMGQyMGE1NDY5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC9yZXNvdXJj
ZXMveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZW51bS5qcwpAQCAtMCwwICsxLDQwIEBACitkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIFhNTEh0dHBSZXF1ZXN0IGFjY2Vz
c29ycyB3b3JrIGNvcnJlY3RseSBhbmQgcmVqZWN0cyBpbnZhbGlkIHZhbHVlcy4iKTsKKwordmFy
IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworCitmdW5jdGlvbiBzZXRQcmlvcml0eUFuZEV4
cGVjdFZhbHVlKHZhbHVlVG9TZXQsIGV4cGVjdGVkUmVzdWx0KSB7CisgIHhoci5wcmlvcml0eSA9
IHZhbHVlVG9TZXQ7CisgIHNob3VsZEJlKCJ4aHIucHJpb3JpdHkiLCBleHBlY3RlZFJlc3VsdCk7
Cit9CisKK2Z1bmN0aW9uIHNldFByaW9yaXR5QW5kRXhwZWN0RXhjZXB0aW9uKCkgeworICB0cnkg
eworICAgIHhoci5wcmlvcml0eSA9ICJjcml0aWNhbCI7CisgIH0gY2F0Y2ggKGVycikgeworICAg
IGUgPSBlcnI7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLnRvU3RyaW5nKCkiLCAiRXJy
b3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExIik7CisgIH0KK30KKworLy8g
QmVmb3JlIG9wZW5pbmcgdGhlIHJlcXVlc3QsIGl0J3MgaW52YWxpZCB0byBjaGFuZ2UgcHJpb3Jp
dHkuCitzZXRQcmlvcml0eUFuZEV4cGVjdEV4Y2VwdGlvbigpOworeGhyLm9wZW4oIkdFVCIsICIu
Li94bWxodHRwcmVxdWVzdC1uby1maWxlLWFjY2Vzcy1leHBlY3RlZC50eHQiLCBmYWxzZSk7CisK
Ky8vIFRoZXNlIHByaW9yaXR5IGNoYW5nZXMgYXJlIHZhbGlkIGFuZCBzaG91bGQgcmVzdWx0IGlu
IHRoZSB2YWx1ZSBjaGFuZ2luZy4KK3NldFByaW9yaXR5QW5kRXhwZWN0VmFsdWUoImNyaXRpY2Fs
IiwgIlwiY3JpdGljYWxcIiIpOworc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1ZSgiaGlnaCIsICJc
ImhpZ2hcIiIpOworc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1ZSgibm9ybWFsIiwgIlwibm9ybWFs
XCIiKTsKK3NldFByaW9yaXR5QW5kRXhwZWN0VmFsdWUoImxvdyIsICJcImxvd1wiIik7CitzZXRQ
cmlvcml0eUFuZEV4cGVjdFZhbHVlKCJsb3dlc3QiLCAiXCJsb3dlc3RcIiIpOworCisvLyBUaGUg
Zm9sbG93aW5nIHZhbHVlcyBhcmUgaW52YWxpZC4gVGhlIGNoYW5nZXMgc2hvdWxkIGJlIHJlamVj
dGVkIGFuZCB0aGUgb2xkIHZhbHVlIHJldGFpbmVkLgorc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1
ZSgiQ1JJVElDQUwiLCAiXCJsb3dlc3RcIiIpOworc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1ZSgi
SGlnaCIsICJcImxvd2VzdFwiIik7CitzZXRQcmlvcml0eUFuZEV4cGVjdFZhbHVlKCJpbnZhbGlk
IiwgIlwibG93ZXN0XCIiKTsKKworLy8gQWZ0ZXIgc2VuZGluZywgaXQncyBub3cgaW52YWxpZCB0
byBjaGFuZ2UgcHJpb3JpdHkuCit4aHIuc2VuZCgpOworc2V0UHJpb3JpdHlBbmRFeHBlY3RFeGNl
cHRpb24oKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZGVmYXVsdC1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtZGVmYXVsdC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBiNDZi
OWI3MWU4ZWY4OWM5OGY5ZmU3ZTQzZjZhMDgzMWI1MDk5MDQwLi42Zjc4MmIxNWE3MDQyZTBlZTIz
OWY3MzBhZDc4YmQ3MmIwYTgyMDRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3htbGh0
dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWRlZmF1bHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1kZWZh
dWx0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC05LDYgKzksNyBAQCBQQVNTIHhoci5vbmxv
YWQgaXMgbnVsbAogUEFTUyB4aHIub25sb2Fkc3RhcnQgaXMgbnVsbAogUEFTUyB4aHIub25wcm9n
cmVzcyBpcyBudWxsCiBQQVNTIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgaXMgbnVsbAorUEFTUyB4
aHIucHJpb3JpdHkgaXMgIm5vcm1hbCIKIFBBU1MgeGhyLnJlYWR5U3RhdGUgaXMgMAogUEFTUyB4
aHIudXBsb2FkLm9uYWJvcnQgaXMgbnVsbAogUEFTUyB4aHIudXBsb2FkLm9uZXJyb3IgaXMgbnVs
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVx
dWVzdC1wcmlvcml0eS1lbnVtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveG1saHR0
cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZW51bS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGNiNjQ1OWJiYTI0NzRhNWVhMmE1MzUyOWNiMmU5Yjk1YThlYWRjMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qt
cHJpb3JpdHktZW51bS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0IHZl
cmlmaWVzIHRoYXQgdGhlIFhNTEh0dHBSZXF1ZXN0IGFjY2Vzc29ycyB3b3JrIGNvcnJlY3RseSBh
bmQgcmVqZWN0cyBpbnZhbGlkIHZhbHVlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgZS50b1N0cmluZygpIGlzICJFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEiCitQQVNTIHhoci5wcmlvcml0eSBpcyAiY3JpdGljYWwiCitQQVNTIHhoci5w
cmlvcml0eSBpcyAiaGlnaCIKK1BBU1MgeGhyLnByaW9yaXR5IGlzICJub3JtYWwiCitQQVNTIHho
ci5wcmlvcml0eSBpcyAibG93IgorUEFTUyB4aHIucHJpb3JpdHkgaXMgImxvd2VzdCIKK1BBU1Mg
eGhyLnByaW9yaXR5IGlzICJsb3dlc3QiCitQQVNTIHhoci5wcmlvcml0eSBpcyAibG93ZXN0Igor
UEFTUyB4aHIucHJpb3JpdHkgaXMgImxvd2VzdCIKK1BBU1MgZS50b1N0cmluZygpIGlzICJFcnJv
cjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXByaW9yaXR5
LWVudW0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NThjY2ExY2Y4Yzc4OTY1NThjMDM2NDdmYTgwYWQ5Mzdl
OTM0YzA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy94bWxodHRwcmVxdWVzdC1wcmlv
cml0eS1lbnVtLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcAppbmRleCAzZTc2NDA3YWMxOTBmN2ZiYjgxZjg3ODcwZTEzMjI5MzEwOWU1YWY1Li5iMjU0
MTUwNGI1MGMxZmViMTNkZmI5OWFlZjZjZTVlYjU2MDIzZjljIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwCkBAIC0xNzEsNiArMTcxLDcgQEAgWE1MSHR0cFJlcXVlc3Q6OlhNTEh0dHBSZXF1ZXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29u
dGV4dCwgdGhpcykKICAgICAsIG1fYXN5bmModHJ1ZSkKICAgICAsIG1faW5jbHVkZUNyZWRlbnRp
YWxzKGZhbHNlKQorICAgICwgbV9wcmlvcml0eShOT1JNQUwpCiAgICAgLCBtX3N0YXRlKFVOU0VO
VCkKICAgICAsIG1fcmVzcG9uc2VUZXh0KCIiKQogICAgICwgbV9jcmVhdGVkRG9jdW1lbnQoZmFs
c2UpCkBAIC0zOTAsNiArMzkxLDM0IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3Qg
U3RyaW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBhc3luYywgY29uCiAgICAgb3Bl
bihtZXRob2QsIHVybFdpdGhDcmVkZW50aWFscywgYXN5bmMsIGVjKTsKIH0KIAorU3RyaW5nIFhN
TEh0dHBSZXF1ZXN0Ojpwcmlvcml0eSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fcHJpb3JpdHkg
Pj0gMCk7CisgICAgQVNTRVJUKG1fcHJpb3JpdHkgPCA1KTsKKyAgICBjb25zdCBjaGFyKiBjb25z
dCBuYW1lc1s1XSA9IHsgImNyaXRpY2FsIiwgImhpZ2giLCAibm9ybWFsIiwgImxvdyIsICJsb3dl
c3QiIH07CisgICAgcmV0dXJuIG5hbWVzW21fcHJpb3JpdHldOworfQorCit2b2lkIFhNTEh0dHBS
ZXF1ZXN0OjpzZXRQcmlvcml0eShjb25zdCBTdHJpbmcmIHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIGlmIChtX3N0YXRlICE9IE9QRU5FRCB8fCBtX2xvYWRlcikgeworICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHMg
PT0gImNyaXRpY2FsIikgeworICAgICAgICBtX3ByaW9yaXR5ID0gQ1JJVElDQUw7CisgICAgfSBl
bHNlIGlmIChzID09ICJoaWdoIikgeworICAgICAgICBtX3ByaW9yaXR5ID0gSElHSDsKKyAgICB9
IGVsc2UgaWYgKHMgPT0gIm5vcm1hbCIpIHsKKyAgICAgICAgbV9wcmlvcml0eSA9IE5PUk1BTDsK
KyAgICB9IGVsc2UgaWYgKHMgPT0gImxvdyIpIHsKKyAgICAgICAgbV9wcmlvcml0eSA9IExPVzsK
KyAgICB9IGVsc2UgaWYgKHMgPT0gImxvd2VzdCIpIHsKKyAgICAgICAgbV9wcmlvcml0eSA9IExP
V0VTVDsKKyAgICB9Cit9CisKIGJvb2wgWE1MSHR0cFJlcXVlc3Q6OmluaXRTZW5kKEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmgKaW5kZXggY2EzMDhjYzQ1NjllOGM5MzhmMzhhMjU4MmE0NDI4YzI4NDdjZjY2My4u
ZDc4YjVkNGQ4ZDdiODk0Mzc3MDE0OGNjMzQ0ZDFjYjFmNDJmYTUwZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5oCkBAIC01NSw2ICs1NSwxNCBAQCBwdWJsaWM6CiAgICAgICAgIERPTkUgPSA0CiAgICAgfTsK
IAorICAgIGVudW0gUHJpb3JpdHkgeworICAgICAgICBDUklUSUNBTCA9IDAsCisgICAgICAgIEhJ
R0ggPSAxLAorICAgICAgICBOT1JNQUwgPSAyLAorICAgICAgICBMT1cgPSAzLAorICAgICAgICBM
T1dFU1QgPSA0CisgICAgfTsKKwogICAgIHZpcnR1YWwgWE1MSHR0cFJlcXVlc3QqIHRvWE1MSHR0
cFJlcXVlc3QoKSB7IHJldHVybiB0aGlzOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERl
c3Ryb3llZCgpOwpAQCAtNzQsNiArODIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBvcGVuKGNvbnN0
IFN0cmluZyYgbWV0aG9kLCBjb25zdCBLVVJMJiwgYm9vbCBhc3luYywgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgS1VSTCYsIGJvb2wg
YXN5bmMsIGNvbnN0IFN0cmluZyYgdXNlciwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgb3Bl
bihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgS1VSTCYsIGJvb2wgYXN5bmMsIGNvbnN0IFN0
cmluZyYgdXNlciwgY29uc3QgU3RyaW5nJiBwYXNzd29yZCwgRXhjZXB0aW9uQ29kZSYpOworICAg
IFN0cmluZyBwcmlvcml0eSgpIGNvbnN0OworICAgIHZvaWQgc2V0UHJpb3JpdHkoY29uc3QgU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2VuZChFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBzZW5kKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2VuZChj
b25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CkBAIC04OCw2ICs5OCw3IEBAIHB1YmxpYzoK
ICAgICBEb2N1bWVudCogcmVzcG9uc2VYTUwoKSBjb25zdDsKICAgICB2b2lkIHNldExhc3RTZW5k
TGluZU51bWJlcih1bnNpZ25lZCBsaW5lTnVtYmVyKSB7IG1fbGFzdFNlbmRMaW5lTnVtYmVyID0g
bGluZU51bWJlcjsgfQogICAgIHZvaWQgc2V0TGFzdFNlbmRVUkwoY29uc3QgU3RyaW5nJiB1cmwp
IHsgbV9sYXN0U2VuZFVSTCA9IHVybDsgfQorICAgIFByaW9yaXR5IGdldFByaW9yaXR5KCkgY29u
c3QgeyByZXR1cm4gbV9wcmlvcml0eTsgfQogCiAgICAgWE1MSHR0cFJlcXVlc3RVcGxvYWQqIHVw
bG9hZCgpOwogICAgIFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiBvcHRpb25hbFVwbG9hZCgpIGNvbnN0
IHsgcmV0dXJuIG1fdXBsb2FkLmdldCgpOyB9CkBAIC0xNTUsNiArMTY2LDcgQEAgcHJpdmF0ZToK
ICAgICBTdHJpbmcgbV9taW1lVHlwZU92ZXJyaWRlOwogICAgIGJvb2wgbV9hc3luYzsKICAgICBi
b29sIG1faW5jbHVkZUNyZWRlbnRpYWxzOworICAgIFByaW9yaXR5IG1fcHJpb3JpdHk7CiAKICAg
ICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gbV9sb2FkZXI7CiAgICAgU3RhdGUgbV9zdGF0ZTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbCBiL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmlkbAppbmRleCA1ODQxM2ZmMzVjYjk1MDg3ODdlYTg0MDE3NDNjOTQ2
YWViZTcyNTQ0Li4xMjQ0ZWFmNzM2MWFlNDVmYTJjOTA3YzAwYTE3NDQ1OWE2OTY4OWVkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKKysrIGIvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuaWRsCkBAIC02OCw2ICs2OCw4IEBAIG1vZHVsZSB4bWwgewogICAgICAg
ICBbUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0UmVxdWVzdEhlYWRlcihpbiBE
T01TdHJpbmcgaGVhZGVyLCBpbiBET01TdHJpbmcgdmFsdWUpCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKIAorICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgcHJpb3JpdHkKKyAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgLy8gdm9pZCBzZW5kKCk7CiAgICAgICAgIC8vIHZvaWQgc2VuZChp
biBET01TdHJpbmcgZGF0YSk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2VuZChpbiBEb2N1bWVu
dCBkYXRhKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63539</attachid>
            <date>2010-08-04 21:03:03 -0700</date>
            <delta_ts>2010-08-05 12:24:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43400-20100804210302.patch</filename>
            <type>text/plain</type>
            <size>11087</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlMTdhMWY1YzE4NzJjMDIw
MDMyNzUzNmI4NzQ4YzQ0YTdlYTk0ZmU2Li4xMzRlZWY3ZmYyMTAxZjI2YmRkOGJkODQxMDlkMDFi
N2Y3ZjZhYTdkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTAtMDgtMDQgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW0rd2Via2l0QGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIHByaW9yaXR5IGF0dHJpYnV0ZSB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM0MDAKKworICAgICAgICAqIFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpYTUxIdHRwUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6cHJpb3JpdHkpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFByaW9y
aXR5KToKKyAgICAgICAgKiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAo
V2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6Oik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6Z2V0UHJpb3JpdHkpOgorICAgICAgICAqIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmlkbDoKKwogMjAxMC0wOC0wNCAgU2lkZGhhcnRoIE1hdGh1ciAgPHNpZGRoYXJ0aC5tYXRodXJA
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IExhc3psbyBHb21ib3MuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YjM5ZDM5NjgwODg0NzRiNTBlMTNkZDcxMTgxZWQzZmRjMTZlOGIzMS4uYjE1MTBkMTlmMGMzMzVk
ZDQ1MDhiYjU2MWIyY2MyYTQ4ZTkxOWQyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA4
LTA0ICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtK3dlYmtpdEBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwcmlvcml0eSBh
dHRyaWJ1dGUgdG8gWE1MSHR0cFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQzNDAwCisKKyAgICAgICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1kZWZhdWx0LWF0dHJpYnV0ZXMuanM6CisgICAgICAg
ICogZmFzdC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtcHJpb3JpdHkt
ZW51bS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVx
dWVzdC1kZWZhdWx0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QveG1s
aHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZW51bS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcHJpb3Jp
dHktZW51bS5odG1sOiBBZGRlZC4KKwogMjAxMC0wOC0wNCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjY0Njc0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMveG1saHR0cHJlcXVlc3QtZGVmYXVsdC1hdHRyaWJ1dGVzLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtZGVmYXVsdC1hdHRy
aWJ1dGVzLmpzCmluZGV4IGFhMzUzMWVkMWU2MWFmY2M1ZGQ1ZmUzYWQ0N2ZhN2YyNWZhMjliNDUu
LmJjNTg1NTBmZTIzMzE1ZDQwM2YxN2VmYTEwM2Q3NThmOWMzZTk5OTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWRl
ZmF1bHQtYXR0cmlidXRlcy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1kZWZhdWx0LWF0dHJpYnV0ZXMuanMKQEAgLTgsNiAr
OCw3IEBAIHNob3VsZEJlTnVsbCgieGhyLm9ubG9hZCIpOwogc2hvdWxkQmVOdWxsKCJ4aHIub25s
b2Fkc3RhcnQiKTsKIHNob3VsZEJlTnVsbCgieGhyLm9ucHJvZ3Jlc3MiKTsKIHNob3VsZEJlTnVs
bCgieGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSIpOworc2hvdWxkQmUoInhoci5wcmlvcml0eSIsICJc
Im5vcm1hbFwiIik7CiBzaG91bGRCZSgieGhyLnJlYWR5U3RhdGUiLCAiMCIpOwogCiBzaG91bGRC
ZU51bGwoInhoci51cGxvYWQub25hYm9ydCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZW51bS5q
cyBiL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1
ZXN0LXByaW9yaXR5LWVudW0uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI3NzE2ZGQ2M2YzODQ1Mzc2MTdiOTI0
NDhkZTY1Yzk1NDY4MTA5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveG1s
aHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0uanMKQEAg
LTAsMCArMSwzMSBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBY
TUxIdHRwUmVxdWVzdCBhY2Nlc3NvcnMgd29yayBjb3JyZWN0bHkgYW5kIHJlamVjdHMgaW52YWxp
ZCB2YWx1ZXMuIE1hbnkgdGVzdHMgd2lsbCBmYWlsIGlmIEVOQUJMRV9YTUxIVFRQUkVRVUVTVF9Q
UklPUklUWSBpcyB1bnNldC4iKTsKKwordmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwor
CitmdW5jdGlvbiBzZXRQcmlvcml0eUFuZEV4cGVjdFZhbHVlKHZhbHVlVG9TZXQsIGV4cGVjdGVk
UmVzdWx0KSB7CisgIHhoci5wcmlvcml0eSA9IHZhbHVlVG9TZXQ7CisgIHNob3VsZEJlKCJ4aHIu
cHJpb3JpdHkiLCBleHBlY3RlZFJlc3VsdCk7Cit9CisKKy8vIEJlZm9yZSBvcGVuaW5nIHRoZSBy
ZXF1ZXN0LCBpdCdzIGludmFsaWQgdG8gY2hhbmdlIHByaW9yaXR5Lgorc2hvdWxkVGhyb3coInho
ci5wcmlvcml0eSA9IFwiY3JpdGljYWxcIiIpOworeGhyLm9wZW4oIkdFVCIsICIuLi94bWxodHRw
cmVxdWVzdC1uby1maWxlLWFjY2Vzcy1leHBlY3RlZC50eHQiLCBmYWxzZSk7CisKKy8vIFRoZXNl
IHByaW9yaXR5IGNoYW5nZXMgYXJlIHZhbGlkIGFuZCBzaG91bGQgcmVzdWx0IGluIHRoZSB2YWx1
ZSBjaGFuZ2luZy4KK3NldFByaW9yaXR5QW5kRXhwZWN0VmFsdWUoImNyaXRpY2FsIiwgIlwiY3Jp
dGljYWxcIiIpOworc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1ZSgiaGlnaCIsICJcImhpZ2hcIiIp
Oworc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1ZSgibm9ybWFsIiwgIlwibm9ybWFsXCIiKTsKK3Nl
dFByaW9yaXR5QW5kRXhwZWN0VmFsdWUoImxvdyIsICJcImxvd1wiIik7CitzZXRQcmlvcml0eUFu
ZEV4cGVjdFZhbHVlKCJsb3dlc3QiLCAiXCJsb3dlc3RcIiIpOworCisvLyBUaGUgZm9sbG93aW5n
IHZhbHVlcyBhcmUgaW52YWxpZC4gVGhlIGNoYW5nZXMgc2hvdWxkIGJlIHJlamVjdGVkIGFuZCB0
aGUgb2xkIHZhbHVlIHJldGFpbmVkLgorc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1ZSgiQ1JJVElD
QUwiLCAiXCJsb3dlc3RcIiIpOworc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1ZSgiSGlnaCIsICJc
Imxvd2VzdFwiIik7CitzZXRQcmlvcml0eUFuZEV4cGVjdFZhbHVlKCJpbnZhbGlkIiwgIlwibG93
ZXN0XCIiKTsKKworLy8gQWZ0ZXIgc2VuZGluZywgaXQncyBub3cgaW52YWxpZCB0byBjaGFuZ2Ug
cHJpb3JpdHkuCit4aHIuc2VuZCgpOworc2hvdWxkVGhyb3coInhoci5wcmlvcml0eSA9IFwiY3Jp
dGljYWxcIiIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1kZWZhdWx0
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1kZWZhdWx0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGI0
NmI5YjcxZThlZjg5Yzk4ZjlmZTdlNDNmNmEwODMxYjUwOTkwNDAuLjU2ODgwYTZiNTAxYTM4ZTll
NTYzYTU4YmYyZWYzYWYwNDE2OWJlZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QveG1s
aHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZGVmYXVsdC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWRl
ZmF1bHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTksNiArOSw3IEBAIFBBU1MgeGhyLm9u
bG9hZCBpcyBudWxsCiBQQVNTIHhoci5vbmxvYWRzdGFydCBpcyBudWxsCiBQQVNTIHhoci5vbnBy
b2dyZXNzIGlzIG51bGwKIFBBU1MgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSBpcyBudWxsCitGQUlM
IHhoci5wcmlvcml0eSBzaG91bGQgYmUgbm9ybWFsIChvZiB0eXBlIHN0cmluZykuIFdhcyB1bmRl
ZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KIFBBU1MgeGhyLnJlYWR5U3RhdGUgaXMgMAogUEFT
UyB4aHIudXBsb2FkLm9uYWJvcnQgaXMgbnVsbAogUEFTUyB4aHIudXBsb2FkLm9uZXJyb3IgaXMg
bnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRw
cmVxdWVzdC1wcmlvcml0eS1lbnVtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveG1s
aHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZW51bS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWQ3ZTIwMzc3YzgzZGNjYWRiY2JlYjAzNTU2YmRkMzMwMTY4MWZiYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3QtcHJpb3JpdHktZW51bS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgdGhlIFhNTEh0dHBSZXF1ZXN0IGFjY2Vzc29ycyB3b3JrIGNvcnJlY3Rs
eSBhbmQgcmVqZWN0cyBpbnZhbGlkIHZhbHVlcy4gTWFueSB0ZXN0cyB3aWxsIGZhaWwgaWYgRU5B
QkxFX1hNTEhUVFBSRVFVRVNUX1BSSU9SSVRZIGlzIHVuc2V0LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworRkFJTCB4aHIucHJpb3JpdHkgPSAiY3JpdGljYWwiIHNob3VsZCB0aHJv
dyBhbiBleGNlcHRpb24uIFdhcyBjcml0aWNhbC4KK1BBU1MgeGhyLnByaW9yaXR5IGlzICJjcml0
aWNhbCIKK1BBU1MgeGhyLnByaW9yaXR5IGlzICJoaWdoIgorUEFTUyB4aHIucHJpb3JpdHkgaXMg
Im5vcm1hbCIKK1BBU1MgeGhyLnByaW9yaXR5IGlzICJsb3ciCitQQVNTIHhoci5wcmlvcml0eSBp
cyAibG93ZXN0IgorRkFJTCB4aHIucHJpb3JpdHkgc2hvdWxkIGJlIGxvd2VzdC4gV2FzIENSSVRJ
Q0FMLgorRkFJTCB4aHIucHJpb3JpdHkgc2hvdWxkIGJlIGxvd2VzdC4gV2FzIEhpZ2guCitGQUlM
IHhoci5wcmlvcml0eSBzaG91bGQgYmUgbG93ZXN0LiBXYXMgaW52YWxpZC4KK0ZBSUwgeGhyLnBy
aW9yaXR5ID0gImNyaXRpY2FsIiBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLiBXYXMgY3JpdGlj
YWwuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVz
dC1wcmlvcml0eS1lbnVtLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3ht
bGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NThjY2ExY2Y4Yzc4
OTY1NThjMDM2NDdmYTgwYWQ5MzdlOTM0YzA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmh0bWwK
QEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCAzZTc2NDA3YWMxOTBmN2ZiYjgxZjg3ODcw
ZTEzMjI5MzEwOWU1YWY1Li5lODhlZjc0MzkxYTE3ZDM2YjQwN2E0MDcyMWJlNDQ0NzkwOWM1NTI2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0xNzEsNiArMTcxLDkgQEAgWE1MSHR0cFJlcXVl
c3Q6OlhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAg
OiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fYXN5bmModHJ1ZSkKICAg
ICAsIG1faW5jbHVkZUNyZWRlbnRpYWxzKGZhbHNlKQorI2lmIEVOQUJMRShYTUxIVFRQUkVRVUVT
VF9QUklPUklUWSkKKyAgICAsIG1fcHJpb3JpdHkoTk9STUFMKQorI2VuZGlmIC8vIEVOQUJMRShY
TUxIVFRQUkVRVUVTVF9QUklPUklUWSkKICAgICAsIG1fc3RhdGUoVU5TRU5UKQogICAgICwgbV9y
ZXNwb25zZVRleHQoIiIpCiAgICAgLCBtX2NyZWF0ZWREb2N1bWVudChmYWxzZSkKQEAgLTM5MCw2
ICszOTMsMzYgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhv
ZCwgY29uc3QgS1VSTCYgdXJsLCBib29sIGFzeW5jLCBjb24KICAgICBvcGVuKG1ldGhvZCwgdXJs
V2l0aENyZWRlbnRpYWxzLCBhc3luYywgZWMpOwogfQogCisjaWYgRU5BQkxFKFhNTEhUVFBSRVFV
RVNUX1BSSU9SSVRZKQorU3RyaW5nIFhNTEh0dHBSZXF1ZXN0Ojpwcmlvcml0eSgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKG1fcHJpb3JpdHkgPj0gMCk7CisgICAgQVNTRVJUKG1fcHJpb3JpdHkgPCA1
KTsKKyAgICBjb25zdCBjaGFyKiBjb25zdCBuYW1lc1s1XSA9IHsgImNyaXRpY2FsIiwgImhpZ2gi
LCAibm9ybWFsIiwgImxvdyIsICJsb3dlc3QiIH07CisgICAgcmV0dXJuIG5hbWVzW21fcHJpb3Jp
dHldOworfQorCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRQcmlvcml0eShjb25zdCBTdHJpbmcm
IHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3N0YXRlICE9IE9QRU5FRCB8fCBt
X2xvYWRlcikgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKHMgPT0gImNyaXRpY2FsIikgeworICAgICAgICBtX3ByaW9y
aXR5ID0gQ1JJVElDQUw7CisgICAgfSBlbHNlIGlmIChzID09ICJoaWdoIikgeworICAgICAgICBt
X3ByaW9yaXR5ID0gSElHSDsKKyAgICB9IGVsc2UgaWYgKHMgPT0gIm5vcm1hbCIpIHsKKyAgICAg
ICAgbV9wcmlvcml0eSA9IE5PUk1BTDsKKyAgICB9IGVsc2UgaWYgKHMgPT0gImxvdyIpIHsKKyAg
ICAgICAgbV9wcmlvcml0eSA9IExPVzsKKyAgICB9IGVsc2UgaWYgKHMgPT0gImxvd2VzdCIpIHsK
KyAgICAgICAgbV9wcmlvcml0eSA9IExPV0VTVDsKKyAgICB9Cit9CisjZW5kaWYgLy8gRU5BQkxF
KFhNTEhUVFBSRVFVRVNUX1BSSU9SSVRZKQorCiBib29sIFhNTEh0dHBSZXF1ZXN0Ojppbml0U2Vu
ZChFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IGNhMzA4Y2M0NTY5ZThjOTM4ZjM4YTI1ODJhNDQyOGMy
ODQ3Y2Y2NjMuLmIzNzZlNjc0OTJjMmM0NzZlOWNjOWI5MGI2NzU2YWZmODFkMDRhYmIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuaApAQCAtNTUsNiArNTUsMTYgQEAgcHVibGljOgogICAgICAgICBET05FID0g
NAogICAgIH07CiAKKyNpZiBFTkFCTEUoWE1MSFRUUFJFUVVFU1RfUFJJT1JJVFkpCisgICAgZW51
bSBQcmlvcml0eSB7CisgICAgICAgIENSSVRJQ0FMID0gMCwKKyAgICAgICAgSElHSCA9IDEsCisg
ICAgICAgIE5PUk1BTCA9IDIsCisgICAgICAgIExPVyA9IDMsCisgICAgICAgIExPV0VTVCA9IDQK
KyAgICB9OworI2VuZGlmIC8vIEVOQUJMRShYTUxIVFRQUkVRVUVTVF9QUklPUklUWSkKKwogICAg
IHZpcnR1YWwgWE1MSHR0cFJlcXVlc3QqIHRvWE1MSHR0cFJlcXVlc3QoKSB7IHJldHVybiB0aGlz
OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpOwpAQCAtNzQsNiArODQs
MTAgQEAgcHVibGljOgogICAgIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3Qg
S1VSTCYsIGJvb2wgYXN5bmMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIG9wZW4oY29uc3Qg
U3RyaW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBjb25zdCBTdHJpbmcmIHVz
ZXIsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2Qs
IGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBjb25zdCBTdHJpbmcmIHVzZXIsIGNvbnN0IFN0cmlu
ZyYgcGFzc3dvcmQsIEV4Y2VwdGlvbkNvZGUmKTsKKyNpZiBFTkFCTEUoWE1MSFRUUFJFUVVFU1Rf
UFJJT1JJVFkpCisgICAgU3RyaW5nIHByaW9yaXR5KCkgY29uc3Q7CisgICAgdm9pZCBzZXRQcmlv
cml0eShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisjZW5kaWYgLy8gRU5BQkxFKFhN
TEhUVFBSRVFVRVNUX1BSSU9SSVRZKQogICAgIHZvaWQgc2VuZChFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBzZW5kKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2VuZChj
b25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CkBAIC04OCw2ICsxMDIsOSBAQCBwdWJsaWM6
CiAgICAgRG9jdW1lbnQqIHJlc3BvbnNlWE1MKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMYXN0U2Vu
ZExpbmVOdW1iZXIodW5zaWduZWQgbGluZU51bWJlcikgeyBtX2xhc3RTZW5kTGluZU51bWJlciA9
IGxpbmVOdW1iZXI7IH0KICAgICB2b2lkIHNldExhc3RTZW5kVVJMKGNvbnN0IFN0cmluZyYgdXJs
KSB7IG1fbGFzdFNlbmRVUkwgPSB1cmw7IH0KKyNpZiBFTkFCTEUoWE1MSFRUUFJFUVVFU1RfUFJJ
T1JJVFkpCisgICAgUHJpb3JpdHkgZ2V0UHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBtX3ByaW9y
aXR5OyB9CisjZW5kaWYgLy8gRU5BQkxFKFhNTEhUVFBSRVFVRVNUX1BSSU9SSVRZKQogCiAgICAg
WE1MSHR0cFJlcXVlc3RVcGxvYWQqIHVwbG9hZCgpOwogICAgIFhNTEh0dHBSZXF1ZXN0VXBsb2Fk
KiBvcHRpb25hbFVwbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fdXBsb2FkLmdldCgpOyB9CkBAIC0x
NTUsNiArMTcyLDkgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9taW1lVHlwZU92ZXJyaWRlOwog
ICAgIGJvb2wgbV9hc3luYzsKICAgICBib29sIG1faW5jbHVkZUNyZWRlbnRpYWxzOworI2lmIEVO
QUJMRShYTUxIVFRQUkVRVUVTVF9QUklPUklUWSkKKyAgICBQcmlvcml0eSBtX3ByaW9yaXR5Owor
I2VuZGlmIC8vIEVOQUJMRShYTUxIVFRQUkVRVUVTVF9QUklPUklUWSkKIAogICAgIFJlZlB0cjxU
aHJlYWRhYmxlTG9hZGVyPiBtX2xvYWRlcjsKICAgICBTdGF0ZSBtX3N0YXRlOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaWRsCmluZGV4IDU4NDEzZmYzNWNiOTUwODc4N2VhODQwMTc0M2M5NDZhZWJlNzI1NDQu
LjVjN2Q1ODM2YjAzMjE3MDJjM2EyODc0MDdlMzVhMmI3OTdlMTUzOGMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAorKysgYi9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5pZGwKQEAgLTY4LDYgKzY4LDEwIEBAIG1vZHVsZSB4bWwgewogICAgICAgICBbUmVxdWly
ZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0UmVxdWVzdEhlYWRlcihpbiBET01TdHJpbmcg
aGVhZGVyLCBpbiBET01TdHJpbmcgdmFsdWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKIAorI2lmIGRlZmluZWQoRU5BQkxFX1hNTEhUVFBSRVFVRVNUX1BSSU9SSVRZKSAmJiBF
TkFCTEVfWE1MSFRUUFJFUVVFU1RfUFJJT1JJVFkKKyAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHByaW9yaXR5CisgICAgICAgICAgICBzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisjZW5kaWYKICAgICAgICAgLy8gdm9pZCBzZW5kKCk7CiAg
ICAgICAgIC8vIHZvaWQgc2VuZChpbiBET01TdHJpbmcgZGF0YSk7CiAgICAgICAgIFtDdXN0b21d
IHZvaWQgc2VuZChpbiBEb2N1bWVudCBkYXRhKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63617</attachid>
            <date>2010-08-05 12:25:03 -0700</date>
            <delta_ts>2010-08-06 16:20:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43400-20100805122501.patch</filename>
            <type>text/plain</type>
            <size>9656</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlMTdhMWY1YzE4NzJjMDIw
MDMyNzUzNmI4NzQ4YzQ0YTdlYTk0ZmU2Li4xMzRlZWY3ZmYyMTAxZjI2YmRkOGJkODQxMDlkMDFi
N2Y3ZjZhYTdkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTAtMDgtMDQgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW0rd2Via2l0QGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIHByaW9yaXR5IGF0dHJpYnV0ZSB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM0MDAKKworICAgICAgICAqIFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpYTUxIdHRwUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6cHJpb3JpdHkpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFByaW9y
aXR5KToKKyAgICAgICAgKiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAo
V2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6Oik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6Z2V0UHJpb3JpdHkpOgorICAgICAgICAqIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmlkbDoKKwogMjAxMC0wOC0wNCAgU2lkZGhhcnRoIE1hdGh1ciAgPHNpZGRoYXJ0aC5tYXRodXJA
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IExhc3psbyBHb21ib3MuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YjM5ZDM5NjgwODg0NzRiNTBlMTNkZDcxMTgxZWQzZmRjMTZlOGIzMS4uMTA2MWQ3NjE0OTlkZmRm
ODNkN2U3M2ExNWY2ZDVmMjY0MjZlODBhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA4
LTA0ICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtK3dlYmtpdEBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwcmlvcml0eSBh
dHRyaWJ1dGUgdG8gWE1MSHR0cFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQzNDAwCisKKyAgICAgICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHBy
ZXF1ZXN0LXByaW9yaXR5LWVudW0uaHRtbDogQWRkZWQuCisKIDIwMTAtMDgtMDQgIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHI2NDY3NC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0uanMgYi9MYXlv
dXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1wcmlv
cml0eS1lbnVtLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlMmY2MWY4NGEwMjA0MmIzNzQ5YTc3Y2Q5OTFkMGEw
MmE0YWYwMzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmpzCkBAIC0wLDAgKzEs
MzQgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgWE1MSHR0cFJl
cXVlc3QgcHJpb3JpdHkgYWNjZXNzb3JzIHdvcmsgY29ycmVjdGx5IGFuZCByZWplY3QgaW52YWxp
ZCB2YWx1ZXMuIE1hbnkgdGVzdHMgd2lsbCBmYWlsIGlmIEVOQUJMRV9YTUxIVFRQUkVRVUVTVF9Q
UklPUklUWSBpcyB1bnNldC4iKTsKKwordmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwor
CitmdW5jdGlvbiBzZXRQcmlvcml0eUFuZEV4cGVjdFZhbHVlKHZhbHVlVG9TZXQsIGV4cGVjdGVk
UmVzdWx0KSB7CisgIHhoci5wcmlvcml0eSA9IHZhbHVlVG9TZXQ7CisgIHNob3VsZEJlKCJ4aHIu
cHJpb3JpdHkiLCBleHBlY3RlZFJlc3VsdCk7Cit9CisKKy8vIFRoZSBkZWZhdWx0IHZhbHVlIHNo
b3VsZCBiZSBub3JtYWwuCitzaG91bGRCZSgieGhyLnByaW9yaXR5IiwgIlwibm9ybWFsXCIiKTsK
KworLy8gQmVmb3JlIG9wZW5pbmcgdGhlIHJlcXVlc3QsIGl0J3MgaW52YWxpZCB0byBjaGFuZ2Ug
cHJpb3JpdHkuCitzaG91bGRUaHJvdygieGhyLnByaW9yaXR5ID0gXCJjcml0aWNhbFwiIik7Cit4
aHIub3BlbigiR0VUIiwgIi4uL3htbGh0dHByZXF1ZXN0LW5vLWZpbGUtYWNjZXNzLWV4cGVjdGVk
LnR4dCIsIGZhbHNlKTsKKworLy8gVGhlc2UgcHJpb3JpdHkgY2hhbmdlcyBhcmUgdmFsaWQgYW5k
IHNob3VsZCByZXN1bHQgaW4gdGhlIHZhbHVlIGNoYW5naW5nLgorc2V0UHJpb3JpdHlBbmRFeHBl
Y3RWYWx1ZSgiY3JpdGljYWwiLCAiXCJjcml0aWNhbFwiIik7CitzZXRQcmlvcml0eUFuZEV4cGVj
dFZhbHVlKCJoaWdoIiwgIlwiaGlnaFwiIik7CitzZXRQcmlvcml0eUFuZEV4cGVjdFZhbHVlKCJu
b3JtYWwiLCAiXCJub3JtYWxcIiIpOworc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1ZSgibG93Iiwg
IlwibG93XCIiKTsKK3NldFByaW9yaXR5QW5kRXhwZWN0VmFsdWUoImxvd2VzdCIsICJcImxvd2Vz
dFwiIik7CisKKy8vIFRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSBpbnZhbGlkLiBUaGUgY2hhbmdl
cyBzaG91bGQgYmUgcmVqZWN0ZWQgYW5kIHRoZSBvbGQgdmFsdWUgcmV0YWluZWQuCitzZXRQcmlv
cml0eUFuZEV4cGVjdFZhbHVlKCJDUklUSUNBTCIsICJcImxvd2VzdFwiIik7CitzZXRQcmlvcml0
eUFuZEV4cGVjdFZhbHVlKCJIaWdoIiwgIlwibG93ZXN0XCIiKTsKK3NldFByaW9yaXR5QW5kRXhw
ZWN0VmFsdWUoImludmFsaWQiLCAiXCJsb3dlc3RcIiIpOworCisvLyBBZnRlciBzZW5kaW5nLCBp
dCdzIG5vdyBpbnZhbGlkIHRvIGNoYW5nZSBwcmlvcml0eS4KK3hoci5zZW5kKCk7CitzaG91bGRU
aHJvdygieGhyLnByaW9yaXR5ID0gXCJjcml0aWNhbFwiIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1
ZXN0L3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hOTEwMDhhNThlOThlYzU0ZmZmNTA0NTgwNGE1ZDMxMjYwOWVk
YTVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94
bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBA
CitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgWE1MSHR0cFJlcXVlc3QgcHJpb3JpdHkgYWNj
ZXNzb3JzIHdvcmsgY29ycmVjdGx5IGFuZCByZWplY3QgaW52YWxpZCB2YWx1ZXMuIE1hbnkgdGVz
dHMgd2lsbCBmYWlsIGlmIEVOQUJMRV9YTUxIVFRQUkVRVUVTVF9QUklPUklUWSBpcyB1bnNldC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwgeGhyLnByaW9yaXR5IHNob3Vs
ZCBiZSBub3JtYWwgKG9mIHR5cGUgc3RyaW5nKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRl
ZmluZWQpLgorRkFJTCB4aHIucHJpb3JpdHkgPSAiY3JpdGljYWwiIHNob3VsZCB0aHJvdyBhbiBl
eGNlcHRpb24uIFdhcyBjcml0aWNhbC4KK1BBU1MgeGhyLnByaW9yaXR5IGlzICJjcml0aWNhbCIK
K1BBU1MgeGhyLnByaW9yaXR5IGlzICJoaWdoIgorUEFTUyB4aHIucHJpb3JpdHkgaXMgIm5vcm1h
bCIKK1BBU1MgeGhyLnByaW9yaXR5IGlzICJsb3ciCitQQVNTIHhoci5wcmlvcml0eSBpcyAibG93
ZXN0IgorRkFJTCB4aHIucHJpb3JpdHkgc2hvdWxkIGJlIGxvd2VzdC4gV2FzIENSSVRJQ0FMLgor
RkFJTCB4aHIucHJpb3JpdHkgc2hvdWxkIGJlIGxvd2VzdC4gV2FzIEhpZ2guCitGQUlMIHhoci5w
cmlvcml0eSBzaG91bGQgYmUgbG93ZXN0LiBXYXMgaW52YWxpZC4KK0ZBSUwgeGhyLnByaW9yaXR5
ID0gImNyaXRpY2FsIiBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLiBXYXMgY3JpdGljYWwuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlv
cml0eS1lbnVtLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHBy
ZXF1ZXN0LXByaW9yaXR5LWVudW0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NThjY2ExY2Y4Yzc4OTY1NThj
MDM2NDdmYTgwYWQ5MzdlOTM0YzA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmh0bWwKQEAgLTAs
MCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy94bWxo
dHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCAzZTc2NDA3YWMxOTBmN2ZiYjgxZjg3ODcwZTEzMjI5
MzEwOWU1YWY1Li5lODhlZjc0MzkxYTE3ZDM2YjQwN2E0MDcyMWJlNDQ0NzkwOWM1NTI2IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0xNzEsNiArMTcxLDkgQEAgWE1MSHR0cFJlcXVlc3Q6OlhN
TEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBBY3Rp
dmVET01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fYXN5bmModHJ1ZSkKICAgICAsIG1f
aW5jbHVkZUNyZWRlbnRpYWxzKGZhbHNlKQorI2lmIEVOQUJMRShYTUxIVFRQUkVRVUVTVF9QUklP
UklUWSkKKyAgICAsIG1fcHJpb3JpdHkoTk9STUFMKQorI2VuZGlmIC8vIEVOQUJMRShYTUxIVFRQ
UkVRVUVTVF9QUklPUklUWSkKICAgICAsIG1fc3RhdGUoVU5TRU5UKQogICAgICwgbV9yZXNwb25z
ZVRleHQoIiIpCiAgICAgLCBtX2NyZWF0ZWREb2N1bWVudChmYWxzZSkKQEAgLTM5MCw2ICszOTMs
MzYgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29u
c3QgS1VSTCYgdXJsLCBib29sIGFzeW5jLCBjb24KICAgICBvcGVuKG1ldGhvZCwgdXJsV2l0aENy
ZWRlbnRpYWxzLCBhc3luYywgZWMpOwogfQogCisjaWYgRU5BQkxFKFhNTEhUVFBSRVFVRVNUX1BS
SU9SSVRZKQorU3RyaW5nIFhNTEh0dHBSZXF1ZXN0Ojpwcmlvcml0eSgpIGNvbnN0Cit7CisgICAg
QVNTRVJUKG1fcHJpb3JpdHkgPj0gMCk7CisgICAgQVNTRVJUKG1fcHJpb3JpdHkgPCA1KTsKKyAg
ICBjb25zdCBjaGFyKiBjb25zdCBuYW1lc1s1XSA9IHsgImNyaXRpY2FsIiwgImhpZ2giLCAibm9y
bWFsIiwgImxvdyIsICJsb3dlc3QiIH07CisgICAgcmV0dXJuIG5hbWVzW21fcHJpb3JpdHldOwor
fQorCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRQcmlvcml0eShjb25zdCBTdHJpbmcmIHMsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3N0YXRlICE9IE9QRU5FRCB8fCBtX2xvYWRl
cikgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKHMgPT0gImNyaXRpY2FsIikgeworICAgICAgICBtX3ByaW9yaXR5ID0g
Q1JJVElDQUw7CisgICAgfSBlbHNlIGlmIChzID09ICJoaWdoIikgeworICAgICAgICBtX3ByaW9y
aXR5ID0gSElHSDsKKyAgICB9IGVsc2UgaWYgKHMgPT0gIm5vcm1hbCIpIHsKKyAgICAgICAgbV9w
cmlvcml0eSA9IE5PUk1BTDsKKyAgICB9IGVsc2UgaWYgKHMgPT0gImxvdyIpIHsKKyAgICAgICAg
bV9wcmlvcml0eSA9IExPVzsKKyAgICB9IGVsc2UgaWYgKHMgPT0gImxvd2VzdCIpIHsKKyAgICAg
ICAgbV9wcmlvcml0eSA9IExPV0VTVDsKKyAgICB9Cit9CisjZW5kaWYgLy8gRU5BQkxFKFhNTEhU
VFBSRVFVRVNUX1BSSU9SSVRZKQorCiBib29sIFhNTEh0dHBSZXF1ZXN0Ojppbml0U2VuZChFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oCmluZGV4IGNhMzA4Y2M0NTY5ZThjOTM4ZjM4YTI1ODJhNDQyOGMyODQ3Y2Y2
NjMuLmIzNzZlNjc0OTJjMmM0NzZlOWNjOWI5MGI2NzU2YWZmODFkMDRhYmIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaApAQCAtNTUsNiArNTUsMTYgQEAgcHVibGljOgogICAgICAgICBET05FID0gNAogICAg
IH07CiAKKyNpZiBFTkFCTEUoWE1MSFRUUFJFUVVFU1RfUFJJT1JJVFkpCisgICAgZW51bSBQcmlv
cml0eSB7CisgICAgICAgIENSSVRJQ0FMID0gMCwKKyAgICAgICAgSElHSCA9IDEsCisgICAgICAg
IE5PUk1BTCA9IDIsCisgICAgICAgIExPVyA9IDMsCisgICAgICAgIExPV0VTVCA9IDQKKyAgICB9
OworI2VuZGlmIC8vIEVOQUJMRShYTUxIVFRQUkVRVUVTVF9QUklPUklUWSkKKwogICAgIHZpcnR1
YWwgWE1MSHR0cFJlcXVlc3QqIHRvWE1MSHR0cFJlcXVlc3QoKSB7IHJldHVybiB0aGlzOyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpOwpAQCAtNzQsNiArODQsMTAgQEAg
cHVibGljOgogICAgIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgS1VSTCYs
IGJvb2wgYXN5bmMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIG9wZW4oY29uc3QgU3RyaW5n
JiBtZXRob2QsIGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBjb25zdCBTdHJpbmcmIHVzZXIsIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0
IEtVUkwmLCBib29sIGFzeW5jLCBjb25zdCBTdHJpbmcmIHVzZXIsIGNvbnN0IFN0cmluZyYgcGFz
c3dvcmQsIEV4Y2VwdGlvbkNvZGUmKTsKKyNpZiBFTkFCTEUoWE1MSFRUUFJFUVVFU1RfUFJJT1JJ
VFkpCisgICAgU3RyaW5nIHByaW9yaXR5KCkgY29uc3Q7CisgICAgdm9pZCBzZXRQcmlvcml0eShj
b25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisjZW5kaWYgLy8gRU5BQkxFKFhNTEhUVFBS
RVFVRVNUX1BSSU9SSVRZKQogICAgIHZvaWQgc2VuZChFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZW5kKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2VuZChjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CkBAIC04OCw2ICsxMDIsOSBAQCBwdWJsaWM6CiAgICAg
RG9jdW1lbnQqIHJlc3BvbnNlWE1MKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMYXN0U2VuZExpbmVO
dW1iZXIodW5zaWduZWQgbGluZU51bWJlcikgeyBtX2xhc3RTZW5kTGluZU51bWJlciA9IGxpbmVO
dW1iZXI7IH0KICAgICB2b2lkIHNldExhc3RTZW5kVVJMKGNvbnN0IFN0cmluZyYgdXJsKSB7IG1f
bGFzdFNlbmRVUkwgPSB1cmw7IH0KKyNpZiBFTkFCTEUoWE1MSFRUUFJFUVVFU1RfUFJJT1JJVFkp
CisgICAgUHJpb3JpdHkgZ2V0UHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBtX3ByaW9yaXR5OyB9
CisjZW5kaWYgLy8gRU5BQkxFKFhNTEhUVFBSRVFVRVNUX1BSSU9SSVRZKQogCiAgICAgWE1MSHR0
cFJlcXVlc3RVcGxvYWQqIHVwbG9hZCgpOwogICAgIFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiBvcHRp
b25hbFVwbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fdXBsb2FkLmdldCgpOyB9CkBAIC0xNTUsNiAr
MTcyLDkgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9taW1lVHlwZU92ZXJyaWRlOwogICAgIGJv
b2wgbV9hc3luYzsKICAgICBib29sIG1faW5jbHVkZUNyZWRlbnRpYWxzOworI2lmIEVOQUJMRShY
TUxIVFRQUkVRVUVTVF9QUklPUklUWSkKKyAgICBQcmlvcml0eSBtX3ByaW9yaXR5OworI2VuZGlm
IC8vIEVOQUJMRShYTUxIVFRQUkVRVUVTVF9QUklPUklUWSkKIAogICAgIFJlZlB0cjxUaHJlYWRh
YmxlTG9hZGVyPiBtX2xvYWRlcjsKICAgICBTdGF0ZSBtX3N0YXRlOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
aWRsCmluZGV4IDU4NDEzZmYzNWNiOTUwODc4N2VhODQwMTc0M2M5NDZhZWJlNzI1NDQuLjVjN2Q1
ODM2YjAzMjE3MDJjM2EyODc0MDdlMzVhMmI3OTdlMTUzOGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAorKysgYi9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5p
ZGwKQEAgLTY4LDYgKzY4LDEwIEBAIG1vZHVsZSB4bWwgewogICAgICAgICBbUmVxdWlyZXNBbGxB
cmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0UmVxdWVzdEhlYWRlcihpbiBET01TdHJpbmcgaGVhZGVy
LCBpbiBET01TdHJpbmcgdmFsdWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
IAorI2lmIGRlZmluZWQoRU5BQkxFX1hNTEhUVFBSRVFVRVNUX1BSSU9SSVRZKSAmJiBFTkFCTEVf
WE1MSFRUUFJFUVVFU1RfUFJJT1JJVFkKKyAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIHByaW9yaXR5CisgICAgICAgICAgICBzZXR0ZXIgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisjZW5kaWYKICAgICAgICAgLy8gdm9pZCBzZW5kKCk7CiAgICAgICAg
IC8vIHZvaWQgc2VuZChpbiBET01TdHJpbmcgZGF0YSk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQg
c2VuZChpbiBEb2N1bWVudCBkYXRhKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63779</attachid>
            <date>2010-08-06 16:20:51 -0700</date>
            <delta_ts>2010-09-21 13:42:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43400-20100806162050.patch</filename>
            <type>text/plain</type>
            <size>9573</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlMTdhMWY1YzE4NzJjMDIw
MDMyNzUzNmI4NzQ4YzQ0YTdlYTk0ZmU2Li4xMzRlZWY3ZmYyMTAxZjI2YmRkOGJkODQxMDlkMDFi
N2Y3ZjZhYTdkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTAtMDgtMDQgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW0rd2Via2l0QGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIHByaW9yaXR5IGF0dHJpYnV0ZSB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM0MDAKKworICAgICAgICAqIFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpYTUxIdHRwUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6cHJpb3JpdHkpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFByaW9y
aXR5KToKKyAgICAgICAgKiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAo
V2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6Oik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6Z2V0UHJpb3JpdHkpOgorICAgICAgICAqIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmlkbDoKKwogMjAxMC0wOC0wNCAgU2lkZGhhcnRoIE1hdGh1ciAgPHNpZGRoYXJ0aC5tYXRodXJA
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IExhc3psbyBHb21ib3MuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YjM5ZDM5NjgwODg0NzRiNTBlMTNkZDcxMTgxZWQzZmRjMTZlOGIzMS4uMTA2MWQ3NjE0OTlkZmRm
ODNkN2U3M2ExNWY2ZDVmMjY0MjZlODBhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA4
LTA0ICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtK3dlYmtpdEBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwcmlvcml0eSBh
dHRyaWJ1dGUgdG8gWE1MSHR0cFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQzNDAwCisKKyAgICAgICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHBy
ZXF1ZXN0LXByaW9yaXR5LWVudW0uaHRtbDogQWRkZWQuCisKIDIwMTAtMDgtMDQgIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHI2NDY3NC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0uanMgYi9MYXlv
dXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1wcmlv
cml0eS1lbnVtLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlMmY2MWY4NGEwMjA0MmIzNzQ5YTc3Y2Q5OTFkMGEw
MmE0YWYwMzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmpzCkBAIC0wLDAgKzEs
MzQgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgWE1MSHR0cFJl
cXVlc3QgcHJpb3JpdHkgYWNjZXNzb3JzIHdvcmsgY29ycmVjdGx5IGFuZCByZWplY3QgaW52YWxp
ZCB2YWx1ZXMuIE1hbnkgdGVzdHMgd2lsbCBmYWlsIGlmIEVOQUJMRV9YTUxIVFRQUkVRVUVTVF9Q
UklPUklUWSBpcyB1bnNldC4iKTsKKwordmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwor
CitmdW5jdGlvbiBzZXRQcmlvcml0eUFuZEV4cGVjdFZhbHVlKHZhbHVlVG9TZXQsIGV4cGVjdGVk
UmVzdWx0KSB7CisgIHhoci5wcmlvcml0eSA9IHZhbHVlVG9TZXQ7CisgIHNob3VsZEJlKCJ4aHIu
cHJpb3JpdHkiLCBleHBlY3RlZFJlc3VsdCk7Cit9CisKKy8vIFRoZSBkZWZhdWx0IHZhbHVlIHNo
b3VsZCBiZSBub3JtYWwuCitzaG91bGRCZSgieGhyLnByaW9yaXR5IiwgIlwibm9ybWFsXCIiKTsK
KworLy8gQmVmb3JlIG9wZW5pbmcgdGhlIHJlcXVlc3QsIGl0J3MgaW52YWxpZCB0byBjaGFuZ2Ug
cHJpb3JpdHkuCitzaG91bGRUaHJvdygieGhyLnByaW9yaXR5ID0gXCJjcml0aWNhbFwiIik7Cit4
aHIub3BlbigiR0VUIiwgIi4uL3htbGh0dHByZXF1ZXN0LW5vLWZpbGUtYWNjZXNzLWV4cGVjdGVk
LnR4dCIsIGZhbHNlKTsKKworLy8gVGhlc2UgcHJpb3JpdHkgY2hhbmdlcyBhcmUgdmFsaWQgYW5k
IHNob3VsZCByZXN1bHQgaW4gdGhlIHZhbHVlIGNoYW5naW5nLgorc2V0UHJpb3JpdHlBbmRFeHBl
Y3RWYWx1ZSgiY3JpdGljYWwiLCAiXCJjcml0aWNhbFwiIik7CitzZXRQcmlvcml0eUFuZEV4cGVj
dFZhbHVlKCJoaWdoIiwgIlwiaGlnaFwiIik7CitzZXRQcmlvcml0eUFuZEV4cGVjdFZhbHVlKCJu
b3JtYWwiLCAiXCJub3JtYWxcIiIpOworc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1ZSgibG93Iiwg
IlwibG93XCIiKTsKK3NldFByaW9yaXR5QW5kRXhwZWN0VmFsdWUoImxvd2VzdCIsICJcImxvd2Vz
dFwiIik7CisKKy8vIFRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSBpbnZhbGlkLiBUaGUgY2hhbmdl
cyBzaG91bGQgYmUgcmVqZWN0ZWQgYW5kIHRoZSBvbGQgdmFsdWUgcmV0YWluZWQuCitzZXRQcmlv
cml0eUFuZEV4cGVjdFZhbHVlKCJDUklUSUNBTCIsICJcImxvd2VzdFwiIik7CitzZXRQcmlvcml0
eUFuZEV4cGVjdFZhbHVlKCJIaWdoIiwgIlwibG93ZXN0XCIiKTsKK3NldFByaW9yaXR5QW5kRXhw
ZWN0VmFsdWUoImludmFsaWQiLCAiXCJsb3dlc3RcIiIpOworCisvLyBBZnRlciBzZW5kaW5nLCBp
dCdzIG5vdyBpbnZhbGlkIHRvIGNoYW5nZSBwcmlvcml0eS4KK3hoci5zZW5kKCk7CitzaG91bGRU
aHJvdygieGhyLnByaW9yaXR5ID0gXCJjcml0aWNhbFwiIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1
ZXN0L3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hOTEwMDhhNThlOThlYzU0ZmZmNTA0NTgwNGE1ZDMxMjYwOWVk
YTVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94
bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBA
CitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgWE1MSHR0cFJlcXVlc3QgcHJpb3JpdHkgYWNj
ZXNzb3JzIHdvcmsgY29ycmVjdGx5IGFuZCByZWplY3QgaW52YWxpZCB2YWx1ZXMuIE1hbnkgdGVz
dHMgd2lsbCBmYWlsIGlmIEVOQUJMRV9YTUxIVFRQUkVRVUVTVF9QUklPUklUWSBpcyB1bnNldC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwgeGhyLnByaW9yaXR5IHNob3Vs
ZCBiZSBub3JtYWwgKG9mIHR5cGUgc3RyaW5nKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRl
ZmluZWQpLgorRkFJTCB4aHIucHJpb3JpdHkgPSAiY3JpdGljYWwiIHNob3VsZCB0aHJvdyBhbiBl
eGNlcHRpb24uIFdhcyBjcml0aWNhbC4KK1BBU1MgeGhyLnByaW9yaXR5IGlzICJjcml0aWNhbCIK
K1BBU1MgeGhyLnByaW9yaXR5IGlzICJoaWdoIgorUEFTUyB4aHIucHJpb3JpdHkgaXMgIm5vcm1h
bCIKK1BBU1MgeGhyLnByaW9yaXR5IGlzICJsb3ciCitQQVNTIHhoci5wcmlvcml0eSBpcyAibG93
ZXN0IgorRkFJTCB4aHIucHJpb3JpdHkgc2hvdWxkIGJlIGxvd2VzdC4gV2FzIENSSVRJQ0FMLgor
RkFJTCB4aHIucHJpb3JpdHkgc2hvdWxkIGJlIGxvd2VzdC4gV2FzIEhpZ2guCitGQUlMIHhoci5w
cmlvcml0eSBzaG91bGQgYmUgbG93ZXN0LiBXYXMgaW52YWxpZC4KK0ZBSUwgeGhyLnByaW9yaXR5
ID0gImNyaXRpY2FsIiBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLiBXYXMgY3JpdGljYWwuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlv
cml0eS1lbnVtLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHBy
ZXF1ZXN0LXByaW9yaXR5LWVudW0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NThjY2ExY2Y4Yzc4OTY1NThj
MDM2NDdmYTgwYWQ5MzdlOTM0YzA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmh0bWwKQEAgLTAs
MCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy94bWxo
dHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCAzZTc2NDA3YWMxOTBmN2ZiYjgxZjg3ODcwZTEzMjI5
MzEwOWU1YWY1Li42NjY5ZjZmMTE4MTQ5ZDVhODRiMjM3NDQ1NmRlOTI5MTE3MTJiYzU2IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0xNzEsNiArMTcxLDkgQEAgWE1MSHR0cFJlcXVlc3Q6OlhN
TEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBBY3Rp
dmVET01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fYXN5bmModHJ1ZSkKICAgICAsIG1f
aW5jbHVkZUNyZWRlbnRpYWxzKGZhbHNlKQorI2lmIEVOQUJMRShYTUxIVFRQUkVRVUVTVF9QUklP
UklUWSkKKyAgICAsIG1fcHJpb3JpdHkoTk9STUFMKQorI2VuZGlmIC8vIEVOQUJMRShYTUxIVFRQ
UkVRVUVTVF9QUklPUklUWSkKICAgICAsIG1fc3RhdGUoVU5TRU5UKQogICAgICwgbV9yZXNwb25z
ZVRleHQoIiIpCiAgICAgLCBtX2NyZWF0ZWREb2N1bWVudChmYWxzZSkKQEAgLTM5MCw2ICszOTMs
MzIgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29u
c3QgS1VSTCYgdXJsLCBib29sIGFzeW5jLCBjb24KICAgICBvcGVuKG1ldGhvZCwgdXJsV2l0aENy
ZWRlbnRpYWxzLCBhc3luYywgZWMpOwogfQogCisjaWYgRU5BQkxFKFhNTEhUVFBSRVFVRVNUX1BS
SU9SSVRZKQorc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHhtbEh0dHBSZXF1ZXN0UHJpb3JpdHlO
YW1lc1s1XSA9IHsgImNyaXRpY2FsIiwgImhpZ2giLCAibm9ybWFsIiwgImxvdyIsICJsb3dlc3Qi
IH07CisKK1N0cmluZyBYTUxIdHRwUmVxdWVzdDo6cHJpb3JpdHkoKSBjb25zdAoreworICAgIEFT
U0VSVChtX3ByaW9yaXR5ID49IDApOworICAgIEFTU0VSVChtX3ByaW9yaXR5IDwgNSk7CisgICAg
cmV0dXJuIHhtbEh0dHBSZXF1ZXN0UHJpb3JpdHlOYW1lc1ttX3ByaW9yaXR5XTsKK30KKwordm9p
ZCBYTUxIdHRwUmVxdWVzdDo6c2V0UHJpb3JpdHkoY29uc3QgU3RyaW5nJiBzLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBPUEVORUQgfHwgbV9sb2FkZXIpIHsKKyAg
ICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgKytpKSB7CisgICAgICAgIGlmIChzID09IHhtbEh0
dHBSZXF1ZXN0UHJpb3JpdHlOYW1lc1tpXSkgeworICAgICAgICAgICAgbV9wcmlvcml0eSA9IHN0
YXRpY19jYXN0PFByaW9yaXR5PihpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgfQorfQorI2VuZGlmIC8vIEVOQUJMRShYTUxIVFRQUkVRVUVTVF9QUklPUklUWSkKKwogYm9v
bCBYTUxIdHRwUmVxdWVzdDo6aW5pdFNlbmQoRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYg
KCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCBjYTMwOGNj
NDU2OWU4YzkzOGYzOGEyNTgyYTQ0MjhjMjg0N2NmNjYzLi5iMzc2ZTY3NDkyYzJjNDc2ZTljYzli
OTBiNjc1NmFmZjgxZDA0YWJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5oCisrKyBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTU1LDYgKzU1LDE2IEBA
IHB1YmxpYzoKICAgICAgICAgRE9ORSA9IDQKICAgICB9OwogCisjaWYgRU5BQkxFKFhNTEhUVFBS
RVFVRVNUX1BSSU9SSVRZKQorICAgIGVudW0gUHJpb3JpdHkgeworICAgICAgICBDUklUSUNBTCA9
IDAsCisgICAgICAgIEhJR0ggPSAxLAorICAgICAgICBOT1JNQUwgPSAyLAorICAgICAgICBMT1cg
PSAzLAorICAgICAgICBMT1dFU1QgPSA0CisgICAgfTsKKyNlbmRpZiAvLyBFTkFCTEUoWE1MSFRU
UFJFUVVFU1RfUFJJT1JJVFkpCisKICAgICB2aXJ0dWFsIFhNTEh0dHBSZXF1ZXN0KiB0b1hNTEh0
dHBSZXF1ZXN0KCkgeyByZXR1cm4gdGhpczsgfQogCiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRE
ZXN0cm95ZWQoKTsKQEAgLTc0LDYgKzg0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIG9wZW4oY29u
c3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBLVVJMJiwgYm9v
bCBhc3luYywgY29uc3QgU3RyaW5nJiB1c2VyLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBv
cGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBLVVJMJiwgYm9vbCBhc3luYywgY29uc3Qg
U3RyaW5nJiB1c2VyLCBjb25zdCBTdHJpbmcmIHBhc3N3b3JkLCBFeGNlcHRpb25Db2RlJik7Cisj
aWYgRU5BQkxFKFhNTEhUVFBSRVFVRVNUX1BSSU9SSVRZKQorICAgIFN0cmluZyBwcmlvcml0eSgp
IGNvbnN0OworICAgIHZvaWQgc2V0UHJpb3JpdHkoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29k
ZSYpOworI2VuZGlmIC8vIEVOQUJMRShYTUxIVFRQUkVRVUVTVF9QUklPUklUWSkKICAgICB2b2lk
IHNlbmQoRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2VuZChEb2N1bWVudCosIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHNlbmQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwpA
QCAtODgsNiArMTAyLDkgQEAgcHVibGljOgogICAgIERvY3VtZW50KiByZXNwb25zZVhNTCgpIGNv
bnN0OwogICAgIHZvaWQgc2V0TGFzdFNlbmRMaW5lTnVtYmVyKHVuc2lnbmVkIGxpbmVOdW1iZXIp
IHsgbV9sYXN0U2VuZExpbmVOdW1iZXIgPSBsaW5lTnVtYmVyOyB9CiAgICAgdm9pZCBzZXRMYXN0
U2VuZFVSTChjb25zdCBTdHJpbmcmIHVybCkgeyBtX2xhc3RTZW5kVVJMID0gdXJsOyB9CisjaWYg
RU5BQkxFKFhNTEhUVFBSRVFVRVNUX1BSSU9SSVRZKQorICAgIFByaW9yaXR5IGdldFByaW9yaXR5
KCkgY29uc3QgeyByZXR1cm4gbV9wcmlvcml0eTsgfQorI2VuZGlmIC8vIEVOQUJMRShYTUxIVFRQ
UkVRVUVTVF9QUklPUklUWSkKIAogICAgIFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiB1cGxvYWQoKTsK
ICAgICBYTUxIdHRwUmVxdWVzdFVwbG9hZCogb3B0aW9uYWxVcGxvYWQoKSBjb25zdCB7IHJldHVy
biBtX3VwbG9hZC5nZXQoKTsgfQpAQCAtMTU1LDYgKzE3Miw5IEBAIHByaXZhdGU6CiAgICAgU3Ry
aW5nIG1fbWltZVR5cGVPdmVycmlkZTsKICAgICBib29sIG1fYXN5bmM7CiAgICAgYm9vbCBtX2lu
Y2x1ZGVDcmVkZW50aWFsczsKKyNpZiBFTkFCTEUoWE1MSFRUUFJFUVVFU1RfUFJJT1JJVFkpCisg
ICAgUHJpb3JpdHkgbV9wcmlvcml0eTsKKyNlbmRpZiAvLyBFTkFCTEUoWE1MSFRUUFJFUVVFU1Rf
UFJJT1JJVFkpCiAKICAgICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gbV9sb2FkZXI7CiAgICAg
U3RhdGUgbV9zdGF0ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0Lmlk
bCBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAppbmRleCA1ODQxM2ZmMzVjYjk1MDg3
ODdlYTg0MDE3NDNjOTQ2YWViZTcyNTQ0Li41YzdkNTgzNmIwMzIxNzAyYzNhMjg3NDA3ZTM1YTJi
Nzk3ZTE1MzhjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKKysr
IGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCkBAIC02OCw2ICs2OCwxMCBAQCBtb2R1
bGUgeG1sIHsKICAgICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldFJl
cXVlc3RIZWFkZXIoaW4gRE9NU3RyaW5nIGhlYWRlciwgaW4gRE9NU3RyaW5nIHZhbHVlKQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyNpZiBkZWZpbmVkKEVOQUJMRV9YTUxI
VFRQUkVRVUVTVF9QUklPUklUWSkgJiYgRU5BQkxFX1hNTEhUVFBSRVFVRVNUX1BSSU9SSVRZCisg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBwcmlv
cml0eQorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworI2VuZGlmCiAg
ICAgICAgIC8vIHZvaWQgc2VuZCgpOwogICAgICAgICAvLyB2b2lkIHNlbmQoaW4gRE9NU3RyaW5n
IGRhdGEpOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNlbmQoaW4gRG9jdW1lbnQgZGF0YSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68286</attachid>
            <date>2010-09-21 13:42:41 -0700</date>
            <delta_ts>2010-10-10 12:43:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43400-20100921134240.patch</filename>
            <type>text/plain</type>
            <size>8996</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBkOTM1MDUyZWNmMjEzYTli
MGYwNDAxN2ZlNzcxODJkNWU4NDc5Mjk4Li5hMTBjNGQzNThhMTI0NzA3NmZiNmQ3ZGU1NGZlZDFl
ODE1MmUwM2Y4IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTAtMDktMjEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW0rd2Via2l0QGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIHByaW9yaXR5IGF0dHJpYnV0ZSB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM0MDAKKworICAgICAgICAqIFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpYTUxIdHRwUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6cHJpb3JpdHkpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFByaW9y
aXR5KToKKyAgICAgICAgKiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAo
V2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6Oik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6Z2V0UHJpb3JpdHkpOgorICAgICAgICAqIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmlkbDoKKwogMjAxMC0wOS0yMSAgRnJpZHJpY2ggU3RyYmEgIDxmcmlkcmljaC5zdHJiYUBibHVl
d2luLmNoPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3
NThmNzMxMWIzM2U5MmY1NzQxY2U3ODg0MzViNzNhOTVmMGQzYzJiLi5jNmRhMTgyNzNkOTRiODIz
MWM5NzlkNzZmYzNiMDFlYWFhMmQ1OTA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDkt
MjEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW0rd2Via2l0QGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHByaW9yaXR5IGF0
dHJpYnV0ZSB0byBYTUxIdHRwUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDM0MDAKKworICAgICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0uanM6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZW51bS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJl
cXVlc3QtcHJpb3JpdHktZW51bS5odG1sOiBBZGRlZC4KKwogMjAxMC0wOS0yMSAgQ2hyaXMgR3Vp
bGxvcnkgICA8Y2hyaXMuZ3VpbGxvcnlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBDaHJpcyBGbGVpemFjaC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0uanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1wcmlvcml0
eS1lbnVtLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0NDQ2ZDBjYmM1ODBmMmFmMTY1OGFlOWFkZTc2MzM3Nzc1
YWRjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1lbnVtLmpzCkBAIC0wLDAgKzEsMzQg
QEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgWE1MSHR0cFJlcXVl
c3QgcHJpb3JpdHkgYWNjZXNzb3JzIHdvcmsgY29ycmVjdGx5IGFuZCByZWplY3QgaW52YWxpZCB2
YWx1ZXMuIE1hbnkgdGVzdHMgd2lsbCBmYWlsIGlmIEVOQUJMRV9YSFJfUFJJT1JJVFkgaXMgdW5z
ZXQuIik7CisKK3ZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKworZnVuY3Rpb24gc2V0
UHJpb3JpdHlBbmRFeHBlY3RWYWx1ZSh2YWx1ZVRvU2V0LCBleHBlY3RlZFJlc3VsdCkgeworICB4
aHIucHJpb3JpdHkgPSB2YWx1ZVRvU2V0OworICBzaG91bGRCZSgieGhyLnByaW9yaXR5IiwgZXhw
ZWN0ZWRSZXN1bHQpOworfQorCisvLyBUaGUgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgbm9ybWFs
Lgorc2hvdWxkQmUoInhoci5wcmlvcml0eSIsICJcIm5vcm1hbFwiIik7CisKKy8vIEJlZm9yZSBv
cGVuaW5nIHRoZSByZXF1ZXN0LCBpdCdzIGludmFsaWQgdG8gY2hhbmdlIHByaW9yaXR5Lgorc2hv
dWxkVGhyb3coInhoci5wcmlvcml0eSA9IFwiY3JpdGljYWxcIiIpOworeGhyLm9wZW4oIkdFVCIs
ICIuLi94bWxodHRwcmVxdWVzdC1uby1maWxlLWFjY2Vzcy1leHBlY3RlZC50eHQiLCBmYWxzZSk7
CisKKy8vIFRoZXNlIHByaW9yaXR5IGNoYW5nZXMgYXJlIHZhbGlkIGFuZCBzaG91bGQgcmVzdWx0
IGluIHRoZSB2YWx1ZSBjaGFuZ2luZy4KK3NldFByaW9yaXR5QW5kRXhwZWN0VmFsdWUoImNyaXRp
Y2FsIiwgIlwiY3JpdGljYWxcIiIpOworc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1ZSgiaGlnaCIs
ICJcImhpZ2hcIiIpOworc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1ZSgibm9ybWFsIiwgIlwibm9y
bWFsXCIiKTsKK3NldFByaW9yaXR5QW5kRXhwZWN0VmFsdWUoImxvdyIsICJcImxvd1wiIik7Citz
ZXRQcmlvcml0eUFuZEV4cGVjdFZhbHVlKCJsb3dlc3QiLCAiXCJsb3dlc3RcIiIpOworCisvLyBU
aGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgaW52YWxpZC4gVGhlIGNoYW5nZXMgc2hvdWxkIGJlIHJl
amVjdGVkIGFuZCB0aGUgb2xkIHZhbHVlIHJldGFpbmVkLgorc2V0UHJpb3JpdHlBbmRFeHBlY3RW
YWx1ZSgiQ1JJVElDQUwiLCAiXCJsb3dlc3RcIiIpOworc2V0UHJpb3JpdHlBbmRFeHBlY3RWYWx1
ZSgiSGlnaCIsICJcImxvd2VzdFwiIik7CitzZXRQcmlvcml0eUFuZEV4cGVjdFZhbHVlKCJpbnZh
bGlkIiwgIlwibG93ZXN0XCIiKTsKKworLy8gQWZ0ZXIgc2VuZGluZywgaXQncyBub3cgaW52YWxp
ZCB0byBjaGFuZ2UgcHJpb3JpdHkuCit4aHIuc2VuZCgpOworc2hvdWxkVGhyb3coInhoci5wcmlv
cml0eSA9IFwiY3JpdGljYWxcIiIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVx
dWVzdC1wcmlvcml0eS1lbnVtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveG1saHR0
cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZW51bS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmY0NTFlY2E0ZmMyNWRiODY4YjFjYTI1ZWUwNGUxZWI2MmMxNDUxMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qt
cHJpb3JpdHktZW51bS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorVGhpcyB0ZXN0IHZl
cmlmaWVzIHRoYXQgdGhlIFhNTEh0dHBSZXF1ZXN0IHByaW9yaXR5IGFjY2Vzc29ycyB3b3JrIGNv
cnJlY3RseSBhbmQgcmVqZWN0IGludmFsaWQgdmFsdWVzLiBNYW55IHRlc3RzIHdpbGwgZmFpbCBp
ZiBFTkFCTEVfWEhSX1BSSU9SSVRZIGlzIHVuc2V0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworRkFJTCB4aHIucHJpb3JpdHkgc2hvdWxkIGJlIG5vcm1hbCAob2YgdHlwZSBzdHJp
bmcpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCitGQUlMIHhoci5wcmlvcml0
eSA9ICJjcml0aWNhbCIgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4gV2FzIGNyaXRpY2FsLgor
UEFTUyB4aHIucHJpb3JpdHkgaXMgImNyaXRpY2FsIgorUEFTUyB4aHIucHJpb3JpdHkgaXMgImhp
Z2giCitQQVNTIHhoci5wcmlvcml0eSBpcyAibm9ybWFsIgorUEFTUyB4aHIucHJpb3JpdHkgaXMg
ImxvdyIKK1BBU1MgeGhyLnByaW9yaXR5IGlzICJsb3dlc3QiCitGQUlMIHhoci5wcmlvcml0eSBz
aG91bGQgYmUgbG93ZXN0LiBXYXMgQ1JJVElDQUwuCitGQUlMIHhoci5wcmlvcml0eSBzaG91bGQg
YmUgbG93ZXN0LiBXYXMgSGlnaC4KK0ZBSUwgeGhyLnByaW9yaXR5IHNob3VsZCBiZSBsb3dlc3Qu
IFdhcyBpbnZhbGlkLgorRkFJTCB4aHIucHJpb3JpdHkgPSAiY3JpdGljYWwiIHNob3VsZCB0aHJv
dyBhbiBleGNlcHRpb24uIFdhcyBjcml0aWNhbC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3ht
bGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZW51bS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY1OGNjYTFjZjhjNzg5NjU1OGMwMzY0N2ZhODBhZDkzN2U5MzRjMDgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHBy
ZXF1ZXN0LXByaW9yaXR5LWVudW0uaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LXByaW9yaXR5LWVudW0u
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4
IDljN2QwNzZjMGJkZjRmY2RiN2Y4NGIxZmFjYzk1M2U5NTVjNjgwMDUuLjE4MTQ1ZTJmMWIwZTAx
YWQyODczOTM1MTY3NWZjNDIzZTc0MGVmZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcAorKysgYi9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTE3
Miw2ICsxNzIsOSBAQCBYTUxIdHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCkKICNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCiAgICAg
LCBtX2FzQmxvYihmYWxzZSkKICNlbmRpZgorI2lmIEVOQUJMRShYSFJfUFJJT1JJVFkpCisgICAg
LCBtX3ByaW9yaXR5KE5PUk1BTCkKKyNlbmRpZgogICAgICwgbV9zdGF0ZShVTlNFTlQpCiAgICAg
LCBtX3Jlc3BvbnNlVGV4dCgiIikKICAgICAsIG1fY3JlYXRlZERvY3VtZW50KGZhbHNlKQpAQCAt
NDMxLDYgKzQzNCwzNCBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYg
bWV0aG9kLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgYXN5bmMsIGNvbgogICAgIG9wZW4obWV0aG9k
LCB1cmxXaXRoQ3JlZGVudGlhbHMsIGFzeW5jLCBlYyk7CiB9CiAKKyNpZiBFTkFCTEUoWEhSX1BS
SU9SSVRZKQorc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHhtbEh0dHBSZXF1ZXN0UHJpb3JpdHlO
YW1lc1s1XSA9IHsgImNyaXRpY2FsIiwgImhpZ2giLCAibm9ybWFsIiwgImxvdyIsICJsb3dlc3Qi
IH07CitzdGF0aWMgY29uc3Qgc2l6ZV90IG51bVhtbEh0dHBSZXF1ZXN0UHJpb3JpdHlOYW1lcyA9
IHNpemVvZih4bWxIdHRwUmVxdWVzdFByaW9yaXR5TmFtZXMpIC8gc2l6ZW9mKHhtbEh0dHBSZXF1
ZXN0UHJpb3JpdHlOYW1lc1swXSk7CisKK1N0cmluZyBYTUxIdHRwUmVxdWVzdDo6cHJpb3JpdHko
KSBjb25zdAoreworICAgIHJldHVybiB4bWxIdHRwUmVxdWVzdFByaW9yaXR5TmFtZXNbbV9wcmlv
cml0eV07Cit9CisKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldFByaW9yaXR5KGNvbnN0IFN0cmlu
ZyYgcHJpb3JpdHksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3N0YXRlICE9IE9Q
RU5FRCB8fCBtX2xvYWRlcikgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1YbWxIdHRw
UmVxdWVzdFByaW9yaXR5TmFtZXM7ICsraSkgeworICAgICAgICBpZiAocHJpb3JpdHkgPT0geG1s
SHR0cFJlcXVlc3RQcmlvcml0eU5hbWVzW2ldKSB7CisgICAgICAgICAgICBtX3ByaW9yaXR5ID0g
c3RhdGljX2Nhc3Q8UHJpb3JpdHk+KGkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBBU1NFUlQobV9wcmlvcml0eSA+PSAwKTsKKyAgICBBU1NFUlQobV9wcmlv
cml0eSA8IG51bVhtbEh0dHBSZXF1ZXN0UHJpb3JpdHlOYW1lcyk7Cit9CisjZW5kaWYgLy8gRU5B
QkxFKFhIUl9QUklPUklUWSkKKwogYm9vbCBYTUxIdHRwUmVxdWVzdDo6aW5pdFNlbmQoRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuaAppbmRleCBhYzE4ODI4OTA5ZDRlOGFlYzBhYzZhMmI0Y2M0MDA3YWU3OTZkNjRi
Li45ZTEzNmUxYWFjMjIyMjhjMmI3YzI2YjQ3MDhjYTdjNGE0OWMyZDNhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmgKQEAgLTU1LDYgKzU1LDE2IEBAIHB1YmxpYzoKICAgICAgICAgRE9ORSA9IDQKICAgICB9
OwogCisjaWYgRU5BQkxFKFhIUl9QUklPUklUWSkKKyAgICBlbnVtIFByaW9yaXR5IHsKKyAgICAg
ICAgQ1JJVElDQUwgPSAwLAorICAgICAgICBISUdIID0gMSwKKyAgICAgICAgTk9STUFMID0gMiwK
KyAgICAgICAgTE9XID0gMywKKyAgICAgICAgTE9XRVNUID0gNAorICAgIH07CisjZW5kaWYKKwog
ICAgIHZpcnR1YWwgWE1MSHR0cFJlcXVlc3QqIHRvWE1MSHR0cFJlcXVlc3QoKSB7IHJldHVybiB0
aGlzOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpOwpAQCAtNzgsNiAr
ODgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29u
c3QgS1VSTCYsIGJvb2wgYXN5bmMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIG9wZW4oY29u
c3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBjb25zdCBTdHJpbmcm
IHVzZXIsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBtZXRo
b2QsIGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBjb25zdCBTdHJpbmcmIHVzZXIsIGNvbnN0IFN0
cmluZyYgcGFzc3dvcmQsIEV4Y2VwdGlvbkNvZGUmKTsKKyNpZiBFTkFCTEUoWEhSX1BSSU9SSVRZ
KQorICAgIFN0cmluZyBwcmlvcml0eSgpIGNvbnN0OworICAgIHZvaWQgc2V0UHJpb3JpdHkoY29u
c3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworI2VuZGlmCiAgICAgdm9pZCBzZW5kKEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNlbmQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBzZW5kKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTE2Niw2ICsx
ODAsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hc0Jsb2I7CiAgICAgUmVmUHRyPEJsb2I+IG1f
cmVzcG9uc2VCbG9iOwogI2VuZGlmCisjaWYgRU5BQkxFKFhIUl9QUklPUklUWSkKKyAgICBQcmlv
cml0eSBtX3ByaW9yaXR5OworI2VuZGlmCiAKICAgICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4g
bV9sb2FkZXI7CiAgICAgU3RhdGUgbV9zdGF0ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmlkbCBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAppbmRleCA1
OTk5N2Y4M2JjMWUxZDhiNjc3NGM3ZmNmNjViZmQwN2Y2MDMxYmFkLi4xNTIxYWU3ODBiZjkyZTA2
OGU5ZTU2MGQ5NDBjMDQ3MjkzM2U5MzQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5pZGwKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCkBAIC03Myw2
ICs3MywxMCBAQCBtb2R1bGUgeG1sIHsKICAgICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzPVJh
aXNlXSB2b2lkIHNldFJlcXVlc3RIZWFkZXIoaW4gRE9NU3RyaW5nIGhlYWRlciwgaW4gRE9NU3Ry
aW5nIHZhbHVlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyNpZiBkZWZp
bmVkKEVOQUJMRV9YSFJfUFJJT1JJVFkpICYmIEVOQUJMRV9YSFJfUFJJT1JJVFkKKyAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHByaW9yaXR5Cisg
ICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisjZW5kaWYKICAgICAgICAg
Ly8gdm9pZCBzZW5kKCk7CiAgICAgICAgIC8vIHZvaWQgc2VuZChpbiBET01TdHJpbmcgZGF0YSk7
CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2VuZChpbiBEb2N1bWVudCBkYXRhKQo=
</data>
<flag name="review"
          id="57789"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>