<?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>89990</bug_id>
          
          <creation_ts>2012-06-26 10:19:56 -0700</creation_ts>
          <short_desc>NodesFromRect doesn&apos;t work on SVG root elements</short_desc>
          <delta_ts>2020-03-14 17:07:07 -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>Layout and Rendering</component>
          <version>420+</version>
          <rep_platform>All</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=209110</see_also>
          <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>1</everconfirmed>
          <reporter name="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>eric</cc>
    
    <cc>morrita</cc>
    
    <cc>pdr</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>657693</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-06-26 10:19:56 -0700</bug_when>
    <thetext>The SVG root elements implements nodeAtPoint in a way that doesn&apos;t support rect-based hit testing. 

Note that SVG elements in general doesn&apos;t support rect-based hit testing, but this bug only tracks the issue on the root element as the first step.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657698</commentid>
    <comment_count>1</comment_count>
      <attachid>149555</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-06-26 10:24:55 -0700</bug_when>
    <thetext>Created attachment 149555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657701</commentid>
    <comment_count>2</comment_count>
      <attachid>149557</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-06-26 10:28:25 -0700</bug_when>
    <thetext>Created attachment 149557
Patch

Fix typo in comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658324</commentid>
    <comment_count>3</comment_count>
      <attachid>149557</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-06-26 21:33:37 -0700</bug_when>
    <thetext>Comment on attachment 149557
Patch

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

A few drive-by comments from a non-reviewer.

This is a cool API and I didn&apos;t even know we had it. Thanks for tackling it in SVG :)

It may be easiest for you to split the test into two (or more) tests: one just testing the SVG root hit testing with your new code (that passes), and a second (or more) testing elements in SVG that will be marked as fail until noteAtFloatPoint is updated. I think much more rigorous testing will be needed for the rect/circle/path/etc case, such as transform=translate or scale.

&gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:-423
&gt; -    // Note: For now, we&apos;re ignoring hits to border and padding for &lt;svg&gt;

Isn&apos;t this comment still valid?

&gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:439
&gt; +    if (visibleToHitTesting() &amp;&amp; hitTestAction == HitTestBlockBackground) {

This will be faster if the conditions are reversed.

&gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:444
&gt; +        LayoutRect boundsRect(accumulatedOffset + location(), size());

There are 4 (soon to be 5!) bounding rects of various types in SVG elements. Could &quot;hitTestArea&quot; be used here instead of boundsRect?

&gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:446
&gt; +            updateHitTestResult(result, pointInBorderBox);

Is using pointInBorderBox here correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658479</commentid>
    <comment_count>4</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-06-27 02:15:49 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 149557 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149557&amp;action=review
&gt; 
&gt; A few drive-by comments from a non-reviewer.
&gt; 
&gt; This is a cool API and I didn&apos;t even know we had it. Thanks for tackling it in SVG :)
&gt; 
&gt; It may be easiest for you to split the test into two (or more) tests: one just testing the SVG root hit testing with your new code (that passes), and a second (or more) testing elements in SVG that will be marked as fail until noteAtFloatPoint is updated. I think much more rigorous testing will be needed for the rect/circle/path/etc case, such as transform=translate or scale.
&gt; 
I do expect more tests to be added as SVG elements get better support. It just not that easy to make a rect-based hit test of SVG root-elements that wouldn&apos;t be affected by such improvements. 

&gt; &gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:-423
&gt; &gt; -    // Note: For now, we&apos;re ignoring hits to border and padding for &lt;svg&gt;
&gt; 
&gt; Isn&apos;t this comment still valid?
&gt; 
No, hits in the border and padding are with this change now considered hits on the SVG root element background. 

&gt; &gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:444
&gt; &gt; +        LayoutRect boundsRect(accumulatedOffset + location(), size());
&gt; 
&gt; There are 4 (soon to be 5!) bounding rects of various types in SVG elements. Could &quot;hitTestArea&quot; be used here instead of boundsRect?
&gt; 
The terminology used here is the same as what is used in other implementations of nodeAtPoint. It might not be suitable for real SVG elements, but the SVG root is treated more like a normal Render object than a SVG element.

&gt; &gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:446
&gt; &gt; +            updateHitTestResult(result, pointInBorderBox);
&gt; 
&gt; Is using pointInBorderBox here correct?

Well, I think it is now consistent with other nodeAtPoint implementations. Is there any reason you think it should be different in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658547</commentid>
    <comment_count>5</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-06-27 05:10:01 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; &gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:446
&gt; &gt; &gt; +            updateHitTestResult(result, pointInBorderBox);
&gt; &gt; 
&gt; &gt; Is using pointInBorderBox here correct?
&gt; 
&gt; Well, I think it is now consistent with other nodeAtPoint implementations. Is there any reason you think it should be different in this case?

I have checked. In WebCore the only place that uses the localPoint is renderWidget, which assumes it is offset from the border-box. It might not be the true local-point, but it is what is currently assumed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666776</commentid>
    <comment_count>6</comment_count>
      <attachid>149557</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-07-11 08:40:15 -0700</bug_when>
    <thetext>Comment on attachment 149557
Patch

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

looks good generally.

&gt; Source/WebCore/ChangeLog:8
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Test: fast/dom/nodesFromRect-svg.html

please be more descriptive here.

&gt;&gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:439
&gt;&gt; +    if (visibleToHitTesting() &amp;&amp; hitTestAction == HitTestBlockBackground) {
&gt; 
&gt; This will be faster if the conditions are reversed.

are you changing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666780</commentid>
    <comment_count>7</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-07-11 08:48:43 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 149557 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149557&amp;action=review
&gt; 
&gt; looks good generally.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        Test: fast/dom/nodesFromRect-svg.html
&gt; 
&gt; please be more descriptive here.
&gt; 
Right.

&gt; &gt;&gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:439
&gt; &gt;&gt; +    if (visibleToHitTesting() &amp;&amp; hitTestAction == HitTestBlockBackground) {
&gt; &gt; 
&gt; &gt; This will be faster if the conditions are reversed.
&gt; 
&gt; are you changing this?

Of course,  I just wanted to be sure the rest was okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666789</commentid>
    <comment_count>8</comment_count>
      <attachid>151714</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-07-11 09:16:32 -0700</bug_when>
    <thetext>Created attachment 151714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666819</commentid>
    <comment_count>9</comment_count>
      <attachid>151714</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-07-11 09:56:38 -0700</bug_when>
    <thetext>Comment on attachment 151714
Patch

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

&gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:445
&gt; +        if (pointInContainer.intersects(boundsRect)) {

I found it hard to read as a &apos;point&apos; when it is actually an area.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666823</commentid>
    <comment_count>10</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-07-11 10:01:32 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 151714 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151714&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:445
&gt; &gt; +        if (pointInContainer.intersects(boundsRect)) {
&gt; 
&gt; I found it hard to read as a &apos;point&apos; when it is actually an area.

True, but it is consistent with current use in other nodeAtPoint implementations. We should probably updated them all collectively at some point to better names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666831</commentid>
    <comment_count>11</comment_count>
      <attachid>151714</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-11 10:09:19 -0700</bug_when>
    <thetext>Comment on attachment 151714
Patch

Clearing flags on attachment: 151714

Committed r122339: &lt;http://trac.webkit.org/changeset/122339&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666833</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-11 10:09:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666842</commentid>
    <comment_count>13</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-07-11 10:17:58 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 151714 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151714&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/svg/RenderSVGRoot.cpp:445
&gt; &gt; &gt; +        if (pointInContainer.intersects(boundsRect)) {
&gt; &gt; 
&gt; &gt; I found it hard to read as a &apos;point&apos; when it is actually an area.
&gt; 
&gt; True, but it is consistent with current use in other nodeAtPoint implementations. We should probably updated them all collectively at some point to better names.

lets file a bug about it?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149555</attachid>
            <date>2012-06-26 10:24:55 -0700</date>
            <delta_ts>2012-06-26 10:28:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89990-20120626192500.patch</filename>
            <type>text/plain</type>
            <size>9250</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBiNTBhZjA5YTc2MGZj
OWI3YzNlNTZmYzA0NGUzMTBkZmU5YWEzZC4uMjcwNDY2OGZlNmUwMmM2MzA0N2FhZWVjODU2MjU0
MzdhYjVhNDY2MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTI2ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIE5v
ZGVzRnJvbVJlY3QgZG9lc24ndCB3b3JrIG9uIFNWRyByb290IGVsZW1lbnRzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk5OTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9ub2Rl
c0Zyb21SZWN0LXN2Zy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6bm9kZUF0UG9pbnQpOgor
CiAyMDEyLTA2LTI2ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0Pgog
CiAgICAgICAgIFtUZXhtYXBdIEJ1ZyBmaXggdHlwbyBhYm91dCBjb21wdXRpbmcgYnl0ZXNQZXJM
aW5lIGluIEJpdG1hcFRleHR1cmVHTC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IGMwOTQ1N2U2MWIxYjc1OTE0NzM0N2RmYzAwNTg1OWM3
MjEzMDU4NGQuLjA0NDI5MTczNzJlYmFhMjQ0MjlkOTc1NGVkYjRkZmU1ZGRiMWQyMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtNDE4
LDMyICs0MTgsMzUgQEAgdm9pZCBSZW5kZXJTVkdSb290Ojp1cGRhdGVDYWNoZWRCb3VuZGFyaWVz
KCkKIGJvb2wgUmVuZGVyU1ZHUm9vdDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3Qm
IHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSGl0VGVzdFBvaW50JiBwb2lu
dEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRl
c3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKIHsKICAgICBMYXlvdXRQb2ludCBwb2ludEluUGFyZW50
ID0gcG9pbnRJbkNvbnRhaW5lci5wb2ludCgpIC0gdG9MYXlvdXRTaXplKGFjY3VtdWxhdGVkT2Zm
c2V0KTsKLSAgICBMYXlvdXRQb2ludCBwb2ludEluQm9yZGVyQm94KHBvaW50SW5QYXJlbnQueCgp
IC0geCgpLCBwb2ludEluUGFyZW50LnkoKSAtIHkoKSk7Ci0KLSAgICAvLyBOb3RlOiBGb3Igbm93
LCB3ZSdyZSBpZ25vcmluZyBoaXRzIHRvIGJvcmRlciBhbmQgcGFkZGluZyBmb3IgPHN2Zz4KLSAg
ICBpZiAoIWNvbnRlbnRCb3hSZWN0KCkuY29udGFpbnMocG9pbnRJbkJvcmRlckJveCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IGxvY2FsVG9Q
YXJlbnRUcmFuc2Zvcm0oKS5pbnZlcnNlKCkubWFwUG9pbnQoRmxvYXRQb2ludChwb2ludEluUGFy
ZW50KSk7Ci0KLSAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBsYXN0Q2hpbGQoKTsgY2hp
bGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7Ci0gICAgICAgIGlmIChjaGls
ZC0+bm9kZUF0RmxvYXRQb2ludChyZXF1ZXN0LCByZXN1bHQsIGxvY2FsUG9pbnQsIGhpdFRlc3RB
Y3Rpb24pKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogQ1NTL0hUTUwgYXNzdW1lcyB0aGUgbG9j
YWwgcG9pbnQgaXMgcmVsYXRpdmUgdG8gdGhlIGJvcmRlciBib3gsIHJpZ2h0PwotICAgICAgICAg
ICAgdXBkYXRlSGl0VGVzdFJlc3VsdChyZXN1bHQsIHBvaW50SW5Cb3JkZXJCb3gpOwotICAgICAg
ICAgICAgLy8gRklYTUU6IG5vZGVBdEZsb2F0UG9pbnQoKSBkb2Vzbid0IGhhbmRsZSByZWN0LWJh
c2VkIGhpdCB0ZXN0cyB5ZXQuCi0gICAgICAgICAgICByZXN1bHQuYWRkTm9kZVRvUmVjdEJhc2Vk
VGVzdFJlc3VsdChjaGlsZC0+bm9kZSgpLCBwb2ludEluQ29udGFpbmVyKTsKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgIExheW91dFBvaW50IHBvaW50SW5Cb3JkZXJCb3ggPSBwb2ludElu
UGFyZW50IC0gdG9MYXlvdXRTaXplKGxvY2F0aW9uKCkpOworCisgICAgLy8gT25seSB0ZXN0IFNW
RyBjb250ZW50IGlmIHRoZSBwb2ludCBpcyBpbiBvdXIgY29udGVudCBib3guCisgICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIGJlIGEgaW50ZXJzZWN0aW9uIHdoZW4gcmVjdC1iYXNlZCBoaXQgdGVz
dHMgYXJlIHN1cnBvc2VkIGJ5IG5vZGVBdEZsb2F0UG9pbnQuCisgICAgaWYgKGNvbnRlbnRCb3hS
ZWN0KCkuY29udGFpbnMocG9pbnRJbkJvcmRlckJveCkpIHsKKyAgICAgICAgRmxvYXRQb2ludCBs
b2NhbFBvaW50ID0gbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpLmludmVyc2UoKS5tYXBQb2ludChG
bG9hdFBvaW50KHBvaW50SW5QYXJlbnQpKTsKKworICAgICAgICBmb3IgKFJlbmRlck9iamVjdCog
Y2hpbGQgPSBsYXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGlu
ZygpKSB7CisgICAgICAgICAgICBpZiAoY2hpbGQtPm5vZGVBdEZsb2F0UG9pbnQocmVxdWVzdCwg
cmVzdWx0LCBsb2NhbFBvaW50LCBoaXRUZXN0QWN0aW9uKSkgeworICAgICAgICAgICAgICAgIHVw
ZGF0ZUhpdFRlc3RSZXN1bHQocmVzdWx0LCBwb2ludEluQm9yZGVyQm94KTsKKyAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogbm9kZUF0RmxvYXRQb2ludCgpIGRvZXNuJ3QgaGFuZGxlIHJlY3QtYmFz
ZWQgaGl0IHRlc3RzIHlldC4KKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkTm9kZVRvUmVjdEJh
c2VkVGVzdFJlc3VsdChjaGlsZC0+bm9kZSgpLCBwb2ludEluQ29udGFpbmVyKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAog
ICAgIC8vIElmIHdlIGRpZG4ndCBlYXJseSBleGl0IGFib3ZlLCB3ZSd2ZSBqdXN0IGhpdCB0aGUg
Y29udGFpbmVyIDxzdmc+IGVsZW1lbnQuIFVubGlrZSBTVkcgMS4xLCAybmQgRWRpdGlvbiBhbGxv
d3MgY29udGFpbmVyIGVsZW1lbnRzIHRvIGJlIGhpdC4KLSAgICBpZiAoaGl0VGVzdEFjdGlvbiA9
PSBIaXRUZXN0QmxvY2tCYWNrZ3JvdW5kICYmIHN0eWxlKCktPnBvaW50ZXJFdmVudHMoKSAhPSBQ
RV9OT05FKSB7CisgICAgaWYgKHZpc2libGVUb0hpdFRlc3RpbmcoKSAmJiBoaXRUZXN0QWN0aW9u
ID09IEhpdFRlc3RCbG9ja0JhY2tncm91bmQpIHsKICAgICAgICAgLy8gT25seSByZXR1cm4gdHJ1
ZSBoZXJlLCBpZiB0aGUgbGFzdCBoaXQgdGVzdGluZyBwaGFzZSAnQmxvY2tCYWNrZ3JvdW5kJyBp
cyBleGVjdXRlZC4gSWYgd2UnZCByZXR1cm4gdHJ1ZSBpbiB0aGUgJ0ZvcmVncm91bmQnIHBoYXNl
LAogICAgICAgICAvLyBoaXQgdGVzdGluZyB3b3VsZCBzdG9wIGltbWVkaWF0ZWx5LiBGb3IgU1ZH
IG9ubHkgdHJlZXMgdGhpcyBkb2Vzbid0IG1hdHRlci4gVGhvdWdoIHdoZW4gd2UgaGF2ZSBhIDxm
b3JlaWduT2JqZWN0PiBzdWJ0cmVlIHdlIG5lZWQKICAgICAgICAgLy8gdG8gYmUgYWJsZSB0byBk
ZXRlY3QgaGl0cyBvbiB0aGUgYmFja2dyb3VuZCBvZiBhIDxkaXY+IGVsZW1lbnQuIElmIHdlJ2Qg
cmV0dXJuIHRydWUgaGVyZSBpbiB0aGUgJ0ZvcmVncm91bmQnIHBoYXNlLCB3ZSBhcmUgbm90IGFi
bGUgCiAgICAgICAgIC8vIHRvIGRldGVjdCB0aGVzZSBoaXRzIGFueW1vcmUuCi0gICAgICAgIHVw
ZGF0ZUhpdFRlc3RSZXN1bHQocmVzdWx0LCByb3VuZGVkTGF5b3V0UG9pbnQobG9jYWxQb2ludCkp
OwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgTGF5b3V0UmVjdCBib3VuZHNSZWN0KGFj
Y3VtdWxhdGVkT2Zmc2V0ICsgbG9jYXRpb24oKSwgc2l6ZSgpKTsKKyAgICAgICAgaWYgKHBvaW50
SW5Db250YWluZXIuaW50ZXJzZWN0cyhib3VuZHNSZWN0KSkgeworICAgICAgICAgICAgdXBkYXRl
SGl0VGVzdFJlc3VsdChyZXN1bHQsIHBvaW50SW5Cb3JkZXJCb3gpOworICAgICAgICAgICAgaWYg
KCFyZXN1bHQuYWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChub2RlKCksIHBvaW50SW5Db250
YWluZXIsIGJvdW5kc1JlY3QpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICB9CiAgICAgfQogCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU5N2MwMGMyZTA2YjNkNDhh
MmQ3NzU5Y2U1YzEwMjdlZjJkYWE2ZjcuLjQ1ZjQyN2JhZTZmYjE2NDQ0YTY5Yjc2YmRlOGFlMzZk
YmJmNGNkYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxMi0wNi0yNiAgQWxsYW4gU2FuZGZl
bGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQG5va2lhLmNvbT4KIAorICAgICAgICBOb2Rlc0Zyb21S
ZWN0IGRvZXNuJ3Qgd29yayBvbiBTVkcgcm9vdCBlbGVtZW50cy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTkwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBub2Rlc0Zyb21SZWN0IG9uIFNWRyBy
b290IGVsZW1lbnRzLgorCisgICAgICAgICogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1zdmctZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LXN2Zy5o
dG1sOiBBZGRlZC4KKworMjAxMi0wNi0yNiAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4u
amVuc2VuQG5va2lhLmNvbT4KKwogICAgICAgICBbUXRdIEJhc2VsaW5lIG1pc3NpbmcgZm9yIDNE
IHRyYW5zZm9ybXMgdGVzdHMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04OTk3MwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rl
c0Zyb21SZWN0LXN2Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zy
b21SZWN0LXN2Zy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDAwY2VmNzI3OTdhMTVlOTUyZjM4
YTk5NGVkMmVmNzEzNDE5ZmQxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL25vZGVzRnJvbVJlY3Qtc3ZnLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitEb2N1
bWVudDo6bm9kZXNGcm9tUmVjdCA6IFJlY3QtYmFzZWQgaGl0LXRlc3Rpbmcgb24gU1ZHIGVsZW1l
bnRzIC0gYnVnID8KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NoZWNrIGFyZWEg
aGl0cyBmdWxseSBpbnNpZGUgU1ZHIGVsZW1lbnQKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91
bmQgZm9yIHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKK1BBU1Mg
QWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMg
Zm91bmQgZm9yIHJlY3QKKworVGhlIGZvbGxvd2luZyB0ZXN0cyB3aWxsIGxpa2VseSBGQUlMIGFu
ZCB3aWxsIG5lZWQgdG8gYmUgdXBkYXRlZCBvbmNlIHJlY3QtYmFzZWQKK2hpdCB0ZXN0cyBhcmUg
c3VwcG9ydGVkIGluc2lkZSBTVkcgZWxlbWVudHM6CisKK0NoZWNrIGFyZWEgaGl0cyBvdmVybGFw
cGluZyBTVkcgZWxlbWVudAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAor
UEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorQ2hlY2sgYXJlYSBoaXRzIGFj
cm9zcyBTVkcgZWxlbWVudHMKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QK
KworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3Qtc3ZnLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LXN2Zy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZi
MTc2OTZhYTQ1Yjg2Yzc0MzMxZDBmMzUyOTRkYjc0YTdhNjg4MTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LXN2Zy5odG1sCkBAIC0wLDAgKzEs
ODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5Eb2N1bWVudDo6
bm9kZXNGcm9tUmVjdCA6IFJlY3QtYmFzZWQgaGl0LXRlc3Rpbmcgb24gU1ZHIGVsZW1lbnRzIC0g
YnVnID88L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAjc2FuZGJveCB7Cisg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0
b3A6IDBweDsKKyAgICAgICAgd2lkdGg6IDYwMHB4OworICAgICAgICBoZWlnaHQ6IDgwMHB4Owor
ICAgIH0KKyAgICAuc3ZnIHsKKyAgICAgICAgd2lkdGg6IDQwcHg7CisgICAgICAgIGhlaWdodDog
MjBweDsKKyAgICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgICBwYWRkaW5nOiAycHg7CisgICAg
ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgfQorPC9zdHlsZT4KKzxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9ub2Rlc0Zyb21SZWN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+
CisgICAgPGRpdiBpZD1zYW5kYm94PgorICAgICAgICA8ZGl2IGNsYXNzPXN2ZyBpZD1kaXYxPgor
ICAgICAgICAgICAgPHN2ZyBpZD1zdmcxIGhlaWdodD0xNiB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciPgorICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9InJlZCIgY3g9IjgiIGN5
PSI4IiByPSI1IiBmaWxsPSJyZWQiIC8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxkaXYgY2xhc3M9c3ZnIGlkPWRpdjI+CisgICAgICAgICAgICA8c3ZnIGlk
PXN2ZzIgaGVpZ2h0PTE2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAg
ICAgICAgICAgICAgPGNpcmNsZSBpZD0ieWVsbG93IiBjeD0iOCIgY3k9IjgiIHI9IjUiIGZpbGw9
InllbGxvdyIgLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGRpdiBjbGFzcz1zdmcgaWQ9ZGl2Mz4KKyAgICAgICAgICAgIDxzdmcgaWQ9c3ZnMyBoZWlnaHQ9
MTYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgICAgICAgICA8
Y2lyY2xlIGlkPSJncmVlbiIgY3g9IjgiIGN5PSI4IiByPSI1IiBmaWxsPSJncmVlbiIgLz4KKyAg
ICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxzY3Jp
cHQ+CisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBk
ZXNjcmlwdGlvbihkb2N1bWVudC50aXRsZSk7CisgICAgICAgICAgICB2YXIgZSA9IHt9OworCisg
ICAgICAgICAgICAvLyBTZXQgdXAgc2hvcnRjdXQgYWNjZXNzIHRvIGVsZW1lbnRzCisgICAgICAg
ICAgICBbJ3NhbmRib3gnLCAnZGl2MScsICdkaXYyJywgJ2RpdjMnLCAnZGl2NCcsCisgICAgICAg
ICAgICAgJ3N2ZzEnLCAnc3ZnMicsICdzdmczJywgJ3N2ZzQnLAorICAgICAgICAgICAgICdyZWQn
LCAneWVsbG93JywgJ2dyZWVuJ10uZm9yRWFjaChmdW5jdGlvbihhKSB7CisgICAgICAgICAgICAg
ICAgZVthXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpOworICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTsKKworICAgICAgICAgICAgZGVidWco
J0NoZWNrIGFyZWEgaGl0cyBmdWxseSBpbnNpZGUgU1ZHIGVsZW1lbnQnKTsKKyAgICAgICAgICAg
IGNoZWNrKDIwLCAyMCwgNCwgNCwgNCwgNCwgW2UucmVkXSk7CisgICAgICAgICAgICBjaGVjaygy
MCwgNTIsIDQsIDQsIDQsIDQsIFtlLnllbGxvd10pOworICAgICAgICAgICAgY2hlY2soMTgsIDgw
LCA0LCA0LCA0LCA0LCBbZS5ncmVlbl0pOworICAgICAgICAgICAgY2hlY2soMTQsIDE0LCAyLCAy
LCAyLCAyLCBbZS5zdmcxXSk7CisKKyAgICAgICAgICAgIGRlYnVnKCdcblRoZSBmb2xsb3dpbmcg
dGVzdHMgd2lsbCBsaWtlbHkgRkFJTCBhbmQgd2lsbCBuZWVkIHRvIGJlIHVwZGF0ZWQgb25jZSBy
ZWN0LWJhc2VkJykKKyAgICAgICAgICAgIGRlYnVnKCdoaXQgdGVzdHMgYXJlIHN1cHBvcnRlZCBp
bnNpZGUgU1ZHIGVsZW1lbnRzOlxuJyk7CisKKyAgICAgICAgICAgIGRlYnVnKCdDaGVjayBhcmVh
IGhpdHMgb3ZlcmxhcHBpbmcgU1ZHIGVsZW1lbnQnKTsKKyAgICAgICAgICAgIGNoZWNrKDEyLCAx
MiwgMiwgMiwgMiwgMiwgW2Uuc3ZnMSwgZS5kaXYxXSk7CisgICAgICAgICAgICBjaGVjayg2LCA1
MCwgNSwgMjAsIDUsIDUsIFtlLnN2ZzIsIGUuZGl2MiwgZS5zYW5kYm94XSk7CisKKyAgICAgICAg
ICAgIGRlYnVnKCdDaGVjayBhcmVhIGhpdHMgYWNyb3NzIFNWRyBlbGVtZW50cycpOworICAgICAg
ICAgICAgY2hlY2soMjAsIDMwLCAyMCwgMTAsIDMwLCAxMCwgW2Uuc3ZnMiwgZS5kaXYyLCBlLnN2
ZzEsIGUuZGl2MSwgZS5zYW5kYm94XSk7CisKKyAgICAgICAgICAgIGRlYnVnKCcnKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHJ1blRlc3QoKTsKKyAgICA8L3NjcmlwdD4KKworICAgIDxwIGlkPSdk
ZXNjcmlwdGlvbic+PC9wPgorICAgIDxzcGFuIGlkPSJjb25zb2xlIj48L3NwYW4+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149557</attachid>
            <date>2012-06-26 10:28:25 -0700</date>
            <delta_ts>2012-07-11 09:16:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89990-20120626192830.patch</filename>
            <type>text/plain</type>
            <size>9252</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBiNTBhZjA5YTc2MGZj
OWI3YzNlNTZmYzA0NGUzMTBkZmU5YWEzZC4uMjcwNDY2OGZlNmUwMmM2MzA0N2FhZWVjODU2MjU0
MzdhYjVhNDY2MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTI2ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIE5v
ZGVzRnJvbVJlY3QgZG9lc24ndCB3b3JrIG9uIFNWRyByb290IGVsZW1lbnRzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk5OTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9ub2Rl
c0Zyb21SZWN0LXN2Zy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6bm9kZUF0UG9pbnQpOgor
CiAyMDEyLTA2LTI2ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0Pgog
CiAgICAgICAgIFtUZXhtYXBdIEJ1ZyBmaXggdHlwbyBhYm91dCBjb21wdXRpbmcgYnl0ZXNQZXJM
aW5lIGluIEJpdG1hcFRleHR1cmVHTC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IGMwOTQ1N2U2MWIxYjc1OTE0NzM0N2RmYzAwNTg1OWM3
MjEzMDU4NGQuLjg3YWUxZTY5M2MzOWUyM2Q1NzQ1YjgyNzgwMDYxOTIzNmM3MzkzMDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtNDE4
LDMyICs0MTgsMzUgQEAgdm9pZCBSZW5kZXJTVkdSb290Ojp1cGRhdGVDYWNoZWRCb3VuZGFyaWVz
KCkKIGJvb2wgUmVuZGVyU1ZHUm9vdDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3Qm
IHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSGl0VGVzdFBvaW50JiBwb2lu
dEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRl
c3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKIHsKICAgICBMYXlvdXRQb2ludCBwb2ludEluUGFyZW50
ID0gcG9pbnRJbkNvbnRhaW5lci5wb2ludCgpIC0gdG9MYXlvdXRTaXplKGFjY3VtdWxhdGVkT2Zm
c2V0KTsKLSAgICBMYXlvdXRQb2ludCBwb2ludEluQm9yZGVyQm94KHBvaW50SW5QYXJlbnQueCgp
IC0geCgpLCBwb2ludEluUGFyZW50LnkoKSAtIHkoKSk7Ci0KLSAgICAvLyBOb3RlOiBGb3Igbm93
LCB3ZSdyZSBpZ25vcmluZyBoaXRzIHRvIGJvcmRlciBhbmQgcGFkZGluZyBmb3IgPHN2Zz4KLSAg
ICBpZiAoIWNvbnRlbnRCb3hSZWN0KCkuY29udGFpbnMocG9pbnRJbkJvcmRlckJveCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IGxvY2FsVG9Q
YXJlbnRUcmFuc2Zvcm0oKS5pbnZlcnNlKCkubWFwUG9pbnQoRmxvYXRQb2ludChwb2ludEluUGFy
ZW50KSk7Ci0KLSAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBsYXN0Q2hpbGQoKTsgY2hp
bGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7Ci0gICAgICAgIGlmIChjaGls
ZC0+bm9kZUF0RmxvYXRQb2ludChyZXF1ZXN0LCByZXN1bHQsIGxvY2FsUG9pbnQsIGhpdFRlc3RB
Y3Rpb24pKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogQ1NTL0hUTUwgYXNzdW1lcyB0aGUgbG9j
YWwgcG9pbnQgaXMgcmVsYXRpdmUgdG8gdGhlIGJvcmRlciBib3gsIHJpZ2h0PwotICAgICAgICAg
ICAgdXBkYXRlSGl0VGVzdFJlc3VsdChyZXN1bHQsIHBvaW50SW5Cb3JkZXJCb3gpOwotICAgICAg
ICAgICAgLy8gRklYTUU6IG5vZGVBdEZsb2F0UG9pbnQoKSBkb2Vzbid0IGhhbmRsZSByZWN0LWJh
c2VkIGhpdCB0ZXN0cyB5ZXQuCi0gICAgICAgICAgICByZXN1bHQuYWRkTm9kZVRvUmVjdEJhc2Vk
VGVzdFJlc3VsdChjaGlsZC0+bm9kZSgpLCBwb2ludEluQ29udGFpbmVyKTsKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgIExheW91dFBvaW50IHBvaW50SW5Cb3JkZXJCb3ggPSBwb2ludElu
UGFyZW50IC0gdG9MYXlvdXRTaXplKGxvY2F0aW9uKCkpOworCisgICAgLy8gT25seSB0ZXN0IFNW
RyBjb250ZW50IGlmIHRoZSBwb2ludCBpcyBpbiBvdXIgY29udGVudCBib3guCisgICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIGJlIGFuIGludGVyc2VjdGlvbiB3aGVuIHJlY3QtYmFzZWQgaGl0IHRl
c3RzIGFyZSBzdXBwb3J0ZWQgYnkgbm9kZUF0RmxvYXRQb2ludC4KKyAgICBpZiAoY29udGVudEJv
eFJlY3QoKS5jb250YWlucyhwb2ludEluQm9yZGVyQm94KSkgeworICAgICAgICBGbG9hdFBvaW50
IGxvY2FsUG9pbnQgPSBsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkuaW52ZXJzZSgpLm1hcFBvaW50
KEZsb2F0UG9pbnQocG9pbnRJblBhcmVudCkpOworCisgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0
KiBjaGlsZCA9IGxhc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+cHJldmlvdXNTaWJs
aW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZC0+bm9kZUF0RmxvYXRQb2ludChyZXF1ZXN0
LCByZXN1bHQsIGxvY2FsUG9pbnQsIGhpdFRlc3RBY3Rpb24pKSB7CisgICAgICAgICAgICAgICAg
dXBkYXRlSGl0VGVzdFJlc3VsdChyZXN1bHQsIHBvaW50SW5Cb3JkZXJCb3gpOworICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBub2RlQXRGbG9hdFBvaW50KCkgZG9lc24ndCBoYW5kbGUgcmVjdC1i
YXNlZCBoaXQgdGVzdHMgeWV0LgorICAgICAgICAgICAgICAgIHJlc3VsdC5hZGROb2RlVG9SZWN0
QmFzZWRUZXN0UmVzdWx0KGNoaWxkLT5ub2RlKCksIHBvaW50SW5Db250YWluZXIpOworICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQog
CiAgICAgLy8gSWYgd2UgZGlkbid0IGVhcmx5IGV4aXQgYWJvdmUsIHdlJ3ZlIGp1c3QgaGl0IHRo
ZSBjb250YWluZXIgPHN2Zz4gZWxlbWVudC4gVW5saWtlIFNWRyAxLjEsIDJuZCBFZGl0aW9uIGFs
bG93cyBjb250YWluZXIgZWxlbWVudHMgdG8gYmUgaGl0LgotICAgIGlmIChoaXRUZXN0QWN0aW9u
ID09IEhpdFRlc3RCbG9ja0JhY2tncm91bmQgJiYgc3R5bGUoKS0+cG9pbnRlckV2ZW50cygpICE9
IFBFX05PTkUpIHsKKyAgICBpZiAodmlzaWJsZVRvSGl0VGVzdGluZygpICYmIGhpdFRlc3RBY3Rp
b24gPT0gSGl0VGVzdEJsb2NrQmFja2dyb3VuZCkgewogICAgICAgICAvLyBPbmx5IHJldHVybiB0
cnVlIGhlcmUsIGlmIHRoZSBsYXN0IGhpdCB0ZXN0aW5nIHBoYXNlICdCbG9ja0JhY2tncm91bmQn
IGlzIGV4ZWN1dGVkLiBJZiB3ZSdkIHJldHVybiB0cnVlIGluIHRoZSAnRm9yZWdyb3VuZCcgcGhh
c2UsCiAgICAgICAgIC8vIGhpdCB0ZXN0aW5nIHdvdWxkIHN0b3AgaW1tZWRpYXRlbHkuIEZvciBT
Vkcgb25seSB0cmVlcyB0aGlzIGRvZXNuJ3QgbWF0dGVyLiBUaG91Z2ggd2hlbiB3ZSBoYXZlIGEg
PGZvcmVpZ25PYmplY3Q+IHN1YnRyZWUgd2UgbmVlZAogICAgICAgICAvLyB0byBiZSBhYmxlIHRv
IGRldGVjdCBoaXRzIG9uIHRoZSBiYWNrZ3JvdW5kIG9mIGEgPGRpdj4gZWxlbWVudC4gSWYgd2Un
ZCByZXR1cm4gdHJ1ZSBoZXJlIGluIHRoZSAnRm9yZWdyb3VuZCcgcGhhc2UsIHdlIGFyZSBub3Qg
YWJsZSAKICAgICAgICAgLy8gdG8gZGV0ZWN0IHRoZXNlIGhpdHMgYW55bW9yZS4KLSAgICAgICAg
dXBkYXRlSGl0VGVzdFJlc3VsdChyZXN1bHQsIHJvdW5kZWRMYXlvdXRQb2ludChsb2NhbFBvaW50
KSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBMYXlvdXRSZWN0IGJvdW5kc1JlY3Qo
YWNjdW11bGF0ZWRPZmZzZXQgKyBsb2NhdGlvbigpLCBzaXplKCkpOworICAgICAgICBpZiAocG9p
bnRJbkNvbnRhaW5lci5pbnRlcnNlY3RzKGJvdW5kc1JlY3QpKSB7CisgICAgICAgICAgICB1cGRh
dGVIaXRUZXN0UmVzdWx0KHJlc3VsdCwgcG9pbnRJbkJvcmRlckJveCk7CisgICAgICAgICAgICBp
ZiAoIXJlc3VsdC5hZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KG5vZGUoKSwgcG9pbnRJbkNv
bnRhaW5lciwgYm91bmRzUmVjdCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTk3YzAwYzJlMDZiM2Q0
OGEyZDc3NTljZTVjMTAyN2VmMmRhYTZmNy4uNDVmNDI3YmFlNmZiMTY0NDRhNjliNzZiZGU4YWUz
NmRiYmY0Y2RhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDEyLTA2LTI2ICBBbGxhbiBTYW5k
ZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgogCisgICAgICAgIE5vZGVzRnJv
bVJlY3QgZG9lc24ndCB3b3JrIG9uIFNWRyByb290IGVsZW1lbnRzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk5OTAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IG5vZGVzRnJvbVJlY3Qgb24gU1ZH
IHJvb3QgZWxlbWVudHMuCisKKyAgICAgICAgKiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LXN2Zy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL25vZGVzRnJvbVJlY3Qtc3Zn
Lmh0bWw6IEFkZGVkLgorCisyMDEyLTA2LTI2ICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxh
bi5qZW5zZW5Abm9raWEuY29tPgorCiAgICAgICAgIFtRdF0gQmFzZWxpbmUgbWlzc2luZyBmb3Ig
M0QgdHJhbnNmb3JtcyB0ZXN0cy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg5OTczCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25v
ZGVzRnJvbVJlY3Qtc3ZnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVz
RnJvbVJlY3Qtc3ZnLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDBjZWY3Mjc5N2ExNWU5NTJm
MzhhOTk0ZWQyZWY3MTM0MTlmZDEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vbm9kZXNGcm9tUmVjdC1zdmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKK0Rv
Y3VtZW50Ojpub2Rlc0Zyb21SZWN0IDogUmVjdC1iYXNlZCBoaXQtdGVzdGluZyBvbiBTVkcgZWxl
bWVudHMgLSBidWcgPworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ2hlY2sgYXJl
YSBoaXRzIGZ1bGx5IGluc2lkZSBTVkcgZWxlbWVudAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBm
b3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFT
UyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2Rl
cyBmb3VuZCBmb3IgcmVjdAorCitUaGUgZm9sbG93aW5nIHRlc3RzIHdpbGwgbGlrZWx5IEZBSUwg
YW5kIHdpbGwgbmVlZCB0byBiZSB1cGRhdGVkIG9uY2UgcmVjdC1iYXNlZAoraGl0IHRlc3RzIGFy
ZSBzdXBwb3J0ZWQgaW5zaWRlIFNWRyBlbGVtZW50czoKKworQ2hlY2sgYXJlYSBoaXRzIG92ZXJs
YXBwaW5nIFNWRyBlbGVtZW50CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0
CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitDaGVjayBhcmVhIGhpdHMg
YWNyb3NzIFNWRyBlbGVtZW50cworUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVj
dAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1zdmcuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3Qtc3ZnLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmIxNzY5NmFhNDViODZjNzQzMzFkMGYzNTI5NGRiNzRhN2E2ODgxNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3Qtc3ZnLmh0bWwKQEAgLTAsMCAr
MSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkRvY3VtZW50
Ojpub2Rlc0Zyb21SZWN0IDogUmVjdC1iYXNlZCBoaXQtdGVzdGluZyBvbiBTVkcgZWxlbWVudHMg
LSBidWcgPzwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICNzYW5kYm94IHsK
KyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAg
IHRvcDogMHB4OworICAgICAgICB3aWR0aDogNjAwcHg7CisgICAgICAgIGhlaWdodDogODAwcHg7
CisgICAgfQorICAgIC5zdmcgeworICAgICAgICB3aWR0aDogNDBweDsKKyAgICAgICAgaGVpZ2h0
OiAyMHB4OworICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgIHBhZGRpbmc6IDJweDsKKyAg
ICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICB9Cis8L3N0eWxlPgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9k
eT4KKyAgICA8ZGl2IGlkPXNhbmRib3g+CisgICAgICAgIDxkaXYgY2xhc3M9c3ZnIGlkPWRpdjE+
CisgICAgICAgICAgICA8c3ZnIGlkPXN2ZzEgaGVpZ2h0PTE2IHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyI+CisgICAgICAgICAgICAgICAgPGNpcmNsZSBpZD0icmVkIiBjeD0iOCIg
Y3k9IjgiIHI9IjUiIGZpbGw9InJlZCIgLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz1zdmcgaWQ9ZGl2Mj4KKyAgICAgICAgICAgIDxzdmcg
aWQ9c3ZnMiBoZWlnaHQ9MTYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAg
ICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJ5ZWxsb3ciIGN4PSI4IiBjeT0iOCIgcj0iNSIgZmls
bD0ieWVsbG93IiAvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8ZGl2IGNsYXNzPXN2ZyBpZD1kaXYzPgorICAgICAgICAgICAgPHN2ZyBpZD1zdmczIGhlaWdo
dD0xNiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgICAgICAgICAgICAg
IDxjaXJjbGUgaWQ9ImdyZWVuIiBjeD0iOCIgY3k9IjgiIHI9IjUiIGZpbGw9ImdyZWVuIiAvPgor
ICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPHNj
cmlwdD4KKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGRlc2NyaXB0aW9uKGRvY3VtZW50LnRpdGxlKTsKKyAgICAgICAgICAgIHZhciBlID0ge307CisK
KyAgICAgICAgICAgIC8vIFNldCB1cCBzaG9ydGN1dCBhY2Nlc3MgdG8gZWxlbWVudHMKKyAgICAg
ICAgICAgIFsnc2FuZGJveCcsICdkaXYxJywgJ2RpdjInLCAnZGl2MycsICdkaXY0JywKKyAgICAg
ICAgICAgICAnc3ZnMScsICdzdmcyJywgJ3N2ZzMnLCAnc3ZnNCcsCisgICAgICAgICAgICAgJ3Jl
ZCcsICd5ZWxsb3cnLCAnZ3JlZW4nXS5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKKyAgICAgICAgICAg
ICAgICBlW2FdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSk7CisgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDApOworCisgICAgICAgICAgICBkZWJ1
ZygnQ2hlY2sgYXJlYSBoaXRzIGZ1bGx5IGluc2lkZSBTVkcgZWxlbWVudCcpOworICAgICAgICAg
ICAgY2hlY2soMjAsIDIwLCA0LCA0LCA0LCA0LCBbZS5yZWRdKTsKKyAgICAgICAgICAgIGNoZWNr
KDIwLCA1MiwgNCwgNCwgNCwgNCwgW2UueWVsbG93XSk7CisgICAgICAgICAgICBjaGVjaygxOCwg
ODAsIDQsIDQsIDQsIDQsIFtlLmdyZWVuXSk7CisgICAgICAgICAgICBjaGVjaygxNCwgMTQsIDIs
IDIsIDIsIDIsIFtlLnN2ZzFdKTsKKworICAgICAgICAgICAgZGVidWcoJ1xuVGhlIGZvbGxvd2lu
ZyB0ZXN0cyB3aWxsIGxpa2VseSBGQUlMIGFuZCB3aWxsIG5lZWQgdG8gYmUgdXBkYXRlZCBvbmNl
IHJlY3QtYmFzZWQnKQorICAgICAgICAgICAgZGVidWcoJ2hpdCB0ZXN0cyBhcmUgc3VwcG9ydGVk
IGluc2lkZSBTVkcgZWxlbWVudHM6XG4nKTsKKworICAgICAgICAgICAgZGVidWcoJ0NoZWNrIGFy
ZWEgaGl0cyBvdmVybGFwcGluZyBTVkcgZWxlbWVudCcpOworICAgICAgICAgICAgY2hlY2soMTIs
IDEyLCAyLCAyLCAyLCAyLCBbZS5zdmcxLCBlLmRpdjFdKTsKKyAgICAgICAgICAgIGNoZWNrKDYs
IDUwLCA1LCAyMCwgNSwgNSwgW2Uuc3ZnMiwgZS5kaXYyLCBlLnNhbmRib3hdKTsKKworICAgICAg
ICAgICAgZGVidWcoJ0NoZWNrIGFyZWEgaGl0cyBhY3Jvc3MgU1ZHIGVsZW1lbnRzJyk7CisgICAg
ICAgICAgICBjaGVjaygyMCwgMzAsIDIwLCAxMCwgMzAsIDEwLCBbZS5zdmcyLCBlLmRpdjIsIGUu
c3ZnMSwgZS5kaXYxLCBlLnNhbmRib3hdKTsKKworICAgICAgICAgICAgZGVidWcoJycpOworICAg
ICAgICB9CisKKyAgICAgICAgcnVuVGVzdCgpOworICAgIDwvc2NyaXB0PgorCisgICAgPHAgaWQ9
J2Rlc2NyaXB0aW9uJz48L3A+CisgICAgPHNwYW4gaWQ9ImNvbnNvbGUiPjwvc3Bhbj4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151714</attachid>
            <date>2012-07-11 09:16:32 -0700</date>
            <delta_ts>2012-07-11 10:09:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89990-20120711181635.patch</filename>
            <type>text/plain</type>
            <size>9547</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDEzYWRlNTk0OTg1MmVl
NDk5YTFjMDdjOThiZTZjNTZjODJhNGU1Yy4uOGVlNjc2OGY4ZmZjZTM0NDhlY2FiMjNkNDk4MDc5
MTA2YmZiZGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA3LTExICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIE5v
ZGVzRnJvbVJlY3QgZG9lc24ndCB3b3JrIG9uIFNWRyByb290IGVsZW1lbnRzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk5OTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIHJl
Y3QtYmFzZWQgaGl0LXRlc3Rpbmcgb24gdGhlIFNWRyByb290IGVsZW1lbnQuCisgICAgICAgIFRo
aXMgbWVhbnMgdGhhdCB3aGlsZSByZWN0LWJhc2VkIGhpdC10ZXN0aW5nIGlzIHN0aWxsIG5vdCBz
dXBwb3J0ZWQKKyAgICAgICAgd2l0aGluIFNWRyBlbGVtZW50cywgdGhhdCBhdCBsZWFzdCBpdCB3
b3JrcyBvbiBTVkcgcm9vdCBlbGVtZW50cyBhcworICAgICAgICBpdCB3b3VsZCBvbiBhbnkgb3Ro
ZXIgcmVwbGFjZWQgZWxlbWVudC4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9ub2Rlc0Zyb21S
ZWN0LXN2Zy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6bm9kZUF0UG9pbnQpOgorCiAyMDEy
LTA3LTExICBKb3NodWEgTmV0dGVyZmllbGQgIDxqbmV0dGVyZmllbGRAcmltLmNvbT4KIAogICAg
ICAgICBbUXRdIFJFR1JFU1NJT04ocjEyMjI1MCk6IEl0IGJyb2tlIFVTRSgzRF9HUkFQSElDUyk9
MSBhbmQgRU5BQkxFKFdFQkdMKT0wIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggYzA5NDU3ZTYxYjFiNzU5MTQ3MzQ3ZGZjMDA1
ODU5YzcyMTMwNTg0ZC4uNzA3ZGE4ODZlMmNhOThhMWI2OTZlZWM0YjI2MDI4ZjY2NjZmZmQ1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBA
IC00MTgsMzIgKzQxOCwzNSBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OnVwZGF0ZUNhY2hlZEJvdW5k
YXJpZXMoKQogYm9vbCBSZW5kZXJTVkdSb290Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVx
dWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBIaXRUZXN0UG9pbnQm
IHBvaW50SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwg
SGl0VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKQogewogICAgIExheW91dFBvaW50IHBvaW50SW5Q
YXJlbnQgPSBwb2ludEluQ29udGFpbmVyLnBvaW50KCkgLSB0b0xheW91dFNpemUoYWNjdW11bGF0
ZWRPZmZzZXQpOwotICAgIExheW91dFBvaW50IHBvaW50SW5Cb3JkZXJCb3gocG9pbnRJblBhcmVu
dC54KCkgLSB4KCksIHBvaW50SW5QYXJlbnQueSgpIC0geSgpKTsKKyAgICBMYXlvdXRQb2ludCBw
b2ludEluQm9yZGVyQm94ID0gcG9pbnRJblBhcmVudCAtIHRvTGF5b3V0U2l6ZShsb2NhdGlvbigp
KTsKIAotICAgIC8vIE5vdGU6IEZvciBub3csIHdlJ3JlIGlnbm9yaW5nIGhpdHMgdG8gYm9yZGVy
IGFuZCBwYWRkaW5nIGZvciA8c3ZnPgotICAgIGlmICghY29udGVudEJveFJlY3QoKS5jb250YWlu
cyhwb2ludEluQm9yZGVyQm94KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgRmxvYXRQ
b2ludCBsb2NhbFBvaW50ID0gbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpLmludmVyc2UoKS5tYXBQ
b2ludChGbG9hdFBvaW50KHBvaW50SW5QYXJlbnQpKTsKKyAgICAvLyBPbmx5IHRlc3QgU1ZHIGNv
bnRlbnQgaWYgdGhlIHBvaW50IGlzIGluIG91ciBjb250ZW50IGJveC4KKyAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgYmUgYW4gaW50ZXJzZWN0aW9uIHdoZW4gcmVjdC1iYXNlZCBoaXQgdGVzdHMg
YXJlIHN1cHBvcnRlZCBieSBub2RlQXRGbG9hdFBvaW50LgorICAgIGlmIChjb250ZW50Qm94UmVj
dCgpLmNvbnRhaW5zKHBvaW50SW5Cb3JkZXJCb3gpKSB7CisgICAgICAgIEZsb2F0UG9pbnQgbG9j
YWxQb2ludCA9IGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKS5pbnZlcnNlKCkubWFwUG9pbnQoRmxv
YXRQb2ludChwb2ludEluUGFyZW50KSk7CiAKLSAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQg
PSBsYXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7
Ci0gICAgICAgIGlmIChjaGlsZC0+bm9kZUF0RmxvYXRQb2ludChyZXF1ZXN0LCByZXN1bHQsIGxv
Y2FsUG9pbnQsIGhpdFRlc3RBY3Rpb24pKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogQ1NTL0hU
TUwgYXNzdW1lcyB0aGUgbG9jYWwgcG9pbnQgaXMgcmVsYXRpdmUgdG8gdGhlIGJvcmRlciBib3gs
IHJpZ2h0PwotICAgICAgICAgICAgdXBkYXRlSGl0VGVzdFJlc3VsdChyZXN1bHQsIHBvaW50SW5C
b3JkZXJCb3gpOworICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBsYXN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7CiAgICAgICAgICAg
ICAvLyBGSVhNRTogbm9kZUF0RmxvYXRQb2ludCgpIGRvZXNuJ3QgaGFuZGxlIHJlY3QtYmFzZWQg
aGl0IHRlc3RzIHlldC4KLSAgICAgICAgICAgIHJlc3VsdC5hZGROb2RlVG9SZWN0QmFzZWRUZXN0
UmVzdWx0KGNoaWxkLT5ub2RlKCksIHBvaW50SW5Db250YWluZXIpOwotICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgICAgICBpZiAoY2hpbGQtPm5vZGVBdEZsb2F0UG9pbnQocmVxdWVz
dCwgcmVzdWx0LCBsb2NhbFBvaW50LCBoaXRUZXN0QWN0aW9uKSkgeworICAgICAgICAgICAgICAg
IHVwZGF0ZUhpdFRlc3RSZXN1bHQocmVzdWx0LCBwb2ludEluQm9yZGVyQm94KTsKKyAgICAgICAg
ICAgICAgICBpZiAoIXJlc3VsdC5hZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KGNoaWxkLT5u
b2RlKCksIHBvaW50SW5Db250YWluZXIpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAogICAgIC8vIElmIHdlIGRpZG4n
dCBlYXJseSBleGl0IGFib3ZlLCB3ZSd2ZSBqdXN0IGhpdCB0aGUgY29udGFpbmVyIDxzdmc+IGVs
ZW1lbnQuIFVubGlrZSBTVkcgMS4xLCAybmQgRWRpdGlvbiBhbGxvd3MgY29udGFpbmVyIGVsZW1l
bnRzIHRvIGJlIGhpdC4KLSAgICBpZiAoaGl0VGVzdEFjdGlvbiA9PSBIaXRUZXN0QmxvY2tCYWNr
Z3JvdW5kICYmIHN0eWxlKCktPnBvaW50ZXJFdmVudHMoKSAhPSBQRV9OT05FKSB7CisgICAgaWYg
KGhpdFRlc3RBY3Rpb24gPT0gSGl0VGVzdEJsb2NrQmFja2dyb3VuZCAmJiB2aXNpYmxlVG9IaXRU
ZXN0aW5nKCkpIHsKICAgICAgICAgLy8gT25seSByZXR1cm4gdHJ1ZSBoZXJlLCBpZiB0aGUgbGFz
dCBoaXQgdGVzdGluZyBwaGFzZSAnQmxvY2tCYWNrZ3JvdW5kJyBpcyBleGVjdXRlZC4gSWYgd2Un
ZCByZXR1cm4gdHJ1ZSBpbiB0aGUgJ0ZvcmVncm91bmQnIHBoYXNlLAogICAgICAgICAvLyBoaXQg
dGVzdGluZyB3b3VsZCBzdG9wIGltbWVkaWF0ZWx5LiBGb3IgU1ZHIG9ubHkgdHJlZXMgdGhpcyBk
b2Vzbid0IG1hdHRlci4gVGhvdWdoIHdoZW4gd2UgaGF2ZSBhIDxmb3JlaWduT2JqZWN0PiBzdWJ0
cmVlIHdlIG5lZWQKICAgICAgICAgLy8gdG8gYmUgYWJsZSB0byBkZXRlY3QgaGl0cyBvbiB0aGUg
YmFja2dyb3VuZCBvZiBhIDxkaXY+IGVsZW1lbnQuIElmIHdlJ2QgcmV0dXJuIHRydWUgaGVyZSBp
biB0aGUgJ0ZvcmVncm91bmQnIHBoYXNlLCB3ZSBhcmUgbm90IGFibGUgCiAgICAgICAgIC8vIHRv
IGRldGVjdCB0aGVzZSBoaXRzIGFueW1vcmUuCi0gICAgICAgIHVwZGF0ZUhpdFRlc3RSZXN1bHQo
cmVzdWx0LCByb3VuZGVkTGF5b3V0UG9pbnQobG9jYWxQb2ludCkpOwotICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgTGF5b3V0UmVjdCBib3VuZHNSZWN0KGFjY3VtdWxhdGVkT2Zmc2V0ICsg
bG9jYXRpb24oKSwgc2l6ZSgpKTsKKyAgICAgICAgaWYgKHBvaW50SW5Db250YWluZXIuaW50ZXJz
ZWN0cyhib3VuZHNSZWN0KSkgeworICAgICAgICAgICAgdXBkYXRlSGl0VGVzdFJlc3VsdChyZXN1
bHQsIHBvaW50SW5Cb3JkZXJCb3gpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQuYWRkTm9kZVRv
UmVjdEJhc2VkVGVzdFJlc3VsdChub2RlKCksIHBvaW50SW5Db250YWluZXIsIGJvdW5kc1JlY3Qp
KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgfQogCiAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM5NzdmZTMzYjgwMDJmZTA2OTdhNjEzODYzNjE0YzA3ZmZm
NWU0YTEuLmQ1MTBjZWY4Njc2NDNlMGM2MDg3OTU3MzNkZGM4NWQ3ZmE4YzMyZWMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMi0wNy0xMSAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4u
amVuc2VuQG5va2lhLmNvbT4KKworICAgICAgICBOb2Rlc0Zyb21SZWN0IGRvZXNuJ3Qgd29yayBv
biBTVkcgcm9vdCBlbGVtZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg5OTkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdCBub2Rlc0Zyb21SZWN0IG9uIFNWRyByb290IGVsZW1lbnRzLgorCisg
ICAgICAgICogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1zdmctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LXN2Zy5odG1sOiBBZGRlZC4KKwogMjAx
Mi0wNy0xMSAgU3RlZmZlbiBJbWhvZiAgPHN0ZWZmZW4uaW1ob2ZAYmFzeXNrb20uY29tPgogCiAg
ICAgICAgIFtRdF0gTWlkZGxlIGNsaWNraW5nIGEgc2Nyb2xsYmFyIGNhdXNlcyB0ZXh0IHRvIGJl
IHBhc3RlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3Qt
c3ZnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3Qtc3Zn
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjYyNGViNWZjMjk2NjhhN2YxYTRkZGM4YzIxZmVi
MTE4ZmQ5YjUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNG
cm9tUmVjdC1zdmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK0RvY3VtZW50Ojpub2Rl
c0Zyb21SZWN0IDogUmVjdC1iYXNlZCBoaXQtdGVzdGluZyBvbiBTVkcgZWxlbWVudHMgLSBidWcg
PworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitTb21lIG9mIGZvbGxvd2luZyB0
ZXN0cyB3aWxsIGxpa2VseSBGQUlMIGFuZCB3aWxsIG5lZWQgdG8gYmUgdXBkYXRlZCBvbmNlIHJl
Y3QtYmFzZWQKK2hpdCB0ZXN0cyBhcmUgc3VwcG9ydGVkIGluc2lkZSBTVkcgZWxlbWVudHM6CisK
K0NoZWNrIGFyZWEgaGl0cyBmdWxseSBpbnNpZGUgU1ZHIGVsZW1lbnQKK1BBU1MgQWxsIGNvcnJl
Y3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9y
IHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKK1BBU1MgQWxsIGNv
cnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQg
Zm9yIHJlY3QKK0NoZWNrIGFyZWEgaGl0cyBvdmVybGFwcGluZyBTVkcgZWxlbWVudAorUEFTUyBB
bGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBm
b3VuZCBmb3IgcmVjdAorQ2hlY2sgYXJlYSBoaXRzIGFjcm9zcyBTVkcgZWxlbWVudHMKK1BBU1Mg
QWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL25vZGVzRnJvbVJlY3Qtc3ZnLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rl
c0Zyb21SZWN0LXN2Zy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwOTkwOWY1N2IwYmJiMzkxODQ3ZDM1ZDBj
ZjkxMzc0MjFkZTRmZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9u
b2Rlc0Zyb21SZWN0LXN2Zy5odG1sCkBAIC0wLDAgKzEsODcgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5Eb2N1bWVudDo6bm9kZXNGcm9tUmVjdCA6IFJlY3QtYmFz
ZWQgaGl0LXRlc3Rpbmcgb24gU1ZHIGVsZW1lbnRzIC0gYnVnID88L3RpdGxlPgorPHN0eWxlIHR5
cGU9InRleHQvY3NzIj4KKyAgICAjc2FuZGJveCB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgd2lkdGg6
IDYwMHB4OworICAgICAgICBoZWlnaHQ6IDgwMHB4OworICAgIH0KKyAgICAuc3ZnIHsKKyAgICAg
ICAgd2lkdGg6IDQwcHg7CisgICAgICAgIGhlaWdodDogMjBweDsKKyAgICAgICAgbWFyZ2luOiAx
MHB4OworICAgICAgICBwYWRkaW5nOiAycHg7CisgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1i
b3g7CisgICAgfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ub2Rlc0Zyb21SZWN0
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgICAgPGRpdiBpZD1zYW5kYm94Pgor
ICAgICAgICA8ZGl2IGNsYXNzPXN2ZyBpZD1kaXYxPgorICAgICAgICAgICAgPHN2ZyBpZD1zdmcx
IGhlaWdodD0xNiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgICAgICAg
ICAgICAgIDxjaXJjbGUgaWQ9InJlZCIgY3g9IjgiIGN5PSI4IiByPSI1IiBmaWxsPSJyZWQiIC8+
CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9
c3ZnIGlkPWRpdjI+CisgICAgICAgICAgICA8c3ZnIGlkPXN2ZzIgaGVpZ2h0PTE2IHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgICAgICAgICAgICAgPGNpcmNsZSBpZD0i
eWVsbG93IiBjeD0iOCIgY3k9IjgiIHI9IjUiIGZpbGw9InllbGxvdyIgLz4KKyAgICAgICAgICAg
IDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz1zdmcgaWQ9ZGl2Mz4K
KyAgICAgICAgICAgIDxzdmcgaWQ9c3ZnMyBoZWlnaHQ9MTYgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJncmVlbiIgY3g9Ijgi
IGN5PSI4IiByPSI1IiBmaWxsPSJncmVlbiIgLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAg
ICA8L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbihkb2N1bWVudC50aXRs
ZSk7CisgICAgICAgICAgICB2YXIgZSA9IHt9OworCisgICAgICAgICAgICAvLyBTZXQgdXAgc2hv
cnRjdXQgYWNjZXNzIHRvIGVsZW1lbnRzCisgICAgICAgICAgICBbJ3NhbmRib3gnLCAnZGl2MScs
ICdkaXYyJywgJ2RpdjMnLCAnZGl2NCcsCisgICAgICAgICAgICAgJ3N2ZzEnLCAnc3ZnMicsICdz
dmczJywgJ3N2ZzQnLAorICAgICAgICAgICAgICdyZWQnLCAneWVsbG93JywgJ2dyZWVuJ10uZm9y
RWFjaChmdW5jdGlvbihhKSB7CisgICAgICAgICAgICAgICAgZVthXSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGEpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHdpbmRvdy5zY3Jv
bGxUbygwLCAwKTsKKworICAgICAgICAgICAgZGVidWcoJ1xuU29tZSBvZiBmb2xsb3dpbmcgdGVz
dHMgd2lsbCBsaWtlbHkgRkFJTCBhbmQgd2lsbCBuZWVkIHRvIGJlIHVwZGF0ZWQgb25jZSByZWN0
LWJhc2VkJykKKyAgICAgICAgICAgIGRlYnVnKCdoaXQgdGVzdHMgYXJlIHN1cHBvcnRlZCBpbnNp
ZGUgU1ZHIGVsZW1lbnRzOlxuJyk7CisKKyAgICAgICAgICAgIGRlYnVnKCdDaGVjayBhcmVhIGhp
dHMgZnVsbHkgaW5zaWRlIFNWRyBlbGVtZW50Jyk7CisgICAgICAgICAgICBjaGVjaygyMCwgMjAs
IDQsIDQsIDQsIDQsIFtlLnJlZCwgZS5zdmcxXSk7CisgICAgICAgICAgICBjaGVjaygyMCwgNTIs
IDQsIDQsIDQsIDQsIFtlLnllbGxvdywgZS5zdmcyXSk7CisgICAgICAgICAgICBjaGVjaygxOCwg
ODAsIDQsIDQsIDQsIDQsIFtlLmdyZWVuLCBlLnN2ZzNdKTsKKyAgICAgICAgICAgIGNoZWNrKDE0
LCAxNCwgMiwgMiwgMiwgMiwgW2Uuc3ZnMV0pOworICAgICAgICAgICAgY2hlY2soMjAsIDIwLCA5
LCA5LCA5LCA5LCBbZS5yZWQsIGUuc3ZnMSwgZS5kaXYxXSk7CisKKyAgICAgICAgICAgIGRlYnVn
KCdDaGVjayBhcmVhIGhpdHMgb3ZlcmxhcHBpbmcgU1ZHIGVsZW1lbnQnKTsKKyAgICAgICAgICAg
IGNoZWNrKDEyLCAxMiwgMiwgMiwgMiwgMiwgW2Uuc3ZnMSwgZS5kaXYxXSk7CisgICAgICAgICAg
ICBjaGVjayg2LCA1MCwgNSwgMjAsIDUsIDUsIFtlLnN2ZzIsIGUuZGl2MiwgZS5zYW5kYm94XSk7
CisKKyAgICAgICAgICAgIGRlYnVnKCdDaGVjayBhcmVhIGhpdHMgYWNyb3NzIFNWRyBlbGVtZW50
cycpOworICAgICAgICAgICAgY2hlY2soMjAsIDMwLCAyMCwgMTAsIDMwLCAxMCwgW2Uuc3ZnMiwg
ZS5kaXYyLCBlLnN2ZzEsIGUuZGl2MSwgZS5zYW5kYm94XSk7CisKKyAgICAgICAgICAgIGRlYnVn
KCcnKTsKKyAgICAgICAgfQorCisgICAgICAgIHJ1blRlc3QoKTsKKyAgICA8L3NjcmlwdD4KKwor
ICAgIDxwIGlkPSdkZXNjcmlwdGlvbic+PC9wPgorICAgIDxzcGFuIGlkPSJjb25zb2xlIj48L3Nw
YW4+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>