<?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>24904</bug_id>
          
          <creation_ts>2009-03-27 16:14:33 -0700</creation_ts>
          <short_desc>Disentangle standards mode CSS type check from content sniffing</short_desc>
          <delta_ts>2009-04-24 12:33:50 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://myrewardzone.bestbuy.com/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>eroman</cc>
    
    <cc>mjs</cc>
    
    <cc>wtc</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>115640</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-03-27 16:14:33 -0700</bug_when>
    <thetext>In standards mode, we requires that that stylesheets loaded via a link tag have the proper MIME type, &quot;text/css.&quot;  Apparently, this is required to pass ACID3.  Unfortunately, a number of Web sites supply stylesheets to standards mode pages without specifying a Content-Type header.  These pages work fine in Safari and Firefox, but fail to load their stylesheets in Chromium because Chromium sniffs their MIME type as &quot;text/plain.&quot;

There are a couple of solutions to this problem:

1) Accept text/plain stylesheets in standards mode.

2) Change the content sniffer to guess text/css for URLs that end in &quot;.css&quot;

3) Provide a hint from WebCore to the content sniffer that we&apos;re expecting a text/css resource.

I think options (2) and (3) are workable.  Wan-Teh debugged Firefox&apos;s handling of this situation and determined that they take approach (3).  This is observable because they accept a stylesheet named style.foo in standards mode even if the stylesheet lacks a Content-Type header.  Without access to Safari&apos;s source code, we were unable to determine how Safari handles this case.

I recommend that we provide a MIME type hint to the network layer when loading CSS files so Chromium can perfectly match Firefox&apos;s behavior here.

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115641</commentid>
    <comment_count>1</comment_count>
      <attachid>29032</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-03-27 16:21:35 -0700</bug_when>
    <thetext>Created attachment 29032
patchzor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115644</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-03-27 16:26:13 -0700</bug_when>
    <thetext>For more background about how we got to this point, see http://code.google.com/p/chromium/issues/detail?id=7448</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115658</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-28 00:58:10 -0700</bug_when>
    <thetext>Maciej seems like the kind of person who would review this type of change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115671</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-28 09:39:32 -0700</bug_when>
    <thetext>My understanding is that one cannot reliably add data members to ResourceRequest - they are converted to platform requests and  back, so any members that cannot be stored inside a platform request will be lost after a delegate call.

Now, this specific use is only necessary on Chromium, which may not use willSendRequest-style delegate calls, but the member is added to ResourceRequestBase, which one would expect to work reliably on all platforms.

Also, &quot;defaultMimeType&quot; should be &quot;defaultMIMEType&quot; per our coding style guide.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115678</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-03-28 09:57:44 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; My understanding is that one cannot reliably add data members to
&gt; ResourceRequest - they are converted to platform requests and  back, so any
&gt; members that cannot be stored inside a platform request will be lost after a
&gt; delegate call.

Are platform requests in webkit.org source repository somewhere?  I&apos;d like to understand this better.

&gt; Now, this specific use is only necessary on Chromium, which may not use
&gt; willSendRequest-style delegate calls, but the member is added to
&gt; ResourceRequestBase, which one would expect to work reliably on all platforms.

We can move the member to Chromium&apos;s ResourceRequest.  I have another patch in progress that adds some data for mixed content detection, but for that patch the reviewer asked to move the member to ResourceRequestBase because it would be useful to other ports.

In this case, any port that uses the HTML 5 content sniffing algorithm will need this member to render sites correctly.

&gt; Also, &quot;defaultMimeType&quot; should be &quot;defaultMIMEType&quot; per our coding style guide.

I&apos;ll fix this in the next patch update.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115690</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-28 11:47:37 -0700</bug_when>
    <thetext>See e.g. platform/network/mac/ResourceRequestMac.mm. It&apos;s interesting that ResourceRequestBase already has a member that does not map to anything in platform request (m_reportUploadProgress) - I think that&apos;s a mistake, but someone better familiar with the design might correct me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115708</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-03-28 17:34:48 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; See e.g. platform/network/mac/ResourceRequestMac.mm

Maybe I don&apos;t understand what you&apos;re getting at, but from http://trac.webkit.org/browser/trunk/WebCore/platform/network/mac/ResourceRequest.h it looks like the platform request for Mac inherits from ResourceRequestBase so it seems like defaultMIMEType and reportUploadProgress can be stored in a platform request...  Maybe you&apos;re referring to NSURLRequest?

What&apos;s the right way to associate more data with a ResourceRequest?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115721</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-29 03:15:51 -0700</bug_when>
    <thetext>See WebFrameLoaderClient::dispatchWillSendRequest() in WebFrameLoaderClient.mm:

    if (implementations-&gt;willSendRequestFunc)
        request = (NSURLRequest *)CallResourceLoadDelegate(implementations-&gt;willSendRequestFunc, webView, @selector(webView:resource:willSendRequest:redirectResponse:fromDataSource:), [webView _objectForIdentifier:identifier], request.nsURLRequest(), redirectResponse.nsURLResponse(), dataSource(loader));

If the client implements a willSendRequest delegate method, then ResourceRequest will be completely re-created from NSURLRequest.

&gt; What&apos;s the right way to associate more data with a ResourceRequest?

My understanding is that the only cross-platform way is to provide the data on demand via a ResourceHandleClient method.

If the data is not cross-platform, and the platform doesn&apos;t implement Mac-style FrameLoaderClient callbacks, then it should be possible to add the data to the platform&apos;s ResourceRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115738</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-03-29 09:49:11 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; See WebFrameLoaderClient::dispatchWillSendRequest() in WebFrameLoaderClient.mm:

Ugg...  That&apos;s too bad.

&gt; My understanding is that the only cross-platform way is to provide the data on
&gt; demand via a ResourceHandleClient method.

I&apos;ll investigate this option.

&gt; If the data is not cross-platform, and the platform doesn&apos;t implement Mac-style
&gt; FrameLoaderClient callbacks, then it should be possible to add the data to the
&gt; platform&apos;s ResourceRequest.

For this change, would you prefer that we go for a cross-platform implementation or would a Chromium-only implementation be more expedient?  I think Chromium is the only the port that needs this data today, but other ports will need it in the future if they want to implement the HTML 5 content sniffing algorithm.

(Thanks for explaining this all to me, by the way.)

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115739</commentid>
    <comment_count>10</comment_count>
      <attachid>29032</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-03-29 09:49:47 -0700</bug_when>
    <thetext>Comment on attachment 29032
patchzor

Clearing the review flag to rework this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115745</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-29 10:12:53 -0700</bug_when>
    <thetext>&gt; For this change, would you prefer that we go for a cross-platform
&gt; implementation or would a Chromium-only implementation be more expedient?

I&apos;d suggest hunting down the person who designed the ResourceRequest class - as I was just learning the answers during this discussion, I don&apos;t feel qualified to make suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116691</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-06 16:56:32 -0700</bug_when>
    <thetext>Morphing title to reflect new perspective.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116692</commentid>
    <comment_count>13</comment_count>
      <attachid>29292</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-06 16:58:09 -0700</bug_when>
    <thetext>Created attachment 29292
patchzor2

On #webkit, Maciej suggested just looking at the Content-Type header directly instead of looking at the computed mimeType.  This has the advantage of disentangling this check from content sniffing and should fix the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116705</commentid>
    <comment_count>14</comment_count>
    <who name="Wan-Teh Chang">wtc</who>
    <bug_when>2009-04-06 18:48:29 -0700</bug_when>
    <thetext>Can we remove mimeType.isEmpty() and
equalIgnoringCase(mimeType, &quot;application/x-unknown-content-type&quot;)
from CachedCSSStyleSheet::canUseSheet()?

These were blindly copied from Firefox source code.  Adam&apos;s change
will make the WebKit code differ more from the Firefox code, and
there will be less reason to allow mimeType.isEmpty() and
equalIgnoringCase(mimeType, &quot;application/x-unknown-content-type&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116711</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-06 20:56:15 -0700</bug_when>
    <thetext>We need to keep the isEmpty check for sure.  We should probably keep the other check too to keep matching Firefox perfectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116718</commentid>
    <comment_count>16</comment_count>
      <attachid>29292</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-06 23:23:37 -0700</bug_when>
    <thetext>Comment on attachment 29292
patchzor2

&gt; +    String mimeType = response().httpHeaderField(&quot;Content-Type&quot;);
&gt;      return mimeType.isEmpty() || equalIgnoringCase(mimeType, &quot;text/css&quot;) || equalIgnoringCase(mimeType, &quot;application/x-unknown-content-type&quot;);

This won&apos;t allow e.g. &quot;text/css; charset=utf-8&quot;. We have an extractMIMETypeFromMediaType() method to extract the MIME type from header value.

By the way, could you please provide some examples of sites that serve CSS resources without a Content-Type header? I&apos;m surprised that there is a number of those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116723</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-07 00:07:55 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; By the way, could you please provide some examples of sites that serve CSS
&gt; resources without a Content-Type header? I&apos;m surprised that there is a number
&gt; of those.

We originally received a report of this problem on https://myrewardzone.bestbuy.com/ (mentioned in the URL field above).  I think we successfully evangelized that site, but then we received reports of the same issue with these sites:

http://www.duels.com/
http://farecast.live.com/

This issue appears to be relatively common.  In any case, its a standards compliance issue.  Updated patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116724</commentid>
    <comment_count>18</comment_count>
      <attachid>29300</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-07 00:25:53 -0700</bug_when>
    <thetext>Created attachment 29300
patch the third</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116726</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-07 00:37:46 -0700</bug_when>
    <thetext>Do you know how exactly sniffing works in Safari now? For an empty Content-Type, I&apos;m getting &quot;text/css&quot; in mimeType() - but will this patch change the behavior for sites that send e.g. &quot;text/plain&quot;?

Also, wouldn&apos;t a regression test for this change be helpful?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116731</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-07 01:25:40 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Do you know how exactly sniffing works in Safari now?  For an empty
&gt; Content-Type, I&apos;m getting &quot;text/css&quot; in mimeType()

I don&apos;t understand how that works.  The answer is buried somewhere in the closed-source CFNetwork.  Maciej hinted that it had to do with the file extension, but I couldn&apos;t verify that.

&gt; - but will this patch change
&gt; the behavior for sites that send e.g. &quot;text/plain&quot;?

It shouldn&apos;t change that behavior, as far as I know.  If CFNetwork is somehow magically sniffing text/css from text/plain, that violates the HTML 5 spec and is inconsistent with Firefox&apos;s behavior.

&gt; Also, wouldn&apos;t a regression test for this change be helpful?

I could add a test, but it won&apos;t appear to be any different since we&apos;re not changing the CFNetwork behavior.  I&apos;ll add a test on the Chromium side, where we will see a difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116733</commentid>
    <comment_count>21</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-07 01:42:33 -0700</bug_when>
    <thetext>&gt; It shouldn&apos;t change that behavior, as far as I know.  If CFNetwork is somehow
&gt; magically sniffing text/css from text/plain, that violates the HTML 5 spec and
&gt; is inconsistent with Firefox&apos;s behavior.

So, the answer is that Safari behavior might change, but not in a way that will break the Web, right?

&gt; I could add a test, but it won&apos;t appear to be any different since we&apos;re not
&gt; changing the CFNetwork behavior.

It&apos;s fine to add a test that checks for status quo, to avoid breaking the behavior in the future (or in other ports).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116830</commentid>
    <comment_count>22</comment_count>
      <attachid>29300</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-07 17:59:30 -0700</bug_when>
    <thetext>Comment on attachment 29300
patch the third

&gt; So, the answer is that Safari behavior might change, but not in a way that will
&gt; break the Web, right?

Yes.  I haven&apos;t seen a case where the Safari behavior would change, but I haven&apos;t tested the text/plain case.

&gt; It&apos;s fine to add a test that checks for status quo, to avoid breaking the
&gt; behavior in the future (or in other ports).

Clearing the review flag while I do this.

Thanks for being patient with me.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116835</commentid>
    <comment_count>23</comment_count>
      <attachid>29323</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-07 18:51:48 -0700</bug_when>
    <thetext>Created attachment 29323
git format-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116846</commentid>
    <comment_count>24</comment_count>
      <attachid>29323</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-08 00:47:33 -0700</bug_when>
    <thetext>Comment on attachment 29323
git format-patch

Testing with Safari on Mac OS X 10.5.6, this patch actually fixes a regression on the included test - since its extension is .cgi, the resource is sniffed as text/plain, so the stylesheet isn&apos;t applied in ToT.

I&apos;d love to also have tests for a stylesheet with .css extension but no Content-Type, and for text/plain content type. Since an earlier version of this patch broke stylesheets with charset in Content-Type, we definitely need a test verifying that those work.

In failure case, Web Inspector shows a warning such as &quot;Resource interpreted as stylesheet but transferred with MIME type text/plain.&quot; That&apos;s a lie - it should be an error, saying that that the stylesheet wasn&apos;t applied because of this issue. It might be appropriate to fix this now.

+        &lt;...&gt;  This test
+        isn&apos;t perfect: style.cgi sends &quot;Content-Type: &quot; instead of
+        not sending the header at all &lt;..&gt;

That&apos;s not necessarily bad - at least one of the sites you gave as a reference in comment 17 sends exactly that.

+    layoutTestController.waitUntilDone();

There shouldn&apos;t be any need to do this - onload fires before a test finishes by default in DRT.

+    // For protocols, like file:// and ftp:// that don&apos;t have a Content-Type

There is an extra comma after &quot;protocols&quot;. Also, the comment doesn&apos;t match what the code does - even though file:// and ftp:// were likely the reason to permit an empty content type, we permit them for all protocols.

r=me with only these minor issues fixed if you&apos;d like to be done with this bug ASAP, but please consider making more tests, and maybe fixing the Web Inspector problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116883</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-08 08:28:46 -0700</bug_when>
    <thetext>Thanks Alexey.  I&apos;ll land this patch (with the fixes you suggest) because this bug is fairly high-priority in Chromium-land.  I&apos;ll do the rest of the work (more tests, Web inspector) in a follow up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116895</commentid>
    <comment_count>26</comment_count>
      <attachid>29323</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-08 09:52:29 -0700</bug_when>
    <thetext>Comment on attachment 29323
git format-patch

Landed &quot;git format-patch&quot; in r42322.  Clearing review flag to remove from commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116896</commentid>
    <comment_count>27</comment_count>
      <attachid>29337</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-08 09:54:05 -0700</bug_when>
    <thetext>Created attachment 29337
more tests

Here are some more tests.  I couldn&apos;t figure out how to test the empty / no Content-Type header with the .css extension.  The only way I know to fake the extension is using PHP, but then I can&apos;t seem to set an empty Content-Type header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116899</commentid>
    <comment_count>28</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-08 10:13:23 -0700</bug_when>
    <thetext>&gt; Here are some more tests.  I couldn&apos;t figure out how to test the empty / no
&gt; Content-Type header with the .css extension.  The only way I know to fake the
&gt; extension is using PHP, but then I can&apos;t seem to set an empty Content-Type
&gt; header.

See e.g. http/tests/misc/.htaccess for how this can be done with Apache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116900</commentid>
    <comment_count>29</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-08 10:34:41 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; See e.g. http/tests/misc/.htaccess for how this can be done with Apache.

Apache doesn&apos;t seem to like ForceType &quot;&quot;.  It causes a 500 internal server error.  :(
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116907</commentid>
    <comment_count>30</comment_count>
      <attachid>29337</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-08 11:15:29 -0700</bug_when>
    <thetext>Comment on attachment 29337
more tests

r=me on adding these tests; however, I don&apos;t know if you can land them without first landing a fix, so this may incorrectly show up in the &quot;needs commit&quot; queue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116912</commentid>
    <comment_count>31</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-08 11:57:43 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Apache doesn&apos;t seem to like ForceType &quot;&quot;.  

Ugh, I didn&apos;t know that. Well, one can force PHP processing for any file, I think that is done with &quot;AddType application/x-httpd-php .css&quot;, or maybe with some AddHandler trick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116917</commentid>
    <comment_count>32</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-08 12:19:20 -0700</bug_when>
    <thetext>Additional tests landed in r42330.  I&apos;m inclined to treat the Web inspector issue in a separate bug.  Marking as fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118695</commentid>
    <comment_count>33</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-24 12:33:50 -0700</bug_when>
    <thetext>See bug 25352 -- this broke bmwusa.com</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29032</attachid>
            <date>2009-03-27 16:21:35 -0700</date>
            <delta_ts>2009-04-06 16:58:09 -0700</delta_ts>
            <desc>patchzor</desc>
            <filename>0001-2009-03-27-Adam-Barth-abarth-webkit.org.patch</filename>
            <type>text/plain</type>
            <size>6010</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">RnJvbSA1ZjkzOWE2YmJjYjVmNTVjZDRiMjBlYjI4YTQxYzI0NmZkYTkwY2JhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIEJhcnRoIDxhYmFydGhAYXJjdGljYS5sb2NhbD4KRGF0
ZTogRnJpLCAyNyBNYXIgMjAwOSAxNTozNDoxOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDIwMDkt
MDMtMjcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KCiAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIEFkZCBhIGRlZmF1bHRNaW1lVHlwZSB0byBoaW50
IHRvIHRoZSBjb250ZW50IHNuaWZmZXIgdGhhdCB3ZSB3YW50CiAgICAgICAgSFRUUCByZXBvbnNl
cyB0aGF0IGxhY2sgYSBDb250ZW50LVR5cGUgaGVhZGVyIHRvIHVzZSB0aGUgdHlwZQogICAgICAg
IHRleHQvY3NzIHdoZW4gbG9hZGluZyBzdHlsZXNoZWV0cy4KCiAgICAgICAgKiBsb2FkZXIvQ2Fj
aGVkQ1NTU3R5bGVTaGVldC5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hl
ZXQ6OkNhY2hlZENTU1N0eWxlU2hlZXQpOgogICAgICAgICogbG9hZGVyL0NhY2hlZFJlc291cmNl
Lmg6CiAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpkZWZhdWx0TWltZVR5cGUpOgog
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6c2V0RGVmYXVsdE1pbWVUeXBlKToKICAg
ICAgICAqIGxvYWRlci9sb2FkZXIuY3BwOgogICAgICAgIChXZWJDb3JlOjpMb2FkZXI6Okhvc3Q6
OnNlcnZlUGVuZGluZ1JlcXVlc3RzKToKICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXF1ZXN0QmFzZS5oOgogICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpk
ZWZhdWx0TWltZVR5cGUpOgogICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpz
ZXREZWZhdWx0TWltZVR5cGUpOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE5ICsrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvbG9hZGVy
L0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwICAgICAgICAgfCAgICA0ICsrKysKIFdlYkNvcmUvbG9h
ZGVyL0NhY2hlZFJlc291cmNlLmggICAgICAgICAgICAgICAgfCAgICA2ICsrKysrKwogV2ViQ29y
ZS9sb2FkZXIvbG9hZGVyLmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKysrCiBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oIHwgICAgNCArKysrCiA1
IGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMTYzM2Fi
Li5iNjFiMTAyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDA5LTAzLTI3ICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgZGVmYXVsdE1pbWVUeXBlIHRvIGhpbnQgdG8gdGhlIGNvbnRlbnQgc25pZmZl
ciB0aGF0IHdlIHdhbnQKKyAgICAgICAgSFRUUCByZXBvbnNlcyB0aGF0IGxhY2sgYSBDb250ZW50
LVR5cGUgaGVhZGVyIHRvIHVzZSB0aGUgdHlwZQorICAgICAgICB0ZXh0L2NzcyB3aGVuIGxvYWRp
bmcgc3R5bGVzaGVldHMuCisKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHls
ZVNoZWV0KToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkUmVzb3VyY2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlOjpkZWZhdWx0TWltZVR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2U6OnNldERlZmF1bHRNaW1lVHlwZSk6CisgICAgICAgICogbG9hZGVy
L2xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkZXI6Okhvc3Q6OnNlcnZlUGVuZGlu
Z1JlcXVlc3RzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmRlZmF1bHRNaW1l
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpzZXREZWZhdWx0
TWltZVR5cGUpOgorCiAyMDA5LTAzLTI3ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4K
IAogICAgICAgICBEb24ndCBpbmNsdWRlIHN1YnN0aXR1dGUgZGF0YSBVUkxzIGluIGdsb2JhbCBo
aXN0b3J5IHJlZGlyZWN0IGNoYWlucwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVk
Q1NTU3R5bGVTaGVldC5jcHAgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNw
cAppbmRleCAxZmIxYTkxLi42YmM4ZWFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9DYWNo
ZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNo
ZWV0LmNwcApAQCAtNDIsNiArNDIsMTAgQEAgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6Q2FjaGVkQ1NT
U3R5bGVTaGVldChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBjaGFyc2UKICAgICAv
LyBQcmVmZXIgdGV4dC9jc3MgYnV0IGFjY2VwdCBhbnkgdHlwZSAoZGVsbC5jb20gc2VydmVzIGEg
c3R5bGVzaGVldAogICAgIC8vIGFzIHRleHQvaHRtbDsgc2VlIDxodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQ1MT4pLgogICAgIHNldEFjY2VwdCgidGV4dC9jc3MsKi8q
O3E9MC4xIik7CisKKyAgICAvLyBCZWNhdXNlIHdlIGFyZSBzdHJpY3QgYWJvdXQgbWltZSB0eXBl
IGhhbmRsaW5nIGluIHN0YW5kYXJkcyBtb2RlLAorICAgIC8vIHdlIHdhbnQgdG8gdGhlIE1JTUUg
dHlwZSBvZiB0aGlzIHJlc291cmNlIHRvIGRlZmF1bHQgdG8gdGV4dC9jc3MuCisgICAgc2V0RGVm
YXVsdE1pbWVUeXBlKCJ0ZXh0L2NzcyIpOwogfQogCiBDYWNoZWRDU1NTdHlsZVNoZWV0Ojp+Q2Fj
aGVkQ1NTU3R5bGVTaGVldCgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNv
dXJjZS5oIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCA2M2MyNTBiLi4z
ODQ5ODM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNvdXJjZS5oCisrKyBi
L1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291cmNlLmgKQEAgLTE1MCw2ICsxNTAsMTEgQEAgcHVi
bGljOgogICAgIFN0cmluZyBhY2NlcHQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VwdDsgfQogICAg
IHZvaWQgc2V0QWNjZXB0KGNvbnN0IFN0cmluZyYgYWNjZXB0KSB7IG1fYWNjZXB0ID0gYWNjZXB0
OyB9CiAKKyAgICAvLyBUaGUgZGVmYXVsdCBNSU1FIHR5cGUgdG8gdXNlIGR1cmluZyBjb250ZW50
IHNuaWZmaW5nLiAgVGhpcyB0eXBlIHNob3VsZAorICAgIC8vIGJlIHVzZWQsIGZvciBleGFtcGxl
LCBpZiB0aGUgSFRUUCByZXBvbnNlcyBsYWNrcyBhIENvbnRlbnQtVHlwZSBoZWFkZXIuCisgICAg
U3RyaW5nIGRlZmF1bHRNaW1lVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdE1pbWVUeXBl
OyB9CisgICAgdm9pZCBzZXREZWZhdWx0TWltZVR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKSB7IG1f
ZGVmYXVsdE1pbWVUeXBlID0gdHlwZTsgfQorCiAgICAgYm9vbCBlcnJvck9jY3VycmVkKCkgY29u
c3QgeyByZXR1cm4gbV9lcnJvck9jY3VycmVkOyB9CiAgICAgYm9vbCBzZW5kUmVzb3VyY2VMb2Fk
Q2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV9zZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOyB9
CiAgICAgCkBAIC0xODQsNiArMTg5LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgU3RyaW5nIG1fdXJs
OwogICAgIFN0cmluZyBtX2FjY2VwdDsKKyAgICBTdHJpbmcgbV9kZWZhdWx0TWltZVR5cGU7CiAg
ICAgUmVxdWVzdCogbV9yZXF1ZXN0OwogCiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNl
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvbG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVy
L2xvYWRlci5jcHAKaW5kZXggNzgwODdkNi4uNzA2ZjYzNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvbG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9sb2FkZXIuY3BwCkBAIC0yMzUs
NiArMjM1LDkgQEAgdm9pZCBMb2FkZXI6Okhvc3Q6OnNlcnZlUGVuZGluZ1JlcXVlc3RzKFJlcXVl
c3RRdWV1ZSYgcmVxdWVzdHNQZW5kaW5nLCBib29sJiBzZXIKICAgICAgICAgaWYgKCFyZXF1ZXN0
LT5jYWNoZWRSZXNvdXJjZSgpLT5hY2NlcHQoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXNv
dXJjZVJlcXVlc3Quc2V0SFRUUEFjY2VwdChyZXF1ZXN0LT5jYWNoZWRSZXNvdXJjZSgpLT5hY2Nl
cHQoKSk7CiAgICAgICAgIAorICAgICAgICBpZiAoIXJlcXVlc3QtPmNhY2hlZFJlc291cmNlKCkt
PmRlZmF1bHRNaW1lVHlwZSgpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJlc291cmNlUmVxdWVz
dC5zZXREZWZhdWx0TWltZVR5cGUocmVxdWVzdC0+Y2FjaGVkUmVzb3VyY2UoKS0+ZGVmYXVsdE1p
bWVUeXBlKCkpOworCiAgICAgICAgIEtVUkwgcmVmZXJyZXIgPSBkb2NMb2FkZXItPmRvYygpLT51
cmwoKTsKICAgICAgICAgaWYgKChyZWZlcnJlci5wcm90b2NvbElzKCJodHRwIikgfHwgcmVmZXJy
ZXIucHJvdG9jb2xJcygiaHR0cHMiKSkgJiYgcmVmZXJyZXIucGF0aCgpLmlzRW1wdHkoKSkKICAg
ICAgICAgICAgIHJlZmVycmVyLnNldFBhdGgoIi8iKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmggYi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCmluZGV4IDRmZDU3ZTEuLjM1MzUyZGUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaApAQCAtOTgs
NiArOTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFN0cmluZyBodHRwQWNjZXB0
KCkgY29uc3QgeyByZXR1cm4gaHR0cEhlYWRlckZpZWxkKCJBY2NlcHQiKTsgfQogICAgICAgICB2
b2lkIHNldEhUVFBBY2NlcHQoY29uc3QgU3RyaW5nJiBodHRwQWNjZXB0KSB7IHNldEhUVFBIZWFk
ZXJGaWVsZCgiQWNjZXB0IiwgaHR0cEFjY2VwdCk7IH0KIAorICAgICAgICBTdHJpbmcgZGVmYXVs
dE1pbWVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9kZWZhdWx0TWltZVR5cGU7IH0KKyAgICAgICAg
dm9pZCBzZXREZWZhdWx0TWltZVR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKSB7IG1fZGVmYXVsdE1p
bWVUeXBlID0gdHlwZTsgfQorCiAgICAgICAgIHZvaWQgc2V0UmVzcG9uc2VDb250ZW50RGlzcG9z
aXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkoY29uc3QgU3RyaW5nJiBlbmNvZGluZzEsIGNvbnN0
IFN0cmluZyYgZW5jb2RpbmcyID0gU3RyaW5nKCksIGNvbnN0IFN0cmluZyYgZW5jb2RpbmczID0g
U3RyaW5nKCkpOwogCiAgICAgICAgIEZvcm1EYXRhKiBodHRwQm9keSgpIGNvbnN0OwpAQCAtMTQ2
LDYgKzE0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSFRUUEhlYWRlck1hcCBt
X2h0dHBIZWFkZXJGaWVsZHM7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IG1fcmVzcG9uc2VDb250
ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXk7CiAgICAgICAgIFJlZlB0cjxGb3Jt
RGF0YT4gbV9odHRwQm9keTsKKyAgICAgICAgU3RyaW5nIG1fZGVmYXVsdE1pbWVUeXBlOwogICAg
ICAgICBib29sIG1fYWxsb3dIVFRQQ29va2llczsKICAgICAgICAgbXV0YWJsZSBib29sIG1fcmVz
b3VyY2VSZXF1ZXN0VXBkYXRlZDsKICAgICAgICAgbXV0YWJsZSBib29sIG1fcGxhdGZvcm1SZXF1
ZXN0VXBkYXRlZDsKLS0gCjEuNi4wLjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29292</attachid>
            <date>2009-04-06 16:58:09 -0700</date>
            <delta_ts>2009-04-07 00:25:53 -0700</delta_ts>
            <desc>patchzor2</desc>
            <filename>newcss.patch</filename>
            <type>text/plain</type>
            <size>2642</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">RnJvbSBiNGM0ZjY3ZjI2NDEwYTE3NjQ1ZjU2MTJiZmNiMTY1M2E5Y2U4YTUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIEJhcnRoIDxhYmFydGhAYXJjdGljYS5sb2NhbD4KRGF0
ZTogTW9uLCA2IEFwciAyMDA5IDE2OjUzOjQ5IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gMjAwOS0w
NC0wNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgoKICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI0OTA0CgogICAgICAgIFZlcmlmeSB0aGUgTUlNRSB0eXBlIG9mIHN0eWxlc2hl
ZXRzIChpbiBzdGFuZGFyZHMgbW9kZSkgYnkgbG9va2luZwogICAgICAgIGF0IHRoZSBDb250ZW50
LVR5cGUgaGVhZGVyIGRpcmVjdGx5LiAgVGhpcyBieXBhc3NlcyBhbnkgY29udGVudAogICAgICAg
IHNuaWZmaW5nIHRoYXQgbWlnaHQgYmUgY29uZnVzaW5nIHRoZSBpc3N1ZS4KCiAgICAgICAgKiBs
b2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENT
U1N0eWxlU2hlZXQ6OmNhblVzZVNoZWV0KToKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTMgKysrKysrKysrKysrKwogV2ViQ29yZS9sb2FkZXIvQ2FjaGVk
Q1NTU3R5bGVTaGVldC5jcHAgfCAgIDExICsrKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDIy
IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YmJlY2Q1Li4yMjA1ZjUxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDA5LTA0LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0OTA0CisKKyAgICAgICAgVmVyaWZ5IHRoZSBN
SU1FIHR5cGUgb2Ygc3R5bGVzaGVldHMgKGluIHN0YW5kYXJkcyBtb2RlKSBieSBsb29raW5nCisg
ICAgICAgIGF0IHRoZSBDb250ZW50LVR5cGUgaGVhZGVyIGRpcmVjdGx5LiAgVGhpcyBieXBhc3Nl
cyBhbnkgY29udGVudAorICAgICAgICBzbmlmZmluZyB0aGF0IG1pZ2h0IGJlIGNvbmZ1c2luZyB0
aGUgaXNzdWUuCisKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpjYW5Vc2VTaGVldCk6CisKIDIw
MDktMDQtMDYgIERhcmluIEZpc2hlciAgPGRhcmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9D
YWNoZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZENTU1N0eWxlU2hl
ZXQuY3BwCmluZGV4IDFmYjFhOTEuLjdlMDg2NzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZENTU1N0
eWxlU2hlZXQuY3BwCkBAIC0xMzEsOCArMTMxLDE1IEBAIGJvb2wgQ2FjaGVkQ1NTU3R5bGVTaGVl
dDo6Y2FuVXNlU2hlZXQoYm9vbCBlbmZvcmNlTUlNRVR5cGUpIGNvbnN0CiAgICAgaWYgKCFlbmZv
cmNlTUlNRVR5cGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gVGhpcyBjaGVjayBl
eGFjdGx5IG1hdGNoZXMgRmlyZWZveC4KLSAgICBTdHJpbmcgbWltZVR5cGUgPSByZXNwb25zZSgp
Lm1pbWVUeXBlKCk7CisgICAgLy8gVGhpcyBjaGVjayBleGFjdGx5IG1hdGNoZXMgRmlyZWZveC4g
IE5vdGUgdGhhdCB3ZSBncmFiIHRoZSBDb250ZW50LVR5cGUKKyAgICAvLyBoZWFkZXIgZGlyZWN0
bHkgYmVjYXVzZSB3ZSB3YW50IHRvIHNlZSB3aGF0IHRoZSB2YWx1ZSBpcyBCRUZPUkUgY29udGVu
dAorICAgIC8vIHNuaWZmaW5nLiAgRmlyZWZveCBkb2VzIHRoaXMgYnkgc2V0dGluZyBhICJ0eXBl
IGhpbnQiIG9uIHRoZSBjaGFubmVsLgorICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gc2hvdWxk
IGJlIG9ic2VydmF0aW9uYWxseSBlcXVpdmFsZW50LgorICAgIC8vCisgICAgLy8gRm9yIHByb3Rv
Y29scywgbGlrZSBmaWxlOi8vIGFuZCBmdHA6Ly8gdGhhdCBkb24ndCBoYXZlIGEgQ29udGVudC1U
eXBlCisgICAgLy8gaGVhZGVyLCB0aGlzIGNvZGUgZGVmYXVsdHMgdG8gYWxsb3dpbmcgdGhlIHN0
eWxlc2hlZXQgc28gZm9sa3MgY2FuIHVzZQorICAgIC8vIHN0YW5kYXJkcyBtb2RlIGZvciBsb2Nh
bCBIVE1MIGRvY3VtZW50cy4KKyAgICBTdHJpbmcgbWltZVR5cGUgPSByZXNwb25zZSgpLmh0dHBI
ZWFkZXJGaWVsZCgiQ29udGVudC1UeXBlIik7CiAgICAgcmV0dXJuIG1pbWVUeXBlLmlzRW1wdHko
KSB8fCBlcXVhbElnbm9yaW5nQ2FzZShtaW1lVHlwZSwgInRleHQvY3NzIikgfHwgZXF1YWxJZ25v
cmluZ0Nhc2UobWltZVR5cGUsICJhcHBsaWNhdGlvbi94LXVua25vd24tY29udGVudC10eXBlIik7
CiB9CiAgCi0tIAoxLjYuMC4xCgo=
</data>
<flag name="review"
          id="14551"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29300</attachid>
            <date>2009-04-07 00:25:53 -0700</date>
            <delta_ts>2009-04-07 18:51:48 -0700</delta_ts>
            <desc>patch the third</desc>
            <filename>newcss.patch</filename>
            <type>text/plain</type>
            <size>2875</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">RnJvbSA3MTQ1ZGI2ZjhmZGEyNDI0YTI5NGEwZTRkYjBlNTBhNmE1MWY1YTQ2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIEJhcnRoIDxhYmFydGhAYXJjdGljYS5sb2NhbD4KRGF0
ZTogTW9uLCA2IEFwciAyMDA5IDE2OjUzOjQ5IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gMjAwOS0w
NC0wNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgoKICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI0OTA0CgogICAgICAgIFZlcmlmeSB0aGUgTUlNRSB0eXBlIG9mIHN0eWxlc2hl
ZXRzIChpbiBzdGFuZGFyZHMgbW9kZSkgYnkgbG9va2luZwogICAgICAgIGF0IHRoZSBDb250ZW50
LVR5cGUgaGVhZGVyIGRpcmVjdGx5LiAgVGhpcyBieXBhc3NlcyBhbnkgY29udGVudAogICAgICAg
IHNuaWZmaW5nIHRoYXQgbWlnaHQgYmUgY29uZnVzaW5nIHRoZSBpc3N1ZS4KCiAgICAgICAgKiBs
b2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENT
U1N0eWxlU2hlZXQ6OmNhblVzZVNoZWV0KToKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTMgKysrKysrKysrKysrKwogV2ViQ29yZS9sb2FkZXIvQ2FjaGVk
Q1NTU3R5bGVTaGVldC5jcHAgfCAgIDEyICsrKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAy
MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJiZWNkNS4uMjIwNWY1MSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAwOS0wNC0wNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDkwNAorCisgICAgICAgIFZlcmlmeSB0aGUg
TUlNRSB0eXBlIG9mIHN0eWxlc2hlZXRzIChpbiBzdGFuZGFyZHMgbW9kZSkgYnkgbG9va2luZwor
ICAgICAgICBhdCB0aGUgQ29udGVudC1UeXBlIGhlYWRlciBkaXJlY3RseS4gIFRoaXMgYnlwYXNz
ZXMgYW55IGNvbnRlbnQKKyAgICAgICAgc25pZmZpbmcgdGhhdCBtaWdodCBiZSBjb25mdXNpbmcg
dGhlIGlzc3VlLgorCisgICAgICAgICogbG9hZGVyL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVTaGVldDo6Y2FuVXNlU2hlZXQpOgorCiAy
MDA5LTA0LTA2ICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIv
Q2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNo
ZWV0LmNwcAppbmRleCAxZmIxYTkxLi5kZDEwZTQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRl
ci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NT
dHlsZVNoZWV0LmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIgorI2lu
Y2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgog
I2luY2x1ZGUgImxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTEzMSw4ICsx
MzIsMTUgQEAgYm9vbCBDYWNoZWRDU1NTdHlsZVNoZWV0OjpjYW5Vc2VTaGVldChib29sIGVuZm9y
Y2VNSU1FVHlwZSkgY29uc3QKICAgICBpZiAoIWVuZm9yY2VNSU1FVHlwZSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKLSAgICAvLyBUaGlzIGNoZWNrIGV4YWN0bHkgbWF0Y2hlcyBGaXJlZm94Lgot
ICAgIFN0cmluZyBtaW1lVHlwZSA9IHJlc3BvbnNlKCkubWltZVR5cGUoKTsKKyAgICAvLyBUaGlz
IGNoZWNrIGV4YWN0bHkgbWF0Y2hlcyBGaXJlZm94LiAgTm90ZSB0aGF0IHdlIGdyYWIgdGhlIENv
bnRlbnQtVHlwZQorICAgIC8vIGhlYWRlciBkaXJlY3RseSBiZWNhdXNlIHdlIHdhbnQgdG8gc2Vl
IHdoYXQgdGhlIHZhbHVlIGlzIEJFRk9SRSBjb250ZW50CisgICAgLy8gc25pZmZpbmcuICBGaXJl
Zm94IGRvZXMgdGhpcyBieSBzZXR0aW5nIGEgInR5cGUgaGludCIgb24gdGhlIGNoYW5uZWwuCisg
ICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgb2JzZXJ2YXRpb25hbGx5IGVxdWl2
YWxlbnQuCisgICAgLy8KKyAgICAvLyBGb3IgcHJvdG9jb2xzLCBsaWtlIGZpbGU6Ly8gYW5kIGZ0
cDovLyB0aGF0IGRvbid0IGhhdmUgYSBDb250ZW50LVR5cGUKKyAgICAvLyBoZWFkZXIsIHRoaXMg
Y29kZSBkZWZhdWx0cyB0byBhbGxvd2luZyB0aGUgc3R5bGVzaGVldCBzbyBmb2xrcyBjYW4gdXNl
CisgICAgLy8gc3RhbmRhcmRzIG1vZGUgZm9yIGxvY2FsIEhUTUwgZG9jdW1lbnRzLgorICAgIFN0
cmluZyBtaW1lVHlwZSA9IGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUocmVzcG9uc2UoKS5o
dHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtVHlwZSIpKTsKICAgICByZXR1cm4gbWltZVR5cGUuaXNF
bXB0eSgpIHx8IGVxdWFsSWdub3JpbmdDYXNlKG1pbWVUeXBlLCAidGV4dC9jc3MiKSB8fCBlcXVh
bElnbm9yaW5nQ2FzZShtaW1lVHlwZSwgImFwcGxpY2F0aW9uL3gtdW5rbm93bi1jb250ZW50LXR5
cGUiKTsKIH0KICAKLS0gCjEuNi4wLjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29323</attachid>
            <date>2009-04-07 18:51:48 -0700</date>
            <delta_ts>2009-04-08 09:52:29 -0700</delta_ts>
            <desc>git format-patch</desc>
            <filename>newcss.patch</filename>
            <type>text/plain</type>
            <size>7279</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">RnJvbSA2MmMyNWJmMzNiNDZmYjE1MGE5Y2ZkNzM3NmZhNmFjNWMyNjBkZWFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIEJhcnRoIDxhYmFydGhAYXJjdGljYS5sb2NhbD4KRGF0
ZTogTW9uLCA2IEFwciAyMDA5IDE2OjUzOjQ5IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQ29y
ZToKCjIwMDktMDQtMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KCiAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNDkwNAoKICAgICAgICBWZXJpZnkgdGhlIE1JTUUgdHlwZSBv
ZiBzdHlsZXNoZWV0cyAoaW4gc3RhbmRhcmRzIG1vZGUpIGJ5IGxvb2tpbmcKICAgICAgICBhdCB0
aGUgQ29udGVudC1UeXBlIGhlYWRlciBkaXJlY3RseS4gIFRoaXMgYnlwYXNzZXMgYW55IGNvbnRl
bnQKICAgICAgICBzbmlmZmluZyB0aGF0IG1pZ2h0IGJlIGNvbmZ1c2luZyB0aGUgaXNzdWUuCgog
ICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hl
ZXQtd2l0aG91dC1jb250ZW50LXR5cGUtaGVhZGVyLmh0bWwKCiAgICAgICAgKiBsb2FkZXIvQ2Fj
aGVkQ1NTU3R5bGVTaGVldC5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hl
ZXQ6OmNhblVzZVNoZWV0KToKCkxheW91dFRlc3RzOgoKMjAwOS0wNC0wNyAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
CiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0OTA0Cgog
ICAgICAgIFRlc3QgdGhhdCB3ZSBhcHBseSBzdHlsZSBzaGVldHMgaW4gc3RhbmRhcmRzIG1vZGUg
ZXZlbiBpZgogICAgICAgIHRob3NlIHN0eWxlIHN0ZWVscyBsYWNrIGEgQ29udGVudC1UeXBlIGhl
YWRlci4gIFRoaXMgdGVzdAogICAgICAgIGlzbid0IHBlcmZlY3Q6IHN0eWxlLmNnaSBzZW5kcyAi
Q29udGVudC1UeXBlOiAiIGluc3RlYWQgb2YKICAgICAgICBub3Qgc2VuZGluZyB0aGUgaGVhZGVy
IGF0IGFsbCwgYnV0IHRoZXNlIGV4cGVjdGVkIHJlc3VsdHMKICAgICAgICBtYXRjaCBGaXJlZm94
LgoKICAgICAgICAqIGh0dHAvdGVzdHMvbWltZS9yZXNvdXJjZXMvc3R5bGUuY2dpOiBBZGRlZC4K
ICAgICAgICAqIGh0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQt
d2l0aG91dC1jb250ZW50LXR5cGUtaGVhZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAgICAg
KiBodHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGhvdXQt
Y29udGVudC10eXBlLWhlYWRlci5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysrKysrKysrKysrCiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvcmVzb3VyY2VzL3N0eWxlLmNnaSAgICB8ICAgIDUgKysr
KwogLi4uZXNoZWV0LXdpdGhvdXQtY29udGVudC10eXBlLWhlYWRlci1leHBlY3RlZC50eHQgfCAg
ICAxICsKIC4uLmFkcy1zdHlsZXNoZWV0LXdpdGhvdXQtY29udGVudC10eXBlLWhlYWRlci5odG1s
IHwgICAyNSArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrKysrKysrKwogV2ViQ29yZS9sb2Fk
ZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgICAgICAgICAgICAgfCAgIDEyICsrKysrKysrLQog
NiBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNzU1IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9yZXNvdXJjZXMvc3R5bGUu
Y2dpCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5k
YXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRob3V0LWNvbnRlbnQtdHlwZS1oZWFkZXItZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1l
L3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRob3V0LWNvbnRlbnQtdHlwZS1oZWFk
ZXIuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA0MmE0NTBiLi41ZTU0NGM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMDktMDQtMDcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5MDQKKworICAgICAgICBUZXN0IHRoYXQgd2UgYXBwbHkg
c3R5bGUgc2hlZXRzIGluIHN0YW5kYXJkcyBtb2RlIGV2ZW4gaWYKKyAgICAgICAgdGhvc2Ugc3R5
bGUgc3RlZWxzIGxhY2sgYSBDb250ZW50LVR5cGUgaGVhZGVyLiAgVGhpcyB0ZXN0CisgICAgICAg
IGlzbid0IHBlcmZlY3Q6IHN0eWxlLmNnaSBzZW5kcyAiQ29udGVudC1UeXBlOiAiIGluc3RlYWQg
b2YKKyAgICAgICAgbm90IHNlbmRpbmcgdGhlIGhlYWRlciBhdCBhbGwsIGJ1dCB0aGVzZSBleHBl
Y3RlZCByZXN1bHRzCisgICAgICAgIG1hdGNoIEZpcmVmb3guCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL21pbWUvcmVzb3VyY2VzL3N0eWxlLmNnaTogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRob3V0LWNvbnRlbnQtdHlw
ZS1oZWFkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pbWUv
c3RhbmRhcmQtbW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGhvdXQtY29udGVudC10eXBlLWhlYWRl
ci5odG1sOiBBZGRlZC4KKwogMjAwOS0wNC0wNiAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5vdCByZXZpZXdlZCBiZWNhdXNlIGl0J3Mgc3R1cGlk
bHkgb2J2aW91cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9yZXNv
dXJjZXMvc3R5bGUuY2dpIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3Jlc291cmNlcy9z
dHlsZS5jZ2kKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjBiNGVjYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9yZXNvdXJjZXMvc3R5
bGUuY2dpCkBAIC0wLDAgKzEsNSBAQAorIyEvdXNyL2Jpbi9wZXJsIC13VAordXNlIHN0cmljdDsK
KworcHJpbnQgIkNvbnRlbnQtVHlwZTogXG5cbiI7CitwcmludCAiaHRtbCB7IGJhY2tncm91bmQt
Y29sb3I6IGdyZWVuOyB9XG4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRob3V0LWNvbnRlbnQtdHlwZS1o
ZWFkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJk
LW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRob3V0LWNvbnRlbnQtdHlwZS1oZWFkZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNGYxZGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1s
b2Fkcy1zdHlsZXNoZWV0LXdpdGhvdXQtY29udGVudC10eXBlLWhlYWRlci1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSBAQAorVGhpcyB0ZXN0IHBhc3NlcyBpZiB3ZSBhcHBseSB0aGUgc3R5bGVzaGVl
dCAod2hpY2ggdHVybnMgdGhlIGJhY2tncm91bmQgY29sb3IgZ3JlZW4uKSBUaGUgYmFja2dyb3Vu
ZCBjb2xvciBpczogcmdiKDAsIDEyOCwgMCkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGhvdXQtY29udGVu
dC10eXBlLWhlYWRlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJk
LW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRob3V0LWNvbnRlbnQtdHlwZS1oZWFkZXIuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDJiZDFkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5
bGVzaGVldC13aXRob3V0LWNvbnRlbnQtdHlwZS1oZWFkZXIuaHRtbApAQCAtMCwwICsxLDI1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9InJlc291cmNlcy9zdHlsZS5jZ2kiPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCit3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3Vs
dCcpLmlubmVySFRNTCA9CisgICAgICAgIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudCwgbnVsbCkuCisgICAgICAgICAgICBnZXRQcm9wZXJ0eVZhbHVlKCJi
YWNrZ3JvdW5kLWNvbG9yIik7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IHBhc3NlcyBpZiB3ZSBhcHBseSB0aGUgc3R5
bGVzaGVldCAod2hpY2ggdHVybnMgdGhlIGJhY2tncm91bmQgY29sb3IKK2dyZWVuLikgIFRoZSBi
YWNrZ3JvdW5kIGNvbG9yIGlzOiA8c3BhbiBpZD0icmVzdWx0Ij48L3NwYW4+LgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA2YmJlY2Q1Li5iYmExZmFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDA5LTA0LTA2ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI0OTA0CisKKyAgICAgICAgVmVyaWZ5IHRoZSBNSU1FIHR5cGUgb2Ygc3R5bGVzaGVldHMg
KGluIHN0YW5kYXJkcyBtb2RlKSBieSBsb29raW5nCisgICAgICAgIGF0IHRoZSBDb250ZW50LVR5
cGUgaGVhZGVyIGRpcmVjdGx5LiAgVGhpcyBieXBhc3NlcyBhbnkgY29udGVudAorICAgICAgICBz
bmlmZmluZyB0aGF0IG1pZ2h0IGJlIGNvbmZ1c2luZyB0aGUgaXNzdWUuCisKKyAgICAgICAgVGVz
dDogaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRob3V0
LWNvbnRlbnQtdHlwZS1oZWFkZXIuaHRtbAorCisgICAgICAgICogbG9hZGVyL0NhY2hlZENTU1N0
eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVTaGVldDo6Y2Fu
VXNlU2hlZXQpOgorCiAyMDA5LTA0LTA2ICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgYi9XZWJDb3JlL2xvYWRlci9D
YWNoZWRDU1NTdHlsZVNoZWV0LmNwcAppbmRleCAxZmIxYTkxLi5kZDEwZTQyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9XZWJDb3JlL2xv
YWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVu
dFdhbGtlci5oIgorI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291
cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgImxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTEzMSw4ICsxMzIsMTUgQEAgYm9vbCBDYWNoZWRDU1NTdHlsZVNoZWV0OjpjYW5Vc2VT
aGVldChib29sIGVuZm9yY2VNSU1FVHlwZSkgY29uc3QKICAgICBpZiAoIWVuZm9yY2VNSU1FVHlw
ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICAvLyBUaGlzIGNoZWNrIGV4YWN0bHkgbWF0
Y2hlcyBGaXJlZm94LgotICAgIFN0cmluZyBtaW1lVHlwZSA9IHJlc3BvbnNlKCkubWltZVR5cGUo
KTsKKyAgICAvLyBUaGlzIGNoZWNrIGV4YWN0bHkgbWF0Y2hlcyBGaXJlZm94LiAgTm90ZSB0aGF0
IHdlIGdyYWIgdGhlIENvbnRlbnQtVHlwZQorICAgIC8vIGhlYWRlciBkaXJlY3RseSBiZWNhdXNl
IHdlIHdhbnQgdG8gc2VlIHdoYXQgdGhlIHZhbHVlIGlzIEJFRk9SRSBjb250ZW50CisgICAgLy8g
c25pZmZpbmcuICBGaXJlZm94IGRvZXMgdGhpcyBieSBzZXR0aW5nIGEgInR5cGUgaGludCIgb24g
dGhlIGNoYW5uZWwuCisgICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgb2JzZXJ2
YXRpb25hbGx5IGVxdWl2YWxlbnQuCisgICAgLy8KKyAgICAvLyBGb3IgcHJvdG9jb2xzLCBsaWtl
IGZpbGU6Ly8gYW5kIGZ0cDovLyB0aGF0IGRvbid0IGhhdmUgYSBDb250ZW50LVR5cGUKKyAgICAv
LyBoZWFkZXIsIHRoaXMgY29kZSBkZWZhdWx0cyB0byBhbGxvd2luZyB0aGUgc3R5bGVzaGVldCBz
byBmb2xrcyBjYW4gdXNlCisgICAgLy8gc3RhbmRhcmRzIG1vZGUgZm9yIGxvY2FsIEhUTUwgZG9j
dW1lbnRzLgorICAgIFN0cmluZyBtaW1lVHlwZSA9IGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5
cGUocmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtVHlwZSIpKTsKICAgICByZXR1
cm4gbWltZVR5cGUuaXNFbXB0eSgpIHx8IGVxdWFsSWdub3JpbmdDYXNlKG1pbWVUeXBlLCAidGV4
dC9jc3MiKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShtaW1lVHlwZSwgImFwcGxpY2F0aW9uL3gtdW5r
bm93bi1jb250ZW50LXR5cGUiKTsKIH0KICAKLS0gCjEuNi4wLjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29337</attachid>
            <date>2009-04-08 09:54:05 -0700</date>
            <delta_ts>2009-04-08 11:15:29 -0700</delta_ts>
            <desc>more tests</desc>
            <filename>newcss-tests.patch</filename>
            <type>text/plain</type>
            <size>17466</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">RnJvbSBhMWFiYzkzYTkwZGNjMjYyZDAzYTM3MjZjMWRhMTRkNTg3ZjkwNjdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIEJhcnRoIDxhYmFydGhAYXJjdGljYS5sb2NhbD4KRGF0
ZTogV2VkLCA4IEFwciAyMDA5IDA5OjQwOjQwIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gMjAwOS0w
NC0wOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgoKICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgTW9yZSB0ZXN0cyBmb3Igb3VyIGhhbmRsaW5nIG9m
IE1JTUUgdHlwZXMgYW5kIHN0eWxlIHNoZWV0cy4KCiAgICAgICAgKiBodHRwL3Rlc3RzL21pbWUv
cmVzb3VyY2VzL3N0eWxlLXdpdGgtY2hhcnNldC5waHA6IEFkZGVkLgogICAgICAgICogaHR0cC90
ZXN0cy9taW1lL3Jlc291cmNlcy9zdHlsZS13aXRoLWVtcHR5LWNvbnRlbnQtdHlwZS5jZ2k6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvcmVzb3VyY2VzL3N0eWxlLmNn
aS4KICAgICAgICAqIGh0dHAvdGVzdHMvbWltZS9yZXNvdXJjZXMvc3R5bGUtd2l0aC10ZXh0LXBs
YWluLnBocDogQWRkZWQuCiAgICAgICAgKiBodHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1k
b2VzLW5vdC1sb2FkLXN0eWxlc2hlZXQtd2l0aC10ZXh0LXBsYWluLWFuZC1jc3MtZXh0ZW5zaW9u
LWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAgICAgKiBodHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQt
bW9kZS1kb2VzLW5vdC1sb2FkLXN0eWxlc2hlZXQtd2l0aC10ZXh0LXBsYWluLWFuZC1jc3MtZXh0
ZW5zaW9uLmh0bWw6IEFkZGVkLgogICAgICAgICogaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1v
ZGUtZG9lcy1ub3QtbG9hZC1zdHlsZXNoZWV0LXdpdGgtdGV4dC1wbGFpbi1leHBlY3RlZC50eHQ6
IEFkZGVkLgogICAgICAgICogaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtZG9lcy1ub3Qt
bG9hZC1zdHlsZXNoZWV0LXdpdGgtdGV4dC1wbGFpbi5odG1sOiBBZGRlZC4KICAgICAgICAqIGh0
dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC1jaGFyc2V0
LWFuZC1jc3MtZXh0ZW5zaW9uLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRob3V0LWNv
bnRlbnQtdHlwZS1oZWFkZXItZXhwZWN0ZWQudHh0LgogICAgICAgICogaHR0cC90ZXN0cy9taW1l
L3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRoLWNoYXJzZXQtYW5kLWNzcy1leHRl
bnNpb24uaHRtbDogQWRkZWQuCiAgICAgICAgKiBodHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9k
ZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGgtY2hhcnNldC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hl
ZXQtd2l0aG91dC1jb250ZW50LXR5cGUtaGVhZGVyLWV4cGVjdGVkLnR4dC4KICAgICAgICAqIGh0
dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC1jaGFyc2V0
Lmh0bWw6IEFkZGVkLgogICAgICAgICogaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9h
ZHMtc3R5bGVzaGVldC13aXRoLWVtcHR5LWNvbnRlbnQtdHlwZS1leHBlY3RlZC50eHQ6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1sb2Fkcy1z
dHlsZXNoZWV0LXdpdGhvdXQtY29udGVudC10eXBlLWhlYWRlci1leHBlY3RlZC50eHQuCiAgICAg
ICAgKiBodHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGgt
ZW1wdHktY29udGVudC10eXBlLmh0bWw6IEFkZGVkLgogICAgICAgICogaHR0cC90ZXN0cy9taW1l
L3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRob3V0LWNvbnRlbnQtdHlwZS1oZWFk
ZXIuaHRtbDogUmVtb3ZlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKysrKysrKysrKysrKysrKysKIC4uLi90ZXN0cy9t
aW1lL3Jlc291cmNlcy9zdHlsZS13aXRoLWNoYXJzZXQucGhwICAgIHwgICAgNCArKysKIC4uLi9y
ZXNvdXJjZXMvc3R5bGUtd2l0aC1lbXB0eS1jb250ZW50LXR5cGUuY2dpICAgIHwgICAgNSArKysr
CiAuLi4vdGVzdHMvbWltZS9yZXNvdXJjZXMvc3R5bGUtd2l0aC10ZXh0LXBsYWluLnBocCB8ICAg
IDQgKysrCiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvcmVzb3VyY2VzL3N0eWxlLmNnaSAg
ICB8ICAgIDUgLS0tLQogLi4uLXdpdGgtdGV4dC1wbGFpbi1hbmQtY3NzLWV4dGVuc2lvbi1leHBl
Y3RlZC50eHQgfCAgICAxICsKIC4uLnlsZXNoZWV0LXdpdGgtdGV4dC1wbGFpbi1hbmQtY3NzLWV4
dGVuc2lvbi5odG1sIHwgICAyMCArKysrKysrKysrKysrKysrKysrCiAuLi5vdC1sb2FkLXN0eWxl
c2hlZXQtd2l0aC10ZXh0LXBsYWluLWV4cGVjdGVkLnR4dCB8ICAgIDEgKwogLi4uZS1kb2VzLW5v
dC1sb2FkLXN0eWxlc2hlZXQtd2l0aC10ZXh0LXBsYWluLmh0bWwgfCAgIDIwICsrKysrKysrKysr
KysrKysrKysKIC4uLmVldC13aXRoLWNoYXJzZXQtYW5kLWNzcy1leHRlbnNpb24tZXhwZWN0ZWQu
dHh0IHwgICAgMSArCiAuLi4tc3R5bGVzaGVldC13aXRoLWNoYXJzZXQtYW5kLWNzcy1leHRlbnNp
b24uaHRtbCB8ICAgMjAgKysrKysrKysrKysrKysrKysrKwogLi4ubW9kZS1sb2Fkcy1zdHlsZXNo
ZWV0LXdpdGgtY2hhcnNldC1leHBlY3RlZC50eHQgfCAgICAxICsKIC4uLnRhbmRhcmQtbW9kZS1s
b2Fkcy1zdHlsZXNoZWV0LXdpdGgtY2hhcnNldC5odG1sIHwgICAyMCArKysrKysrKysrKysrKysr
KysrCiAuLi5zdHlsZXNoZWV0LXdpdGgtZW1wdHktY29udGVudC10eXBlLWV4cGVjdGVkLnR4dCB8
ICAgIDEgKwogLi4uZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGgtZW1wdHktY29udGVudC10eXBlLmh0
bWwgfCAgIDIwICsrKysrKysrKysrKysrKysrKysKIC4uLmVzaGVldC13aXRob3V0LWNvbnRlbnQt
dHlwZS1oZWFkZXItZXhwZWN0ZWQudHh0IHwgICAgMSAtCiAuLi5hZHMtc3R5bGVzaGVldC13aXRo
b3V0LWNvbnRlbnQtdHlwZS1oZWFkZXIuaHRtbCB8ICAgMjAgLS0tLS0tLS0tLS0tLS0tLS0tLQog
MTcgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNzU1IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9yZXNvdXJjZXMvc3R5
bGUtd2l0aC1jaGFyc2V0LnBocAogY3JlYXRlIG1vZGUgMTAwNzU1IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWltZS9yZXNvdXJjZXMvc3R5bGUtd2l0aC1lbXB0eS1jb250ZW50LXR5cGUuY2dpCiBj
cmVhdGUgbW9kZSAxMDA3NTUgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3Jlc291cmNlcy9z
dHlsZS13aXRoLXRleHQtcGxhaW4ucGhwCiBkZWxldGUgbW9kZSAxMDA3NTUgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taW1lL3Jlc291cmNlcy9zdHlsZS5jZ2kKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1kb2VzLW5vdC1sb2FkLXN0
eWxlc2hlZXQtd2l0aC10ZXh0LXBsYWluLWFuZC1jc3MtZXh0ZW5zaW9uLWV4cGVjdGVkLnR4dAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1t
b2RlLWRvZXMtbm90LWxvYWQtc3R5bGVzaGVldC13aXRoLXRleHQtcGxhaW4tYW5kLWNzcy1leHRl
bnNpb24uaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlt
ZS9zdGFuZGFyZC1tb2RlLWRvZXMtbm90LWxvYWQtc3R5bGVzaGVldC13aXRoLXRleHQtcGxhaW4t
ZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aW1lL3N0YW5kYXJkLW1vZGUtZG9lcy1ub3QtbG9hZC1zdHlsZXNoZWV0LXdpdGgtdGV4dC1wbGFp
bi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0
YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRoLWNoYXJzZXQtYW5kLWNzcy1leHRlbnNp
b24tZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRoLWNoYXJzZXQtYW5kLWNz
cy1leHRlbnNpb24uaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC1jaGFyc2V0LWV4cGVj
dGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9z
dGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC1jaGFyc2V0Lmh0bWwKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1sb2Fk
cy1zdHlsZXNoZWV0LXdpdGgtZW1wdHktY29udGVudC10eXBlLWV4cGVjdGVkLnR4dAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxv
YWRzLXN0eWxlc2hlZXQtd2l0aC1lbXB0eS1jb250ZW50LXR5cGUuaHRtbAogZGVsZXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0
eWxlc2hlZXQtd2l0aG91dC1jb250ZW50LXR5cGUtaGVhZGVyLWV4cGVjdGVkLnR4dAogZGVsZXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxv
YWRzLXN0eWxlc2hlZXQtd2l0aG91dC1jb250ZW50LXR5cGUtaGVhZGVyLmh0bWwKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
M2JhZjkyMS4uM2E1ODIwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDA5LTA0LTA4ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTW9yZSB0ZXN0cyBmb3Igb3VyIGhhbmRsaW5nIG9mIE1JTUUg
dHlwZXMgYW5kIHN0eWxlIHNoZWV0cy4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbWltZS9yZXNv
dXJjZXMvc3R5bGUtd2l0aC1jaGFyc2V0LnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9taW1lL3Jlc291cmNlcy9zdHlsZS13aXRoLWVtcHR5LWNvbnRlbnQtdHlwZS5jZ2k6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvcmVzb3VyY2VzL3N0eWxlLmNnaS4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL21pbWUvcmVzb3VyY2VzL3N0eWxlLXdpdGgtdGV4dC1wbGFp
bi5waHA6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWRv
ZXMtbm90LWxvYWQtc3R5bGVzaGVldC13aXRoLXRleHQtcGxhaW4tYW5kLWNzcy1leHRlbnNpb24t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQt
bW9kZS1kb2VzLW5vdC1sb2FkLXN0eWxlc2hlZXQtd2l0aC10ZXh0LXBsYWluLWFuZC1jc3MtZXh0
ZW5zaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1t
b2RlLWRvZXMtbm90LWxvYWQtc3R5bGVzaGVldC13aXRoLXRleHQtcGxhaW4tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1kb2VzLW5v
dC1sb2FkLXN0eWxlc2hlZXQtd2l0aC10ZXh0LXBsYWluLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC1jaGFy
c2V0LWFuZC1jc3MtZXh0ZW5zaW9uLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRob3V0
LWNvbnRlbnQtdHlwZS1oZWFkZXItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMv
bWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC1jaGFyc2V0LWFuZC1jc3Mt
ZXh0ZW5zaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWltZS9zdGFuZGFy
ZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC1jaGFyc2V0LWV4cGVjdGVkLnR4dDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5
bGVzaGVldC13aXRob3V0LWNvbnRlbnQtdHlwZS1oZWFkZXItZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC1j
aGFyc2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1t
b2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC1lbXB0eS1jb250ZW50LXR5cGUtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUt
bG9hZHMtc3R5bGVzaGVldC13aXRob3V0LWNvbnRlbnQtdHlwZS1oZWFkZXItZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIGh0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hl
ZXQtd2l0aC1lbXB0eS1jb250ZW50LXR5cGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRob3V0LWNvbnRlbnQt
dHlwZS1oZWFkZXIuaHRtbDogUmVtb3ZlZC4KKworMjAwOS0wNC0wOCAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFr
b3YuCiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
OTA0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvcmVzb3VyY2VzL3N0
eWxlLXdpdGgtY2hhcnNldC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvcmVzb3Vy
Y2VzL3N0eWxlLXdpdGgtY2hhcnNldC5waHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAw
MDAwMC4uYzAxMjZkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWltZS9yZXNvdXJjZXMvc3R5bGUtd2l0aC1jaGFyc2V0LnBocApAQCAtMCwwICsxLDQgQEAKKzw/
cGhwCitoZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9jc3M7IGNoYXJzZXQ9dXRmLTgiKTsKKz8+
CitodG1sIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWltZS9yZXNvdXJjZXMvc3R5bGUtd2l0aC1lbXB0eS1jb250ZW50LXR5
cGUuY2dpIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3Jlc291cmNlcy9zdHlsZS13aXRo
LWVtcHR5LWNvbnRlbnQtdHlwZS5jZ2kKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MC4uYjBiNGVjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlt
ZS9yZXNvdXJjZXMvc3R5bGUtd2l0aC1lbXB0eS1jb250ZW50LXR5cGUuY2dpCkBAIC0wLDAgKzEs
NSBAQAorIyEvdXNyL2Jpbi9wZXJsIC13VAordXNlIHN0cmljdDsKKworcHJpbnQgIkNvbnRlbnQt
VHlwZTogXG5cbiI7CitwcmludCAiaHRtbCB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9XG4i
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3Jlc291cmNlcy9zdHls
ZS13aXRoLXRleHQtcGxhaW4ucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3Jlc291
cmNlcy9zdHlsZS13aXRoLXRleHQtcGxhaW4ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4
IDAwMDAwMDAuLjllODU5NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pbWUvcmVzb3VyY2VzL3N0eWxlLXdpdGgtdGV4dC1wbGFpbi5waHAKQEAgLTAsMCArMSw0
IEBACis8P3BocAoraGVhZGVyKCJDb250ZW50LVR5cGU6IHRleHQvcGxhaW4iKTsKKz8+CitodG1s
IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pbWUvcmVzb3VyY2VzL3N0eWxlLmNnaSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWltZS9yZXNvdXJjZXMvc3R5bGUuY2dpCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBi
MGI0ZWNjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9yZXNvdXJj
ZXMvc3R5bGUuY2dpCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0jIS91c3IvYmluL3Bl
cmwgLXdUCi11c2Ugc3RyaWN0OwotCi1wcmludCAiQ29udGVudC1UeXBlOiBcblxuIjsKLXByaW50
ICJodG1sIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH1cbiI7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1kb2VzLW5vdC1sb2FkLXN0eWxl
c2hlZXQtd2l0aC10ZXh0LXBsYWluLWFuZC1jc3MtZXh0ZW5zaW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWRvZXMtbm90LWxvYWQtc3R5
bGVzaGVldC13aXRoLXRleHQtcGxhaW4tYW5kLWNzcy1leHRlbnNpb24tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlMTQ3ZTgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1kb2VzLW5vdC1s
b2FkLXN0eWxlc2hlZXQtd2l0aC10ZXh0LXBsYWluLWFuZC1jc3MtZXh0ZW5zaW9uLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxIEBACitUaGlzIHRlc3QgcGFzc2VzIGlmIHdlIGRvIE5PVCBhcHBseSB0
aGUgc3R5bGVzaGVldCAod2hpY2ggdHVybnMgdGhlIGJhY2tncm91bmQgY29sb3IgcmVkLikgVGhl
IGJhY2tncm91bmQgY29sb3IgaXM6IHJnYmEoMCwgMCwgMCwgMCkuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1kb2VzLW5vdC1sb2FkLXN0eWxl
c2hlZXQtd2l0aC10ZXh0LXBsYWluLWFuZC1jc3MtZXh0ZW5zaW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1kb2VzLW5vdC1sb2FkLXN0eWxlc2hlZXQt
d2l0aC10ZXh0LXBsYWluLWFuZC1jc3MtZXh0ZW5zaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZjU4Yjk0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWRvZXMtbm90LWxvYWQtc3R5bGVzaGVldC13
aXRoLXRleHQtcGxhaW4tYW5kLWNzcy1leHRlbnNpb24uaHRtbApAQCAtMCwwICsxLDIwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9InJlc291cmNlcy9zdHlsZS13aXRoLXRleHQtcGxhaW4ucGhwL2Zvby5jc3MiPgorPHNjcmlw
dD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworCit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9CisgICAgICAgIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgbnVsbCkuCisg
ICAgICAgICAgICBnZXRQcm9wZXJ0eVZhbHVlKCJiYWNrZ3JvdW5kLWNvbG9yIik7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IHBhc3NlcyBpZiB3ZSBkbyBOT1QgYXBw
bHkgdGhlIHN0eWxlc2hlZXQgKHdoaWNoIHR1cm5zIHRoZSBiYWNrZ3JvdW5kCitjb2xvciByZWQu
KSAgVGhlIGJhY2tncm91bmQgY29sb3IgaXM6IDxzcGFuIGlkPSJyZXN1bHQiPjwvc3Bhbj4uCis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUv
c3RhbmRhcmQtbW9kZS1kb2VzLW5vdC1sb2FkLXN0eWxlc2hlZXQtd2l0aC10ZXh0LXBsYWluLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWRv
ZXMtbm90LWxvYWQtc3R5bGVzaGVldC13aXRoLXRleHQtcGxhaW4tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlMTQ3ZTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1kb2VzLW5vdC1sb2Fk
LXN0eWxlc2hlZXQtd2l0aC10ZXh0LXBsYWluLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitU
aGlzIHRlc3QgcGFzc2VzIGlmIHdlIGRvIE5PVCBhcHBseSB0aGUgc3R5bGVzaGVldCAod2hpY2gg
dHVybnMgdGhlIGJhY2tncm91bmQgY29sb3IgcmVkLikgVGhlIGJhY2tncm91bmQgY29sb3IgaXM6
IHJnYmEoMCwgMCwgMCwgMCkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
bWUvc3RhbmRhcmQtbW9kZS1kb2VzLW5vdC1sb2FkLXN0eWxlc2hlZXQtd2l0aC10ZXh0LXBsYWlu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1kb2VzLW5v
dC1sb2FkLXN0eWxlc2hlZXQtd2l0aC10ZXh0LXBsYWluLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNTIwMjQ1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWRvZXMtbm90LWxvYWQtc3R5bGVzaGVldC13
aXRoLXRleHQtcGxhaW4uaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9zdHls
ZS13aXRoLXRleHQtcGxhaW4ucGhwIj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKword2lu
ZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
ZXN1bHQnKS5pbm5lckhUTUwgPQorICAgICAgICB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQsIG51bGwpLgorICAgICAgICAgICAgZ2V0UHJvcGVydHlWYWx1
ZSgiYmFja2dyb3VuZC1jb2xvciIpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1Ro
aXMgdGVzdCBwYXNzZXMgaWYgd2UgZG8gTk9UIGFwcGx5IHRoZSBzdHlsZXNoZWV0ICh3aGljaCB0
dXJucyB0aGUgYmFja2dyb3VuZAorY29sb3IgcmVkLikgIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIGlz
OiA8c3BhbiBpZD0icmVzdWx0Ij48L3NwYW4+LgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVz
aGVldC13aXRoLWNoYXJzZXQtYW5kLWNzcy1leHRlbnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRo
LWNoYXJzZXQtYW5kLWNzcy1leHRlbnNpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjhkNGYxZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGgtY2hh
cnNldC1hbmQtY3NzLWV4dGVuc2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorVGhpcyB0
ZXN0IHBhc3NlcyBpZiB3ZSBhcHBseSB0aGUgc3R5bGVzaGVldCAod2hpY2ggdHVybnMgdGhlIGJh
Y2tncm91bmQgY29sb3IgZ3JlZW4uKSBUaGUgYmFja2dyb3VuZCBjb2xvciBpczogcmdiKDAsIDEy
OCwgMCkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQt
bW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGgtY2hhcnNldC1hbmQtY3NzLWV4dGVuc2lvbi5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVz
aGVldC13aXRoLWNoYXJzZXQtYW5kLWNzcy1leHRlbnNpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi43YThmNGY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRoLWNo
YXJzZXQtYW5kLWNzcy1leHRlbnNpb24uaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291
cmNlcy9zdHlsZS13aXRoLWNoYXJzZXQucGhwL2Zvby5jc3MiPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworCit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9CisgICAgICAgIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgbnVsbCkuCisgICAgICAgICAgICBn
ZXRQcm9wZXJ0eVZhbHVlKCJiYWNrZ3JvdW5kLWNvbG9yIik7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorVGhpcyB0ZXN0IHBhc3NlcyBpZiB3ZSBhcHBseSB0aGUgc3R5bGVzaGVldCAo
d2hpY2ggdHVybnMgdGhlIGJhY2tncm91bmQgY29sb3IKK2dyZWVuLikgIFRoZSBiYWNrZ3JvdW5k
IGNvbG9yIGlzOiA8c3BhbiBpZD0icmVzdWx0Ij48L3NwYW4+LgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9h
ZHMtc3R5bGVzaGVldC13aXRoLWNoYXJzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRoLWNoYXJzZXQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNGYxZGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQt
bW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGgtY2hhcnNldC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSBAQAorVGhpcyB0ZXN0IHBhc3NlcyBpZiB3ZSBhcHBseSB0aGUgc3R5bGVzaGVldCAod2hpY2gg
dHVybnMgdGhlIGJhY2tncm91bmQgY29sb3IgZ3JlZW4uKSBUaGUgYmFja2dyb3VuZCBjb2xvciBp
czogcmdiKDAsIDEyOCwgMCkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
bWUvc3RhbmRhcmQtbW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGgtY2hhcnNldC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13
aXRoLWNoYXJzZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDll
YmIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5k
YXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRoLWNoYXJzZXQuaHRtbApAQCAtMCwwICsxLDIw
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9InJlc291cmNlcy9zdHlsZS13aXRoLWNoYXJzZXQucGhwIj4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPQorICAgICAgICB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIG51bGwpLgorICAgICAg
ICAgICAgZ2V0UHJvcGVydHlWYWx1ZSgiYmFja2dyb3VuZC1jb2xvciIpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KK1RoaXMgdGVzdCBwYXNzZXMgaWYgd2UgYXBwbHkgdGhlIHN0eWxl
c2hlZXQgKHdoaWNoIHR1cm5zIHRoZSBiYWNrZ3JvdW5kIGNvbG9yCitncmVlbi4pICBUaGUgYmFj
a2dyb3VuZCBjb2xvciBpczogPHNwYW4gaWQ9InJlc3VsdCI+PC9zcGFuPi4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1t
b2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC1lbXB0eS1jb250ZW50LXR5cGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVz
aGVldC13aXRoLWVtcHR5LWNvbnRlbnQtdHlwZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOGQ0ZjFkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC1l
bXB0eS1jb250ZW50LXR5cGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1RoaXMgdGVzdCBw
YXNzZXMgaWYgd2UgYXBwbHkgdGhlIHN0eWxlc2hlZXQgKHdoaWNoIHR1cm5zIHRoZSBiYWNrZ3Jv
dW5kIGNvbG9yIGdyZWVuLikgVGhlIGJhY2tncm91bmQgY29sb3IgaXM6IHJnYigwLCAxMjgsIDAp
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUt
bG9hZHMtc3R5bGVzaGVldC13aXRoLWVtcHR5LWNvbnRlbnQtdHlwZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRoLWVt
cHR5LWNvbnRlbnQtdHlwZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjM4ZTM5NzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUv
c3RhbmRhcmQtbW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGgtZW1wdHktY29udGVudC10eXBlLmh0
bWwKQEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvc3R5bGUtd2l0aC1lbXB0eS1jb250
ZW50LXR5cGUuY2dpIj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKword2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5p
bm5lckhUTUwgPQorICAgICAgICB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQsIG51bGwpLgorICAgICAgICAgICAgZ2V0UHJvcGVydHlWYWx1ZSgiYmFja2dy
b3VuZC1jb2xvciIpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1RoaXMgdGVzdCBw
YXNzZXMgaWYgd2UgYXBwbHkgdGhlIHN0eWxlc2hlZXQgKHdoaWNoIHR1cm5zIHRoZSBiYWNrZ3Jv
dW5kIGNvbG9yCitncmVlbi4pICBUaGUgYmFja2dyb3VuZCBjb2xvciBpczogPHNwYW4gaWQ9InJl
c3VsdCI+PC9zcGFuPi4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aG91dC1j
b250ZW50LXR5cGUtaGVhZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aG91dC1jb250ZW50LXR5cGUt
aGVhZGVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQ0ZjFk
ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9k
ZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGhvdXQtY29udGVudC10eXBlLWhlYWRlci1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1UaGlzIHRlc3QgcGFzc2VzIGlmIHdlIGFw
cGx5IHRoZSBzdHlsZXNoZWV0ICh3aGljaCB0dXJucyB0aGUgYmFja2dyb3VuZCBjb2xvciBncmVl
bi4pIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIGlzOiByZ2IoMCwgMTI4LCAwKS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hl
ZXQtd2l0aG91dC1jb250ZW50LXR5cGUtaGVhZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pbWUvc3RhbmRhcmQtbW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGhvdXQtY29udGVudC10
eXBlLWhlYWRlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTQ3NTE2Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxv
YWRzLXN0eWxlc2hlZXQtd2l0aG91dC1jb250ZW50LXR5cGUtaGVhZGVyLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9zdHlsZS5jZ2kiPgotPHNjcmlw
dD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotCi13aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9Ci0gICAgICAgIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgbnVsbCkuCi0g
ICAgICAgICAgICBnZXRQcm9wZXJ0eVZhbHVlKCJiYWNrZ3JvdW5kLWNvbG9yIik7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotVGhpcyB0ZXN0IHBhc3NlcyBpZiB3ZSBhcHBseSB0aGUg
c3R5bGVzaGVldCAod2hpY2ggdHVybnMgdGhlIGJhY2tncm91bmQgY29sb3IKLWdyZWVuLikgIFRo
ZSBiYWNrZ3JvdW5kIGNvbG9yIGlzOiA8c3BhbiBpZD0icmVzdWx0Ij48L3NwYW4+LgotPC9ib2R5
PgotPC9odG1sPgotLSAKMS42LjAuMQoK
</data>
<flag name="review"
          id="14579"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>