<?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>39427</bug_id>
          
          <creation_ts>2010-05-20 08:19:45 -0700</creation_ts>
          <short_desc>Increase limit on number of (i)frames from 200 to 1000.</short_desc>
          <delta_ts>2010-06-16 00:49:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Frames</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Hans Wennborg">hans</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>jorlow</cc>
    
    <cc>mjs</cc>
    
    <cc>mooneer</cc>
    
    <cc>pfeldman</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>228383</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-05-20 08:19:45 -0700</bug_when>
    <thetext>Increase limit on number of (i)frames from 200 to 1000.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228387</commentid>
    <comment_count>1</comment_count>
      <attachid>56596</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-05-20 08:26:14 -0700</bug_when>
    <thetext>Created attachment 56596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228388</commentid>
    <comment_count>2</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-05-20 08:27:04 -0700</bug_when>
    <thetext>Note: The attached layout test tends to time out on Chromium debug builds, so it may have to be marked as slow. I am not sure how important it is to include a layout test for this at all.

(This discussion started at http://crbug.com/16184)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228406</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-20 09:13:57 -0700</bug_when>
    <thetext>what&apos;s the justification for this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228421</commentid>
    <comment_count>4</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-05-20 09:43:59 -0700</bug_when>
    <thetext>Justification is in the patch to WebCore/ChangeLog. Should I also have put it in as a bug comment? (I&apos;m new here.)


In my testing, both Chrome and Safari handles this well. I tried to find a limit on number of frames in IE and Firefox, but could not find one. User experience gets pretty bad with huge amounts of iframes though (and FF crashed trying to render 12k iframes), so having some limit seems reasonable.

The limit of 200 seemed harsh though. For example, the Vim color scheme test page (http://vimcolorschemetest.googlecode.com/svn/html/index-c.html) is broken in WebKit browsers.

In an IRC chat (excerpt on http://crbug.com/16184) between jorlow and mjs, it was said that the O(N^2) algorithms referred to in the original patch (http://trac.webkit.org/changeset/3707) as the reason for this limit are not used anymore.

So since the underlying reason for this limit is said to be gone, some websites would be un-broken by increasing it, and testing shows that WebKit handles it well, I think we should consider bumping the limit to 1000.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228536</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-20 13:55:24 -0700</bug_when>
    <thetext>It would be nice to make this a duplicate of bug 32766, and discuss the change there.

Is there code that assumes that frame number is no longer than 3 decimal digits? Some code and comments in FrameTree::uniqueChildName() come alarmingly close, give or take an off-by-one error somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228549</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-20 14:06:26 -0700</bug_when>
    <thetext>Oops.  I guess we should have searched the bug archive better before filing this.  Given that there&apos;s already a patch here and this bug is about the specific problem, I&apos;m going to dup that to this.

Hans, can you trace through the code AP mentioned to see if it&apos;s an actual issue?  Even if we think it&apos;s OK, it might make sense to make it 990 or something to ensure we don&apos;t hit any weird limits.  And if there is a real issue, it&apos;d be great if we could add an ASSERT and/or layout test to ensure no one in the future makes that mistake without realizing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228551</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-20 14:07:17 -0700</bug_when>
    <thetext>*** Bug 32766 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228562</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-20 14:19:53 -0700</bug_when>
    <thetext>&gt; this bug is about the specific problem, I&apos;m going to dup that to this.

Actually, it&apos;s bug 32766 that was about a specific problem on a specific site, which is why I liked it and its title more. But that&apos;s not a big thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228596</commentid>
    <comment_count>9</comment_count>
      <attachid>56596</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-20 15:15:42 -0700</bug_when>
    <thetext>Comment on attachment 56596
Patch

WebCore/html/HTMLFrameElementBase.cpp:73
 +      // worse in the number of frames, we&apos;ll keep it at 200 for now.
nit: update the comment from 200 to 1000</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228860</commentid>
    <comment_count>10</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-05-21 04:46:54 -0700</bug_when>
    <thetext>Looking at FrameTree::uniqueChildName(), it seems there is head room for 20+ digit frame numbers (FrameTree.cpp:144). The comment just says three digits is the highest it gets in practice, but any unsigned 64-bit number will be fine. If we change the limit to 1000 or higher, we should update that comment, though.

I have been investigating other users of this number:
WebKit/mac/WebView/WebFrame.mm:1562
WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:1094
WebCore/page/DOMWindow.cpp:1034
WebCore/loader/archive/cf/LegacyWebArchive.cpp:444
WebCore/loader/HistoryController.cpp:607
WebCore/bindings/js/JSDOMWindowCustom.cpp:{208,354}

None of these make any dangerous assumptions about the size of this number that I can see. The m_childCount member variable is not exposed other than through childCount(), and not used in any alarming way internally.

Then there is Page::frameCount(). Again, I have not been able to find uses that make dangerous assumptions about the size of that number.

RenderEmbeddedObject::isURLAllowed() looks to see if Page::frameCount() is &lt; 200. It seems to me that it should use the same limit as HTMLFrameElementBase. Please correct me if I am mistaken here. And as the same number is used in these two places, it would make sense to introduce a constant for the limit somewhere (would Page be a good place?).


One idea would be to raise the limit to 1111 frames, with the purpose of exposing any potential problems I&apos;ve missed and hoping the build bots or nightly build users will trigger it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228949</commentid>
    <comment_count>11</comment_count>
      <attachid>56596</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-21 09:23:23 -0700</bug_when>
    <thetext>Comment on attachment 56596
Patch

&gt; RenderEmbeddedObject::isURLAllowed() looks to see if 
&gt; Page::frameCount() is &lt; 200. It seems to me that it should use the
&gt; same limit as HTMLFrameElementBase.

I don&apos;t know what this check is about, but it definitely seems so! Now I wonder what was broken due to not having it fixed, too. Ideally, we would have a test case that fails with the current version of your patch, but not with a final one.

&gt; One idea would be to raise the limit to 1111 frames

Having a round number like 999, 1000, or 2000 is better in that it&apos;s easier to understand what&apos;s going on when we hit the limit.

Marking r- to get this out of review queue, since some modifications are clearly needed, as well as some investigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228954</commentid>
    <comment_count>12</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-21 09:39:38 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 56596 [details])
&gt; &gt; RenderEmbeddedObject::isURLAllowed() looks to see if 
&gt; &gt; Page::frameCount() is &lt; 200. It seems to me that it should use the
&gt; &gt; same limit as HTMLFrameElementBase.
&gt; 
&gt; I don&apos;t know what this check is about, but it definitely seems so! Now I wonder what was broken due to not having it fixed, too. Ideally, we would have a test case that fails with the current version of your patch, but not with a final one.

Agreed.  Hans, you should probably first look at the ChangeLog associated with this limit being added in.  Hopefully that&apos;ll make it clear why.  If not, maybe you can do some investigating including contacting the author and/or ccing him/her.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229786</commentid>
    <comment_count>13</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-05-24 10:01:03 -0700</bug_when>
    <thetext>The check in RenderEmbeddedObject::isURLAllowed() was introduced in http://trac.webkit.org/changeset/11162. (That code has since migrated through revisions r11966, r12155, r14334 and r52947.)

The way I read that ChangeLog is that depending on the circumstances, there were code paths where the other check for number of frames (the one introduced in r3707) was circumvented, and this was a fix for that. As I understand it, it does the same check and has the same purpose as in HTMLFrameElementBase::isURLAllowed().

Eric and Maciej wrote and reviewed that patch. Perhaps they can shed some light on it?

What would have been &quot;broken&quot; by increasing the limit in HTMLFrameElementBase::isURLAllowed() and not in RenderEmbeddedObject::isURLAllowed() is that a page would be able to have 200+ iframes, but not 200+ embedded objects.

Uploading new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229787</commentid>
    <comment_count>14</comment_count>
      <attachid>56899</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-05-24 10:01:46 -0700</bug_when>
    <thetext>Created attachment 56899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229849</commentid>
    <comment_count>15</comment_count>
      <attachid>56899</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-24 12:25:19 -0700</bug_when>
    <thetext>Comment on attachment 56899
Patch

WebCore/page/Page.h:240
 +          static const int m_maxNbrOfFrames = 1000;
style nit: spell out words and reserve m_ for private members:
m_maxNbrOfFrames -&gt; maxNumberOfFrames

LayoutTests/compositing/iframes/too-many-objects.html:9
 +    var created_objects = 0;
nit: use camelCase for variables

LayoutTests/compositing/iframes/too-many-objects.html:26
 +    {
nit: be consistent with braces

LayoutTests/compositing/iframes/too-many-objects.html:25
 +    function createIFrames(nbr)
nit: avoid abbreviations like &quot;nbr&quot;

nit: it seems like you could combine lots-of-iframes and too-many-iframes.
lots-of-iframes is testing that you can create 1000 frames, and too-many-iframes
is testing that once you have 1000 frames, you can&apos;t create one more.  they seem
like they could just be part of a single test that asserts that 1000 is the limit
for the number of tests you can create.  same goes for the object tag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230207</commentid>
    <comment_count>16</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-05-25 04:05:31 -0700</bug_when>
    <thetext>Thanks for the input.

(In reply to comment #15)
&gt; (From update of attachment 56899 [details])
&gt; WebCore/page/Page.h:240
&gt;  +          static const int m_maxNbrOfFrames = 1000;
&gt; style nit: spell out words and reserve m_ for private members:
&gt; m_maxNbrOfFrames -&gt; maxNumberOfFrames
Done.
 
&gt; LayoutTests/compositing/iframes/too-many-objects.html:9
&gt;  +    var created_objects = 0;
&gt; nit: use camelCase for variables
Done.

&gt; LayoutTests/compositing/iframes/too-many-objects.html:26
&gt;  +    {
&gt; nit: be consistent with braces
Done.
 
&gt; LayoutTests/compositing/iframes/too-many-objects.html:25
&gt;  +    function createIFrames(nbr)
&gt; nit: avoid abbreviations like &quot;nbr&quot;
Done.

&gt; nit: it seems like you could combine lots-of-iframes and too-many-iframes.
&gt; lots-of-iframes is testing that you can create 1000 frames, and too-many-iframes
&gt; is testing that once you have 1000 frames, you can&apos;t create one more.  they seem
&gt; like they could just be part of a single test that asserts that 1000 is the limit
&gt; for the number of tests you can create.  same goes for the object tag.
Done.

Uploading new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230208</commentid>
    <comment_count>17</comment_count>
      <attachid>57002</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-05-25 04:06:07 -0700</bug_when>
    <thetext>Created attachment 57002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230728</commentid>
    <comment_count>18</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-26 09:00:46 -0700</bug_when>
    <thetext>Any remaining reservations with this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230738</commentid>
    <comment_count>19</comment_count>
      <attachid>57002</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-26 09:38:35 -0700</bug_when>
    <thetext>Comment on attachment 57002
Patch

Looks fine, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231205</commentid>
    <comment_count>20</comment_count>
      <attachid>57002</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-27 03:28:10 -0700</bug_when>
    <thetext>Comment on attachment 57002
Patch

Clearing flags on attachment: 57002

Committed r60287: &lt;http://trac.webkit.org/changeset/60287&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231206</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-27 03:28:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238477</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-06-15 11:24:57 -0700</bug_when>
    <thetext>The tests were added in the wrong place. They have nothing to do with compositing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238478</commentid>
    <comment_count>23</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-06-15 11:27:25 -0700</bug_when>
    <thetext>Sorry, I should have caught that.  Hans, can you please try to find a better place and open a new bug to fix that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238480</commentid>
    <comment_count>24</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-15 11:32:32 -0700</bug_when>
    <thetext>Moved the tests to fast/frames in &lt;http://trac.webkit.org/changeset/61199&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238486</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-15 11:48:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/61199 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238491</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-15 12:00:07 -0700</bug_when>
    <thetext>And even better in &lt;http://trac.webkit.org/changeset/61205&gt; :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238707</commentid>
    <comment_count>27</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-06-16 00:49:18 -0700</bug_when>
    <thetext>Thanks Alexey.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56596</attachid>
            <date>2010-05-20 08:26:14 -0700</date>
            <delta_ts>2010-05-24 10:01:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39427-20100520162612.patch</filename>
            <type>text/plain</type>
            <size>4156</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NTA4NWI5MzlmNDcxN2U1ODk2ZjZjNmRiZTE5NzkzNmRjM2M4ODhmLi4yN2E0Mzc2
YTE5NmYzMWEzOWJlMjMxMGMxMDk3YzMwNGIyYTk2NzdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDUtMjAgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbmNyZWFzZSBsaW1pdCBv
biBudW1iZXIgb2YgKGkpZnJhbWVzIGZyb20gMjAwIHRvIDEwMDAuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQyNworCisgICAgICAgIEFkZCBsYXlv
dXQgdGVzdCB0aGF0IHRlc3RzIHRoZSBwb3NzaWJpbGl0eSBvZiBnZW5lcmF0aW5nIDEwMDAgaWZy
YW1lcy4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvbG90cy1vZi1pZnJhbWVzLWV4
cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9kb20vYmVmb3JlbG9hZC92
aWRlby1iZWZvcmUtbG9hZC1leHBlY3RlZC50eHQuCisgICAgICAgICogY29tcG9zaXRpbmcvaWZy
YW1lcy9sb3RzLW9mLWlmcmFtZXMuaHRtbDogQWRkZWQuCisKIDIwMTAtMDUtMTkgIFZpY3RvciBX
YW5nICA8dmljdG9yd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRl
IENocm9taXVtIHRlc3QgZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9sb3RzLW9mLWlmcmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sb3RzLW9mLWlmcmFtZXMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY5Y2ZjNWE5OGRiNzRmYmUzMmFjOWI2NzhhNjEzNGFmOTczNmRkNTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2xvdHMtb2YtaWZyYW1l
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvbG90cy1vZi1pZnJhbWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2xvdHMtb2YtaWZyYW1lcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY1MWEwNWY2MTE5MWNiMWJlNzgwYTM1ZWMzY2E1YTU3MGFmNTEzYjAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2xvdHMtb2YtaWZyYW1lcy5odG1s
CkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRN
TCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29z
ZS5kdGQiPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5Mb3RzIG9mIGlmcmFtZXM8L3RpdGxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICBm
dW5jdGlvbiBjcmVhdGVJRnJhbWVzKG5icikKKyAgeworICAgIHZhciBzdHIgPSAiPGRpdiBpZD1c
InN0YXR1c1wiPjwvZGl2PiI7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYnI7IGkrKykgewor
ICAgICAgc3RyICs9ICI8aWZyYW1lIGlkPVwiaSIgKyBpICsgIlwiIHNyYz1cImRhdGE6dGV4dC9o
dG1sLGlmcmFtZV8iICsgaSArICJcIj48L2lmcmFtZT4iOworICAgIH0KKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLmlubmVySFRNTCA9IHN0cjsKKworICAgIHZh
ciBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImkiICsgKGktMSkpOworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGF0dXMiKS5pbm5lckhUTUwgPSBmICYmIGYuY29udGVudFdpbmRv
dyA/ICJQQVNTIiA6ICJGQUlMIjsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgIH0KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25Mb2FkPSJjcmVhdGVJRnJhbWVzKDEwMDApIj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggOGM5Njk4YWVkMGUzNDg2OTRhZTQ5YzJhZjdkZTAwZTA3YzJmNWJkZi4uYWY5
ZmFjM2M3YmNhOGRiZmIzODg4OWYzZmQ1ZDdlNmQ2MDAyOGI2ZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAx
MC0wNS0yMCAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluY3JlYXNlIGxpbWl0IG9uIG51
bWJlciBvZiAoaSlmcmFtZXMgZnJvbSAyMDAgdG8gMTAwMC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NDI3CisKKyAgICAgICAgVGhlIGxpbWl0IG9u
IG51bWJlciBvZiBpZnJhbWVzIHdhcyBpbnRyb2R1Y2VkIGluIHIzNzA3IGJhY2sgaW4gMjAwMy4K
KyAgICAgICAgQW4gZXhhbXBsZSBvZiBhIHBhZ2UgdGhhdCBpcyBicm9rZW4gYmVjYXVzZSBvZiB0
aGlzIGlzOgorICAgICAgICBodHRwOi8vdmltY29sb3JzY2hlbWV0ZXN0Lmdvb2dsZWNvZGUuY29t
L3N2bi9odG1sL2luZGV4LWMuaHRtbAorICAgICAgICBOZWl0aGVyIEZpcmVmb3ggbm9yIElFIGhh
cyBzdWNoIGEgbGltaXQuCisKKyAgICAgICAgSXQgc2VlbXMgdGhhdCBXZWJLaXQgY2FuIGhhbmRs
ZSBhIHNpZ25pZmljYW50bHkgaGlnaGVyIG51bWJlciBvZiBmcmFtZXMsIGFuZAorICAgICAgICB0
aGUgb3JpZ2luYWwgcmVhc29ucyBmb3IgaW1wb3NpbmcgdGhlIGxpbWl0IGFyZSBiZWxpZXZlZCB0
byBiZSBnb25lLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL2lmcmFtZXMvbG90cy1vZi1p
ZnJhbWVzLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U6OmlzVVJMQWxsb3dlZCk6CisK
IDIwMTAtMDUtMTkgIERhcmluIEZpc2hlciAgPGRhcmluQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZlcnQgcjU5NzkwIGR1ZSB0byBmYWlsaW5nIENocm9taXVtIG5wcnVudGltZSB0ZXN0cy4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAgYi9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCmluZGV4IDdkYzE1YjBkNDFiMTJiMDQx
ZDgzNDNiZjkwZTEzNmFlNjUxNGQ2MmQuLjJiM2JjYTI5OTFkNjlmMGI2MGZiN2JmNzVhNDNhYTIx
YjlhY2IzZGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcApAQCAtNzIsNyAr
NzIsNyBAQCBib29sIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjppc1VSTEFsbG93ZWQoKSBjb25zdAog
ICAgIC8vIGFsZ29yaXRobXMgdGhhdCBoYXBwZW4gd2hpbGUgbG9hZGluZyB3aGljaCBhcHBlYXIg
dG8gYmUgTl4yIG9yCiAgICAgLy8gd29yc2UgaW4gdGhlIG51bWJlciBvZiBmcmFtZXMsIHdlJ2xs
IGtlZXAgaXQgYXQgMjAwIGZvciBub3cuCiAgICAgaWYgKEZyYW1lKiBwYXJlbnRGcmFtZSA9IGRv
Y3VtZW50KCktPmZyYW1lKCkpIHsKLSAgICAgICAgaWYgKHBhcmVudEZyYW1lLT5wYWdlKCktPmZy
YW1lQ291bnQoKSA+IDIwMCkKKyAgICAgICAgaWYgKHBhcmVudEZyYW1lLT5wYWdlKCktPmZyYW1l
Q291bnQoKSA+IDEwMDApCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56899</attachid>
            <date>2010-05-24 10:01:46 -0700</date>
            <delta_ts>2010-05-25 04:05:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39427-20100524180144.patch</filename>
            <type>text/plain</type>
            <size>12598</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhY2FlNTNiYWFmOTlhYzZlOGQwNTZmZmMyNWRlZWQzNGYxNTE0N2RkLi44Yjc5Yzhh
ZTZhMGJlNTgyNTFhYzFkN2M0Y2NjYjc4NzE1ZTdlZjdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMDUtMjQgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbmNyZWFzZSBsaW1pdCBv
biBudW1iZXIgb2YgKGkpZnJhbWVzIGZyb20gMjAwIHRvIDEwMDAuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQyNworCisgICAgICAgIEFkZCBsYXlv
dXQgdGVzdHMgdGhhdCB0ZXN0IHRoZSBwb3NzaWJpbGl0eSBvZiBnZW5lcmF0aW5nIDEwMDAgaWZy
YW1lcy4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvbG90cy1vZi1pZnJhbWVzLWV4
cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9kb20vYmVmb3JlbG9hZC92
aWRlby1iZWZvcmUtbG9hZC1leHBlY3RlZC50eHQuCisgICAgICAgICogY29tcG9zaXRpbmcvaWZy
YW1lcy9sb3RzLW9mLWlmcmFtZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcv
aWZyYW1lcy9sb3RzLW9mLW9iamVjdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBj
b21wb3NpdGluZy9pZnJhbWVzL2xvdHMtb2Ytb2JqZWN0cy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjb21wb3NpdGluZy9pZnJhbWVzL3Rvby1tYW55LWlmcmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL3Rvby1tYW55LWlmcmFtZXMuaHRtbDog
QWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy90b28tbWFueS1vYmplY3RzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy90b28tbWFu
eS1vYmplY3RzLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA1LTIzICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2xvdHMtb2YtaWZyYW1lcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2xvdHMtb2YtaWZyYW1l
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjljZmM1YTk4ZGI3NGZiZTMyYWM5YjY3OGE2MTM0
YWY5NzM2ZGQ1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvbG90cy1vZi1pZnJhbWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sb3RzLW9mLWlm
cmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvbG90cy1vZi1pZnJh
bWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjUxYTA1ZjYxMTkxY2IxYmU3ODBhMzVlYzNjYTVhNTcwYWY1
MTNiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMv
bG90cy1vZi1pZnJhbWVzLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cu
dzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkxvdHMg
b2YgaWZyYW1lczwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworCisgIGZ1bmN0aW9uIGNyZWF0ZUlGcmFtZXMobmJyKQorICB7CisgICAg
dmFyIHN0ciA9ICI8ZGl2IGlkPVwic3RhdHVzXCI+PC9kaXY+IjsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IG5icjsgaSsrKSB7CisgICAgICBzdHIgKz0gIjxpZnJhbWUgaWQ9XCJpIiArIGkgKyAi
XCIgc3JjPVwiZGF0YTp0ZXh0L2h0bWwsaWZyYW1lXyIgKyBpICsgIlwiPjwvaWZyYW1lPiI7Cisg
ICAgfQorICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0uaW5uZXJI
VE1MID0gc3RyOworCisgICAgdmFyIGYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaSIgKyAo
aS0xKSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXR1cyIpLmlubmVySFRNTCA9
IGYgJiYgZi5jb250ZW50V2luZG93ID8gIlBBU1MiIDogIkZBSUwiOworCisgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbkxvYWQ9ImNyZWF0ZUlG
cmFtZXMoMTAwMCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9sb3RzLW9mLW9iamVjdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sb3RzLW9mLW9iamVjdHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIwYzhjMDg5NjUwODY3ZmFlYzE5NGNlNjBhNTBiYTg5MmJiMTRlMTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2xvdHMtb2Ytb2Jq
ZWN0cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitDcmVhdGVkIDEwMDAgb3V0IG9mIDEw
MDAgb2JqZWN0cy4KK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9sb3RzLW9mLW9iamVjdHMuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvbG90cy1vZi1vYmplY3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q3ZGFjZWIwZTBmZmY5YTli
NjY0MGYyOTYxNGMyNGU1NDhmOWFjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvbG90cy1vZi1vYmplY3RzLmh0bWwKQEAgLTAsMCArMSwzNiBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cis8aHRtbD4KKzxo
ZWFkPgorPHRpdGxlPkxvdHMgb2Ygb2JqZWN0czwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgIHZhciBjcmVhdGVkX29iamVjdHMg
PSAwOworICB2YXIgdGFyZ2V0X29iamVjdHM7CisKKyAgZnVuY3Rpb24gY291bnQoKSB7CisgICAg
Y3JlYXRlZF9vYmplY3RzKys7CisKKyAgICB2YXIgc3RyID0gIkNyZWF0ZWQgIiArIGNyZWF0ZWRf
b2JqZWN0cyArICIgb3V0IG9mICIgKyB0YXJnZXRfb2JqZWN0cyArICIgb2JqZWN0cy4iOworICAg
IGlmIChjcmVhdGVkX29iamVjdHMgPT0gdGFyZ2V0X29iamVjdHMpIHsKKyAgICAgIHN0ciArPSAi
PGJyPlBBU1MiOworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXR1cyIpLmlubmVy
SFRNTCA9IHN0cjsKKyAgICB9CisgIH0KKworICBmdW5jdGlvbiBjcmVhdGVJRnJhbWVzKG5icikK
KyAgeworICAgIHRhcmdldF9vYmplY3RzID0gbmJyOworCisgICAgdmFyIHN0ciA9ICI8ZGl2IGlk
PVwic3RhdHVzXCI+PC9kaXY+IjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5icjsgaSsrKSB7
CisgICAgICBzdHIgKz0gIjxvYmplY3Qgb25Mb2FkPVwiY291bnQoKVwiIGRhdGE9XCJkYXRhOnRl
eHQvaHRtbCxvYmplY3RfIiArIGkgKyAiXCI+PC9vYmplY3Q+IjsKKyAgICB9CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXS5pbm5lckhUTUwgPSBzdHI7CisgIH0K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25Mb2FkPSJjcmVhdGVJRnJhbWVzKDEwMDApIj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvdG9vLW1hbnktaWZyYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL3Rvby1tYW55LWlmcmFtZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdi
ODJhYTU2NDNkYTVkZWNkYzEyYWJiNDJlNmY2YjgyMDFiZTNlODEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Rvby1tYW55LWlmcmFtZXMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorRGlkIG5vdCBjcmVhdGUgbW9yZSBpZnJhbWVzIHRoYW4g
ZXhwZWN0ZWQuCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvdG9vLW1hbnktaWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy90b28tbWFueS1pZnJhbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjUxZTc3ZmQwMWRmYWMxNDkz
MGVjNzU5YzMxYzE0MmEzMDFkNTExZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvdG9vLW1hbnktaWZyYW1lcy5odG1sCkBAIC0wLDAgKzEsMzIgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25h
bC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorPGh0bWw+Cis8
aGVhZD4KKzx0aXRsZT5Ub28gbWFueSBpZnJhbWVzPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgZnVuY3Rpb24gY3JlYXRlSUZy
YW1lcyhuYnIpCisgIHsKKyAgICB2YXIgc3RyID0gIjxkaXYgaWQ9XCJzdGF0dXNcIj48L2Rpdj4i
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmJyOyBpKyspIHsKKyAgICAgIHN0ciArPSAiPGlm
cmFtZSBpZD1cImkiICsgaSArICJcIiBzcmM9XCJkYXRhOnRleHQvaHRtbCxpZnJhbWVfIiArIGkg
KyAiXCI+PC9pZnJhbWU+IjsKKyAgICB9CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImJvZHkiKVswXS5pbm5lckhUTUwgPSBzdHI7CisKKyAgICB2YXIgZiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJpIiArIChpLTEpKTsKKyAgICBpZiAoZiAmJiBmLmNvbnRlbnRXaW5kb3cp
IHsKKyAgICAgIHN0ciA9ICJDcmVhdGVkIG1vcmUgaWZyYW1lcyB0aGFuIGV4cGVjdGVkLjxicj5G
QUlMIjsKKyAgICB9IGVsc2UgeworICAgICAgc3RyID0gIkRpZCBub3QgY3JlYXRlIG1vcmUgaWZy
YW1lcyB0aGFuIGV4cGVjdGVkLjxicj5QQVNTIjsKKyAgICB9CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN0YXR1cyIpLmlubmVySFRNTCA9IHN0cjsKKworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25Mb2FkPSJjcmVhdGVJRnJhbWVz
KDEwMDEpIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvdG9vLW1hbnktb2JqZWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL3Rvby1tYW55LW9iamVjdHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjlhNGIyZjlmNzA3YjllMWFlNDQwYzUxOWNiZWU3NjY5ODY1OTNjMzUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Rvby1tYW55LW9iamVj
dHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorQ3JlYXRlZCAxMDAwIG91dCBvZiAxMDAx
IG9iamVjdHMuCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvdG9vLW1hbnktb2JqZWN0cy5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy90b28tbWFueS1vYmplY3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE4ZjE1NzljZDVjYTA4ZDFm
ZDY2NDZhMTdhMDQxNTEyOTA2OGMyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvdG9vLW1hbnktb2JqZWN0cy5odG1sCkBAIC0wLDAgKzEsMzkgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25h
bC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorPGh0bWw+Cis8
aGVhZD4KKzx0aXRsZT5Ub28gbWFueSBvYmplY3RzPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgdmFyIGNyZWF0ZWRfb2JqZWN0
cyA9IDA7CisgIHZhciB0YXJnZXRfb2JqZWN0czsKKworICBmdW5jdGlvbiBjb3VudCgpIHsKKyAg
ICBjcmVhdGVkX29iamVjdHMrKzsKKworICAgIHZhciBzdHIgPSAiQ3JlYXRlZCAiICsgY3JlYXRl
ZF9vYmplY3RzICsgIiBvdXQgb2YgIiArIHRhcmdldF9vYmplY3RzICsgIiBvYmplY3RzLiI7Cisg
ICAgaWYgKGNyZWF0ZWRfb2JqZWN0cyA+IDEwMDApIHsKKyAgICAgIHN0ciArPSAiPGJyPkZBSUwi
OworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXR1cyIpLmlubmVySFRNTCA9IHN0
cjsKKyAgICB9IGVsc2UgaWYgKGNyZWF0ZWRfb2JqZWN0cyA9PSAxMDAwKSB7CisgICAgICBzdHIg
Kz0gIjxicj5QQVNTIjsKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGF0dXMiKS5p
bm5lckhUTUwgPSBzdHI7CisgICAgfQorICB9CisKKyAgZnVuY3Rpb24gY3JlYXRlSUZyYW1lcyhu
YnIpCisgIHsKKyAgICB0YXJnZXRfb2JqZWN0cyA9IG5icjsKKworICAgIHZhciBzdHIgPSAiPGRp
diBpZD1cInN0YXR1c1wiPjwvZGl2PiI7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYnI7IGkr
KykgeworICAgICAgc3RyICs9ICI8b2JqZWN0IG9uTG9hZD1cImNvdW50KClcIiBkYXRhPVwiZGF0
YTp0ZXh0L2h0bWwsb2JqZWN0XyIgKyBpICsgIlwiPjwvb2JqZWN0PiI7CisgICAgfQorICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0uaW5uZXJIVE1MID0gc3RyOwor
ICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9uTG9hZD0iY3JlYXRlSUZyYW1lcygxMDAx
KSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZhYTkwYWNhNzY5MmJmYjA3MzYwNmNjNDI3ZmJjZTQzNGU2
NDljMDcuLjU0NTU5ZTExNjRhYTY5Njc5OWRhMTY0ZmRjZjRjM2M3ODdlODNhNjYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzEgQEAKKzIwMTAtMDUtMjQgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbmNyZWFzZSBs
aW1pdCBvbiBudW1iZXIgb2YgKGkpZnJhbWVzIGZyb20gMjAwIHRvIDEwMDAuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQyNworCisgICAgICAgIFRo
ZSBsaW1pdCBvbiBudW1iZXIgb2YgaWZyYW1lcyB3YXMgaW50cm9kdWNlZCBpbiByMzcwNyBiYWNr
IGluIDIwMDMuCisgICAgICAgIEFuIGV4YW1wbGUgb2YgYSBwYWdlIHRoYXQgaXMgYnJva2VuIGJl
Y2F1c2Ugb2YgdGhpcyBpczoKKyAgICAgICAgaHR0cDovL3ZpbWNvbG9yc2NoZW1ldGVzdC5nb29n
bGVjb2RlLmNvbS9zdm4vaHRtbC9pbmRleC1jLmh0bWwKKyAgICAgICAgTmVpdGhlciBGaXJlZm94
IG5vciBJRSBoYXMgc3VjaCBhIGxpbWl0LgorCisgICAgICAgIEl0IHNlZW1zIHRoYXQgV2ViS2l0
IGNhbiBoYW5kbGUgYSBzaWduaWZpY2FudGx5IGhpZ2hlciBudW1iZXIgb2YgZnJhbWVzLCBhbmQK
KyAgICAgICAgdGhlIG9yaWdpbmFsIHJlYXNvbnMgZm9yIGltcG9zaW5nIHRoZSBsaW1pdCBhcmUg
YmVsaWV2ZWQgdG8gYmUgZ29uZS4KKworICAgICAgICBUZXN0czogY29tcG9zaXRpbmcvaWZyYW1l
cy9sb3RzLW9mLWlmcmFtZXMuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvaWZyYW1l
cy9sb3RzLW9mLW9iamVjdHMuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvaWZyYW1l
cy90b28tbWFueS1pZnJhbWVzLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL2lmcmFt
ZXMvdG9vLW1hbnktb2JqZWN0cy5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1l
bnRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlOjppc1VS
TEFsbG93ZWQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVHJlZTo6dW5pcXVlQ2hpbGROYW1lKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6aXNVUkxBbGxvd2VkKToKKwogMjAxMC0wNS0yMyAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcCBiL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKaW5kZXggNzU2ZGQ4NDM5N2ZiYWY2OWM5MzVhNTMxZDBm
M2YxOGE4ZmRkYTJmYi4uZDY0NTQ0YmUyMzQwMTdiMDk3NGI1MjZmOGY0ODk3MDE5MjNiZTdiOSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCkBAIC03MSwxNSArNzEsOCBAQCBi
b29sIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjppc1VSTEFsbG93ZWQoKSBjb25zdAogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIC8vIERvbid0IGFsbG93IG1vcmUgdGhhbiAy
MDAgdG90YWwgZnJhbWVzIGluIGEgc2V0LiBUaGlzIHNlZW1zCi0gICAgLy8gbGlrZSBhIHJlYXNv
bmFibGUgdXBwZXIgYm91bmQsIGFuZCBvdGhlcndpc2UgbXV0dWFsbHkgcmVjdXJzaXZlCi0gICAg
Ly8gZnJhbWVzZXQgcGFnZXMgY2FuIHF1aWNrbHkgYnJpbmcgdGhlIHByb2dyYW0gdG8gaXRzIGtu
ZWVzIHdpdGgKLSAgICAvLyBleHBvbmVudGlhbCBncm93dGggaW4gdGhlIG51bWJlciBvZiBmcmFt
ZXMuCi0gICAgLy8gRklYTUU6IFRoaXMgbGltaXQgY291bGQgYmUgaGlnaGVyLCBidXQgYmVjYXVz
ZSBXZWJLaXQgaGFzIHNvbWUKLSAgICAvLyBhbGdvcml0aG1zIHRoYXQgaGFwcGVuIHdoaWxlIGxv
YWRpbmcgd2hpY2ggYXBwZWFyIHRvIGJlIE5eMiBvcgotICAgIC8vIHdvcnNlIGluIHRoZSBudW1i
ZXIgb2YgZnJhbWVzLCB3ZSdsbCBrZWVwIGl0IGF0IDIwMCBmb3Igbm93LgogICAgIGlmIChGcmFt
ZSogcGFyZW50RnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKSB7Ci0gICAgICAgIGlmIChwYXJl
bnRGcmFtZS0+cGFnZSgpLT5mcmFtZUNvdW50KCkgPiAyMDApCisgICAgICAgIGlmIChwYXJlbnRG
cmFtZS0+cGFnZSgpLT5mcmFtZUNvdW50KCkgPj0gUGFnZTo6bV9tYXhOYnJPZkZyYW1lcykKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9GcmFtZVRyZWUuY3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5kZXggZDYxNzBl
MTM1OWQ2NTdjZGNjNGM0YWMzOGVkYzBmNTJjNTAxMjQwZi4uMWYwNjA0Yzg5ZThjM2ZkMzQyYjJl
ZWFjNzc0NGJhMjFjZWRjZTUyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCBB
dG9taWNTdHJpbmcgRnJhbWVUcmVlOjp1bmlxdWVDaGlsZE5hbWUoY29uc3QgQXRvbWljU3RyaW5n
JiByZXF1ZXN0ZWROYW1lKSBjb25zdAogCiAgICAgLy8gU3VmZml4IGJ1ZmZlciBoYXMgbW9yZSB0
aGFuIGVub3VnaCBzcGFjZSBmb3I6CiAgICAgLy8gICAgIDEwIGNoYXJhY3RlcnMgYmVmb3JlIHRo
ZSBudW1iZXIKLSAgICAvLyAgICAgYSBudW1iZXIgKDMgZGlnaXRzIGZvciB0aGUgaGlnaGVzdCB0
aGlzIGdldHMgaW4gcHJhY3RpY2UsIDIwIGRpZ2l0cyBmb3IgdGhlIGxhcmdlc3QgNjQtYml0IGlu
dGVnZXIpCisgICAgLy8gICAgIGEgbnVtYmVyICgyMCBkaWdpdHMgZm9yIHRoZSBsYXJnZXN0IDY0
LWJpdCBpbnRlZ2VyKQogICAgIC8vICAgICA2IGNoYXJhY3RlcnMgYWZ0ZXIgdGhlIG51bWJlcgog
ICAgIC8vICAgICB0cmFpbGluZyBudWxsIGJ5dGUKICAgICAvLyBCdXQgd2Ugc3RpbGwgdXNlIHNu
cHJpbnRmIGp1c3QgdG8gYmUgZXh0cmEtc2FmZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Q
YWdlLmggYi9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGFhN2JhZTE0OTg5MDFkOGVhYTEzYTE2
MzYxNTgzMWU2NzQxYzBhYmUuLmQyMmE0NjUyNDIzMTQwMGJlY2I0MWIxYzBiZmIxNGFhNjc0MzU4
NTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvV2ViQ29yZS9wYWdlL1Bh
Z2UuaApAQCAtMjMyLDYgKzIzMiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogaW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCgpIGNvbnN0OwogI2VuZGlmCisKKyAgICAgICAgLy8gRG9uJ3QgYWxsb3cgbW9y
ZSB0aGFuIGEgY2VydGFpbiBudW1iZXIgb2YgZnJhbWVzIGluIGEgcGFnZS4KKyAgICAgICAgLy8g
VGhpcyBzZWVtcyBsaWtlIGEgcmVhc29uYWJsZSB1cHBlciBib3VuZCwgYW5kIG90aGVyd2lzZSBt
dXR1YWxseQorICAgICAgICAvLyByZWN1cnNpdmUgZnJhbWVzZXQgcGFnZXMgY2FuIHF1aWNrbHkg
YnJpbmcgdGhlIHByb2dyYW0gdG8gaXRzIGtuZWVzCisgICAgICAgIC8vIHdpdGggZXhwb25lbnRp
YWwgZ3Jvd3RoIGluIHRoZSBudW1iZXIgb2YgZnJhbWVzLgorICAgICAgICBzdGF0aWMgY29uc3Qg
aW50IG1fbWF4TmJyT2ZGcmFtZXMgPSAxMDAwOwogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQg
aW5pdEdyb3VwKCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVk
ZGVkT2JqZWN0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNw
cAppbmRleCA4NjE5ZmMwMTBiMTMyOTg3NWYxNmE5MTc2NmUyNTYxNjY2NzM1NjkzLi5kMGJjMTM5
YmVlNDFiNmMyMTNjMTQ5NDFjNzg1ODQxMzc1ZDQzMzdlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBAIC05NCw3ICs5NCw3IEBAIGJvb2wgUmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdAogCiBzdGF0
aWMgYm9vbCBpc1VSTEFsbG93ZWQoRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiB1cmwpCiB7
Ci0gICAgaWYgKGRvYy0+ZnJhbWUoKS0+cGFnZSgpLT5mcmFtZUNvdW50KCkgPj0gMjAwKQorICAg
IGlmIChkb2MtPmZyYW1lKCktPnBhZ2UoKS0+ZnJhbWVDb3VudCgpID49IFBhZ2U6Om1fbWF4TmJy
T2ZGcmFtZXMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFdlIGFsbG93IG9uZSBs
ZXZlbCBvZiBzZWxmLXJlZmVyZW5jZSBiZWNhdXNlIHNvbWUgc2l0ZXMgZGVwZW5kIG9uIHRoYXQu
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57002</attachid>
            <date>2010-05-25 04:06:07 -0700</date>
            <delta_ts>2010-05-27 03:28:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39427-20100525120605.patch</filename>
            <type>text/plain</type>
            <size>9419</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YmE5MmU5NDQ5YjZmYTgyNjUxOGRkY2Q0NmFmNGFlM2Q0MWVkN2NjLi5lOTUzZGQx
NmViYjUwYzZkNGIzMDI0MGI4MGQwNTc5OGIwNDg5MTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDUtMjUgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbmNyZWFzZSBsaW1pdCBv
biBudW1iZXIgb2YgKGkpZnJhbWVzIGZyb20gMjAwIHRvIDEwMDAuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQyNworCisgICAgICAgIEFkZCBsYXlv
dXQgdGVzdHMgdGhhdCB0ZXN0IHRoZSBwb3NzaWJpbGl0eSBvZiBnZW5lcmF0aW5nIDEwMDAgaWZy
YW1lcy4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvbG90cy1vZi1pZnJhbWVzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9sb3RzLW9m
LWlmcmFtZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9sb3Rz
LW9mLW9iamVjdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9p
ZnJhbWVzL2xvdHMtb2Ytb2JqZWN0cy5odG1sOiBBZGRlZC4KKwogMjAxMC0wNS0yNCAgUGF2ZWwg
RmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQ6
IGNsZWFuaW5nIHVwLCBhY3R1YWxseSBkZWxldGluZyBmYWxzZSBleHBlY3RhdGlvbnMuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2xvdHMtb2YtaWZyYW1lcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2xvdHMtb2YtaWZy
YW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM1MTc2MzhjOGJiMDIxOWZhZjI2Y2E1ZjUx
MWVjMzFkOTVmN2NjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2lmcmFtZXMvbG90cy1vZi1pZnJhbWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1N1
Y2Vzc2Z1bGx5IGNyZWF0ZWQgMTAwMCBmcmFtZXMuCitTdWNjZXNzZnVsbHkgYmxvY2tlZCBjcmVh
dGlvbiBvZiBmcmFtZSBudW1iZXIgMTAwMS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9sb3RzLW9mLWlmcmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvbG90cy1vZi1pZnJhbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQwYmQxMTEw
ODk4Njg1NjIwYzFmNTgwZWY5MWZkODcyNTA0MDc3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvbG90cy1vZi1pZnJhbWVzLmh0bWwKQEAgLTAsMCAr
MSw0MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJh
bnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cis8
aHRtbD4KKzxoZWFkPgorPHRpdGxlPkxvdHMgb2YgaWZyYW1lczwvdGl0bGU+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisgIHZhciBtYXhOdW1iZXJPZkZyYW1lcyA9IDEwMDA7CisK
KyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisKKyAgZnVuY3Rpb24gY3JlYXRlSUZyYW1lcygpIHsKKyAgICB2
YXIgc3RyID0gIjxkaXYgaWQ9XCJzdGF0dXNcIj48L2Rpdj4iOworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbWF4TnVtYmVyT2ZGcmFtZXMgKyAxOyBpKyspIHsKKyAgICAgIHN0ciArPSAiPGlmcmFt
ZSBpZD1cImkiICsgaSArICJcIiBzcmM9XCJkYXRhOnRleHQvaHRtbCxpZnJhbWVfIiArIGkgKyAi
XCI+PC9pZnJhbWU+IjsKKyAgICB9CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImJvZHkiKVswXS5pbm5lckhUTUwgPSBzdHI7CisKKyAgICB2YXIgcmVzdWx0cyA9ICIiOworCisg
ICAgdmFyIGYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaSIgKyAobWF4TnVtYmVyT2ZGcmFt
ZXMgLSAxKSk7CisgICAgaWYgKGYgJiYgZi5jb250ZW50V2luZG93KSB7CisgICAgICByZXN1bHRz
ICs9ICJTdWNlc3NmdWxseSBjcmVhdGVkICIgKyBtYXhOdW1iZXJPZkZyYW1lcyArICIgZnJhbWVz
Ljxicj4iOworICAgIH0gZWxzZSB7CisgICAgICByZXN1bHRzICs9ICJGYWlsZWQgdG8gY3JlYXRl
ICIgKyBtYXhOdW1iZXJPZkZyYW1lcyArICIgZnJhbWVzLjxicj4iOworICAgIH0KKworICAgIHZh
ciBnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImkiICsgbWF4TnVtYmVyT2ZGcmFtZXMpOwor
ICAgIGlmIChnICYmIGcuY29udGVudFdpbmRvdykgeworICAgICAgcmVzdWx0cyArPSAiRmFpbGVk
IHRvIGJsb2NrIGNyZWF0aW9uIG9mIGZyYW1lIG51bWJlciAiICsgKG1heE51bWJlck9mRnJhbWVz
ICsgMSkgKyAiLiI7CisgICAgfSBlbHNlIHsKKyAgICAgIHJlc3VsdHMgKz0gIlN1Y2Nlc3NmdWxs
eSBibG9ja2VkIGNyZWF0aW9uIG9mIGZyYW1lIG51bWJlciAiICsgKG1heE51bWJlck9mRnJhbWVz
ICsgMSkgKyAiLiI7CisgICAgfQorCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXR1
cyIpLmlubmVySFRNTCA9IHJlc3VsdHM7CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25Mb2FkPSJjcmVhdGVJRnJhbWVzKCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sb3RzLW9mLW9iamVjdHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sb3RzLW9mLW9iamVjdHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2NmM1NjIyNTFjYTEyZDFjN2Y4MWVhOTRlNjE0YzUzOTFm
ZWVlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVz
L2xvdHMtb2Ytb2JqZWN0cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitDcmVhdGVkIHBy
ZWNpc2VseSAxMDAwIG9iamVjdHMuCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvbG90cy1vZi1vYmplY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL2xvdHMtb2Ytb2JqZWN0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlNWVjYjRh
OTUzMGY3ZWRiN2QxOGM5ZGQ1OWFlM2I2OTc0MGRhNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2xvdHMtb2Ytb2JqZWN0cy5odG1sCkBAIC0wLDAg
KzEsMzUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRy
YW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgor
PGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5Mb3RzIG9mIG9iamVjdHM8L3RpdGxlPgorPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICB2YXIgbWF4TnVtYmVyT2ZGcmFtZXMgPSAxMDAwOwor
CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworCisgIHZhciBjcmVhdGVkT2JqZWN0cyA9IDA7CisgIGZ1bmN0
aW9uIGNvdW50KCkgeworICAgIGNyZWF0ZWRPYmplY3RzKys7CisKKyAgICBpZiAoY3JlYXRlZE9i
amVjdHMgPT0gbWF4TnVtYmVyT2ZGcmFtZXMpIHsKKyAgICAgIHZhciBzdHIgPSAiQ3JlYXRlZCBw
cmVjaXNlbHkgIiArIG1heE51bWJlck9mRnJhbWVzICsgIiBvYmplY3RzLjxicj5QQVNTIjsKKyAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGF0dXMiKS5pbm5lckhUTUwgPSBzdHI7Cisg
ICAgfSBlbHNlIGlmIChjcmVhdGVkT2JqZWN0cyA+IG1heE51bWJlck9mRnJhbWVzKSB7CisgICAg
ICB2YXIgc3RyID0gIkNyZWF0ZWQgIiArIGNyZWF0ZWRPYmplY3RzICsgIiBvYmplY3RzIChtYXg6
ICIgKyBtYXhOdW1iZXJPZkZyYW1lcyArICIpLjxicj5GQUlMIjsKKyAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzdGF0dXMiKS5pbm5lckhUTUwgPSBzdHI7CisgICAgfQorICB9CisKKyAg
ZnVuY3Rpb24gY3JlYXRlT2JqZWN0cyhuYnIpIHsKKyAgICB2YXIgc3RyID0gIjxkaXYgaWQ9XCJz
dGF0dXNcIj48L2Rpdj4iOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF4TnVtYmVyT2ZGcmFt
ZXMgKyAxOyBpKyspIHsKKyAgICAgIHN0ciArPSAiPG9iamVjdCBvbkxvYWQ9XCJjb3VudCgpXCIg
ZGF0YT1cImRhdGE6dGV4dC9odG1sLG9iamVjdF8iICsgaSArICJcIj48L29iamVjdD4iOworICAg
IH0KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLmlubmVySFRN
TCA9IHN0cjsKKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbkxvYWQ9ImNyZWF0ZU9i
amVjdHMoKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGI1ZjY0MjYyZmQ2NjI2MTNkNjMyOTIyMWQ3NDRj
NTAzYjQ3ZTg5OWEuLjRkNDdjMzQ2ZjBjODAzZjlkYjM3NmY1ODlkOTA1ZmIwMzdlYzJjNWEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMTAtMDUtMjUgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbmNy
ZWFzZSBsaW1pdCBvbiBudW1iZXIgb2YgKGkpZnJhbWVzIGZyb20gMjAwIHRvIDEwMDAuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQyNworCisgICAg
ICAgIFRoZSBsaW1pdCBvbiBudW1iZXIgb2YgaWZyYW1lcyB3YXMgaW50cm9kdWNlZCBpbiByMzcw
NyBiYWNrIGluIDIwMDMuCisgICAgICAgIEFuIGV4YW1wbGUgb2YgYSBwYWdlIHRoYXQgaXMgYnJv
a2VuIGJlY2F1c2Ugb2YgdGhpcyBpczoKKyAgICAgICAgaHR0cDovL3ZpbWNvbG9yc2NoZW1ldGVz
dC5nb29nbGVjb2RlLmNvbS9zdm4vaHRtbC9pbmRleC1jLmh0bWwKKyAgICAgICAgTmVpdGhlciBG
aXJlZm94IG5vciBJRSBoYXMgc3VjaCBhIGxpbWl0LgorCisgICAgICAgIEl0IHNlZW1zIHRoYXQg
V2ViS2l0IGNhbiBoYW5kbGUgYSBzaWduaWZpY2FudGx5IGhpZ2hlciBudW1iZXIgb2YgZnJhbWVz
LCBhbmQKKyAgICAgICAgdGhlIG9yaWdpbmFsIHJlYXNvbnMgZm9yIGltcG9zaW5nIHRoZSBsaW1p
dCBhcmUgYmVsaWV2ZWQgdG8gYmUgZ29uZS4KKworICAgICAgICBUZXN0czogY29tcG9zaXRpbmcv
aWZyYW1lcy9sb3RzLW9mLWlmcmFtZXMuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcv
aWZyYW1lcy9sb3RzLW9mLW9iamVjdHMuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MRnJhbWVF
bGVtZW50QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6
aXNVUkxBbGxvd2VkKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVRyZWU6OnVuaXF1ZUNoaWxkTmFtZSk6CisgICAgICAgICogcGFnZS9QYWdl
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmlzVVJMQWxsb3dlZCk6CisKIDIwMTAtMDUtMjQgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgTm8gcmV2aWV3OyBidWlsZCBmaXggb25seS4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAgYi9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCmluZGV4IDc1NmRkODQzOTdmYmFmNjlj
OTM1YTUzMWQwZjNmMThhOGZkZGEyZmIuLmZiMDVlOTEzOTRjYTY2ZGM5NjcxOGZiMWY4MWIyMWQx
NzBhY2QwNWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcApAQCAtNzEsMTUg
KzcxLDggQEAgYm9vbCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6aXNVUkxBbGxvd2VkKCkgY29uc3QK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICAvLyBEb24ndCBhbGxvdyBt
b3JlIHRoYW4gMjAwIHRvdGFsIGZyYW1lcyBpbiBhIHNldC4gVGhpcyBzZWVtcwotICAgIC8vIGxp
a2UgYSByZWFzb25hYmxlIHVwcGVyIGJvdW5kLCBhbmQgb3RoZXJ3aXNlIG11dHVhbGx5IHJlY3Vy
c2l2ZQotICAgIC8vIGZyYW1lc2V0IHBhZ2VzIGNhbiBxdWlja2x5IGJyaW5nIHRoZSBwcm9ncmFt
IHRvIGl0cyBrbmVlcyB3aXRoCi0gICAgLy8gZXhwb25lbnRpYWwgZ3Jvd3RoIGluIHRoZSBudW1i
ZXIgb2YgZnJhbWVzLgotICAgIC8vIEZJWE1FOiBUaGlzIGxpbWl0IGNvdWxkIGJlIGhpZ2hlciwg
YnV0IGJlY2F1c2UgV2ViS2l0IGhhcyBzb21lCi0gICAgLy8gYWxnb3JpdGhtcyB0aGF0IGhhcHBl
biB3aGlsZSBsb2FkaW5nIHdoaWNoIGFwcGVhciB0byBiZSBOXjIgb3IKLSAgICAvLyB3b3JzZSBp
biB0aGUgbnVtYmVyIG9mIGZyYW1lcywgd2UnbGwga2VlcCBpdCBhdCAyMDAgZm9yIG5vdy4KICAg
ICBpZiAoRnJhbWUqIHBhcmVudEZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkgewotICAgICAg
ICBpZiAocGFyZW50RnJhbWUtPnBhZ2UoKS0+ZnJhbWVDb3VudCgpID4gMjAwKQorICAgICAgICBp
ZiAocGFyZW50RnJhbWUtPnBhZ2UoKS0+ZnJhbWVDb3VudCgpID49IFBhZ2U6Om1heE51bWJlck9m
RnJhbWVzKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgYi9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcApp
bmRleCBkNjE3MGUxMzU5ZDY1N2NkY2M0YzRhYzM4ZWRjMGY1MmM1MDEyNDBmLi4xZjA2MDRjODll
OGMzZmQzNDJiMmVlYWM3NzQ0YmEyMWNlZGNlNTI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
RnJhbWVUcmVlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcApAQCAtMTM2LDcg
KzEzNiw3IEBAIEF0b21pY1N0cmluZyBGcmFtZVRyZWU6OnVuaXF1ZUNoaWxkTmFtZShjb25zdCBB
dG9taWNTdHJpbmcmIHJlcXVlc3RlZE5hbWUpIGNvbnN0CiAKICAgICAvLyBTdWZmaXggYnVmZmVy
IGhhcyBtb3JlIHRoYW4gZW5vdWdoIHNwYWNlIGZvcjoKICAgICAvLyAgICAgMTAgY2hhcmFjdGVy
cyBiZWZvcmUgdGhlIG51bWJlcgotICAgIC8vICAgICBhIG51bWJlciAoMyBkaWdpdHMgZm9yIHRo
ZSBoaWdoZXN0IHRoaXMgZ2V0cyBpbiBwcmFjdGljZSwgMjAgZGlnaXRzIGZvciB0aGUgbGFyZ2Vz
dCA2NC1iaXQgaW50ZWdlcikKKyAgICAvLyAgICAgYSBudW1iZXIgKDIwIGRpZ2l0cyBmb3IgdGhl
IGxhcmdlc3QgNjQtYml0IGludGVnZXIpCiAgICAgLy8gICAgIDYgY2hhcmFjdGVycyBhZnRlciB0
aGUgbnVtYmVyCiAgICAgLy8gICAgIHRyYWlsaW5nIG51bGwgYnl0ZQogICAgIC8vIEJ1dCB3ZSBz
dGlsbCB1c2Ugc25wcmludGYganVzdCB0byBiZSBleHRyYS1zYWZlLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL1BhZ2UuaCBiL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYWE3YmFlMTQ5ODkw
MWQ4ZWFhMTNhMTYzNjE1ODMxZTY3NDFjMGFiZS4uYjkzMTA5MjRmMzQwZTQ0OTVjODY4NzNhODU3
MGVjZmJhZGRmZjU4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC0yMzIsNiArMjMyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiBp
bnNwZWN0b3JUaW1lbGluZUFnZW50KCkgY29uc3Q7CiAjZW5kaWYKKworICAgICAgICAvLyBEb24n
dCBhbGxvdyBtb3JlIHRoYW4gYSBjZXJ0YWluIG51bWJlciBvZiBmcmFtZXMgaW4gYSBwYWdlLgor
ICAgICAgICAvLyBUaGlzIHNlZW1zIGxpa2UgYSByZWFzb25hYmxlIHVwcGVyIGJvdW5kLCBhbmQg
b3RoZXJ3aXNlIG11dHVhbGx5CisgICAgICAgIC8vIHJlY3Vyc2l2ZSBmcmFtZXNldCBwYWdlcyBj
YW4gcXVpY2tseSBicmluZyB0aGUgcHJvZ3JhbSB0byBpdHMga25lZXMKKyAgICAgICAgLy8gd2l0
aCBleHBvbmVudGlhbCBncm93dGggaW4gdGhlIG51bWJlciBvZiBmcmFtZXMuCisgICAgICAgIHN0
YXRpYyBjb25zdCBpbnQgbWF4TnVtYmVyT2ZGcmFtZXMgPSAxMDAwOwogICAgIHByaXZhdGU6CiAg
ICAgICAgIHZvaWQgaW5pdEdyb3VwKCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVk
ZGVkT2JqZWN0LmNwcAppbmRleCA4NjE5ZmMwMTBiMTMyOTg3NWYxNmE5MTc2NmUyNTYxNjY2NzM1
NjkzLi4zZDMyNzhhNTFmNDU0YjFmYjllZWNiYzUwNzcyODBjOGMzMWUxNmZhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBAIC05NCw3ICs5NCw3IEBAIGJv
b2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBj
b25zdAogCiBzdGF0aWMgYm9vbCBpc1VSTEFsbG93ZWQoRG9jdW1lbnQqIGRvYywgY29uc3QgU3Ry
aW5nJiB1cmwpCiB7Ci0gICAgaWYgKGRvYy0+ZnJhbWUoKS0+cGFnZSgpLT5mcmFtZUNvdW50KCkg
Pj0gMjAwKQorICAgIGlmIChkb2MtPmZyYW1lKCktPnBhZ2UoKS0+ZnJhbWVDb3VudCgpID49IFBh
Z2U6Om1heE51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBX
ZSBhbGxvdyBvbmUgbGV2ZWwgb2Ygc2VsZi1yZWZlcmVuY2UgYmVjYXVzZSBzb21lIHNpdGVzIGRl
cGVuZCBvbiB0aGF0Lgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>