<?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>127784</bug_id>
          
          <creation_ts>2014-01-28 09:25:52 -0800</creation_ts>
          <short_desc>WebKit Bot Watcher&apos;s Dashboard: Add support for using HTTP authentication with Buildbot</short_desc>
          <delta_ts>2014-01-29 13:17:46 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>ap</cc>
    
    <cc>dfarler</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>972967</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-01-28 09:25:52 -0800</bug_when>
    <thetext>Implement support for querying a Buildbot that requires HTTP authentication.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972969</commentid>
    <comment_count>1</comment_count>
      <attachid>222461</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-01-28 09:34:49 -0800</bug_when>
    <thetext>Created attachment 222461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972980</commentid>
    <comment_count>2</comment_count>
      <attachid>222461</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-28 09:58:11 -0800</bug_when>
    <thetext>Comment on attachment 222461
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Utilities.js:44
&gt; +        if (this.status &amp;&amp; this.status !== 200 &amp;&amp; options.hasOwnProperty(&quot;callbackOnLoadError&quot;) &amp;&amp; options.callbackOnLoadError === true) {
&gt; +            callback({error: this.statusText, errorHTTPCode: this.status});
&gt; +            return;
&gt; +        }

I think that we should always notify the caller of errors. This is actually needed in other code paths too, as we could implement some optimizations if we could track whether iteration data is currently loading, or the load already failed.

An additional callback argument would work. Alternatively, we could pass an object with multiple optional callback functions, e.g. JSON.load(url, { onsuccess = function(data) {...}, onparseerror=..., onloaderror=... }).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973432</commentid>
    <comment_count>3</comment_count>
      <attachid>222588</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-01-29 12:02:33 -0800</bug_when>
    <thetext>Created attachment 222588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973434</commentid>
    <comment_count>4</comment_count>
      <attachid>222588</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-29 12:12:01 -0800</bug_when>
    <thetext>Comment on attachment 222588
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:65
&gt; +    get needsAuthentication()
&gt; +    {
&gt; +        return this.buildbot.needsAuthentication;
&gt; +    },

I&apos;d just put this check inline - we don&apos;t need to create a concept of a queue that needs authentication, it&apos;s the server that does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973437</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-01-29 12:13:07 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 222461 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=222461&amp;action=review
&gt; 
&gt; &gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Utilities.js:44
&gt; &gt; +        if (this.status &amp;&amp; this.status !== 200 &amp;&amp; options.hasOwnProperty(&quot;callbackOnLoadError&quot;) &amp;&amp; options.callbackOnLoadError === true) {
&gt; &gt; +            callback({error: this.statusText, errorHTTPCode: this.status});
&gt; &gt; +            return;
&gt; &gt; +        }
&gt; 
&gt; I think that we should always notify the caller of errors. This is actually needed in other code paths too, as we could implement some optimizations if we could track whether iteration data is currently loading, or the load already failed.
&gt; 
&gt; An additional callback argument would work. Alternatively, we could pass an object with multiple optional callback functions, e.g. JSON.load(url, { onsuccess = function(data) {...}, onparseerror=..., onloaderror=... }).

I chose to separate into different bugs the change to teach JSON.load() to optionally send an XMLHTTPRequest with credentials from the change to avoid excessive HTTP authentication prompts. This bug is for the former and bug #127849 is for the latter, which includes adding support for a failure callback function to JSON.load().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973439</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-01-29 12:13:38 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 222588 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=222588&amp;action=review
&gt; 
&gt; &gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:65
&gt; &gt; +    get needsAuthentication()
&gt; &gt; +    {
&gt; &gt; +        return this.buildbot.needsAuthentication;
&gt; &gt; +    },
&gt; 
&gt; I&apos;d just put this check inline - we don&apos;t need to create a concept of a queue that needs authentication, it&apos;s the server that does.

Will inline before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973441</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-01-29 12:18:29 -0800</bug_when>
    <thetext>Committed r163034: &lt;http://trac.webkit.org/changeset/163034&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973454</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-01-29 13:17:46 -0800</bug_when>
    <thetext>Fixed syntax issue when using JSONP requests and committed the fix in &lt;http://trac.webkit.org/changeset/163040&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222461</attachid>
            <date>2014-01-28 09:34:49 -0800</date>
            <delta_ts>2014-01-29 12:02:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127784-20140128093451.patch</filename>
            <type>text/plain</type>
            <size>8497</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyODg4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZThmNDRiMjk2OTg4MmRiNDJjYzFmMGU0ODQyNzRhM2U1
ZmRlNWZiMy4uYWVhOTZjYzdhZWFiOTNiYjY1MGEzZjU5MGQ4ZmE2ZDg2ZWRkZDM2YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDE0LTAxLTI4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWJLaXQgQm90IFdhdGNoZXIncyBEYXNoYm9hcmQ6IEFkZCBzdXBwb3J0IGZvciB1c2lu
ZyBIVFRQIGF1dGhlbnRpY2F0aW9uIHdpdGggQnVpbGRib3QKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc4NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBzdXBwb3J0IGZvciBxdWVyeWlu
ZyBhIEJ1aWxkYm90IHRoYXQgcmVxdWlyZXMgSFRUUCBhdXRoZW50aWNhdGlvbiB0byBhY2Nlc3MK
KyAgICAgICAgaXQgYW5kIHRlYWNoIHRoZSBXZWJLaXQgQm90IFdhdGNoZXIncyBEYXNoYm9hcmQg
dG8gb25seSByZXF1ZXN0IHN1Y2ggYXV0aGVudGljYXRpb24gb25jZQorICAgICAgICBwZXIgcGFn
ZSBsb2FkLgorCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1j
b25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3QuanM6CisgICAgICAg
IChCdWlsZGJvdCk6IEFkZCBvcHRpb25hbCBhcmd1bWVudCwgb3B0aW9ucywgdG8gcGFzcyBhIGRp
Y3Rpb25hcnkgb2YgQnVpbGRib3Qgb3B0aW9ucy4KKyAgICAgICAgRm9yIG5vdywgd2Ugb25seSBz
dXBwb3J0IGEgc2luZ2xlIG9wdGlvbiwgbmVlZHNBdXRoZW50aWNhdGlvbiwgdG8gaW5kaWNhdGUg
d2hldGhlciB0aGUKKyAgICAgICAgQnVpbGRib3RzIHJlcXVpcmVzIEhUVFAgYXV0aGVudGljYXRp
b24gKGRlZmF1bHRzIHRvIGZhbHNlIC0gSFRUUCBhdXRoZW50aWNhdGlvbiBpcworICAgICAgICBu
b3QgcmVxdWlyZWQpLgorICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9u
LmpzOgorICAgICAgICAoQnVpbGRib3RJdGVyYXRpb24ucHJvdG90eXBlLmxvYWRMYXlvdXRUZXN0
UmVzdWx0cyk6CisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1j
b25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qczoKKyAg
ICAgICAgKEJ1aWxkYm90UXVldWUpOiBJbml0aWFsaXplIHByaXZhdGUgaW5zdGFuY2UgdmFyaWFi
bGUsIF9hdXRoZW50aWNhdGlvbkVycm9yT2NjdXJyZWQsIHRvIGZhbHNlLgorICAgICAgICBXZSB1
c2UgdGhpcyBpbnN0YW5jZSB2YXJpYWJsZSB0byBlbnN1cmUgdGhhdCBhIHBlcnNvbiBpcyBvbmx5
IHByb21wdGVkIG9uY2UgZm9yIHRoZWlyIGNyZWRlbnRpYWxzLgorICAgICAgICBXaGVuIF9hdXRo
ZW50aWNhdGlvbkVycm9yT2NjdXJyZWQgaXMgdHJ1ZSwgdGhlIHF1ZXVlIHdpbGwgbm90IHF1ZXJ5
IHRoZSBidWlsZGJvdCBhcyBhbiBlYXJsaWVyCisgICAgICAgIEhUVFAgcmVxdWVzdCBmYWlsZWQg
ZHVlIHRvIGludmFsaWQgY3JlZGVudGlhbHMuCisgICAgICAgIChCdWlsZGJvdFF1ZXVlLnByb3Rv
dHlwZS5nZXQgbmVlZHNBdXRoZW50aWNhdGlvbik6IEFkZGVkIGNvbnZlbmllbmNlIGdldHRlci4g
UmV0dXJucyB0aGUgdmFsdWUKKyAgICAgICAgb2YgQnVpbGRib3QubmVlZHNBdXRoZW50aWNhdGlv
bi4KKyAgICAgICAgKEJ1aWxkYm90UXVldWUucHJvdG90eXBlLnVwZGF0ZSk6IE1vZGlmaWVkIHRv
IHF1ZXJ5IEJ1aWxkYm90IHdpdGggY3JlZGVudGlhbHMgKGlmIGFwcGxpY2FibGUpCisgICAgICAg
IGFuZCBlbnN1cmVzIHdlIG9ubHkgcHJvbXB0IGEgcGVyc29uIG9uY2UgcGVyIHBhZ2UgbG9hZCBm
b3IgSFRUUCBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscy4KKyAgICAgICAgKiBCdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9VdGlsaXRpZXMuanM6CisgICAgICAgICgucmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2Up
OgorICAgICAgICAoSlNPTi5sb2FkKTogUmVtb3ZlZCBvcHRpb25hbCBhcmd1bWVudCBqc29ucENh
bGxiYWNrTmFtZSBhbmQgYWRkZWQgb3B0aW9uYWwgYXJndW1lbnQgb3B0aW9ucywKKyAgICAgICAg
d2hpY2ggaXMgYSBkaWN0aW9uYXJ5LiBUaGUgYXJndW1lbnQganNvbnBDYWxsYmFja05hbWUgaXMg
bm93IHNwZWNpZmllZCBhcyBhbiBlbnRyeSBpbiB0aGUKKyAgICAgICAgb3B0aW9ucyBkaWN0aW9u
YXJ5LiBBZGRlZCBib29sZWFuIG9wdGlvbnMgd2l0aENyZWRlbnRpYWxzIGFuZCBjYWxsYmFja09u
TG9hZEVycm9yIHRvIHRvZ2dsZQorICAgICAgICBxdWVyeWluZyB3aXRoIEhUVFAgYXV0aGVudGlj
YXRpb24gY3JlZGVudGlhbHMgYW5kIHRvIGNhbGxiYWNrIG9uIGEgbG9hZCBlcnJvciwgcmVzcGVj
dGl2ZWx5LgorCiAyMDE0LTAxLTI3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4K
IAogICAgICAgICBUZWFjaCBCdWlsZGJvdCBkYXNoYm9hcmQgdG8gcGFyc2UgYWx0ZXJuYXRpdmUg
cmV2aXNpb24gZm9ybWF0CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWls
ZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJv
dC5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1
YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90LmpzCmluZGV4IGJiMTQ2YjMxYjhm
NmRiZWUwM2E4OWE5MDlmODYwMDkzYzBkMGUzODAuLjVjODQ5OWRkNjU1OGM4NmNjYTY5NGM4MDYz
ZDE4OTIyOGE2ZGQzYjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90
LmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmln
L3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90LmpzCkBAIC0yMyw3ICsyMyw3
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotQnVpbGRib3Qg
PSBmdW5jdGlvbihiYXNlVVJMLCBxdWV1ZXNJbmZvKQorQnVpbGRib3QgPSBmdW5jdGlvbihiYXNl
VVJMLCBxdWV1ZXNJbmZvLCBvcHRpb25zKQogewogICAgIEJhc2VPYmplY3QuY2FsbCh0aGlzKTsK
IApAQCAtMzIsNiArMzIsNyBAQCBCdWlsZGJvdCA9IGZ1bmN0aW9uKGJhc2VVUkwsIHF1ZXVlc0lu
Zm8pCiAKICAgICB0aGlzLmJhc2VVUkwgPSBiYXNlVVJMOwogICAgIHRoaXMucXVldWVzID0ge307
CisgICAgdGhpcy5uZWVkc0F1dGhlbnRpY2F0aW9uID0gdHlwZW9mIG9wdGlvbnMgPT09ICJvYmpl
Y3QiICYmIG9wdGlvbnMubmVlZHNBdXRoZW50aWNhdGlvbiA9PT0gdHJ1ZTsKIAogICAgIGZvciAo
dmFyIGlkIGluIHF1ZXVlc0luZm8pCiAgICAgICAgIHRoaXMucXVldWVzW2lkXSA9IG5ldyBCdWls
ZGJvdFF1ZXVlKHRoaXMsIGlkLCBxdWV1ZXNJbmZvW2lkXSk7CmRpZmYgLS1naXQgYS9Ub29scy9C
dWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNo
Ym9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRz
L0J1aWxkYm90SXRlcmF0aW9uLmpzCmluZGV4IDJiM2RhYWYyNDMwZTBiMmJjNTAxMDkzNGM3Njgz
MjIyOWI4OTRhOTYuLjM4YzQ5NzU1MDFkMjcxMTkxMWM2YzczMmNlNGFjYWY4NTNjNDc4ZDUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmln
L3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzCisrKyBi
L1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzCkBAIC0zNDMsNiArMzQz
LDYgQEAgQnVpbGRib3RJdGVyYXRpb24ucHJvdG90eXBlID0gewogICAgICAgICAgICAgY29uc29s
ZS5hc3NlcnQoZGF0YS5udW1fbWlzc2luZyA9PT0gdGhpcy5sYXlvdXRUZXN0UmVzdWx0cy50ZXN0
c1dpdGhNaXNzaW5nUmVzdWx0cy5sZW5ndGgpOwogCiAgICAgICAgICAgICBjYWxsYmFjaygpOwot
ICAgICAgICB9LmJpbmQodGhpcyksICJBRERfUkVTVUxUUyIpOworICAgICAgICB9LmJpbmQodGhp
cyksIHtqc29ucENhbGxiYWNrTmFtZTogIkFERF9SRVNVTFRTIn0pOwogICAgIH0KIH07CmRpZmYg
LS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzIGIvVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcwppbmRleCAxYTA1ZWM1ZjUzZDc5YmRkN2M1OTky
YzNiZTg3NDVhNjkyNmEwYTUxLi5hMzY2ZmE4MGNmOWU3OTljNmExOTQ4ODdlMTZmZjA3N2I1YjVh
MDI5IDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzCisr
KyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1Ymxp
Y19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMKQEAgLTQ0LDYgKzQ0LDgg
QEAgQnVpbGRib3RRdWV1ZSA9IGZ1bmN0aW9uKGJ1aWxkYm90LCBpZCwgaW5mbykKICAgICB0aGlz
Lml0ZXJhdGlvbnMgPSBbXTsKICAgICB0aGlzLl9rbm93bkl0ZXJhdGlvbnMgPSB7fTsKIAorICAg
IHRoaXMuX2F1dGhlbnRpY2F0aW9uRXJyb3JPY2N1cnJlZCA9IGZhbHNlOworCiAgICAgdGhpcy51
cGRhdGUoKTsKIH07CiAKQEAgLTU5LDYgKzYxLDExIEBAIEJ1aWxkYm90UXVldWUucHJvdG90eXBl
ID0gewogICAgIGNvbnN0cnVjdG9yOiBCdWlsZGJvdFF1ZXVlLAogICAgIF9fcHJvdG9fXzogQmFz
ZU9iamVjdC5wcm90b3R5cGUsCiAKKyAgICBnZXQgbmVlZHNBdXRoZW50aWNhdGlvbigpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5idWlsZGJvdC5uZWVkc0F1dGhlbnRpY2F0aW9uOworICAg
IH0sCisKICAgICBnZXQgYmFzZVVSTCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5idWls
ZGJvdC5iYXNlVVJMICsgImpzb24vYnVpbGRlcnMvIiArIGVuY29kZVVSSUNvbXBvbmVudCh0aGlz
LmlkKTsKQEAgLTEzMiw3ICsxMzksMTUgQEAgQnVpbGRib3RRdWV1ZS5wcm90b3R5cGUgPSB7CiAK
ICAgICB1cGRhdGU6IGZ1bmN0aW9uKGl0ZXJhdGlvbnNUb0xvYWQpCiAgICAgeworICAgICAgICBp
ZiAodGhpcy5fYXV0aGVudGljYXRpb25FcnJvck9jY3VycmVkKQorICAgICAgICAgICAgcmV0dXJu
OworCiAgICAgICAgIEpTT04ubG9hZCh0aGlzLmJhc2VVUkwsIGZ1bmN0aW9uKGRhdGEpIHsKKyAg
ICAgICAgICAgIGlmIChkYXRhLmVycm9ySFRUUENvZGUgJiYgZGF0YS5lcnJvckhUVFBDb2RlID09
IDQwMSkgeworICAgICAgICAgICAgICAgIHRoaXMuX2F1dGhlbnRpY2F0aW9uRXJyb3JPY2N1cnJl
ZCA9IHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICAKICAgICAgICAgICAgIGlmICghKGRhdGEuY2FjaGVkQnVpbGRzIGluc3RhbmNlb2YgQXJyYXkp
KQogICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTY3LDcgKzE4Miw3IEBAIEJ1aWxkYm90
UXVldWUucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5zb3J0SXRlcmF0aW9ucygpOwog
CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhCdWlsZGJvdFF1ZXVl
LkV2ZW50Lkl0ZXJhdGlvbnNBZGRlZCwge2FkZGVkSXRlcmF0aW9uczogbmV3SXRlcmF0aW9uc30p
OwotICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgICB9LmJpbmQodGhpcyksIHt3aXRoQ3Jl
ZGVudGlhbHM6IHRoaXMubmVlZHNBdXRoZW50aWNhdGlvbiwgY2FsbGJhY2tPbkxvYWRFcnJvcjog
dHJ1ZX0pOwogICAgIH0sCiAKICAgICBzb3J0SXRlcmF0aW9uczogZnVuY3Rpb24oKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVi
bGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvVXRpbGl0aWVzLmpzIGIvVG9vbHMvQnVpbGRTbGF2
ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Nj
cmlwdHMvVXRpbGl0aWVzLmpzCmluZGV4IDJjY2RlMTEyODk2ZGQ3YTgwOWQ1YjM4NzYzMzkyNWMz
MDVjOTZiMDAuLjAwZWFjNjFmMTdlNWUxZGEyMmZmMjkyMDA3MTU1NmE5MTZlZTQ1MmMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1
YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1V0aWxpdGllcy5qcworKysgYi9Ub29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9h
cmQvU2NyaXB0cy9VdGlsaXRpZXMuanMKQEAgLTIzLDI1ICsyMywzNCBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLUpTT04ubG9hZCA9IGZ1bmN0aW9uKHVybCwg
Y2FsbGJhY2ssIGpzb25wQ2FsbGJhY2tOYW1lKQorSlNPTi5sb2FkID0gZnVuY3Rpb24odXJsLCBj
YWxsYmFjaywgb3B0aW9ucykKIHsKICAgICBjb25zb2xlLmFzc2VydCh1cmwpOwogCiAgICAgaWYg
KCEoY2FsbGJhY2sgaW5zdGFuY2VvZiBGdW5jdGlvbikpCiAgICAgICAgIHJldHVybjsKIAorICAg
IGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gIm9iamVjdCIpCisgICAgICAgIG9wdGlvbnMgPSB7fTsK
KwogICAgIHZhciByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0OwogICAgIHJlcXVlc3Qub25y
ZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIGlmICh0aGlzLnJlYWR5U3Rh
dGUgIT09IDQpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgaWYgKHRoaXMuc3RhdHVz
ICYmIHRoaXMuc3RhdHVzICE9PSAyMDAgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgiY2FsbGJh
Y2tPbkxvYWRFcnJvciIpICYmIG9wdGlvbnMuY2FsbGJhY2tPbkxvYWRFcnJvciA9PT0gdHJ1ZSkg
eworICAgICAgICAgICAgY2FsbGJhY2soe2Vycm9yOiB0aGlzLnN0YXR1c1RleHQsIGVycm9ySFRU
UENvZGU6IHRoaXMuc3RhdHVzfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwog
ICAgICAgICB0cnkgewogICAgICAgICAgICAgdmFyIHJlc3BvbnNlVGV4dCA9IHJlcXVlc3QucmVz
cG9uc2VUZXh0OwotICAgICAgICAgICAgaWYgKGpzb25wQ2FsbGJhY2tOYW1lKQotICAgICAgICAg
ICAgICAgIHJlc3BvbnNlVGV4dCA9IHJlc3BvbnNlVGV4dC5yZXBsYWNlKG5ldyBSZWdFeHAoIl4i
ICsganNvbnBDYWxsYmFja05hbWUgKyAiXFwoKC4qKVxcKTs/JCIpLCAiJDEiKTsKKyAgICAgICAg
ICAgIGlmIChvcHRpb25zLmhhc093blByb3BlcnR5KCJqc29ucENhbGxiYWNrTmFtZSIpKQorICAg
ICAgICAgICAgICAgIHJlc3BvbnNlVGV4dCA9IHJlc3BvbnNlVGV4dC5yZXBsYWNlKG5ldyBSZWdF
eHAoIl4iICsgb3B0aW9uc1tqc29ucENhbGxiYWNrTmFtZV0gKyAiXFwoKC4qKVxcKTs/JCIpLCAi
JDEiKTsKICAgICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShyZXNwb25zZVRleHQpOwog
ICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICB2YXIgZGF0YSA9IHtlcnJvcjogZS5t
ZXNzYWdlfTsKKwogICAgICAgICB9CiAKICAgICAgICAgLy8gQWxsb3cgYSBzdGF0dXMgb2YgMCBm
b3IgZWFzaWVyIHRlc3Rpbmcgd2l0aCBsb2NhbCBmaWxlcy4KQEAgLTUwLDYgKzU5LDggQEAgSlNP
Ti5sb2FkID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaywganNvbnBDYWxsYmFja05hbWUpCiAgICAg
fTsKIAogICAgIHJlcXVlc3Qub3BlbigiR0VUIiwgdXJsKTsKKyAgICBpZiAob3B0aW9ucy5oYXNP
d25Qcm9wZXJ0eSgid2l0aENyZWRlbnRpYWxzIikpCisgICAgICAgIHJlcXVlc3Qud2l0aENyZWRl
bnRpYWxzID0gb3B0aW9ucy53aXRoQ3JlZGVudGlhbHM7CiAgICAgcmVxdWVzdC5zZW5kKCk7CiB9
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222588</attachid>
            <date>2014-01-29 12:02:33 -0800</date>
            <delta_ts>2014-01-29 12:12:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127784-20140129120233.patch</filename>
            <type>text/plain</type>
            <size>6898</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyODg4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZThmNDRiMjk2OTg4MmRiNDJjYzFmMGU0ODQyNzRhM2U1
ZmRlNWZiMy4uMmQxMzQzMzVmZDc2ZjJmMzY3ZmFjMzdlOTE5NzRiYjA5YzQ2MDBmOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDE0LTAxLTI5ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWJLaXQgQm90IFdhdGNoZXIncyBEYXNoYm9hcmQ6IEFkZCBzdXBwb3J0IGZvciB1c2lu
ZyBIVFRQIGF1dGhlbnRpY2F0aW9uIHdpdGggQnVpbGRib3QKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc4NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBzdXBwb3J0IGZvciBxdWVyeWlu
ZyBhIEJ1aWxkYm90IHRoYXQgcmVxdWlyZXMgSFRUUCBhdXRoZW50aWNhdGlvbiB0byBhY2Nlc3Mg
aXQuCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdC5qczoKKyAgICAgICAgKEJ1
aWxkYm90KTogQWRkIG9wdGlvbmFsIGFyZ3VtZW50LCBvcHRpb25zLCB0byBwYXNzIGEgZGljdGlv
bmFyeSBvZiBCdWlsZGJvdCBvcHRpb25zLgorICAgICAgICBGb3Igbm93LCB3ZSBvbmx5IHN1cHBv
cnQgYSBzaW5nbGUgb3B0aW9uLCBuZWVkc0F1dGhlbnRpY2F0aW9uLCB0byBpbmRpY2F0ZSB3aGV0
aGVyIHRoZQorICAgICAgICBCdWlsZGJvdHMgcmVxdWlyZXMgSFRUUCBhdXRoZW50aWNhdGlvbiAo
ZGVmYXVsdHMgdG8gZmFsc2UgLSBIVFRQIGF1dGhlbnRpY2F0aW9uIGlzCisgICAgICAgIG5vdCBy
ZXF1aXJlZCkuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1j
b25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RJdGVyYXRpb24uanM6
CisgICAgICAgIChCdWlsZGJvdEl0ZXJhdGlvbi5wcm90b3R5cGUubG9hZExheW91dFRlc3RSZXN1
bHRzKTogTW9kaWZpZWQgdG8gcGFzcyBKU09OUCBjYWxsYmFjayBuYW1lCisgICAgICAgIHRvIEpT
T04ubG9hZCgpIHVzaW5nIHRoZSBvcHRpb24gZGljdGlvbmFyeS4KKyAgICAgICAgKiBCdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
U2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzOgorICAgICAgICAoQnVpbGRib3RRdWV1ZS5wcm90b3R5
cGUuZ2V0IG5lZWRzQXV0aGVudGljYXRpb24pOiBBZGRlZDsgY29udmVuaWVuY2UgZ2V0dGVyIGZv
ciBxdWVyeWluZworICAgICAgICB0aGUgaW5zdGFuY2UgdmFyaWFibGUgQnVpbGRib3QubmVlZHNB
dXRoZW50aWNhdGlvbi4KKyAgICAgICAgKEJ1aWxkYm90UXVldWUucHJvdG90eXBlLnVwZGF0ZSk6
IE1vZGlmaWVkIHRvIHBhc3Mgd2l0aENyZWRlbnRpYWxzIHRvIEpTT04ubG9hZCgpLgorICAgICAg
ICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1s
L2Rhc2hib2FyZC9TY3JpcHRzL1V0aWxpdGllcy5qczoKKyAgICAgICAgKEpTT04ubG9hZCk6IFJl
bW92ZWQgb3B0aW9uYWwgYXJndW1lbnQganNvbnBDYWxsYmFja05hbWUgYW5kIGFkZGVkIG9wdGlv
bmFsIGFyZ3VtZW50IG9wdGlvbnMsCisgICAgICAgIHdoaWNoIGlzIGEgZGljdGlvbmFyeS4gVGhl
IGFyZ3VtZW50IGpzb25wQ2FsbGJhY2tOYW1lIGlzIG5vdyBzcGVjaWZpZWQgYXMgYW4gZW50cnkg
aW4gdGhlCisgICAgICAgIG9wdGlvbnMgZGljdGlvbmFyeS4gQWRkZWQgYm9vbGVhbiBvcHRpb25z
IHdpdGhDcmVkZW50aWFscyB0byB0b2dnbGUgcXVlcnlpbmcgd2l0aCBIVFRQCisgICAgICAgIGF1
dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzLgorCiAyMDE0LTAxLTI3ICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBUZWFjaCBCdWlsZGJvdCBkYXNoYm9hcmQgdG8g
cGFyc2UgYWx0ZXJuYXRpdmUgcmV2aXNpb24gZm9ybWF0CmRpZmYgLS1naXQgYS9Ub29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9h
cmQvU2NyaXB0cy9CdWlsZGJvdC5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndl
YmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90Lmpz
CmluZGV4IGJiMTQ2YjMxYjhmNmRiZWUwM2E4OWE5MDlmODYwMDkzYzBkMGUzODAuLjVjODQ5OWRk
NjU1OGM4NmNjYTY5NGM4MDYzZDE4OTIyOGE2ZGQzYjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2Fy
ZC9TY3JpcHRzL0J1aWxkYm90LmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90
LmpzCkBAIC0yMyw3ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotQnVpbGRib3QgPSBmdW5jdGlvbihiYXNlVVJMLCBxdWV1ZXNJbmZvKQorQnVpbGRi
b3QgPSBmdW5jdGlvbihiYXNlVVJMLCBxdWV1ZXNJbmZvLCBvcHRpb25zKQogewogICAgIEJhc2VP
YmplY3QuY2FsbCh0aGlzKTsKIApAQCAtMzIsNiArMzIsNyBAQCBCdWlsZGJvdCA9IGZ1bmN0aW9u
KGJhc2VVUkwsIHF1ZXVlc0luZm8pCiAKICAgICB0aGlzLmJhc2VVUkwgPSBiYXNlVVJMOwogICAg
IHRoaXMucXVldWVzID0ge307CisgICAgdGhpcy5uZWVkc0F1dGhlbnRpY2F0aW9uID0gdHlwZW9m
IG9wdGlvbnMgPT09ICJvYmplY3QiICYmIG9wdGlvbnMubmVlZHNBdXRoZW50aWNhdGlvbiA9PT0g
dHJ1ZTsKIAogICAgIGZvciAodmFyIGlkIGluIHF1ZXVlc0luZm8pCiAgICAgICAgIHRoaXMucXVl
dWVzW2lkXSA9IG5ldyBCdWlsZGJvdFF1ZXVlKHRoaXMsIGlkLCBxdWV1ZXNJbmZvW2lkXSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcyBiL1Rv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1s
L2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzCmluZGV4IDJiM2RhYWYyNDMw
ZTBiMmJjNTAxMDkzNGM3NjgzMjIyOWI4OTRhOTYuLjM4YzQ5NzU1MDFkMjcxMTkxMWM2YzczMmNl
NGFjYWY4NTNjNDc4ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90
SXRlcmF0aW9uLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9u
LmpzCkBAIC0zNDMsNiArMzQzLDYgQEAgQnVpbGRib3RJdGVyYXRpb24ucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZGF0YS5udW1fbWlzc2luZyA9PT0gdGhpcy5sYXlv
dXRUZXN0UmVzdWx0cy50ZXN0c1dpdGhNaXNzaW5nUmVzdWx0cy5sZW5ndGgpOwogCiAgICAgICAg
ICAgICBjYWxsYmFjaygpOwotICAgICAgICB9LmJpbmQodGhpcyksICJBRERfUkVTVUxUUyIpOwor
ICAgICAgICB9LmJpbmQodGhpcyksIHtqc29ucENhbGxiYWNrTmFtZTogIkFERF9SRVNVTFRTIn0p
OwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1
ZXVlLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcwppbmRleCAxYTA1
ZWM1ZjUzZDc5YmRkN2M1OTkyYzNiZTg3NDVhNjkyNmEwYTUxLi44ZGE4MzMyNDlkOWZiODlmNTY3
MzhiNjZiMTZkYWEzNTE0MGE3ZGQ4IDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9C
dWlsZGJvdFF1ZXVlLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUu
anMKQEAgLTU5LDYgKzU5LDExIEBAIEJ1aWxkYm90UXVldWUucHJvdG90eXBlID0gewogICAgIGNv
bnN0cnVjdG9yOiBCdWlsZGJvdFF1ZXVlLAogICAgIF9fcHJvdG9fXzogQmFzZU9iamVjdC5wcm90
b3R5cGUsCiAKKyAgICBnZXQgbmVlZHNBdXRoZW50aWNhdGlvbigpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5idWlsZGJvdC5uZWVkc0F1dGhlbnRpY2F0aW9uOworICAgIH0sCisKICAgICBn
ZXQgYmFzZVVSTCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5idWlsZGJvdC5iYXNlVVJM
ICsgImpzb24vYnVpbGRlcnMvIiArIGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmlkKTsKQEAgLTE2
Nyw3ICsxNzIsNyBAQCBCdWlsZGJvdFF1ZXVlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRo
aXMuc29ydEl0ZXJhdGlvbnMoKTsKIAogICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoQnVpbGRib3RRdWV1ZS5FdmVudC5JdGVyYXRpb25zQWRkZWQsIHthZGRlZEl0ZXJh
dGlvbnM6IG5ld0l0ZXJhdGlvbnN9KTsKLSAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAg
fS5iaW5kKHRoaXMpLCB7d2l0aENyZWRlbnRpYWxzOiB0aGlzLm5lZWRzQXV0aGVudGljYXRpb259
KTsKICAgICB9LAogCiAgICAgc29ydEl0ZXJhdGlvbnM6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL2Rhc2hib2FyZC9TY3JpcHRzL1V0aWxpdGllcy5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRz
L1V0aWxpdGllcy5qcwppbmRleCAyY2NkZTExMjg5NmRkN2E4MDlkNWIzODc2MzM5MjVjMzA1Yzk2
YjAwLi45MjcxZTQwYzJhZjNlZWQwYmIyNGE2Y2RlM2IyMmU1NzI3ZWFiNjQxIDEwMDY0NAotLS0g
YS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9VdGlsaXRpZXMuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2
ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Nj
cmlwdHMvVXRpbGl0aWVzLmpzCkBAIC0yMywxMyArMjMsMTYgQEAKICAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1KU09OLmxvYWQgPSBmdW5jdGlvbih1cmwsIGNhbGxi
YWNrLCBqc29ucENhbGxiYWNrTmFtZSkKK0pTT04ubG9hZCA9IGZ1bmN0aW9uKHVybCwgY2FsbGJh
Y2ssIG9wdGlvbnMpCiB7CiAgICAgY29uc29sZS5hc3NlcnQodXJsKTsKIAogICAgIGlmICghKGNh
bGxiYWNrIGluc3RhbmNlb2YgRnVuY3Rpb24pKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAo
dHlwZW9mIG9wdGlvbnMgIT09ICJvYmplY3QiKQorICAgICAgICBvcHRpb25zID0ge307CisKICAg
ICB2YXIgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKICAgICByZXF1ZXN0Lm9ucmVhZHlz
dGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewogICAgICAgICBpZiAodGhpcy5yZWFkeVN0YXRlICE9
PSA0KQpAQCAtMzcsOCArNDAsOCBAQCBKU09OLmxvYWQgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNr
LCBqc29ucENhbGxiYWNrTmFtZSkKIAogICAgICAgICB0cnkgewogICAgICAgICAgICAgdmFyIHJl
c3BvbnNlVGV4dCA9IHJlcXVlc3QucmVzcG9uc2VUZXh0OwotICAgICAgICAgICAgaWYgKGpzb25w
Q2FsbGJhY2tOYW1lKQotICAgICAgICAgICAgICAgIHJlc3BvbnNlVGV4dCA9IHJlc3BvbnNlVGV4
dC5yZXBsYWNlKG5ldyBSZWdFeHAoIl4iICsganNvbnBDYWxsYmFja05hbWUgKyAiXFwoKC4qKVxc
KTs/JCIpLCAiJDEiKTsKKyAgICAgICAgICAgIGlmIChvcHRpb25zLmhhc093blByb3BlcnR5KCJq
c29ucENhbGxiYWNrTmFtZSIpKQorICAgICAgICAgICAgICAgIHJlc3BvbnNlVGV4dCA9IHJlc3Bv
bnNlVGV4dC5yZXBsYWNlKG5ldyBSZWdFeHAoIl4iICsgb3B0aW9uc1tqc29ucENhbGxiYWNrTmFt
ZV0gKyAiXFwoKC4qKVxcKTs/JCIpLCAiJDEiKTsKICAgICAgICAgICAgIHZhciBkYXRhID0gSlNP
Ti5wYXJzZShyZXNwb25zZVRleHQpOwogICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAg
ICB2YXIgZGF0YSA9IHtlcnJvcjogZS5tZXNzYWdlfTsKQEAgLTUwLDYgKzUzLDggQEAgSlNPTi5s
b2FkID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaywganNvbnBDYWxsYmFja05hbWUpCiAgICAgfTsK
IAogICAgIHJlcXVlc3Qub3BlbigiR0VUIiwgdXJsKTsKKyAgICBpZiAob3B0aW9ucy5oYXNPd25Q
cm9wZXJ0eSgid2l0aENyZWRlbnRpYWxzIikpCisgICAgICAgIHJlcXVlc3Qud2l0aENyZWRlbnRp
YWxzID0gb3B0aW9ucy53aXRoQ3JlZGVudGlhbHM7CiAgICAgcmVxdWVzdC5zZW5kKCk7CiB9Owog
Cg==
</data>
<flag name="review"
          id="246593"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>