<?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>38711</bug_id>
          
          <creation_ts>2010-05-06 17:53:48 -0700</creation_ts>
          <short_desc>DragData::asURL() shouldn&apos;t do file validity checks</short_desc>
          <delta_ts>2010-05-18 13:24:03 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>38773</dependson>
    
    <dependson>39268</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Daniel Cheng">dcheng</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>cblu</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dimich</cc>
    
    <cc>eric</cc>
    
    <cc>jianli</cc>
    
    <cc>oliver</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>222087</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-06 17:53:48 -0700</bug_when>
    <thetext>The renderer is sandboxed, and the calls to get file metadata will (should) fail. The loader is smart enough to do the right thing. The general consensus seemed to be that letting the renderer poke at the filesystem like this is undesirable.

This is only a problem on Windows today because the Linux/Mac sandboxes allow metadata access today in order to follow symlinks. However, it&apos;s probably good to avoid depending on this function if at all possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222093</commentid>
    <comment_count>1</comment_count>
      <attachid>55328</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-06 17:59:00 -0700</bug_when>
    <thetext>Created attachment 55328
Patch for issue

Once this patch lands, I can land the Chromium-side changes and remove the hacks in ClipboardChromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222100</commentid>
    <comment_count>2</comment_count>
      <attachid>55328</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-06 18:13:21 -0700</bug_when>
    <thetext>Comment on attachment 55328
Patch for issue

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222546</commentid>
    <comment_count>3</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-07 12:25:45 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/58963</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222587</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-07 13:28:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/58963 might have broken Tiger Intel Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/58963
http://trac.webkit.org/changeset/58965</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223636</commentid>
    <comment_count>5</comment_count>
      <attachid>55632</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-10 18:10:12 -0700</bug_when>
    <thetext>Created attachment 55632
Patch

Just looking for comments for now. Dmitry commented that there might be some rationale for DragData::asURL to try as hard as possible to not return file:// URLs pointing to things that are not files.

Here are my arguments for why DragData::asURL shouldn&apos;t bother trying so hard:
1. Checking the file exists doesn&apos;t help much, since the loader will end up needing to do the check too.
2. File IO can be expensive. Why do it twice when you can do it once.
3. This code was never hit on Chromium anyway, due to the fact that we always populate the URL field if we see a URL-like thing in the drag (where that URL-like thing is plain text that happens to resemble a URL, a file object, etc).
4. If the renderer is sandboxed (which more platforms are starting to move towards), the calls will fail. This is already true of Chromium on Windows. Might as well let something which is privileged like the loader handle it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223637</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-10 18:10:52 -0700</bug_when>
    <thetext>(I can&apos;t seem to set the status to open or in progress, or something like that.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223639</commentid>
    <comment_count>7</comment_count>
      <attachid>55633</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-10 18:15:12 -0700</bug_when>
    <thetext>Created attachment 55633
Patch

Sorry for the spam. I was working on another change and it snuck into this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224719</commentid>
    <comment_count>8</comment_count>
      <attachid>55867</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-12 10:40:03 -0700</bug_when>
    <thetext>Created attachment 55867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224760</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-12 11:36:03 -0700</bug_when>
    <thetext>I just noticed that the original issue the code was trying to work around was to prevent Safari from handling any directory loads. However, other WebKit clients can handle this request correctly, so I think the correct place to move this logic is into the Safari loaders. I&apos;m going to poke around the loader code and see where the best place to add this is; I&apos;m not really familiar with it though, so any tips would be welcome...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224761</commentid>
    <comment_count>10</comment_count>
      <attachid>55867</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-12 11:37:09 -0700</bug_when>
    <thetext>Comment on attachment 55867
Patch

Any comments on the existing patch would be welcome as well, while I work on the loader change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224900</commentid>
    <comment_count>11</comment_count>
      <attachid>55903</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-12 14:32:49 -0700</bug_when>
    <thetext>Created attachment 55903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225174</commentid>
    <comment_count>12</comment_count>
      <attachid>55903</attachid>
    <who name="Evan Martin">evan</who>
    <bug_when>2010-05-13 00:14:26 -0700</bug_when>
    <thetext>Comment on attachment 55903
Patch

Setting commit-queue minus just so this doesn&apos;t get accidentally committed until you&apos;ve verified it won&apos;t break Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225379</commentid>
    <comment_count>13</comment_count>
      <attachid>55903</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-13 10:58:16 -0700</bug_when>
    <thetext>Comment on attachment 55903
Patch

Please also ask someone who is familiar with WebNSPasteboardExtras.mm to take a look.

LayoutTests/ChangeLog:3
 +          DragData::asURL() shouldn&apos;t do file validity checks
Since you also touch WebNSPasteboardExtras.mm, could you please update the bug title and all ChangeLog to describe the problem in generic way?

LayoutTests/editing/pasteboard/file-input-files-access.html: 
 +  &lt;script src=&quot;../../fast/js/resources/js-test-post.js&quot;&gt;&lt;/script&gt;
Why do we need to remove this?

LayoutTests/editing/pasteboard/script-tests/file-input-files-access.js:112
 +      // It&apos;d be easiest to use try-finally, but it doesn&apos;t work.
This comment is somewhat confusing. Can you explain?

LayoutTests/editing/pasteboard/script-tests/file-input-files-access.js:115
 +          // file input here.
Don&apos;t need to fold into 2 lines.

WebKit/mac/Misc/WebNSPasteboardExtras.mm:150
 +                  isDirectory)
Don&apos;t need to fold into 2 lines.

WebKit/mac/ChangeLog:11
 +          handling, since the Mac loader doesn&apos;t work correctly with them. 
I think there is a risk condition here. If the directory does not exist at first, [NSPasteboard _web_bestURL] will return a file URL. Then the directory is created.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226410</commentid>
    <comment_count>14</comment_count>
      <attachid>56174</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-15 21:00:53 -0700</bug_when>
    <thetext>Created attachment 56174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226412</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-15 21:06:00 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 55903 [details])
&gt; Please also ask someone who is familiar with WebNSPasteboardExtras.mm to take a look.
&gt; 

I&apos;ve asked oliver@apple.com to take a look.

&gt; LayoutTests/ChangeLog:3
&gt;  +          DragData::asURL() shouldn&apos;t do file validity checks
&gt; Since you also touch WebNSPasteboardExtras.mm, could you please update the bug title and all ChangeLog to describe the problem in generic way?
&gt; 

I updated the ChangeLogs to try to phrase the issue more clearly.

&gt; LayoutTests/editing/pasteboard/file-input-files-access.html: 
&gt;  +  &lt;script src=&quot;../../fast/js/resources/js-test-post.js&quot;&gt;&lt;/script&gt;
&gt; Why do we need to remove this?
&gt; 

This is removed. Since the final drop test triggers a navigation, nothing executes after that. That&apos;s why the usual post-test script is manually embedded in onbeforeunload.

&gt; LayoutTests/editing/pasteboard/script-tests/file-input-files-access.js:112
&gt;  +      // It&apos;d be easiest to use try-finally, but it doesn&apos;t work.
&gt; This comment is somewhat confusing. Can you explain?
&gt; 

I removed the comment, but originally, I was hoping that I could do:
try {
  // something that triggers navigation
} finally {
  // verify test results
}

But finally blocks do not execute if the UA is navigating away from the page.

&gt; LayoutTests/editing/pasteboard/script-tests/file-input-files-access.js:115
&gt;  +          // file input here.
&gt; Don&apos;t need to fold into 2 lines.
&gt; 

Fixed.

&gt; WebKit/mac/Misc/WebNSPasteboardExtras.mm:150
&gt;  +                  isDirectory)
&gt; Don&apos;t need to fold into 2 lines.
&gt; 

Fixed.

&gt; WebKit/mac/ChangeLog:11
&gt;  +          handling, since the Mac loader doesn&apos;t work correctly with them. 
&gt; I think there is a risk condition here. If the directory does not exist at first, [NSPasteboard _web_bestURL] will return a file URL. Then the directory is created.

The original code has race conditions too. Maybe the file exists but is deleted before the loader processes it, or maybe something is initially a file and then gets deleted and a directory with the same name is created. There&apos;s no real easy way to solve this without changing the loader, and I am not comfortable changing the Mac loader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226429</commentid>
    <comment_count>16</comment_count>
      <attachid>55328</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-16 00:35:14 -0700</bug_when>
    <thetext>Comment on attachment 55328
Patch for issue

Cleared Jian Li&apos;s review+ from obsolete attachment 55328 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226925</commentid>
    <comment_count>17</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-17 15:10:23 -0700</bug_when>
    <thetext>Darin, can you take a look at the WebNSPasteboardExtras changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226932</commentid>
    <comment_count>18</comment_count>
      <attachid>56174</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-17 15:21:00 -0700</bug_when>
    <thetext>Comment on attachment 56174
Patch

&gt; +        // FIXME: maybe it makes more sense to allow multiple files and only use the first one?

We capitalize sentences and fragments in comments, so this should be capitalized.

&gt; +            // FIXME: this check should move to the loader.

And this.

&gt; -            BOOL isDirectory;
&gt; +            BOOL isDirectory = false;

This should be &quot;NO&quot; rather than &quot;false&quot;. But also, the change is not needed. That function will always set the BOOL we pass and the code was already fine in this respect.

&gt; -            if([[NSFileManager defaultManager] fileExistsAtPath:file isDirectory:&amp;isDirectory] &amp;&amp; !isDirectory){
&gt; -                return [[NSURL fileURLWithPath:file] _webkit_canonicalize];
&gt; -            }
&gt; +            if ([[NSFileManager defaultManager] fileExistsAtPath:file isDirectory:&amp;isDirectory] &amp;&amp; isDirectory)
&gt; +                return nil;
&gt; +            // Purposely allow invalid paths to fall through so the loader can handle it.

So the loader can handle *them*, not *it*.

I think this comment is really confusing. It seems fine to just remove all the checking entirely without comment. What I think is needed is a comment about the strange code that tries to find out if a file is a directory. What you say in the change log is closer to what&apos;s needed here. The comment needs to explain that we are filtering out directories here because we always did that in the past and for now we end up opening directories in the Finder without the check. The check needs to go away as soon as possible.

I&apos;m quite confused about the &quot;loader&quot; you are referring to. The term &quot;loader&quot; means something specific in WebKit, and somehow I don&apos;t think you mean the same thing I do by that word. Maybe you could be more specific about what you mean by &quot;loader&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226957</commentid>
    <comment_count>19</comment_count>
      <attachid>56281</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-17 15:56:22 -0700</bug_when>
    <thetext>Created attachment 56281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226961</commentid>
    <comment_count>20</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-17 16:00:49 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 56174 [details])
&gt; &gt; +        // FIXME: maybe it makes more sense to allow multiple files and only use the first one?
&gt; 
&gt; We capitalize sentences and fragments in comments, so this should be capitalized.
&gt; 
Done.

&gt; &gt; +            // FIXME: this check should move to the loader.
&gt; 
&gt; And this.
&gt; 
Done.

&gt; &gt; -            BOOL isDirectory;
&gt; &gt; +            BOOL isDirectory = false;
&gt; 
&gt; This should be &quot;NO&quot; rather than &quot;false&quot;. But also, the change is not needed. That function will always set the BOOL we pass and the code was already fine in this respect.
&gt; 
Reverted this line.

&gt; &gt; -            if([[NSFileManager defaultManager] fileExistsAtPath:file isDirectory:&amp;isDirectory] &amp;&amp; !isDirectory){
&gt; &gt; -                return [[NSURL fileURLWithPath:file] _webkit_canonicalize];
&gt; &gt; -            }
&gt; &gt; +            if ([[NSFileManager defaultManager] fileExistsAtPath:file isDirectory:&amp;isDirectory] &amp;&amp; isDirectory)
&gt; &gt; +                return nil;
&gt; &gt; +            // Purposely allow invalid paths to fall through so the loader can handle it.
&gt; 
&gt; So the loader can handle *them*, not *it*.
&gt; 
&gt; I think this comment is really confusing. It seems fine to just remove all the checking entirely without comment. What I think is needed is a comment about the strange code that tries to find out if a file is a directory. What you say in the change log is closer to what&apos;s needed here. The comment needs to explain that we are filtering out directories here because we always did that in the past and for now we end up opening directories in the Finder without the check. The check needs to go away as soon as possible.
&gt; 
&gt; I&apos;m quite confused about the &quot;loader&quot; you are referring to. The term &quot;loader&quot; means something specific in WebKit, and somehow I don&apos;t think you mean the same thing I do by that word. Maybe you could be more specific about what you mean by &quot;loader&quot;.

I updated the ChangeLog to be more specific about what I was referring to.

Thanks for the quick review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226962</commentid>
    <comment_count>21</comment_count>
      <attachid>56281</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-17 16:04:28 -0700</bug_when>
    <thetext>Comment on attachment 56281
Patch

&gt;  &lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
&gt;  &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
&gt;  &lt;script src=&quot;script-tests/file-input-files-access.js&quot;&gt;&lt;/script&gt;
&gt; -&lt;script src=&quot;../../fast/js/resources/js-test-post.js&quot;&gt;&lt;/script&gt;
&gt;  &lt;/body&gt;
&gt;  &lt;/html&gt;

This edit will be un-done next time someone runs the make-script-test-wrappers script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226970</commentid>
    <comment_count>22</comment_count>
      <attachid>56284</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-17 16:13:49 -0700</bug_when>
    <thetext>Created attachment 56284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226971</commentid>
    <comment_count>23</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-17 16:14:55 -0700</bug_when>
    <thetext>&gt; This edit will be un-done next time someone runs the make-script-test-wrappers script.

Reverted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227112</commentid>
    <comment_count>24</comment_count>
      <attachid>56284</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-17 22:09:45 -0700</bug_when>
    <thetext>Comment on attachment 56284
Patch

I&apos;ll land this manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227114</commentid>
    <comment_count>25</comment_count>
      <attachid>56284</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-17 22:12:03 -0700</bug_when>
    <thetext>Comment on attachment 56284
Patch

Clearing flags on attachment: 56284

Committed r59652: &lt;http://trac.webkit.org/changeset/59652&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227115</commentid>
    <comment_count>26</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-17 22:12:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227128</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-17 22:38:57 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59652 might have broken SnowLeopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227141</commentid>
    <comment_count>28</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-17 23:01:44 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 56284 [details])
&gt; Clearing flags on attachment: 56284
&gt; 
&gt; Committed r59652: &lt;http://trac.webkit.org/changeset/59652&gt;

Rolled out because it made editing/pasteboard/files-during-page-drags.html failing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227144</commentid>
    <comment_count>29</comment_count>
      <attachid>56325</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-17 23:12:20 -0700</bug_when>
    <thetext>Created attachment 56325
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227148</commentid>
    <comment_count>30</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-05-17 23:17:19 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Created an attachment (id=56325) [details]
&gt; Patch

Given darin has been driving reviews for this patch, could we give him time to respond to the most recent iteration?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227150</commentid>
    <comment_count>31</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-17 23:23:06 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #29)
&gt; &gt; Created an attachment (id=56325) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; Given darin has been driving reviews for this patch, could we give him time to respond to the most recent iteration?

Yep. I&apos;m going to upload one more patch, which more closely follows the style of the other layout test that uses onbeforeunload in a similar manner. I don&apos;t understand the weird behavior that onbeforeunload is exhibiting, so I&apos;m hoping he can shed some light on that as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227151</commentid>
    <comment_count>32</comment_count>
      <attachid>56326</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-17 23:25:02 -0700</bug_when>
    <thetext>Created attachment 56326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227342</commentid>
    <comment_count>33</comment_count>
      <attachid>56326</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-18 09:34:33 -0700</bug_when>
    <thetext>Comment on attachment 56326
Patch

&gt; +        // The loader will do the right thing if the filename is invalid for one reason or another.
&gt; +        url = ChromiumBridge::filePathToURL(fileName).string();

I think the reference to &quot;the loader&quot; here is confusing and unnecessary. The comment is more about the old code than it is about the code that remains and could be omitted entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227405</commentid>
    <comment_count>34</comment_count>
      <attachid>56394</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-18 11:48:45 -0700</bug_when>
    <thetext>Created attachment 56394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227407</commentid>
    <comment_count>35</comment_count>
      <attachid>56394</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-18 11:49:39 -0700</bug_when>
    <thetext>Comment on attachment 56394
Patch

Ignore this patch. I can&apos;t read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227412</commentid>
    <comment_count>36</comment_count>
      <attachid>56396</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-18 11:57:22 -0700</bug_when>
    <thetext>Created attachment 56396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227438</commentid>
    <comment_count>37</comment_count>
      <attachid>56396</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-18 12:44:16 -0700</bug_when>
    <thetext>Comment on attachment 56396
Patch

r=darin,me

Reapproved this patch after dcheng updated the patch to address darin&apos;s comment after he approved it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227467</commentid>
    <comment_count>38</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-18 13:24:03 -0700</bug_when>
    <thetext>Landed by dimich in http://trac.webkit.org/changeset/59689</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55328</attachid>
            <date>2010-05-06 17:59:00 -0700</date>
            <delta_ts>2010-05-16 00:35:14 -0700</delta_ts>
            <desc>Patch for issue</desc>
            <filename>pikachu.patch</filename>
            <type>text/plain</type>
            <size>1797</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGYzNmExYS4uZDEzM2NlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNS0wNiAgRGFuaWVsIENoZW5n
ICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIERyYWdEYXRhQ2hyb21pdW06OmFzVVJMKCkgc2hv
dWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisgICAgICAgIFRoZSByZW5kZXJlciBpcyBz
YW5kYm94ZWQgaW4gQ2hyb21pdW0sIHNvIHRoZXNlIGNhbGxzIHdpbGwgZ2l2ZSB1cyBubworICAg
ICAgICBtZWFuaW5nZnVsIGluZm9ybWF0aW9uLiBUaGUgbG9hZGVyIHdpbGwgZG8gdGhlIHJpZ2h0
IHRoaW5nIGlmIHdlIHBhc3MKKyAgICAgICAgaXQgYSBmaWxlIFVSTCB0aGF0IHBvaW50cyB0byBh
biBpbnZhbGlkIGZpbGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
cmFnRGF0YTo6YXNVUkwpOgorCiAyMDEwLTA1LTA2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZXRoIERha2luLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAKaW5kZXggOGZiNDBkZS4uNjFmNTkz
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVt
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3Bw
CkBAIC02NiwxMSArNjYsMTEgQEAgU3RyaW5nIERyYWdEYXRhOjphc1VSTChTdHJpbmcqIHRpdGxl
KSBjb25zdAogICAgIFN0cmluZyB1cmw7CiAgICAgaWYgKG1fcGxhdGZvcm1EcmFnRGF0YS0+aGFz
VmFsaWRVUkwoKSkKICAgICAgICAgdXJsID0gbV9wbGF0Zm9ybURyYWdEYXRhLT5nZXRVUkwoKS5z
dHJpbmcoKTsKLSAgICBlbHNlIGlmIChtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcy5zaXpl
KCkgPT0gMSkgeworICAgIGVsc2UgaWYgKCFtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcy5p
c0VtcHR5KCkpIHsKICAgICAgICAgU3RyaW5nIGZpbGVOYW1lID0gbV9wbGF0Zm9ybURyYWdEYXRh
LT5maWxlbmFtZXNbMF07CiAgICAgICAgIGZpbGVOYW1lID0gQ2hyb21pdW1CcmlkZ2U6OmdldEFi
c29sdXRlUGF0aChmaWxlTmFtZSk7Ci0gICAgICAgIGlmIChmaWxlRXhpc3RzKGZpbGVOYW1lKSAm
JiAhQ2hyb21pdW1CcmlkZ2U6OmlzRGlyZWN0b3J5KGZpbGVOYW1lKSkKLSAgICAgICAgICAgIHVy
bCA9IENocm9taXVtQnJpZGdlOjpmaWxlUGF0aFRvVVJMKGZpbGVOYW1lKS5zdHJpbmcoKTsKKyAg
ICAgICAgLy8gVGhlIGxvYWRlciB3aWxsIGRvIHRoZSByaWdodCB0aGluZyBpZiB0aGUgZmlsZW5h
bWUgaXMgaW52YWxpZCBmb3Igb25lIHJlYXNvbiBvciBhbm90aGVyLgorICAgICAgICB1cmwgPSBD
aHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTChmaWxlTmFtZSkuc3RyaW5nKCk7CiAgICAgfQog
IAogICAgIC8vIHx0aXRsZXwgY2FuIGJlIE5VTEwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55632</attachid>
            <date>2010-05-10 18:10:12 -0700</date>
            <delta_ts>2010-05-10 18:15:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>no-file-urls.patch</filename>
            <type>text/plain</type>
            <size>7924</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzY2MwMGUwLi40ZTg1M2QyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMDUt
MTAgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBEcmFnRGF0YUNocm9t
aXVtOjphc1VSTCgpIHNob3VsZG4ndCBkbyBmaWxlIHZhbGlkaXR5IGNoZWNrcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg3MTEKKworICAgICAgICBT
ZXZlcmFsIGxheW91dCB0ZXN0cyBoYWQgYW4gdW5leHByZXNzZWQgZGVwZW5kZW5jeSBvbiB0aGUg
ZmFjdCB0aGF0IHBhZ2UKKyAgICAgICAgbmF2aWdhdGlvbiBzaG91bGQgbmV2ZXIgb2NjdXIgZHVy
aW5nIHRoZSBtaWRkbGUgb2YgdGhlIGxheW91dCB0ZXN0LiBUaGlzCisgICAgICAgIG1ha2VzIGl0
IGV4cGxpY2l0IGJ5IGRpc2FibGluZyB0aGUgZGVmYXVsdCBkcm9wIGFjdGlvbiBvbiB0ZXN0cyB0
aGF0CisgICAgICAgIG1pZ2h0IHRyaWdnZXIgcGFnZSBuYXZpZ2F0aW9uLgorCisgICAgICAgICog
ZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5q
czoKKyAgICAgICAgKHJ1blRlc3QuZGlzYWJsZVBhZ2VOYXYpOgorICAgICAgICAocnVuVGVzdCk6
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3RzL2Ns
aXBib2FyZC1maWxlLWFjY2Vzcy5qczoKKyAgICAgICAgKHJ1blRlc3QuZGlzYWJsZVBhZ2VOYXYp
OgorICAgICAgICAocnVuVGVzdCk6CisKIDIwMTAtMDUtMDcgIEpvaG4gR3JlZ2cgIDxqb2hubnln
QGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBbcmUtXWJhc2VsaW5lIG9mIGNocm9t
aXVtIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Nj
cmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMKaW5k
ZXggZDE3Zjg5Ny4uMDVhYTU5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcworKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMt
YWNjZXNzLmpzCkBAIC03NCwxMCArNzQsMTYgQEAgZnVuY3Rpb24gdGVzdE9yZGVyZWREcmFnZ2lu
Z1dpdGhEaXJlY3RvcnkoKQogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKKyAgICBmdW5jdGlvbiBk
aXNhYmxlUGFnZU5hdihlKQorICAgIHsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAg
IH0KICAgICBkZWJ1ZygiRHJhZ2dpbmcgdG8gYSBkaXNhYmxlZCBmaWxlIGlucHV0IGNvbnRyb2w6
Iik7CiAgICAgZmlsZUlucHV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5ib2R5LmFk
ZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgZGlzYWJsZVBhZ2VOYXYpOwogICAgIGRyYWdnaW5n
UGF0aHNTaG91bGRSZXN1bHRJbkZpbGVzKFsnRFJURmFrZUZpbGUnXSwgW10pCiAgICAgZmlsZUlu
cHV0LmRpc2FibGVkID0gZmFsc2U7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3Rl
bmVyKCdkcmFnb3ZlcicsIGRpc2FibGVQYWdlTmF2KTsKIAogICAgIGRlYnVnKCJEcmFnZ2luZyBh
IHNpbmdsZSAobm9uLWV4aXN0YW50KSBmaWxlIHRvIGEgZmlsZSBpbnB1dCBjb250cm9sOiIpOwog
ICAgIHRlc3REcmFnZ2luZ0ZpbGVzKFsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3Mu
anMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVz
dHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzCmluZGV4IDYxOTdiNDQuLjVmNDU1ZjkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10
ZXN0cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5q
cwpAQCAtMTE3LDEwICsxMTcsMTYgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAKICAgICBkZWJ1Zygi
RklYTUU6IEZpbGUuZmlsZVNpemUgYWx3YXlzIHJldHVybnMgMCBmb3IgZmlsZXMgZHJvcHBlZCBi
eSBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMgZnJvbSBodHRwIHRlc3RzOiAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1OTA5Iik7CiAKKyAgICBmdW5jdGlv
biBkaXNhYmxlUGFnZU5hdihlKQorICAgIHsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwor
ICAgIH0KKyAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgZGlz
YWJsZVBhZ2VOYXYpOwogICAgIGRlYnVnKCJEcmFnIGZpbGVzIG92ZXIgYW4gZWxlbWVudCwgbGVh
dmUgdGhhdCBlbGVtZW50IGFuZCByZWxlYXNlIHRoZSBtb3VzZToiKTsgICAKICAgICB0ZXN0RHJh
Z2dpbmdGaWxlcyhbCiAgICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL2FwcGxlLmdpZicsICdu
YW1lJyA6ICdhcHBsZS5naWYnLCAnc2l6ZScgOiAxNDc2IH0KICAgICBdLCB0cnVlKTsKKyAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgZGlzYWJsZVBhZ2VO
YXYpOwogCiAgICAgZGVidWcoIkRyYWcgZHJvcCBhIHJlYWwgZmlsZSBvbnRvIGFuIGVsZW1lbnQ6
Iik7CiAgICAgdGVzdERyYWdnaW5nRmlsZXMoWwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkOWRkYWZjLi4zYTMxZWEzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDEwLTA1LTEwICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0g
RHJhZ0RhdGFDaHJvbWl1bTo6YXNVUkwoKSBzaG91bGRuJ3QgZG8gZmlsZSB2YWxpZGl0eSBjaGVj
a3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NzEx
CisKKyAgICAgICAgVGhlIHJlbmRlcmVyIGlzIHNhbmRib3hlZCBpbiBDaHJvbWl1bSwgc28gdGhl
c2UgY2FsbHMgd2lsbCBnaXZlIHVzIG5vCisgICAgICAgIG1lYW5pbmdmdWwgaW5mb3JtYXRpb24u
IFRoZSBsb2FkZXIgd2lsbCBkbyB0aGUgcmlnaHQgdGhpbmcgaWYgd2UgcGFzcworICAgICAgICBp
dCBhIGZpbGUgVVJMIHRoYXQgcG9pbnRzIHRvIGFuIGludmFsaWQgZmlsZS4KKworICAgICAgICBU
ZXN0czogZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxl
LWFjY2Vzcy5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6Z2V0RGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6dHlwZXMpOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RHJhZ0RhdGE6OmFzVVJMKToKKwogMjAxMC0wNS0wNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjU4OTYzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRD
aHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVt
LmNwcAppbmRleCBhYjlmM2M5Li43NGE5MWY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcApAQCAtMTYyLDE1ICsxNjIsMTEgQEAgU3RyaW5n
IENsaXBib2FyZENocm9taXVtOjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3Vj
Y2VzcykgY29uc3QKICAgICBjYXNlIENsaXBib2FyZERhdGFUeXBlTm9uZToKICAgICAgICAgcmV0
dXJuIFN0cmluZygpOwogCi0gICAgLy8gSGFjayBmb3IgVVJMcy4gZmlsZSBVUkxzIGFyZSB1c2Vk
IGludGVybmFsbHkgZm9yIGRyb3AncyBkZWZhdWx0IGFjdGlvbiwgYnV0IHdlIGRvbid0IHdhbnQK
LSAgICAvLyB0byBleHBvc2UgdGhlbSB0byB0aGUgcGFnZSwgc28gd2UgZmlsdGVyIHRoZW0gb3V0
IGhlcmUuCiAgICAgY2FzZSBDbGlwYm9hcmREYXRhVHlwZVVSSUxpc3Q6CiAgICAgICAgIHsKICAg
ICAgICAgICAgIFN0cmluZyB0ZXh0OwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX2RhdGFPYmplY3QtPnVyaUxpc3Quc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgICAgICBj
b25zdCBTdHJpbmcmIHVyaSA9IG1fZGF0YU9iamVjdC0+dXJpTGlzdFtpXTsKLSAgICAgICAgICAg
ICAgICBpZiAocHJvdG9jb2xJcyh1cmksICJmaWxlIikpCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAgICAgICAgIEFTU0VSVCghdXJpLmlzRW1wdHkoKSk7CiAgICAgICAg
ICAgICAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICAgdGV4dC5h
cHBlbmQodGV4dE1JTUVUeXBlTGluZVNlcGFyYXRvcik7CkBAIC0xODQsNyArMTgwLDcgQEAgU3Ry
aW5nIENsaXBib2FyZENocm9taXVtOjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYg
c3VjY2VzcykgY29uc3QKICAgICBjYXNlIENsaXBib2FyZERhdGFUeXBlVVJMOgogICAgICAgICAv
LyBJbiBjYXNlIG9mIGEgcHJldmlvdXMgc2V0RGF0YSgndGV4dC91cmktbGlzdCcpLCBzZXREYXRh
KCkgaGFzIGFscmVhZHkKICAgICAgICAgLy8gcHJlcGFyZWQgdGhlICd1cmwnIG1lbWJlciwgc28g
d2UgY2FuIGp1c3QgcmV0cmlldmUgaXQgaGVyZS4KLSAgICAgICAgaWYgKCFtX2RhdGFPYmplY3Qt
PnVybC5pc0VtcHR5KCkgJiYgIW1fZGF0YU9iamVjdC0+dXJsLmlzTG9jYWxGaWxlKCkpIHsKKyAg
ICAgICAgaWYgKCFtX2RhdGFPYmplY3QtPnVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIHN1
Y2Nlc3MgPSB0cnVlOwogICAgICAgICAgICAgcmV0dXJuIG1fZGF0YU9iamVjdC0+dXJsLnN0cmlu
ZygpOwogICAgICAgICB9CkBAIC0zMjAsMjQgKzMxNiwxNSBAQCBIYXNoU2V0PFN0cmluZz4gQ2xp
cGJvYXJkQ2hyb21pdW06OnR5cGVzKCkgY29uc3QKICAgICBpZiAoIW1fZGF0YU9iamVjdC0+Zmls
ZW5hbWVzLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0cy5hZGQoIkZpbGVzIik7CiAKLSAgICAv
LyBIYWNrIGZvciBVUkxzLiBmaWxlIFVSTHMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgZHJvcCdz
IGRlZmF1bHQgYWN0aW9uLCBidXQgd2UgZG9uJ3Qgd2FudAotICAgIC8vIHRvIGV4cG9zZSB0aGVt
IHRvIHRoZSBwYWdlLCBzbyB3ZSBmaWx0ZXIgdGhlbSBvdXQgaGVyZS4KLSAgICBpZiAobV9kYXRh
T2JqZWN0LT51cmwuaXNWYWxpZCgpICYmICFtX2RhdGFPYmplY3QtPnVybC5pc0xvY2FsRmlsZSgp
KSB7CisgICAgaWYgKG1fZGF0YU9iamVjdC0+dXJsLmlzVmFsaWQoKSkgewogICAgICAgICBBU1NF
UlQoIW1fZGF0YU9iamVjdC0+dXJpTGlzdC5pc0VtcHR5KCkpOwogICAgICAgICByZXN1bHRzLmFk
ZCgiVVJMIik7CiAgICAgfQogCiAgICAgaWYgKCFtX2RhdGFPYmplY3QtPnVyaUxpc3QuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBVUkkgbGlzdCBjb250YWlucyBhdCBs
ZWFzdCBvbmUgbm9uLWZpbGUgVVJMLgotICAgICAgICBmb3IgKFZlY3RvcjxTdHJpbmc+Ojpjb25z
dF9pdGVyYXRvciBpdCA9IG1fZGF0YU9iamVjdC0+dXJpTGlzdC5iZWdpbigpOwotICAgICAgICAg
ICAgIGl0ICE9IG1fZGF0YU9iamVjdC0+dXJpTGlzdC5lbmQoKTsgKytpdCkgewotICAgICAgICAg
ICAgaWYgKCFwcm90b2NvbElzKCppdCwgImZpbGUiKSkgewotICAgICAgICAgICAgICAgIC8vIE5v
dGUgdGhhdCBldmVuIGlmIHRoZSBVUkkgbGlzdCBpcyBub3QgZW1wdHksIGl0IG1heSBub3QgYWN0
dWFsbHkKLSAgICAgICAgICAgICAgICAvLyBjb250YWluIGEgdmFsaWQgVVJMLCBzbyB3ZSBjYW4n
dCByZXR1cm4gIlVSTCIgaGVyZS4KLSAgICAgICAgICAgICAgICByZXN1bHRzLmFkZCgidGV4dC91
cmktbGlzdCIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAg
ICB9CisgICAgICAgIC8vIE5vdGUgdGhhdCBldmVuIGlmIHRoZSBVUkkgbGlzdCBpcyBub3QgZW1w
dHksIGl0IG1heSBub3QgYWN0dWFsbHkKKyAgICAgICAgLy8gY29udGFpbiBhIHZhbGlkIFVSTCwg
c28gd2UgY2FuJ3QgcmV0dXJuICJVUkwiIGhlcmUuCisgICAgICAgIHJlc3VsdHMuYWRkKCJ0ZXh0
L3VyaS1saXN0Iik7CiAgICAgfQogCiAgICAgaWYgKCFtX2RhdGFPYmplY3QtPnBsYWluVGV4dC5p
c0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0Rh
dGFDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21p
dW0uY3BwCmluZGV4IDhmYjQwZGUuLjYxZjU5MzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcApAQCAtNjYsMTEgKzY2LDExIEBAIFN0cmluZyBE
cmFnRGF0YTo6YXNVUkwoU3RyaW5nKiB0aXRsZSkgY29uc3QKICAgICBTdHJpbmcgdXJsOwogICAg
IGlmIChtX3BsYXRmb3JtRHJhZ0RhdGEtPmhhc1ZhbGlkVVJMKCkpCiAgICAgICAgIHVybCA9IG1f
cGxhdGZvcm1EcmFnRGF0YS0+Z2V0VVJMKCkuc3RyaW5nKCk7Ci0gICAgZWxzZSBpZiAobV9wbGF0
Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMuc2l6ZSgpID09IDEpIHsKKyAgICBlbHNlIGlmICghbV9w
bGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFN0cmluZyBm
aWxlTmFtZSA9IG1fcGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5hbWVzWzBdOwogICAgICAgICBmaWxl
TmFtZSA9IENocm9taXVtQnJpZGdlOjpnZXRBYnNvbHV0ZVBhdGgoZmlsZU5hbWUpOwotICAgICAg
ICBpZiAoZmlsZUV4aXN0cyhmaWxlTmFtZSkgJiYgIUNocm9taXVtQnJpZGdlOjppc0RpcmVjdG9y
eShmaWxlTmFtZSkpCi0gICAgICAgICAgICB1cmwgPSBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhU
b1VSTChmaWxlTmFtZSkuc3RyaW5nKCk7CisgICAgICAgIC8vIFRoZSBsb2FkZXIgd2lsbCBkbyB0
aGUgcmlnaHQgdGhpbmcgaWYgdGhlIGZpbGVuYW1lIGlzIGludmFsaWQgZm9yIG9uZSByZWFzb24g
b3IgYW5vdGhlci4KKyAgICAgICAgdXJsID0gQ2hyb21pdW1CcmlkZ2U6OmZpbGVQYXRoVG9VUkwo
ZmlsZU5hbWUpLnN0cmluZygpOwogICAgIH0KICAKICAgICAvLyB8dGl0bGV8IGNhbiBiZSBOVUxM
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55633</attachid>
            <date>2010-05-10 18:15:12 -0700</date>
            <delta_ts>2010-05-12 10:40:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>no-file-urls.patch</filename>
            <type>text/plain</type>
            <size>4981</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzY2MwMGUwLi40ZTg1M2QyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMDUt
MTAgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBEcmFnRGF0YUNocm9t
aXVtOjphc1VSTCgpIHNob3VsZG4ndCBkbyBmaWxlIHZhbGlkaXR5IGNoZWNrcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg3MTEKKworICAgICAgICBT
ZXZlcmFsIGxheW91dCB0ZXN0cyBoYWQgYW4gdW5leHByZXNzZWQgZGVwZW5kZW5jeSBvbiB0aGUg
ZmFjdCB0aGF0IHBhZ2UKKyAgICAgICAgbmF2aWdhdGlvbiBzaG91bGQgbmV2ZXIgb2NjdXIgZHVy
aW5nIHRoZSBtaWRkbGUgb2YgdGhlIGxheW91dCB0ZXN0LiBUaGlzCisgICAgICAgIG1ha2VzIGl0
IGV4cGxpY2l0IGJ5IGRpc2FibGluZyB0aGUgZGVmYXVsdCBkcm9wIGFjdGlvbiBvbiB0ZXN0cyB0
aGF0CisgICAgICAgIG1pZ2h0IHRyaWdnZXIgcGFnZSBuYXZpZ2F0aW9uLgorCisgICAgICAgICog
ZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5q
czoKKyAgICAgICAgKHJ1blRlc3QuZGlzYWJsZVBhZ2VOYXYpOgorICAgICAgICAocnVuVGVzdCk6
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3RzL2Ns
aXBib2FyZC1maWxlLWFjY2Vzcy5qczoKKyAgICAgICAgKHJ1blRlc3QuZGlzYWJsZVBhZ2VOYXYp
OgorICAgICAgICAocnVuVGVzdCk6CisKIDIwMTAtMDUtMDcgIEpvaG4gR3JlZ2cgIDxqb2hubnln
QGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBbcmUtXWJhc2VsaW5lIG9mIGNocm9t
aXVtIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Nj
cmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMKaW5k
ZXggZDE3Zjg5Ny4uMDVhYTU5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcworKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMt
YWNjZXNzLmpzCkBAIC03NCwxMCArNzQsMTYgQEAgZnVuY3Rpb24gdGVzdE9yZGVyZWREcmFnZ2lu
Z1dpdGhEaXJlY3RvcnkoKQogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKKyAgICBmdW5jdGlvbiBk
aXNhYmxlUGFnZU5hdihlKQorICAgIHsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAg
IH0KICAgICBkZWJ1ZygiRHJhZ2dpbmcgdG8gYSBkaXNhYmxlZCBmaWxlIGlucHV0IGNvbnRyb2w6
Iik7CiAgICAgZmlsZUlucHV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5ib2R5LmFk
ZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgZGlzYWJsZVBhZ2VOYXYpOwogICAgIGRyYWdnaW5n
UGF0aHNTaG91bGRSZXN1bHRJbkZpbGVzKFsnRFJURmFrZUZpbGUnXSwgW10pCiAgICAgZmlsZUlu
cHV0LmRpc2FibGVkID0gZmFsc2U7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3Rl
bmVyKCdkcmFnb3ZlcicsIGRpc2FibGVQYWdlTmF2KTsKIAogICAgIGRlYnVnKCJEcmFnZ2luZyBh
IHNpbmdsZSAobm9uLWV4aXN0YW50KSBmaWxlIHRvIGEgZmlsZSBpbnB1dCBjb250cm9sOiIpOwog
ICAgIHRlc3REcmFnZ2luZ0ZpbGVzKFsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3Mu
anMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVz
dHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzCmluZGV4IDYxOTdiNDQuLjVmNDU1ZjkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10
ZXN0cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5q
cwpAQCAtMTE3LDEwICsxMTcsMTYgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAKICAgICBkZWJ1Zygi
RklYTUU6IEZpbGUuZmlsZVNpemUgYWx3YXlzIHJldHVybnMgMCBmb3IgZmlsZXMgZHJvcHBlZCBi
eSBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMgZnJvbSBodHRwIHRlc3RzOiAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1OTA5Iik7CiAKKyAgICBmdW5jdGlv
biBkaXNhYmxlUGFnZU5hdihlKQorICAgIHsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwor
ICAgIH0KKyAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgZGlz
YWJsZVBhZ2VOYXYpOwogICAgIGRlYnVnKCJEcmFnIGZpbGVzIG92ZXIgYW4gZWxlbWVudCwgbGVh
dmUgdGhhdCBlbGVtZW50IGFuZCByZWxlYXNlIHRoZSBtb3VzZToiKTsgICAKICAgICB0ZXN0RHJh
Z2dpbmdGaWxlcyhbCiAgICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL2FwcGxlLmdpZicsICdu
YW1lJyA6ICdhcHBsZS5naWYnLCAnc2l6ZScgOiAxNDc2IH0KICAgICBdLCB0cnVlKTsKKyAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgZGlzYWJsZVBhZ2VO
YXYpOwogCiAgICAgZGVidWcoIkRyYWcgZHJvcCBhIHJlYWwgZmlsZSBvbnRvIGFuIGVsZW1lbnQ6
Iik7CiAgICAgdGVzdERyYWdnaW5nRmlsZXMoWwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkOWRkYWZjLi5mMjE3OTMyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEwLTA1LTEwICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0g
RHJhZ0RhdGFDaHJvbWl1bTo6YXNVUkwoKSBzaG91bGRuJ3QgZG8gZmlsZSB2YWxpZGl0eSBjaGVj
a3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NzEx
CisKKyAgICAgICAgVGhlIHJlbmRlcmVyIGlzIHNhbmRib3hlZCBpbiBDaHJvbWl1bSwgc28gdGhl
c2UgY2FsbHMgd2lsbCBnaXZlIHVzIG5vCisgICAgICAgIG1lYW5pbmdmdWwgaW5mb3JtYXRpb24u
IFRoZSBsb2FkZXIgd2lsbCBkbyB0aGUgcmlnaHQgdGhpbmcgaWYgd2UgcGFzcworICAgICAgICBp
dCBhIGZpbGUgVVJMIHRoYXQgcG9pbnRzIHRvIGFuIGludmFsaWQgZmlsZS4KKworICAgICAgICBU
ZXN0czogZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxl
LWFjY2Vzcy5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9t
aXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjphc1VSTCk6CisKIDIwMTAtMDUt
MDcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI1ODk2My4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwCmluZGV4IDhmYjQwZGUuLjYxZjU5MzggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcApAQCAtNjYs
MTEgKzY2LDExIEBAIFN0cmluZyBEcmFnRGF0YTo6YXNVUkwoU3RyaW5nKiB0aXRsZSkgY29uc3QK
ICAgICBTdHJpbmcgdXJsOwogICAgIGlmIChtX3BsYXRmb3JtRHJhZ0RhdGEtPmhhc1ZhbGlkVVJM
KCkpCiAgICAgICAgIHVybCA9IG1fcGxhdGZvcm1EcmFnRGF0YS0+Z2V0VVJMKCkuc3RyaW5nKCk7
Ci0gICAgZWxzZSBpZiAobV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMuc2l6ZSgpID09IDEp
IHsKKyAgICBlbHNlIGlmICghbV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMuaXNFbXB0eSgp
KSB7CiAgICAgICAgIFN0cmluZyBmaWxlTmFtZSA9IG1fcGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5h
bWVzWzBdOwogICAgICAgICBmaWxlTmFtZSA9IENocm9taXVtQnJpZGdlOjpnZXRBYnNvbHV0ZVBh
dGgoZmlsZU5hbWUpOwotICAgICAgICBpZiAoZmlsZUV4aXN0cyhmaWxlTmFtZSkgJiYgIUNocm9t
aXVtQnJpZGdlOjppc0RpcmVjdG9yeShmaWxlTmFtZSkpCi0gICAgICAgICAgICB1cmwgPSBDaHJv
bWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTChmaWxlTmFtZSkuc3RyaW5nKCk7CisgICAgICAgIC8v
IFRoZSBsb2FkZXIgd2lsbCBkbyB0aGUgcmlnaHQgdGhpbmcgaWYgdGhlIGZpbGVuYW1lIGlzIGlu
dmFsaWQgZm9yIG9uZSByZWFzb24gb3IgYW5vdGhlci4KKyAgICAgICAgdXJsID0gQ2hyb21pdW1C
cmlkZ2U6OmZpbGVQYXRoVG9VUkwoZmlsZU5hbWUpLnN0cmluZygpOwogICAgIH0KICAKICAgICAv
LyB8dGl0bGV8IGNhbiBiZSBOVUxMCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55867</attachid>
            <date>2010-05-12 10:40:03 -0700</date>
            <delta_ts>2010-05-12 14:32:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>no-file-urls.patch</filename>
            <type>text/plain</type>
            <size>11159</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZThmMDg3Li5hM2U3NTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDUt
MTEgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRHJhZ0Rh
dGE6OmFzVVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisgICAgICAgIFNl
dmVyYWwgbGF5b3V0IHRlc3RzIGRlcGVuZGVkIG9uIHRoZSBmYWN0IHRoYXQgZHJvcHBpbmcgYSBm
aWxlIHdvdWxkCisgICAgICAgIG5ldmVyIHRyaWdnZXIgbmF2aWdhdGlvbi4gVGhpcyBuZXZlciBo
YXBwZW5lZCB0byBvY2N1ciBpbiB0aGUgcGFzdCwKKyAgICAgICAgc2luY2UgaXQganVzdCBzbyBo
YXBwZW5lZCB0aGF0IHRoZSBmaWxlbmFtZXMgdXNlZCBpbiB0aGUgdGVzdHMgbmV2ZXIKKyAgICAg
ICAgcmVzb2x2ZWQgdG8gZmlsZXMgdGhhdCBleGlzdC4gU2luY2UgRHJhZ0RhdGE6OmFzVVJMKCkg
bm8gbG9uZ2VyIHRyaWVzCisgICAgICAgIHRvIHZlcmlmeSBmaWxlIGV4aXN0ZW5jZSwgdGhlIGxh
eW91dCB0ZXN0cyB3ZXJlIHVwZGF0ZWQgdG8gZWl0aGVyCisgICAgICAgIHN1cHByZXNzIG5hdmln
YXRpb24gb3IgbG9nIGFueSBuYXZpZ2F0aW9uIHRoYXQgc2hvdWxkIG9jY3VyIGFzIHBhcnQgb2YK
KyAgICAgICAgdGhlIHRlc3QuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1p
bnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVi
b2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvcGFz
dGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanM6CisgICAgICAg
IChydW5UZXN0LndpbmRvdy5vbmJlZm9yZXVubG9hZCk6CisgICAgICAgIChydW5UZXN0KToKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMvY2xpcGJv
YXJkLWZpbGUtYWNjZXNzLmpzOgorCiAyMDEwLTA1LTExICBLZW50IFRhbXVyYSAgPHRrZW50QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFqaS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVz
LWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZmls
ZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0CmluZGV4IGJiY2ZmYzcuLmUzOTQxMDEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZp
bGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVjdGVkLnR4dApAQCAtMyw5ICszLDYgQEAg
VGVzdHMgZm9yIG11bHRpLWZpbGUgZHJhZyBvbnRvIGZpbGUgaW5wdXQgZWxlbWVudHMgZm9yIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3MKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1E
cmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoKLVBBU1MgZmlsZUlucHV0
LnZhbHVlIGlzICIiCi1QQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5ndGggaXMgMAogRHJhZ2dpbmcg
YSBzaW5nbGUgKG5vbi1leGlzdGFudCkgZmlsZSB0byBhIGZpbGUgaW5wdXQgY29udHJvbDoKIFBB
U1MgZmlsZUlucHV0LnZhbHVlIGlzICJEUlRGYWtlRmlsZSIKIFBBU1MgZmlsZUlucHV0LmZpbGVz
Lmxlbmd0aCBpcyAxCkBAIC01Niw2ICs1Myw5IEBAIEZJWE1FOiAgZWxlbWVudHMgc2hvdWxkIHJl
ZnVzZSBkcmFncyBpbmNsdWRpbmcgZGlyZWN0b3JpZXM6IGh0dHBzOi8vYnVncy53ZWJraXQuCiBE
cmFnZ2luZyBhIGRpcmVjdG9yeSBhbmQgYSBmaWxlIG9udG8gYSBtdXRsaS1maWxlIGlucHV0IGNv
bnRyb2w6CiBGQUlMIGZpbGVJbnB1dC52YWx1ZSBzaG91bGQgYmUgLiBXYXMgZGlyZWN0b3J5LWZv
ci1kcmFnZ2luZy4KIEZBSUwgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBzaG91bGQgYmUgMC4gV2Fz
IDIuCitEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoKK1BBU1MgZmls
ZUlucHV0LnZhbHVlIGlzICIiCitQQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5ndGggaXMgMAogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3Mu
aHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVzLWFj
Y2Vzcy5odG1sCmluZGV4IDczZDc5MjQuLmY3ZGI3MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1s
CkBAIC04LDYgKzgsNSBAQAogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1h
Y2Nlc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQt
ZmlsZXMtYWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10
ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcwppbmRleCBkMTdmODk3Li43MTAxNWNjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2Zp
bGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMKQEAgLTc0LDExICs3
NCw2IEBAIGZ1bmN0aW9uIHRlc3RPcmRlcmVkRHJhZ2dpbmdXaXRoRGlyZWN0b3J5KCkKIAogZnVu
Y3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgZGVidWcoIkRyYWdnaW5nIHRvIGEgZGlzYWJsZWQgZmls
ZSBpbnB1dCBjb250cm9sOiIpOwotICAgIGZpbGVJbnB1dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAg
ZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMoWydEUlRGYWtlRmlsZSddLCBbXSkKLSAg
ICBmaWxlSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsKLQogICAgIGRlYnVnKCJEcmFnZ2luZyBhIHNp
bmdsZSAobm9uLWV4aXN0YW50KSBmaWxlIHRvIGEgZmlsZSBpbnB1dCBjb250cm9sOiIpOwogICAg
IHRlc3REcmFnZ2luZ0ZpbGVzKFsKICAgICAgICAgeyAncGF0aCc6ICdEUlRGYWtlRmlsZScsICdu
YW1lJyA6ICdEUlRGYWtlRmlsZScsICdzaXplJyA6IDAsICd0eXBlJyA6ICcnIH0KQEAgLTExMSw4
ICsxMDYsMzAgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgXSk7CiAKICAgICB0ZXN0T3JkZXJl
ZERyYWdnaW5nV2l0aERpcmVjdG9yeSgpOworCisgICAgZGVidWcoIkRyYWdnaW5nIHRvIGEgZGlz
YWJsZWQgZmlsZSBpbnB1dCBjb250cm9sOiIpOworICAgIGZpbGVJbnB1dC5kaXNhYmxlZCA9IHRy
dWU7CisgICAgLy8gSXQnZCBiZSBlYXNpZXN0IHRvIHVzZSB0cnktZmluYWxseSwgYnV0IGl0IGRv
ZXNuJ3Qgd29yay4KKyAgICB3aW5kb3cub25iZWZvcmV1bmxvYWQgPSBmdW5jdGlvbigpIHsKKyAg
ICAgICAgLy8gU2luY2UgdGhlIGRyb3AgdHJpZ2dlcmVkIGEgbmF2aWdhdGlvbiwgdmVyaWZ5IHRo
ZSBwcm9wZXJ0aWVzIG9mIHRoZQorICAgICAgICAvLyBmaWxlIGlucHV0IGhlcmUuCisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUlucHV0LnZhbHVlIiwgIiIpOworICAgICAgICBm
aWxlc1Nob3VsZEJlKFtdKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJz
ZWQiKTsKKyAgICAgICAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBM
RVRFPC9zcGFuPicpOworCisgICAgICAgIC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcworICAg
ICAgICBmaWxlSW5wdXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmaWxlSW5wdXQpOworCisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9OworICAgIGRyYWdn
aW5nUGF0aHNTaG91bGRSZXN1bHRJbkZpbGVzKFsnRFJURmFrZUZpbGUnXSwgW10pOworICAgIHdp
bmRvdy5vbmJlZnVyZXVubG9hZCA9IG51bGw7CisgICAgdGVzdEZhaWxlZCgiVGhlIGZpbmFsIHRl
c3QgY2FzZSBzaG91bGQgaGF2ZSByZXN1bHRlZCBpbiBuYXZpZ2F0aW9uIik7CiB9CiAKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCiBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAg
ICAgcnVuVGVzdCgpOwogICAgIC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcwpAQCAtMTIwLDYg
KzEzNywzIEBAIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKIH0gZWxzZSB7CiAgICAgdGVzdEZh
aWxlZCgiVGhpcyB0ZXN0IGlzIG5vdCBpbnRlcmFjdGl2ZSwgcGxlYXNlIHJ1biB1c2luZyBEdW1w
UmVuZGVyVHJlZSIpOwogfQotCi0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0
LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuanMK
aW5kZXggNjE5N2I0NC4uNGI2MzY4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5q
cworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQt
dGVzdHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzCkBAIC00Myw2ICs0MywxMyBAQCBkcmFnVGFy
Z2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5jdGlvbigpIHsKICAgICBldmVudC5wcmV2
ZW50RGVmYXVsdCgpOwogfSwgZmFsc2UpOwogCisvLyBTb21lIHRlc3RzIGRvbid0IGVuZCB1cCBk
cm9wcGluZyB0aGUgZHJhZ2dlZSBvdmVyIHRoZSBkcmFnIHRhcmdldC4gQ2F0Y2ggYW55CisvLyBs
ZWZ0b3ZlciBkcm9wIGV2ZW50cyBidWJibGluZyB1cCB0aHJvdWdoIHRoZSB0cmVlIHNvIHRoZXkg
ZG9uJ3QgY2F1c2UgcGFnZQorLy8gbmF2aWdhdGlvbi4KK2RvY3VtZW50LmJvZHkuYWRkRXZlbnRM
aXN0ZW5lcigiZHJhZ292ZXIiLCBmdW5jdGlvbigpIHsKKyAgICBldmVudC5wcmV2ZW50RGVmYXVs
dCgpOworfSk7CisKIGZ1bmN0aW9uIG1vdmVNb3VzZVRvQ2VudGVyT2ZFbGVtZW50KGVsZW1lbnQp
IHsKICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0
V2lkdGggLyAyOwogICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50
Lm9mZnNldEhlaWdodCAvIDI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDMxODdjNGIuLjkzNTYxYTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAt
MDUtMTEgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hv
dWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisgICAgICAgIFRoZXJlJ3Mgbm8gcG9pbnQg
dG8gdHJ5aW5nIHRvIG1ha2Ugc3VyZSB0aGUgZmlsZSBpcyB2YWxpZCBpbgorICAgICAgICBEcmFn
RGF0YTo6YXNVUkwoKS4gSXQncyB0aGUgd3JvbmcgcGxhY2UgdG8gY2hlY2ssIHNpbmNlIGFsbCB0
aGUKKyAgICAgICAgY29uc3VtZXJzIG9mIHRoaXMgZnVuY3Rpb24gZWl0aGVyOgorICAgICAgICAt
IG5lZWQgdG8gdmVyaWZ5IHRoZSBmaWxlIGV4aXN0cyB0aGVtc2VsdmVzIChlLmcuIHRoZSBsb2Fk
ZXIpCisgICAgICAgIC0gZG9uJ3QgY2FyZSBhYm91dCBmaWxlIHZhbGlkaXR5IChyaWNoIHRleHQg
ZHJhZy1hbmQtZHJvcCkKKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzVVJMKToKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldFVSTCk6CisKIDIwMTAtMDUtMTEgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwCmluZGV4IDhmYjQwZGUuLjYxZjU5
MzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1
bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNw
cApAQCAtNjYsMTEgKzY2LDExIEBAIFN0cmluZyBEcmFnRGF0YTo6YXNVUkwoU3RyaW5nKiB0aXRs
ZSkgY29uc3QKICAgICBTdHJpbmcgdXJsOwogICAgIGlmIChtX3BsYXRmb3JtRHJhZ0RhdGEtPmhh
c1ZhbGlkVVJMKCkpCiAgICAgICAgIHVybCA9IG1fcGxhdGZvcm1EcmFnRGF0YS0+Z2V0VVJMKCku
c3RyaW5nKCk7Ci0gICAgZWxzZSBpZiAobV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMuc2l6
ZSgpID09IDEpIHsKKyAgICBlbHNlIGlmICghbV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIFN0cmluZyBmaWxlTmFtZSA9IG1fcGxhdGZvcm1EcmFnRGF0
YS0+ZmlsZW5hbWVzWzBdOwogICAgICAgICBmaWxlTmFtZSA9IENocm9taXVtQnJpZGdlOjpnZXRB
YnNvbHV0ZVBhdGgoZmlsZU5hbWUpOwotICAgICAgICBpZiAoZmlsZUV4aXN0cyhmaWxlTmFtZSkg
JiYgIUNocm9taXVtQnJpZGdlOjppc0RpcmVjdG9yeShmaWxlTmFtZSkpCi0gICAgICAgICAgICB1
cmwgPSBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTChmaWxlTmFtZSkuc3RyaW5nKCk7Cisg
ICAgICAgIC8vIFRoZSBsb2FkZXIgd2lsbCBkbyB0aGUgcmlnaHQgdGhpbmcgaWYgdGhlIGZpbGVu
YW1lIGlzIGludmFsaWQgZm9yIG9uZSByZWFzb24gb3IgYW5vdGhlci4KKyAgICAgICAgdXJsID0g
Q2hyb21pdW1CcmlkZ2U6OmZpbGVQYXRoVG9VUkwoZmlsZU5hbWUpLnN0cmluZygpOwogICAgIH0K
ICAKICAgICAvLyB8dGl0bGV8IGNhbiBiZSBOVUxMCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
Q2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAppbmRleCA2Zjk0NzZhLi43NDUxNjRjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKQEAgLTMyNSw3
ICszMjUsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0LCBib29sJiBz
dWNjZXNzLCBTdHJpbmcqIHRpdGxlKQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmpl
Y3QtPkdldERhdGEoZmlsZW5hbWVXRm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vZmls
ZSB1c2luZyB1bmljb2RlCiAgICAgICAgIHdjaGFyX3QqIGRhdGEgPSAod2NoYXJfdCopR2xvYmFs
TG9jayhzdG9yZS5oR2xvYmFsKTsKLSAgICAgICAgaWYgKGRhdGEgJiYgZGF0YVswXSAmJiAoUGF0
aEZpbGVFeGlzdHMoZGF0YSkgfHwgUGF0aElzVU5DKGRhdGEpKSkgeworICAgICAgICBpZiAoZGF0
YSAmJiBkYXRhWzBdKSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHBhdGhB
c0NGU3RyaW5nKEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgKGNvbnN0IFVuaUNoYXIqKWRhdGEsIHdjc2xlbihkYXRhKSkpOwogICAgICAg
ICAgICAgaWYgKHVybEZyb21QYXRoKHBhdGhBc0NGU3RyaW5nLmdldCgpLCB1cmwpKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKHRpdGxlKQpAQCAtMzM4LDcgKzMzOCw3IEBAIFN0cmluZyBnZXRVUkwo
SURhdGFPYmplY3QqIGRhdGFPYmplY3QsIGJvb2wmIHN1Y2Nlc3MsIFN0cmluZyogdGl0bGUpCiAg
ICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YShmaWxlbmFtZUZvcm1h
dCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvL2ZpbGVuYW1lIHVzaW5nIGFzY2lpCiAgICAgICAg
IGNoYXIqIGRhdGEgPSAoY2hhciopR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKTsgICAgICAgCi0g
ICAgICAgIGlmIChkYXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhpc3RzQShkYXRhKSB8fCBQ
YXRoSXNVTkNBKGRhdGEpKSkgeworICAgICAgICBpZiAoZGF0YSAmJiBkYXRhWzBdKSB7CiAgICAg
ICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHBhdGhBc0NGU3RyaW5nKEFkb3B0Q0YsIENG
U3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGF0YSwga0NGU3Ry
aW5nRW5jb2RpbmdBU0NJSSkpOwogICAgICAgICAgICAgaWYgKHVybEZyb21QYXRoKHBhdGhBc0NG
U3RyaW5nLmdldCgpLCB1cmwpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHRpdGxlKQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBk
OGZlNTFjLi5kNzhkNDZkIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA1LTExICBEYW5pZWwg
Q2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERyYWdEYXRhOjphc1VSTCgpIHNob3VsZG4ndCBkbyBmaWxl
IHZhbGlkaXR5IGNoZWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Mzg3MTEKKworICAgICAgICBUaGVyZSdzIG5vIHBvaW50IHRvIHRyeWluZyB0byBt
YWtlIHN1cmUgdGhlIGZpbGUgaXMgdmFsaWQgaW4KKyAgICAgICAgW05TUGFzdGVib2FyZCBfd2Vi
X2Jlc3RVUkxdLCB3aGljaCBpcyBjYWxsZWQgYnkgRHJhZ0RhdGE6OmFzVVJMKCkuIEl0J3MKKyAg
ICAgICAgdGhlIHdyb25nIHBsYWNlIHRvIGNoZWNrLCBzaW5jZSBhbGwgdGhlIGNvbnN1bWVycyBv
ZiB0aGlzIGZ1bmN0aW9uCisgICAgICAgIGVpdGhlcjoKKyAgICAgICAgLSBuZWVkIHRvIHZlcmlm
eSB0aGUgZmlsZSBleGlzdHMgdGhlbXNlbHZlcyAoZS5nLiB0aGUgbG9hZGVyKQorICAgICAgICAt
IGRvbid0IGNhcmUgYWJvdXQgZmlsZSB2YWxpZGl0eSAocmljaCB0ZXh0IGRyYWctYW5kLWRyb3Ap
CisKKyAgICAgICAgKiBNaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKC1b
TlNQYXN0ZWJvYXJkIF93ZWJfYmVzdFVSTF0pOgorCiAyMDEwLTA1LTEwICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBD
YXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRy
YXMubW0gYi9XZWJLaXQvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tCmluZGV4IDhj
ZWJlYjYuLmIzMWQzOTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9h
cmRFeHRyYXMubW0KKysrIGIvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5t
bQpAQCAtMTQxLDEyICsxNDEsMTAgQEAgc3RhdGljIE5TQXJyYXkgKl93cml0YWJsZVR5cGVzRm9y
SW1hZ2VXaXRoQXJjaGl2ZSAodm9pZCkKIAogICAgIGlmIChbdHlwZXMgY29udGFpbnNPYmplY3Q6
TlNGaWxlbmFtZXNQYm9hcmRUeXBlXSkgewogICAgICAgICBOU0FycmF5ICpmaWxlcyA9IFtzZWxm
IHByb3BlcnR5TGlzdEZvclR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKKyAgICAgICAgLy8g
RklYTUU6IG1heWJlIGl0IG1ha2VzIHNlbnNlIHRvIGFsbG93IG11bHRpcGxlIGZpbGVzIGFuZCBv
bmx5IHVzZSB0aGUgZmlyc3Qgb25lPwogICAgICAgICBpZiAoW2ZpbGVzIGNvdW50XSA9PSAxKSB7
CiAgICAgICAgICAgICBOU1N0cmluZyAqZmlsZSA9IFtmaWxlcyBvYmplY3RBdEluZGV4OjBdOwot
ICAgICAgICAgICAgQk9PTCBpc0RpcmVjdG9yeTsKLSAgICAgICAgICAgIGlmKFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpmaWxlIGlzRGlyZWN0b3J5OiZp
c0RpcmVjdG9yeV0gJiYgIWlzRGlyZWN0b3J5KXsKLSAgICAgICAgICAgICAgICByZXR1cm4gW1tO
U1VSTCBmaWxlVVJMV2l0aFBhdGg6ZmlsZV0gX3dlYmtpdF9jYW5vbmljYWxpemVdOwotICAgICAg
ICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIFtbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOmZpbGVd
IF93ZWJraXRfY2Fub25pY2FsaXplXTsKICAgICAgICAgfQogICAgIH0KIAo=
</data>
<flag name="review"
          id="40167"
          type_id="1"
          status="-"
          setter="dcheng"
    />
    <flag name="commit-queue"
          id="40168"
          type_id="3"
          status="-"
          setter="dcheng"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55903</attachid>
            <date>2010-05-12 14:32:49 -0700</date>
            <delta_ts>2010-05-15 21:00:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>no-file-urls2.patch</filename>
            <type>text/plain</type>
            <size>10017</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZThmMDg3Li5hM2U3NTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDUt
MTEgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRHJhZ0Rh
dGE6OmFzVVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisgICAgICAgIFNl
dmVyYWwgbGF5b3V0IHRlc3RzIGRlcGVuZGVkIG9uIHRoZSBmYWN0IHRoYXQgZHJvcHBpbmcgYSBm
aWxlIHdvdWxkCisgICAgICAgIG5ldmVyIHRyaWdnZXIgbmF2aWdhdGlvbi4gVGhpcyBuZXZlciBo
YXBwZW5lZCB0byBvY2N1ciBpbiB0aGUgcGFzdCwKKyAgICAgICAgc2luY2UgaXQganVzdCBzbyBo
YXBwZW5lZCB0aGF0IHRoZSBmaWxlbmFtZXMgdXNlZCBpbiB0aGUgdGVzdHMgbmV2ZXIKKyAgICAg
ICAgcmVzb2x2ZWQgdG8gZmlsZXMgdGhhdCBleGlzdC4gU2luY2UgRHJhZ0RhdGE6OmFzVVJMKCkg
bm8gbG9uZ2VyIHRyaWVzCisgICAgICAgIHRvIHZlcmlmeSBmaWxlIGV4aXN0ZW5jZSwgdGhlIGxh
eW91dCB0ZXN0cyB3ZXJlIHVwZGF0ZWQgdG8gZWl0aGVyCisgICAgICAgIHN1cHByZXNzIG5hdmln
YXRpb24gb3IgbG9nIGFueSBuYXZpZ2F0aW9uIHRoYXQgc2hvdWxkIG9jY3VyIGFzIHBhcnQgb2YK
KyAgICAgICAgdGhlIHRlc3QuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1p
bnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVi
b2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvcGFz
dGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanM6CisgICAgICAg
IChydW5UZXN0LndpbmRvdy5vbmJlZm9yZXVubG9hZCk6CisgICAgICAgIChydW5UZXN0KToKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMvY2xpcGJv
YXJkLWZpbGUtYWNjZXNzLmpzOgorCiAyMDEwLTA1LTExICBLZW50IFRhbXVyYSAgPHRrZW50QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFqaS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVz
LWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZmls
ZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0CmluZGV4IGJiY2ZmYzcuLmUzOTQxMDEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZp
bGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVjdGVkLnR4dApAQCAtMyw5ICszLDYgQEAg
VGVzdHMgZm9yIG11bHRpLWZpbGUgZHJhZyBvbnRvIGZpbGUgaW5wdXQgZWxlbWVudHMgZm9yIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3MKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1E
cmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoKLVBBU1MgZmlsZUlucHV0
LnZhbHVlIGlzICIiCi1QQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5ndGggaXMgMAogRHJhZ2dpbmcg
YSBzaW5nbGUgKG5vbi1leGlzdGFudCkgZmlsZSB0byBhIGZpbGUgaW5wdXQgY29udHJvbDoKIFBB
U1MgZmlsZUlucHV0LnZhbHVlIGlzICJEUlRGYWtlRmlsZSIKIFBBU1MgZmlsZUlucHV0LmZpbGVz
Lmxlbmd0aCBpcyAxCkBAIC01Niw2ICs1Myw5IEBAIEZJWE1FOiAgZWxlbWVudHMgc2hvdWxkIHJl
ZnVzZSBkcmFncyBpbmNsdWRpbmcgZGlyZWN0b3JpZXM6IGh0dHBzOi8vYnVncy53ZWJraXQuCiBE
cmFnZ2luZyBhIGRpcmVjdG9yeSBhbmQgYSBmaWxlIG9udG8gYSBtdXRsaS1maWxlIGlucHV0IGNv
bnRyb2w6CiBGQUlMIGZpbGVJbnB1dC52YWx1ZSBzaG91bGQgYmUgLiBXYXMgZGlyZWN0b3J5LWZv
ci1kcmFnZ2luZy4KIEZBSUwgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBzaG91bGQgYmUgMC4gV2Fz
IDIuCitEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoKK1BBU1MgZmls
ZUlucHV0LnZhbHVlIGlzICIiCitQQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5ndGggaXMgMAogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3Mu
aHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVzLWFj
Y2Vzcy5odG1sCmluZGV4IDczZDc5MjQuLmY3ZGI3MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1s
CkBAIC04LDYgKzgsNSBAQAogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1h
Y2Nlc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQt
ZmlsZXMtYWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10
ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcwppbmRleCBkMTdmODk3Li43MTAxNWNjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2Zp
bGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMKQEAgLTc0LDExICs3
NCw2IEBAIGZ1bmN0aW9uIHRlc3RPcmRlcmVkRHJhZ2dpbmdXaXRoRGlyZWN0b3J5KCkKIAogZnVu
Y3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgZGVidWcoIkRyYWdnaW5nIHRvIGEgZGlzYWJsZWQgZmls
ZSBpbnB1dCBjb250cm9sOiIpOwotICAgIGZpbGVJbnB1dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAg
ZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMoWydEUlRGYWtlRmlsZSddLCBbXSkKLSAg
ICBmaWxlSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsKLQogICAgIGRlYnVnKCJEcmFnZ2luZyBhIHNp
bmdsZSAobm9uLWV4aXN0YW50KSBmaWxlIHRvIGEgZmlsZSBpbnB1dCBjb250cm9sOiIpOwogICAg
IHRlc3REcmFnZ2luZ0ZpbGVzKFsKICAgICAgICAgeyAncGF0aCc6ICdEUlRGYWtlRmlsZScsICdu
YW1lJyA6ICdEUlRGYWtlRmlsZScsICdzaXplJyA6IDAsICd0eXBlJyA6ICcnIH0KQEAgLTExMSw4
ICsxMDYsMzAgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgXSk7CiAKICAgICB0ZXN0T3JkZXJl
ZERyYWdnaW5nV2l0aERpcmVjdG9yeSgpOworCisgICAgZGVidWcoIkRyYWdnaW5nIHRvIGEgZGlz
YWJsZWQgZmlsZSBpbnB1dCBjb250cm9sOiIpOworICAgIGZpbGVJbnB1dC5kaXNhYmxlZCA9IHRy
dWU7CisgICAgLy8gSXQnZCBiZSBlYXNpZXN0IHRvIHVzZSB0cnktZmluYWxseSwgYnV0IGl0IGRv
ZXNuJ3Qgd29yay4KKyAgICB3aW5kb3cub25iZWZvcmV1bmxvYWQgPSBmdW5jdGlvbigpIHsKKyAg
ICAgICAgLy8gU2luY2UgdGhlIGRyb3AgdHJpZ2dlcmVkIGEgbmF2aWdhdGlvbiwgdmVyaWZ5IHRo
ZSBwcm9wZXJ0aWVzIG9mIHRoZQorICAgICAgICAvLyBmaWxlIGlucHV0IGhlcmUuCisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUlucHV0LnZhbHVlIiwgIiIpOworICAgICAgICBm
aWxlc1Nob3VsZEJlKFtdKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJz
ZWQiKTsKKyAgICAgICAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBM
RVRFPC9zcGFuPicpOworCisgICAgICAgIC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcworICAg
ICAgICBmaWxlSW5wdXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmaWxlSW5wdXQpOworCisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9OworICAgIGRyYWdn
aW5nUGF0aHNTaG91bGRSZXN1bHRJbkZpbGVzKFsnRFJURmFrZUZpbGUnXSwgW10pOworICAgIHdp
bmRvdy5vbmJlZnVyZXVubG9hZCA9IG51bGw7CisgICAgdGVzdEZhaWxlZCgiVGhlIGZpbmFsIHRl
c3QgY2FzZSBzaG91bGQgaGF2ZSByZXN1bHRlZCBpbiBuYXZpZ2F0aW9uIik7CiB9CiAKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCiBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAg
ICAgcnVuVGVzdCgpOwogICAgIC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcwpAQCAtMTIwLDYg
KzEzNywzIEBAIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKIH0gZWxzZSB7CiAgICAgdGVzdEZh
aWxlZCgiVGhpcyB0ZXN0IGlzIG5vdCBpbnRlcmFjdGl2ZSwgcGxlYXNlIHJ1biB1c2luZyBEdW1w
UmVuZGVyVHJlZSIpOwogfQotCi0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0
LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuanMK
aW5kZXggNjE5N2I0NC4uNGI2MzY4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5q
cworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQt
dGVzdHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzCkBAIC00Myw2ICs0MywxMyBAQCBkcmFnVGFy
Z2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5jdGlvbigpIHsKICAgICBldmVudC5wcmV2
ZW50RGVmYXVsdCgpOwogfSwgZmFsc2UpOwogCisvLyBTb21lIHRlc3RzIGRvbid0IGVuZCB1cCBk
cm9wcGluZyB0aGUgZHJhZ2dlZSBvdmVyIHRoZSBkcmFnIHRhcmdldC4gQ2F0Y2ggYW55CisvLyBs
ZWZ0b3ZlciBkcm9wIGV2ZW50cyBidWJibGluZyB1cCB0aHJvdWdoIHRoZSB0cmVlIHNvIHRoZXkg
ZG9uJ3QgY2F1c2UgcGFnZQorLy8gbmF2aWdhdGlvbi4KK2RvY3VtZW50LmJvZHkuYWRkRXZlbnRM
aXN0ZW5lcigiZHJhZ292ZXIiLCBmdW5jdGlvbigpIHsKKyAgICBldmVudC5wcmV2ZW50RGVmYXVs
dCgpOworfSk7CisKIGZ1bmN0aW9uIG1vdmVNb3VzZVRvQ2VudGVyT2ZFbGVtZW50KGVsZW1lbnQp
IHsKICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0
V2lkdGggLyAyOwogICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50
Lm9mZnNldEhlaWdodCAvIDI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDMxODdjNGIuLjA2NDgxNTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAt
MDUtMTEgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hv
dWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisgICAgICAgIFRoZXJlJ3Mgbm8gcG9pbnQg
dG8gdHJ5aW5nIHRvIG1ha2Ugc3VyZSB0aGUgZmlsZSBpcyB2YWxpZCBpbgorICAgICAgICBEcmFn
RGF0YTo6YXNVUkwoKS4gSXQncyB0aGUgd3JvbmcgcGxhY2UgdG8gY2hlY2ssIHNpbmNlIGFsbCB0
aGUKKyAgICAgICAgY29uc3VtZXJzIG9mIHRoaXMgZnVuY3Rpb24gZWl0aGVyOgorICAgICAgICAt
IG5lZWQgdG8gdmVyaWZ5IHRoZSBmaWxlIGV4aXN0cyB0aGVtc2VsdmVzIChlLmcuIHRoZSBsb2Fk
ZXIpCisgICAgICAgIC0gZG9uJ3QgY2FyZSBhYm91dCBmaWxlIHZhbGlkaXR5IChyaWNoIHRleHQg
ZHJhZy1hbmQtZHJvcCkKKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzVVJMKToKKwogMjAxMC0w
NS0xMSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9EcmFnRGF0YUNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0Rh
dGFDaHJvbWl1bS5jcHAKaW5kZXggOGZiNDBkZS4uNjFmNTkzOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwCkBAIC02NiwxMSArNjYsMTEgQEAg
U3RyaW5nIERyYWdEYXRhOjphc1VSTChTdHJpbmcqIHRpdGxlKSBjb25zdAogICAgIFN0cmluZyB1
cmw7CiAgICAgaWYgKG1fcGxhdGZvcm1EcmFnRGF0YS0+aGFzVmFsaWRVUkwoKSkKICAgICAgICAg
dXJsID0gbV9wbGF0Zm9ybURyYWdEYXRhLT5nZXRVUkwoKS5zdHJpbmcoKTsKLSAgICBlbHNlIGlm
IChtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcy5zaXplKCkgPT0gMSkgeworICAgIGVsc2Ug
aWYgKCFtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcy5pc0VtcHR5KCkpIHsKICAgICAgICAg
U3RyaW5nIGZpbGVOYW1lID0gbV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXNbMF07CiAgICAg
ICAgIGZpbGVOYW1lID0gQ2hyb21pdW1CcmlkZ2U6OmdldEFic29sdXRlUGF0aChmaWxlTmFtZSk7
Ci0gICAgICAgIGlmIChmaWxlRXhpc3RzKGZpbGVOYW1lKSAmJiAhQ2hyb21pdW1CcmlkZ2U6Omlz
RGlyZWN0b3J5KGZpbGVOYW1lKSkKLSAgICAgICAgICAgIHVybCA9IENocm9taXVtQnJpZGdlOjpm
aWxlUGF0aFRvVVJMKGZpbGVOYW1lKS5zdHJpbmcoKTsKKyAgICAgICAgLy8gVGhlIGxvYWRlciB3
aWxsIGRvIHRoZSByaWdodCB0aGluZyBpZiB0aGUgZmlsZW5hbWUgaXMgaW52YWxpZCBmb3Igb25l
IHJlYXNvbiBvciBhbm90aGVyLgorICAgICAgICB1cmwgPSBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBh
dGhUb1VSTChmaWxlTmFtZSkuc3RyaW5nKCk7CiAgICAgfQogIAogICAgIC8vIHx0aXRsZXwgY2Fu
IGJlIE5VTEwKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggZDhmZTUxYy4uNTNlODIxNCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAx
MC0wNS0xMSAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcmFnRGF0YTo6YXNVUkwoKSBz
aG91bGRuJ3QgZG8gZmlsZSB2YWxpZGl0eSBjaGVja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NzExCisKKyAgICAgICAgVXBkYXRlIFtOU1Bhc3Rl
Ym9hcmQgX3dlYl9iZXN0VVJMXSB0byBzdGlsbCByZXR1cm4gYSBmaWxlIFVSTCBmb3IgcGF0aHMK
KyAgICAgICAgdGhhdCBkb24ndCBleGlzdC4gVGhlIGxvYWRlciB3aWxsIGhhbmRsZSBmaWxlcyB0
aGF0IGNlYXNlZCB0byBleGlzdCBpbgorICAgICAgICB0aGUgbWlkZGxlIG9mIGEgZHJhZyB3aXRo
IGFuIGVycm9yIHBhZ2UuIERpcmVjdG9yaWVzIHN0aWxsIGhhdmUgc3BlY2lhbAorICAgICAgICBo
YW5kbGluZywgc2luY2UgdGhlIE1hYyBsb2FkZXIgZG9lc24ndCB3b3JrIGNvcnJlY3RseSB3aXRo
IHRoZW0uIAorICAgICAgICBJZGVhbGx5LCBhbGwgdGhhdCBoYW5kbGluZyBzaG91bGQgYmUgbW92
ZWQgaW50byB0aGUgbG9hZGVyIGF0IHNvbWUKKyAgICAgICAgcG9pbnQuCisKKyAgICAgICAgKiBN
aXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNQYXN0ZWJvYXJkIF93
ZWJfYmVzdFVSTF0pOgorCiAyMDEwLTA1LTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAt
LWdpdCBhL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0gYi9XZWJLaXQv
bWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tCmluZGV4IDhjZWJlYjYuLjVjNjljNzEg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KKysr
IGIvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpAQCAtMTQxLDEyICsx
NDEsMTYgQEAgc3RhdGljIE5TQXJyYXkgKl93cml0YWJsZVR5cGVzRm9ySW1hZ2VXaXRoQXJjaGl2
ZSAodm9pZCkKIAogICAgIGlmIChbdHlwZXMgY29udGFpbnNPYmplY3Q6TlNGaWxlbmFtZXNQYm9h
cmRUeXBlXSkgewogICAgICAgICBOU0FycmF5ICpmaWxlcyA9IFtzZWxmIHByb3BlcnR5TGlzdEZv
clR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKKyAgICAgICAgLy8gRklYTUU6IG1heWJlIGl0
IG1ha2VzIG1vcmUgc2Vuc2UgdG8gYWxsb3cgbXVsdGlwbGUgZmlsZXMgYW5kIG9ubHkgdXNlIHRo
ZSBmaXJzdCBvbmU/CiAgICAgICAgIGlmIChbZmlsZXMgY291bnRdID09IDEpIHsKICAgICAgICAg
ICAgIE5TU3RyaW5nICpmaWxlID0gW2ZpbGVzIG9iamVjdEF0SW5kZXg6MF07Ci0gICAgICAgICAg
ICBCT09MIGlzRGlyZWN0b3J5OwotICAgICAgICAgICAgaWYoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1
bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGUgaXNEaXJlY3Rvcnk6JmlzRGlyZWN0b3J5
XSAmJiAhaXNEaXJlY3RvcnkpewotICAgICAgICAgICAgICAgIHJldHVybiBbW05TVVJMIGZpbGVV
UkxXaXRoUGF0aDpmaWxlXSBfd2Via2l0X2Nhbm9uaWNhbGl6ZV07Ci0gICAgICAgICAgICB9Cisg
ICAgICAgICAgICAvLyBGSVhNRTogdGhpcyBjaGVjayBzaG91bGQgbW92ZSB0byB0aGUgbG9hZGVy
LgorICAgICAgICAgICAgQk9PTCBpc0RpcmVjdG9yeSA9IGZhbHNlOworICAgICAgICAgICAgaWYg
KFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpmaWxlIGlz
RGlyZWN0b3J5OiZpc0RpcmVjdG9yeV0gJiYKKyAgICAgICAgICAgICAgICBpc0RpcmVjdG9yeSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gbmlsOworICAgICAgICAgICAgLy8gUHVycG9zZWx5IGFs
bG93IGludmFsaWQgcGF0aHMgdG8gZmFsbCB0aHJvdWdoIHNvIHRoZSBsb2FkZXIgY2FuIGhhbmRs
ZSBpdC4KKyAgICAgICAgICAgIHJldHVybiBbW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpmaWxlXSBf
d2Via2l0X2Nhbm9uaWNhbGl6ZV07CiAgICAgICAgIH0KICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56174</attachid>
            <date>2010-05-15 21:00:53 -0700</date>
            <delta_ts>2010-05-17 15:56:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38711-20100516000051.patch</filename>
            <type>text/plain</type>
            <size>10797</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZThmMDg3YmMwMDk1NWM0YjY2ZTk1YTI2ZWUyZDIzMTliMjY1YWIyLi43MmI2MmUy
Yzk5YWNjN2VmZmQyYjc4ZDdmYjRlZjA5Mzc5YzI2MjNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDUtMTQgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisg
ICAgICAgIFNldmVyYWwgbGF5b3V0IHRlc3RzIGRlcGVuZGVkIG9uIHRoZSBmYWN0IHRoYXQgZHJv
cHBpbmcgYSBmaWxlIHdvdWxkCisgICAgICAgIG5ldmVyIHRyaWdnZXIgbmF2aWdhdGlvbi4gVGhp
cyBuZXZlciBoYXBwZW5lZCB0byBvY2N1ciBpbiB0aGUgcGFzdCwKKyAgICAgICAgc2luY2UgaXQg
anVzdCBzbyBoYXBwZW5lZCB0aGF0IHRoZSBmaWxlbmFtZXMgdXNlZCBpbiB0aGUgdGVzdHMgbmV2
ZXIKKyAgICAgICAgcmVzb2x2ZWQgdG8gZmlsZXMgdGhhdCBleGlzdC4gU2luY2UgRHJhZ0RhdGE6
OmFzVVJMKCkgbm8gbG9uZ2VyIHRyaWVzCisgICAgICAgIHRvIHZlcmlmeSBmaWxlIGV4aXN0ZW5j
ZSwgdGhlIGxheW91dCB0ZXN0cyB3ZXJlIHVwZGF0ZWQgdG8gZWl0aGVyCisgICAgICAgIHN1cHBy
ZXNzIG5hdmlnYXRpb24gb3IgbG9nIGFueSBuYXZpZ2F0aW9uIHRoYXQgc2hvdWxkIG9jY3VyIGFz
IHBhcnQgb2YKKyAgICAgICAgdGhlIHRlc3QuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9h
cmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRp
bmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanM6
CisgICAgICAgIChydW5UZXN0LndpbmRvdy5vbmJlZm9yZXVubG9hZCk6CisgICAgICAgIChydW5U
ZXN0KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVz
dHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzOgorCiAyMDEwLTA1LTExICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhh
bWFqaS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlu
cHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0CmluZGV4IGJiY2ZmYzc1
YjNjMDhmNThiYzllMWMzNmUwMTJiMWM2MjE4ODEzNWEuLmUzOTQxMDE1N2QwMzNjNDUxY2QyMzBj
NDkwMThiMmUwNTU5ZjFjNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVjdGVkLnR4
dApAQCAtMyw5ICszLDYgQEAgVGVzdHMgZm9yIG11bHRpLWZpbGUgZHJhZyBvbnRvIGZpbGUgaW5w
dXQgZWxlbWVudHMgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3MKIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KIAogCi1EcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJv
bDoKLVBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCi1QQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5n
dGggaXMgMAogRHJhZ2dpbmcgYSBzaW5nbGUgKG5vbi1leGlzdGFudCkgZmlsZSB0byBhIGZpbGUg
aW5wdXQgY29udHJvbDoKIFBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICJEUlRGYWtlRmlsZSIKIFBB
U1MgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBpcyAxCkBAIC01Niw2ICs1Myw5IEBAIEZJWE1FOiAg
ZWxlbWVudHMgc2hvdWxkIHJlZnVzZSBkcmFncyBpbmNsdWRpbmcgZGlyZWN0b3JpZXM6IGh0dHBz
Oi8vYnVncy53ZWJraXQuCiBEcmFnZ2luZyBhIGRpcmVjdG9yeSBhbmQgYSBmaWxlIG9udG8gYSBt
dXRsaS1maWxlIGlucHV0IGNvbnRyb2w6CiBGQUlMIGZpbGVJbnB1dC52YWx1ZSBzaG91bGQgYmUg
LiBXYXMgZGlyZWN0b3J5LWZvci1kcmFnZ2luZy4KIEZBSUwgZmlsZUlucHV0LmZpbGVzLmxlbmd0
aCBzaG91bGQgYmUgMC4gV2FzIDIuCitEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQg
Y29udHJvbDoKK1BBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCitQQVNTIGZpbGVJbnB1dC5maWxl
cy5sZW5ndGggaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1p
bnB1dC1maWxlcy1hY2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9m
aWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1sCmluZGV4IDczZDc5MjQ4NzM1ODViMmFjYzVmYjRi
ZGE1OTVmNzVkMTg4NzMwM2IuLmY3ZGI3MDBkNzBlZDQyM2JkYzU4NzBmYTk1N2RhMmUyMzkyMDRl
ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0
LWZpbGVzLWFjY2Vzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9m
aWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1sCkBAIC04LDYgKzgsNSBAQAogPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5q
cwppbmRleCBkMTdmODk3YTk1ZTU2OWYyZWVlMTkxZWM5YjU2NDk2MzZiNjg5N2Q0Li43ODQ2OGQ4
MWJhOTQxMmY1YTNhZTYwYmIyYTQzNTU0NjZiZjNmNzNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNz
LmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmls
ZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMKQEAgLTc0LDExICs3NCw2IEBAIGZ1bmN0aW9uIHRlc3RP
cmRlcmVkRHJhZ2dpbmdXaXRoRGlyZWN0b3J5KCkKIAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0g
ICAgZGVidWcoIkRyYWdnaW5nIHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250cm9sOiIpOwot
ICAgIGZpbGVJbnB1dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAgZHJhZ2dpbmdQYXRoc1Nob3VsZFJl
c3VsdEluRmlsZXMoWydEUlRGYWtlRmlsZSddLCBbXSkKLSAgICBmaWxlSW5wdXQuZGlzYWJsZWQg
PSBmYWxzZTsKLQogICAgIGRlYnVnKCJEcmFnZ2luZyBhIHNpbmdsZSAobm9uLWV4aXN0YW50KSBm
aWxlIHRvIGEgZmlsZSBpbnB1dCBjb250cm9sOiIpOwogICAgIHRlc3REcmFnZ2luZ0ZpbGVzKFsK
ICAgICAgICAgeyAncGF0aCc6ICdEUlRGYWtlRmlsZScsICduYW1lJyA6ICdEUlRGYWtlRmlsZScs
ICdzaXplJyA6IDAsICd0eXBlJyA6ICcnIH0KQEAgLTExMSw4ICsxMDYsMjggQEAgZnVuY3Rpb24g
cnVuVGVzdCgpCiAgICAgXSk7CiAKICAgICB0ZXN0T3JkZXJlZERyYWdnaW5nV2l0aERpcmVjdG9y
eSgpOworCisgICAgZGVidWcoIkRyYWdnaW5nIHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250
cm9sOiIpOworICAgIGZpbGVJbnB1dC5kaXNhYmxlZCA9IHRydWU7CisgICAgd2luZG93Lm9uYmVm
b3JldW5sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIFNpbmNlIHRoZSBkcm9wIHRyaWdn
ZXJlZCBhIG5hdmlnYXRpb24sIHZlcmlmeSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZmlsZSBpbnB1
dCBoZXJlLgorICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVJbnB1dC52YWx1ZSIs
ICIiKTsKKyAgICAgICAgZmlsZXNTaG91bGRCZShbXSk7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgi
c3VjY2Vzc2Z1bGx5UGFyc2VkIik7CisgICAgICAgIGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0i
cGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKKworICAgICAgICAvLyBDbGVhbiB1cCBhZnRl
ciBvdXJzZWx2ZXMKKyAgICAgICAgZmlsZUlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZmls
ZUlucHV0KTsKKworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
ICAgfTsKKyAgICBkcmFnZ2luZ1BhdGhzU2hvdWxkUmVzdWx0SW5GaWxlcyhbJ0RSVEZha2VGaWxl
J10sIFtdKTsKKyAgICB3aW5kb3cub25iZWZ1cmV1bmxvYWQgPSBudWxsOworICAgIHRlc3RGYWls
ZWQoIlRoZSBmaW5hbCB0ZXN0IGNhc2Ugc2hvdWxkIGhhdmUgcmVzdWx0ZWQgaW4gbmF2aWdhdGlv
biIpOwogfQogCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKwogaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikgewogICAgIHJ1blRlc3QoKTsKICAgICAvLyBDbGVhbiB1cCBhZnRlciBvdXJz
ZWx2ZXMKQEAgLTEyMCw2ICsxMzUsMyBAQCBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiB9IGVs
c2UgewogICAgIHRlc3RGYWlsZWQoIlRoaXMgdGVzdCBpcyBub3QgaW50ZXJhY3RpdmUsIHBsZWFz
ZSBydW4gdXNpbmcgRHVtcFJlbmRlclRyZWUiKTsKIH0KLQotCi12YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMvY2xpcGJvYXJk
LWZpbGUtYWNjZXNzLmpzCmluZGV4IDYxOTdiNDRiOWM0YTZjYTg5MmQzM2NmZTAzZWE3MTg0Mzky
MjRmMGMuLjRiNjM2OGQ0NjMyMTZiMTQxNDI2MjEyODlhYWFjMThjZGZmMDA3ZDIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10ZXN0
cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcwpA
QCAtNDMsNiArNDMsMTMgQEAgZHJhZ1RhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgZnVu
Y3Rpb24oKSB7CiAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKIH0sIGZhbHNlKTsKIAorLy8g
U29tZSB0ZXN0cyBkb24ndCBlbmQgdXAgZHJvcHBpbmcgdGhlIGRyYWdnZWUgb3ZlciB0aGUgZHJh
ZyB0YXJnZXQuIENhdGNoIGFueQorLy8gbGVmdG92ZXIgZHJvcCBldmVudHMgYnViYmxpbmcgdXAg
dGhyb3VnaCB0aGUgdHJlZSBzbyB0aGV5IGRvbid0IGNhdXNlIHBhZ2UKKy8vIG5hdmlnYXRpb24u
Citkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZnVuY3Rpb24oKSB7
CisgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKK30pOworCiBmdW5jdGlvbiBtb3ZlTW91c2VU
b0NlbnRlck9mRWxlbWVudChlbGVtZW50KSB7CiAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9m
ZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKICAgICB2YXIgY2VudGVyWSA9IGVs
ZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMTg3YzRiNmQ1OTY2
MmE4NDBiZjFmYTQ1OTcyNGI3MTU4YTZhMmEwLi5iM2E5OGNmMDNmMGQ5YjJlODBlMzZiZjFmNmFm
MDYyYTg5Yjc1Mzk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA1LTE0ICBEYW5pZWwgQ2hlbmcgIDxk
Y2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERyYWdEYXRhOjphc1VSTCgpIHNob3VsZG4ndCBkbyBmaWxlIHZhbGlkaXR5
IGNoZWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg3MTEKKworICAgICAgICBUaGVyZSdzIG5vIHBvaW50IHRvIHRyeWluZyB0byBtYWtlIHN1cmUg
dGhlIGZpbGUgaXMgdmFsaWQgaW4KKyAgICAgICAgRHJhZ0RhdGE6OmFzVVJMKCkuIEl0J3MgYmV0
dGVyIHRvIGFzayBmb3IgZm9yZ2l2ZW5lc3MgdGhhbiB0byBhc2sgZm9yCisgICAgICAgIHBlcm1p
c3Npb24sIHNpbmNlIGFza2luZyBmb3IgcGVybWlzc2lvbiBpcyBwcm9uZSB0byByYWNlIGNvbmRp
dGlvbnMKKyAgICAgICAgYW5kIHJlc3VsdHMgaW4gdW5uZWNlc3NhcnkgSS9PLiAgQ29uc3VtZXJz
IG9mIHRoaXMgZnVuY3Rpb24gZWl0aGVyOgorICAgICAgICAtIG5lZWQgdG8gdmVyaWZ5IHRoZSBm
aWxlIGV4aXN0cyB0aGVtc2VsdmVzIChlLmcuIHRoZSBsb2FkZXIpCisgICAgICAgIC0gZG9uJ3Qg
Y2FyZSBhYm91dCBmaWxlIHZhbGlkaXR5IChyaWNoIHRleHQgZHJhZy1hbmQtZHJvcCkKKworICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0RhdGE6OmFzVVJMKToKKwogMjAxMC0wNS0xMSAgWGFuIExvcGV6ICA8eGxv
cGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAKaW5kZXgg
OGZiNDBkZTdjYWMxNjY0YzA5YzE1MTRkMDdkMmY5ZTU5Yzg1ZGY2Ny4uNjFmNTkzOGNkYTM1MTBj
YmMyZDIzMDViNjBmZjk1ZWY3ZDk1NzUwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwCkBAIC02NiwxMSArNjYsMTEgQEAgU3RyaW5nIERyYWdE
YXRhOjphc1VSTChTdHJpbmcqIHRpdGxlKSBjb25zdAogICAgIFN0cmluZyB1cmw7CiAgICAgaWYg
KG1fcGxhdGZvcm1EcmFnRGF0YS0+aGFzVmFsaWRVUkwoKSkKICAgICAgICAgdXJsID0gbV9wbGF0
Zm9ybURyYWdEYXRhLT5nZXRVUkwoKS5zdHJpbmcoKTsKLSAgICBlbHNlIGlmIChtX3BsYXRmb3Jt
RHJhZ0RhdGEtPmZpbGVuYW1lcy5zaXplKCkgPT0gMSkgeworICAgIGVsc2UgaWYgKCFtX3BsYXRm
b3JtRHJhZ0RhdGEtPmZpbGVuYW1lcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU3RyaW5nIGZpbGVO
YW1lID0gbV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXNbMF07CiAgICAgICAgIGZpbGVOYW1l
ID0gQ2hyb21pdW1CcmlkZ2U6OmdldEFic29sdXRlUGF0aChmaWxlTmFtZSk7Ci0gICAgICAgIGlm
IChmaWxlRXhpc3RzKGZpbGVOYW1lKSAmJiAhQ2hyb21pdW1CcmlkZ2U6OmlzRGlyZWN0b3J5KGZp
bGVOYW1lKSkKLSAgICAgICAgICAgIHVybCA9IENocm9taXVtQnJpZGdlOjpmaWxlUGF0aFRvVVJM
KGZpbGVOYW1lKS5zdHJpbmcoKTsKKyAgICAgICAgLy8gVGhlIGxvYWRlciB3aWxsIGRvIHRoZSBy
aWdodCB0aGluZyBpZiB0aGUgZmlsZW5hbWUgaXMgaW52YWxpZCBmb3Igb25lIHJlYXNvbiBvciBh
bm90aGVyLgorICAgICAgICB1cmwgPSBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTChmaWxl
TmFtZSkuc3RyaW5nKCk7CiAgICAgfQogIAogICAgIC8vIHx0aXRsZXwgY2FuIGJlIE5VTEwKZGlm
ZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggZDhmZTUxYzkyZTNhNWE3NmFjMzgzZTgxYjllYmNkYzA3OTYzMmNiNC4uNDAxNjM1OWRjZGYw
ZjBlM2U4Yzc2MmMyOTVlYjczOWU1OWM1OGVkOSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0w
NS0xNCAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcmFnRGF0YTo6YXNVUkwoKSBzaG91
bGRuJ3QgZG8gZmlsZSB2YWxpZGl0eSBjaGVja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NzExCisKKyAgICAgICAgQ2hhbmdlIFtOU1Bhc3RlYm9h
cmQgX3dlYl9iZXN0VVJMXSB0byBzdGlsbCByZXR1cm4gYSBmaWxlIFVSTCBmb3IgcGF0aHMKKyAg
ICAgICAgdGhhdCBkb24ndCBleGlzdC4gQ2FsbGVycyB3aG8gY2FyZSBhYm91dCB0aGUgZXhpc3Rl
bmNlIG9mIHRoZSBmaWxlIG9yCisgICAgICAgIHdoZXRoZXIgb3Igbm90IGl0IGlzIGEgZGlyZWN0
b3J5IHNob3VsZCBjaGVjayB0aGVtc2VsdmVzIHdoZW4gdGhleQorICAgICAgICB3YW50IHRvIHVz
ZSB0aGUgZmlsZS4gVGhlIGRpcmVjdG9yeSBjaGVjayBoYXMgYmVlbiBsZWZ0IGluIGZvciBub3cs
CisgICAgICAgIHNpbmNlIHRoZSBNYWMgbG9hZGVyICh3aGljaCB1c2VzIHRoaXMgZnVuY3Rpb24g
aW5kaXJlY3RseSB2aWEKKyAgICAgICAgRHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnKSBoYW5k
bGVzIGRpcmVjdG9yaWVzIHNvbWV3aGF0CisgICAgICAgIG5vbi1pbnR1aXRpdmVseTogaXQgb3Bl
bnMgdGhlIHBhcmVudCBkaXJlY3RvcnkgaW4gdGhlIEZpbmRlciwgcmF0aGVyCisgICAgICAgIHRo
YW4gb3BlbmluZyB0aGUgZGlyZWN0b3J5IGl0c2VsZi4KKworICAgICAgICAqIE1pc2MvV2ViTlNQ
YXN0ZWJvYXJkRXh0cmFzLm1tOgorICAgICAgICAoLVtOU1Bhc3RlYm9hcmQgX3dlYl9iZXN0VVJM
XSk6CisKIDIwMTAtMDUtMTAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbSBiL1dlYktpdC9tYWMvTWlzYy9X
ZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KaW5kZXggOGNlYmViNmJmYWY2MmM1NDY5Y2FhZTI3YmQx
MDNmM2NjYjY4Mzk5Yy4uOTcxN2Y1M2IxZDE1ODExNDBiZWVjNjJhZmNmN2M5YTI2YzFkNzlkNCAx
MDA2NDQKLS0tIGEvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQorKysg
Yi9XZWJLaXQvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tCkBAIC0xNDEsMTIgKzE0
MSwxNSBAQCBzdGF0aWMgTlNBcnJheSAqX3dyaXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhBcmNoaXZl
ICh2b2lkKQogCiAgICAgaWYgKFt0eXBlcyBjb250YWluc09iamVjdDpOU0ZpbGVuYW1lc1Bib2Fy
ZFR5cGVdKSB7CiAgICAgICAgIE5TQXJyYXkgKmZpbGVzID0gW3NlbGYgcHJvcGVydHlMaXN0Rm9y
VHlwZTpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdOworICAgICAgICAvLyBGSVhNRTogbWF5YmUgaXQg
bWFrZXMgbW9yZSBzZW5zZSB0byBhbGxvdyBtdWx0aXBsZSBmaWxlcyBhbmQgb25seSB1c2UgdGhl
IGZpcnN0IG9uZT8KICAgICAgICAgaWYgKFtmaWxlcyBjb3VudF0gPT0gMSkgewogICAgICAgICAg
ICAgTlNTdHJpbmcgKmZpbGUgPSBbZmlsZXMgb2JqZWN0QXRJbmRleDowXTsKLSAgICAgICAgICAg
IEJPT0wgaXNEaXJlY3Rvcnk7Ci0gICAgICAgICAgICBpZihbW05TRmlsZU1hbmFnZXIgZGVmYXVs
dE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZmlsZSBpc0RpcmVjdG9yeTomaXNEaXJlY3Rvcnld
ICYmICFpc0RpcmVjdG9yeSl7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFtbTlNVUkwgZmlsZVVS
TFdpdGhQYXRoOmZpbGVdIF93ZWJraXRfY2Fub25pY2FsaXplXTsKLSAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIC8vIEZJWE1FOiB0aGlzIGNoZWNrIHNob3VsZCBtb3ZlIHRvIHRoZSBsb2FkZXIu
CisgICAgICAgICAgICBCT09MIGlzRGlyZWN0b3J5ID0gZmFsc2U7CisgICAgICAgICAgICBpZiAo
W1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGUgaXNE
aXJlY3Rvcnk6JmlzRGlyZWN0b3J5XSAmJiBpc0RpcmVjdG9yeSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbmlsOworICAgICAgICAgICAgLy8gUHVycG9zZWx5IGFsbG93IGludmFsaWQgcGF0aHMg
dG8gZmFsbCB0aHJvdWdoIHNvIHRoZSBsb2FkZXIgY2FuIGhhbmRsZSBpdC4KKyAgICAgICAgICAg
IHJldHVybiBbW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpmaWxlXSBfd2Via2l0X2Nhbm9uaWNhbGl6
ZV07CiAgICAgICAgIH0KICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56281</attachid>
            <date>2010-05-17 15:56:22 -0700</date>
            <delta_ts>2010-05-17 16:13:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38711-20100517155620.patch</filename>
            <type>text/plain</type>
            <size>10959</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZThmMDg3YmMwMDk1NWM0YjY2ZTk1YTI2ZWUyZDIzMTliMjY1YWIyLi43MmI2MmUy
Yzk5YWNjN2VmZmQyYjc4ZDdmYjRlZjA5Mzc5YzI2MjNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDUtMTQgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisg
ICAgICAgIFNldmVyYWwgbGF5b3V0IHRlc3RzIGRlcGVuZGVkIG9uIHRoZSBmYWN0IHRoYXQgZHJv
cHBpbmcgYSBmaWxlIHdvdWxkCisgICAgICAgIG5ldmVyIHRyaWdnZXIgbmF2aWdhdGlvbi4gVGhp
cyBuZXZlciBoYXBwZW5lZCB0byBvY2N1ciBpbiB0aGUgcGFzdCwKKyAgICAgICAgc2luY2UgaXQg
anVzdCBzbyBoYXBwZW5lZCB0aGF0IHRoZSBmaWxlbmFtZXMgdXNlZCBpbiB0aGUgdGVzdHMgbmV2
ZXIKKyAgICAgICAgcmVzb2x2ZWQgdG8gZmlsZXMgdGhhdCBleGlzdC4gU2luY2UgRHJhZ0RhdGE6
OmFzVVJMKCkgbm8gbG9uZ2VyIHRyaWVzCisgICAgICAgIHRvIHZlcmlmeSBmaWxlIGV4aXN0ZW5j
ZSwgdGhlIGxheW91dCB0ZXN0cyB3ZXJlIHVwZGF0ZWQgdG8gZWl0aGVyCisgICAgICAgIHN1cHBy
ZXNzIG5hdmlnYXRpb24gb3IgbG9nIGFueSBuYXZpZ2F0aW9uIHRoYXQgc2hvdWxkIG9jY3VyIGFz
IHBhcnQgb2YKKyAgICAgICAgdGhlIHRlc3QuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9h
cmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRp
bmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanM6
CisgICAgICAgIChydW5UZXN0LndpbmRvdy5vbmJlZm9yZXVubG9hZCk6CisgICAgICAgIChydW5U
ZXN0KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVz
dHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzOgorCiAyMDEwLTA1LTExICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhh
bWFqaS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlu
cHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0CmluZGV4IGJiY2ZmYzc1
YjNjMDhmNThiYzllMWMzNmUwMTJiMWM2MjE4ODEzNWEuLmUzOTQxMDE1N2QwMzNjNDUxY2QyMzBj
NDkwMThiMmUwNTU5ZjFjNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVjdGVkLnR4
dApAQCAtMyw5ICszLDYgQEAgVGVzdHMgZm9yIG11bHRpLWZpbGUgZHJhZyBvbnRvIGZpbGUgaW5w
dXQgZWxlbWVudHMgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3MKIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KIAogCi1EcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJv
bDoKLVBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCi1QQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5n
dGggaXMgMAogRHJhZ2dpbmcgYSBzaW5nbGUgKG5vbi1leGlzdGFudCkgZmlsZSB0byBhIGZpbGUg
aW5wdXQgY29udHJvbDoKIFBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICJEUlRGYWtlRmlsZSIKIFBB
U1MgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBpcyAxCkBAIC01Niw2ICs1Myw5IEBAIEZJWE1FOiAg
ZWxlbWVudHMgc2hvdWxkIHJlZnVzZSBkcmFncyBpbmNsdWRpbmcgZGlyZWN0b3JpZXM6IGh0dHBz
Oi8vYnVncy53ZWJraXQuCiBEcmFnZ2luZyBhIGRpcmVjdG9yeSBhbmQgYSBmaWxlIG9udG8gYSBt
dXRsaS1maWxlIGlucHV0IGNvbnRyb2w6CiBGQUlMIGZpbGVJbnB1dC52YWx1ZSBzaG91bGQgYmUg
LiBXYXMgZGlyZWN0b3J5LWZvci1kcmFnZ2luZy4KIEZBSUwgZmlsZUlucHV0LmZpbGVzLmxlbmd0
aCBzaG91bGQgYmUgMC4gV2FzIDIuCitEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQg
Y29udHJvbDoKK1BBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCitQQVNTIGZpbGVJbnB1dC5maWxl
cy5sZW5ndGggaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1p
bnB1dC1maWxlcy1hY2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9m
aWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1sCmluZGV4IDczZDc5MjQ4NzM1ODViMmFjYzVmYjRi
ZGE1OTVmNzVkMTg4NzMwM2IuLmY3ZGI3MDBkNzBlZDQyM2JkYzU4NzBmYTk1N2RhMmUyMzkyMDRl
ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0
LWZpbGVzLWFjY2Vzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9m
aWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1sCkBAIC04LDYgKzgsNSBAQAogPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5q
cwppbmRleCBkMTdmODk3YTk1ZTU2OWYyZWVlMTkxZWM5YjU2NDk2MzZiNjg5N2Q0Li43ODQ2OGQ4
MWJhOTQxMmY1YTNhZTYwYmIyYTQzNTU0NjZiZjNmNzNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNz
LmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmls
ZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMKQEAgLTc0LDExICs3NCw2IEBAIGZ1bmN0aW9uIHRlc3RP
cmRlcmVkRHJhZ2dpbmdXaXRoRGlyZWN0b3J5KCkKIAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0g
ICAgZGVidWcoIkRyYWdnaW5nIHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250cm9sOiIpOwot
ICAgIGZpbGVJbnB1dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAgZHJhZ2dpbmdQYXRoc1Nob3VsZFJl
c3VsdEluRmlsZXMoWydEUlRGYWtlRmlsZSddLCBbXSkKLSAgICBmaWxlSW5wdXQuZGlzYWJsZWQg
PSBmYWxzZTsKLQogICAgIGRlYnVnKCJEcmFnZ2luZyBhIHNpbmdsZSAobm9uLWV4aXN0YW50KSBm
aWxlIHRvIGEgZmlsZSBpbnB1dCBjb250cm9sOiIpOwogICAgIHRlc3REcmFnZ2luZ0ZpbGVzKFsK
ICAgICAgICAgeyAncGF0aCc6ICdEUlRGYWtlRmlsZScsICduYW1lJyA6ICdEUlRGYWtlRmlsZScs
ICdzaXplJyA6IDAsICd0eXBlJyA6ICcnIH0KQEAgLTExMSw4ICsxMDYsMjggQEAgZnVuY3Rpb24g
cnVuVGVzdCgpCiAgICAgXSk7CiAKICAgICB0ZXN0T3JkZXJlZERyYWdnaW5nV2l0aERpcmVjdG9y
eSgpOworCisgICAgZGVidWcoIkRyYWdnaW5nIHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250
cm9sOiIpOworICAgIGZpbGVJbnB1dC5kaXNhYmxlZCA9IHRydWU7CisgICAgd2luZG93Lm9uYmVm
b3JldW5sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIFNpbmNlIHRoZSBkcm9wIHRyaWdn
ZXJlZCBhIG5hdmlnYXRpb24sIHZlcmlmeSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZmlsZSBpbnB1
dCBoZXJlLgorICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVJbnB1dC52YWx1ZSIs
ICIiKTsKKyAgICAgICAgZmlsZXNTaG91bGRCZShbXSk7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgi
c3VjY2Vzc2Z1bGx5UGFyc2VkIik7CisgICAgICAgIGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0i
cGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKKworICAgICAgICAvLyBDbGVhbiB1cCBhZnRl
ciBvdXJzZWx2ZXMKKyAgICAgICAgZmlsZUlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZmls
ZUlucHV0KTsKKworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
ICAgfTsKKyAgICBkcmFnZ2luZ1BhdGhzU2hvdWxkUmVzdWx0SW5GaWxlcyhbJ0RSVEZha2VGaWxl
J10sIFtdKTsKKyAgICB3aW5kb3cub25iZWZ1cmV1bmxvYWQgPSBudWxsOworICAgIHRlc3RGYWls
ZWQoIlRoZSBmaW5hbCB0ZXN0IGNhc2Ugc2hvdWxkIGhhdmUgcmVzdWx0ZWQgaW4gbmF2aWdhdGlv
biIpOwogfQogCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKwogaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikgewogICAgIHJ1blRlc3QoKTsKICAgICAvLyBDbGVhbiB1cCBhZnRlciBvdXJz
ZWx2ZXMKQEAgLTEyMCw2ICsxMzUsMyBAQCBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiB9IGVs
c2UgewogICAgIHRlc3RGYWlsZWQoIlRoaXMgdGVzdCBpcyBub3QgaW50ZXJhY3RpdmUsIHBsZWFz
ZSBydW4gdXNpbmcgRHVtcFJlbmRlclRyZWUiKTsKIH0KLQotCi12YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMvY2xpcGJvYXJk
LWZpbGUtYWNjZXNzLmpzCmluZGV4IDYxOTdiNDRiOWM0YTZjYTg5MmQzM2NmZTAzZWE3MTg0Mzky
MjRmMGMuLjRiNjM2OGQ0NjMyMTZiMTQxNDI2MjEyODlhYWFjMThjZGZmMDA3ZDIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10ZXN0
cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcwpA
QCAtNDMsNiArNDMsMTMgQEAgZHJhZ1RhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgZnVu
Y3Rpb24oKSB7CiAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKIH0sIGZhbHNlKTsKIAorLy8g
U29tZSB0ZXN0cyBkb24ndCBlbmQgdXAgZHJvcHBpbmcgdGhlIGRyYWdnZWUgb3ZlciB0aGUgZHJh
ZyB0YXJnZXQuIENhdGNoIGFueQorLy8gbGVmdG92ZXIgZHJvcCBldmVudHMgYnViYmxpbmcgdXAg
dGhyb3VnaCB0aGUgdHJlZSBzbyB0aGV5IGRvbid0IGNhdXNlIHBhZ2UKKy8vIG5hdmlnYXRpb24u
Citkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZnVuY3Rpb24oKSB7
CisgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKK30pOworCiBmdW5jdGlvbiBtb3ZlTW91c2VU
b0NlbnRlck9mRWxlbWVudChlbGVtZW50KSB7CiAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9m
ZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKICAgICB2YXIgY2VudGVyWSA9IGVs
ZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMTg3YzRiNmQ1OTY2
MmE4NDBiZjFmYTQ1OTcyNGI3MTU4YTZhMmEwLi5iM2E5OGNmMDNmMGQ5YjJlODBlMzZiZjFmNmFm
MDYyYTg5Yjc1Mzk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA1LTE0ICBEYW5pZWwgQ2hlbmcgIDxk
Y2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERyYWdEYXRhOjphc1VSTCgpIHNob3VsZG4ndCBkbyBmaWxlIHZhbGlkaXR5
IGNoZWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg3MTEKKworICAgICAgICBUaGVyZSdzIG5vIHBvaW50IHRvIHRyeWluZyB0byBtYWtlIHN1cmUg
dGhlIGZpbGUgaXMgdmFsaWQgaW4KKyAgICAgICAgRHJhZ0RhdGE6OmFzVVJMKCkuIEl0J3MgYmV0
dGVyIHRvIGFzayBmb3IgZm9yZ2l2ZW5lc3MgdGhhbiB0byBhc2sgZm9yCisgICAgICAgIHBlcm1p
c3Npb24sIHNpbmNlIGFza2luZyBmb3IgcGVybWlzc2lvbiBpcyBwcm9uZSB0byByYWNlIGNvbmRp
dGlvbnMKKyAgICAgICAgYW5kIHJlc3VsdHMgaW4gdW5uZWNlc3NhcnkgSS9PLiAgQ29uc3VtZXJz
IG9mIHRoaXMgZnVuY3Rpb24gZWl0aGVyOgorICAgICAgICAtIG5lZWQgdG8gdmVyaWZ5IHRoZSBm
aWxlIGV4aXN0cyB0aGVtc2VsdmVzIChlLmcuIHRoZSBsb2FkZXIpCisgICAgICAgIC0gZG9uJ3Qg
Y2FyZSBhYm91dCBmaWxlIHZhbGlkaXR5IChyaWNoIHRleHQgZHJhZy1hbmQtZHJvcCkKKworICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0RhdGE6OmFzVVJMKToKKwogMjAxMC0wNS0xMSAgWGFuIExvcGV6ICA8eGxv
cGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAKaW5kZXgg
OGZiNDBkZTdjYWMxNjY0YzA5YzE1MTRkMDdkMmY5ZTU5Yzg1ZGY2Ny4uNjFmNTkzOGNkYTM1MTBj
YmMyZDIzMDViNjBmZjk1ZWY3ZDk1NzUwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwCkBAIC02NiwxMSArNjYsMTEgQEAgU3RyaW5nIERyYWdE
YXRhOjphc1VSTChTdHJpbmcqIHRpdGxlKSBjb25zdAogICAgIFN0cmluZyB1cmw7CiAgICAgaWYg
KG1fcGxhdGZvcm1EcmFnRGF0YS0+aGFzVmFsaWRVUkwoKSkKICAgICAgICAgdXJsID0gbV9wbGF0
Zm9ybURyYWdEYXRhLT5nZXRVUkwoKS5zdHJpbmcoKTsKLSAgICBlbHNlIGlmIChtX3BsYXRmb3Jt
RHJhZ0RhdGEtPmZpbGVuYW1lcy5zaXplKCkgPT0gMSkgeworICAgIGVsc2UgaWYgKCFtX3BsYXRm
b3JtRHJhZ0RhdGEtPmZpbGVuYW1lcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU3RyaW5nIGZpbGVO
YW1lID0gbV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXNbMF07CiAgICAgICAgIGZpbGVOYW1l
ID0gQ2hyb21pdW1CcmlkZ2U6OmdldEFic29sdXRlUGF0aChmaWxlTmFtZSk7Ci0gICAgICAgIGlm
IChmaWxlRXhpc3RzKGZpbGVOYW1lKSAmJiAhQ2hyb21pdW1CcmlkZ2U6OmlzRGlyZWN0b3J5KGZp
bGVOYW1lKSkKLSAgICAgICAgICAgIHVybCA9IENocm9taXVtQnJpZGdlOjpmaWxlUGF0aFRvVVJM
KGZpbGVOYW1lKS5zdHJpbmcoKTsKKyAgICAgICAgLy8gVGhlIGxvYWRlciB3aWxsIGRvIHRoZSBy
aWdodCB0aGluZyBpZiB0aGUgZmlsZW5hbWUgaXMgaW52YWxpZCBmb3Igb25lIHJlYXNvbiBvciBh
bm90aGVyLgorICAgICAgICB1cmwgPSBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTChmaWxl
TmFtZSkuc3RyaW5nKCk7CiAgICAgfQogIAogICAgIC8vIHx0aXRsZXwgY2FuIGJlIE5VTEwKZGlm
ZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggZDhmZTUxYzkyZTNhNWE3NmFjMzgzZTgxYjllYmNkYzA3OTYzMmNiNC4uZTkzOTA4YjUzOWQ3
ZTdkZDZjZjQ2MjEyY2NhYzFiYThhMzQwYWJmMyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0w
NS0xNCAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcmFnRGF0YTo6YXNVUkwoKSBzaG91
bGRuJ3QgZG8gZmlsZSB2YWxpZGl0eSBjaGVja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NzExCisKKyAgICAgICAgQ2hhbmdlIFtOU1Bhc3RlYm9h
cmQgX3dlYl9iZXN0VVJMXSB0byBzdGlsbCByZXR1cm4gYSBmaWxlIFVSTCBmb3IgcGF0aHMKKyAg
ICAgICAgdGhhdCBkb24ndCBleGlzdC4gQ2FsbGVycyB3aG8gY2FyZSBhYm91dCB0aGUgZXhpc3Rl
bmNlIG9mIHRoZSBmaWxlIG9yCisgICAgICAgIHdoZXRoZXIgb3Igbm90IGl0IGlzIGEgZGlyZWN0
b3J5IHNob3VsZCBjaGVjayB0aGVtc2VsdmVzIHdoZW4gdGhleQorICAgICAgICB3YW50IHRvIHVz
ZSB0aGUgZmlsZS4gVGhlIGRpcmVjdG9yeSBjaGVjayBoYXMgYmVlbiBsZWZ0IGluIGZvciBub3cs
CisgICAgICAgIHNpbmNlIHRoZSBNYWMgaW1wbGVtZW50YXRpb24gb2YgUmVzb3VyY2VIYW5kbGUs
IHdoaWNoIHVzZXMgdGhpcyBmdW5jdGlvbgorICAgICAgICBpbmRpcmVjdGx5IHZpYSBEcmFnQ29u
dHJvbGxlcjo6cGVyZm9ybURyYWcpIGhhbmRsZXMgZGlyZWN0b3JpZXMgc29tZXdoYXQKKyAgICAg
ICAgbm9uLWludHVpdGl2ZWx5OiBpdCBvcGVucyB0aGUgcGFyZW50IGRpcmVjdG9yeSBpbiB0aGUg
RmluZGVyLCByYXRoZXIKKyAgICAgICAgdGhhbiBvcGVuaW5nIHRoZSBkaXJlY3RvcnkgaXRzZWxm
LgorCisgICAgICAgICogTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW06CisgICAgICAgICgt
W05TUGFzdGVib2FyZCBfd2ViX2Jlc3RVUkxdKToKKwogMjAxMC0wNS0xMCAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMg
Q2FybHNzb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0
cmFzLm1tIGIvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQppbmRleCA4
Y2ViZWI2YmZhZjYyYzU0NjljYWFlMjdiZDEwM2YzY2NiNjgzOTljLi5hYjNiYWY3OGFmNzE2YmRl
ODE0NjZmYTMxYzc3ZDg1NTRmMzUzNjEwIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL01pc2MvV2Vi
TlNQYXN0ZWJvYXJkRXh0cmFzLm1tCisrKyBiL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9h
cmRFeHRyYXMubW0KQEAgLTE0MSwxMiArMTQxLDE3IEBAIHN0YXRpYyBOU0FycmF5ICpfd3JpdGFi
bGVUeXBlc0ZvckltYWdlV2l0aEFyY2hpdmUgKHZvaWQpCiAKICAgICBpZiAoW3R5cGVzIGNvbnRh
aW5zT2JqZWN0Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0pIHsKICAgICAgICAgTlNBcnJheSAqZmls
ZXMgPSBbc2VsZiBwcm9wZXJ0eUxpc3RGb3JUeXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV07Cisg
ICAgICAgIC8vIEZJWE1FOiBNYXliZSBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGFsbG93IG11bHRp
cGxlIGZpbGVzIGFuZCBvbmx5IHVzZSB0aGUgZmlyc3Qgb25lPwogICAgICAgICBpZiAoW2ZpbGVz
IGNvdW50XSA9PSAxKSB7CiAgICAgICAgICAgICBOU1N0cmluZyAqZmlsZSA9IFtmaWxlcyBvYmpl
Y3RBdEluZGV4OjBdOworICAgICAgICAgICAgLy8gRklYTUU6IFdlIGFyZSBmaWx0ZXJpbmcgb3V0
IGRpcmVjdG9yaWVzIGJlY2F1c2UgdGhhdCdzIHdoYXQgdGhlIG9yaWdpbmFsIGNvZGUgdXNlZCB0
bworICAgICAgICAgICAgLy8gZG8uIFdpdGhvdXQgdGhpcyBjaGVjaywgaWYgdGhlIFVSTCBwb2lu
dHMgdG8gYSBsb2NhbCBkaXJlY3RvcnksIFNhZmFyaSB3aWxsIG9wZW4gdGhlCisgICAgICAgICAg
ICAvLyBwYXJlbnQgZGlyZWN0b3J5IG9mIHRoZSBkaXJlY3RvcnkgaW4gRmluZGVyLiBUaGlzIGNo
ZWNrIHNob3VsZCBnbyBhd2F5IGFzIHNvb24gYXMKKyAgICAgICAgICAgIC8vIHBvc3NpYmxlLgog
ICAgICAgICAgICAgQk9PTCBpc0RpcmVjdG9yeTsKLSAgICAgICAgICAgIGlmKFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpmaWxlIGlzRGlyZWN0b3J5OiZp
c0RpcmVjdG9yeV0gJiYgIWlzRGlyZWN0b3J5KXsKLSAgICAgICAgICAgICAgICByZXR1cm4gW1tO
U1VSTCBmaWxlVVJMV2l0aFBhdGg6ZmlsZV0gX3dlYmtpdF9jYW5vbmljYWxpemVdOwotICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0g
ZmlsZUV4aXN0c0F0UGF0aDpmaWxlIGlzRGlyZWN0b3J5OiZpc0RpcmVjdG9yeV0gJiYgaXNEaXJl
Y3RvcnkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAgICAgICAgIHJldHVybiBb
W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpmaWxlXSBfd2Via2l0X2Nhbm9uaWNhbGl6ZV07CiAgICAg
ICAgIH0KICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56284</attachid>
            <date>2010-05-17 16:13:49 -0700</date>
            <delta_ts>2010-05-17 23:12:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38711-20100517161348.patch</filename>
            <type>text/plain</type>
            <size>10320</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZThmMDg3YmMwMDk1NWM0YjY2ZTk1YTI2ZWUyZDIzMTliMjY1YWIyLi45YWZlZTQ0
NTE1ODlkNDY0MWY0OGUxYzE2YTllNmE5Njg5NmZkYzg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMDUtMTQgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisg
ICAgICAgIFNldmVyYWwgbGF5b3V0IHRlc3RzIGRlcGVuZGVkIG9uIHRoZSBmYWN0IHRoYXQgZHJv
cHBpbmcgYSBmaWxlIHdvdWxkCisgICAgICAgIG5ldmVyIHRyaWdnZXIgbmF2aWdhdGlvbi4gVGhp
cyBuZXZlciBoYXBwZW5lZCB0byBvY2N1ciBpbiB0aGUgcGFzdCwKKyAgICAgICAgc2luY2UgaXQg
anVzdCBzbyBoYXBwZW5lZCB0aGF0IHRoZSBmaWxlbmFtZXMgdXNlZCBpbiB0aGUgdGVzdHMgbmV2
ZXIKKyAgICAgICAgcmVzb2x2ZWQgdG8gZmlsZXMgdGhhdCBleGlzdC4gU2luY2UgRHJhZ0RhdGE6
OmFzVVJMKCkgbm8gbG9uZ2VyIHRyaWVzCisgICAgICAgIHRvIHZlcmlmeSBmaWxlIGV4aXN0ZW5j
ZSwgdGhlIGxheW91dCB0ZXN0cyB3ZXJlIHVwZGF0ZWQgdG8gZWl0aGVyCisgICAgICAgIHN1cHBy
ZXNzIG5hdmlnYXRpb24gb3IgbG9nIGFueSBuYXZpZ2F0aW9uIHRoYXQgc2hvdWxkIG9jY3VyIGFz
IHBhcnQgb2YKKyAgICAgICAgdGhlIHRlc3QuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9h
cmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRp
bmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanM6Cisg
ICAgICAgIChydW5UZXN0LndpbmRvdy5vbmJlZm9yZXVubG9hZCk6CisgICAgICAgIChydW5UZXN0
KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMv
Y2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzOgorCiAyMDEwLTA1LTExICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFq
aS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0
LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0CmluZGV4IGJiY2ZmYzc1YjNj
MDhmNThiYzllMWMzNmUwMTJiMWM2MjE4ODEzNWEuLmUzOTQxMDE1N2QwMzNjNDUxY2QyMzBjNDkw
MThiMmUwNTU5ZjFjNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVjdGVkLnR4dApA
QCAtMyw5ICszLDYgQEAgVGVzdHMgZm9yIG11bHRpLWZpbGUgZHJhZyBvbnRvIGZpbGUgaW5wdXQg
ZWxlbWVudHMgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3MKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCi1EcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoK
LVBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCi1QQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5ndGgg
aXMgMAogRHJhZ2dpbmcgYSBzaW5nbGUgKG5vbi1leGlzdGFudCkgZmlsZSB0byBhIGZpbGUgaW5w
dXQgY29udHJvbDoKIFBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICJEUlRGYWtlRmlsZSIKIFBBU1Mg
ZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBpcyAxCkBAIC01Niw2ICs1Myw5IEBAIEZJWE1FOiAgZWxl
bWVudHMgc2hvdWxkIHJlZnVzZSBkcmFncyBpbmNsdWRpbmcgZGlyZWN0b3JpZXM6IGh0dHBzOi8v
YnVncy53ZWJraXQuCiBEcmFnZ2luZyBhIGRpcmVjdG9yeSBhbmQgYSBmaWxlIG9udG8gYSBtdXRs
aS1maWxlIGlucHV0IGNvbnRyb2w6CiBGQUlMIGZpbGVJbnB1dC52YWx1ZSBzaG91bGQgYmUgLiBX
YXMgZGlyZWN0b3J5LWZvci1kcmFnZ2luZy4KIEZBSUwgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBz
aG91bGQgYmUgMC4gV2FzIDIuCitEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29u
dHJvbDoKK1BBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCitQQVNTIGZpbGVJbnB1dC5maWxlcy5s
ZW5ndGggaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRl
c3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcwppbmRleCBkMTdm
ODk3YTk1ZTU2OWYyZWVlMTkxZWM5YjU2NDk2MzZiNjg5N2Q0Li43ODQ2OGQ4MWJhOTQxMmY1YTNh
ZTYwYmIyYTQzNTU0NjZiZjNmNzNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxl
cy1hY2Nlc3MuanMKQEAgLTc0LDExICs3NCw2IEBAIGZ1bmN0aW9uIHRlc3RPcmRlcmVkRHJhZ2dp
bmdXaXRoRGlyZWN0b3J5KCkKIAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgZGVidWcoIkRy
YWdnaW5nIHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250cm9sOiIpOwotICAgIGZpbGVJbnB1
dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAgZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMo
WydEUlRGYWtlRmlsZSddLCBbXSkKLSAgICBmaWxlSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsKLQog
ICAgIGRlYnVnKCJEcmFnZ2luZyBhIHNpbmdsZSAobm9uLWV4aXN0YW50KSBmaWxlIHRvIGEgZmls
ZSBpbnB1dCBjb250cm9sOiIpOwogICAgIHRlc3REcmFnZ2luZ0ZpbGVzKFsKICAgICAgICAgeyAn
cGF0aCc6ICdEUlRGYWtlRmlsZScsICduYW1lJyA6ICdEUlRGYWtlRmlsZScsICdzaXplJyA6IDAs
ICd0eXBlJyA6ICcnIH0KQEAgLTExMSw4ICsxMDYsMjggQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAg
ICAgXSk7CiAKICAgICB0ZXN0T3JkZXJlZERyYWdnaW5nV2l0aERpcmVjdG9yeSgpOworCisgICAg
ZGVidWcoIkRyYWdnaW5nIHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250cm9sOiIpOworICAg
IGZpbGVJbnB1dC5kaXNhYmxlZCA9IHRydWU7CisgICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIFNpbmNlIHRoZSBkcm9wIHRyaWdnZXJlZCBhIG5hdmln
YXRpb24sIHZlcmlmeSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZmlsZSBpbnB1dCBoZXJlLgorICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVJbnB1dC52YWx1ZSIsICIiKTsKKyAgICAg
ICAgZmlsZXNTaG91bGRCZShbXSk7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgic3VjY2Vzc2Z1bGx5
UGFyc2VkIik7CisgICAgICAgIGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBD
T01QTEVURTwvc3Bhbj4nKTsKKworICAgICAgICAvLyBDbGVhbiB1cCBhZnRlciBvdXJzZWx2ZXMK
KyAgICAgICAgZmlsZUlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZmlsZUlucHV0KTsKKwor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfTsKKyAgICBk
cmFnZ2luZ1BhdGhzU2hvdWxkUmVzdWx0SW5GaWxlcyhbJ0RSVEZha2VGaWxlJ10sIFtdKTsKKyAg
ICB3aW5kb3cub25iZWZ1cmV1bmxvYWQgPSBudWxsOworICAgIHRlc3RGYWlsZWQoIlRoZSBmaW5h
bCB0ZXN0IGNhc2Ugc2hvdWxkIGhhdmUgcmVzdWx0ZWQgaW4gbmF2aWdhdGlvbiIpOwogfQogCit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKwogaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
ewogICAgIHJ1blRlc3QoKTsKICAgICAvLyBDbGVhbiB1cCBhZnRlciBvdXJzZWx2ZXMKQEAgLTEy
MCw2ICsxMzUsMyBAQCBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiB9IGVsc2UgewogICAgIHRl
c3RGYWlsZWQoIlRoaXMgdGVzdCBpcyBub3QgaW50ZXJhY3RpdmUsIHBsZWFzZSBydW4gdXNpbmcg
RHVtcFJlbmRlclRyZWUiKTsKIH0KLQotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL3Nj
cmlwdC10ZXN0cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNz
LmpzCmluZGV4IDYxOTdiNDRiOWM0YTZjYTg5MmQzM2NmZTAzZWE3MTg0MzkyMjRmMGMuLjRiNjM2
OGQ0NjMyMTZiMTQxNDI2MjEyODlhYWFjMThjZGZmMDA3ZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQt
ZmlsZS1hY2Nlc3MuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlw
Ym9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcwpAQCAtNDMsNiArNDMs
MTMgQEAgZHJhZ1RhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgZnVuY3Rpb24oKSB7CiAg
ICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKIH0sIGZhbHNlKTsKIAorLy8gU29tZSB0ZXN0cyBk
b24ndCBlbmQgdXAgZHJvcHBpbmcgdGhlIGRyYWdnZWUgb3ZlciB0aGUgZHJhZyB0YXJnZXQuIENh
dGNoIGFueQorLy8gbGVmdG92ZXIgZHJvcCBldmVudHMgYnViYmxpbmcgdXAgdGhyb3VnaCB0aGUg
dHJlZSBzbyB0aGV5IGRvbid0IGNhdXNlIHBhZ2UKKy8vIG5hdmlnYXRpb24uCitkb2N1bWVudC5i
b2R5LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZnVuY3Rpb24oKSB7CisgICAgZXZlbnQu
cHJldmVudERlZmF1bHQoKTsKK30pOworCiBmdW5jdGlvbiBtb3ZlTW91c2VUb0NlbnRlck9mRWxl
bWVudChlbGVtZW50KSB7CiAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBl
bGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0
VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMTg3YzRiNmQ1OTY2MmE4NDBiZjFmYTQ1
OTcyNGI3MTU4YTZhMmEwLi5iM2E5OGNmMDNmMGQ5YjJlODBlMzZiZjFmNmFmMDYyYTg5Yjc1Mzk0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDEwLTA1LTE0ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IERyYWdEYXRhOjphc1VSTCgpIHNob3VsZG4ndCBkbyBmaWxlIHZhbGlkaXR5IGNoZWNrcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg3MTEKKworICAg
ICAgICBUaGVyZSdzIG5vIHBvaW50IHRvIHRyeWluZyB0byBtYWtlIHN1cmUgdGhlIGZpbGUgaXMg
dmFsaWQgaW4KKyAgICAgICAgRHJhZ0RhdGE6OmFzVVJMKCkuIEl0J3MgYmV0dGVyIHRvIGFzayBm
b3IgZm9yZ2l2ZW5lc3MgdGhhbiB0byBhc2sgZm9yCisgICAgICAgIHBlcm1pc3Npb24sIHNpbmNl
IGFza2luZyBmb3IgcGVybWlzc2lvbiBpcyBwcm9uZSB0byByYWNlIGNvbmRpdGlvbnMKKyAgICAg
ICAgYW5kIHJlc3VsdHMgaW4gdW5uZWNlc3NhcnkgSS9PLiAgQ29uc3VtZXJzIG9mIHRoaXMgZnVu
Y3Rpb24gZWl0aGVyOgorICAgICAgICAtIG5lZWQgdG8gdmVyaWZ5IHRoZSBmaWxlIGV4aXN0cyB0
aGVtc2VsdmVzIChlLmcuIHRoZSBsb2FkZXIpCisgICAgICAgIC0gZG9uJ3QgY2FyZSBhYm91dCBm
aWxlIHZhbGlkaXR5IChyaWNoIHRleHQgZHJhZy1hbmQtZHJvcCkKKworICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0RhdGE6OmFzVVJMKToKKwogMjAxMC0wNS0xMSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAKaW5kZXggOGZiNDBkZTdjYWMx
NjY0YzA5YzE1MTRkMDdkMmY5ZTU5Yzg1ZGY2Ny4uNjFmNTkzOGNkYTM1MTBjYmMyZDIzMDViNjBm
Zjk1ZWY3ZDk1NzUwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFn
RGF0YUNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRh
Q2hyb21pdW0uY3BwCkBAIC02NiwxMSArNjYsMTEgQEAgU3RyaW5nIERyYWdEYXRhOjphc1VSTChT
dHJpbmcqIHRpdGxlKSBjb25zdAogICAgIFN0cmluZyB1cmw7CiAgICAgaWYgKG1fcGxhdGZvcm1E
cmFnRGF0YS0+aGFzVmFsaWRVUkwoKSkKICAgICAgICAgdXJsID0gbV9wbGF0Zm9ybURyYWdEYXRh
LT5nZXRVUkwoKS5zdHJpbmcoKTsKLSAgICBlbHNlIGlmIChtX3BsYXRmb3JtRHJhZ0RhdGEtPmZp
bGVuYW1lcy5zaXplKCkgPT0gMSkgeworICAgIGVsc2UgaWYgKCFtX3BsYXRmb3JtRHJhZ0RhdGEt
PmZpbGVuYW1lcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU3RyaW5nIGZpbGVOYW1lID0gbV9wbGF0
Zm9ybURyYWdEYXRhLT5maWxlbmFtZXNbMF07CiAgICAgICAgIGZpbGVOYW1lID0gQ2hyb21pdW1C
cmlkZ2U6OmdldEFic29sdXRlUGF0aChmaWxlTmFtZSk7Ci0gICAgICAgIGlmIChmaWxlRXhpc3Rz
KGZpbGVOYW1lKSAmJiAhQ2hyb21pdW1CcmlkZ2U6OmlzRGlyZWN0b3J5KGZpbGVOYW1lKSkKLSAg
ICAgICAgICAgIHVybCA9IENocm9taXVtQnJpZGdlOjpmaWxlUGF0aFRvVVJMKGZpbGVOYW1lKS5z
dHJpbmcoKTsKKyAgICAgICAgLy8gVGhlIGxvYWRlciB3aWxsIGRvIHRoZSByaWdodCB0aGluZyBp
ZiB0aGUgZmlsZW5hbWUgaXMgaW52YWxpZCBmb3Igb25lIHJlYXNvbiBvciBhbm90aGVyLgorICAg
ICAgICB1cmwgPSBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTChmaWxlTmFtZSkuc3RyaW5n
KCk7CiAgICAgfQogIAogICAgIC8vIHx0aXRsZXwgY2FuIGJlIE5VTEwKZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZDhmZTUxYzky
ZTNhNWE3NmFjMzgzZTgxYjllYmNkYzA3OTYzMmNiNC4uZTkzOTA4YjUzOWQ3ZTdkZDZjZjQ2MjEy
Y2NhYzFiYThhMzQwYWJmMyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNS0xNCAgRGFuaWVs
IENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcmFnRGF0YTo6YXNVUkwoKSBzaG91bGRuJ3QgZG8gZmls
ZSB2YWxpZGl0eSBjaGVja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM4NzExCisKKyAgICAgICAgQ2hhbmdlIFtOU1Bhc3RlYm9hcmQgX3dlYl9iZXN0
VVJMXSB0byBzdGlsbCByZXR1cm4gYSBmaWxlIFVSTCBmb3IgcGF0aHMKKyAgICAgICAgdGhhdCBk
b24ndCBleGlzdC4gQ2FsbGVycyB3aG8gY2FyZSBhYm91dCB0aGUgZXhpc3RlbmNlIG9mIHRoZSBm
aWxlIG9yCisgICAgICAgIHdoZXRoZXIgb3Igbm90IGl0IGlzIGEgZGlyZWN0b3J5IHNob3VsZCBj
aGVjayB0aGVtc2VsdmVzIHdoZW4gdGhleQorICAgICAgICB3YW50IHRvIHVzZSB0aGUgZmlsZS4g
VGhlIGRpcmVjdG9yeSBjaGVjayBoYXMgYmVlbiBsZWZ0IGluIGZvciBub3csCisgICAgICAgIHNp
bmNlIHRoZSBNYWMgaW1wbGVtZW50YXRpb24gb2YgUmVzb3VyY2VIYW5kbGUsIHdoaWNoIHVzZXMg
dGhpcyBmdW5jdGlvbgorICAgICAgICBpbmRpcmVjdGx5IHZpYSBEcmFnQ29udHJvbGxlcjo6cGVy
Zm9ybURyYWcpIGhhbmRsZXMgZGlyZWN0b3JpZXMgc29tZXdoYXQKKyAgICAgICAgbm9uLWludHVp
dGl2ZWx5OiBpdCBvcGVucyB0aGUgcGFyZW50IGRpcmVjdG9yeSBpbiB0aGUgRmluZGVyLCByYXRo
ZXIKKyAgICAgICAgdGhhbiBvcGVuaW5nIHRoZSBkaXJlY3RvcnkgaXRzZWxmLgorCisgICAgICAg
ICogTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW06CisgICAgICAgICgtW05TUGFzdGVib2Fy
ZCBfd2ViX2Jlc3RVUkxdKToKKwogMjAxMC0wNS0xMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRp
ZmYgLS1naXQgYS9XZWJLaXQvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tIGIvV2Vi
S2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQppbmRleCA4Y2ViZWI2YmZhZjYy
YzU0NjljYWFlMjdiZDEwM2YzY2NiNjgzOTljLi5hYjNiYWY3OGFmNzE2YmRlODE0NjZmYTMxYzc3
ZDg1NTRmMzUzNjEwIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJk
RXh0cmFzLm1tCisrKyBiL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0K
QEAgLTE0MSwxMiArMTQxLDE3IEBAIHN0YXRpYyBOU0FycmF5ICpfd3JpdGFibGVUeXBlc0Zvcklt
YWdlV2l0aEFyY2hpdmUgKHZvaWQpCiAKICAgICBpZiAoW3R5cGVzIGNvbnRhaW5zT2JqZWN0Ok5T
RmlsZW5hbWVzUGJvYXJkVHlwZV0pIHsKICAgICAgICAgTlNBcnJheSAqZmlsZXMgPSBbc2VsZiBw
cm9wZXJ0eUxpc3RGb3JUeXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV07CisgICAgICAgIC8vIEZJ
WE1FOiBNYXliZSBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGFsbG93IG11bHRpcGxlIGZpbGVzIGFu
ZCBvbmx5IHVzZSB0aGUgZmlyc3Qgb25lPwogICAgICAgICBpZiAoW2ZpbGVzIGNvdW50XSA9PSAx
KSB7CiAgICAgICAgICAgICBOU1N0cmluZyAqZmlsZSA9IFtmaWxlcyBvYmplY3RBdEluZGV4OjBd
OworICAgICAgICAgICAgLy8gRklYTUU6IFdlIGFyZSBmaWx0ZXJpbmcgb3V0IGRpcmVjdG9yaWVz
IGJlY2F1c2UgdGhhdCdzIHdoYXQgdGhlIG9yaWdpbmFsIGNvZGUgdXNlZCB0bworICAgICAgICAg
ICAgLy8gZG8uIFdpdGhvdXQgdGhpcyBjaGVjaywgaWYgdGhlIFVSTCBwb2ludHMgdG8gYSBsb2Nh
bCBkaXJlY3RvcnksIFNhZmFyaSB3aWxsIG9wZW4gdGhlCisgICAgICAgICAgICAvLyBwYXJlbnQg
ZGlyZWN0b3J5IG9mIHRoZSBkaXJlY3RvcnkgaW4gRmluZGVyLiBUaGlzIGNoZWNrIHNob3VsZCBn
byBhd2F5IGFzIHNvb24gYXMKKyAgICAgICAgICAgIC8vIHBvc3NpYmxlLgogICAgICAgICAgICAg
Qk9PTCBpc0RpcmVjdG9yeTsKLSAgICAgICAgICAgIGlmKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0
TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpmaWxlIGlzRGlyZWN0b3J5OiZpc0RpcmVjdG9yeV0g
JiYgIWlzRGlyZWN0b3J5KXsKLSAgICAgICAgICAgICAgICByZXR1cm4gW1tOU1VSTCBmaWxlVVJM
V2l0aFBhdGg6ZmlsZV0gX3dlYmtpdF9jYW5vbmljYWxpemVdOwotICAgICAgICAgICAgfQorICAg
ICAgICAgICAgaWYgKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0
UGF0aDpmaWxlIGlzRGlyZWN0b3J5OiZpc0RpcmVjdG9yeV0gJiYgaXNEaXJlY3RvcnkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAgICAgICAgIHJldHVybiBbW05TVVJMIGZpbGVV
UkxXaXRoUGF0aDpmaWxlXSBfd2Via2l0X2Nhbm9uaWNhbGl6ZV07CiAgICAgICAgIH0KICAgICB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56325</attachid>
            <date>2010-05-17 23:12:20 -0700</date>
            <delta_ts>2010-05-17 23:24:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38711-20100517231219.patch</filename>
            <type>text/plain</type>
            <size>10364</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZThmMDg3YmMwMDk1NWM0YjY2ZTk1YTI2ZWUyZDIzMTliMjY1YWIyLi45YWZlZTQ0
NTE1ODlkNDY0MWY0OGUxYzE2YTllNmE5Njg5NmZkYzg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMDUtMTQgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisg
ICAgICAgIFNldmVyYWwgbGF5b3V0IHRlc3RzIGRlcGVuZGVkIG9uIHRoZSBmYWN0IHRoYXQgZHJv
cHBpbmcgYSBmaWxlIHdvdWxkCisgICAgICAgIG5ldmVyIHRyaWdnZXIgbmF2aWdhdGlvbi4gVGhp
cyBuZXZlciBoYXBwZW5lZCB0byBvY2N1ciBpbiB0aGUgcGFzdCwKKyAgICAgICAgc2luY2UgaXQg
anVzdCBzbyBoYXBwZW5lZCB0aGF0IHRoZSBmaWxlbmFtZXMgdXNlZCBpbiB0aGUgdGVzdHMgbmV2
ZXIKKyAgICAgICAgcmVzb2x2ZWQgdG8gZmlsZXMgdGhhdCBleGlzdC4gU2luY2UgRHJhZ0RhdGE6
OmFzVVJMKCkgbm8gbG9uZ2VyIHRyaWVzCisgICAgICAgIHRvIHZlcmlmeSBmaWxlIGV4aXN0ZW5j
ZSwgdGhlIGxheW91dCB0ZXN0cyB3ZXJlIHVwZGF0ZWQgdG8gZWl0aGVyCisgICAgICAgIHN1cHBy
ZXNzIG5hdmlnYXRpb24gb3IgbG9nIGFueSBuYXZpZ2F0aW9uIHRoYXQgc2hvdWxkIG9jY3VyIGFz
IHBhcnQgb2YKKyAgICAgICAgdGhlIHRlc3QuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9h
cmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRp
bmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanM6Cisg
ICAgICAgIChydW5UZXN0LndpbmRvdy5vbmJlZm9yZXVubG9hZCk6CisgICAgICAgIChydW5UZXN0
KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMv
Y2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzOgorCiAyMDEwLTA1LTExICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFq
aS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0
LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0CmluZGV4IGJiY2ZmYzc1YjNj
MDhmNThiYzllMWMzNmUwMTJiMWM2MjE4ODEzNWEuLmUzOTQxMDE1N2QwMzNjNDUxY2QyMzBjNDkw
MThiMmUwNTU5ZjFjNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVjdGVkLnR4dApA
QCAtMyw5ICszLDYgQEAgVGVzdHMgZm9yIG11bHRpLWZpbGUgZHJhZyBvbnRvIGZpbGUgaW5wdXQg
ZWxlbWVudHMgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3MKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCi1EcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoK
LVBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCi1QQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5ndGgg
aXMgMAogRHJhZ2dpbmcgYSBzaW5nbGUgKG5vbi1leGlzdGFudCkgZmlsZSB0byBhIGZpbGUgaW5w
dXQgY29udHJvbDoKIFBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICJEUlRGYWtlRmlsZSIKIFBBU1Mg
ZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBpcyAxCkBAIC01Niw2ICs1Myw5IEBAIEZJWE1FOiAgZWxl
bWVudHMgc2hvdWxkIHJlZnVzZSBkcmFncyBpbmNsdWRpbmcgZGlyZWN0b3JpZXM6IGh0dHBzOi8v
YnVncy53ZWJraXQuCiBEcmFnZ2luZyBhIGRpcmVjdG9yeSBhbmQgYSBmaWxlIG9udG8gYSBtdXRs
aS1maWxlIGlucHV0IGNvbnRyb2w6CiBGQUlMIGZpbGVJbnB1dC52YWx1ZSBzaG91bGQgYmUgLiBX
YXMgZGlyZWN0b3J5LWZvci1kcmFnZ2luZy4KIEZBSUwgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBz
aG91bGQgYmUgMC4gV2FzIDIuCitEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29u
dHJvbDoKK1BBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCitQQVNTIGZpbGVJbnB1dC5maWxlcy5s
ZW5ndGggaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRl
c3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcwppbmRleCBkMTdm
ODk3YTk1ZTU2OWYyZWVlMTkxZWM5YjU2NDk2MzZiNjg5N2Q0Li5kMDY3N2UxZWY2ZjYwNGUxOTdj
MGFlNzVlMTk4NzQ1MzgwZjA0NzgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxl
cy1hY2Nlc3MuanMKQEAgLTc0LDExICs3NCw2IEBAIGZ1bmN0aW9uIHRlc3RPcmRlcmVkRHJhZ2dp
bmdXaXRoRGlyZWN0b3J5KCkKIAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgZGVidWcoIkRy
YWdnaW5nIHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250cm9sOiIpOwotICAgIGZpbGVJbnB1
dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAgZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMo
WydEUlRGYWtlRmlsZSddLCBbXSkKLSAgICBmaWxlSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsKLQog
ICAgIGRlYnVnKCJEcmFnZ2luZyBhIHNpbmdsZSAobm9uLWV4aXN0YW50KSBmaWxlIHRvIGEgZmls
ZSBpbnB1dCBjb250cm9sOiIpOwogICAgIHRlc3REcmFnZ2luZ0ZpbGVzKFsKICAgICAgICAgeyAn
cGF0aCc6ICdEUlRGYWtlRmlsZScsICduYW1lJyA6ICdEUlRGYWtlRmlsZScsICdzaXplJyA6IDAs
ICd0eXBlJyA6ICcnIH0KQEAgLTExMSwxNSArMTA2LDMxIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQog
ICAgIF0pOwogCiAgICAgdGVzdE9yZGVyZWREcmFnZ2luZ1dpdGhEaXJlY3RvcnkoKTsKKworICAg
IGRlYnVnKCJEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoiKTsKKyAg
ICBmaWxlSW5wdXQuZGlzYWJsZWQgPSB0cnVlOworICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9
IGZ1bmN0aW9uKCkgeworICAgICAgICAvLyBTaW5jZSB0aGUgZHJvcCB0cmlnZ2VyZWQgYSBuYXZp
Z2F0aW9uLCB2ZXJpZnkgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGZpbGUgaW5wdXQgaGVyZS4KKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmaWxlSW5wdXQudmFsdWUiLCAiIik7CisgICAg
ICAgIGZpbGVzU2hvdWxkQmUoW10pOworICAgICAgICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxs
eVBhcnNlZCIpOworICAgICAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1Qg
Q09NUExFVEU8L3NwYW4+Jyk7CisKKyAgICAgICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVz
CisgICAgICAgIGlmIChmaWxlSW5wdXQucGFyZW50Tm9kZSkKKyAgICAgICAgICAgIGZpbGVJbnB1
dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZpbGVJbnB1dCk7CisKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH07CisgICAgZHJhZ2dpbmdQYXRoc1Nob3Vs
ZFJlc3VsdEluRmlsZXMoWydEUlRGYWtlRmlsZSddLCBbXSk7CisgICAgd2luZG93Lm9uYmVmdXJl
dW5sb2FkID0gbnVsbDsKKyAgICB0ZXN0RmFpbGVkKCJUaGUgZmluYWwgdGVzdCBjYXNlIHNob3Vs
ZCBoYXZlIHJlc3VsdGVkIGluIG5hdmlnYXRpb24iKTsKIH0KIAordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisKIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKICAgICBydW5UZXN0KCk7
Ci0gICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVzCi0gICAgZmlsZUlucHV0LnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQoZmlsZUlucHV0KTsKIH0gZWxzZSB7CiAgICAgdGVzdEZhaWxlZCgiVGhp
cyB0ZXN0IGlzIG5vdCBpbnRlcmFjdGl2ZSwgcGxlYXNlIHJ1biB1c2luZyBEdW1wUmVuZGVyVHJl
ZSIpOwogfQotCi0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3RzL2Ns
aXBib2FyZC1maWxlLWFjY2Vzcy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuanMKaW5kZXggNjE5
N2I0NGI5YzRhNmNhODkyZDMzY2ZlMDNlYTcxODQzOTIyNGYwYy4uNGI2MzY4ZDQ2MzIxNmIxNDE0
MjYyMTI4OWFhYWMxOGNkZmYwMDdkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5q
cworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQt
dGVzdHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzCkBAIC00Myw2ICs0MywxMyBAQCBkcmFnVGFy
Z2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5jdGlvbigpIHsKICAgICBldmVudC5wcmV2
ZW50RGVmYXVsdCgpOwogfSwgZmFsc2UpOwogCisvLyBTb21lIHRlc3RzIGRvbid0IGVuZCB1cCBk
cm9wcGluZyB0aGUgZHJhZ2dlZSBvdmVyIHRoZSBkcmFnIHRhcmdldC4gQ2F0Y2ggYW55CisvLyBs
ZWZ0b3ZlciBkcm9wIGV2ZW50cyBidWJibGluZyB1cCB0aHJvdWdoIHRoZSB0cmVlIHNvIHRoZXkg
ZG9uJ3QgY2F1c2UgcGFnZQorLy8gbmF2aWdhdGlvbi4KK2RvY3VtZW50LmJvZHkuYWRkRXZlbnRM
aXN0ZW5lcigiZHJhZ292ZXIiLCBmdW5jdGlvbigpIHsKKyAgICBldmVudC5wcmV2ZW50RGVmYXVs
dCgpOworfSk7CisKIGZ1bmN0aW9uIG1vdmVNb3VzZVRvQ2VudGVyT2ZFbGVtZW50KGVsZW1lbnQp
IHsKICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0
V2lkdGggLyAyOwogICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50
Lm9mZnNldEhlaWdodCAvIDI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDMxODdjNGI2ZDU5NjYyYTg0MGJmMWZhNDU5NzI0YjcxNThhNmEy
YTAuLmIzYTk4Y2YwM2YwZDliMmU4MGUzNmJmMWY2YWYwNjJhODliNzUzOTQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTAtMDUtMTQgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJhZ0RhdGE6OmFz
VVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisgICAgICAgIFRoZXJlJ3Mg
bm8gcG9pbnQgdG8gdHJ5aW5nIHRvIG1ha2Ugc3VyZSB0aGUgZmlsZSBpcyB2YWxpZCBpbgorICAg
ICAgICBEcmFnRGF0YTo6YXNVUkwoKS4gSXQncyBiZXR0ZXIgdG8gYXNrIGZvciBmb3JnaXZlbmVz
cyB0aGFuIHRvIGFzayBmb3IKKyAgICAgICAgcGVybWlzc2lvbiwgc2luY2UgYXNraW5nIGZvciBw
ZXJtaXNzaW9uIGlzIHByb25lIHRvIHJhY2UgY29uZGl0aW9ucworICAgICAgICBhbmQgcmVzdWx0
cyBpbiB1bm5lY2Vzc2FyeSBJL08uICBDb25zdW1lcnMgb2YgdGhpcyBmdW5jdGlvbiBlaXRoZXI6
CisgICAgICAgIC0gbmVlZCB0byB2ZXJpZnkgdGhlIGZpbGUgZXhpc3RzIHRoZW1zZWx2ZXMgKGUu
Zy4gdGhlIGxvYWRlcikKKyAgICAgICAgLSBkb24ndCBjYXJlIGFib3V0IGZpbGUgdmFsaWRpdHkg
KHJpY2ggdGV4dCBkcmFnLWFuZC1kcm9wKQorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
RHJhZ0RhdGFDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6YXNVUkwp
OgorCiAyMDEwLTA1LTExICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAppbmRleCA4ZmI0MGRlN2NhYzE2NjRjMDljMTUxNGQw
N2QyZjllNTljODVkZjY3Li42MWY1OTM4Y2RhMzUxMGNiYzJkMjMwNWI2MGZmOTVlZjdkOTU3NTA2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0u
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAK
QEAgLTY2LDExICs2NiwxMSBAQCBTdHJpbmcgRHJhZ0RhdGE6OmFzVVJMKFN0cmluZyogdGl0bGUp
IGNvbnN0CiAgICAgU3RyaW5nIHVybDsKICAgICBpZiAobV9wbGF0Zm9ybURyYWdEYXRhLT5oYXNW
YWxpZFVSTCgpKQogICAgICAgICB1cmwgPSBtX3BsYXRmb3JtRHJhZ0RhdGEtPmdldFVSTCgpLnN0
cmluZygpOwotICAgIGVsc2UgaWYgKG1fcGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5hbWVzLnNpemUo
KSA9PSAxKSB7CisgICAgZWxzZSBpZiAoIW1fcGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5hbWVzLmlz
RW1wdHkoKSkgewogICAgICAgICBTdHJpbmcgZmlsZU5hbWUgPSBtX3BsYXRmb3JtRHJhZ0RhdGEt
PmZpbGVuYW1lc1swXTsKICAgICAgICAgZmlsZU5hbWUgPSBDaHJvbWl1bUJyaWRnZTo6Z2V0QWJz
b2x1dGVQYXRoKGZpbGVOYW1lKTsKLSAgICAgICAgaWYgKGZpbGVFeGlzdHMoZmlsZU5hbWUpICYm
ICFDaHJvbWl1bUJyaWRnZTo6aXNEaXJlY3RvcnkoZmlsZU5hbWUpKQotICAgICAgICAgICAgdXJs
ID0gQ2hyb21pdW1CcmlkZ2U6OmZpbGVQYXRoVG9VUkwoZmlsZU5hbWUpLnN0cmluZygpOworICAg
ICAgICAvLyBUaGUgbG9hZGVyIHdpbGwgZG8gdGhlIHJpZ2h0IHRoaW5nIGlmIHRoZSBmaWxlbmFt
ZSBpcyBpbnZhbGlkIGZvciBvbmUgcmVhc29uIG9yIGFub3RoZXIuCisgICAgICAgIHVybCA9IENo
cm9taXVtQnJpZGdlOjpmaWxlUGF0aFRvVVJMKGZpbGVOYW1lKS5zdHJpbmcoKTsKICAgICB9CiAg
CiAgICAgLy8gfHRpdGxlfCBjYW4gYmUgTlVMTApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFu
Z2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBkOGZlNTFjOTJlM2E1YTc2YWMzODNl
ODFiOWViY2RjMDc5NjMyY2I0Li5lOTM5MDhiNTM5ZDdlN2RkNmNmNDYyMTJjY2FjMWJhOGEzNDBh
YmYzIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEwLTA1LTE0ICBEYW5pZWwgQ2hlbmcgIDxkY2hl
bmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERyYWdEYXRhOjphc1VSTCgpIHNob3VsZG4ndCBkbyBmaWxlIHZhbGlkaXR5IGNo
ZWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg3
MTEKKworICAgICAgICBDaGFuZ2UgW05TUGFzdGVib2FyZCBfd2ViX2Jlc3RVUkxdIHRvIHN0aWxs
IHJldHVybiBhIGZpbGUgVVJMIGZvciBwYXRocworICAgICAgICB0aGF0IGRvbid0IGV4aXN0LiBD
YWxsZXJzIHdobyBjYXJlIGFib3V0IHRoZSBleGlzdGVuY2Ugb2YgdGhlIGZpbGUgb3IKKyAgICAg
ICAgd2hldGhlciBvciBub3QgaXQgaXMgYSBkaXJlY3Rvcnkgc2hvdWxkIGNoZWNrIHRoZW1zZWx2
ZXMgd2hlbiB0aGV5CisgICAgICAgIHdhbnQgdG8gdXNlIHRoZSBmaWxlLiBUaGUgZGlyZWN0b3J5
IGNoZWNrIGhhcyBiZWVuIGxlZnQgaW4gZm9yIG5vdywKKyAgICAgICAgc2luY2UgdGhlIE1hYyBp
bXBsZW1lbnRhdGlvbiBvZiBSZXNvdXJjZUhhbmRsZSwgd2hpY2ggdXNlcyB0aGlzIGZ1bmN0aW9u
CisgICAgICAgIGluZGlyZWN0bHkgdmlhIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZykgaGFu
ZGxlcyBkaXJlY3RvcmllcyBzb21ld2hhdAorICAgICAgICBub24taW50dWl0aXZlbHk6IGl0IG9w
ZW5zIHRoZSBwYXJlbnQgZGlyZWN0b3J5IGluIHRoZSBGaW5kZXIsIHJhdGhlcgorICAgICAgICB0
aGFuIG9wZW5pbmcgdGhlIGRpcmVjdG9yeSBpdHNlbGYuCisKKyAgICAgICAgKiBNaXNjL1dlYk5T
UGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNQYXN0ZWJvYXJkIF93ZWJfYmVzdFVS
TF0pOgorCiAyMDEwLTA1LTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0gYi9XZWJLaXQvbWFjL01pc2Mv
V2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tCmluZGV4IDhjZWJlYjZiZmFmNjJjNTQ2OWNhYWUyN2Jk
MTAzZjNjY2I2ODM5OWMuLmFiM2JhZjc4YWY3MTZiZGU4MTQ2NmZhMzFjNzdkODU1NGYzNTM2MTAg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KKysr
IGIvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpAQCAtMTQxLDEyICsx
NDEsMTcgQEAgc3RhdGljIE5TQXJyYXkgKl93cml0YWJsZVR5cGVzRm9ySW1hZ2VXaXRoQXJjaGl2
ZSAodm9pZCkKIAogICAgIGlmIChbdHlwZXMgY29udGFpbnNPYmplY3Q6TlNGaWxlbmFtZXNQYm9h
cmRUeXBlXSkgewogICAgICAgICBOU0FycmF5ICpmaWxlcyA9IFtzZWxmIHByb3BlcnR5TGlzdEZv
clR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKKyAgICAgICAgLy8gRklYTUU6IE1heWJlIGl0
IG1ha2VzIG1vcmUgc2Vuc2UgdG8gYWxsb3cgbXVsdGlwbGUgZmlsZXMgYW5kIG9ubHkgdXNlIHRo
ZSBmaXJzdCBvbmU/CiAgICAgICAgIGlmIChbZmlsZXMgY291bnRdID09IDEpIHsKICAgICAgICAg
ICAgIE5TU3RyaW5nICpmaWxlID0gW2ZpbGVzIG9iamVjdEF0SW5kZXg6MF07CisgICAgICAgICAg
ICAvLyBGSVhNRTogV2UgYXJlIGZpbHRlcmluZyBvdXQgZGlyZWN0b3JpZXMgYmVjYXVzZSB0aGF0
J3Mgd2hhdCB0aGUgb3JpZ2luYWwgY29kZSB1c2VkIHRvCisgICAgICAgICAgICAvLyBkby4gV2l0
aG91dCB0aGlzIGNoZWNrLCBpZiB0aGUgVVJMIHBvaW50cyB0byBhIGxvY2FsIGRpcmVjdG9yeSwg
U2FmYXJpIHdpbGwgb3BlbiB0aGUKKyAgICAgICAgICAgIC8vIHBhcmVudCBkaXJlY3Rvcnkgb2Yg
dGhlIGRpcmVjdG9yeSBpbiBGaW5kZXIuIFRoaXMgY2hlY2sgc2hvdWxkIGdvIGF3YXkgYXMgc29v
biBhcworICAgICAgICAgICAgLy8gcG9zc2libGUuCiAgICAgICAgICAgICBCT09MIGlzRGlyZWN0
b3J5OwotICAgICAgICAgICAgaWYoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxl
RXhpc3RzQXRQYXRoOmZpbGUgaXNEaXJlY3Rvcnk6JmlzRGlyZWN0b3J5XSAmJiAhaXNEaXJlY3Rv
cnkpewotICAgICAgICAgICAgICAgIHJldHVybiBbW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpmaWxl
XSBfd2Via2l0X2Nhbm9uaWNhbGl6ZV07Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAo
W1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGUgaXNE
aXJlY3Rvcnk6JmlzRGlyZWN0b3J5XSAmJiBpc0RpcmVjdG9yeSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbmlsOworICAgICAgICAgICAgcmV0dXJuIFtbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOmZp
bGVdIF93ZWJraXRfY2Fub25pY2FsaXplXTsKICAgICAgICAgfQogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56326</attachid>
            <date>2010-05-17 23:25:02 -0700</date>
            <delta_ts>2010-05-18 11:48:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38711-20100517232500.patch</filename>
            <type>text/plain</type>
            <size>10331</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZThmMDg3YmMwMDk1NWM0YjY2ZTk1YTI2ZWUyZDIzMTliMjY1YWIyLi4wYmZkZWU1
YTY4MGQ2NWU3YWI4OWYyZmQwZmFhYmEyYjE3Y2M3MzkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMDUtMTcgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisg
ICAgICAgIFNldmVyYWwgbGF5b3V0IHRlc3RzIGRlcGVuZGVkIG9uIHRoZSBmYWN0IHRoYXQgZHJv
cHBpbmcgYSBmaWxlIHdvdWxkCisgICAgICAgIG5ldmVyIHRyaWdnZXIgbmF2aWdhdGlvbi4gVGhp
cyBuZXZlciBoYXBwZW5lZCB0byBvY2N1ciBpbiB0aGUgcGFzdCwKKyAgICAgICAgc2luY2UgaXQg
anVzdCBzbyBoYXBwZW5lZCB0aGF0IHRoZSBmaWxlbmFtZXMgdXNlZCBpbiB0aGUgdGVzdHMgbmV2
ZXIKKyAgICAgICAgcmVzb2x2ZWQgdG8gZmlsZXMgdGhhdCBleGlzdC4gU2luY2UgRHJhZ0RhdGE6
OmFzVVJMKCkgbm8gbG9uZ2VyIHRyaWVzCisgICAgICAgIHRvIHZlcmlmeSBmaWxlIGV4aXN0ZW5j
ZSwgdGhlIGxheW91dCB0ZXN0cyB3ZXJlIHVwZGF0ZWQgdG8gZWl0aGVyCisgICAgICAgIHN1cHBy
ZXNzIG5hdmlnYXRpb24gb3IgbG9nIGFueSBuYXZpZ2F0aW9uIHRoYXQgc2hvdWxkIG9jY3VyIGFz
IHBhcnQgb2YKKyAgICAgICAgdGhlIHRlc3QuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9h
cmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRp
bmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanM6Cisg
ICAgICAgIChydW5UZXN0LndpbmRvdy5vbmJlZm9yZXVubG9hZCk6CisgICAgICAgIChydW5UZXN0
KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMv
Y2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzOgorCiAyMDEwLTA1LTExICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFq
aS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0
LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0CmluZGV4IGJiY2ZmYzc1YjNj
MDhmNThiYzllMWMzNmUwMTJiMWM2MjE4ODEzNWEuLmUzOTQxMDE1N2QwMzNjNDUxY2QyMzBjNDkw
MThiMmUwNTU5ZjFjNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVjdGVkLnR4dApA
QCAtMyw5ICszLDYgQEAgVGVzdHMgZm9yIG11bHRpLWZpbGUgZHJhZyBvbnRvIGZpbGUgaW5wdXQg
ZWxlbWVudHMgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3MKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCi1EcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoK
LVBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCi1QQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5ndGgg
aXMgMAogRHJhZ2dpbmcgYSBzaW5nbGUgKG5vbi1leGlzdGFudCkgZmlsZSB0byBhIGZpbGUgaW5w
dXQgY29udHJvbDoKIFBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICJEUlRGYWtlRmlsZSIKIFBBU1Mg
ZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBpcyAxCkBAIC01Niw2ICs1Myw5IEBAIEZJWE1FOiAgZWxl
bWVudHMgc2hvdWxkIHJlZnVzZSBkcmFncyBpbmNsdWRpbmcgZGlyZWN0b3JpZXM6IGh0dHBzOi8v
YnVncy53ZWJraXQuCiBEcmFnZ2luZyBhIGRpcmVjdG9yeSBhbmQgYSBmaWxlIG9udG8gYSBtdXRs
aS1maWxlIGlucHV0IGNvbnRyb2w6CiBGQUlMIGZpbGVJbnB1dC52YWx1ZSBzaG91bGQgYmUgLiBX
YXMgZGlyZWN0b3J5LWZvci1kcmFnZ2luZy4KIEZBSUwgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBz
aG91bGQgYmUgMC4gV2FzIDIuCitEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29u
dHJvbDoKK1BBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCitQQVNTIGZpbGVJbnB1dC5maWxlcy5s
ZW5ndGggaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRl
c3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcwppbmRleCBkMTdm
ODk3YTk1ZTU2OWYyZWVlMTkxZWM5YjU2NDk2MzZiNjg5N2Q0Li40ZWQxOGQxN2Q1MzdlMjE0Mjhi
NDg2YzBkYThkNjJlMTNiMWQ2NzIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxl
cy1hY2Nlc3MuanMKQEAgLTc0LDExICs3NCw2IEBAIGZ1bmN0aW9uIHRlc3RPcmRlcmVkRHJhZ2dp
bmdXaXRoRGlyZWN0b3J5KCkKIAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgZGVidWcoIkRy
YWdnaW5nIHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250cm9sOiIpOwotICAgIGZpbGVJbnB1
dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAgZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMo
WydEUlRGYWtlRmlsZSddLCBbXSkKLSAgICBmaWxlSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsKLQog
ICAgIGRlYnVnKCJEcmFnZ2luZyBhIHNpbmdsZSAobm9uLWV4aXN0YW50KSBmaWxlIHRvIGEgZmls
ZSBpbnB1dCBjb250cm9sOiIpOwogICAgIHRlc3REcmFnZ2luZ0ZpbGVzKFsKICAgICAgICAgeyAn
cGF0aCc6ICdEUlRGYWtlRmlsZScsICduYW1lJyA6ICdEUlRGYWtlRmlsZScsICdzaXplJyA6IDAs
ICd0eXBlJyA6ICcnIH0KQEAgLTExMSwxNSArMTA2LDMxIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQog
ICAgIF0pOwogCiAgICAgdGVzdE9yZGVyZWREcmFnZ2luZ1dpdGhEaXJlY3RvcnkoKTsKKworICAg
IGRlYnVnKCJEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoiKTsKKyAg
ICBmaWxlSW5wdXQuZGlzYWJsZWQgPSB0cnVlOworICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9
IGZ1bmN0aW9uKCkgeworICAgICAgICAvLyBTaW5jZSB0aGUgZHJvcCB0cmlnZ2VyZWQgYSBuYXZp
Z2F0aW9uLCB2ZXJpZnkgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGZpbGUgaW5wdXQgaGVyZS4KKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmaWxlSW5wdXQudmFsdWUiLCAiIik7CisgICAg
ICAgIGZpbGVzU2hvdWxkQmUoW10pOworICAgICAgICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxs
eVBhcnNlZCIpOworICAgICAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1Qg
Q09NUExFVEU8L3NwYW4+Jyk7CisKKyAgICAgICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVz
CisgICAgICAgIGZpbGVJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZpbGVJbnB1dCk7CisK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworCisgICAgICAgIHdp
bmRvdy5vbmJlZm9yZXVubG9hZCA9IG51bGw7CisgICAgfTsKKyAgICBkcmFnZ2luZ1BhdGhzU2hv
dWxkUmVzdWx0SW5GaWxlcyhbJ0RSVEZha2VGaWxlJ10sIFtdKTsKKyAgICB0ZXN0RmFpbGVkKCJU
aGUgZmluYWwgdGVzdCBjYXNlIHNob3VsZCBoYXZlIHJlc3VsdGVkIGluIG5hdmlnYXRpb24iKTsK
IH0KIAordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKIGlmICh3aW5kb3cuZXZlbnRT
ZW5kZXIpIHsKICAgICBydW5UZXN0KCk7Ci0gICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVz
Ci0gICAgZmlsZUlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZmlsZUlucHV0KTsKIH0gZWxz
ZSB7CiAgICAgdGVzdEZhaWxlZCgiVGhpcyB0ZXN0IGlzIG5vdCBpbnRlcmFjdGl2ZSwgcGxlYXNl
IHJ1biB1c2luZyBEdW1wUmVuZGVyVHJlZSIpOwogfQotCi0KLXZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
bGlwYm9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQt
ZmlsZS1hY2Nlc3MuanMKaW5kZXggNjE5N2I0NGI5YzRhNmNhODkyZDMzY2ZlMDNlYTcxODQzOTIy
NGYwYy4uNGI2MzY4ZDQ2MzIxNmIxNDE0MjYyMTI4OWFhYWMxOGNkZmYwMDdkMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3Rz
L2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzCkBA
IC00Myw2ICs0MywxMyBAQCBkcmFnVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5j
dGlvbigpIHsKICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogfSwgZmFsc2UpOwogCisvLyBT
b21lIHRlc3RzIGRvbid0IGVuZCB1cCBkcm9wcGluZyB0aGUgZHJhZ2dlZSBvdmVyIHRoZSBkcmFn
IHRhcmdldC4gQ2F0Y2ggYW55CisvLyBsZWZ0b3ZlciBkcm9wIGV2ZW50cyBidWJibGluZyB1cCB0
aHJvdWdoIHRoZSB0cmVlIHNvIHRoZXkgZG9uJ3QgY2F1c2UgcGFnZQorLy8gbmF2aWdhdGlvbi4K
K2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBmdW5jdGlvbigpIHsK
KyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworfSk7CisKIGZ1bmN0aW9uIG1vdmVNb3VzZVRv
Q2VudGVyT2ZFbGVtZW50KGVsZW1lbnQpIHsKICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwogICAgIHZhciBjZW50ZXJZID0gZWxl
bWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMxODdjNGI2ZDU5NjYy
YTg0MGJmMWZhNDU5NzI0YjcxNThhNmEyYTAuLmJjYmM2YmMyMGM1MTNjZmZiOWMyYjU3ZGJiOTRl
NjcwMDdkNzQ4ZmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDUtMTcgIERhbmllbCBDaGVuZyAgPGRj
aGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkg
Y2hlY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
ODcxMQorCisgICAgICAgIFRoZXJlJ3Mgbm8gcG9pbnQgdG8gdHJ5aW5nIHRvIG1ha2Ugc3VyZSB0
aGUgZmlsZSBpcyB2YWxpZCBpbgorICAgICAgICBEcmFnRGF0YTo6YXNVUkwoKS4gSXQncyBiZXR0
ZXIgdG8gYXNrIGZvciBmb3JnaXZlbmVzcyB0aGFuIHRvIGFzayBmb3IKKyAgICAgICAgcGVybWlz
c2lvbiwgc2luY2UgYXNraW5nIGZvciBwZXJtaXNzaW9uIGlzIHByb25lIHRvIHJhY2UgY29uZGl0
aW9ucworICAgICAgICBhbmQgcmVzdWx0cyBpbiB1bm5lY2Vzc2FyeSBJL08uICBDb25zdW1lcnMg
b2YgdGhpcyBmdW5jdGlvbiBlaXRoZXI6CisgICAgICAgIC0gbmVlZCB0byB2ZXJpZnkgdGhlIGZp
bGUgZXhpc3RzIHRoZW1zZWx2ZXMgKGUuZy4gdGhlIGxvYWRlcikKKyAgICAgICAgLSBkb24ndCBj
YXJlIGFib3V0IGZpbGUgdmFsaWRpdHkgKHJpY2ggdGV4dCBkcmFnLWFuZC1kcm9wKQorCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEcmFnRGF0YTo6YXNVUkwpOgorCiAyMDEwLTA1LTExICBYYW4gTG9wZXogIDx4bG9w
ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAppbmRleCA4
ZmI0MGRlN2NhYzE2NjRjMDljMTUxNGQwN2QyZjllNTljODVkZjY3Li42MWY1OTM4Y2RhMzUxMGNi
YzJkMjMwNWI2MGZmOTVlZjdkOTU3NTA2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAKQEAgLTY2LDExICs2NiwxMSBAQCBTdHJpbmcgRHJhZ0Rh
dGE6OmFzVVJMKFN0cmluZyogdGl0bGUpIGNvbnN0CiAgICAgU3RyaW5nIHVybDsKICAgICBpZiAo
bV9wbGF0Zm9ybURyYWdEYXRhLT5oYXNWYWxpZFVSTCgpKQogICAgICAgICB1cmwgPSBtX3BsYXRm
b3JtRHJhZ0RhdGEtPmdldFVSTCgpLnN0cmluZygpOwotICAgIGVsc2UgaWYgKG1fcGxhdGZvcm1E
cmFnRGF0YS0+ZmlsZW5hbWVzLnNpemUoKSA9PSAxKSB7CisgICAgZWxzZSBpZiAoIW1fcGxhdGZv
cm1EcmFnRGF0YS0+ZmlsZW5hbWVzLmlzRW1wdHkoKSkgewogICAgICAgICBTdHJpbmcgZmlsZU5h
bWUgPSBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lc1swXTsKICAgICAgICAgZmlsZU5hbWUg
PSBDaHJvbWl1bUJyaWRnZTo6Z2V0QWJzb2x1dGVQYXRoKGZpbGVOYW1lKTsKLSAgICAgICAgaWYg
KGZpbGVFeGlzdHMoZmlsZU5hbWUpICYmICFDaHJvbWl1bUJyaWRnZTo6aXNEaXJlY3RvcnkoZmls
ZU5hbWUpKQotICAgICAgICAgICAgdXJsID0gQ2hyb21pdW1CcmlkZ2U6OmZpbGVQYXRoVG9VUkwo
ZmlsZU5hbWUpLnN0cmluZygpOworICAgICAgICAvLyBUaGUgbG9hZGVyIHdpbGwgZG8gdGhlIHJp
Z2h0IHRoaW5nIGlmIHRoZSBmaWxlbmFtZSBpcyBpbnZhbGlkIGZvciBvbmUgcmVhc29uIG9yIGFu
b3RoZXIuCisgICAgICAgIHVybCA9IENocm9taXVtQnJpZGdlOjpmaWxlUGF0aFRvVVJMKGZpbGVO
YW1lKS5zdHJpbmcoKTsKICAgICB9CiAgCiAgICAgLy8gfHRpdGxlfCBjYW4gYmUgTlVMTApkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCBkOGZlNTFjOTJlM2E1YTc2YWMzODNlODFiOWViY2RjMDc5NjMyY2I0Li5kNTRhZjY5ZjRiYzJm
ZTE3Y2JkYzgxMDgyZGE4YzA1N2EwYjcxOGQ0IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEwLTA1
LTE3ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyYWdEYXRhOjphc1VSTCgpIHNob3Vs
ZG4ndCBkbyBmaWxlIHZhbGlkaXR5IGNoZWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg3MTEKKworICAgICAgICBDaGFuZ2UgW05TUGFzdGVib2Fy
ZCBfd2ViX2Jlc3RVUkxdIHRvIHN0aWxsIHJldHVybiBhIGZpbGUgVVJMIGZvciBwYXRocworICAg
ICAgICB0aGF0IGRvbid0IGV4aXN0LiBDYWxsZXJzIHdobyBjYXJlIGFib3V0IHRoZSBleGlzdGVu
Y2Ugb2YgdGhlIGZpbGUgb3IKKyAgICAgICAgd2hldGhlciBvciBub3QgaXQgaXMgYSBkaXJlY3Rv
cnkgc2hvdWxkIGNoZWNrIHRoZW1zZWx2ZXMgd2hlbiB0aGV5CisgICAgICAgIHdhbnQgdG8gdXNl
IHRoZSBmaWxlLiBUaGUgZGlyZWN0b3J5IGNoZWNrIGhhcyBiZWVuIGxlZnQgaW4gZm9yIG5vdywK
KyAgICAgICAgc2luY2UgdGhlIE1hYyBpbXBsZW1lbnRhdGlvbiBvZiBSZXNvdXJjZUhhbmRsZSwg
d2hpY2ggdXNlcyB0aGlzIGZ1bmN0aW9uCisgICAgICAgIGluZGlyZWN0bHkgdmlhIERyYWdDb250
cm9sbGVyOjpwZXJmb3JtRHJhZykgaGFuZGxlcyBkaXJlY3RvcmllcyBzb21ld2hhdAorICAgICAg
ICBub24taW50dWl0aXZlbHk6IGl0IG9wZW5zIHRoZSBwYXJlbnQgZGlyZWN0b3J5IGluIHRoZSBG
aW5kZXIsIHJhdGhlcgorICAgICAgICB0aGFuIG9wZW5pbmcgdGhlIGRpcmVjdG9yeSBpdHNlbGYu
CisKKyAgICAgICAgKiBNaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKC1b
TlNQYXN0ZWJvYXJkIF93ZWJfYmVzdFVSTF0pOgorCiAyMDEwLTA1LTEwICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBD
YXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRy
YXMubW0gYi9XZWJLaXQvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tCmluZGV4IDhj
ZWJlYjZiZmFmNjJjNTQ2OWNhYWUyN2JkMTAzZjNjY2I2ODM5OWMuLmFiM2JhZjc4YWY3MTZiZGU4
MTQ2NmZhMzFjNzdkODU1NGYzNTM2MTAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvTWlzYy9XZWJO
U1Bhc3RlYm9hcmRFeHRyYXMubW0KKysrIGIvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2Fy
ZEV4dHJhcy5tbQpAQCAtMTQxLDEyICsxNDEsMTcgQEAgc3RhdGljIE5TQXJyYXkgKl93cml0YWJs
ZVR5cGVzRm9ySW1hZ2VXaXRoQXJjaGl2ZSAodm9pZCkKIAogICAgIGlmIChbdHlwZXMgY29udGFp
bnNPYmplY3Q6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXSkgewogICAgICAgICBOU0FycmF5ICpmaWxl
cyA9IFtzZWxmIHByb3BlcnR5TGlzdEZvclR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKKyAg
ICAgICAgLy8gRklYTUU6IE1heWJlIGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gYWxsb3cgbXVsdGlw
bGUgZmlsZXMgYW5kIG9ubHkgdXNlIHRoZSBmaXJzdCBvbmU/CiAgICAgICAgIGlmIChbZmlsZXMg
Y291bnRdID09IDEpIHsKICAgICAgICAgICAgIE5TU3RyaW5nICpmaWxlID0gW2ZpbGVzIG9iamVj
dEF0SW5kZXg6MF07CisgICAgICAgICAgICAvLyBGSVhNRTogV2UgYXJlIGZpbHRlcmluZyBvdXQg
ZGlyZWN0b3JpZXMgYmVjYXVzZSB0aGF0J3Mgd2hhdCB0aGUgb3JpZ2luYWwgY29kZSB1c2VkIHRv
CisgICAgICAgICAgICAvLyBkby4gV2l0aG91dCB0aGlzIGNoZWNrLCBpZiB0aGUgVVJMIHBvaW50
cyB0byBhIGxvY2FsIGRpcmVjdG9yeSwgU2FmYXJpIHdpbGwgb3BlbiB0aGUKKyAgICAgICAgICAg
IC8vIHBhcmVudCBkaXJlY3Rvcnkgb2YgdGhlIGRpcmVjdG9yeSBpbiBGaW5kZXIuIFRoaXMgY2hl
Y2sgc2hvdWxkIGdvIGF3YXkgYXMgc29vbiBhcworICAgICAgICAgICAgLy8gcG9zc2libGUuCiAg
ICAgICAgICAgICBCT09MIGlzRGlyZWN0b3J5OwotICAgICAgICAgICAgaWYoW1tOU0ZpbGVNYW5h
Z2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGUgaXNEaXJlY3Rvcnk6Jmlz
RGlyZWN0b3J5XSAmJiAhaXNEaXJlY3RvcnkpewotICAgICAgICAgICAgICAgIHJldHVybiBbW05T
VVJMIGZpbGVVUkxXaXRoUGF0aDpmaWxlXSBfd2Via2l0X2Nhbm9uaWNhbGl6ZV07Ci0gICAgICAg
ICAgICB9CisgICAgICAgICAgICBpZiAoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBm
aWxlRXhpc3RzQXRQYXRoOmZpbGUgaXNEaXJlY3Rvcnk6JmlzRGlyZWN0b3J5XSAmJiBpc0RpcmVj
dG9yeSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbmlsOworICAgICAgICAgICAgcmV0dXJuIFtb
TlNVUkwgZmlsZVVSTFdpdGhQYXRoOmZpbGVdIF93ZWJraXRfY2Fub25pY2FsaXplXTsKICAgICAg
ICAgfQogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56394</attachid>
            <date>2010-05-18 11:48:45 -0700</date>
            <delta_ts>2010-05-18 11:57:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38711-20100518114845.patch</filename>
            <type>text/plain</type>
            <size>10156</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZThmMDg3YmMwMDk1NWM0YjY2ZTk1YTI2ZWUyZDIzMTliMjY1YWIyLi4wYmZkZWU1
YTY4MGQ2NWU3YWI4OWYyZmQwZmFhYmEyYjE3Y2M3MzkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMDUtMTcgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisg
ICAgICAgIFNldmVyYWwgbGF5b3V0IHRlc3RzIGRlcGVuZGVkIG9uIHRoZSBmYWN0IHRoYXQgZHJv
cHBpbmcgYSBmaWxlIHdvdWxkCisgICAgICAgIG5ldmVyIHRyaWdnZXIgbmF2aWdhdGlvbi4gVGhp
cyBuZXZlciBoYXBwZW5lZCB0byBvY2N1ciBpbiB0aGUgcGFzdCwKKyAgICAgICAgc2luY2UgaXQg
anVzdCBzbyBoYXBwZW5lZCB0aGF0IHRoZSBmaWxlbmFtZXMgdXNlZCBpbiB0aGUgdGVzdHMgbmV2
ZXIKKyAgICAgICAgcmVzb2x2ZWQgdG8gZmlsZXMgdGhhdCBleGlzdC4gU2luY2UgRHJhZ0RhdGE6
OmFzVVJMKCkgbm8gbG9uZ2VyIHRyaWVzCisgICAgICAgIHRvIHZlcmlmeSBmaWxlIGV4aXN0ZW5j
ZSwgdGhlIGxheW91dCB0ZXN0cyB3ZXJlIHVwZGF0ZWQgdG8gZWl0aGVyCisgICAgICAgIHN1cHBy
ZXNzIG5hdmlnYXRpb24gb3IgbG9nIGFueSBuYXZpZ2F0aW9uIHRoYXQgc2hvdWxkIG9jY3VyIGFz
IHBhcnQgb2YKKyAgICAgICAgdGhlIHRlc3QuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9h
cmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRp
bmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanM6Cisg
ICAgICAgIChydW5UZXN0LndpbmRvdy5vbmJlZm9yZXVubG9hZCk6CisgICAgICAgIChydW5UZXN0
KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMv
Y2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzOgorCiAyMDEwLTA1LTExICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFq
aS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0
LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0CmluZGV4IGJiY2ZmYzc1YjNj
MDhmNThiYzllMWMzNmUwMTJiMWM2MjE4ODEzNWEuLmUzOTQxMDE1N2QwMzNjNDUxY2QyMzBjNDkw
MThiMmUwNTU5ZjFjNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVjdGVkLnR4dApA
QCAtMyw5ICszLDYgQEAgVGVzdHMgZm9yIG11bHRpLWZpbGUgZHJhZyBvbnRvIGZpbGUgaW5wdXQg
ZWxlbWVudHMgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3MKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCi1EcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoK
LVBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCi1QQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5ndGgg
aXMgMAogRHJhZ2dpbmcgYSBzaW5nbGUgKG5vbi1leGlzdGFudCkgZmlsZSB0byBhIGZpbGUgaW5w
dXQgY29udHJvbDoKIFBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICJEUlRGYWtlRmlsZSIKIFBBU1Mg
ZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBpcyAxCkBAIC01Niw2ICs1Myw5IEBAIEZJWE1FOiAgZWxl
bWVudHMgc2hvdWxkIHJlZnVzZSBkcmFncyBpbmNsdWRpbmcgZGlyZWN0b3JpZXM6IGh0dHBzOi8v
YnVncy53ZWJraXQuCiBEcmFnZ2luZyBhIGRpcmVjdG9yeSBhbmQgYSBmaWxlIG9udG8gYSBtdXRs
aS1maWxlIGlucHV0IGNvbnRyb2w6CiBGQUlMIGZpbGVJbnB1dC52YWx1ZSBzaG91bGQgYmUgLiBX
YXMgZGlyZWN0b3J5LWZvci1kcmFnZ2luZy4KIEZBSUwgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBz
aG91bGQgYmUgMC4gV2FzIDIuCitEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29u
dHJvbDoKK1BBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCitQQVNTIGZpbGVJbnB1dC5maWxlcy5s
ZW5ndGggaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRl
c3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcwppbmRleCBkMTdm
ODk3YTk1ZTU2OWYyZWVlMTkxZWM5YjU2NDk2MzZiNjg5N2Q0Li40ZWQxOGQxN2Q1MzdlMjE0Mjhi
NDg2YzBkYThkNjJlMTNiMWQ2NzIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxl
cy1hY2Nlc3MuanMKQEAgLTc0LDExICs3NCw2IEBAIGZ1bmN0aW9uIHRlc3RPcmRlcmVkRHJhZ2dp
bmdXaXRoRGlyZWN0b3J5KCkKIAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgZGVidWcoIkRy
YWdnaW5nIHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250cm9sOiIpOwotICAgIGZpbGVJbnB1
dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAgZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMo
WydEUlRGYWtlRmlsZSddLCBbXSkKLSAgICBmaWxlSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsKLQog
ICAgIGRlYnVnKCJEcmFnZ2luZyBhIHNpbmdsZSAobm9uLWV4aXN0YW50KSBmaWxlIHRvIGEgZmls
ZSBpbnB1dCBjb250cm9sOiIpOwogICAgIHRlc3REcmFnZ2luZ0ZpbGVzKFsKICAgICAgICAgeyAn
cGF0aCc6ICdEUlRGYWtlRmlsZScsICduYW1lJyA6ICdEUlRGYWtlRmlsZScsICdzaXplJyA6IDAs
ICd0eXBlJyA6ICcnIH0KQEAgLTExMSwxNSArMTA2LDMxIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQog
ICAgIF0pOwogCiAgICAgdGVzdE9yZGVyZWREcmFnZ2luZ1dpdGhEaXJlY3RvcnkoKTsKKworICAg
IGRlYnVnKCJEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoiKTsKKyAg
ICBmaWxlSW5wdXQuZGlzYWJsZWQgPSB0cnVlOworICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9
IGZ1bmN0aW9uKCkgeworICAgICAgICAvLyBTaW5jZSB0aGUgZHJvcCB0cmlnZ2VyZWQgYSBuYXZp
Z2F0aW9uLCB2ZXJpZnkgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGZpbGUgaW5wdXQgaGVyZS4KKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmaWxlSW5wdXQudmFsdWUiLCAiIik7CisgICAg
ICAgIGZpbGVzU2hvdWxkQmUoW10pOworICAgICAgICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxs
eVBhcnNlZCIpOworICAgICAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1Qg
Q09NUExFVEU8L3NwYW4+Jyk7CisKKyAgICAgICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVz
CisgICAgICAgIGZpbGVJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZpbGVJbnB1dCk7CisK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworCisgICAgICAgIHdp
bmRvdy5vbmJlZm9yZXVubG9hZCA9IG51bGw7CisgICAgfTsKKyAgICBkcmFnZ2luZ1BhdGhzU2hv
dWxkUmVzdWx0SW5GaWxlcyhbJ0RSVEZha2VGaWxlJ10sIFtdKTsKKyAgICB0ZXN0RmFpbGVkKCJU
aGUgZmluYWwgdGVzdCBjYXNlIHNob3VsZCBoYXZlIHJlc3VsdGVkIGluIG5hdmlnYXRpb24iKTsK
IH0KIAordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKIGlmICh3aW5kb3cuZXZlbnRT
ZW5kZXIpIHsKICAgICBydW5UZXN0KCk7Ci0gICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVz
Ci0gICAgZmlsZUlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZmlsZUlucHV0KTsKIH0gZWxz
ZSB7CiAgICAgdGVzdEZhaWxlZCgiVGhpcyB0ZXN0IGlzIG5vdCBpbnRlcmFjdGl2ZSwgcGxlYXNl
IHJ1biB1c2luZyBEdW1wUmVuZGVyVHJlZSIpOwogfQotCi0KLXZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
bGlwYm9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQt
ZmlsZS1hY2Nlc3MuanMKaW5kZXggNjE5N2I0NGI5YzRhNmNhODkyZDMzY2ZlMDNlYTcxODQzOTIy
NGYwYy4uNGI2MzY4ZDQ2MzIxNmIxNDE0MjYyMTI4OWFhYWMxOGNkZmYwMDdkMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3Rz
L2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzCkBA
IC00Myw2ICs0MywxMyBAQCBkcmFnVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5j
dGlvbigpIHsKICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogfSwgZmFsc2UpOwogCisvLyBT
b21lIHRlc3RzIGRvbid0IGVuZCB1cCBkcm9wcGluZyB0aGUgZHJhZ2dlZSBvdmVyIHRoZSBkcmFn
IHRhcmdldC4gQ2F0Y2ggYW55CisvLyBsZWZ0b3ZlciBkcm9wIGV2ZW50cyBidWJibGluZyB1cCB0
aHJvdWdoIHRoZSB0cmVlIHNvIHRoZXkgZG9uJ3QgY2F1c2UgcGFnZQorLy8gbmF2aWdhdGlvbi4K
K2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBmdW5jdGlvbigpIHsK
KyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworfSk7CisKIGZ1bmN0aW9uIG1vdmVNb3VzZVRv
Q2VudGVyT2ZFbGVtZW50KGVsZW1lbnQpIHsKICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwogICAgIHZhciBjZW50ZXJZID0gZWxl
bWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMxODdjNGI2ZDU5NjYy
YTg0MGJmMWZhNDU5NzI0YjcxNThhNmEyYTAuLmNmZGE1ZTA2OWFhMzA0MDY4MWRjMjJiMzNiMzE3
YWVjNzA5NzkyNDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDUtMTcgIERhbmllbCBDaGVuZyAgPGRj
aGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkg
Y2hlY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
ODcxMQorCisgICAgICAgIFRoZXJlJ3Mgbm8gcG9pbnQgdG8gdHJ5aW5nIHRvIG1ha2Ugc3VyZSB0
aGUgZmlsZSBpcyB2YWxpZCBpbgorICAgICAgICBEcmFnRGF0YTo6YXNVUkwoKS4gSXQncyBiZXR0
ZXIgdG8gYXNrIGZvciBmb3JnaXZlbmVzcyB0aGFuIHRvIGFzayBmb3IKKyAgICAgICAgcGVybWlz
c2lvbiwgc2luY2UgYXNraW5nIGZvciBwZXJtaXNzaW9uIGlzIHByb25lIHRvIHJhY2UgY29uZGl0
aW9ucworICAgICAgICBhbmQgcmVzdWx0cyBpbiB1bm5lY2Vzc2FyeSBJL08uCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdEYXRhOjphc1VSTCk6CisKIDIwMTAtMDUtMTEgIFhhbiBMb3BleiAgPHhsb3BlekBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwCmluZGV4IDhmYjQw
ZGU3Y2FjMTY2NGMwOWMxNTE0ZDA3ZDJmOWU1OWM4NWRmNjcuLjYxZjU5MzhjZGEzNTEwY2JjMmQy
MzA1YjYwZmY5NWVmN2Q5NTc1MDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnRGF0YUNocm9taXVtLmNwcApAQCAtNjYsMTEgKzY2LDExIEBAIFN0cmluZyBEcmFnRGF0YTo6
YXNVUkwoU3RyaW5nKiB0aXRsZSkgY29uc3QKICAgICBTdHJpbmcgdXJsOwogICAgIGlmIChtX3Bs
YXRmb3JtRHJhZ0RhdGEtPmhhc1ZhbGlkVVJMKCkpCiAgICAgICAgIHVybCA9IG1fcGxhdGZvcm1E
cmFnRGF0YS0+Z2V0VVJMKCkuc3RyaW5nKCk7Ci0gICAgZWxzZSBpZiAobV9wbGF0Zm9ybURyYWdE
YXRhLT5maWxlbmFtZXMuc2l6ZSgpID09IDEpIHsKKyAgICBlbHNlIGlmICghbV9wbGF0Zm9ybURy
YWdEYXRhLT5maWxlbmFtZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFN0cmluZyBmaWxlTmFtZSA9
IG1fcGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5hbWVzWzBdOwogICAgICAgICBmaWxlTmFtZSA9IENo
cm9taXVtQnJpZGdlOjpnZXRBYnNvbHV0ZVBhdGgoZmlsZU5hbWUpOwotICAgICAgICBpZiAoZmls
ZUV4aXN0cyhmaWxlTmFtZSkgJiYgIUNocm9taXVtQnJpZGdlOjppc0RpcmVjdG9yeShmaWxlTmFt
ZSkpCi0gICAgICAgICAgICB1cmwgPSBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTChmaWxl
TmFtZSkuc3RyaW5nKCk7CisgICAgICAgIC8vIFRoZSBsb2FkZXIgd2lsbCBkbyB0aGUgcmlnaHQg
dGhpbmcgaWYgdGhlIGZpbGVuYW1lIGlzIGludmFsaWQgZm9yIG9uZSByZWFzb24gb3IgYW5vdGhl
ci4KKyAgICAgICAgdXJsID0gQ2hyb21pdW1CcmlkZ2U6OmZpbGVQYXRoVG9VUkwoZmlsZU5hbWUp
LnN0cmluZygpOwogICAgIH0KICAKICAgICAvLyB8dGl0bGV8IGNhbiBiZSBOVUxMCmRpZmYgLS1n
aXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGQ4
ZmU1MWM5MmUzYTVhNzZhYzM4M2U4MWI5ZWJjZGMwNzk2MzJjYjQuLmQ1NGFmNjlmNGJjMmZlMTdj
YmRjODEwODJkYThjMDU3YTBiNzE4ZDQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMDUtMTcg
IERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hvdWxkbid0
IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisgICAgICAgIENoYW5nZSBbTlNQYXN0ZWJvYXJkIF93
ZWJfYmVzdFVSTF0gdG8gc3RpbGwgcmV0dXJuIGEgZmlsZSBVUkwgZm9yIHBhdGhzCisgICAgICAg
IHRoYXQgZG9uJ3QgZXhpc3QuIENhbGxlcnMgd2hvIGNhcmUgYWJvdXQgdGhlIGV4aXN0ZW5jZSBv
ZiB0aGUgZmlsZSBvcgorICAgICAgICB3aGV0aGVyIG9yIG5vdCBpdCBpcyBhIGRpcmVjdG9yeSBz
aG91bGQgY2hlY2sgdGhlbXNlbHZlcyB3aGVuIHRoZXkKKyAgICAgICAgd2FudCB0byB1c2UgdGhl
IGZpbGUuIFRoZSBkaXJlY3RvcnkgY2hlY2sgaGFzIGJlZW4gbGVmdCBpbiBmb3Igbm93LAorICAg
ICAgICBzaW5jZSB0aGUgTWFjIGltcGxlbWVudGF0aW9uIG9mIFJlc291cmNlSGFuZGxlLCB3aGlj
aCB1c2VzIHRoaXMgZnVuY3Rpb24KKyAgICAgICAgaW5kaXJlY3RseSB2aWEgRHJhZ0NvbnRyb2xs
ZXI6OnBlcmZvcm1EcmFnKSBoYW5kbGVzIGRpcmVjdG9yaWVzIHNvbWV3aGF0CisgICAgICAgIG5v
bi1pbnR1aXRpdmVseTogaXQgb3BlbnMgdGhlIHBhcmVudCBkaXJlY3RvcnkgaW4gdGhlIEZpbmRl
ciwgcmF0aGVyCisgICAgICAgIHRoYW4gb3BlbmluZyB0aGUgZGlyZWN0b3J5IGl0c2VsZi4KKwor
ICAgICAgICAqIE1pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tOgorICAgICAgICAoLVtOU1Bh
c3RlYm9hcmQgX3dlYl9iZXN0VVJMXSk6CisKIDIwMTAtMDUtMTAgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxz
c29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5t
bSBiL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KaW5kZXggOGNlYmVi
NmJmYWY2MmM1NDY5Y2FhZTI3YmQxMDNmM2NjYjY4Mzk5Yy4uYWIzYmFmNzhhZjcxNmJkZTgxNDY2
ZmEzMWM3N2Q4NTU0ZjM1MzYxMCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFz
dGVib2FyZEV4dHJhcy5tbQorKysgYi9XZWJLaXQvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0
cmFzLm1tCkBAIC0xNDEsMTIgKzE0MSwxNyBAQCBzdGF0aWMgTlNBcnJheSAqX3dyaXRhYmxlVHlw
ZXNGb3JJbWFnZVdpdGhBcmNoaXZlICh2b2lkKQogCiAgICAgaWYgKFt0eXBlcyBjb250YWluc09i
amVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdKSB7CiAgICAgICAgIE5TQXJyYXkgKmZpbGVzID0g
W3NlbGYgcHJvcGVydHlMaXN0Rm9yVHlwZTpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdOworICAgICAg
ICAvLyBGSVhNRTogTWF5YmUgaXQgbWFrZXMgbW9yZSBzZW5zZSB0byBhbGxvdyBtdWx0aXBsZSBm
aWxlcyBhbmQgb25seSB1c2UgdGhlIGZpcnN0IG9uZT8KICAgICAgICAgaWYgKFtmaWxlcyBjb3Vu
dF0gPT0gMSkgewogICAgICAgICAgICAgTlNTdHJpbmcgKmZpbGUgPSBbZmlsZXMgb2JqZWN0QXRJ
bmRleDowXTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBhcmUgZmlsdGVyaW5nIG91dCBkaXJl
Y3RvcmllcyBiZWNhdXNlIHRoYXQncyB3aGF0IHRoZSBvcmlnaW5hbCBjb2RlIHVzZWQgdG8KKyAg
ICAgICAgICAgIC8vIGRvLiBXaXRob3V0IHRoaXMgY2hlY2ssIGlmIHRoZSBVUkwgcG9pbnRzIHRv
IGEgbG9jYWwgZGlyZWN0b3J5LCBTYWZhcmkgd2lsbCBvcGVuIHRoZQorICAgICAgICAgICAgLy8g
cGFyZW50IGRpcmVjdG9yeSBvZiB0aGUgZGlyZWN0b3J5IGluIEZpbmRlci4gVGhpcyBjaGVjayBz
aG91bGQgZ28gYXdheSBhcyBzb29uIGFzCisgICAgICAgICAgICAvLyBwb3NzaWJsZS4KICAgICAg
ICAgICAgIEJPT0wgaXNEaXJlY3Rvcnk7Ci0gICAgICAgICAgICBpZihbW05TRmlsZU1hbmFnZXIg
ZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZmlsZSBpc0RpcmVjdG9yeTomaXNEaXJl
Y3RvcnldICYmICFpc0RpcmVjdG9yeSl7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFtbTlNVUkwg
ZmlsZVVSTFdpdGhQYXRoOmZpbGVdIF93ZWJraXRfY2Fub25pY2FsaXplXTsKLSAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGlmIChbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVF
eGlzdHNBdFBhdGg6ZmlsZSBpc0RpcmVjdG9yeTomaXNEaXJlY3RvcnldICYmIGlzRGlyZWN0b3J5
KQorICAgICAgICAgICAgICAgIHJldHVybiBuaWw7CisgICAgICAgICAgICByZXR1cm4gW1tOU1VS
TCBmaWxlVVJMV2l0aFBhdGg6ZmlsZV0gX3dlYmtpdF9jYW5vbmljYWxpemVdOwogICAgICAgICB9
CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56396</attachid>
            <date>2010-05-18 11:57:22 -0700</date>
            <delta_ts>2010-05-18 12:44:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38711-20100518115722.patch</filename>
            <type>text/plain</type>
            <size>10230</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZThmMDg3YmMwMDk1NWM0YjY2ZTk1YTI2ZWUyZDIzMTliMjY1YWIyLi4wYmZkZWU1
YTY4MGQ2NWU3YWI4OWYyZmQwZmFhYmEyYjE3Y2M3MzkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMDUtMTcgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkgY2hlY2tzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxMQorCisg
ICAgICAgIFNldmVyYWwgbGF5b3V0IHRlc3RzIGRlcGVuZGVkIG9uIHRoZSBmYWN0IHRoYXQgZHJv
cHBpbmcgYSBmaWxlIHdvdWxkCisgICAgICAgIG5ldmVyIHRyaWdnZXIgbmF2aWdhdGlvbi4gVGhp
cyBuZXZlciBoYXBwZW5lZCB0byBvY2N1ciBpbiB0aGUgcGFzdCwKKyAgICAgICAgc2luY2UgaXQg
anVzdCBzbyBoYXBwZW5lZCB0aGF0IHRoZSBmaWxlbmFtZXMgdXNlZCBpbiB0aGUgdGVzdHMgbmV2
ZXIKKyAgICAgICAgcmVzb2x2ZWQgdG8gZmlsZXMgdGhhdCBleGlzdC4gU2luY2UgRHJhZ0RhdGE6
OmFzVVJMKCkgbm8gbG9uZ2VyIHRyaWVzCisgICAgICAgIHRvIHZlcmlmeSBmaWxlIGV4aXN0ZW5j
ZSwgdGhlIGxheW91dCB0ZXN0cyB3ZXJlIHVwZGF0ZWQgdG8gZWl0aGVyCisgICAgICAgIHN1cHBy
ZXNzIG5hdmlnYXRpb24gb3IgbG9nIGFueSBuYXZpZ2F0aW9uIHRoYXQgc2hvdWxkIG9jY3VyIGFz
IHBhcnQgb2YKKyAgICAgICAgdGhlIHRlc3QuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9h
cmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRp
bmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanM6Cisg
ICAgICAgIChydW5UZXN0LndpbmRvdy5vbmJlZm9yZXVubG9hZCk6CisgICAgICAgIChydW5UZXN0
KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMv
Y2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzOgorCiAyMDEwLTA1LTExICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFq
aS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0
LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0CmluZGV4IGJiY2ZmYzc1YjNj
MDhmNThiYzllMWMzNmUwMTJiMWM2MjE4ODEzNWEuLmUzOTQxMDE1N2QwMzNjNDUxY2QyMzBjNDkw
MThiMmUwNTU5ZjFjNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVjdGVkLnR4dApA
QCAtMyw5ICszLDYgQEAgVGVzdHMgZm9yIG11bHRpLWZpbGUgZHJhZyBvbnRvIGZpbGUgaW5wdXQg
ZWxlbWVudHMgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3MKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCi1EcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoK
LVBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCi1QQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5ndGgg
aXMgMAogRHJhZ2dpbmcgYSBzaW5nbGUgKG5vbi1leGlzdGFudCkgZmlsZSB0byBhIGZpbGUgaW5w
dXQgY29udHJvbDoKIFBBU1MgZmlsZUlucHV0LnZhbHVlIGlzICJEUlRGYWtlRmlsZSIKIFBBU1Mg
ZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBpcyAxCkBAIC01Niw2ICs1Myw5IEBAIEZJWE1FOiAgZWxl
bWVudHMgc2hvdWxkIHJlZnVzZSBkcmFncyBpbmNsdWRpbmcgZGlyZWN0b3JpZXM6IGh0dHBzOi8v
YnVncy53ZWJraXQuCiBEcmFnZ2luZyBhIGRpcmVjdG9yeSBhbmQgYSBmaWxlIG9udG8gYSBtdXRs
aS1maWxlIGlucHV0IGNvbnRyb2w6CiBGQUlMIGZpbGVJbnB1dC52YWx1ZSBzaG91bGQgYmUgLiBX
YXMgZGlyZWN0b3J5LWZvci1kcmFnZ2luZy4KIEZBSUwgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBz
aG91bGQgYmUgMC4gV2FzIDIuCitEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29u
dHJvbDoKK1BBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCitQQVNTIGZpbGVJbnB1dC5maWxlcy5s
ZW5ndGggaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRl
c3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcwppbmRleCBkMTdm
ODk3YTk1ZTU2OWYyZWVlMTkxZWM5YjU2NDk2MzZiNjg5N2Q0Li40ZWQxOGQxN2Q1MzdlMjE0Mjhi
NDg2YzBkYThkNjJlMTNiMWQ2NzIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxl
cy1hY2Nlc3MuanMKQEAgLTc0LDExICs3NCw2IEBAIGZ1bmN0aW9uIHRlc3RPcmRlcmVkRHJhZ2dp
bmdXaXRoRGlyZWN0b3J5KCkKIAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgZGVidWcoIkRy
YWdnaW5nIHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250cm9sOiIpOwotICAgIGZpbGVJbnB1
dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAgZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMo
WydEUlRGYWtlRmlsZSddLCBbXSkKLSAgICBmaWxlSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsKLQog
ICAgIGRlYnVnKCJEcmFnZ2luZyBhIHNpbmdsZSAobm9uLWV4aXN0YW50KSBmaWxlIHRvIGEgZmls
ZSBpbnB1dCBjb250cm9sOiIpOwogICAgIHRlc3REcmFnZ2luZ0ZpbGVzKFsKICAgICAgICAgeyAn
cGF0aCc6ICdEUlRGYWtlRmlsZScsICduYW1lJyA6ICdEUlRGYWtlRmlsZScsICdzaXplJyA6IDAs
ICd0eXBlJyA6ICcnIH0KQEAgLTExMSwxNSArMTA2LDMxIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQog
ICAgIF0pOwogCiAgICAgdGVzdE9yZGVyZWREcmFnZ2luZ1dpdGhEaXJlY3RvcnkoKTsKKworICAg
IGRlYnVnKCJEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29udHJvbDoiKTsKKyAg
ICBmaWxlSW5wdXQuZGlzYWJsZWQgPSB0cnVlOworICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9
IGZ1bmN0aW9uKCkgeworICAgICAgICAvLyBTaW5jZSB0aGUgZHJvcCB0cmlnZ2VyZWQgYSBuYXZp
Z2F0aW9uLCB2ZXJpZnkgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGZpbGUgaW5wdXQgaGVyZS4KKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmaWxlSW5wdXQudmFsdWUiLCAiIik7CisgICAg
ICAgIGZpbGVzU2hvdWxkQmUoW10pOworICAgICAgICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxs
eVBhcnNlZCIpOworICAgICAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1Qg
Q09NUExFVEU8L3NwYW4+Jyk7CisKKyAgICAgICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVz
CisgICAgICAgIGZpbGVJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZpbGVJbnB1dCk7CisK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworCisgICAgICAgIHdp
bmRvdy5vbmJlZm9yZXVubG9hZCA9IG51bGw7CisgICAgfTsKKyAgICBkcmFnZ2luZ1BhdGhzU2hv
dWxkUmVzdWx0SW5GaWxlcyhbJ0RSVEZha2VGaWxlJ10sIFtdKTsKKyAgICB0ZXN0RmFpbGVkKCJU
aGUgZmluYWwgdGVzdCBjYXNlIHNob3VsZCBoYXZlIHJlc3VsdGVkIGluIG5hdmlnYXRpb24iKTsK
IH0KIAordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKIGlmICh3aW5kb3cuZXZlbnRT
ZW5kZXIpIHsKICAgICBydW5UZXN0KCk7Ci0gICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVz
Ci0gICAgZmlsZUlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZmlsZUlucHV0KTsKIH0gZWxz
ZSB7CiAgICAgdGVzdEZhaWxlZCgiVGhpcyB0ZXN0IGlzIG5vdCBpbnRlcmFjdGl2ZSwgcGxlYXNl
IHJ1biB1c2luZyBEdW1wUmVuZGVyVHJlZSIpOwogfQotCi0KLXZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
bGlwYm9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQt
ZmlsZS1hY2Nlc3MuanMKaW5kZXggNjE5N2I0NGI5YzRhNmNhODkyZDMzY2ZlMDNlYTcxODQzOTIy
NGYwYy4uNGI2MzY4ZDQ2MzIxNmIxNDE0MjYyMTI4OWFhYWMxOGNkZmYwMDdkMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3Rz
L2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NsaXBib2FyZC9zY3JpcHQtdGVzdHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzCkBA
IC00Myw2ICs0MywxMyBAQCBkcmFnVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5j
dGlvbigpIHsKICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogfSwgZmFsc2UpOwogCisvLyBT
b21lIHRlc3RzIGRvbid0IGVuZCB1cCBkcm9wcGluZyB0aGUgZHJhZ2dlZSBvdmVyIHRoZSBkcmFn
IHRhcmdldC4gQ2F0Y2ggYW55CisvLyBsZWZ0b3ZlciBkcm9wIGV2ZW50cyBidWJibGluZyB1cCB0
aHJvdWdoIHRoZSB0cmVlIHNvIHRoZXkgZG9uJ3QgY2F1c2UgcGFnZQorLy8gbmF2aWdhdGlvbi4K
K2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBmdW5jdGlvbigpIHsK
KyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworfSk7CisKIGZ1bmN0aW9uIG1vdmVNb3VzZVRv
Q2VudGVyT2ZFbGVtZW50KGVsZW1lbnQpIHsKICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwogICAgIHZhciBjZW50ZXJZID0gZWxl
bWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMxODdjNGI2ZDU5NjYy
YTg0MGJmMWZhNDU5NzI0YjcxNThhNmEyYTAuLmJjYmM2YmMyMGM1MTNjZmZiOWMyYjU3ZGJiOTRl
NjcwMDdkNzQ4ZmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDUtMTcgIERhbmllbCBDaGVuZyAgPGRj
aGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRHJhZ0RhdGE6OmFzVVJMKCkgc2hvdWxkbid0IGRvIGZpbGUgdmFsaWRpdHkg
Y2hlY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
ODcxMQorCisgICAgICAgIFRoZXJlJ3Mgbm8gcG9pbnQgdG8gdHJ5aW5nIHRvIG1ha2Ugc3VyZSB0
aGUgZmlsZSBpcyB2YWxpZCBpbgorICAgICAgICBEcmFnRGF0YTo6YXNVUkwoKS4gSXQncyBiZXR0
ZXIgdG8gYXNrIGZvciBmb3JnaXZlbmVzcyB0aGFuIHRvIGFzayBmb3IKKyAgICAgICAgcGVybWlz
c2lvbiwgc2luY2UgYXNraW5nIGZvciBwZXJtaXNzaW9uIGlzIHByb25lIHRvIHJhY2UgY29uZGl0
aW9ucworICAgICAgICBhbmQgcmVzdWx0cyBpbiB1bm5lY2Vzc2FyeSBJL08uICBDb25zdW1lcnMg
b2YgdGhpcyBmdW5jdGlvbiBlaXRoZXI6CisgICAgICAgIC0gbmVlZCB0byB2ZXJpZnkgdGhlIGZp
bGUgZXhpc3RzIHRoZW1zZWx2ZXMgKGUuZy4gdGhlIGxvYWRlcikKKyAgICAgICAgLSBkb24ndCBj
YXJlIGFib3V0IGZpbGUgdmFsaWRpdHkgKHJpY2ggdGV4dCBkcmFnLWFuZC1kcm9wKQorCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEcmFnRGF0YTo6YXNVUkwpOgorCiAyMDEwLTA1LTExICBYYW4gTG9wZXogIDx4bG9w
ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAppbmRleCA4
ZmI0MGRlN2NhYzE2NjRjMDljMTUxNGQwN2QyZjllNTljODVkZjY3Li4xY2UyMGRjMjJmM2IyOTE4
ZjE0NGFmNjY2MGVmNmZkYzU0YTM1NjlmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAKQEAgLTY2LDExICs2NiwxMCBAQCBTdHJpbmcgRHJhZ0Rh
dGE6OmFzVVJMKFN0cmluZyogdGl0bGUpIGNvbnN0CiAgICAgU3RyaW5nIHVybDsKICAgICBpZiAo
bV9wbGF0Zm9ybURyYWdEYXRhLT5oYXNWYWxpZFVSTCgpKQogICAgICAgICB1cmwgPSBtX3BsYXRm
b3JtRHJhZ0RhdGEtPmdldFVSTCgpLnN0cmluZygpOwotICAgIGVsc2UgaWYgKG1fcGxhdGZvcm1E
cmFnRGF0YS0+ZmlsZW5hbWVzLnNpemUoKSA9PSAxKSB7CisgICAgZWxzZSBpZiAoIW1fcGxhdGZv
cm1EcmFnRGF0YS0+ZmlsZW5hbWVzLmlzRW1wdHkoKSkgewogICAgICAgICBTdHJpbmcgZmlsZU5h
bWUgPSBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lc1swXTsKICAgICAgICAgZmlsZU5hbWUg
PSBDaHJvbWl1bUJyaWRnZTo6Z2V0QWJzb2x1dGVQYXRoKGZpbGVOYW1lKTsKLSAgICAgICAgaWYg
KGZpbGVFeGlzdHMoZmlsZU5hbWUpICYmICFDaHJvbWl1bUJyaWRnZTo6aXNEaXJlY3RvcnkoZmls
ZU5hbWUpKQotICAgICAgICAgICAgdXJsID0gQ2hyb21pdW1CcmlkZ2U6OmZpbGVQYXRoVG9VUkwo
ZmlsZU5hbWUpLnN0cmluZygpOworICAgICAgICB1cmwgPSBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBh
dGhUb1VSTChmaWxlTmFtZSkuc3RyaW5nKCk7CiAgICAgfQogIAogICAgIC8vIHx0aXRsZXwgY2Fu
IGJlIE5VTEwKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggZDhmZTUxYzkyZTNhNWE3NmFjMzgzZTgxYjllYmNkYzA3OTYzMmNiNC4u
ZDU0YWY2OWY0YmMyZmUxN2NiZGM4MTA4MmRhOGMwNTdhMGI3MThkNCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MiBAQAorMjAxMC0wNS0xNyAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcmFnRGF0YTo6
YXNVUkwoKSBzaG91bGRuJ3QgZG8gZmlsZSB2YWxpZGl0eSBjaGVja3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NzExCisKKyAgICAgICAgQ2hhbmdl
IFtOU1Bhc3RlYm9hcmQgX3dlYl9iZXN0VVJMXSB0byBzdGlsbCByZXR1cm4gYSBmaWxlIFVSTCBm
b3IgcGF0aHMKKyAgICAgICAgdGhhdCBkb24ndCBleGlzdC4gQ2FsbGVycyB3aG8gY2FyZSBhYm91
dCB0aGUgZXhpc3RlbmNlIG9mIHRoZSBmaWxlIG9yCisgICAgICAgIHdoZXRoZXIgb3Igbm90IGl0
IGlzIGEgZGlyZWN0b3J5IHNob3VsZCBjaGVjayB0aGVtc2VsdmVzIHdoZW4gdGhleQorICAgICAg
ICB3YW50IHRvIHVzZSB0aGUgZmlsZS4gVGhlIGRpcmVjdG9yeSBjaGVjayBoYXMgYmVlbiBsZWZ0
IGluIGZvciBub3csCisgICAgICAgIHNpbmNlIHRoZSBNYWMgaW1wbGVtZW50YXRpb24gb2YgUmVz
b3VyY2VIYW5kbGUsIHdoaWNoIHVzZXMgdGhpcyBmdW5jdGlvbgorICAgICAgICBpbmRpcmVjdGx5
IHZpYSBEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWcpIGhhbmRsZXMgZGlyZWN0b3JpZXMgc29t
ZXdoYXQKKyAgICAgICAgbm9uLWludHVpdGl2ZWx5OiBpdCBvcGVucyB0aGUgcGFyZW50IGRpcmVj
dG9yeSBpbiB0aGUgRmluZGVyLCByYXRoZXIKKyAgICAgICAgdGhhbiBvcGVuaW5nIHRoZSBkaXJl
Y3RvcnkgaXRzZWxmLgorCisgICAgICAgICogTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW06
CisgICAgICAgICgtW05TUGFzdGVib2FyZCBfd2ViX2Jlc3RVUkxdKToKKwogMjAxMC0wNS0xMCAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL01pc2MvV2ViTlNQ
YXN0ZWJvYXJkRXh0cmFzLm1tIGIvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJh
cy5tbQppbmRleCA4Y2ViZWI2YmZhZjYyYzU0NjljYWFlMjdiZDEwM2YzY2NiNjgzOTljLi5hYjNi
YWY3OGFmNzE2YmRlODE0NjZmYTMxYzc3ZDg1NTRmMzUzNjEwIDEwMDY0NAotLS0gYS9XZWJLaXQv
bWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tCisrKyBiL1dlYktpdC9tYWMvTWlzYy9X
ZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KQEAgLTE0MSwxMiArMTQxLDE3IEBAIHN0YXRpYyBOU0Fy
cmF5ICpfd3JpdGFibGVUeXBlc0ZvckltYWdlV2l0aEFyY2hpdmUgKHZvaWQpCiAKICAgICBpZiAo
W3R5cGVzIGNvbnRhaW5zT2JqZWN0Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0pIHsKICAgICAgICAg
TlNBcnJheSAqZmlsZXMgPSBbc2VsZiBwcm9wZXJ0eUxpc3RGb3JUeXBlOk5TRmlsZW5hbWVzUGJv
YXJkVHlwZV07CisgICAgICAgIC8vIEZJWE1FOiBNYXliZSBpdCBtYWtlcyBtb3JlIHNlbnNlIHRv
IGFsbG93IG11bHRpcGxlIGZpbGVzIGFuZCBvbmx5IHVzZSB0aGUgZmlyc3Qgb25lPwogICAgICAg
ICBpZiAoW2ZpbGVzIGNvdW50XSA9PSAxKSB7CiAgICAgICAgICAgICBOU1N0cmluZyAqZmlsZSA9
IFtmaWxlcyBvYmplY3RBdEluZGV4OjBdOworICAgICAgICAgICAgLy8gRklYTUU6IFdlIGFyZSBm
aWx0ZXJpbmcgb3V0IGRpcmVjdG9yaWVzIGJlY2F1c2UgdGhhdCdzIHdoYXQgdGhlIG9yaWdpbmFs
IGNvZGUgdXNlZCB0bworICAgICAgICAgICAgLy8gZG8uIFdpdGhvdXQgdGhpcyBjaGVjaywgaWYg
dGhlIFVSTCBwb2ludHMgdG8gYSBsb2NhbCBkaXJlY3RvcnksIFNhZmFyaSB3aWxsIG9wZW4gdGhl
CisgICAgICAgICAgICAvLyBwYXJlbnQgZGlyZWN0b3J5IG9mIHRoZSBkaXJlY3RvcnkgaW4gRmlu
ZGVyLiBUaGlzIGNoZWNrIHNob3VsZCBnbyBhd2F5IGFzIHNvb24gYXMKKyAgICAgICAgICAgIC8v
IHBvc3NpYmxlLgogICAgICAgICAgICAgQk9PTCBpc0RpcmVjdG9yeTsKLSAgICAgICAgICAgIGlm
KFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpmaWxlIGlz
RGlyZWN0b3J5OiZpc0RpcmVjdG9yeV0gJiYgIWlzRGlyZWN0b3J5KXsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gW1tOU1VSTCBmaWxlVVJMV2l0aFBhdGg6ZmlsZV0gX3dlYmtpdF9jYW5vbmljYWxp
emVdOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpmaWxlIGlzRGlyZWN0b3J5OiZpc0RpcmVjdG9y
eV0gJiYgaXNEaXJlY3RvcnkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAgICAg
ICAgIHJldHVybiBbW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpmaWxlXSBfd2Via2l0X2Nhbm9uaWNh
bGl6ZV07CiAgICAgICAgIH0KICAgICB9CiAK
</data>
<flag name="review"
          id="40807"
          type_id="1"
          status="+"
          setter="jianli"
    />
    <flag name="commit-queue"
          id="40815"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>