<?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>132073</bug_id>
          
          <creation_ts>2014-04-23 13:39:28 -0700</creation_ts>
          <short_desc>Web Inspector: probe sample should be revealed in details sidebar when selected in Timelines panel</short_desc>
          <delta_ts>2026-01-12 09:04:47 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          <dependson>138976</dependson>
          <blocked>136292</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>graouts</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>madonnk</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1003358</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-04-23 13:39:28 -0700</bug_when>
    <thetext>I think the way to go is to add a supplementalRepresentedObject(s) parameter to showSourceCodeLocation(). When called, it will show the source code location, then ask the active toolbars if they can show the supplemental object. In this case, the supplemental object is a WebInspector.ProbeSample or a dummy object with ProbeSet+hitcount. The sidebar can check if the sample is in any of the probe sets and reveal the related ProbeSetDataFrame and its view (table row).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003359</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-04-23 13:40:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/16703731&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003373</commentid>
    <comment_count>2</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-04-23 13:57:05 -0700</bug_when>
    <thetext>Sounds right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015209</commentid>
    <comment_count>3</comment_count>
      <attachid>232977</attachid>
    <who name="Katie Madonna">madonnk</who>
    <bug_when>2014-06-12 13:25:58 -0700</bug_when>
    <thetext>Created attachment 232977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018386</commentid>
    <comment_count>4</comment_count>
      <attachid>232977</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-06-25 12:32:44 -0700</bug_when>
    <thetext>Comment on attachment 232977
Patch

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

WIP patch looks right so far. Planning to finish this up?

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:1556
&gt; +        console.log(event);

This should be removed in the final patch.

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.js:187
&gt; +        if (supplementalRepresentedObject !== undefined) {

No need for the &quot;!== undefined&quot;.

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.js:195
&gt; +            var currentSidebarPanels = WebInspector.detailsSidebar.sidebarPanels;
&gt; +            for (var sidebarPanel of currentSidebarPanels) {
&gt; +                if (sidebarPanel.inspect(supplementalRepresentedObject))
&gt; +                    console.log(&quot;Can show that object&quot;);
&gt; +                else
&gt; +                    console.log(&quot;Cannot show object&quot;);
&gt; +            }
&gt; +        }

You should use WebInspector.sidebarPanelForRepresentedObject to find the right panel. Maybe move this to a helper function to share with the other places that do this.

What will you do with the sidebarPanel once you have it?

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.js:202
&gt; +        if (supplementalRepresentedObject !== undefined) {

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.js:210
&gt; +            var currentSidebarPanels = WebInspector.detailsSidebar.sidebarPanels;
&gt; +            for (var sidebarPanel of currentSidebarPanels) {
&gt; +                if (sidebarPanel.inspect(supplementalRepresentedObject))
&gt; +                    console.log(&quot;Can show that object&quot;);
&gt; +                else
&gt; +                    console.log(&quot;Cannot show object&quot;);
&gt; +            }
&gt; +        }

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.js:217
&gt; +        if (supplementalRepresentedObject !== undefined) {

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.js:224
&gt; +            var currentSidebarPanels = WebInspector.detailsSidebar.sidebarPanels;
&gt; +            for (var sidebarPanel of currentSidebarPanels) {
&gt; +                if (sidebarPanel.inspect(supplementalRepresentedObject))
&gt; +                    console.log(&quot;Can show that object&quot;);
&gt; +                else
&gt; +                    console.log(&quot;Cannot show object&quot;);
&gt; +            }

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Views/ScriptTimelineView.js:278
&gt; +        console.log(treeElement.representedObject);

This should be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019095</commentid>
    <comment_count>5</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-06-27 14:32:27 -0700</bug_when>
    <thetext>Katie is gone for the summer. I will finish off this patch on the weekend or Monday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1052956</commentid>
    <comment_count>6</comment_count>
      <attachid>242692</attachid>
    <who name="Katie Madonna">madonnk</who>
    <bug_when>2014-12-05 18:20:26 -0800</bug_when>
    <thetext>Created attachment 242692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053876</commentid>
    <comment_count>7</comment_count>
      <attachid>242692</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-12-09 11:17:54 -0800</bug_when>
    <thetext>Comment on attachment 242692
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:407
&gt; +    if (representedObject &amp;&amp; representedObject.eventType === WebInspector.ScriptTimelineRecord.EventType.ProbeSampleRecorded)
&gt; +        return this.probeDetailsSidebarPanel;

I would feel safer with stricter type checks since this is in the generic namespace and &quot;object&quot; could be anything.. Something like:

    if (!representedObject)
        return null;
    if (representedObject instanceof WebInspector.ScriptTimelineRecord) {
        if (representedObject.eventType === WebInspector.ScriptTimelineRecord.EventType.ProbeSampleRecorded)
            return this.probeDetailsSidebarPanel;
    }
    return null;

That said, it isn&apos;t always possible to narrow down a specific representedObject to a single detailsSidebarPanel. For example, a WebInspector.DOMNode is associated with the Styles/Node/LayerTree details sidebars. So I&apos;m not sure this is the right solution.

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:350
&gt; +                var details = {
&gt; +                    &quot;probeId&quot;: recordPayload.data.probeId,
&gt; +                    &quot;sampleId&quot;: recordPayload.data.sampleId
&gt; +                };
&gt; +
&gt;                  // Pass the startTime as the endTime since this record type has no duration.
&gt;                  sourceCodeLocation = WebInspector.probeManager.probeForIdentifier(recordPayload.data.probeId).breakpoint.sourceCodeLocation;
&gt; -                this._addRecord(new WebInspector.ScriptTimelineRecord(WebInspector.ScriptTimelineRecord.EventType.ProbeSampleRecorded, startTime, startTime, callFrames, sourceCodeLocation, recordPayload.data.probeId));
&gt; +                this._addRecord(new WebInspector.ScriptTimelineRecord(WebInspector.ScriptTimelineRecord.EventType.ProbeSampleRecorded, startTime, startTime, callFrames, sourceCodeLocation, details));

How about just passing recordPayload.data and not making the duplicate temp object.

&gt; Source/WebInspectorUI/UserInterface/Views/DetailsSidebarPanel.js:81
&gt; +    reveal: function(objects)

What is &quot;objects&quot;? Usage seems to be a single represented object. Perhaps this should just be &quot;object&quot;?

&gt; Source/WebInspectorUI/UserInterface/Views/ProbeDetailsSidebarPanel.js:100
&gt; +    reveal: function(objects)
&gt; +    {
&gt; +        var probeId = objects.details.probeId;

This feels dangerous you are assuming the passed object has some properties. You should assert and bail if it is not an expected type. (instanceof check).

&gt; Source/WebInspectorUI/UserInterface/Views/ProbeDetailsSidebarPanel.js:103
&gt; +            return probeSet.probes.findIndex(function (probe) { return probe.id === probeId; }) !== -1;

Style: &quot;function (probe)&quot; =&gt; &quot;function(probe)&quot;

&gt; Source/WebInspectorUI/UserInterface/Views/ProbeSetDataGrid.js:83
&gt; +        node.element.classList.add(WebInspector.ProbeSetDataGrid.HighlightedFrameStyleClassName);
&gt; +        window.setTimeout(function() {
&gt; +            node.element.classList.remove(WebInspector.ProbeSetDataGrid.HighlightedFrameStyleClassName);
&gt; +        }, WebInspector.ProbeSetDataGrid.DataUpdatedAnimationDuration);
&gt; +    },

Style: &quot;window.setTimeout&quot; =&gt; &quot;setTimeout&quot;

Should this handle multiple animations gracefully? Something like:

    if (this._blinkTimeoutIdentifier)
        clearTimeout(this._blinkTimeoutIdentifier);
    this._blinkTimeoutIdentifier = setTimeout(function() { ... }, WebInspector.ProbeSetDataGrid.DataUpdatedAnimationDuration);

&gt; Source/WebInspectorUI/UserInterface/Views/ProbeSetDetailsSection.js:90
&gt; +        var selectedFrame = this._probeSet.dataTable.frames.find(function (frame) { return frame[probeId].sampleId === sampleId; });

Style: &quot;function (frame)&quot; =&gt; &quot;function(frame)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055386</commentid>
    <comment_count>8</comment_count>
      <attachid>243244</attachid>
    <who name="Katie Madonna">madonnk</who>
    <bug_when>2014-12-12 20:44:09 -0800</bug_when>
    <thetext>Created attachment 243244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056035</commentid>
    <comment_count>9</comment_count>
      <attachid>243244</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-12-16 11:54:26 -0800</bug_when>
    <thetext>Comment on attachment 243244
Patch

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

This patch is certainly much better, but now that I think about it some more, I think we may want to change how this works.

Details sidebars should automatically show based on whatever is selected. As is the case for selecting a Resource in the timeline. Therefore the Probe sidebar should automatically show when selecting a probe timeline record. If the sidebar is forced to show (like this), then what determines when it should hide or how it will stay shown?

The existing mechanism hooks are having the ContentView change its path components or triggering a SupplementalRepresentedObjectsDidChange event. You could make the ScriptTimelineRecord / ProbeSet / Probe a supplemental representedObject and trigger the event. Then make sure that ProbeDetailsSidebarPanel.prototype.inspect recognizes it, and determines that it should show it.

Does that sound good?

&gt; Source/WebInspectorUI/UserInterface/Views/ProbeDetailsSidebarPanel.js:110
&gt; +            return probeSet.probes.findIndex(function(probe) { return probe.id === probeId; }) !== -1;

Seems this inner could just be another find, thereby avoiding the comparison to -1.

&gt; Source/WebInspectorUI/UserInterface/Views/ProbeSetDataGrid.js:85
&gt; +            node.element.classList.remove(WebInspector.ProbeSetDataGrid.HighlightedFrameStyleClassName);

Insider here you should:

    delete this._blinkTimeoutIdentifier;

&gt; Source/WebInspectorUI/UserInterface/Views/ProbeSetDetailsSection.js:90
&gt; +        var selectedFrame = this._probeSet.dataTable.frames.find(function(frame) { return frame[probeId].sampleId === sampleId; });

Is frame[probeId] guarenteed to exist?

&gt; Source/WebInspectorUI/UserInterface/Views/ScriptTimelineView.js:285
&gt; +
&gt; +

Nit: Extra newline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056319</commentid>
    <comment_count>10</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-12-17 06:08:27 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 243244 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=243244&amp;action=review
&gt; 
&gt; This patch is certainly much better, but now that I think about it some
&gt; more, I think we may want to change how this works.
&gt; 
&gt; Details sidebars should automatically show based on whatever is selected. As
&gt; is the case for selecting a Resource in the timeline. Therefore the Probe
&gt; sidebar should automatically show when selecting a probe timeline record. If
&gt; the sidebar is forced to show (like this), then what determines when it
&gt; should hide or how it will stay shown?
&gt; 
&gt; The existing mechanism hooks are having the ContentView change its path
&gt; components or triggering a SupplementalRepresentedObjectsDidChange event.
&gt; You could make the ScriptTimelineRecord / ProbeSet / Probe a supplemental
&gt; representedObject and trigger the event. Then make sure that
&gt; ProbeDetailsSidebarPanel.prototype.inspect recognizes it, and determines
&gt; that it should show it.
&gt; 
&gt; Does that sound good?

That is the correct approach. SupplementalRepresentedObjectsDidChange can force the details sidebar open, if it was open before and it had to close automatically because it became empty (from switching views, etc.)

This would be similar to how ScopeChainDetailsSidebar works and how TextResourceContentView and ScriptContentView puts the active CallFrame into the array in the supplementalRepresentedObjects getter.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232977</attachid>
            <date>2014-06-12 13:25:58 -0700</date>
            <delta_ts>2014-12-05 18:20:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132073-20140612132533.patch</filename>
            <type>text/plain</type>
            <size>5650</size>
            <attacher name="Katie Madonna">madonnk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA2
Yjk3NjBkNTA2ZGY1N2VkZTlkODRkNDk0NjA2NDNhOGU0YmVhZThhLi44YTU2NmMyNzUwMmEyYzZi
ODNjMDEzNDU3ZWQzYmQzZDg1YjhkNzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxNC0wNi0xMiAgS2F0aWUgTWFkb25uYSAgPG1hZG9ubmtAZ21haWwuY29t
PgorCisgICAgICAgIFdvcmstaW4tcHJvZ3Jlc3MgcGF0Y2gsIGN1cnJlbnRseSBsb2dzIHRvIHRo
ZSBjb25zb2xlIGlmIGFjdGl2ZSBzaWRlYmFycyBjYW4vY2Fubm90IHNob3cKKyAgICAgICAgdGhl
IHN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0IHBhc3NlZCB0byB0aGUgdmFyaW91cyBzaG93
U291cmNlQ29kZUxvY2F0aW9uIG1ldGhvZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjA3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAg
ICAgICguc2hvd1NvdXJjZUNvZGVMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuY3Jl
YXRlU291cmNlQ29kZUxvY2F0aW9uTGluayk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVNpZGViYXJQYW5lbC5wcm90b3R5cGUuc2hvd1NvdXJjZUNvZGVMb2NhdGlvbik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyUGFuZWwucHJvdG90eXBlLnNob3dPcmlnaW5h
bFVuZm9ybWF0dGVkU291cmNlQ29kZUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5cGUuc2hvd09yaWdpbmFsT3JGb3JtYXR0ZWRTb3Vy
Y2VDb2RlTG9jYXRpb24pOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0VGlt
ZWxpbmVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lVmlldy5w
cm90b3R5cGUuX3RyZWVFbGVtZW50U2VsZWN0ZWQpOgorCiAyMDE0LTA1LTI5ICBUaW1vdGh5IEhh
dGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYW4gZXhjZXB0aW9uIGlu
IEluc3BlY3RvckJhY2tlbmQuQ29tbWFuZC5wcm90b3R5cGUuc3VwcG9ydHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggYTRhNmNj
ZWI2NmJiYjZlZDdlNTI0NDIwMmMxNzdmZTkyZTQ0ZmU1Ni4uNGI1ZjNlZmIzZmY3NmJlNTg4OTc3
NjVlNjUxZDNlM2Q5YWQwOWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMTU1Myw2ICsxNTUzLDggQEAgV2ViSW5zcGVjdG9y
LmNyZWF0ZVNvdXJjZUNvZGVMb2NhdGlvbkxpbmsgPSBmdW5jdGlvbihzb3VyY2VDb2RlTG9jYXRp
b24sIGRvbnRGbG8KICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CiAKKyAgICAgICAgY29uc29sZS5sb2coZXZlbnQpOworCiAg
ICAgICAgIGlmIChldmVudC5tZXRhS2V5KQogICAgICAgICAgICAgdGhpcy5yZXNvdXJjZVNpZGVi
YXJQYW5lbC5zaG93T3JpZ2luYWxVbmZvcm1hdHRlZFNvdXJjZUNvZGVMb2NhdGlvbihzb3VyY2VD
b2RlTG9jYXRpb24pOwogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVs
LmpzCmluZGV4IDgxZGE3OWRiOTU0M2QyYTQ4YmM1Mzg1ZjlkNWVlMWRiMjRhMzA0YjQuLjIyMGRj
ZGIyYjQ2OWM1MjM3MzM1OTRjNGY3NDY0M2M1NDAyOWE1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNl
U2lkZWJhclBhbmVsLmpzCkBAIC0xODEsMTkgKzE4MSw0OCBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VTaWRlYmFyUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBXZWJJbnNwZWN0b3IuY29udGVu
dEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRP
YmplY3QsIGNvb2tpZSk7CiAgICAgfSwKIAotICAgIHNob3dTb3VyY2VDb2RlTG9jYXRpb246IGZ1
bmN0aW9uKHNvdXJjZUNvZGVMb2NhdGlvbikKKyAgICBzaG93U291cmNlQ29kZUxvY2F0aW9uOiBm
dW5jdGlvbihzb3VyY2VDb2RlTG9jYXRpb24sIHN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0
KQogICAgIHsKICAgICAgICAgdGhpcy5zaG93U291cmNlQ29kZShzb3VyY2VDb2RlTG9jYXRpb24u
ZGlzcGxheVNvdXJjZUNvZGUsIHNvdXJjZUNvZGVMb2NhdGlvbi5kaXNwbGF5UG9zaXRpb24oKSk7
CisgICAgICAgIGlmIChzdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdCAhPT0gdW5kZWZpbmVk
KSB7CisgICAgICAgICAgICB2YXIgY3VycmVudFNpZGViYXJQYW5lbHMgPSBXZWJJbnNwZWN0b3Iu
ZGV0YWlsc1NpZGViYXIuc2lkZWJhclBhbmVsczsKKyAgICAgICAgICAgIGZvciAodmFyIHNpZGVi
YXJQYW5lbCBvZiBjdXJyZW50U2lkZWJhclBhbmVscykgeworICAgICAgICAgICAgICAgIGlmIChz
aWRlYmFyUGFuZWwuaW5zcGVjdChzdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdCkpCisgICAg
ICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJDYW4gc2hvdyB0aGF0IG9iamVjdCIpOworICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIkNhbm5v
dCBzaG93IG9iamVjdCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfSwKIAotICAg
IHNob3dPcmlnaW5hbFVuZm9ybWF0dGVkU291cmNlQ29kZUxvY2F0aW9uOiBmdW5jdGlvbihzb3Vy
Y2VDb2RlTG9jYXRpb24pCisgICAgc2hvd09yaWdpbmFsVW5mb3JtYXR0ZWRTb3VyY2VDb2RlTG9j
YXRpb246IGZ1bmN0aW9uKHNvdXJjZUNvZGVMb2NhdGlvbiwgc3VwcGxlbWVudGFsUmVwcmVzZW50
ZWRPYmplY3QpCiAgICAgewogICAgICAgICB0aGlzLnNob3dTb3VyY2VDb2RlKHNvdXJjZUNvZGVM
b2NhdGlvbi5zb3VyY2VDb2RlLCBzb3VyY2VDb2RlTG9jYXRpb24ucG9zaXRpb24oKSwgdW5kZWZp
bmVkLCB0cnVlKTsKKworICAgICAgICBpZiAoc3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3Qg
IT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgdmFyIGN1cnJlbnRTaWRlYmFyUGFuZWxzID0g
V2ViSW5zcGVjdG9yLmRldGFpbHNTaWRlYmFyLnNpZGViYXJQYW5lbHM7CisgICAgICAgICAgICBm
b3IgKHZhciBzaWRlYmFyUGFuZWwgb2YgY3VycmVudFNpZGViYXJQYW5lbHMpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoc2lkZWJhclBhbmVsLmluc3BlY3Qoc3VwcGxlbWVudGFsUmVwcmVzZW50ZWRP
YmplY3QpKQorICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiQ2FuIHNob3cgdGhhdCBv
YmplY3QiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGNvbnNv
bGUubG9nKCJDYW5ub3Qgc2hvdyBvYmplY3QiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQog
ICAgIH0sCiAKLSAgICBzaG93T3JpZ2luYWxPckZvcm1hdHRlZFNvdXJjZUNvZGVMb2NhdGlvbjog
ZnVuY3Rpb24oc291cmNlQ29kZUxvY2F0aW9uKQorICAgIHNob3dPcmlnaW5hbE9yRm9ybWF0dGVk
U291cmNlQ29kZUxvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VDb2RlTG9jYXRpb24sIHN1cHBsZW1l
bnRhbFJlcHJlc2VudGVkT2JqZWN0KQogICAgIHsKICAgICAgICAgdGhpcy5zaG93U291cmNlQ29k
ZShzb3VyY2VDb2RlTG9jYXRpb24uc291cmNlQ29kZSwgc291cmNlQ29kZUxvY2F0aW9uLmZvcm1h
dHRlZFBvc2l0aW9uKCkpOworCisgICAgICAgIGlmIChzdXBwbGVtZW50YWxSZXByZXNlbnRlZE9i
amVjdCAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICB2YXIgY3VycmVudFNpZGViYXJQYW5l
bHMgPSBXZWJJbnNwZWN0b3IuZGV0YWlsc1NpZGViYXIuc2lkZWJhclBhbmVsczsKKyAgICAgICAg
ICAgIGZvciAodmFyIHNpZGViYXJQYW5lbCBvZiBjdXJyZW50U2lkZWJhclBhbmVscykgeworICAg
ICAgICAgICAgICAgIGlmIChzaWRlYmFyUGFuZWwuaW5zcGVjdChzdXBwbGVtZW50YWxSZXByZXNl
bnRlZE9iamVjdCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJDYW4gc2hvdyB0
aGF0IG9iamVjdCIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
Y29uc29sZS5sb2coIkNhbm5vdCBzaG93IG9iamVjdCIpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CiAgICAgfSwKIAogICAgIHNob3dTb3VyY2VDb2RlVGV4dFJhbmdlOiBmdW5jdGlvbihzb3Vy
Y2VDb2RlVGV4dFJhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU2NyaXB0VGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0VGltZWxpbmVWaWV3LmpzCmluZGV4IGM5ZTdj
Njk4NDQyNjY2YzA0OTliNTQwYjY5MmM4N2U4OWE5YmVjNDAuLjU2MjE5MmRkNmMwYzhlMGZhOTM1
YTFjYjgwODA0NTQxY2JiZTE5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdFRpbWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRUaW1lbGluZVZpZXcuanMKQEAg
LTI3NSw2ICsyNzUsOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVWaWV3LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVNpZGViYXJQYW5lbC5zaG93T3JpZ2luYWxPckZvcm1hdHRlZFNvdXJjZUNv
ZGVMb2NhdGlvbihzb3VyY2VDb2RlTG9jYXRpb24pOworICAgICAgICBjb25zb2xlLmxvZyh0cmVl
RWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCk7CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291
cmNlU2lkZWJhclBhbmVsLnNob3dPcmlnaW5hbE9yRm9ybWF0dGVkU291cmNlQ29kZUxvY2F0aW9u
KHNvdXJjZUNvZGVMb2NhdGlvbiwgdHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QpOwogICAg
IH0KIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242692</attachid>
            <date>2014-12-05 18:20:26 -0800</date>
            <delta_ts>2014-12-12 20:44:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132073-20141205182101.patch</filename>
            <type>text/plain</type>
            <size>8726</size>
            <attacher name="Katie Madonna">madonnk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2ODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAy
MjhhZDQ5NTc3YTU2MzU2ZTg4NmE5ODBkMjFlMjA1OTM3OTFhZWM4Li5jNmEzNTUyN2I4MzViMjg1
YzU5OWI1MDZiNzA1MTgwMTdmY2Q5Nzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNC0xMi0wNSAgS2F0aWUgTWFkb25uYSAgPG1hZG9ubmtAZ21haWwuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb2JlIHNhbXBsZSBzaG91bGQgYmUgcmV2ZWFs
ZWQgaW4gZGV0YWlscyBzaWRlYmFyIHdoZW4gc2VsZWN0ZWQgaW4gVGltZWxpbmVzIHBhbmVsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzIwNzMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB3YXkg
dG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSBkZXRhaWxzIHNpZGViYXIgcGFuZWwgZm9yIGEgcmVwcmVz
ZW50ZWQgb2JqZWN0LgorICAgICAgICBUaGlzIGlzIGRvbmUgd2hlbiBhbiBldmVudCBpcyBzZWxl
Y3RlZCBpbiB0aGUgVGltZWxpbmVzU2lkZWJhciwgdGhlIGRldGFpbHMgc2lkZWJhcgorICAgICAg
ICBwYW5lbCBpcyByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgaG93IHRvIHJldmVhbCB0aGUg
b2JqZWN0LiBJbiB0aGUgY2FzZSBvZgorICAgICAgICBhIFByb2JlU2FtcGxlLCBpdCBvcGVucyB0
aGUgUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVsIGFuZCBibGlua3MgdGhlIHJvdyB3aGljaAorICAg
ICAgICBjb3JyZXNwb25kcyB0byB0aGUgc2VsZWN0ZWQgc2FtcGxlLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZGV0YWlsc1Np
ZGViYXJQYW5lbEZvclJlcHJlc2VudGVkT2JqZWN0KTogQWRkZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5ldmVudFJlY29yZGVkLnByb2Nlc3NSZWNv
cmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5wcm90b3R5cGUuZXZl
bnRSZWNvcmRlZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2lkZWJh
clBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFpbHNTaWRlYmFyUGFuZWwucHJv
dG90eXBlLnJldmVhbCk6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUHJv
YmVEZXRhaWxzU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
UHJvYmVTZXREYXRhR3JpZC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9iZVNldERhdGFH
cmlkLnByb3RvdHlwZS5ibGlua05vZGVGb3JGcmFtZSk6IEFkZGVkLgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvUHJvYmVTZXREZXRhaWxzU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Qcm9iZVNldERldGFpbHNTZWN0aW9uLnByb3RvdHlwZS5ibGlua1NhbXBsZSk6IEFk
ZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0VGltZWxpbmVWaWV3Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lVmlldy5wcm90b3R5cGUuX3Ry
ZWVFbGVtZW50U2VsZWN0ZWQpOgorCiAyMDE0LTEyLTA0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTmV0d29yayBUaW1lbGlu
ZSBGaWx0ZXIgQmFyIG9ubHkgaGFzICJBbGwiLCBtaXNzaW5nIFJlc291cmNlIFR5cGUgZmlsdGVy
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9N
YWluLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpz
CmluZGV4IGNlM2Y0MTc4OWZkMjljZTBlZGFlMDFjOWIzZTc2ODdkOTI4Y2ZlNGUuLmJjY2Q4NTNl
NjZmODcyYzkzN2JmM2Y2OWJkNDJmNWI5ZjViMzBjMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKQEAgLTQwMSw2ICs0MDEsMTMgQEAg
V2ViSW5zcGVjdG9yLnNpZGViYXJQYW5lbEZvclJlcHJlc2VudGVkT2JqZWN0ID0gZnVuY3Rpb24o
cmVwcmVzZW50ZWRPYmplY3QpCiAgICAgcmV0dXJuIG51bGw7CiB9OwogCitXZWJJbnNwZWN0b3Iu
ZGV0YWlsc1NpZGViYXJQYW5lbEZvclJlcHJlc2VudGVkT2JqZWN0ID0gZnVuY3Rpb24ocmVwcmVz
ZW50ZWRPYmplY3QpCit7CisgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0ICYmIHJlcHJlc2VudGVk
T2JqZWN0LmV2ZW50VHlwZSA9PT0gV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lUmVjb3JkLkV2
ZW50VHlwZS5Qcm9iZVNhbXBsZVJlY29yZGVkKQorICAgICAgICByZXR1cm4gdGhpcy5wcm9iZURl
dGFpbHNTaWRlYmFyUGFuZWw7CisgICAgcmV0dXJuIG51bGw7Cit9OworCiBXZWJJbnNwZWN0b3Iu
Y29udGVudEJyb3dzZXJUcmVlRWxlbWVudEZvclJlcHJlc2VudGVkT2JqZWN0ID0gZnVuY3Rpb24o
Y29udGVudEJyb3dzZXIsIHJlcHJlc2VudGVkT2JqZWN0KQogewogICAgIC8vIFRoZSBjb25zb2xl
IGRvZXMgbm90IGhhdmUgYSBzaWRlYmFyLCBzbyByZXR1cm4gYSB0cmVlIGVsZW1lbnQgaGVyZSBz
byBzb21ldGhpbmcgaXMgc2hvd24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMK
aW5kZXggM2Y3MTY0MjJlOWM1YWEwZTQ1ZjJhYzBjMDI5ZGZlNDljYWYzYTZmMS4uOTBlMmZmMTYw
MTYxOTY1ZmY2OTVjZDJjNDk1OWE1YTUwYmUxNTI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVs
aW5lTWFuYWdlci5qcwpAQCAtMzQwLDkgKzM0MCwxNCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVN
YW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAg
ICAgY2FzZSBUaW1lbGluZUFnZW50LkV2ZW50VHlwZS5Qcm9iZVNhbXBsZToKKyAgICAgICAgICAg
ICAgICB2YXIgZGV0YWlscyA9IHsKKyAgICAgICAgICAgICAgICAgICAgInByb2JlSWQiOiByZWNv
cmRQYXlsb2FkLmRhdGEucHJvYmVJZCwKKyAgICAgICAgICAgICAgICAgICAgInNhbXBsZUlkIjog
cmVjb3JkUGF5bG9hZC5kYXRhLnNhbXBsZUlkCisgICAgICAgICAgICAgICAgfTsKKwogICAgICAg
ICAgICAgICAgIC8vIFBhc3MgdGhlIHN0YXJ0VGltZSBhcyB0aGUgZW5kVGltZSBzaW5jZSB0aGlz
IHJlY29yZCB0eXBlIGhhcyBubyBkdXJhdGlvbi4KICAgICAgICAgICAgICAgICBzb3VyY2VDb2Rl
TG9jYXRpb24gPSBXZWJJbnNwZWN0b3IucHJvYmVNYW5hZ2VyLnByb2JlRm9ySWRlbnRpZmllcihy
ZWNvcmRQYXlsb2FkLmRhdGEucHJvYmVJZCkuYnJlYWtwb2ludC5zb3VyY2VDb2RlTG9jYXRpb247
Ci0gICAgICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkKG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0
VGltZWxpbmVSZWNvcmQoV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlw
ZS5Qcm9iZVNhbXBsZVJlY29yZGVkLCBzdGFydFRpbWUsIHN0YXJ0VGltZSwgY2FsbEZyYW1lcywg
c291cmNlQ29kZUxvY2F0aW9uLCByZWNvcmRQYXlsb2FkLmRhdGEucHJvYmVJZCkpOworICAgICAg
ICAgICAgICAgIHRoaXMuX2FkZFJlY29yZChuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5l
UmVjb3JkKFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuUHJvYmVT
YW1wbGVSZWNvcmRlZCwgc3RhcnRUaW1lLCBzdGFydFRpbWUsIGNhbGxGcmFtZXMsIHNvdXJjZUNv
ZGVMb2NhdGlvbiwgZGV0YWlscykpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAg
ICAgICBjYXNlIFRpbWVsaW5lQWdlbnQuRXZlbnRUeXBlLlRpbWVySW5zdGFsbDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTaWRl
YmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9E
ZXRhaWxzU2lkZWJhclBhbmVsLmpzCmluZGV4IDEzOGU2ODRkMTM0MGNiMGE2OTdkYTYyYjg5MDhi
MGIwZTk4Zjc3ZTMuLjM0MDUzNGJiMzgyNjhjODBlN2IxMGE0NzI3NTlmOGFiMzdhZmJlYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFp
bHNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpAQCAtNzYsNSArNzYsMTAgQEAgV2ViSW5z
cGVjdG9yLkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlID0gewogICAgIHJlZnJlc2g6IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuCisg
ICAgfSwKKworICAgIHJldmVhbDogZnVuY3Rpb24ob2JqZWN0cykKKyAgICB7CisgICAgICAgIC8v
IEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuCiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2JlRGV0YWlsc1NpZGViYXJQ
YW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2Jl
RGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCA5ZGQ2OTUyMzNkNGVjNThmMTI2NjcxNGE4MGMy
YTI0ZmE1ODNmZDVkLi4wODc0NDdmYTY2NmVkYWI5YWY0YzBlNDg2ZjJiY2NkODM2ZDBjYmQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9i
ZURldGFpbHNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBAIC05NSw2ICs5NSwx
OSBAQCBXZWJJbnNwZWN0b3IuUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgcmV0dXJuICEhdGhpcy5faW5zcGVjdGVkUHJvYmVTZXRzLmxlbmd0aDsKICAgICB9
LAogCisgICAgcmV2ZWFsOiBmdW5jdGlvbihvYmplY3RzKQorICAgIHsKKyAgICAgICAgdmFyIHBy
b2JlSWQgPSBvYmplY3RzLmRldGFpbHMucHJvYmVJZDsKKyAgICAgICAgdmFyIHNhbXBsZUlkID0g
b2JqZWN0cy5kZXRhaWxzLnNhbXBsZUlkOworICAgICAgICB2YXIgaW5zcGVjdGVkU2V0ID0gdGhp
cy5pbnNwZWN0ZWRQcm9iZVNldHMuZmluZChmdW5jdGlvbiAocHJvYmVTZXQpIHsKKyAgICAgICAg
ICAgIHJldHVybiBwcm9iZVNldC5wcm9iZXMuZmluZEluZGV4KGZ1bmN0aW9uIChwcm9iZSkgeyBy
ZXR1cm4gcHJvYmUuaWQgPT09IHByb2JlSWQ7IH0pICE9PSAtMTsKKyAgICAgICAgfSk7CisgICAg
ICAgIHZhciBkZXRhaWxzU2VjdGlvbiA9IHRoaXMuX3Byb2JlU2V0U2VjdGlvbnMuZ2V0KGluc3Bl
Y3RlZFNldCk7CisKKyAgICAgICAgdGhpcy5zaG93KCk7CisgICAgICAgIGRldGFpbHNTZWN0aW9u
LmJsaW5rU2FtcGxlKHByb2JlSWQsIHNhbXBsZUlkKTsKKyAgICB9LAorCiAgICAgLy8gUHJpdmF0
ZQogCiAgICAgX3Byb2JlU2V0QWRkZWQ6IGZ1bmN0aW9uKHByb2JlU2V0T3JFdmVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2JlU2V0
RGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Q
cm9iZVNldERhdGFHcmlkLmpzCmluZGV4IDFjYjdlYmM1ZTEwZDY0ODBjYmFkZmE4MTE1NzhjY2E0
MTIxMDczMGQuLjYzNTI5YTQ3N2U0M2YxZGU2NTgzNmQxOTM0YTk5Yjg5MmJlMTNlMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2JlU2V0
RGF0YUdyaWQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUHJvYmVTZXREYXRhR3JpZC5qcwpAQCAtNzIsNiArNzIsMTYgQEAgV2ViSW5zcGVjdG9yLlBy
b2JlU2V0RGF0YUdyaWQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9saXN0ZW5lcnMudW5p
bnN0YWxsKHRydWUpOwogICAgIH0sCiAKKyAgICBibGlua05vZGVGb3JGcmFtZTogZnVuY3Rpb24o
ZnJhbWUpCisgICAgeworICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX2ZyYW1lTm9kZXMuZ2V0KGZy
YW1lKTsKKworICAgICAgICBub2RlLmVsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3Iu
UHJvYmVTZXREYXRhR3JpZC5IaWdobGlnaHRlZEZyYW1lU3R5bGVDbGFzc05hbWUpOworICAgICAg
ICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIG5vZGUuZWxlbWVu
dC5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5Qcm9iZVNldERhdGFHcmlkLkhpZ2hsaWdo
dGVkRnJhbWVTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgIH0sIFdlYkluc3BlY3Rvci5Qcm9iZVNl
dERhdGFHcmlkLkRhdGFVcGRhdGVkQW5pbWF0aW9uRHVyYXRpb24pOworICAgIH0sCisKICAgICAv
LyBQcml2YXRlCiAKICAgICBfc2V0dXBQcm9iZTogZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9iZVNldERldGFp
bHNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
UHJvYmVTZXREZXRhaWxzU2VjdGlvbi5qcwppbmRleCA3N2FhMjEzOTdmOGI1ZjMwYmIxMTE1OWIw
N2QyZDY3ZmZmOTAxYzE5Li44NDBlNDQ2Y2U4MWU0MjlmYTQ1NmQ3MGEzNzExOTJkMDE3ZjMxNzE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Q
cm9iZVNldERldGFpbHNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Byb2JlU2V0RGV0YWlsc1NlY3Rpb24uanMKQEAgLTg1LDYgKzg1LDEy
IEBAIFdlYkluc3BlY3Rvci5Qcm9iZVNldERldGFpbHNTZWN0aW9uLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZSgpOwogICAgIH0sCiAKKyAgICBibGlua1NhbXBsZTog
ZnVuY3Rpb24ocHJvYmVJZCwgc2FtcGxlSWQpCisgICAgeworICAgICAgICB2YXIgc2VsZWN0ZWRG
cmFtZSA9IHRoaXMuX3Byb2JlU2V0LmRhdGFUYWJsZS5mcmFtZXMuZmluZChmdW5jdGlvbiAoZnJh
bWUpIHsgcmV0dXJuIGZyYW1lW3Byb2JlSWRdLnNhbXBsZUlkID09PSBzYW1wbGVJZDsgfSk7Cisg
ICAgICAgIHRoaXMuX2RhdGFHcmlkLmJsaW5rTm9kZUZvckZyYW1lKHNlbGVjdGVkRnJhbWUpOwor
ICAgIH0sCisKICAgICAvLyBQcml2YXRlCiAKICAgICBfdXBkYXRlTGlua0VsZW1lbnQ6IGZ1bmN0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1NjcmlwdFRpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1NjcmlwdFRpbWVsaW5lVmlldy5qcwppbmRleCBlNjg2ZGE1NjdlZjBhMTI5
NDJmMmRkYmUxN2UxYmRiYWZhMmFmZWUwLi5iMzJlNzhlMTI2OWMxNzUwYzViYTBmNGNhMmQ2M2Q5
Y2Y2MmIzOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9TY3JpcHRUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0VGltZWxpbmVWaWV3LmpzCkBAIC0yNzcsNiArMjc3
LDEyIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVZpZXcucHJvdG90eXBlID0gewogICAg
ICAgICB9CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlU2lkZWJhclBhbmVsLnNob3dP
cmlnaW5hbE9yRm9ybWF0dGVkU291cmNlQ29kZUxvY2F0aW9uKHNvdXJjZUNvZGVMb2NhdGlvbik7
CisKKyAgICAgICAgdmFyIGRldGFpbHNTaWRlYmFyID0gV2ViSW5zcGVjdG9yLmRldGFpbHNTaWRl
YmFyUGFuZWxGb3JSZXByZXNlbnRlZE9iamVjdCh0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVj
dCk7CisgICAgICAgIGlmIChkZXRhaWxzU2lkZWJhcikKKyAgICAgICAgICAgIGRldGFpbHNTaWRl
YmFyLnJldmVhbCh0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCk7CisKKwogICAgICAgICB0
aGlzLl91cGRhdGVUcmVlRWxlbWVudFdpdGhDbG9zZUJ1dHRvbih0cmVlRWxlbWVudCk7CiAgICAg
fSwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243244</attachid>
            <date>2014-12-12 20:44:09 -0800</date>
            <delta_ts>2014-12-16 11:54:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132073-20141212204453.patch</filename>
            <type>text/plain</type>
            <size>9169</size>
            <attacher name="Katie Madonna">madonnk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2ODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAy
MjhhZDQ5NTc3YTU2MzU2ZTg4NmE5ODBkMjFlMjA1OTM3OTFhZWM4Li5jNmEzNTUyN2I4MzViMjg1
YzU5OWI1MDZiNzA1MTgwMTdmY2Q5Nzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNC0xMi0wNSAgS2F0aWUgTWFkb25uYSAgPG1hZG9ubmtAZ21haWwuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb2JlIHNhbXBsZSBzaG91bGQgYmUgcmV2ZWFs
ZWQgaW4gZGV0YWlscyBzaWRlYmFyIHdoZW4gc2VsZWN0ZWQgaW4gVGltZWxpbmVzIHBhbmVsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzIwNzMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB3YXkg
dG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSBkZXRhaWxzIHNpZGViYXIgcGFuZWwgZm9yIGEgcmVwcmVz
ZW50ZWQgb2JqZWN0LgorICAgICAgICBUaGlzIGlzIGRvbmUgd2hlbiBhbiBldmVudCBpcyBzZWxl
Y3RlZCBpbiB0aGUgVGltZWxpbmVzU2lkZWJhciwgdGhlIGRldGFpbHMgc2lkZWJhcgorICAgICAg
ICBwYW5lbCBpcyByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgaG93IHRvIHJldmVhbCB0aGUg
b2JqZWN0LiBJbiB0aGUgY2FzZSBvZgorICAgICAgICBhIFByb2JlU2FtcGxlLCBpdCBvcGVucyB0
aGUgUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVsIGFuZCBibGlua3MgdGhlIHJvdyB3aGljaAorICAg
ICAgICBjb3JyZXNwb25kcyB0byB0aGUgc2VsZWN0ZWQgc2FtcGxlLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZGV0YWlsc1Np
ZGViYXJQYW5lbEZvclJlcHJlc2VudGVkT2JqZWN0KTogQWRkZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5ldmVudFJlY29yZGVkLnByb2Nlc3NSZWNv
cmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5wcm90b3R5cGUuZXZl
bnRSZWNvcmRlZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2lkZWJh
clBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFpbHNTaWRlYmFyUGFuZWwucHJv
dG90eXBlLnJldmVhbCk6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUHJv
YmVEZXRhaWxzU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
UHJvYmVTZXREYXRhR3JpZC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9iZVNldERhdGFH
cmlkLnByb3RvdHlwZS5ibGlua05vZGVGb3JGcmFtZSk6IEFkZGVkLgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvUHJvYmVTZXREZXRhaWxzU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Qcm9iZVNldERldGFpbHNTZWN0aW9uLnByb3RvdHlwZS5ibGlua1NhbXBsZSk6IEFk
ZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0VGltZWxpbmVWaWV3Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lVmlldy5wcm90b3R5cGUuX3Ry
ZWVFbGVtZW50U2VsZWN0ZWQpOgorCiAyMDE0LTEyLTA0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTmV0d29yayBUaW1lbGlu
ZSBGaWx0ZXIgQmFyIG9ubHkgaGFzICJBbGwiLCBtaXNzaW5nIFJlc291cmNlIFR5cGUgZmlsdGVy
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9N
YWluLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpz
CmluZGV4IGNlM2Y0MTc4OWZkMjljZTBlZGFlMDFjOWIzZTc2ODdkOTI4Y2ZlNGUuLjhhMTJiOTc1
MTVlOGVjYWUwM2M1NWFkODQ5YTE3ODEwODU2NmVlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKQEAgLTQwMSw2ICs0MDEsMTcgQEAg
V2ViSW5zcGVjdG9yLnNpZGViYXJQYW5lbEZvclJlcHJlc2VudGVkT2JqZWN0ID0gZnVuY3Rpb24o
cmVwcmVzZW50ZWRPYmplY3QpCiAgICAgcmV0dXJuIG51bGw7CiB9OwogCitXZWJJbnNwZWN0b3Iu
ZGV0YWlsc1NpZGViYXJQYW5lbEZvclJlcHJlc2VudGVkT2JqZWN0ID0gZnVuY3Rpb24ocmVwcmVz
ZW50ZWRPYmplY3QpCit7CisgICAgaWYgKCFyZXByZXNlbnRlZE9iamVjdCkKKyAgICAgICAgcmV0
dXJuIG51bGw7CisgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVj
dG9yLlNjcmlwdFRpbWVsaW5lUmVjb3JkKSB7CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVj
dC5ldmVudFR5cGUgPT09IFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5
cGUuUHJvYmVTYW1wbGVSZWNvcmRlZCkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2JlRGV0
YWlsc1NpZGViYXJQYW5lbDsKKyAgICB9CisgICAgcmV0dXJuIG51bGw7Cit9OworCiBXZWJJbnNw
ZWN0b3IuY29udGVudEJyb3dzZXJUcmVlRWxlbWVudEZvclJlcHJlc2VudGVkT2JqZWN0ID0gZnVu
Y3Rpb24oY29udGVudEJyb3dzZXIsIHJlcHJlc2VudGVkT2JqZWN0KQogewogICAgIC8vIFRoZSBj
b25zb2xlIGRvZXMgbm90IGhhdmUgYSBzaWRlYmFyLCBzbyByZXR1cm4gYSB0cmVlIGVsZW1lbnQg
aGVyZSBzbyBzb21ldGhpbmcgaXMgc2hvd24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFn
ZXIuanMKaW5kZXggM2Y3MTY0MjJlOWM1YWEwZTQ1ZjJhYzBjMDI5ZGZlNDljYWYzYTZmMS4uNmE3
YWFiYmE0ODZkMmU0NGE5ODVkM2VjYTBhNTgwYWJhNWUwODA2ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2Vy
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L1RpbWVsaW5lTWFuYWdlci5qcwpAQCAtMzQyLDcgKzM0Miw3IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZU1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgY2FzZSBUaW1lbGluZUFnZW50
LkV2ZW50VHlwZS5Qcm9iZVNhbXBsZToKICAgICAgICAgICAgICAgICAvLyBQYXNzIHRoZSBzdGFy
dFRpbWUgYXMgdGhlIGVuZFRpbWUgc2luY2UgdGhpcyByZWNvcmQgdHlwZSBoYXMgbm8gZHVyYXRp
b24uCiAgICAgICAgICAgICAgICAgc291cmNlQ29kZUxvY2F0aW9uID0gV2ViSW5zcGVjdG9yLnBy
b2JlTWFuYWdlci5wcm9iZUZvcklkZW50aWZpZXIocmVjb3JkUGF5bG9hZC5kYXRhLnByb2JlSWQp
LmJyZWFrcG9pbnQuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHRoaXMuX2Fk
ZFJlY29yZChuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lUmVjb3JkKFdlYkluc3BlY3Rv
ci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuUHJvYmVTYW1wbGVSZWNvcmRlZCwgc3Rh
cnRUaW1lLCBzdGFydFRpbWUsIGNhbGxGcmFtZXMsIHNvdXJjZUNvZGVMb2NhdGlvbiwgcmVjb3Jk
UGF5bG9hZC5kYXRhLnByb2JlSWQpKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmQo
bmV3IFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZChXZWJJbnNwZWN0b3IuU2NyaXB0
VGltZWxpbmVSZWNvcmQuRXZlbnRUeXBlLlByb2JlU2FtcGxlUmVjb3JkZWQsIHN0YXJ0VGltZSwg
c3RhcnRUaW1lLCBjYWxsRnJhbWVzLCBzb3VyY2VDb2RlTG9jYXRpb24sIHJlY29yZFBheWxvYWQu
ZGF0YSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIFRpbWVs
aW5lQWdlbnQuRXZlbnRUeXBlLlRpbWVySW5zdGFsbDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTaWRlYmFyUGFuZWwuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2lkZWJhclBh
bmVsLmpzCmluZGV4IDEzOGU2ODRkMTM0MGNiMGE2OTdkYTYyYjg5MDhiMGIwZTk4Zjc3ZTMuLjA3
MTQ1M2YyNGY3MjM4ZmY4OTE5YjI5Nzk1YmY2MDA3YWFmYzQzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTaWRlYmFyUGFuZWwu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWls
c1NpZGViYXJQYW5lbC5qcwpAQCAtNzYsNSArNzYsMTAgQEAgV2ViSW5zcGVjdG9yLkRldGFpbHNT
aWRlYmFyUGFuZWwucHJvdG90eXBlID0gewogICAgIHJlZnJlc2g6IGZ1bmN0aW9uKCkKICAgICB7
CiAgICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuCisgICAgfSwKKworICAgIHJl
dmVhbDogZnVuY3Rpb24ob2JqZWN0KQorICAgIHsKKyAgICAgICAgLy8gSW1wbGVtZW50ZWQgYnkg
c3ViY2xhc3Nlcy4KICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lkZWJhclBh
bmVsLmpzCmluZGV4IDlkZDY5NTIzM2Q0ZWM1OGYxMjY2NzE0YTgwYzJhMjRmYTU4M2ZkNWQuLjc0
YmI2ZmEzMWE2ZjFlZjhmOGU1ZTg1MjNjZDlkNGE1N2YzM2ZlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2JlRGV0YWlsc1NpZGViYXJQ
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Q
cm9iZURldGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTk1LDYgKzk1LDI2IEBAIFdlYkluc3BlY3Rv
ci5Qcm9iZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4g
ISF0aGlzLl9pbnNwZWN0ZWRQcm9iZVNldHMubGVuZ3RoOwogICAgIH0sCiAKKyAgICByZXZlYWw6
IGZ1bmN0aW9uKG9iamVjdCkKKyAgICB7CisgICAgICAgIGlmICghb2JqZWN0KQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9iamVjdC5kZXRhaWxzIGluc3Rh
bmNlb2YgT2JqZWN0LCAiUmV2ZWFsZWQgb2JqZWN0IHNob3VsZCBoYXZlIGEgZGV0YWlscyBmaWVs
ZC4iKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIG9iamVjdC5kZXRhaWxzLnByb2Jl
SWQgPT09ICJudW1iZXIiLCAiUmV2ZWFsZWQgb2JqZWN0IHNob3VsZCBoYXZlIGEgbnVtZXJpYyBw
cm9iZUlkLiIpOworICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2Ygb2JqZWN0LmRldGFpbHMu
c2FtcGxlSWQgPT09ICJudW1iZXIiLCAiUmV2ZWFsZWQgb2JqZWN0IHNob3VsZCBoYXZlIGEgbnVt
ZXJpYyBzYW1wbGVJZC4iKTsKKworICAgICAgICB2YXIgcHJvYmVJZCA9IG9iamVjdC5kZXRhaWxz
LnByb2JlSWQ7CisgICAgICAgIHZhciBzYW1wbGVJZCA9IG9iamVjdC5kZXRhaWxzLnNhbXBsZUlk
OworICAgICAgICB2YXIgaW5zcGVjdGVkU2V0ID0gdGhpcy5pbnNwZWN0ZWRQcm9iZVNldHMuZmlu
ZChmdW5jdGlvbihwcm9iZVNldCkgeworICAgICAgICAgICAgcmV0dXJuIHByb2JlU2V0LnByb2Jl
cy5maW5kSW5kZXgoZnVuY3Rpb24ocHJvYmUpIHsgcmV0dXJuIHByb2JlLmlkID09PSBwcm9iZUlk
OyB9KSAhPT0gLTE7CisgICAgICAgIH0pOworICAgICAgICB2YXIgZGV0YWlsc1NlY3Rpb24gPSB0
aGlzLl9wcm9iZVNldFNlY3Rpb25zLmdldChpbnNwZWN0ZWRTZXQpOworCisgICAgICAgIHRoaXMu
c2hvdygpOworICAgICAgICBkZXRhaWxzU2VjdGlvbi5ibGlua1NhbXBsZShwcm9iZUlkLCBzYW1w
bGVJZCk7CisgICAgfSwKKwogICAgIC8vIFByaXZhdGUKIAogICAgIF9wcm9iZVNldEFkZGVkOiBm
dW5jdGlvbihwcm9iZVNldE9yRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9iZVNldERhdGFHcmlkLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVTZXREYXRhR3JpZC5qcwppbmRleCAx
Y2I3ZWJjNWUxMGQ2NDgwY2JhZGZhODExNTc4Y2NhNDEyMTA3MzBkLi4xZWNiOTM3ZDYyM2RmZTEz
MzE0MzZlNTJmZjU3NmZlNTYzMGVjMzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9iZVNldERhdGFHcmlkLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2JlU2V0RGF0YUdyaWQuanMKQEAg
LTcyLDYgKzcyLDIwIEBAIFdlYkluc3BlY3Rvci5Qcm9iZVNldERhdGFHcmlkLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fbGlzdGVuZXJzLnVuaW5zdGFsbCh0cnVlKTsKICAgICB9LAogCisg
ICAgYmxpbmtOb2RlRm9yRnJhbWU6IGZ1bmN0aW9uKGZyYW1lKQorICAgIHsKKyAgICAgICAgdmFy
IG5vZGUgPSB0aGlzLl9mcmFtZU5vZGVzLmdldChmcmFtZSk7CisKKyAgICAgICAgaWYgKHRoaXMu
X2JsaW5rVGltZW91dElkZW50aWZpZXIpCisgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5f
YmxpbmtUaW1lb3V0SWRlbnRpZmllcik7CisKKyAgICAgICAgbm9kZS5lbGVtZW50LmNsYXNzTGlz
dC5hZGQoV2ViSW5zcGVjdG9yLlByb2JlU2V0RGF0YUdyaWQuSGlnaGxpZ2h0ZWRGcmFtZVN0eWxl
Q2xhc3NOYW1lKTsKKworICAgICAgICB0aGlzLl9ibGlua1RpbWVvdXRJZGVudGlmaWVyID0gc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIG5vZGUuZWxlbWVudC5jbGFzc0xpc3Qu
cmVtb3ZlKFdlYkluc3BlY3Rvci5Qcm9iZVNldERhdGFHcmlkLkhpZ2hsaWdodGVkRnJhbWVTdHls
ZUNsYXNzTmFtZSk7CisgICAgICAgIH0sIFdlYkluc3BlY3Rvci5Qcm9iZVNldERhdGFHcmlkLkRh
dGFVcGRhdGVkQW5pbWF0aW9uRHVyYXRpb24pOworICAgIH0sCisKICAgICAvLyBQcml2YXRlCiAK
ICAgICBfc2V0dXBQcm9iZTogZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9iZVNldERldGFpbHNTZWN0aW9uLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVTZXREZXRh
aWxzU2VjdGlvbi5qcwppbmRleCA3N2FhMjEzOTdmOGI1ZjMwYmIxMTE1OWIwN2QyZDY3ZmZmOTAx
YzE5Li4xNTcxMTU4ODVhZjFmNjJmYzA4YWJmMjUzZDhiOTZmNzViMzY0OTcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9iZVNldERldGFp
bHNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Byb2JlU2V0RGV0YWlsc1NlY3Rpb24uanMKQEAgLTg1LDYgKzg1LDEyIEBAIFdlYkluc3Bl
Y3Rvci5Qcm9iZVNldERldGFpbHNTZWN0aW9uLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5l
bGVtZW50LnJlbW92ZSgpOwogICAgIH0sCiAKKyAgICBibGlua1NhbXBsZTogZnVuY3Rpb24ocHJv
YmVJZCwgc2FtcGxlSWQpCisgICAgeworICAgICAgICB2YXIgc2VsZWN0ZWRGcmFtZSA9IHRoaXMu
X3Byb2JlU2V0LmRhdGFUYWJsZS5mcmFtZXMuZmluZChmdW5jdGlvbihmcmFtZSkgeyByZXR1cm4g
ZnJhbWVbcHJvYmVJZF0uc2FtcGxlSWQgPT09IHNhbXBsZUlkOyB9KTsKKyAgICAgICAgdGhpcy5f
ZGF0YUdyaWQuYmxpbmtOb2RlRm9yRnJhbWUoc2VsZWN0ZWRGcmFtZSk7CisgICAgfSwKKwogICAg
IC8vIFByaXZhdGUKIAogICAgIF91cGRhdGVMaW5rRWxlbWVudDogZnVuY3Rpb24oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0VGlt
ZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
U2NyaXB0VGltZWxpbmVWaWV3LmpzCmluZGV4IGU2ODZkYTU2N2VmMGExMjk0MmYyZGRiZTE3ZTFi
ZGJhZmEyYWZlZTAuLmIzMmU3OGUxMjY5YzE3NTBjNWJhMGY0Y2EyZDYzZDljZjYyYjM4YzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Njcmlw
dFRpbWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9TY3JpcHRUaW1lbGluZVZpZXcuanMKQEAgLTI3Nyw2ICsyNzcsMTIgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdFRpbWVsaW5lVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAg
ICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VTaWRlYmFyUGFuZWwuc2hvd09yaWdpbmFsT3JGb3Jt
YXR0ZWRTb3VyY2VDb2RlTG9jYXRpb24oc291cmNlQ29kZUxvY2F0aW9uKTsKKworICAgICAgICB2
YXIgZGV0YWlsc1NpZGViYXIgPSBXZWJJbnNwZWN0b3IuZGV0YWlsc1NpZGViYXJQYW5lbEZvclJl
cHJlc2VudGVkT2JqZWN0KHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAg
aWYgKGRldGFpbHNTaWRlYmFyKQorICAgICAgICAgICAgZGV0YWlsc1NpZGViYXIucmV2ZWFsKHRy
ZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KTsKKworCiAgICAgICAgIHRoaXMuX3VwZGF0ZVRy
ZWVFbGVtZW50V2l0aENsb3NlQnV0dG9uKHRyZWVFbGVtZW50KTsKICAgICB9LAogCg==
</data>
<flag name="review"
          id="268101"
          type_id="1"
          status="-"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>