<?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>152655</bug_id>
          
          <creation_ts>2016-01-02 15:33:53 -0800</creation_ts>
          <short_desc>Web Inspector: Add debounce to URL inputs in the Visual sidebar</short_desc>
          <delta_ts>2016-01-04 22:32:52 -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>Web Inspector</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1152034</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-01-02 15:33:53 -0800</bug_when>
    <thetext>If I am adding a background-image via url(), it is annoying to see an error every time I type a character until the URL is completed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152035</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-01-02 15:34:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/24032203&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152036</commentid>
    <comment_count>2</comment_count>
      <attachid>268115</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-01-02 15:36:42 -0800</bug_when>
    <thetext>Created attachment 268115
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152374</commentid>
    <comment_count>3</comment_count>
      <attachid>268115</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-01-04 10:39:08 -0800</bug_when>
    <thetext>Comment on attachment 268115
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1173
&gt; +function debounce(callback, delay, context) {

{ on newline. context would be better called thisObject.

&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1174
&gt; +    let timeout = null;

It would be nice if this was stored on the callback with a symbol. Then you can do:

if (callback[TimeoutSymbol])
    return;

And make sure to clear the timeout when it fires. This allows others to debounce the same function from different places and only have it fire once.

This makes me want to put debounce on the Function.prototype, so it is more natural to use.

this._valueInputValueChanged.debounce(250, this)

&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1181
&gt; +        let bound = () =&gt; {
&gt; +            callback.apply(context, args);
&gt; +        };

Could just inline with the setTimeout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152436</commentid>
    <comment_count>4</comment_count>
      <attachid>268215</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-01-04 12:05:00 -0800</bug_when>
    <thetext>Created attachment 268215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152595</commentid>
    <comment_count>5</comment_count>
      <attachid>268215</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-01-04 17:57:04 -0800</bug_when>
    <thetext>Comment on attachment 268215
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1110
&gt; +WebInspector.FunctionDebounceTimeoutSymbol = Symbol(&quot;function-debounce-timeout&quot;);

Hmm, normally Utilities.js does not assume the &quot;WebInspector&quot; namespace exists. Currently it only does for localization but that is only if certain functions are called.

You could include this in an anonymous block:

    (function() {
        const debounceSymbol = Symbol(&quot;function-debounce-timeout&quot;);

        Object.defineProprety(Function.prototype, &quot;debounce&quot;, {
            ...
        });
    })();

&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1124
&gt; +        let callback = this;
&gt; +        callback[WebInspector.FunctionDebounceTimeoutSymbol] = null;
&gt; +        return function() {
&gt; +            clearTimeout(callback[WebInspector.FunctionDebounceTimeoutSymbol]);
&gt; +            thisObject = thisObject || this;
&gt; +            let args = arguments;
&gt; +            callback[WebInspector.FunctionDebounceTimeoutSymbol] = setTimeout(() =&gt; {
&gt; +                callback.apply(thisObject, args);
&gt; +            }, delay);
&gt; +        };

This looks like it is just adding a setTimeout to a bound function. And indeed it does re-implement bind. But we should be able to simplify it.

As written, this may behave in unexpected ways because you are setting the debounce callback on a Foo.prototype.function and not an instance&apos;s version of it.

Take this scenario:

    class MyClass {
        constructor() { this._debouncer = this.onchange.debounce(250, this); }
        trigger() { this._debouncer(); }
        onchange() { console.log(&quot;change&quot;, this); }
    }
    let instance1 = new MyClass;
    let instance2 = new MyClass;
    setInterval(() =&gt; { instance1.trigger(); }, 300);
    setTimeout(() =&gt; { setInterval(() =&gt; { instance2.trigger(); }, 300); }, 100);

My guess is that we would never see a log, despite each instance getting triggered every 300 ms, which is longer than the 250ms bounce time. This is because both `debounce` calls are both bouncing the same function instance (MyClass.prototype.onchange)! The order of operations I would see are:

    0ms - create bouncers
    300ms - clearTimeout, setTimeout for instance1
    400ms - clearTimeout, setTimeout for instance2
    600ms - clearTimeout, setTimeout for instance1
    700ms - clearTimeout, setTimeout for instance2
    ...

Though unlikely, it doesn&apos;t seem like what we want. It seems we want to tie the bouncing to a unique instance of the original function, meaning do the bind first! That certainly simplifies things to me:

    value: function(delay, thisObject)
    {
        var callback = this.bind(thisObject);
        return function() {
            clearTimeout(callback[debounceSymbol]);
            callback[debounceSymbol] = setTimeout(callback, delay, ...arguments);
        }
    }

But because of an issue with the spread operator &lt;https://webkit.org/b/152721&gt; I think you need to do what you had with the `args` dance:

    value: function(delay, thisObject)
    {
        let callback = this.bind(thisObject);
        return function() {
            let args = arguments;
            clearTimeout(callback[debounceSymbol]);
            callback[debounceSymbol] = setTimeout(() =&gt; { callback.apply(null, args); }, delay);
        }
    }

Now each call to debounce, returns its own instance of the function it was called on.

What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152607</commentid>
    <comment_count>6</comment_count>
      <attachid>268256</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-01-04 18:24:59 -0800</bug_when>
    <thetext>Created attachment 268256
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152610</commentid>
    <comment_count>7</comment_count>
      <attachid>268256</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-01-04 18:29:49 -0800</bug_when>
    <thetext>Comment on attachment 268256
Patch

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

Overall this looks good to me.

&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1116
&gt; +            let callback = this.bind(thisObject || this);

We don&apos;t want the &quot;|| this&quot;. Just removing that will mean we match whatever the default behavior of `Function.prototype.bind` is given any arbitrary thisObject, which is what we would want here anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152648</commentid>
    <comment_count>8</comment_count>
      <attachid>268266</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-01-04 21:33:24 -0800</bug_when>
    <thetext>Created attachment 268266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152656</commentid>
    <comment_count>9</comment_count>
      <attachid>268266</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-04 22:32:47 -0800</bug_when>
    <thetext>Comment on attachment 268266
Patch

Clearing flags on attachment: 268266

Committed r194573: &lt;http://trac.webkit.org/changeset/194573&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152657</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-04 22:32:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268115</attachid>
            <date>2016-01-02 15:36:42 -0800</date>
            <delta_ts>2016-01-04 12:04:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152655-20160102163610.patch</filename>
            <type>text/plain</type>
            <size>4188</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGUzYjc0YjkxYzlmMGE5YTE3ODg4YTVlMWMyYThl
MTYxMmQyYzEwZTQuLjFiM2M4MWYyM2UyZDU4OTY2NmU1Njc5OTA4ODYwZmFhN2YyYmI1YWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDE2LTAxLTAyICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEFkZCBkZWJvdW5jZSB0byBVUkwgaW5wdXRzIGluIHRoZSBWaXN1YWwgc2lkZWJhcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNjU1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGEg
ZGVib3VuY2UgdG8gdXJsKCkgYmFzZWQgVmlzdWFsIHNpZGViYXIgZWRpdG9ycyB3aWxsIHByZXZl
bnQgbmVlZGxlc3MKKyAgICAgICAgZXJyb3JzIGZyb20gYmVpbmcgdGhyb3duIGFzIHRoZSB1c2Vy
IHR5cGVzLCBzaW5jZSBpbmNvbXBsZXRlIFVSTCdzIHdpbGwgbm90CisgICAgICAgIGJlIGFibGUg
dG8gYmUgbG9jYXRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMu
anM6CisgICAgICAgIChkZWJvdW5jZSk6CisgICAgICAgIFByZXZlbnRzIHRoZSBnaXZlbiBmdW5j
dGlvbiBmcm9tIGV4ZWN1dGluZyBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc3BlY2lmaWVkIGFtb3Vu
dCBvZiB0aW1lLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUJh
Y2tncm91bmRQaWNrZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVCYWNr
Z3JvdW5kUGlja2VyKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVVUkxJbnB1dC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVVSTElucHV0
KToKKworMjAxNi0wMS0wMiAgRGV2aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNv
bT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgbGlzdC1zdHlsZSBwcm9wZXJ0aWVzIHRv
IFZpc3VhbCBTaWRlYmFyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTI2MzEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcwppbmRleCA3Nzg3MzIxNzc1NTdmZGRhODUxNDVlNDdm
ZmRkZTM2ZDYzNTY1NDE2Li5mOWVlMzA1YWE2NjRmYWU5ZTM1MmYxYzhiYzUzMzcxY2YzOGUwOGM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0
aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNl
L1V0aWxpdGllcy5qcwpAQCAtMTE3MCw2ICsxMTcwLDE5IEBAIGZ1bmN0aW9uIGRlY29kZUJhc2U2
NFRvQmxvYihiYXNlNjREYXRhLCBtaW1lVHlwZSkKICAgICByZXR1cm4gbmV3IEJsb2IoYnl0ZUFy
cmF5cywge3R5cGU6IG1pbWVUeXBlfSk7CiB9CiAKK2Z1bmN0aW9uIGRlYm91bmNlKGNhbGxiYWNr
LCBkZWxheSwgY29udGV4dCkgeworICAgIGxldCB0aW1lb3V0ID0gbnVsbDsKKyAgICByZXR1cm4g
ZnVuY3Rpb24oKSB7CisgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsKKyAgICAgICAgY29u
dGV4dCA9IGNvbnRleHQgfHwgdGhpczsKKyAgICAgICAgbGV0IGFyZ3MgPSBhcmd1bWVudHM7Cisg
ICAgICAgIGxldCBib3VuZCA9ICgpID0+IHsKKyAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KGNv
bnRleHQsIGFyZ3MpOworICAgICAgICB9OworICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChi
b3VuZCwgZGVsYXkpOworICAgIH07Cit9OworCiAvLyBGSVhNRTogVGhpcyBjYW4gYmUgcmVtb3Zl
ZCB3aGVuIFdFQl9USU1JTkcgaXMgZW5hYmxlZCBmb3IgYWxsIHBsYXRmb3Jtcy4KIGZ1bmN0aW9u
IHRpbWVzdGFtcCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUJhY2tncm91bmRQaWNrZXIuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUJhY2tncm91bmRQaWNr
ZXIuanMKaW5kZXggNzlkMGMyMDNmOWY3OTA3NDJkNDFhMzk0Y2FjYTFmNjliNTg2Y2NkZi4uMzA3
MzQ4NDc2OGZiNmI5NGJjOTE3NTA2OTY0OTA2YmFiZWU3N2FmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVCYWNrZ3JvdW5k
UGlja2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlQmFja2dyb3VuZFBpY2tlci5qcwpAQCAtNDMsNyArNDMsNyBAQCBXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyID0gY2xhc3MgVmlzdWFsU3R5bGVCYWNr
Z3JvdW5kUGlja2VyIGV4dAogICAgICAgICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC5jbGFzc0xp
c3QuYWRkKCJ2YWx1ZS1pbnB1dCIpOwogICAgICAgICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC50
eXBlID0gInVybCI7CiAgICAgICAgIHRoaXMuX3ZhbHVlSW5wdXRFbGVtZW50LnBsYWNlaG9sZGVy
ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbnRlciBhIFVSTCIpOwotICAgICAgICB0aGlzLl92
YWx1ZUlucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIHRoaXMuX3ZhbHVlSW5w
dXRWYWx1ZUNoYW5nZWQuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3ZhbHVlSW5wdXRFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgZGVib3VuY2UodGhpcy5fdmFsdWVJbnB1dFZh
bHVlQ2hhbmdlZCwgMjUwLCB0aGlzKSk7CiAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQpOwogCiAgICAgICAgIHRoaXMuX3ZhbHVl
VHlwZVBpY2tlckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlVVJMSW5wdXQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZVVSTElucHV0LmpzCmluZGV4IDY5ODUxZDdiMTE4MTc0YjdkYjBmYmZk
NzM4OGNiMGZlMTI3YjI2YWMuLjQ3OGM1Y2FhMGNkNTBhZWQ4YTIyYjQ3YzNjYWNmMjI3MjczNjFm
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlVVJMSW5wdXQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVUkxJbnB1dC5qcwpAQCAtMzIsNyArMzIsNyBAQCBX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVUkxJbnB1dCA9IGNsYXNzIFZpc3VhbFN0eWxlVVJMSW5w
dXQgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwogICAgICAgICB0aGlzLl91cmxJbnB1dEVs
ZW1lbnQudHlwZSA9ICJ1cmwiOwogICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQucGxhY2Vo
b2xkZXIgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVudGVyIGEgVVJMIik7Ci0gICAgICAgIHRo
aXMuX3VybElucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuX3ZhbHVl
RGlkQ2hhbmdlLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigia2V5dXAiLCBkZWJvdW5jZSh0aGlzLl92YWx1ZURpZENoYW5nZSwgMjUw
LCB0aGlzKSk7CiAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
dXJsSW5wdXRFbGVtZW50KTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268215</attachid>
            <date>2016-01-04 12:05:00 -0800</date>
            <delta_ts>2016-01-04 18:24:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152655-20160104130427.patch</filename>
            <type>text/plain</type>
            <size>4451</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGUzYjc0YjkxYzlmMGE5YTE3ODg4YTVlMWMyYThl
MTYxMmQyYzEwZTQuLmM3NDNhNDZhODZlNDIxYWQ3MGI0ZjA5Y2E4Y2I4YTJiZTc5Yzc4MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAxLTA0ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEFkZCBkZWJvdW5jZSB0byBVUkwgaW5wdXRzIGluIHRoZSBWaXN1YWwgc2lkZWJhcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNjU1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGEg
ZGVib3VuY2UgdG8gdXJsKCkgYmFzZWQgVmlzdWFsIHNpZGViYXIgZWRpdG9ycyB3aWxsIHByZXZl
bnQgbmVlZGxlc3MKKyAgICAgICAgZXJyb3JzIGZyb20gYmVpbmcgdGhyb3duIGFzIHRoZSB1c2Vy
IHR5cGVzLCBzaW5jZSBpbmNvbXBsZXRlIFVSTCdzIHdpbGwgbm90CisgICAgICAgIGJlIGFibGUg
dG8gYmUgbG9jYXRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMu
anM6CisgICAgICAgIChGdW5jdGlvbi5wcm90b3R5cGUuZGVib3VuY2UpOgorICAgICAgICBQcmV2
ZW50cyB0aGUgZ2l2ZW4gZnVuY3Rpb24gZnJvbSBleGVjdXRpbmcgbW9yZSB0aGFuIG9uY2UgaW4g
dGhlIHNwZWNpZmllZCBhbW91bnQgb2YgdGltZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlQmFja2dyb3VuZFBpY2tlcik6CisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVVJMSW5wdXQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVVUkxJbnB1dCk6CisKIDIwMTYtMDEtMDIgIERldmluIFJvdXNzbyAgPGRjcm91
c3NvK3dlYmtpdEBnbWFpbC5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIGxpc3Qt
c3R5bGUgcHJvcGVydGllcyB0byBWaXN1YWwgU2lkZWJhcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcwppbmRleCA3Nzg3MzIx
Nzc1NTdmZGRhODUxNDVlNDdmZmRkZTM2ZDYzNTY1NDE2Li4zYmY1YzkxNDQ2NjhiOTk1NWRiMmJi
NWQ0ODE2ZGIyMGQ4Y2U2NjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcwpAQCAtMTEwNyw2ICsxMTA3LDI0IEBAIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJiaW5hcnlJbmRleE9mIiwKICAg
ICB9CiB9KTsKIAorV2ViSW5zcGVjdG9yLkZ1bmN0aW9uRGVib3VuY2VUaW1lb3V0U3ltYm9sID0g
U3ltYm9sKCJmdW5jdGlvbi1kZWJvdW5jZS10aW1lb3V0Iik7CitPYmplY3QuZGVmaW5lUHJvcGVy
dHkoRnVuY3Rpb24ucHJvdG90eXBlLCAiZGVib3VuY2UiLAoreworICAgIHZhbHVlOiBmdW5jdGlv
bihkZWxheSwgdGhpc09iamVjdCkKKyAgICB7CisgICAgICAgIGxldCBjYWxsYmFjayA9IHRoaXM7
CisgICAgICAgIGNhbGxiYWNrW1dlYkluc3BlY3Rvci5GdW5jdGlvbkRlYm91bmNlVGltZW91dFN5
bWJvbF0gPSBudWxsOworICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBj
bGVhclRpbWVvdXQoY2FsbGJhY2tbV2ViSW5zcGVjdG9yLkZ1bmN0aW9uRGVib3VuY2VUaW1lb3V0
U3ltYm9sXSk7CisgICAgICAgICAgICB0aGlzT2JqZWN0ID0gdGhpc09iamVjdCB8fCB0aGlzOwor
ICAgICAgICAgICAgbGV0IGFyZ3MgPSBhcmd1bWVudHM7CisgICAgICAgICAgICBjYWxsYmFja1tX
ZWJJbnNwZWN0b3IuRnVuY3Rpb25EZWJvdW5jZVRpbWVvdXRTeW1ib2xdID0gc2V0VGltZW91dCgo
KSA9PiB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2suYXBwbHkodGhpc09iamVjdCwgYXJncyk7
CisgICAgICAgICAgICB9LCBkZWxheSk7CisgICAgICAgIH07CisgICAgfQorfSk7CisKIGZ1bmN0
aW9uIGFwcGVuZFdlYkluc3BlY3RvclNvdXJjZVVSTChzdHJpbmcpCiB7CiAgICAgcmV0dXJuIHN0
cmluZyArICJcbi8vIyBzb3VyY2VVUkw9X19XZWJJbnNwZWN0b3JJbnRlcm5hbF9fXG4iOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVCYWNrZ3JvdW5kUGlja2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyLmpzCmluZGV4IDc5ZDBjMjAz
ZjlmNzkwNzQyZDQxYTM5NGNhY2ExZjY5YjU4NmNjZGYuLjgxMGZiOWMxZjEzZjg4MDhmN2VhNTBh
MGE0YTNmNDY2MzljMGI3YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQmFja2dyb3VuZFBpY2tlci5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUJhY2tncm91
bmRQaWNrZXIuanMKQEAgLTQzLDcgKzQzLDcgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQmFj
a2dyb3VuZFBpY2tlciA9IGNsYXNzIFZpc3VhbFN0eWxlQmFja2dyb3VuZFBpY2tlciBleHQKICAg
ICAgICAgdGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgidmFsdWUtaW5wdXQi
KTsKICAgICAgICAgdGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQudHlwZSA9ICJ1cmwiOwogICAgICAg
ICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC5wbGFjZWhvbGRlciA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRW50ZXIgYSBVUkwiKTsKLSAgICAgICAgdGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiaW5wdXQiLCB0aGlzLl92YWx1ZUlucHV0VmFsdWVDaGFuZ2VkLmJpbmQo
dGhpcykpOworICAgICAgICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJpbnB1dCIsIHRoaXMuX3ZhbHVlSW5wdXRWYWx1ZUNoYW5nZWQuZGVib3VuY2UoMjUwLCB0aGlz
KSk7CiAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdmFsdWVJ
bnB1dEVsZW1lbnQpOwogCiAgICAgICAgIHRoaXMuX3ZhbHVlVHlwZVBpY2tlckVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVVJMSW5wdXQuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVSTElu
cHV0LmpzCmluZGV4IDY5ODUxZDdiMTE4MTc0YjdkYjBmYmZkNzM4OGNiMGZlMTI3YjI2YWMuLjM0
NGY3M2UxMDQ3YzU5ODgzYTRmZjA3NDE1OTI2MTNjNDU1MjJiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVVJMSW5wdXQu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVVUkxJbnB1dC5qcwpAQCAtMzIsNyArMzIsNyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5
bGVVUkxJbnB1dCA9IGNsYXNzIFZpc3VhbFN0eWxlVVJMSW5wdXQgZXh0ZW5kcyBXZWJJbnNwZWN0
bwogICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbnB1dCIpOwogICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQudHlwZSA9ICJ1cmwiOwog
ICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQucGxhY2Vob2xkZXIgPSBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkVudGVyIGEgVVJMIik7Ci0gICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlLmJpbmQodGhpcykp
OworICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAi
LCB0aGlzLl92YWx1ZURpZENoYW5nZS5kZWJvdW5jZSgyNTAsIHRoaXMpKTsKICAgICAgICAgdGhp
cy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl91cmxJbnB1dEVsZW1lbnQpOwogICAg
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268256</attachid>
            <date>2016-01-04 18:24:59 -0800</date>
            <delta_ts>2016-01-04 21:33:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152655-20160104192425.patch</filename>
            <type>text/plain</type>
            <size>4358</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGUzYjc0YjkxYzlmMGE5YTE3ODg4YTVlMWMyYThl
MTYxMmQyYzEwZTQuLmM3NDNhNDZhODZlNDIxYWQ3MGI0ZjA5Y2E4Y2I4YTJiZTc5Yzc4MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAxLTA0ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEFkZCBkZWJvdW5jZSB0byBVUkwgaW5wdXRzIGluIHRoZSBWaXN1YWwgc2lkZWJhcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNjU1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGEg
ZGVib3VuY2UgdG8gdXJsKCkgYmFzZWQgVmlzdWFsIHNpZGViYXIgZWRpdG9ycyB3aWxsIHByZXZl
bnQgbmVlZGxlc3MKKyAgICAgICAgZXJyb3JzIGZyb20gYmVpbmcgdGhyb3duIGFzIHRoZSB1c2Vy
IHR5cGVzLCBzaW5jZSBpbmNvbXBsZXRlIFVSTCdzIHdpbGwgbm90CisgICAgICAgIGJlIGFibGUg
dG8gYmUgbG9jYXRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMu
anM6CisgICAgICAgIChGdW5jdGlvbi5wcm90b3R5cGUuZGVib3VuY2UpOgorICAgICAgICBQcmV2
ZW50cyB0aGUgZ2l2ZW4gZnVuY3Rpb24gZnJvbSBleGVjdXRpbmcgbW9yZSB0aGFuIG9uY2UgaW4g
dGhlIHNwZWNpZmllZCBhbW91bnQgb2YgdGltZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlQmFja2dyb3VuZFBpY2tlcik6CisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVVJMSW5wdXQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVVUkxJbnB1dCk6CisKIDIwMTYtMDEtMDIgIERldmluIFJvdXNzbyAgPGRjcm91
c3NvK3dlYmtpdEBnbWFpbC5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIGxpc3Qt
c3R5bGUgcHJvcGVydGllcyB0byBWaXN1YWwgU2lkZWJhcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcwppbmRleCA3Nzg3MzIx
Nzc1NTdmZGRhODUxNDVlNDdmZmRkZTM2ZDYzNTY1NDE2Li44MDI1NjViOWQ0ZjYxYWVmZGExMjAw
ZDdmZGZmOGM4OTk2Yzg4MjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcwpAQCAtMTEwNyw2ICsxMTA3LDI0IEBAIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJiaW5hcnlJbmRleE9mIiwKICAg
ICB9CiB9KTsKIAorKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IGRlYm91bmNlU3ltYm9sID0gU3lt
Ym9sKCJmdW5jdGlvbi1kZWJvdW5jZS10aW1lb3V0Iik7CisgICAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KEZ1bmN0aW9uLnByb3RvdHlwZSwgImRlYm91bmNlIiwKKyAgICB7CisgICAgICAgIHZhbHVl
OiBmdW5jdGlvbihkZWxheSwgdGhpc09iamVjdCkKKyAgICAgICAgeworICAgICAgICAgICAgbGV0
IGNhbGxiYWNrID0gdGhpcy5iaW5kKHRoaXNPYmplY3QgfHwgdGhpcyk7CisgICAgICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGNhbGxiYWNr
W2RlYm91bmNlU3ltYm9sXSk7CisgICAgICAgICAgICAgICAgbGV0IGFyZ3MgPSBhcmd1bWVudHM7
CisgICAgICAgICAgICAgICAgY2FsbGJhY2tbZGVib3VuY2VTeW1ib2xdID0gc2V0VGltZW91dCgo
KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KG51bGwsIGFyZ3MpOwor
ICAgICAgICAgICAgICAgIH0sIGRlbGF5KTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAg
ICB9KTsKK30pKCk7CisKIGZ1bmN0aW9uIGFwcGVuZFdlYkluc3BlY3RvclNvdXJjZVVSTChzdHJp
bmcpCiB7CiAgICAgcmV0dXJuIHN0cmluZyArICJcbi8vIyBzb3VyY2VVUkw9X19XZWJJbnNwZWN0
b3JJbnRlcm5hbF9fXG4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlj
a2VyLmpzCmluZGV4IDc5ZDBjMjAzZjlmNzkwNzQyZDQxYTM5NGNhY2ExZjY5YjU4NmNjZGYuLjgx
MGZiOWMxZjEzZjg4MDhmN2VhNTBhMGE0YTNmNDY2MzljMGI3YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQmFja2dyb3Vu
ZFBpY2tlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WaXN1YWxTdHlsZUJhY2tncm91bmRQaWNrZXIuanMKQEAgLTQzLDcgKzQzLDcgQEAgV2ViSW5z
cGVjdG9yLlZpc3VhbFN0eWxlQmFja2dyb3VuZFBpY2tlciA9IGNsYXNzIFZpc3VhbFN0eWxlQmFj
a2dyb3VuZFBpY2tlciBleHQKICAgICAgICAgdGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQuY2xhc3NM
aXN0LmFkZCgidmFsdWUtaW5wdXQiKTsKICAgICAgICAgdGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQu
dHlwZSA9ICJ1cmwiOwogICAgICAgICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC5wbGFjZWhvbGRl
ciA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRW50ZXIgYSBVUkwiKTsKLSAgICAgICAgdGhpcy5f
dmFsdWVJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCB0aGlzLl92YWx1ZUlu
cHV0VmFsdWVDaGFuZ2VkLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl92YWx1ZUlucHV0RWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIHRoaXMuX3ZhbHVlSW5wdXRWYWx1ZUNoYW5n
ZWQuZGVib3VuY2UoMjUwLCB0aGlzKSk7CiAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQpOwogCiAgICAgICAgIHRoaXMuX3ZhbHVl
VHlwZVBpY2tlckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlVVJMSW5wdXQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZVVSTElucHV0LmpzCmluZGV4IDY5ODUxZDdiMTE4MTc0YjdkYjBmYmZk
NzM4OGNiMGZlMTI3YjI2YWMuLjM0NGY3M2UxMDQ3YzU5ODgzYTRmZjA3NDE1OTI2MTNjNDU1MjJi
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlVVJMSW5wdXQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVUkxJbnB1dC5qcwpAQCAtMzIsNyArMzIsNyBAQCBX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVUkxJbnB1dCA9IGNsYXNzIFZpc3VhbFN0eWxlVVJMSW5w
dXQgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwogICAgICAgICB0aGlzLl91cmxJbnB1dEVs
ZW1lbnQudHlwZSA9ICJ1cmwiOwogICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQucGxhY2Vo
b2xkZXIgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVudGVyIGEgVVJMIik7Ci0gICAgICAgIHRo
aXMuX3VybElucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuX3ZhbHVl
RGlkQ2hhbmdlLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigia2V5dXAiLCB0aGlzLl92YWx1ZURpZENoYW5nZS5kZWJvdW5jZSgyNTAs
IHRoaXMpKTsKICAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl91
cmxJbnB1dEVsZW1lbnQpOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="293205"
          type_id="1"
          status="+"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="293206"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268266</attachid>
            <date>2016-01-04 21:33:24 -0800</date>
            <delta_ts>2016-01-04 22:32:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>152655.diff</filename>
            <type>text/plain</type>
            <size>4109</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDJmYjZkNjcuLjE1NTcxMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAxLTA0ICBEZXZpbiBSb3Vzc28g
IDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFk
ZCBkZWJvdW5jZSB0byBVUkwgaW5wdXRzIGluIHRoZSBWaXN1YWwgc2lkZWJhcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNjU1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgIEFkZGluZyBhIGRlYm91bmNl
IHRvIHVybCgpIGJhc2VkIFZpc3VhbCBzaWRlYmFyIGVkaXRvcnMgd2lsbCBwcmV2ZW50IG5lZWRs
ZXNzCisgICAgICAgIGVycm9ycyBmcm9tIGJlaW5nIHRocm93biBhcyB0aGUgdXNlciB0eXBlcywg
c2luY2UgaW5jb21wbGV0ZSBVUkwncyB3aWxsIG5vdAorICAgICAgICBiZSBhYmxlIHRvIGJlIGxv
Y2F0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzOgorICAg
ICAgICAoRnVuY3Rpb24ucHJvdG90eXBlLmRlYm91bmNlKToKKyAgICAgICAgUHJldmVudHMgdGhl
IGdpdmVuIGZ1bmN0aW9uIGZyb20gZXhlY3V0aW5nIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzcGVj
aWZpZWQgYW1vdW50IG9mIHRpbWUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlQmFja2dyb3VuZFBpY2tlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZUJhY2tncm91bmRQaWNrZXIpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9WaXN1YWxTdHlsZVVSTElucHV0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0
eWxlVVJMSW5wdXQpOgorCiAyMDE2LTAxLTA0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IGRlYnVnIGNvbnRleHQgbWVu
dSBzdHJpbmcgYW5kIHJlbG9hZCB3aXRob3V0IGNhY2hlIHRvb2x0aXAgc3RyaW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpz
CmluZGV4IDc3ODczMjEuLjczYTcxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzCkBAIC0xMTA3LDYgKzExMDcsMjQg
QEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgImJpbmFyeUluZGV4T2Yi
LAogICAgIH0KIH0pOwogCisoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgZGVib3VuY2VTeW1ib2wg
PSBTeW1ib2woImZ1bmN0aW9uLWRlYm91bmNlLXRpbWVvdXQiKTsKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkoRnVuY3Rpb24ucHJvdG90eXBlLCAiZGVib3VuY2UiLAorICAgIHsKKyAgICAgICAg
dmFsdWU6IGZ1bmN0aW9uKGRlbGF5LCB0aGlzT2JqZWN0KQorICAgICAgICB7CisgICAgICAgICAg
ICBsZXQgY2FsbGJhY2sgPSB0aGlzLmJpbmQodGhpc09iamVjdCk7CisgICAgICAgICAgICByZXR1
cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGNhbGxiYWNrW2Rl
Ym91bmNlU3ltYm9sXSk7CisgICAgICAgICAgICAgICAgbGV0IGFyZ3MgPSBhcmd1bWVudHM7Cisg
ICAgICAgICAgICAgICAgY2FsbGJhY2tbZGVib3VuY2VTeW1ib2xdID0gc2V0VGltZW91dCgoKSA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KG51bGwsIGFyZ3MpOworICAg
ICAgICAgICAgICAgIH0sIGRlbGF5KTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICB9
KTsKK30pKCk7CisKIGZ1bmN0aW9uIGFwcGVuZFdlYkluc3BlY3RvclNvdXJjZVVSTChzdHJpbmcp
CiB7CiAgICAgcmV0dXJuIHN0cmluZyArICJcbi8vIyBzb3VyY2VVUkw9X19XZWJJbnNwZWN0b3JJ
bnRlcm5hbF9fXG4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2Vy
LmpzCmluZGV4IDc5ZDBjMjAuLjgxMGZiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQmFja2dyb3VuZFBpY2tlci5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHls
ZUJhY2tncm91bmRQaWNrZXIuanMKQEAgLTQzLDcgKzQzLDcgQEAgV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlQmFja2dyb3VuZFBpY2tlciA9IGNsYXNzIFZpc3VhbFN0eWxlQmFja2dyb3VuZFBpY2tl
ciBleHQKICAgICAgICAgdGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgidmFs
dWUtaW5wdXQiKTsKICAgICAgICAgdGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQudHlwZSA9ICJ1cmwi
OwogICAgICAgICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC5wbGFjZWhvbGRlciA9IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiRW50ZXIgYSBVUkwiKTsKLSAgICAgICAgdGhpcy5fdmFsdWVJbnB1dEVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCB0aGlzLl92YWx1ZUlucHV0VmFsdWVDaGFu
Z2VkLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKCJpbnB1dCIsIHRoaXMuX3ZhbHVlSW5wdXRWYWx1ZUNoYW5nZWQuZGVib3VuY2Uo
MjUwLCB0aGlzKSk7CiAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fdmFsdWVJbnB1dEVsZW1lbnQpOwogCiAgICAgICAgIHRoaXMuX3ZhbHVlVHlwZVBpY2tlckVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVVJMSW5w
dXQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxT
dHlsZVVSTElucHV0LmpzCmluZGV4IDY5ODUxZDcuLjM0NGY3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVVJMSW5wdXQu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVVUkxJbnB1dC5qcwpAQCAtMzIsNyArMzIsNyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5
bGVVUkxJbnB1dCA9IGNsYXNzIFZpc3VhbFN0eWxlVVJMSW5wdXQgZXh0ZW5kcyBXZWJJbnNwZWN0
bwogICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbnB1dCIpOwogICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQudHlwZSA9ICJ1cmwiOwog
ICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQucGxhY2Vob2xkZXIgPSBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkVudGVyIGEgVVJMIik7Ci0gICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlLmJpbmQodGhpcykp
OworICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAi
LCB0aGlzLl92YWx1ZURpZENoYW5nZS5kZWJvdW5jZSgyNTAsIHRoaXMpKTsKICAgICAgICAgdGhp
cy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl91cmxJbnB1dEVsZW1lbnQpOwogICAg
IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>