<?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>36156</bug_id>
          
          <creation_ts>2010-03-15 22:55:48 -0700</creation_ts>
          <short_desc>XHR &apos;progress&apos; event code assumes wrongly that expectedLength &gt;= 0</short_desc>
          <delta_ts>2011-11-30 22:38:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></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="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>ap</cc>
    
    <cc>giles_joplin</cc>
    
    <cc>glenn</cc>
    
    <cc>stearns</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>200014</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2010-03-15 22:55:48 -0700</bug_when>
    <thetext>The code casts the expected content length from the network stack without checking for negative length. This could cause some badness as some network stacks (such as CoreFoundation) just return -1 when they do not know the content length.

See https://bugs.webkit.org/show_bug.cgi?id=18654#c10 for the context of this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200044</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-03-16 00:12:10 -0700</bug_when>
    <thetext>Answering a comment from bug 18654:

&gt; PHP automatically fills the &quot;Content-Length&quot; so it is unlikely to be hit at
&gt; this point. We will need some as-is magic to avoid sending the header.

I&apos;m not sure about PHP, but it&apos;s certainly easy to send chunked responses with GGIs (any &quot;slow&quot; script in resources subdirectories does that). That is the normal use case for ling-lived requests of &quot;comet&quot;-style applications.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369213</commentid>
    <comment_count>2</comment_count>
    <who name="Glenn Maynard">glenn</who>
    <bug_when>2011-03-17 12:20:48 -0700</bug_when>
    <thetext>I take it this is why I&apos;m seeing e.total == 4294967295 in XHR onprogress events from chunked sources (on 32-bit systems).  http://zewt.org/~glenn/test-webkit-xhr-progress-chunked/

According to Progress Events, &quot;maximum&quot; should be left unchanged when the length of the HTTP entity body is unknown, which means it retains the initial value of zero.  FF4 follows this behavior.  http://dev.w3.org/2006/webapi/progress/#firing-events-using-the-progressevent-in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507753</commentid>
    <comment_count>3</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2011-11-22 12:15:52 -0800</bug_when>
    <thetext>The problem is in void XMLHttpRequest::didReceiveData(const char* data, int len), here:

    if (!m_error) {
        long long expectedLength = m_response.expectedContentLength();
        m_receivedLength += len;

        if (m_async) {
            bool lengthComputable = expectedLength &amp;&amp; m_receivedLength &lt;= expectedLength;
            m_progressEventThrottle.dispatchProgressEvent(lengthComputable, m_receivedLength, expectedLength);
        }
        ...
     }

According to the W3C (Candidate Recommendation) ProgressEvents spec, the event&apos;s total field should be 0 if the content length can&apos;t be computed.  This happens, for example, when HTTP chunked transfer encoding is used, as in Glenn&apos;s PHP test case.

On OSX, when the content length can&apos;t be computed, m_response.expectedContentLength is -1 (this is the expected behavior from NSURLResponse).  It&apos;s being assigned to the dispatchProgressEvent() method&apos;s -unsigned- long long &quot;total&quot; parameter which just yields a nonsensically large value.

A defensive fix to the problem is to avoid passing any negative value as the dispatchProgressEvent&apos;s total parameter and to always use 0 when lengthComputable is false.

        if (m_async) {
            bool lengthComputable = expectedLength &gt; 0 &amp;&amp; m_receivedLength &lt;= expectedLength;
            unsigned long long total = lengthComputable ? expectedLength : 0;
            m_progressEventThrottle.dispatchProgressEvent(lengthComputable, m_receivedLength, total);
        }


This produces the correct results for the Glenn&apos;s test case.  I&apos;m working on a patch, a regression test, and checking the fix on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511203</commentid>
    <comment_count>4</comment_count>
      <attachid>117071</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2011-11-29 16:35:50 -0800</bug_when>
    <thetext>Created attachment 117071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511216</commentid>
    <comment_count>5</comment_count>
      <attachid>117071</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-29 16:44:48 -0800</bug_when>
    <thetext>Comment on attachment 117071
Patch

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

&gt; LayoutTests/http/tests/xmlhttprequest/chunked-progress-event-expectedLength.html:26
&gt; +        console.log(e.loaded + &quot;, &quot; + e.total + &quot;, &quot; + e.lengthComputable);

Did you intend to keep this line? It should probably use just log() for consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511234</commentid>
    <comment_count>6</comment_count>
      <attachid>117071</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-29 17:09:51 -0800</bug_when>
    <thetext>Comment on attachment 117071
Patch

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

Looks good. A few more trivial comments below.

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:1087
&gt; -
&gt; +        

Some of us prefer no trailing whitespace, and others don&apos;t care. Please don&apos;t just add it to lines that were not modified.

&gt; LayoutTests/http/tests/xmlhttprequest/chunked-progress-event-expectedLength.html:33
&gt; +	}
&gt; +    }

There are tabs in this file. Please replace them with spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511240</commentid>
    <comment_count>7</comment_count>
      <attachid>117071</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2011-11-29 17:21:06 -0800</bug_when>
    <thetext>Comment on attachment 117071
Patch

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

&gt;&gt; Source/WebCore/xml/XMLHttpRequest.cpp:1087
&gt;&gt; +        
&gt; 
&gt; Some of us prefer no trailing whitespace, and others don&apos;t care. Please don&apos;t just add it to lines that were not modified.

I will remove that..

&gt;&gt; LayoutTests/http/tests/xmlhttprequest/chunked-progress-event-expectedLength.html:26
&gt;&gt; +        console.log(e.loaded + &quot;, &quot; + e.total + &quot;, &quot; + e.lengthComputable);
&gt; 
&gt; Did you intend to keep this line? It should probably use just log() for consistency.

I hadn&apos;t intended to include that line in the test.   I will remove it.

&gt;&gt; LayoutTests/http/tests/xmlhttprequest/chunked-progress-event-expectedLength.html:33
&gt;&gt; +    }
&gt; 
&gt; There are tabs in this file. Please replace them with spaces.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511742</commentid>
    <comment_count>8</comment_count>
      <attachid>117192</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2011-11-30 07:40:05 -0800</bug_when>
    <thetext>Created attachment 117192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511883</commentid>
    <comment_count>9</comment_count>
      <attachid>117192</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-30 10:51:07 -0800</bug_when>
    <thetext>Comment on attachment 117192
Patch

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

r- for the test that takes too long.

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by Alexey Proskuryakov.

You shouldn&apos;t have put this in ChangeLog yet, since I never said r+ before.

&gt; LayoutTests/http/tests/xmlhttprequest/chunked-progress-event-expectedLength.html:31
&gt; +        if (e.loaded == 4 &amp;&amp; e.total == 0 &amp;&amp; !e.lengthComputable)
&gt; +        {
&gt; +            log(&quot;PASS&quot;);
&gt; +            if (window.layoutTestController)
&gt; +                layoutTestController.notifyDone();
&gt; +        }

Nit: it is helpful to have detailed output for failure case, not just missing &quot;PASS&quot;.

&gt; LayoutTests/http/tests/xmlhttprequest/resources/chunked-transfer.php:7
&gt; +sleep(0.5);
&gt; +printf(&quot;4\r\n&lt;a/&gt;\r\n&quot;);
&gt; +flush();
&gt; +sleep(0.5);

Ugh.. I just noticed that this test takes a long time. Is that really needed? We generally don&apos;t want tests to run for a whole second.

Can&apos;t we check lengthComputable before state reaches 4?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512036</commentid>
    <comment_count>10</comment_count>
      <attachid>117192</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2011-11-30 12:51:17 -0800</bug_when>
    <thetext>Comment on attachment 117192
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:6
&gt;&gt; +        Reviewed by Alexey Proskuryakov.
&gt; 
&gt; You shouldn&apos;t have put this in ChangeLog yet, since I never said r+ before.

Sorry, I&apos;m new to the process.  I&apos;ll restore the &quot;OOPS&quot; boilerplate.

&gt;&gt; LayoutTests/http/tests/xmlhttprequest/chunked-progress-event-expectedLength.html:31
&gt;&gt; +        }
&gt; 
&gt; Nit: it is helpful to have detailed output for failure case, not just missing &quot;PASS&quot;.

OK, the test now prints a message and the erroneous ProgressEvent total on failure.

&gt;&gt; LayoutTests/http/tests/xmlhttprequest/resources/chunked-transfer.php:7
&gt;&gt; +sleep(0.5);
&gt; 
&gt; Ugh.. I just noticed that this test takes a long time. Is that really needed? We generally don&apos;t want tests to run for a whole second.
&gt; 
&gt; Can&apos;t we check lengthComputable before state reaches 4?

Yes.  I&apos;ve removed the sleep() calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512063</commentid>
    <comment_count>11</comment_count>
      <attachid>117260</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2011-11-30 13:19:02 -0800</bug_when>
    <thetext>Created attachment 117260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512068</commentid>
    <comment_count>12</comment_count>
      <attachid>117260</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-30 13:26:46 -0800</bug_when>
    <thetext>Comment on attachment 117260
Patch

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

&gt; LayoutTests/http/tests/xmlhttprequest/chunked-progress-event-expectedLength.html:34
&gt; +        else if (e.total != 0 &amp;&amp; !e.lengthComputable)
&gt; +        {
&gt; +            log(&quot;FAIL: XMLHttpRequestProgressEvent lengthComputable=false but total is non-zero: &quot; + e.total);

This failure message is not necessarily true. It will also be printed if lengthComputable is true.

Also, this case also needs notifyDone().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512242</commentid>
    <comment_count>13</comment_count>
      <attachid>117296</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2011-11-30 16:51:39 -0800</bug_when>
    <thetext>Created attachment 117296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512263</commentid>
    <comment_count>14</comment_count>
      <attachid>117296</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-30 17:07:53 -0800</bug_when>
    <thetext>Comment on attachment 117296
Patch

Please set cq? flag if you want to use commit queue (or you could ask someone to land this manually for you).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512490</commentid>
    <comment_count>15</comment_count>
      <attachid>117296</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 22:38:18 -0800</bug_when>
    <thetext>Comment on attachment 117296
Patch

Clearing flags on attachment: 117296

Committed r101612: &lt;http://trac.webkit.org/changeset/101612&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512491</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 22:38:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117071</attachid>
            <date>2011-11-29 16:35:50 -0800</date>
            <delta_ts>2011-11-30 07:40:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36156-20111129163548.patch</filename>
            <type>text/plain</type>
            <size>5650</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdjMjNkMzNkMTU4MWY0
MDJlMTEwNjEyMjk4YWQ4Y2M2ZTA2OTAyNy4uNjgzMmNiZDMwZmE3NmE0N2Q3NzlmNzMzNGJjMTcx
ZDk0NWFjMWMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTExLTI5ICBIYW5z
IE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFhIUiAncHJvZ3Jlc3MnIGV2
ZW50IGNvZGUgYXNzdW1lcyB3cm9uZ2x5IHRoYXQgZXhwZWN0ZWRMZW5ndGggPj0gMAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzYxNTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdm9pZCBwYXNzaW5nIGEg
bmVnYXRpdmUgdmFsdWUgYXMgdGhlIGRpc3BhdGNoUHJvZ3Jlc3NFdmVudCdzIHRvdGFsIHBhcmFt
ZXRlciBhbmQgYWx3YXlzIHVzZSAwIHdoZW4gbGVuZ3RoQ29tcHV0YWJsZSBpcyBmYWxzZS4KKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3Mt
ZXZlbnQtZXhwZWN0ZWRMZW5ndGguaHRtbAorCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRSZWNlaXZlRGF0YSk6
CisKIDIwMTEtMTEtMjkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZlcnQgdGhhdCBsYXN0IGNoYW5nZSwgYXBwYXJlbnRseSBpdCBkZXN0cm95cyBldmVyeXRo
aW5nIGluIHRoZSB3b3JsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4
IDA0ZDkyN2VkY2ExNGE3MGIyMTlkY2E0NjBkZjYzZDQ2ZTZjZjUwOTguLjY3MWZjOGIyMjk4ZmEy
YjNiNDEwMjRkMjAwM2U1M2Q1YjA3NmY5YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcApAQCAtMTA4MCwxMCArMTA4MCwxMSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRS
ZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuKQogICAgICAgICBtX3JlY2VpdmVk
TGVuZ3RoICs9IGxlbjsKIAogICAgICAgICBpZiAobV9hc3luYykgewotICAgICAgICAgICAgYm9v
bCBsZW5ndGhDb21wdXRhYmxlID0gZXhwZWN0ZWRMZW5ndGggJiYgbV9yZWNlaXZlZExlbmd0aCA8
PSBleHBlY3RlZExlbmd0aDsKLSAgICAgICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRp
c3BhdGNoUHJvZ3Jlc3NFdmVudChsZW5ndGhDb21wdXRhYmxlLCBtX3JlY2VpdmVkTGVuZ3RoLCBl
eHBlY3RlZExlbmd0aCk7CisgICAgICAgICAgICBib29sIGxlbmd0aENvbXB1dGFibGUgPSBleHBl
Y3RlZExlbmd0aCA+IDAgJiYgbV9yZWNlaXZlZExlbmd0aCA8PSBleHBlY3RlZExlbmd0aDsKKyAg
ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbCA9IGxlbmd0aENvbXB1dGFibGUgPyBl
eHBlY3RlZExlbmd0aCA6IDA7CisgICAgICAgICAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5k
aXNwYXRjaFByb2dyZXNzRXZlbnQobGVuZ3RoQ29tcHV0YWJsZSwgbV9yZWNlaXZlZExlbmd0aCwg
dG90YWwpOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIGlmIChtX3N0YXRlICE9IExP
QURJTkcpCiAgICAgICAgICAgICBjaGFuZ2VTdGF0ZShMT0FESU5HKTsKICAgICAgICAgZWxzZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDhiZjUzYzJjOTMyZGU3YjMwMzUwZDZlNGI3ZmY5N2Q4NDNmYzg5NzYuLjMyNDMxOGIy
NDgzNzAxZDE0YTA5NGJjMmVjMjhkNWFmZjQzMGY2MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxMS0xMS0yOSAgSGFucyBNdWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KKworICAgICAgICBY
SFIgJ3Byb2dyZXNzJyBldmVudCBjb2RlIGFzc3VtZXMgd3JvbmdseSB0aGF0IGV4cGVjdGVkTGVu
Z3RoID49IDAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM2MTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBWZXJpZnkgdGhhdCBYTUxIdHRwUmVxdWVzdCBQcm9ncmVzc0V2ZW50J3MgdG90YWwg
aXMgemVybyB3aGVuIHRoZSBleHBlY3RlZExlbmd0aCBvZiB0aGUKKyAgICAgICAgKGNodW5rZWQg
dHJhbnNmZXIgbW9kZSkgcmVzcG9uc2UgY2FuJ3QgYmUgY29tcHV0ZWQuCisKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRM
ZW5ndGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGguaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvY2h1bmtlZC10
cmFuc2Zlci5waHA6IEFkZGVkLgorCiAyMDExLTExLTI5ICBYaWFvbWVpIEppICA8eGppQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZWJhc2UgYWZ0ZXIgcjEwMDgxOS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY2h1bmtlZC1wcm9ncmVzcy1ldmVu
dC1leHBlY3RlZExlbmd0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGgtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIxOTM4YTQ0NTFmYTQ3ZjUzNGFjM2JjYmIxM2IxMWMxMGI5NGUz
YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGgtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI2OiA0LCAwLCBmYWxzZQorVGVz
dCBjYXNlIGZvciBidWcgMzYxNTY6IFhIUiAncHJvZ3Jlc3MnIGV2ZW50IGNvZGUgYXNzdW1lcyB3
cm9uZ2x5IHRoYXQgZXhwZWN0ZWRMZW5ndGggPj0gMAorCitWZXJpZnkgdGhhdCB0aGUgcHJvZ3Jl
c3MgZXZlbnQgdG90YWwgcHJvcGVydHkgaXMgMCB3aGVuIHRoZSBleHBlY3RlZCBvdmVyYWxsIGxl
bmd0aCBjYW4ndCBiZSBjb21wdXRlZC4KKworUEFTUyBzaG91bGQgYXBwZWFyIGJlbG93OgorCitQ
QVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2No
dW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGguaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY2h1bmtlZC1wcm9ncmVzcy1ldmVudC1leHBlY3RlZExl
bmd0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlNzFkMWRlZTdmYTNhNWI0NzM0YzRjNmIzYTU1OGU3MjBi
NTg3NjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGguaHRtbApAQCAtMCww
ICsxLDM5IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgY2FzZSBmb3IgYnVnIDM2MTU2
PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHA+IFRlc3QgY2FzZSBmb3IgPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2MTU2Ij4gYnVnIDM2MTU2PC9h
PjogWEhSICdwcm9ncmVzcycgZXZlbnQgY29kZSBhc3N1bWVzIHdyb25nbHkgdGhhdCBleHBlY3Rl
ZExlbmd0aCA+PSAwPC9wPgorPHA+IFZlcmlmeSB0aGF0IHRoZSBwcm9ncmVzcyBldmVudCB0b3Rh
bCBwcm9wZXJ0eSBpcyAwIHdoZW4gdGhlIGV4cGVjdGVkIG92ZXJhbGwgbGVuZ3RoIGNhbid0IGJl
IGNvbXB1dGVkLjxwPgorPHA+UEFTUyBzaG91bGQgYXBwZWFyIGJlbG93OjwvcD4KKzxwIGlkPWNv
bnNvbGU+PC9wPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1
bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25z
b2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicp
KTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVx
dWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL2NodW5rZWQtdHJhbnNmZXIu
cGhwIiwgdHJ1ZSk7CisgICAgeGhyLm9ucHJvZ3Jlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGNvbnNvbGUubG9nKGUubG9hZGVkICsgIiwgIiArIGUudG90YWwgKyAiLCAiICsgZS5sZW5ndGhD
b21wdXRhYmxlKTsKKwlpZiAoZS5sb2FkZWQgPT0gNCAmJiBlLnRvdGFsID09IDAgJiYgIWUubGVu
Z3RoQ29tcHV0YWJsZSkKKwl7CisJICAgIGxvZygiUEFTUyIpOworCSAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorCQlsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisJfQorICAgIH0KKyAgICB4aHIuc2VuZCgpOworfQorCit0ZXN0KCk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL2NodW5rZWQtdHJhbnNmZXIucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvY2h1bmtlZC10cmFuc2Zlci5waHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjUxMTg5MTkzYzZmODg1ZDFjZmE4NDVlMzY0MzZiYTZjYzgwM2QzNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2NodW5r
ZWQtdHJhbnNmZXIucGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAgCitoZWFkZXIoIlRyYW5zZmVy
LWVuY29kaW5nOiBjaHVua2VkIik7CitmbHVzaCgpOworc2xlZXAoMC41KTsKK3ByaW50ZigiNFxy
XG48YS8+XHJcbiIpOworZmx1c2goKTsKK3NsZWVwKDAuNSk7CitwcmludGYoIjBcclxuXHJcbiIp
OyAKKz8+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117192</attachid>
            <date>2011-11-30 07:40:05 -0800</date>
            <delta_ts>2011-11-30 13:18:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36156-20111130074003.patch</filename>
            <type>text/plain</type>
            <size>5532</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdjMjNkMzNkMTU4MWY0
MDJlMTEwNjEyMjk4YWQ4Y2M2ZTA2OTAyNy4uMmU1YjRmMGJhY2QzNzJmYzcxMTQ2OTg2ZmU3NDll
MDEzOGI4MjQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTExLTI5ICBIYW5z
IE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFhIUiAncHJvZ3Jlc3MnIGV2
ZW50IGNvZGUgYXNzdW1lcyB3cm9uZ2x5IHRoYXQgZXhwZWN0ZWRMZW5ndGggPj0gMAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzYxNTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgIEF2b2lkIHBhc3Np
bmcgYSBuZWdhdGl2ZSB2YWx1ZSBhcyB0aGUgZGlzcGF0Y2hQcm9ncmVzc0V2ZW50J3MgdG90YWwg
cGFyYW1ldGVyIGFuZCBhbHdheXMgdXNlIDAgd2hlbiBsZW5ndGhDb21wdXRhYmxlIGlzIGZhbHNl
LgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY2h1bmtlZC1wcm9n
cmVzcy1ldmVudC1leHBlY3RlZExlbmd0aC5odG1sCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJl
cXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZFJlY2VpdmVE
YXRhKToKKwogMjAxMS0xMS0yOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmVydCB0aGF0IGxhc3QgY2hhbmdlLCBhcHBhcmVudGx5IGl0IGRlc3Ryb3lzIGV2
ZXJ5dGhpbmcgaW4gdGhlIHdvcmxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
aW5kZXggMDRkOTI3ZWRjYTE0YTcwYjIxOWRjYTQ2MGRmNjNkNDZlNmNmNTA5OC4uMDU5MGE0M2Q2
NTU3ZmJjNTA1ZGVmMDA2MGQ1MmNhYzkyZDJkZmViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCkBAIC0xMDgwLDggKzEwODAsOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0Ojpk
aWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuKQogICAgICAgICBtX3JlY2Vp
dmVkTGVuZ3RoICs9IGxlbjsKIAogICAgICAgICBpZiAobV9hc3luYykgewotICAgICAgICAgICAg
Ym9vbCBsZW5ndGhDb21wdXRhYmxlID0gZXhwZWN0ZWRMZW5ndGggJiYgbV9yZWNlaXZlZExlbmd0
aCA8PSBleHBlY3RlZExlbmd0aDsKLSAgICAgICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxl
LmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChsZW5ndGhDb21wdXRhYmxlLCBtX3JlY2VpdmVkTGVuZ3Ro
LCBleHBlY3RlZExlbmd0aCk7CisgICAgICAgICAgICBib29sIGxlbmd0aENvbXB1dGFibGUgPSBl
eHBlY3RlZExlbmd0aCA+IDAgJiYgbV9yZWNlaXZlZExlbmd0aCA8PSBleHBlY3RlZExlbmd0aDsK
KyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbCA9IGxlbmd0aENvbXB1dGFibGUg
PyBleHBlY3RlZExlbmd0aCA6IDA7CisgICAgICAgICAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRs
ZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQobGVuZ3RoQ29tcHV0YWJsZSwgbV9yZWNlaXZlZExlbmd0
aCwgdG90YWwpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fc3RhdGUgIT0gTE9BRElORykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4YmY1M2MyYzkzMmRlN2IzMDM1MGQ2ZTRiN2ZmOTdkODQzZmM4OTc2Li5hZTQyNjlj
OTcwZDZlYmE3N2ZhZGYzNmE0YzZjODM4MmUzMjAyOWIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTEtMTEtMjkgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAg
WEhSICdwcm9ncmVzcycgZXZlbnQgY29kZSBhc3N1bWVzIHdyb25nbHkgdGhhdCBleHBlY3RlZExl
bmd0aCA+PSAwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNjE1NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCisgICAg
ICAgIAorICAgICAgICBWZXJpZnkgdGhhdCBYTUxIdHRwUmVxdWVzdCBQcm9ncmVzc0V2ZW50J3Mg
dG90YWwgaXMgemVybyB3aGVuIHRoZSBleHBlY3RlZExlbmd0aCBvZiB0aGUKKyAgICAgICAgKGNo
dW5rZWQgdHJhbnNmZXIgbW9kZSkgcmVzcG9uc2UgY2FuJ3QgYmUgY29tcHV0ZWQuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhw
ZWN0ZWRMZW5ndGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGguaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvY2h1
bmtlZC10cmFuc2Zlci5waHA6IEFkZGVkLgorCiAyMDExLTExLTI5ICBYaWFvbWVpIEppICA8eGpp
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWJhc2UgYWZ0ZXIgcjEwMDgxOS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY2h1bmtlZC1wcm9ncmVz
cy1ldmVudC1leHBlY3RlZExlbmd0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGgt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYTE1ODcyZjAwZWU4YzRmZDkxOGU0OTQzZWY1M2Nj
YmQyN2U0ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGgtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNyBAQAorVGVzdCBjYXNlIGZvciBidWcgMzYxNTY6IFhIUiAncHJvZ3Jl
c3MnIGV2ZW50IGNvZGUgYXNzdW1lcyB3cm9uZ2x5IHRoYXQgZXhwZWN0ZWRMZW5ndGggPj0gMAor
CitWZXJpZnkgdGhhdCB0aGUgcHJvZ3Jlc3MgZXZlbnQgdG90YWwgcHJvcGVydHkgaXMgMCB3aGVu
IHRoZSBleHBlY3RlZCBvdmVyYWxsIGxlbmd0aCBjYW4ndCBiZSBjb21wdXRlZC4KKworUEFTUyBz
aG91bGQgYXBwZWFyIGJlbG93OgorCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5n
dGguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY2h1bmtlZC1w
cm9ncmVzcy1ldmVudC1leHBlY3RlZExlbmd0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyY2ZhMjUwZDI0
NTU5YTc5MjRjZmRmY2E4NTBjODE0MWM5ZTM2YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhw
ZWN0ZWRMZW5ndGguaHRtbApAQCAtMCwwICsxLDM4IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxl
PlRlc3QgY2FzZSBmb3IgYnVnIDM2MTU2PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHA+IFRl
c3QgY2FzZSBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM2MTU2Ij4gYnVnIDM2MTU2PC9hPjogWEhSICdwcm9ncmVzcycgZXZlbnQgY29kZSBhc3N1
bWVzIHdyb25nbHkgdGhhdCBleHBlY3RlZExlbmd0aCA+PSAwPC9wPgorPHA+IFZlcmlmeSB0aGF0
IHRoZSBwcm9ncmVzcyBldmVudCB0b3RhbCBwcm9wZXJ0eSBpcyAwIHdoZW4gdGhlIGV4cGVjdGVk
IG92ZXJhbGwgbGVuZ3RoIGNhbid0IGJlIGNvbXB1dGVkLjxwPgorPHA+UEFTUyBzaG91bGQgYXBw
ZWFyIGJlbG93OjwvcD4KKzxwIGlkPWNvbnNvbGU+PC9wPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAg
dmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAicmVz
b3VyY2VzL2NodW5rZWQtdHJhbnNmZXIucGhwIiwgdHJ1ZSk7CisgICAgeGhyLm9ucHJvZ3Jlc3Mg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGlmIChlLmxvYWRlZCA9PSA0ICYmIGUudG90YWwgPT0g
MCAmJiAhZS5sZW5ndGhDb21wdXRhYmxlKQorICAgICAgICB7CisgICAgICAgICAgICBsb2coIlBB
U1MiKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9
CisgICAgfQorICAgIHhoci5zZW5kKCk7Cit9CisKK3Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvY2h1bmtlZC10cmFuc2Zlci5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy9jaHVua2VkLXRyYW5zZmVyLnBocApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTEx
ODkxOTNjNmY4ODVkMWNmYTg0NWUzNjQzNmJhNmNjODAzZDM3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvY2h1bmtlZC10
cmFuc2Zlci5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocCAKK2hlYWRlcigiVHJhbnNmZXItZW5j
b2Rpbmc6IGNodW5rZWQiKTsKK2ZsdXNoKCk7CitzbGVlcCgwLjUpOworcHJpbnRmKCI0XHJcbjxh
Lz5cclxuIik7CitmbHVzaCgpOworc2xlZXAoMC41KTsKK3ByaW50ZigiMFxyXG5cclxuIik7IAor
Pz4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117260</attachid>
            <date>2011-11-30 13:19:02 -0800</date>
            <delta_ts>2011-11-30 16:51:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36156-20111130131901.patch</filename>
            <type>text/plain</type>
            <size>5683</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdjMjNkMzNkMTU4MWY0
MDJlMTEwNjEyMjk4YWQ4Y2M2ZTA2OTAyNy4uMjY1YWZiYTJkMmVjY2JjY2NlYTc3NmI4YzBmMzA0
MmU5YzUxYjQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTExLTI5ICBIYW5z
IE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFhIUiAncHJvZ3Jlc3MnIGV2
ZW50IGNvZGUgYXNzdW1lcyB3cm9uZ2x5IHRoYXQgZXhwZWN0ZWRMZW5ndGggPj0gMAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzYxNTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKQorCisgICAgICAgIEF2b2lkIHBhc3NpbmcgYSBu
ZWdhdGl2ZSB2YWx1ZSBhcyB0aGUgZGlzcGF0Y2hQcm9ncmVzc0V2ZW50J3MgdG90YWwgcGFyYW1l
dGVyIGFuZCBhbHdheXMgdXNlIDAgd2hlbiBsZW5ndGhDb21wdXRhYmxlIGlzIGZhbHNlLgorCisg
ICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY2h1bmtlZC1wcm9ncmVzcy1l
dmVudC1leHBlY3RlZExlbmd0aC5odG1sCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZFJlY2VpdmVEYXRhKToK
KwogMjAxMS0xMS0yOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmVydCB0aGF0IGxhc3QgY2hhbmdlLCBhcHBhcmVudGx5IGl0IGRlc3Ryb3lzIGV2ZXJ5dGhp
bmcgaW4gdGhlIHdvcmxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXgg
MDRkOTI3ZWRjYTE0YTcwYjIxOWRjYTQ2MGRmNjNkNDZlNmNmNTA5OC4uMDU5MGE0M2Q2NTU3ZmJj
NTA1ZGVmMDA2MGQ1MmNhYzkyZDJkZmViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCkBAIC0xMDgwLDggKzEwODAsOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRSZWNl
aXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuKQogICAgICAgICBtX3JlY2VpdmVkTGVu
Z3RoICs9IGxlbjsKIAogICAgICAgICBpZiAobV9hc3luYykgewotICAgICAgICAgICAgYm9vbCBs
ZW5ndGhDb21wdXRhYmxlID0gZXhwZWN0ZWRMZW5ndGggJiYgbV9yZWNlaXZlZExlbmd0aCA8PSBl
eHBlY3RlZExlbmd0aDsKLSAgICAgICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3Bh
dGNoUHJvZ3Jlc3NFdmVudChsZW5ndGhDb21wdXRhYmxlLCBtX3JlY2VpdmVkTGVuZ3RoLCBleHBl
Y3RlZExlbmd0aCk7CisgICAgICAgICAgICBib29sIGxlbmd0aENvbXB1dGFibGUgPSBleHBlY3Rl
ZExlbmd0aCA+IDAgJiYgbV9yZWNlaXZlZExlbmd0aCA8PSBleHBlY3RlZExlbmd0aDsKKyAgICAg
ICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbCA9IGxlbmd0aENvbXB1dGFibGUgPyBleHBl
Y3RlZExlbmd0aCA6IDA7CisgICAgICAgICAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5kaXNw
YXRjaFByb2dyZXNzRXZlbnQobGVuZ3RoQ29tcHV0YWJsZSwgbV9yZWNlaXZlZExlbmd0aCwgdG90
YWwpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fc3RhdGUgIT0gTE9BRElORykKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA4YmY1M2MyYzkzMmRlN2IzMDM1MGQ2ZTRiN2ZmOTdkODQzZmM4OTc2Li5kMWNkMzJkN2MxNWM1
MmIxYmNmNDM3NDE1NDE0NjM5ODdkNmMzMjJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEt
MTEtMjkgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgWEhSICdw
cm9ncmVzcycgZXZlbnQgY29kZSBhc3N1bWVzIHdyb25nbHkgdGhhdCBleHBlY3RlZExlbmd0aCA+
PSAwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjE1
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpCisgICAgICAgIAorICAgICAg
ICBWZXJpZnkgdGhhdCBYTUxIdHRwUmVxdWVzdCBQcm9ncmVzc0V2ZW50J3MgdG90YWwgaXMgemVy
byB3aGVuIHRoZSBleHBlY3RlZExlbmd0aCBvZiB0aGUKKyAgICAgICAgKGNodW5rZWQgdHJhbnNm
ZXIgbW9kZSkgcmVzcG9uc2UgY2FuJ3QgYmUgY29tcHV0ZWQuCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGgt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGguaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvY2h1bmtlZC10cmFuc2Zl
ci5waHA6IEFkZGVkLgorCiAyMDExLTExLTI5ICBYaWFvbWVpIEppICA8eGppQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZWJhc2UgYWZ0ZXIgcjEwMDgxOS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY2h1bmtlZC1wcm9ncmVzcy1ldmVudC1leHBl
Y3RlZExlbmd0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGgtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJhYTE1ODcyZjAwZWU4YzRmZDkxOGU0OTQzZWY1M2NjYmQyN2U0ZDYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2No
dW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNyBAQAorVGVzdCBjYXNlIGZvciBidWcgMzYxNTY6IFhIUiAncHJvZ3Jlc3MnIGV2ZW50IGNv
ZGUgYXNzdW1lcyB3cm9uZ2x5IHRoYXQgZXhwZWN0ZWRMZW5ndGggPj0gMAorCitWZXJpZnkgdGhh
dCB0aGUgcHJvZ3Jlc3MgZXZlbnQgdG90YWwgcHJvcGVydHkgaXMgMCB3aGVuIHRoZSBleHBlY3Rl
ZCBvdmVyYWxsIGxlbmd0aCBjYW4ndCBiZSBjb21wdXRlZC4KKworUEFTUyBzaG91bGQgYXBwZWFy
IGJlbG93OgorCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGguaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY2h1bmtlZC1wcm9ncmVzcy1ldmVu
dC1leHBlY3RlZExlbmd0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwODFhNmI0YjFmNGNmMjE0NzAwNWJk
MDUxZDZmOGUwOTIyZjAxMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGgu
aHRtbApAQCAtMCwwICsxLDQyIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgY2FzZSBm
b3IgYnVnIDM2MTU2PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHA+IFRlc3QgY2FzZSBmb3Ig
PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2MTU2Ij4g
YnVnIDM2MTU2PC9hPjogWEhSICdwcm9ncmVzcycgZXZlbnQgY29kZSBhc3N1bWVzIHdyb25nbHkg
dGhhdCBleHBlY3RlZExlbmd0aCA+PSAwPC9wPgorPHA+IFZlcmlmeSB0aGF0IHRoZSBwcm9ncmVz
cyBldmVudCB0b3RhbCBwcm9wZXJ0eSBpcyAwIHdoZW4gdGhlIGV4cGVjdGVkIG92ZXJhbGwgbGVu
Z3RoIGNhbid0IGJlIGNvbXB1dGVkLjxwPgorPHA+UEFTUyBzaG91bGQgYXBwZWFyIGJlbG93Ojwv
cD4KKzxwIGlkPWNvbnNvbGU+PC9wPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVz
c2FnZSArICdcbicpKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIHhociA9IG5l
dyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL2NodW5r
ZWQtdHJhbnNmZXIucGhwIiwgdHJ1ZSk7CisgICAgeGhyLm9ucHJvZ3Jlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGlmIChlLmxvYWRlZCA9PSA0ICYmIGUudG90YWwgPT0gMCAmJiAhZS5sZW5n
dGhDb21wdXRhYmxlKQorICAgICAgICB7CisgICAgICAgICAgICBsb2coIlBBU1MiKTsKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgICAgIGVs
c2UgaWYgKGUudG90YWwgIT0gMCAmJiAhZS5sZW5ndGhDb21wdXRhYmxlKQorICAgICAgICB7Cisg
ICAgICAgICAgICBsb2coIkZBSUw6IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCBsZW5ndGhD
b21wdXRhYmxlPWZhbHNlIGJ1dCB0b3RhbCBpcyBub24temVybzogIiArIGUudG90YWwpOworICAg
ICAgICB9CisgICAgfQorICAgIHhoci5zZW5kKCk7Cit9CisKK3Rlc3QoKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvY2h1bmtlZC10cmFuc2Zlci5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9jaHVua2VkLXRyYW5zZmVyLnBocApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yYjc5YzdmZmQ0NTU4YzdjODZiMjM2MjhlODIxN2E0Yzg3MzRjZTBiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvY2h1
bmtlZC10cmFuc2Zlci5waHAKQEAgLTAsMCArMSw3IEBACis8P3BocCAKK2hlYWRlcigiVHJhbnNm
ZXItZW5jb2Rpbmc6IGNodW5rZWQiKTsKK2ZsdXNoKCk7CitwcmludGYoIjRcclxuPGEvPlxyXG4i
KTsKK2ZsdXNoKCk7CitwcmludGYoIjBcclxuXHJcbiIpOyAKKz8+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117296</attachid>
            <date>2011-11-30 16:51:39 -0800</date>
            <delta_ts>2011-11-30 22:38:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36156-20111130165138.patch</filename>
            <type>text/plain</type>
            <size>5760</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdjMjNkMzNkMTU4MWY0
MDJlMTEwNjEyMjk4YWQ4Y2M2ZTA2OTAyNy4uMjY1YWZiYTJkMmVjY2JjY2NlYTc3NmI4YzBmMzA0
MmU5YzUxYjQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTExLTI5ICBIYW5z
IE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFhIUiAncHJvZ3Jlc3MnIGV2
ZW50IGNvZGUgYXNzdW1lcyB3cm9uZ2x5IHRoYXQgZXhwZWN0ZWRMZW5ndGggPj0gMAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzYxNTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKQorCisgICAgICAgIEF2b2lkIHBhc3NpbmcgYSBu
ZWdhdGl2ZSB2YWx1ZSBhcyB0aGUgZGlzcGF0Y2hQcm9ncmVzc0V2ZW50J3MgdG90YWwgcGFyYW1l
dGVyIGFuZCBhbHdheXMgdXNlIDAgd2hlbiBsZW5ndGhDb21wdXRhYmxlIGlzIGZhbHNlLgorCisg
ICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY2h1bmtlZC1wcm9ncmVzcy1l
dmVudC1leHBlY3RlZExlbmd0aC5odG1sCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZFJlY2VpdmVEYXRhKToK
KwogMjAxMS0xMS0yOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmVydCB0aGF0IGxhc3QgY2hhbmdlLCBhcHBhcmVudGx5IGl0IGRlc3Ryb3lzIGV2ZXJ5dGhp
bmcgaW4gdGhlIHdvcmxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXgg
MDRkOTI3ZWRjYTE0YTcwYjIxOWRjYTQ2MGRmNjNkNDZlNmNmNTA5OC4uMDU5MGE0M2Q2NTU3ZmJj
NTA1ZGVmMDA2MGQ1MmNhYzkyZDJkZmViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCkBAIC0xMDgwLDggKzEwODAsOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRSZWNl
aXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuKQogICAgICAgICBtX3JlY2VpdmVkTGVu
Z3RoICs9IGxlbjsKIAogICAgICAgICBpZiAobV9hc3luYykgewotICAgICAgICAgICAgYm9vbCBs
ZW5ndGhDb21wdXRhYmxlID0gZXhwZWN0ZWRMZW5ndGggJiYgbV9yZWNlaXZlZExlbmd0aCA8PSBl
eHBlY3RlZExlbmd0aDsKLSAgICAgICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3Bh
dGNoUHJvZ3Jlc3NFdmVudChsZW5ndGhDb21wdXRhYmxlLCBtX3JlY2VpdmVkTGVuZ3RoLCBleHBl
Y3RlZExlbmd0aCk7CisgICAgICAgICAgICBib29sIGxlbmd0aENvbXB1dGFibGUgPSBleHBlY3Rl
ZExlbmd0aCA+IDAgJiYgbV9yZWNlaXZlZExlbmd0aCA8PSBleHBlY3RlZExlbmd0aDsKKyAgICAg
ICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbCA9IGxlbmd0aENvbXB1dGFibGUgPyBleHBl
Y3RlZExlbmd0aCA6IDA7CisgICAgICAgICAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5kaXNw
YXRjaFByb2dyZXNzRXZlbnQobGVuZ3RoQ29tcHV0YWJsZSwgbV9yZWNlaXZlZExlbmd0aCwgdG90
YWwpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fc3RhdGUgIT0gTE9BRElORykKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA4YmY1M2MyYzkzMmRlN2IzMDM1MGQ2ZTRiN2ZmOTdkODQzZmM4OTc2Li5kMWNkMzJkN2MxNWM1
MmIxYmNmNDM3NDE1NDE0NjM5ODdkNmMzMjJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEt
MTEtMjkgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgWEhSICdw
cm9ncmVzcycgZXZlbnQgY29kZSBhc3N1bWVzIHdyb25nbHkgdGhhdCBleHBlY3RlZExlbmd0aCA+
PSAwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjE1
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpCisgICAgICAgIAorICAgICAg
ICBWZXJpZnkgdGhhdCBYTUxIdHRwUmVxdWVzdCBQcm9ncmVzc0V2ZW50J3MgdG90YWwgaXMgemVy
byB3aGVuIHRoZSBleHBlY3RlZExlbmd0aCBvZiB0aGUKKyAgICAgICAgKGNodW5rZWQgdHJhbnNm
ZXIgbW9kZSkgcmVzcG9uc2UgY2FuJ3QgYmUgY29tcHV0ZWQuCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGgt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGguaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvY2h1bmtlZC10cmFuc2Zl
ci5waHA6IEFkZGVkLgorCiAyMDExLTExLTI5ICBYaWFvbWVpIEppICA8eGppQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZWJhc2UgYWZ0ZXIgcjEwMDgxOS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY2h1bmtlZC1wcm9ncmVzcy1ldmVudC1leHBl
Y3RlZExlbmd0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGgtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJhYTE1ODcyZjAwZWU4YzRmZDkxOGU0OTQzZWY1M2NjYmQyN2U0ZDYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2No
dW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNyBAQAorVGVzdCBjYXNlIGZvciBidWcgMzYxNTY6IFhIUiAncHJvZ3Jlc3MnIGV2ZW50IGNv
ZGUgYXNzdW1lcyB3cm9uZ2x5IHRoYXQgZXhwZWN0ZWRMZW5ndGggPj0gMAorCitWZXJpZnkgdGhh
dCB0aGUgcHJvZ3Jlc3MgZXZlbnQgdG90YWwgcHJvcGVydHkgaXMgMCB3aGVuIHRoZSBleHBlY3Rl
ZCBvdmVyYWxsIGxlbmd0aCBjYW4ndCBiZSBjb21wdXRlZC4KKworUEFTUyBzaG91bGQgYXBwZWFy
IGJlbG93OgorCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGguaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY2h1bmtlZC1wcm9ncmVzcy1ldmVu
dC1leHBlY3RlZExlbmd0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0Y2EzYzQxYjk0NWQ2YjcxZWY2YWJh
MTI1MmU0ZDMxM2I0MmViNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2NodW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGgu
aHRtbApAQCAtMCwwICsxLDQ2IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgY2FzZSBm
b3IgYnVnIDM2MTU2PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHA+IFRlc3QgY2FzZSBmb3Ig
PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2MTU2Ij4g
YnVnIDM2MTU2PC9hPjogWEhSICdwcm9ncmVzcycgZXZlbnQgY29kZSBhc3N1bWVzIHdyb25nbHkg
dGhhdCBleHBlY3RlZExlbmd0aCA+PSAwPC9wPgorPHA+IFZlcmlmeSB0aGF0IHRoZSBwcm9ncmVz
cyBldmVudCB0b3RhbCBwcm9wZXJ0eSBpcyAwIHdoZW4gdGhlIGV4cGVjdGVkIG92ZXJhbGwgbGVu
Z3RoIGNhbid0IGJlIGNvbXB1dGVkLjxwPgorPHA+UEFTUyBzaG91bGQgYXBwZWFyIGJlbG93Ojwv
cD4KKzxwIGlkPWNvbnNvbGU+PC9wPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVz
c2FnZSArICdcbicpKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIHhociA9IG5l
dyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL2NodW5r
ZWQtdHJhbnNmZXIucGhwIiwgdHJ1ZSk7CisKKyAgICB4aHIub25wcm9ncmVzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgaWYgKGUubG9hZGVkID09IDQgJiYgZS50b3RhbCA9PSAwICYmICFlLmxl
bmd0aENvbXB1dGFibGUpCisgICAgICAgICAgICBsb2coIlBBU1MiKTsKKyAgICAgICAgZWxzZSBp
ZiAoZS50b3RhbCAhPSAwICYmICFlLmxlbmd0aENvbXB1dGFibGUpCisgICAgICAgICAgICBsb2co
IkZBSUw6IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCBsZW5ndGhDb21wdXRhYmxlPWZhbHNl
IGJ1dCB0b3RhbCBpcyBub24temVybzogIiArIGUudG90YWwpOworICAgIH0KKworICAgIHhoci5v
bnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGlmICh4aHIucmVhZHlT
dGF0ZSA9PSB4aHIuRE9ORSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgeGhyLnNlbmQoKTsKK30KKwor
dGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9jaHVua2VkLXRyYW5zZmVyLnBocCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2NodW5rZWQtdHJh
bnNmZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNzljN2ZmZDQ1NThjN2M4NmIyMzYyOGU4MjE3YTRjODcz
NGNlMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3Jlc291cmNlcy9jaHVua2VkLXRyYW5zZmVyLnBocApAQCAtMCwwICsxLDcgQEAKKzw/
cGhwIAoraGVhZGVyKCJUcmFuc2Zlci1lbmNvZGluZzogY2h1bmtlZCIpOworZmx1c2goKTsKK3By
aW50ZigiNFxyXG48YS8+XHJcbiIpOworZmx1c2goKTsKK3ByaW50ZigiMFxyXG5cclxuIik7IAor
Pz4K
</data>

          </attachment>
      

    </bug>

</bugzilla>