<?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>198228</bug_id>
          
          <creation_ts>2019-05-24 12:53:11 -0700</creation_ts>
          <short_desc>Web Inspector: Debugger: sidebar should always reveal active call frame when hitting a breakpoint</short_desc>
          <delta_ts>2019-06-02 17:05:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Matt Baker">mattbaker</reporter>
          <assigned_to name="Matt Baker">mattbaker</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1539040</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-05-24 12:53:11 -0700</bug_when>
    <thetext>Summary:
Sidebar should always reveal active call frame when hitting a breakpoint. DebuggerSidebarPanel should reveal the TreeElement for the active call frame when handling WI.DebuggerManager.Event.CallFramesDidChange, after refreshing the target ThreadTreeElement.

Note 1: Refreshing the target ThreadTreeElement will cause the active call frame TreeElement to be selected. It just needs to be revealed.

Note 2: The call stack&apos;s DetailsSection header has &quot;position: sticky&quot;, and may cover the revealed TreeElement even after calling scrollIntoViewIfNeeded on it&apos;s DOM node. NavigationSidebarPanel should compensate for this whenever one of its TreeElements is revealed.

Note 3: The sticky header also covers the selected TreeElement if it was scrolled in from the top edge, using the up arrow key. This patch will also address this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539041</commentid>
    <comment_count>1</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-05-24 12:53:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/46719447&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539043</commentid>
    <comment_count>2</comment_count>
      <attachid>370582</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-05-24 13:10:30 -0700</bug_when>
    <thetext>Created attachment 370582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539348</commentid>
    <comment_count>3</comment_count>
      <attachid>370582</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-05-27 01:30:26 -0700</bug_when>
    <thetext>Comment on attachment 370582
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js:639
&gt; +            if (parent.__detailsSection) {

I&apos;m not sure I like this approach.  I agree that it&apos;s the most &quot;widespread&quot; and straightforward solution, but it&apos;s very weird to have this relationship between `WI.TreeOutline` and `WI.DetailsSection` be managed by yet a third party, `WI.NavigationSidebarPanel`.  It also means that every time you reveal a `WI.TreeElement` in ANY navigation sidebar, it does all this work, which isn&apos;t useful for most (if not all) of the navigation sidebars in other tabs.

What about instead having `WI.TreeOutline.set calculateStickyHeaderSize` (or some other name) that you can use to provide a callback (or just a hardcoded value) that the `WI.TreeOutline` (or more specific `WI.TreeElement`) can use to determine how much to offset?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539743</commentid>
    <comment_count>4</comment_count>
      <attachid>370582</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-05-28 15:15:44 -0700</bug_when>
    <thetext>Comment on attachment 370582
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js:639
&gt;&gt; +            if (parent.__detailsSection) {
&gt; 
&gt; I&apos;m not sure I like this approach.  I agree that it&apos;s the most &quot;widespread&quot; and straightforward solution, but it&apos;s very weird to have this relationship between `WI.TreeOutline` and `WI.DetailsSection` be managed by yet a third party, `WI.NavigationSidebarPanel`.  It also means that every time you reveal a `WI.TreeElement` in ANY navigation sidebar, it does all this work, which isn&apos;t useful for most (if not all) of the navigation sidebars in other tabs.
&gt; 
&gt; What about instead having `WI.TreeOutline.set calculateStickyHeaderSize` (or some other name) that you can use to provide a callback (or just a hardcoded value) that the `WI.TreeOutline` (or more specific `WI.TreeElement`) can use to determine how much to offset?

It&apos;s a bit hacky, but TreeOutline shouldn&apos;t need to know about sticky headers or anything related to the context in which the control is being used. NavigationSidebarPanel currently seems like the best level to handle this, since it owns DetailsSections, and already has a factory method used by subclasses to create TreeOutlines.

I agree that locating the DetailsSection for every revealed TreeElement isn&apos;t great. I&apos;ll see if I can write this another way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540473</commentid>
    <comment_count>5</comment_count>
      <attachid>370982</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-05-30 15:07:22 -0700</bug_when>
    <thetext>Created attachment 370982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540609</commentid>
    <comment_count>6</comment_count>
      <attachid>370982</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-05-30 20:48:38 -0700</bug_when>
    <thetext>Comment on attachment 370982
Patch

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

I think this is a much better approach than before (no expando 😃).  I&apos;d like to try it out a bit before reviewing more.

&gt; Source/WebInspectorUI/ChangeLog:18
&gt; +        * UserInterface/Views/DebuggerSidebarPanel.js:

Can you also make this change for `SourcesNavigationSidebarPanel`, as I&apos;d imagine that that has the same issue too.

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:332
&gt; +    createContentTreeOutline({ignoreCookieRestoration, suppressFiltering} = {})

I&apos;d just call this `options = {}` (or even `...args`) since you aren&apos;t actually doing anything with the arguments, just passing them along.

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:338
&gt; +            let treeOutline = treeElement.treeOutline;

This variable is unused.  Please remove it.

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:352
&gt; +            let treeElementRect = treeElement.listItemElement.getBoundingClientRect();

NIT: you could just use `treeElement.listItemElement.totalOffsetTop` (which is a utility we add that does the same thing).

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:358
&gt; +        let treeOutline = super.createContentTreeOutline({ignoreCookieRestoration, suppressFiltering})

Ditto (&gt;332).

&gt; Source/WebInspectorUI/UserInterface/Views/DetailsSection.js:88
&gt; +    get headerElement()

Style: simple getters should be on one line.

&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:263
&gt; +    set treeElementRevealedHandler(revealHandler)

Rather than have a `set`er for some callback function, I think this makes more sense to have as an event that get&apos;s fired.  That matches the existing pattern of other things like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540663</commentid>
    <comment_count>7</comment_count>
      <attachid>370982</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-05-31 00:05:20 -0700</bug_when>
    <thetext>Comment on attachment 370982
Patch

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

r-, as this throws an error when I try to switch to the Debugger tab:

TypeError:​ undefined is not an object (evaluating &apos;detailsSection.element&apos;)​ (at DebuggerSidebarPanel.js:​343:​89)​
    ?​ @ DebuggerSidebarPanel.js:​343:​89
    find @ [native code]​
    treeElementRevealed @ DebuggerSidebarPanel.js:​343:​54
    didRevealTreeElement @ TreeOutline.js:​900:​45
    reveal @ TreeElement.js:​493:​50
    revealAndSelect @ TreeElement.js:​535:​20
    _revealAndSelectRepresentedObject @ ContentBrowserTabContentView.js:​319:​40
    _contentBrowserCurrentContentViewDidChange @ ContentBrowserTabContentView.js:​301:​47
    dispatch @ Object.js:​165:​30
    dispatchEventToListeners @ Object.js:​172:​17
    _currentContentViewDidChange @ ContentBrowser.js:​520:​38
    dispatch @ Object.js:​165:​30
    dispatchEventToListeners @ Object.js:​172:​17
    showBackForwardEntryForIndex @ ContentViewContainer.js:​170:​38
    showContentView @ ContentViewContainer.js:​142:​42
    showDefaultContentViewForTreeElement @ NavigationSidebarPanel.js:​202:​82
    _checkElementsForPendingViewStateCookie @ NavigationSidebarPanel.js:​724:​79
    _checkOutlinesForPendingViewStateCookie @ NavigationSidebarPanel.js:​680:​53
    restoreStateFromCookie @ NavigationSidebarPanel.js:​245:​53
    restoreStateFromCookie @ DebuggerSidebarPanel.js:​422:​41
    restoreStateFromCookie @ TabContentView.js:​146:​63
    shown @ TabContentView.js:​125:​40
    shown @ ContentBrowserTabContentView.js:​106:​20
    prepareToShow @ BackForwardEntry.js:​84:​35
    _showEntry @ ContentViewContainer.js:​450:​28
    showBackForwardEntryForIndex @ ContentViewContainer.js:​166:​28
    showContentView @ ContentViewContainer.js:​142:​42
    _tabBarItemSelected @ TabBrowser.js:​238:​55
    dispatch @ Object.js:​165:​30
    dispatchEventToListeners @ Object.js:​172:​17
    selectedTabBarItem @ LegacyTabBar.js:​386:​38
    _handleMouseDown @ LegacyTabBar.js:​635:​13
    _handleMouseDown @ [native code]​

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:334
&gt; +        let detailsSections = [this._pauseReasonSection, this._callStackSection, this._breakpointsSection, this._scriptsSection];

You should move the instantiation of this inside `treeElementRevealed`, since they could be null when `createContentTreeOutline` is called (it&apos;s called in the constructor of the superclass `WI.NavigationSidebarPanel`).

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:336
&gt; +        function treeElementRevealed(treeElement)

Style: this could be inlined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541123</commentid>
    <comment_count>8</comment_count>
      <attachid>370982</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-06-02 14:17:54 -0700</bug_when>
    <thetext>Comment on attachment 370982
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:334
&gt;&gt; +        let detailsSections = [this._pauseReasonSection, this._callStackSection, this._breakpointsSection, this._scriptsSection];
&gt; 
&gt; You should move the instantiation of this inside `treeElementRevealed`, since they could be null when `createContentTreeOutline` is called (it&apos;s called in the constructor of the superclass `WI.NavigationSidebarPanel`).

Nice catch!

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:263
&gt;&gt; +    set treeElementRevealedHandler(revealHandler)
&gt; 
&gt; Rather than have a `set`er for some callback function, I think this makes more sense to have as an event that get&apos;s fired.  That matches the existing pattern of other things like this.

I&apos;ll put back the WI.TreeOutline.Event.ElementRevealed event from the initial patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541124</commentid>
    <comment_count>9</comment_count>
      <attachid>371162</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-06-02 14:36:32 -0700</bug_when>
    <thetext>Created attachment 371162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541127</commentid>
    <comment_count>10</comment_count>
      <attachid>371162</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-06-02 14:56:46 -0700</bug_when>
    <thetext>Comment on attachment 371162
Patch

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

r=me, but I haven&apos;t been able to apply/test locally because my build is broken :/

&gt; Source/WebInspectorUI/ChangeLog:23
&gt; +        (WI.DetailsSection.prototype.get element):

NIT: since you&apos;re not really &quot;editing&quot; this function, I&apos;d remove it from the ChangeLog.

&gt; Source/WebInspectorUI/ChangeLog:24
&gt; +        (WI.DetailsSection.prototype.get headerElement):

NIT: I like to add an &quot;Added.&quot; suffix to functions that are new :)

&gt; Source/WebInspectorUI/ChangeLog:25
&gt; +        (WI.DetailsSection.prototype.get identifier):

Ditto (&gt;23).

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:348
&gt; +            let topOffset = headerRect.bottom - treeElement.listItemElement.totalOffsetTop;

It&apos;s interesting how we have a `totalOffset*` for everything but &quot;bottom&quot;.  Perhaps you could add one (e.g. `Element.prototype.totalOffsetBottom`)?

&gt; Source/WebInspectorUI/UserInterface/Views/SourcesNavigationSidebarPanel.js:493
&gt; +            let topOffset = headerRect.bottom - treeElement.listItemElement.totalOffsetTop;

Ditto (&gt;DebuggerSidebarPanel.js:348).

&gt; Source/WebInspectorUI/UserInterface/Views/TreeElement.js:493
&gt; +            this.treeOutline.didRevealTreeElement(this);

It&apos;s fine to just inline this function here.  We do similar things elsewhere for `TreeElement`.
```
    if (this.treeOutline)
        this.treeOutline.dispatchEventToListeners(WI.TreeOutline.Event.ElementRevealed, {treeElement: this});
```

&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:1169
&gt; +    ElementRevealed: Symbol(&quot;element-revealed&quot;),

NIT: I know we used `Symbol`s in the past, but I personally prefer a more verbose string (e.g. `tree-outline-element-revealed`) so that it&apos;s globally unique/searchable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541132</commentid>
    <comment_count>11</comment_count>
      <attachid>371162</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-06-02 15:32:33 -0700</bug_when>
    <thetext>Comment on attachment 371162
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:348
&gt;&gt; +            let topOffset = headerRect.bottom - treeElement.listItemElement.totalOffsetTop;
&gt; 
&gt; It&apos;s interesting how we have a `totalOffset*` for everything but &quot;bottom&quot;.  Perhaps you could add one (e.g. `Element.prototype.totalOffsetBottom`)?

Will do.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:1169
&gt;&gt; +    ElementRevealed: Symbol(&quot;element-revealed&quot;),
&gt; 
&gt; NIT: I know we used `Symbol`s in the past, but I personally prefer a more verbose string (e.g. `tree-outline-element-revealed`) so that it&apos;s globally unique/searchable.

I want to be consistent with the surrounding code. If we agree on strings over Symbols, we should just change the whole code base in one go and update our style guidelines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541133</commentid>
    <comment_count>12</comment_count>
      <attachid>371165</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-06-02 15:35:10 -0700</bug_when>
    <thetext>Created attachment 371165
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541134</commentid>
    <comment_count>13</comment_count>
      <attachid>371166</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-06-02 15:39:47 -0700</bug_when>
    <thetext>Created attachment 371166
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541145</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-02 16:34:49 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 371166:

inspector/canvas/recording.html bug 198470 (authors: drousso@apple.com and mattbaker@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541148</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-02 16:34:58 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 371166:

fetch/fetch-worker-crash.html bug 187257 (author: youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541151</commentid>
    <comment_count>16</comment_count>
      <attachid>371166</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-02 17:05:15 -0700</bug_when>
    <thetext>Comment on attachment 371166
Patch for landing

Clearing flags on attachment: 371166

Committed r246026: &lt;https://trac.webkit.org/changeset/246026&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541152</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-02 17:05:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370582</attachid>
            <date>2019-05-24 13:10:30 -0700</date>
            <delta_ts>2019-05-30 15:07:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198228-20190524131030.patch</filename>
            <type>text/plain</type>
            <size>7897</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3
ODhkMzBhMDcwZjM2MTdmOWU2ODA0MGNjMGM0YzQzNWU5MzNjMzE2Li5mYmNlYTE1NTg1YjQ4MDQw
YmU5YTEzZTE1MWNlY2IxN2Y4YTIwZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxOS0wNS0yNCAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRGVidWdnZXI6IHNpZGViYXIgc2hvdWxkIGFsd2F5
cyByZXZlYWwgYWN0aXZlIGNhbGwgZnJhbWUgd2hlbiBoaXR0aW5nIGEgYnJlYWtwb2ludAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MjI4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NjcxOTQ0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZXZlYWwgdGhlIGFjdGl2ZSBjYWxsIGZyYW1lIFRyZWVF
bGVtZW50IHdoZW4gY2FsbCBmcmFtZXMgY2hhbmdlLiBSZWZyZXNoaW5nCisgICAgICAgIHRoZSBj
dXJyZW50IHRhcmdldCdzIFRocmVhZFRyZWVFbGVtZW50IGNoaWxkcmVuIGlzIGluc3VmZmljaWVu
dCwgc2luY2UKKyAgICAgICAgdGhlIHNpZGViYXIgcGFuZWwgY29udGVudCBtYXkgaGF2ZSBzY3Jv
bGxlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gaW50cm9kdWNlcyBhIHdvcmthcm91bmQg
dG8gcHJldmVudCB0aGUgRGV0YWlsc1NlY3Rpb24gaGVhZGVyCisgICAgICAgIGVsZW1lbnQsIHdo
aWNoIGhhcyBzdGlja3kgcG9zaXRpb25pbmcsIGZyb20gY292ZXJpbmcgYSByZXZlYWxlZCBUcmVl
RWxlbWVudC4KKyAgICAgICAgVGhpcyBjYW4gYmUgdGhlIGNhc2Ugd2hlbiB0aGUgVHJlZUVsZW1l
bnQgYmVpbmcgcmV2ZWFsZWQgaXMgYXQgdGhlIHRvcG1vc3QgZWRnZQorICAgICAgICBvZiB0aGUg
c2Nyb2xsZWQgY29udGVudCBlbGVtZW50LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLkRlYnVnZ2VyU2lkZWJhclBh
bmVsLnByb3RvdHlwZS5fZGVidWdnZXJDYWxsRnJhbWVzRGlkQ2hhbmdlKToKKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uanM6CisgICAgICAgIChXSS5EZXRh
aWxzU2VjdGlvbik6CisgICAgICAgIChXSS5EZXRhaWxzU2VjdGlvbi5wcm90b3R5cGUuZ2V0IGhl
YWRlckVsZW1lbnQpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9OYXZpZ2F0aW9u
U2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV0kuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90
b3R5cGUuY3JlYXRlQ29udGVudFRyZWVPdXRsaW5lKToKKyAgICAgICAgKFdJLk5hdmlnYXRpb25T
aWRlYmFyUGFuZWwucHJvdG90eXBlLl90cmVlRWxlbWVudFJldmVhbGVkKToKKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXSS5UcmVlRWxl
bWVudC5wcm90b3R5cGUucmV2ZWFsKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Ry
ZWVPdXRsaW5lLmpzOgorCiAyMDE5LTA1LTI0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBPdmVybGF5OiBkb24ndCBzaG93IHNldHRp
bmcgZm9yIHNob3dpbmcgcnVsZXJzL2d1aWRlcyBkdXJpbmcgZWxlbWVudCBzZWxlY3Rpb24gaWYg
aXQncyBub3Qgc3VwcG9ydGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzCmluZGV4
IGJkNTZiMDNiOGRmMjdkOGE2NGNkMWNjNTdkOTViOTM0ZWYxMzdlMTUuLjA4MTM1OGM2YTkwODYx
YzFhZGZkNDRhZWQ4MjM4MTE5OGQwMjg0NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBh
bmVsLmpzCkBAIC04NjIsNiArODYyLDEwIEBAIFdJLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0gY2xh
c3MgRGVidWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJhCiAgICAg
ICAgIGxldCB0YXJnZXQgPSBldmVudC5kYXRhLnRhcmdldDsKICAgICAgICAgbGV0IHRyZWVFbGVt
ZW50ID0gdGhpcy5fZmluZFRocmVhZFRyZWVFbGVtZW50Rm9yVGFyZ2V0KHRhcmdldCk7CiAgICAg
ICAgIHRyZWVFbGVtZW50LnJlZnJlc2goKTsKKworICAgICAgICBsZXQgYWN0aXZlQ2FsbEZyYW1l
VHJlZUVsZW1lbnQgPSB0aGlzLl9jYWxsU3RhY2tUcmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVt
ZW50OworICAgICAgICBpZiAoYWN0aXZlQ2FsbEZyYW1lVHJlZUVsZW1lbnQpCisgICAgICAgICAg
ICBhY3RpdmVDYWxsRnJhbWVUcmVlRWxlbWVudC5yZXZlYWwoKTsKICAgICB9CiAKICAgICBfZGVi
dWdnZXJBY3RpdmVDYWxsRnJhbWVEaWRDaGFuZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbi5qcwppbmRl
eCBhYTNiMThmNzg5NjhiYjljNGViM2FkNWY4MDA4NzQ2MDBhNDIxMGM2Li5mYWY4Yjk5ODM0NTdj
MDQwODdlZmZkNjgxODQxYzFjZWE1Mjk4NWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbi5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbi5qcwpAQCAt
MzMsNiArMzMsOCBAQCBXSS5EZXRhaWxzU2VjdGlvbiA9IGNsYXNzIERldGFpbHNTZWN0aW9uIGV4
dGVuZHMgV0kuT2JqZWN0CiAKICAgICAgICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoaWRl
bnRpZmllciwgImRldGFpbHMtc2VjdGlvbiIpOworICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIG9u
Y2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MjI2OT4gaXMgZmluaXNoZWQuCisgICAgICAgIHRo
aXMuX2VsZW1lbnQuX19kZXRhaWxzU2VjdGlvbiA9IHRoaXM7CiAKICAgICAgICAgdGhpcy5faGVh
ZGVyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICB0aGlz
Ll9oZWFkZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faGVhZGVyRWxl
bWVudENsaWNrZWQuYmluZCh0aGlzKSk7CkBAIC04NSw2ICs4NywxMSBAQCBXSS5EZXRhaWxzU2Vj
dGlvbiA9IGNsYXNzIERldGFpbHNTZWN0aW9uIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRo
aXMuX3RpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRpdGxlOwogICAgIH0KIAorICAgIGdldCBo
ZWFkZXJFbGVtZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJFbGVtZW50
OworICAgIH0KKwogICAgIGdldCB0aXRsZUVsZW1lbnQoKQogICAgIHsKICAgICAgICAgcmV0dXJu
IHRoaXMuX3RpdGxlRWxlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpz
CmluZGV4IGVkYzMzYThjYWE3NmZkMjUwYWZlNTJhNzA1MDViZWM4ODc3ZmM1YWIuLjk1OGMwODkx
NjhhZjYxNmJlOTgwNWI3OGE2YzQ2Mzg0ZWY1ODkyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmF2aWdhdGlv
blNpZGViYXJQYW5lbC5qcwpAQCAtMTQ2LDYgKzE0Niw4IEBAIFdJLk5hdmlnYXRpb25TaWRlYmFy
UGFuZWwgPSBjbGFzcyBOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuU2lkZWJhclBh
bmVsCiAgICAgICAgICAgICBjb250ZW50VHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5U
cmVlT3V0bGluZS5FdmVudC5FbGVtZW50RGlzY2xvc3VyZURpZENoYW5nZWQsIHRoaXMuX3RyZWVF
bGVtZW50RGlzY2xvc3VyZURpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgIH0KIAorICAgICAgICBj
b250ZW50VHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5F
bGVtZW50UmV2ZWFsZWQsIHRoaXMuX3RyZWVFbGVtZW50UmV2ZWFsZWQsIHRoaXMpOworCiAgICAg
ICAgIGNvbnRlbnRUcmVlT3V0bGluZVtXSS5OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLklnbm9yZUNv
b2tpZVJlc3RvcmF0aW9uXSA9IGlnbm9yZUNvb2tpZVJlc3RvcmF0aW9uOwogICAgICAgICBjb250
ZW50VHJlZU91dGxpbmVbV0kuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5TdXBwcmVzc0ZpbHRlcmlu
Z1N5bWJvbF0gPSBzdXBwcmVzc0ZpbHRlcmluZzsKIApAQCAtNjI0LDYgKzYyNiwzOCBAQCBXSS5O
YXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgTmF2aWdhdGlvblNpZGViYXJQYW5lbCBleHRl
bmRzIFdJLlNpZGViYXJQYW5lbAogICAgICAgICB0aGlzLl91cGRhdGVDb250ZW50T3ZlcmZsb3dT
aGFkb3dWaXNpYmlsaXR5RGVib3VuY2VyLmRlbGF5Rm9yVGltZSgwKTsKICAgICB9CiAKKyAgICBf
dHJlZUVsZW1lbnRSZXZlYWxlZChldmVudCkKKyAgICB7CisgICAgICAgIGxldCB0cmVlRWxlbWVu
dCA9IGV2ZW50LmRhdGEuZWxlbWVudDsKKyAgICAgICAgbGV0IHRyZWVPdXRsaW5lID0gdHJlZUVs
ZW1lbnQudHJlZU91dGxpbmU7CisgICAgICAgIGlmICghdHJlZU91dGxpbmUpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgbGV0IGRldGFpbHNTZWN0aW9uID0gbnVsbDsKKyAgICAgICAg
bGV0IHBhcmVudCA9IHRyZWVPdXRsaW5lLmVsZW1lbnQucGFyZW50Tm9kZTsKKyAgICAgICAgd2hp
bGUgKHBhcmVudCkgeworICAgICAgICAgICAgaWYgKHBhcmVudC5fX2RldGFpbHNTZWN0aW9uKSB7
CisgICAgICAgICAgICAgICAgZGV0YWlsc1NlY3Rpb24gPSBwYXJlbnQuX19kZXRhaWxzU2VjdGlv
bjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBh
cmVudCA9IHBhcmVudC5wYXJlbnROb2RlOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoIWRldGFpbHNTZWN0aW9uIHx8IGRldGFpbHNTZWN0aW9uIGluc3RhbmNlb2YgV0kuRGV0
YWlsc1NlY3Rpb24pOworICAgICAgICBpZiAoIWRldGFpbHNTZWN0aW9uKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIC8vIFJldmVhbGluZyBhIFRyZWVFbGVtZW50IGF0IHRoZSBzY3Jv
bGwgY29udGFpbmVyJ3MgdG9wbW9zdCBlZGdlIHdpdGgKKyAgICAgICAgLy8gc2Nyb2xsSW50b1Zp
ZXdJZk5lZWRlZCBtYXkgcmVzdWx0IGluIHRoZSBlbGVtZW50IGJlaW5nIGNvdmVyZWQgYnkgdGhl
CisgICAgICAgIC8vIERldGFpbHNTZWN0aW9uIGhlYWRlciwgd2hpY2ggdXNlcyBzdGlja3kgcG9z
aXRpb25pbmcuIERldGVjdCB0aGlzIGNhc2UsCisgICAgICAgIC8vIGFuZCBhZGp1c3QgdGhlIHNp
ZGViYXIgY29udGVudCdzIHNjcm9sbCBwb3NpdGlvbiB0byBjb21wZW5zYXRlLgorICAgICAgICBs
ZXQgaGVhZGVyUmVjdCA9IGRldGFpbHNTZWN0aW9uLmhlYWRlckVsZW1lbnQuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7CisgICAgICAgIGxldCB0cmVlRWxlbWVudFJlY3QgPSB0cmVlRWxlbWVudC5s
aXN0SXRlbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIGxldCB0b3BP
ZmZzZXQgPSBoZWFkZXJSZWN0LmJvdHRvbSAtIHRyZWVFbGVtZW50UmVjdC50b3A7CisgICAgICAg
IGlmICh0b3BPZmZzZXQgPiAwKQorICAgICAgICAgICAgdGhpcy5zY3JvbGxFbGVtZW50LnNjcm9s
bEJ5KDAsIC10b3BPZmZzZXQpOworICAgIH0KKwogICAgIF9jaGVja0ZvclN0YWxlUmVzb3VyY2Vz
SWZOZWVkZWQoKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9jaGVja0ZvclN0YWxlUmVzb3Vy
Y2VzVGltZW91dElkZW50aWZpZXIgfHwgIXRoaXMuX3Nob3VsZEF1dG9QcnVuZVN0YWxlVG9wTGV2
ZWxSZXNvdXJjZVRyZWVFbGVtZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZUVsZW1lbnQuanMKaW5kZXggNjNjMjdiOGYxNjA4
MDk0YTM2NDc3ZWU0ZmEwNDJmNzU2NjllMTY2MS4uZjZhZTA0NjlkYzBiMTkzZGFhOWIyMmNlZTc1
ZjVlZmMzMzc3NzE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVHJlZUVsZW1lbnQuanMKQEAgLTQ4OCw2ICs0ODgsOSBAQCBXSS5U
cmVlRWxlbWVudCA9IGNsYXNzIFRyZWVFbGVtZW50IGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAg
ICAgaWYgKHRoaXMub25yZXZlYWwpCiAgICAgICAgICAgICB0aGlzLm9ucmV2ZWFsKHRoaXMpOwor
CisgICAgICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lKQorICAgICAgICAgICAgdGhpcy50cmVlT3V0
bGluZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuVHJlZU91dGxpbmUuRXZlbnQuRWxlbWVu
dFJldmVhbGVkLCB7ZWxlbWVudDogdGhpc30pOwogICAgIH0KIAogICAgIHJldmVhbGVkKGlnbm9y
ZUhpZGRlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1RyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvVHJlZU91dGxpbmUuanMKaW5kZXggNjZlY2Q1MmJiOGYzMzkxY2MzNzMyZjA4MDAx
YmVkNmM0ZjQyZWM0MS4uNjU0ZWI1N2Q0ZTZlNzIzYTIwOWE2YWEyOWRjYTFmNDU5MGIwYWE2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJl
ZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVHJlZU91dGxpbmUuanMKQEAgLTExNjIsNiArMTE2Miw3IEBAIFdJLlRyZWVPdXRsaW5lLkV2
ZW50ID0gewogICAgIEVsZW1lbnRDbGlja2VkOiBTeW1ib2woImVsZW1lbnQtY2xpY2tlZCIpLAog
ICAgIEVsZW1lbnREaXNjbG9zdXJlRGlkQ2hhbmdlZDogU3ltYm9sKCJlbGVtZW50LWRpc2Nsb3N1
cmUtZGlkLWNoYW5nZSIpLAogICAgIEVsZW1lbnRWaXNpYmlsaXR5RGlkQ2hhbmdlOiBTeW1ib2wo
ImVsZW1lbnQtdmlzYmlsaXR5LWRpZC1jaGFuZ2UiKSwKKyAgICBFbGVtZW50UmV2ZWFsZWQ6IFN5
bWJvbCgiZWxlbWVudC1yZXZlYWxlZCIpLAogICAgIFNlbGVjdGlvbkRpZENoYW5nZTogU3ltYm9s
KCJzZWxlY3Rpb24tZGlkLWNoYW5nZSIpCiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370982</attachid>
            <date>2019-05-30 15:07:22 -0700</date>
            <delta_ts>2019-06-02 14:36:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198228-20190530150721.patch</filename>
            <type>text/plain</type>
            <size>8382</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1OTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBk
YTA5OTdlYmE3NTA0ZDIyOGUwYjFhMjBhZTU3Mzg1MDAxZjZmZTJhLi5jYzhiMWFkYTRhZTQ1Mzhh
YTE3ZGIzYTNlZDQ5MzBhZWZmOTBiZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxOS0wNS0zMCAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRGVidWdnZXI6IHNpZGViYXIgc2hvdWxkIGFsd2F5
cyByZXZlYWwgYWN0aXZlIGNhbGwgZnJhbWUgd2hlbiBoaXR0aW5nIGEgYnJlYWtwb2ludAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MjI4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NjcxOTQ0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZXZlYWwgdGhlIGFjdGl2ZSBjYWxsIGZyYW1lIFRyZWVF
bGVtZW50IHdoZW4gY2FsbCBmcmFtZXMgY2hhbmdlLiBSZWZyZXNoaW5nCisgICAgICAgIHRoZSBj
dXJyZW50IHRhcmdldCdzIFRocmVhZFRyZWVFbGVtZW50IGNoaWxkcmVuIGlzIGluc3VmZmljaWVu
dCwgc2luY2UKKyAgICAgICAgdGhlIHNpZGViYXIgcGFuZWwgY29udGVudCBtYXkgaGF2ZSBiZWVu
IHNjcm9sbGVkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2VzIGEgd29ya2Fy
b3VuZCB0byBwcmV2ZW50IHRoZSBEZXRhaWxzU2VjdGlvbiBoZWFkZXIKKyAgICAgICAgZWxlbWVu
dCwgd2hpY2ggaGFzIHN0aWNreSBwb3NpdGlvbmluZywgZnJvbSBjb3ZlcmluZyBhIHJldmVhbGVk
IFRyZWVFbGVtZW50LgorICAgICAgICBUaGlzIGNhbiBiZSB0aGUgY2FzZSB3aGVuIHRoZSBUcmVl
RWxlbWVudCBiZWluZyByZXZlYWxlZCBpcyBhdCB0aGUgdG9wbW9zdCBlZGdlCisgICAgICAgIG9m
IHRoZSBzY3JvbGxlZCBjb250ZW50IGVsZW1lbnQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV0kuRGVidWdnZXJTaWRl
YmFyUGFuZWwucHJvdG90eXBlLmNyZWF0ZUNvbnRlbnRUcmVlT3V0bGluZS50cmVlRWxlbWVudFJl
dmVhbGVkKToKKyAgICAgICAgKFdJLkRlYnVnZ2VyU2lkZWJhclBhbmVsLnByb3RvdHlwZS5jcmVh
dGVDb250ZW50VHJlZU91dGxpbmUpOgorICAgICAgICAoV0kuRGVidWdnZXJTaWRlYmFyUGFuZWwu
cHJvdG90eXBlLl9kZWJ1Z2dlckNhbGxGcmFtZXNEaWRDaGFuZ2UpOgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbi5qczoKKyAgICAgICAgKFdJLkRldGFpbHNT
ZWN0aW9uLnByb3RvdHlwZS5nZXQgaGVhZGVyRWxlbWVudCk6CisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL1RyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuVHJlZUVsZW1lbnQucHJv
dG90eXBlLnJldmVhbCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRs
aW5lLmpzOgorICAgICAgICAoV0kuVHJlZU91dGxpbmUpOgorICAgICAgICAoV0kuVHJlZU91dGxp
bmUucHJvdG90eXBlLnNldCB0cmVlRWxlbWVudFJldmVhbGVkSGFuZGxlcik6CisgICAgICAgIChX
SS5UcmVlT3V0bGluZS5wcm90b3R5cGUuZGlkUmV2ZWFsVHJlZUVsZW1lbnQpOgorCiAyMDE5LTA1
LTI4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBUaW1lbGluZXM6IHNwYWNpbmcgYXJvdW5kIHBpZSBjaGFydCBpcyBkaWZmZXJlbnQg
YmV0d2VlbiBDUFUgYW5kIE1lbW9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcwpp
bmRleCA4ZGMyMTc1NjUwM2JkNjAzZjhlNzFmOTk5MmJiYjQ5ZjM0MTQxNjdmLi4zZTk2MmMzNTg5
MjUwYTMzMWQwYzEyYzE5N2MyMTVhZjk1ZDU1YjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGVi
YXJQYW5lbC5qcwpAQCAtMTYxLDggKzE2MSw4IEBAIFdJLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0g
Y2xhc3MgRGVidWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJhCiAg
ICAgICAgIGJyZWFrcG9pbnROYXZpZ2F0aW9uQmFyLmFkZE5hdmlnYXRpb25JdGVtKHRoaXMuX2Ny
ZWF0ZUJyZWFrcG9pbnRCdXR0b24pOwogCiAgICAgICAgIGxldCBicmVha3BvaW50c0dyb3VwID0g
bmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2JyZWFrcG9pbnRzUm93XSk7Ci0gICAgICAgIGxl
dCBicmVha3BvaW50c1NlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImJyZWFrcG9pbnRz
IiwgV0kuVUlTdHJpbmcoIkJyZWFrcG9pbnRzIiksIFticmVha3BvaW50c0dyb3VwXSwgYnJlYWtw
b2ludE5hdmlnYXRpb25CYXJXcmFwcGVyKTsKLSAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVt
ZW50LmFwcGVuZENoaWxkKGJyZWFrcG9pbnRzU2VjdGlvbi5lbGVtZW50KTsKKyAgICAgICAgdGhp
cy5fYnJlYWtwb2ludHNTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJicmVha3BvaW50
cyIsIFdJLlVJU3RyaW5nKCJCcmVha3BvaW50cyIpLCBbYnJlYWtwb2ludHNHcm91cF0sIGJyZWFr
cG9pbnROYXZpZ2F0aW9uQmFyV3JhcHBlcik7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxl
bWVudC5hcHBlbmRDaGlsZCh0aGlzLl9icmVha3BvaW50c1NlY3Rpb24uZWxlbWVudCk7CiAKICAg
ICAgICAgdGhpcy5fYnJlYWtwb2ludHNDb250ZW50VHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5l
cihXSS5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50QWRkZWQsIHRoaXMuX2hhbmRsZUJyZWFrcG9p
bnRFbGVtZW50QWRkZWRPclJlbW92ZWQsIHRoaXMpOwogICAgICAgICB0aGlzLl9icmVha3BvaW50
c0NvbnRlbnRUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50
LkVsZW1lbnRSZW1vdmVkLCB0aGlzLl9oYW5kbGVCcmVha3BvaW50RWxlbWVudEFkZGVkT3JSZW1v
dmVkLCB0aGlzKTsKQEAgLTMyOSw2ICszMjksMzcgQEAgV0kuRGVidWdnZXJTaWRlYmFyUGFuZWwg
PSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25TaWRlYmEK
ICAgICAgICAgcmV0dXJuIHRoaXMuX2FkZFNjcmlwdChyZXByZXNlbnRlZE9iamVjdCk7CiAgICAg
fQogCisgICAgY3JlYXRlQ29udGVudFRyZWVPdXRsaW5lKHtpZ25vcmVDb29raWVSZXN0b3JhdGlv
biwgc3VwcHJlc3NGaWx0ZXJpbmd9ID0ge30pCisgICAgeworICAgICAgICBsZXQgZGV0YWlsc1Nl
Y3Rpb25zID0gW3RoaXMuX3BhdXNlUmVhc29uU2VjdGlvbiwgdGhpcy5fY2FsbFN0YWNrU2VjdGlv
biwgdGhpcy5fYnJlYWtwb2ludHNTZWN0aW9uLCB0aGlzLl9zY3JpcHRzU2VjdGlvbl07CisKKyAg
ICAgICAgZnVuY3Rpb24gdHJlZUVsZW1lbnRSZXZlYWxlZCh0cmVlRWxlbWVudCkKKyAgICAgICAg
eworICAgICAgICAgICAgbGV0IHRyZWVPdXRsaW5lID0gdHJlZUVsZW1lbnQudHJlZU91dGxpbmU7
CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0cmVlT3V0bGluZSk7CisgICAgICAgICAgICBp
ZiAoIXRyZWVPdXRsaW5lKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAg
bGV0IGRldGFpbHNTZWN0aW9uID0gZGV0YWlsc1NlY3Rpb25zLmZpbmQoKGRldGFpbHNTZWN0aW9u
KSA9PiBkZXRhaWxzU2VjdGlvbi5lbGVtZW50LmNvbnRhaW5zKHRyZWVFbGVtZW50Lmxpc3RJdGVt
RWxlbWVudCkpOworICAgICAgICAgICAgaWYgKCFkZXRhaWxzU2VjdGlvbikKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgIC8vIFJldmVhbGluZyBhIFRyZWVFbGVtZW50IGF0
IHRoZSBzY3JvbGwgY29udGFpbmVyJ3MgdG9wbW9zdCBlZGdlIHdpdGgKKyAgICAgICAgICAgIC8v
IHNjcm9sbEludG9WaWV3SWZOZWVkZWQgbWF5IHJlc3VsdCBpbiB0aGUgZWxlbWVudCBiZWluZyBj
b3ZlcmVkIGJ5IHRoZQorICAgICAgICAgICAgLy8gRGV0YWlsc1NlY3Rpb24gaGVhZGVyLCB3aGlj
aCB1c2VzIHN0aWNreSBwb3NpdGlvbmluZy4gRGV0ZWN0IHRoaXMgY2FzZSwKKyAgICAgICAgICAg
IC8vIGFuZCBhZGp1c3QgdGhlIHNpZGViYXIgY29udGVudCdzIHNjcm9sbCBwb3NpdGlvbiB0byBj
b21wZW5zYXRlLgorICAgICAgICAgICAgbGV0IGhlYWRlclJlY3QgPSBkZXRhaWxzU2VjdGlvbi5o
ZWFkZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICAgICAgbGV0IHRy
ZWVFbGVtZW50UmVjdCA9IHRyZWVFbGVtZW50Lmxpc3RJdGVtRWxlbWVudC5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKTsKKyAgICAgICAgICAgIGxldCB0b3BPZmZzZXQgPSBoZWFkZXJSZWN0LmJvdHRv
bSAtIHRyZWVFbGVtZW50UmVjdC50b3A7CisgICAgICAgICAgICBpZiAodG9wT2Zmc2V0ID4gMCkK
KyAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbEVsZW1lbnQuc2Nyb2xsQnkoMCwgLXRvcE9mZnNl
dCk7CisgICAgICAgIH0KKworICAgICAgICBsZXQgdHJlZU91dGxpbmUgPSBzdXBlci5jcmVhdGVD
b250ZW50VHJlZU91dGxpbmUoe2lnbm9yZUNvb2tpZVJlc3RvcmF0aW9uLCBzdXBwcmVzc0ZpbHRl
cmluZ30pCisgICAgICAgIHRyZWVPdXRsaW5lLnRyZWVFbGVtZW50UmV2ZWFsZWRIYW5kbGVyID0g
dHJlZUVsZW1lbnRSZXZlYWxlZDsKKyAgICAgICAgcmV0dXJuIHRyZWVPdXRsaW5lOworICAgIH0K
KwogICAgIC8vIFByb3RlY3RlZAogCiAgICAgc2F2ZVN0YXRlVG9Db29raWUoY29va2llKQpAQCAt
ODYyLDYgKzg5MywxMCBAQCBXSS5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2Vy
U2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuTmF2aWdhdGlvblNpZGViYQogICAgICAgICBsZXQgdGFy
Z2V0ID0gZXZlbnQuZGF0YS50YXJnZXQ7CiAgICAgICAgIGxldCB0cmVlRWxlbWVudCA9IHRoaXMu
X2ZpbmRUaHJlYWRUcmVlRWxlbWVudEZvclRhcmdldCh0YXJnZXQpOwogICAgICAgICB0cmVlRWxl
bWVudC5yZWZyZXNoKCk7CisKKyAgICAgICAgbGV0IGFjdGl2ZUNhbGxGcmFtZVRyZWVFbGVtZW50
ID0gdGhpcy5fY2FsbFN0YWNrVHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudDsKKyAgICAg
ICAgaWYgKGFjdGl2ZUNhbGxGcmFtZVRyZWVFbGVtZW50KQorICAgICAgICAgICAgYWN0aXZlQ2Fs
bEZyYW1lVHJlZUVsZW1lbnQucmV2ZWFsKCk7CiAgICAgfQogCiAgICAgX2RlYnVnZ2VyQWN0aXZl
Q2FsbEZyYW1lRGlkQ2hhbmdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uanMKaW5kZXggYWEzYjE4Zjc4
OTY4YmI5YzRlYjNhZDVmODAwODc0NjAwYTQyMTBjNi4uN2MyN2E1YzRmMjkxMDAyNGU1NTc0NDY5
NDk4N2ZlMmUxZmIwNTEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uanMKQEAgLTg1LDYgKzg1LDEx
IEBAIFdJLkRldGFpbHNTZWN0aW9uID0gY2xhc3MgRGV0YWlsc1NlY3Rpb24gZXh0ZW5kcyBXSS5P
YmplY3QKICAgICAgICAgdGhpcy5fdGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGl0bGU7CiAg
ICAgfQogCisgICAgZ2V0IGhlYWRlckVsZW1lbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuX2hlYWRlckVsZW1lbnQ7CisgICAgfQorCiAgICAgZ2V0IHRpdGxlRWxlbWVudCgpCiAgICAg
ewogICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGVFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZUVsZW1lbnQuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlRWxlbWVudC5qcwppbmRl
eCA2M2MyN2I4ZjE2MDgwOTRhMzY0NzdlZTRmYTA0MmY3NTY2OWUxNjYxLi4xMmVhNWE2NDI4Nzc1
ZmRhZDRhNDRjYTdiOTNmM2JlYjg2OWQ4YmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlRWxlbWVudC5qcwpAQCAtNDg4LDYg
KzQ4OCw5IEBAIFdJLlRyZWVFbGVtZW50ID0gY2xhc3MgVHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5P
YmplY3QKIAogICAgICAgICBpZiAodGhpcy5vbnJldmVhbCkKICAgICAgICAgICAgIHRoaXMub25y
ZXZlYWwodGhpcyk7CisKKyAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUpCisgICAgICAgICAg
ICB0aGlzLnRyZWVPdXRsaW5lLmRpZFJldmVhbFRyZWVFbGVtZW50KHRoaXMpOwogICAgIH0KIAog
ICAgIHJldmVhbGVkKGlnbm9yZUhpZGRlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKaW5kZXggNjZlY2Q1MmJi
OGYzMzkxY2MzNzMyZjA4MDAxYmVkNmM0ZjQyZWM0MS4uZmEyY2U2MjgxNDNhOTVmODkzMmUxYzk1
MjJjZmRjYzhlZTBlZTBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKQEAgLTExNyw2ICsxMTcsOCBAQCBX
SS5UcmVlT3V0bGluZSA9IGNsYXNzIFRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgIHRoaXMuX3ZpcnR1YWxpemVkVG9wU3BhY2VyID0gbnVsbDsKICAgICAgICAgdGhpcy5fdmly
dHVhbGl6ZWRCb3R0b21TcGFjZXIgPSBudWxsOwogCisgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50
UmV2ZWFsZWRIYW5kbGVyID0gbnVsbDsKKwogICAgICAgICB0aGlzLl9jaGlsZHJlbkxpc3ROb2Rl
LnRhYkluZGV4ID0gMDsKICAgICAgICAgdGhpcy5fY2hpbGRyZW5MaXN0Tm9kZS5hZGRFdmVudExp
c3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fdHJlZUtleURvd24uYmluZCh0aGlzKSwgdHJ1ZSk7CiAg
ICAgICAgIHRoaXMuX2NoaWxkcmVuTGlzdE5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3du
IiwgdGhpcy5faGFuZGxlTW91c2VEb3duLmJpbmQodGhpcykpOwpAQCAtMjU4LDYgKzI2MCwxMiBA
QCBXSS5UcmVlT3V0bGluZSA9IGNsYXNzIFRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuT2JqZWN0CiAK
ICAgICBnZXQgc2VsZWN0YWJsZSgpIHsgcmV0dXJuIHRoaXMuX3NlbGVjdGFibGU7IH0KIAorICAg
IHNldCB0cmVlRWxlbWVudFJldmVhbGVkSGFuZGxlcihyZXZlYWxIYW5kbGVyKQorICAgIHsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIHJldmVhbEhhbmRsZXIgPT09ICJmdW5jdGlvbiIp
OworICAgICAgICB0aGlzLl90cmVlRWxlbWVudFJldmVhbGVkSGFuZGxlciA9IHJldmVhbEhhbmRs
ZXI7CisgICAgfQorCiAgICAgYXBwZW5kQ2hpbGQoY2hpbGQpCiAgICAgewogICAgICAgICBjb25z
b2xlLmFzc2VydChjaGlsZCk7CkBAIC04ODYsNiArODk0LDEyIEBAIFdJLlRyZWVPdXRsaW5lID0g
Y2xhc3MgVHJlZU91dGxpbmUgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgcmV0dXJuIG51bGw7
CiAgICAgfQogCisgICAgZGlkUmV2ZWFsVHJlZUVsZW1lbnQodHJlZUVsZW1lbnQpCisgICAgewor
ICAgICAgICBpZiAodGhpcy5fdHJlZUVsZW1lbnRSZXZlYWxlZEhhbmRsZXIpCisgICAgICAgICAg
ICB0aGlzLl90cmVlRWxlbWVudFJldmVhbGVkSGFuZGxlcih0cmVlRWxlbWVudCk7CisgICAgfQor
CiAgICAgLy8gUHJvdGVjdGVkCiAKICAgICBjYW5TZWxlY3RUcmVlRWxlbWVudCh0cmVlRWxlbWVu
dCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371162</attachid>
            <date>2019-06-02 14:36:32 -0700</date>
            <delta_ts>2019-06-02 15:35:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198228-20190602143631.patch</filename>
            <type>text/plain</type>
            <size>10426</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA1
MGVhNDdjODJhNmE1YTA5MTJiNmNjMTlhNGZlMWEwNzI0OGI4NjY5Li5kNzI5YjU2YjM5ZTFkM2Fh
M2Q5ZGE5OTBkMjQzMzgwODA1M2ZhN2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAxOS0wNi0wMiAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRGVidWdnZXI6IHNpZGViYXIgc2hvdWxkIGFsd2F5
cyByZXZlYWwgYWN0aXZlIGNhbGwgZnJhbWUgd2hlbiBoaXR0aW5nIGEgYnJlYWtwb2ludAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MjI4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NjcxOTQ0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZXZlYWwgdGhlIGFjdGl2ZSBjYWxsIGZyYW1lIFRyZWVF
bGVtZW50IHdoZW4gY2FsbCBmcmFtZXMgY2hhbmdlLiBSZWZyZXNoaW5nCisgICAgICAgIHRoZSBj
dXJyZW50IHRhcmdldCdzIFRocmVhZFRyZWVFbGVtZW50IGNoaWxkcmVuIGlzIGluc3VmZmljaWVu
dCwgc2luY2UKKyAgICAgICAgdGhlIHNpZGViYXIgcGFuZWwgY29udGVudCBtYXkgaGF2ZSBiZWVu
IHNjcm9sbGVkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2VzIGEgd29ya2Fy
b3VuZCB0byBwcmV2ZW50IHRoZSBEZXRhaWxzU2VjdGlvbiBoZWFkZXIKKyAgICAgICAgZWxlbWVu
dCwgd2hpY2ggaGFzIHN0aWNreSBwb3NpdGlvbmluZywgZnJvbSBjb3ZlcmluZyBhIHJldmVhbGVk
IFRyZWVFbGVtZW50LgorICAgICAgICBUaGlzIGNhbiBiZSB0aGUgY2FzZSB3aGVuIHRoZSBUcmVl
RWxlbWVudCBiZWluZyByZXZlYWxlZCBpcyBhdCB0aGUgdG9wbW9zdCBlZGdlCisgICAgICAgIG9m
IHRoZSBzY3JvbGxlZCBjb250ZW50IGVsZW1lbnQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV0kuRGVidWdnZXJTaWRl
YmFyUGFuZWwucHJvdG90eXBlLmNyZWF0ZUNvbnRlbnRUcmVlT3V0bGluZSk6CisgICAgICAgIChX
SS5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX2RlYnVnZ2VyQ2FsbEZyYW1lc0RpZENo
YW5nZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmpz
OgorICAgICAgICAoV0kuRGV0YWlsc1NlY3Rpb24ucHJvdG90eXBlLmdldCBlbGVtZW50KToKKyAg
ICAgICAgKFdJLkRldGFpbHNTZWN0aW9uLnByb3RvdHlwZS5nZXQgaGVhZGVyRWxlbWVudCk6Cisg
ICAgICAgIChXSS5EZXRhaWxzU2VjdGlvbi5wcm90b3R5cGUuZ2V0IGlkZW50aWZpZXIpOgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5l
bC5qczoKKyAgICAgICAgKFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnByb3RvdHlw
ZS5jcmVhdGVDb250ZW50VHJlZU91dGxpbmUpOgorICAgICAgICAoV0kuU291cmNlc05hdmlnYXRp
b25TaWRlYmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVEZWJ1Z2dlckNhbGxGcmFtZXNEaWRDaGFu
Z2UpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UcmVlRWxlbWVudC5qczoKKyAg
ICAgICAgKFdJLlRyZWVFbGVtZW50LnByb3RvdHlwZS5yZXZlYWwpOgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9UcmVlT3V0bGluZS5qczoKKyAgICAgICAgKFdJLlRyZWVPdXRsaW5l
LnByb3RvdHlwZS5kaWRSZXZlYWxUcmVlRWxlbWVudCk6CisKIDIwMTktMDUtMzEgIE5pa2l0YSBW
YXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
Q1NTIENoYW5nZXM6IG1vZGlmaWNhdGlvbnMgYXJlbid0IHNoYXJlZCBmb3IgcnVsZXMgdGhhdCBt
YXRjaCBtdWx0aXBsZSBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcwpp
bmRleCA4ZGMyMTc1NjUwM2JkNjAzZjhlNzFmOTk5MmJiYjQ5ZjM0MTQxNjdmLi43ZTRkNDdiN2E0
NTc4NGNmZGI2OTQ1M2M2MjlhNjI3ZDNiNDllYjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGVi
YXJQYW5lbC5qcwpAQCAtMTYxLDggKzE2MSw4IEBAIFdJLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0g
Y2xhc3MgRGVidWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJhCiAg
ICAgICAgIGJyZWFrcG9pbnROYXZpZ2F0aW9uQmFyLmFkZE5hdmlnYXRpb25JdGVtKHRoaXMuX2Ny
ZWF0ZUJyZWFrcG9pbnRCdXR0b24pOwogCiAgICAgICAgIGxldCBicmVha3BvaW50c0dyb3VwID0g
bmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2JyZWFrcG9pbnRzUm93XSk7Ci0gICAgICAgIGxl
dCBicmVha3BvaW50c1NlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImJyZWFrcG9pbnRz
IiwgV0kuVUlTdHJpbmcoIkJyZWFrcG9pbnRzIiksIFticmVha3BvaW50c0dyb3VwXSwgYnJlYWtw
b2ludE5hdmlnYXRpb25CYXJXcmFwcGVyKTsKLSAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVt
ZW50LmFwcGVuZENoaWxkKGJyZWFrcG9pbnRzU2VjdGlvbi5lbGVtZW50KTsKKyAgICAgICAgdGhp
cy5fYnJlYWtwb2ludHNTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJicmVha3BvaW50
cyIsIFdJLlVJU3RyaW5nKCJCcmVha3BvaW50cyIpLCBbYnJlYWtwb2ludHNHcm91cF0sIGJyZWFr
cG9pbnROYXZpZ2F0aW9uQmFyV3JhcHBlcik7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxl
bWVudC5hcHBlbmRDaGlsZCh0aGlzLl9icmVha3BvaW50c1NlY3Rpb24uZWxlbWVudCk7CiAKICAg
ICAgICAgdGhpcy5fYnJlYWtwb2ludHNDb250ZW50VHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5l
cihXSS5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50QWRkZWQsIHRoaXMuX2hhbmRsZUJyZWFrcG9p
bnRFbGVtZW50QWRkZWRPclJlbW92ZWQsIHRoaXMpOwogICAgICAgICB0aGlzLl9icmVha3BvaW50
c0NvbnRlbnRUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50
LkVsZW1lbnRSZW1vdmVkLCB0aGlzLl9oYW5kbGVCcmVha3BvaW50RWxlbWVudEFkZGVkT3JSZW1v
dmVkLCB0aGlzKTsKQEAgLTMyOSw2ICszMjksMzAgQEAgV0kuRGVidWdnZXJTaWRlYmFyUGFuZWwg
PSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25TaWRlYmEK
ICAgICAgICAgcmV0dXJuIHRoaXMuX2FkZFNjcmlwdChyZXByZXNlbnRlZE9iamVjdCk7CiAgICAg
fQogCisgICAgY3JlYXRlQ29udGVudFRyZWVPdXRsaW5lKG9wdGlvbnMgPSB7fSkKKyAgICB7Cisg
ICAgICAgIGxldCB0cmVlT3V0bGluZSA9IHN1cGVyLmNyZWF0ZUNvbnRlbnRUcmVlT3V0bGluZShv
cHRpb25zKQorCisgICAgICAgIHRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91
dGxpbmUuRXZlbnQuRWxlbWVudFJldmVhbGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGxl
dCB0cmVlRWxlbWVudCA9IGV2ZW50LmRhdGEudHJlZUVsZW1lbnQ7CisgICAgICAgICAgICBsZXQg
ZGV0YWlsc1NlY3Rpb25zID0gW3RoaXMuX3BhdXNlUmVhc29uU2VjdGlvbiwgdGhpcy5fY2FsbFN0
YWNrU2VjdGlvbiwgdGhpcy5fYnJlYWtwb2ludHNTZWN0aW9uLCB0aGlzLl9zY3JpcHRzU2VjdGlv
bl07CisgICAgICAgICAgICBsZXQgZGV0YWlsc1NlY3Rpb24gPSBkZXRhaWxzU2VjdGlvbnMuZmlu
ZCgoZGV0YWlsc1NlY3Rpb24pID0+IGRldGFpbHNTZWN0aW9uLmVsZW1lbnQuY29udGFpbnModHJl
ZUVsZW1lbnQubGlzdEl0ZW1FbGVtZW50KSk7CisgICAgICAgICAgICBpZiAoIWRldGFpbHNTZWN0
aW9uKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgLy8gUmV2ZWFsaW5n
IGEgVHJlZUVsZW1lbnQgYXQgdGhlIHNjcm9sbCBjb250YWluZXIncyB0b3Btb3N0IGVkZ2Ugd2l0
aAorICAgICAgICAgICAgLy8gc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCBtYXkgcmVzdWx0IGluIHRo
ZSBlbGVtZW50IGJlaW5nIGNvdmVyZWQgYnkgdGhlCisgICAgICAgICAgICAvLyBEZXRhaWxzU2Vj
dGlvbiBoZWFkZXIsIHdoaWNoIHVzZXMgc3RpY2t5IHBvc2l0aW9uaW5nLiBEZXRlY3QgdGhpcyBj
YXNlLAorICAgICAgICAgICAgLy8gYW5kIGFkanVzdCB0aGUgc2lkZWJhciBjb250ZW50J3Mgc2Ny
b2xsIHBvc2l0aW9uIHRvIGNvbXBlbnNhdGUuCisgICAgICAgICAgICBsZXQgaGVhZGVyUmVjdCA9
IGRldGFpbHNTZWN0aW9uLmhlYWRlckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Cisg
ICAgICAgICAgICBsZXQgdG9wT2Zmc2V0ID0gaGVhZGVyUmVjdC5ib3R0b20gLSB0cmVlRWxlbWVu
dC5saXN0SXRlbUVsZW1lbnQudG90YWxPZmZzZXRUb3A7CisgICAgICAgICAgICBpZiAodG9wT2Zm
c2V0ID4gMCkKKyAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbEVsZW1lbnQuc2Nyb2xsQnkoMCwg
LXRvcE9mZnNldCk7CisgICAgICAgIH0pOworCisgICAgICAgIHJldHVybiB0cmVlT3V0bGluZTsK
KyAgICB9CisKICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIHNhdmVTdGF0ZVRvQ29va2llKGNvb2tp
ZSkKQEAgLTg2Miw2ICs4ODYsMTAgQEAgV0kuRGVidWdnZXJTaWRlYmFyUGFuZWwgPSBjbGFzcyBE
ZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25TaWRlYmEKICAgICAgICAg
bGV0IHRhcmdldCA9IGV2ZW50LmRhdGEudGFyZ2V0OwogICAgICAgICBsZXQgdHJlZUVsZW1lbnQg
PSB0aGlzLl9maW5kVGhyZWFkVHJlZUVsZW1lbnRGb3JUYXJnZXQodGFyZ2V0KTsKICAgICAgICAg
dHJlZUVsZW1lbnQucmVmcmVzaCgpOworCisgICAgICAgIGxldCBhY3RpdmVDYWxsRnJhbWVUcmVl
RWxlbWVudCA9IHRoaXMuX2NhbGxTdGFja1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChXSS5k
ZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lKTsKKyAgICAgICAgaWYgKGFjdGl2ZUNhbGxG
cmFtZVRyZWVFbGVtZW50KQorICAgICAgICAgICAgYWN0aXZlQ2FsbEZyYW1lVHJlZUVsZW1lbnQu
cmV2ZWFsKCk7CiAgICAgfQogCiAgICAgX2RlYnVnZ2VyQWN0aXZlQ2FsbEZyYW1lRGlkQ2hhbmdl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0RldGFpbHNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRGV0YWlsc1NlY3Rpb24uanMKaW5kZXggYWEzYjE4Zjc4OTY4YmI5YzRlYjNhZDVmODAw
ODc0NjAwYTQyMTBjNi4uMGE5MDIyYTA3OWEyN2NmMzY5ZTM0NGJmMWEzYmQzYTFhYTkyMzgzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0
YWlsc1NlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRGV0YWlsc1NlY3Rpb24uanMKQEAgLTY1LDE1ICs2NSw5IEBAIFdJLkRldGFpbHNTZWN0
aW9uID0gY2xhc3MgRGV0YWlsc1NlY3Rpb24gZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIC8vIFB1
YmxpYwogCi0gICAgZ2V0IGVsZW1lbnQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2Vs
ZW1lbnQ7Ci0gICAgfQotCi0gICAgZ2V0IGlkZW50aWZpZXIoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMuX2lkZW50aWZpZXI7Ci0gICAgfQorICAgIGdldCBlbGVtZW50KCkgeyByZXR1cm4g
dGhpcy5fZWxlbWVudDsgfQorICAgIGdldCBoZWFkZXJFbGVtZW50KCkgeyByZXR1cm4gdGhpcy5f
aGVhZGVyRWxlbWVudDsgfQorICAgIGdldCBpZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5faWRl
bnRpZmllcjsgfQogCiAgICAgZ2V0IHRpdGxlKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGVi
YXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Nv
dXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCmluZGV4IGM1YTFiZmUxNGVhZWI1ODc3YWRi
NWU0N2IyZjY1Nzg4NGE4YWU2ZmMuLjE1ZGM3ZTg4YWM4ZGFkNzY0MDA4YTFlODZjZGM4MzJmZTBj
MjA2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVs
LmpzCkBAIC00NzQsNiArNDc0LDMwIEBAIFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVs
ID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXCiAKICAgICAv
LyBQcm90ZWN0ZWQKIAorICAgIGNyZWF0ZUNvbnRlbnRUcmVlT3V0bGluZShvcHRpb25zID0ge30p
CisgICAgeworICAgICAgICBsZXQgdHJlZU91dGxpbmUgPSBzdXBlci5jcmVhdGVDb250ZW50VHJl
ZU91dGxpbmUob3B0aW9ucykKKworICAgICAgICB0cmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVy
KFdJLlRyZWVPdXRsaW5lLkV2ZW50LkVsZW1lbnRSZXZlYWxlZCwgKGV2ZW50KSA9PiB7CisgICAg
ICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBldmVudC5kYXRhLnRyZWVFbGVtZW50OworICAgICAg
ICAgICAgbGV0IGRldGFpbHNTZWN0aW9ucyA9IFt0aGlzLl9wYXVzZVJlYXNvblNlY3Rpb24sIHRo
aXMuX2NhbGxTdGFja1NlY3Rpb24sIHRoaXMuX2JyZWFrcG9pbnRzU2VjdGlvbl07CisgICAgICAg
ICAgICBsZXQgZGV0YWlsc1NlY3Rpb24gPSBkZXRhaWxzU2VjdGlvbnMuZmluZCgoZGV0YWlsc1Nl
Y3Rpb24pID0+IGRldGFpbHNTZWN0aW9uLmVsZW1lbnQuY29udGFpbnModHJlZUVsZW1lbnQubGlz
dEl0ZW1FbGVtZW50KSk7CisgICAgICAgICAgICBpZiAoIWRldGFpbHNTZWN0aW9uKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgLy8gUmV2ZWFsaW5nIGEgVHJlZUVsZW1l
bnQgYXQgdGhlIHNjcm9sbCBjb250YWluZXIncyB0b3Btb3N0IGVkZ2Ugd2l0aAorICAgICAgICAg
ICAgLy8gc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCBtYXkgcmVzdWx0IGluIHRoZSBlbGVtZW50IGJl
aW5nIGNvdmVyZWQgYnkgdGhlCisgICAgICAgICAgICAvLyBEZXRhaWxzU2VjdGlvbiBoZWFkZXIs
IHdoaWNoIHVzZXMgc3RpY2t5IHBvc2l0aW9uaW5nLiBEZXRlY3QgdGhpcyBjYXNlLAorICAgICAg
ICAgICAgLy8gYW5kIGFkanVzdCB0aGUgc2lkZWJhciBjb250ZW50J3Mgc2Nyb2xsIHBvc2l0aW9u
IHRvIGNvbXBlbnNhdGUuCisgICAgICAgICAgICBsZXQgaGVhZGVyUmVjdCA9IGRldGFpbHNTZWN0
aW9uLmhlYWRlckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgICAgICBs
ZXQgdG9wT2Zmc2V0ID0gaGVhZGVyUmVjdC5ib3R0b20gLSB0cmVlRWxlbWVudC5saXN0SXRlbUVs
ZW1lbnQudG90YWxPZmZzZXRUb3A7CisgICAgICAgICAgICBpZiAodG9wT2Zmc2V0ID4gMCkKKyAg
ICAgICAgICAgICAgICB0aGlzLnNjcm9sbEVsZW1lbnQuc2Nyb2xsQnkoMCwgLXRvcE9mZnNldCk7
CisgICAgICAgIH0pOworCisgICAgICAgIHJldHVybiB0cmVlT3V0bGluZTsKKyAgICB9CisKICAg
ICByZXNldEZpbHRlcigpCiAgICAgewogICAgICAgICB0aGlzLl9yZXNvdXJjZVR5cGVTY29wZUJh
ci5yZXNldFRvRGVmYXVsdCgpOwpAQCAtMTcyOCw2ICsxNzUyLDEwIEBAIFdJLlNvdXJjZXNOYXZp
Z2F0aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwg
ZXh0ZW5kcyBXCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50KTsKICAgICAgICAg
aWYgKHRyZWVFbGVtZW50KQogICAgICAgICAgICAgdHJlZUVsZW1lbnQucmVmcmVzaCgpOworCisg
ICAgICAgIGxldCBhY3RpdmVDYWxsRnJhbWVUcmVlRWxlbWVudCA9IHRoaXMuX2NhbGxTdGFja1Ry
ZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZy
YW1lKTsKKyAgICAgICAgaWYgKGFjdGl2ZUNhbGxGcmFtZVRyZWVFbGVtZW50KQorICAgICAgICAg
ICAgYWN0aXZlQ2FsbEZyYW1lVHJlZUVsZW1lbnQucmV2ZWFsKCk7CiAgICAgfQogCiAgICAgX2hh
bmRsZURlYnVnZ2VyQWN0aXZlQ2FsbEZyYW1lRGlkQ2hhbmdlKGV2ZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZUVsZW1lbnQuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlRWxlbWVudC5q
cwppbmRleCA2M2MyN2I4ZjE2MDgwOTRhMzY0NzdlZTRmYTA0MmY3NTY2OWUxNjYxLi4xMmVhNWE2
NDI4Nzc1ZmRhZDRhNDRjYTdiOTNmM2JlYjg2OWQ4YmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlRWxlbWVudC5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlRWxlbWVudC5qcwpAQCAt
NDg4LDYgKzQ4OCw5IEBAIFdJLlRyZWVFbGVtZW50ID0gY2xhc3MgVHJlZUVsZW1lbnQgZXh0ZW5k
cyBXSS5PYmplY3QKIAogICAgICAgICBpZiAodGhpcy5vbnJldmVhbCkKICAgICAgICAgICAgIHRo
aXMub25yZXZlYWwodGhpcyk7CisKKyAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUpCisgICAg
ICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLmRpZFJldmVhbFRyZWVFbGVtZW50KHRoaXMpOwogICAg
IH0KIAogICAgIHJldmVhbGVkKGlnbm9yZUhpZGRlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKaW5kZXggNjZl
Y2Q1MmJiOGYzMzkxY2MzNzMyZjA4MDAxYmVkNmM0ZjQyZWM0MS4uNDg1MTU1YmEwY2Q2NmRhN2Q1
NGE1ODlkMjRlOWYzNTZiYjQ3ZGE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKQEAgLTg4Niw2ICs4ODYs
MTMgQEAgV0kuVHJlZU91dGxpbmUgPSBjbGFzcyBUcmVlT3V0bGluZSBleHRlbmRzIFdJLk9iamVj
dAogICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CiAKKyAgICBkaWRSZXZlYWxUcmVlRWxlbWVu
dCh0cmVlRWxlbWVudCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50
LnRyZWVPdXRsaW5lID09PSB0aGlzKTsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhUcmVlT3V0bGluZS5FdmVudC5FbGVtZW50UmV2ZWFsZWQsIHt0cmVlRWxlbWVudH0p
OworICAgIH0KKwogICAgIC8vIFByb3RlY3RlZAogCiAgICAgY2FuU2VsZWN0VHJlZUVsZW1lbnQo
dHJlZUVsZW1lbnQpCkBAIC0xMTU5LDYgKzExNjYsNyBAQCBXSS5UcmVlT3V0bGluZS5FdmVudCA9
IHsKICAgICBFbGVtZW50QWRkZWQ6IFN5bWJvbCgiZWxlbWVudC1hZGRlZCIpLAogICAgIEVsZW1l
bnREaWRDaGFuZ2U6IFN5bWJvbCgiZWxlbWVudC1kaWQtY2hhbmdlIiksCiAgICAgRWxlbWVudFJl
bW92ZWQ6IFN5bWJvbCgiZWxlbWVudC1yZW1vdmVkIiksCisgICAgRWxlbWVudFJldmVhbGVkOiBT
eW1ib2woImVsZW1lbnQtcmV2ZWFsZWQiKSwKICAgICBFbGVtZW50Q2xpY2tlZDogU3ltYm9sKCJl
bGVtZW50LWNsaWNrZWQiKSwKICAgICBFbGVtZW50RGlzY2xvc3VyZURpZENoYW5nZWQ6IFN5bWJv
bCgiZWxlbWVudC1kaXNjbG9zdXJlLWRpZC1jaGFuZ2UiKSwKICAgICBFbGVtZW50VmlzaWJpbGl0
eURpZENoYW5nZTogU3ltYm9sKCJlbGVtZW50LXZpc2JpbGl0eS1kaWQtY2hhbmdlIiksCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>371165</attachid>
            <date>2019-06-02 15:35:10 -0700</date>
            <delta_ts>2019-06-02 15:36:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-198228-20190602153509.patch</filename>
            <type>text/plain</type>
            <size>10623</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA1
MGVhNDdjODJhNmE1YTA5MTJiNmNjMTlhNGZlMWEwNzI0OGI4NjY5Li4zYTVjNjFlZWEwMGI2ZjM3
OTM1MzljMjMxOTBlODg0NDVhZjhmZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAxOS0wNi0wMiAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRGVidWdnZXI6IHNpZGViYXIgc2hvdWxkIGFsd2F5
cyByZXZlYWwgYWN0aXZlIGNhbGwgZnJhbWUgd2hlbiBoaXR0aW5nIGEgYnJlYWtwb2ludAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MjI4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NjcxOTQ0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZp
biBSb3Vzc28uCisKKyAgICAgICAgUmV2ZWFsIHRoZSBhY3RpdmUgY2FsbCBmcmFtZSBUcmVlRWxl
bWVudCB3aGVuIGNhbGwgZnJhbWVzIGNoYW5nZS4gUmVmcmVzaGluZworICAgICAgICB0aGUgY3Vy
cmVudCB0YXJnZXQncyBUaHJlYWRUcmVlRWxlbWVudCBjaGlsZHJlbiBpcyBpbnN1ZmZpY2llbnQs
IHNpbmNlCisgICAgICAgIHRoZSBzaWRlYmFyIHBhbmVsIGNvbnRlbnQgbWF5IGhhdmUgYmVlbiBz
Y3JvbGxlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gaW50cm9kdWNlcyBhIHdvcmthcm91
bmQgdG8gcHJldmVudCB0aGUgRGV0YWlsc1NlY3Rpb24gaGVhZGVyCisgICAgICAgIGVsZW1lbnQs
IHdoaWNoIGhhcyBzdGlja3kgcG9zaXRpb25pbmcsIGZyb20gY292ZXJpbmcgYSByZXZlYWxlZCBU
cmVlRWxlbWVudC4KKyAgICAgICAgVGhpcyBjYW4gYmUgdGhlIGNhc2Ugd2hlbiB0aGUgVHJlZUVs
ZW1lbnQgYmVpbmcgcmV2ZWFsZWQgaXMgYXQgdGhlIHRvcG1vc3QgZWRnZQorICAgICAgICBvZiB0
aGUgc2Nyb2xsZWQgY29udGVudCBlbGVtZW50LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9C
YXNlL1V0aWxpdGllcy5qczoKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdn
ZXJTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXSS5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90
b3R5cGUuY3JlYXRlQ29udGVudFRyZWVPdXRsaW5lKToKKyAgICAgICAgKFdJLkRlYnVnZ2VyU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5fZGVidWdnZXJDYWxsRnJhbWVzRGlkQ2hhbmdlKToKKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uanM6CisgICAgICAgIChX
SS5EZXRhaWxzU2VjdGlvbi5wcm90b3R5cGUuZ2V0IGVsZW1lbnQpOgorICAgICAgICAoV0kuRGV0
YWlsc1NlY3Rpb24ucHJvdG90eXBlLmdldCBoZWFkZXJFbGVtZW50KToKKyAgICAgICAgKFdJLkRl
dGFpbHNTZWN0aW9uLnByb3RvdHlwZS5nZXQgaWRlbnRpZmllcik6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzOgorICAgICAg
ICAoV0kuU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90eXBlLmNyZWF0ZUNvbnRl
bnRUcmVlT3V0bGluZSk6CisgICAgICAgIChXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5l
bC5wcm90b3R5cGUuX2hhbmRsZURlYnVnZ2VyQ2FsbEZyYW1lc0RpZENoYW5nZSk6CisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuVHJl
ZUVsZW1lbnQucHJvdG90eXBlLnJldmVhbCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9UcmVlT3V0bGluZS5qczoKKwogMjAxOS0wNS0zMSAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2ls
eWV2QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDU1MgQ2hhbmdlczogbW9k
aWZpY2F0aW9ucyBhcmVuJ3Qgc2hhcmVkIGZvciBydWxlcyB0aGF0IG1hdGNoIG11bHRpcGxlIGVs
ZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL1V0aWxpdGllcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvVXRpbGl0aWVzLmpzCmluZGV4IGViZDcxZTA0MjgwNmUzZWVjODBkZmI5NmY2ZDRiMDkzNTgy
MDI4OWQuLmIwYjI0NDZkNDkwNzA5NDA2ODY2ZmI4MjdkN2VlMjc3MDZhOWZhMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVz
LmpzCkBAIC0zODgsNiArMzg4LDE0IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbGVtZW50LnBy
b3RvdHlwZSwgInRvdGFsT2Zmc2V0VG9wIiwKICAgICB9CiB9KTsKIAorT2JqZWN0LmRlZmluZVBy
b3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCAidG90YWxPZmZzZXRCb3R0b20iLAoreworICAgIGdl
dCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5i
b3R0b207CisgICAgfQorfSk7CisKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3Rv
dHlwZSwgInJlbW92ZUNoaWxkcmVuIiwKIHsKICAgICB2YWx1ZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5l
bC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2Vy
U2lkZWJhclBhbmVsLmpzCmluZGV4IDhkYzIxNzU2NTAzYmQ2MDNmOGU3MWY5OTkyYmJiNDlmMzQx
NDE2N2YuLmE5NjBhODc4ZDMyYWMzNWJmMDcxYzQzMmRhMGExZjY4NGE4NWNkZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lk
ZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzCkBAIC0xNjEsOCArMTYxLDggQEAgV0kuRGVidWdn
ZXJTaWRlYmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5h
dmlnYXRpb25TaWRlYmEKICAgICAgICAgYnJlYWtwb2ludE5hdmlnYXRpb25CYXIuYWRkTmF2aWdh
dGlvbkl0ZW0odGhpcy5fY3JlYXRlQnJlYWtwb2ludEJ1dHRvbik7CiAKICAgICAgICAgbGV0IGJy
ZWFrcG9pbnRzR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbYnJlYWtwb2ludHNS
b3ddKTsKLSAgICAgICAgbGV0IGJyZWFrcG9pbnRzU2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvbigiYnJlYWtwb2ludHMiLCBXSS5VSVN0cmluZygiQnJlYWtwb2ludHMiKSwgW2JyZWFrcG9p
bnRzR3JvdXBdLCBicmVha3BvaW50TmF2aWdhdGlvbkJhcldyYXBwZXIpOwotICAgICAgICB0aGlz
LmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYnJlYWtwb2ludHNTZWN0aW9uLmVsZW1l
bnQpOworICAgICAgICB0aGlzLl9icmVha3BvaW50c1NlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1Nl
Y3Rpb24oImJyZWFrcG9pbnRzIiwgV0kuVUlTdHJpbmcoIkJyZWFrcG9pbnRzIiksIFticmVha3Bv
aW50c0dyb3VwXSwgYnJlYWtwb2ludE5hdmlnYXRpb25CYXJXcmFwcGVyKTsKKyAgICAgICAgdGhp
cy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2JyZWFrcG9pbnRzU2VjdGlv
bi5lbGVtZW50KTsKIAogICAgICAgICB0aGlzLl9icmVha3BvaW50c0NvbnRlbnRUcmVlT3V0bGlu
ZS5hZGRFdmVudExpc3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50LkVsZW1lbnRBZGRlZCwgdGhp
cy5faGFuZGxlQnJlYWtwb2ludEVsZW1lbnRBZGRlZE9yUmVtb3ZlZCwgdGhpcyk7CiAgICAgICAg
IHRoaXMuX2JyZWFrcG9pbnRzQ29udGVudFRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0ku
VHJlZU91dGxpbmUuRXZlbnQuRWxlbWVudFJlbW92ZWQsIHRoaXMuX2hhbmRsZUJyZWFrcG9pbnRF
bGVtZW50QWRkZWRPclJlbW92ZWQsIHRoaXMpOwpAQCAtMzI5LDYgKzMyOSwyOSBAQCBXSS5EZWJ1
Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV0ku
TmF2aWdhdGlvblNpZGViYQogICAgICAgICByZXR1cm4gdGhpcy5fYWRkU2NyaXB0KHJlcHJlc2Vu
dGVkT2JqZWN0KTsKICAgICB9CiAKKyAgICBjcmVhdGVDb250ZW50VHJlZU91dGxpbmUob3B0aW9u
cyA9IHt9KQorICAgIHsKKyAgICAgICAgbGV0IHRyZWVPdXRsaW5lID0gc3VwZXIuY3JlYXRlQ29u
dGVudFRyZWVPdXRsaW5lKG9wdGlvbnMpCisKKyAgICAgICAgdHJlZU91dGxpbmUuYWRkRXZlbnRM
aXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50UmV2ZWFsZWQsIChldmVudCkgPT4g
eworICAgICAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS50cmVlRWxlbWVudDsK
KyAgICAgICAgICAgIGxldCBkZXRhaWxzU2VjdGlvbnMgPSBbdGhpcy5fcGF1c2VSZWFzb25TZWN0
aW9uLCB0aGlzLl9jYWxsU3RhY2tTZWN0aW9uLCB0aGlzLl9icmVha3BvaW50c1NlY3Rpb24sIHRo
aXMuX3NjcmlwdHNTZWN0aW9uXTsKKyAgICAgICAgICAgIGxldCBkZXRhaWxzU2VjdGlvbiA9IGRl
dGFpbHNTZWN0aW9ucy5maW5kKChkZXRhaWxzU2VjdGlvbikgPT4gZGV0YWlsc1NlY3Rpb24uZWxl
bWVudC5jb250YWlucyh0cmVlRWxlbWVudC5saXN0SXRlbUVsZW1lbnQpKTsKKyAgICAgICAgICAg
IGlmICghZGV0YWlsc1NlY3Rpb24pCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
ICAgICAvLyBSZXZlYWxpbmcgYSBUcmVlRWxlbWVudCBhdCB0aGUgc2Nyb2xsIGNvbnRhaW5lcidz
IHRvcG1vc3QgZWRnZSB3aXRoCisgICAgICAgICAgICAvLyBzY3JvbGxJbnRvVmlld0lmTmVlZGVk
IG1heSByZXN1bHQgaW4gdGhlIGVsZW1lbnQgYmVpbmcgY292ZXJlZCBieSB0aGUKKyAgICAgICAg
ICAgIC8vIERldGFpbHNTZWN0aW9uIGhlYWRlciwgd2hpY2ggdXNlcyBzdGlja3kgcG9zaXRpb25p
bmcuIERldGVjdCB0aGlzIGNhc2UsCisgICAgICAgICAgICAvLyBhbmQgYWRqdXN0IHRoZSBzaWRl
YmFyIGNvbnRlbnQncyBzY3JvbGwgcG9zaXRpb24gdG8gY29tcGVuc2F0ZS4KKyAgICAgICAgICAg
IGxldCBvZmZzZXQgPSBkZXRhaWxzU2VjdGlvbi5oZWFkZXJFbGVtZW50LnRvdGFsT2Zmc2V0Qm90
dG9tIC0gdHJlZUVsZW1lbnQubGlzdEl0ZW1FbGVtZW50LnRvdGFsT2Zmc2V0VG9wOworICAgICAg
ICAgICAgaWYgKG9mZnNldCA+IDApCisgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxFbGVtZW50
LnNjcm9sbEJ5KDAsIC1vZmZzZXQpOworICAgICAgICB9KTsKKworICAgICAgICByZXR1cm4gdHJl
ZU91dGxpbmU7CisgICAgfQorCiAgICAgLy8gUHJvdGVjdGVkCiAKICAgICBzYXZlU3RhdGVUb0Nv
b2tpZShjb29raWUpCkBAIC04NjIsNiArODg1LDEwIEBAIFdJLkRlYnVnZ2VyU2lkZWJhclBhbmVs
ID0gY2xhc3MgRGVidWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJh
CiAgICAgICAgIGxldCB0YXJnZXQgPSBldmVudC5kYXRhLnRhcmdldDsKICAgICAgICAgbGV0IHRy
ZWVFbGVtZW50ID0gdGhpcy5fZmluZFRocmVhZFRyZWVFbGVtZW50Rm9yVGFyZ2V0KHRhcmdldCk7
CiAgICAgICAgIHRyZWVFbGVtZW50LnJlZnJlc2goKTsKKworICAgICAgICBsZXQgYWN0aXZlQ2Fs
bEZyYW1lVHJlZUVsZW1lbnQgPSB0aGlzLl9jYWxsU3RhY2tUcmVlT3V0bGluZS5maW5kVHJlZUVs
ZW1lbnQoV0kuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZSk7CisgICAgICAgIGlmIChh
Y3RpdmVDYWxsRnJhbWVUcmVlRWxlbWVudCkKKyAgICAgICAgICAgIGFjdGl2ZUNhbGxGcmFtZVRy
ZWVFbGVtZW50LnJldmVhbCgpOwogICAgIH0KIAogICAgIF9kZWJ1Z2dlckFjdGl2ZUNhbGxGcmFt
ZURpZENoYW5nZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmpzCmluZGV4IGFhM2IxOGY3ODk2OGJiOWM0
ZWIzYWQ1ZjgwMDg3NDYwMGE0MjEwYzYuLjBhOTAyMmEwNzlhMjdjZjM2OWUzNDRiZjFhM2JkM2Ex
YWE5MjM4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RldGFpbHNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uLmpzCkBAIC02NSwxNSArNjUsOSBAQCBXSS5E
ZXRhaWxzU2VjdGlvbiA9IGNsYXNzIERldGFpbHNTZWN0aW9uIGV4dGVuZHMgV0kuT2JqZWN0CiAK
ICAgICAvLyBQdWJsaWMKIAotICAgIGdldCBlbGVtZW50KCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLl9lbGVtZW50OwotICAgIH0KLQotICAgIGdldCBpZGVudGlmaWVyKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9pZGVudGlmaWVyOwotICAgIH0KKyAgICBnZXQgZWxlbWVudCgp
IHsgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7IH0KKyAgICBnZXQgaGVhZGVyRWxlbWVudCgpIHsgcmV0
dXJuIHRoaXMuX2hlYWRlckVsZW1lbnQ7IH0KKyAgICBnZXQgaWRlbnRpZmllcigpIHsgcmV0dXJu
IHRoaXMuX2lkZW50aWZpZXI7IH0KIAogICAgIGdldCB0aXRsZSgpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmln
YXRpb25TaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwppbmRleCBjNWExYmZlMTRl
YWViNTg3N2FkYjVlNDdiMmY2NTc4ODRhOGFlNmZjLi41ZDVkMzA4NDY1MmM2ZjY3OGU0YzA5M2I4
ZWY0NDEzNzdhNTA3OWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNp
ZGViYXJQYW5lbC5qcwpAQCAtNDc0LDYgKzQ3NCwyOSBAQCBXSS5Tb3VyY2VzTmF2aWdhdGlvblNp
ZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuZHMg
VwogCiAgICAgLy8gUHJvdGVjdGVkCiAKKyAgICBjcmVhdGVDb250ZW50VHJlZU91dGxpbmUob3B0
aW9ucyA9IHt9KQorICAgIHsKKyAgICAgICAgbGV0IHRyZWVPdXRsaW5lID0gc3VwZXIuY3JlYXRl
Q29udGVudFRyZWVPdXRsaW5lKG9wdGlvbnMpCisKKyAgICAgICAgdHJlZU91dGxpbmUuYWRkRXZl
bnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50UmV2ZWFsZWQsIChldmVudCkg
PT4geworICAgICAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS50cmVlRWxlbWVu
dDsKKyAgICAgICAgICAgIGxldCBkZXRhaWxzU2VjdGlvbnMgPSBbdGhpcy5fcGF1c2VSZWFzb25T
ZWN0aW9uLCB0aGlzLl9jYWxsU3RhY2tTZWN0aW9uLCB0aGlzLl9icmVha3BvaW50c1NlY3Rpb25d
OworICAgICAgICAgICAgbGV0IGRldGFpbHNTZWN0aW9uID0gZGV0YWlsc1NlY3Rpb25zLmZpbmQo
KGRldGFpbHNTZWN0aW9uKSA9PiBkZXRhaWxzU2VjdGlvbi5lbGVtZW50LmNvbnRhaW5zKHRyZWVF
bGVtZW50Lmxpc3RJdGVtRWxlbWVudCkpOworICAgICAgICAgICAgaWYgKCFkZXRhaWxzU2VjdGlv
bikKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIC8vIFJldmVhbGluZyBh
IFRyZWVFbGVtZW50IGF0IHRoZSBzY3JvbGwgY29udGFpbmVyJ3MgdG9wbW9zdCBlZGdlIHdpdGgK
KyAgICAgICAgICAgIC8vIHNjcm9sbEludG9WaWV3SWZOZWVkZWQgbWF5IHJlc3VsdCBpbiB0aGUg
ZWxlbWVudCBiZWluZyBjb3ZlcmVkIGJ5IHRoZQorICAgICAgICAgICAgLy8gRGV0YWlsc1NlY3Rp
b24gaGVhZGVyLCB3aGljaCB1c2VzIHN0aWNreSBwb3NpdGlvbmluZy4gRGV0ZWN0IHRoaXMgY2Fz
ZSwKKyAgICAgICAgICAgIC8vIGFuZCBhZGp1c3QgdGhlIHNpZGViYXIgY29udGVudCdzIHNjcm9s
bCBwb3NpdGlvbiB0byBjb21wZW5zYXRlLgorICAgICAgICAgICAgbGV0IG9mZnNldCA9IGRldGFp
bHNTZWN0aW9uLmhlYWRlckVsZW1lbnQudG90YWxPZmZzZXRCb3R0b20gLSB0cmVlRWxlbWVudC5s
aXN0SXRlbUVsZW1lbnQudG90YWxPZmZzZXRUb3A7CisgICAgICAgICAgICBpZiAob2Zmc2V0ID4g
MCkKKyAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbEVsZW1lbnQuc2Nyb2xsQnkoMCwgLW9mZnNl
dCk7CisgICAgICAgIH0pOworCisgICAgICAgIHJldHVybiB0cmVlT3V0bGluZTsKKyAgICB9CisK
ICAgICByZXNldEZpbHRlcigpCiAgICAgewogICAgICAgICB0aGlzLl9yZXNvdXJjZVR5cGVTY29w
ZUJhci5yZXNldFRvRGVmYXVsdCgpOwpAQCAtMTcyOCw2ICsxNzUxLDEwIEBAIFdJLlNvdXJjZXNO
YXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFu
ZWwgZXh0ZW5kcyBXCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50KTsKICAgICAg
ICAgaWYgKHRyZWVFbGVtZW50KQogICAgICAgICAgICAgdHJlZUVsZW1lbnQucmVmcmVzaCgpOwor
CisgICAgICAgIGxldCBhY3RpdmVDYWxsRnJhbWVUcmVlRWxlbWVudCA9IHRoaXMuX2NhbGxTdGFj
a1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2Fs
bEZyYW1lKTsKKyAgICAgICAgaWYgKGFjdGl2ZUNhbGxGcmFtZVRyZWVFbGVtZW50KQorICAgICAg
ICAgICAgYWN0aXZlQ2FsbEZyYW1lVHJlZUVsZW1lbnQucmV2ZWFsKCk7CiAgICAgfQogCiAgICAg
X2hhbmRsZURlYnVnZ2VyQWN0aXZlQ2FsbEZyYW1lRGlkQ2hhbmdlKGV2ZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZUVsZW1lbnQu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlRWxlbWVu
dC5qcwppbmRleCA2M2MyN2I4ZjE2MDgwOTRhMzY0NzdlZTRmYTA0MmY3NTY2OWUxNjYxLi5mMzEy
Y2E0ODExZDE1MmUwYjgzYzNmYWFhNjY1NGQxMzhiN2Y3NDllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlRWxlbWVudC5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlRWxlbWVudC5qcwpA
QCAtNDg4LDYgKzQ4OCw5IEBAIFdJLlRyZWVFbGVtZW50ID0gY2xhc3MgVHJlZUVsZW1lbnQgZXh0
ZW5kcyBXSS5PYmplY3QKIAogICAgICAgICBpZiAodGhpcy5vbnJldmVhbCkKICAgICAgICAgICAg
IHRoaXMub25yZXZlYWwodGhpcyk7CisKKyAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUpCisg
ICAgICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5U
cmVlT3V0bGluZS5FdmVudC5FbGVtZW50UmV2ZWFsZWQsIHt0cmVlRWxlbWVudH0pOwogICAgIH0K
IAogICAgIHJldmVhbGVkKGlnbm9yZUhpZGRlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKaW5kZXggNjZlY2Q1
MmJiOGYzMzkxY2MzNzMyZjA4MDAxYmVkNmM0ZjQyZWM0MS4uOTcwOTgyZDNjZTliYjFkZWVlNGIz
MTMxMjc0N2NiYmU4ZjUyZTJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKQEAgLTExNTksNiArMTE1OSw3
IEBAIFdJLlRyZWVPdXRsaW5lLkV2ZW50ID0gewogICAgIEVsZW1lbnRBZGRlZDogU3ltYm9sKCJl
bGVtZW50LWFkZGVkIiksCiAgICAgRWxlbWVudERpZENoYW5nZTogU3ltYm9sKCJlbGVtZW50LWRp
ZC1jaGFuZ2UiKSwKICAgICBFbGVtZW50UmVtb3ZlZDogU3ltYm9sKCJlbGVtZW50LXJlbW92ZWQi
KSwKKyAgICBFbGVtZW50UmV2ZWFsZWQ6IFN5bWJvbCgiZWxlbWVudC1yZXZlYWxlZCIpLAogICAg
IEVsZW1lbnRDbGlja2VkOiBTeW1ib2woImVsZW1lbnQtY2xpY2tlZCIpLAogICAgIEVsZW1lbnRE
aXNjbG9zdXJlRGlkQ2hhbmdlZDogU3ltYm9sKCJlbGVtZW50LWRpc2Nsb3N1cmUtZGlkLWNoYW5n
ZSIpLAogICAgIEVsZW1lbnRWaXNpYmlsaXR5RGlkQ2hhbmdlOiBTeW1ib2woImVsZW1lbnQtdmlz
YmlsaXR5LWRpZC1jaGFuZ2UiKSwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371166</attachid>
            <date>2019-06-02 15:39:47 -0700</date>
            <delta_ts>2019-06-02 17:05:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-198228-20190602153947.patch</filename>
            <type>text/plain</type>
            <size>10617</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA1
MGVhNDdjODJhNmE1YTA5MTJiNmNjMTlhNGZlMWEwNzI0OGI4NjY5Li4zYTVjNjFlZWEwMGI2ZjM3
OTM1MzljMjMxOTBlODg0NDVhZjhmZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAxOS0wNi0wMiAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRGVidWdnZXI6IHNpZGViYXIgc2hvdWxkIGFsd2F5
cyByZXZlYWwgYWN0aXZlIGNhbGwgZnJhbWUgd2hlbiBoaXR0aW5nIGEgYnJlYWtwb2ludAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MjI4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NjcxOTQ0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZp
biBSb3Vzc28uCisKKyAgICAgICAgUmV2ZWFsIHRoZSBhY3RpdmUgY2FsbCBmcmFtZSBUcmVlRWxl
bWVudCB3aGVuIGNhbGwgZnJhbWVzIGNoYW5nZS4gUmVmcmVzaGluZworICAgICAgICB0aGUgY3Vy
cmVudCB0YXJnZXQncyBUaHJlYWRUcmVlRWxlbWVudCBjaGlsZHJlbiBpcyBpbnN1ZmZpY2llbnQs
IHNpbmNlCisgICAgICAgIHRoZSBzaWRlYmFyIHBhbmVsIGNvbnRlbnQgbWF5IGhhdmUgYmVlbiBz
Y3JvbGxlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gaW50cm9kdWNlcyBhIHdvcmthcm91
bmQgdG8gcHJldmVudCB0aGUgRGV0YWlsc1NlY3Rpb24gaGVhZGVyCisgICAgICAgIGVsZW1lbnQs
IHdoaWNoIGhhcyBzdGlja3kgcG9zaXRpb25pbmcsIGZyb20gY292ZXJpbmcgYSByZXZlYWxlZCBU
cmVlRWxlbWVudC4KKyAgICAgICAgVGhpcyBjYW4gYmUgdGhlIGNhc2Ugd2hlbiB0aGUgVHJlZUVs
ZW1lbnQgYmVpbmcgcmV2ZWFsZWQgaXMgYXQgdGhlIHRvcG1vc3QgZWRnZQorICAgICAgICBvZiB0
aGUgc2Nyb2xsZWQgY29udGVudCBlbGVtZW50LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9C
YXNlL1V0aWxpdGllcy5qczoKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdn
ZXJTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXSS5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90
b3R5cGUuY3JlYXRlQ29udGVudFRyZWVPdXRsaW5lKToKKyAgICAgICAgKFdJLkRlYnVnZ2VyU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5fZGVidWdnZXJDYWxsRnJhbWVzRGlkQ2hhbmdlKToKKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uanM6CisgICAgICAgIChX
SS5EZXRhaWxzU2VjdGlvbi5wcm90b3R5cGUuZ2V0IGVsZW1lbnQpOgorICAgICAgICAoV0kuRGV0
YWlsc1NlY3Rpb24ucHJvdG90eXBlLmdldCBoZWFkZXJFbGVtZW50KToKKyAgICAgICAgKFdJLkRl
dGFpbHNTZWN0aW9uLnByb3RvdHlwZS5nZXQgaWRlbnRpZmllcik6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzOgorICAgICAg
ICAoV0kuU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90eXBlLmNyZWF0ZUNvbnRl
bnRUcmVlT3V0bGluZSk6CisgICAgICAgIChXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5l
bC5wcm90b3R5cGUuX2hhbmRsZURlYnVnZ2VyQ2FsbEZyYW1lc0RpZENoYW5nZSk6CisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuVHJl
ZUVsZW1lbnQucHJvdG90eXBlLnJldmVhbCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9UcmVlT3V0bGluZS5qczoKKwogMjAxOS0wNS0zMSAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2ls
eWV2QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDU1MgQ2hhbmdlczogbW9k
aWZpY2F0aW9ucyBhcmVuJ3Qgc2hhcmVkIGZvciBydWxlcyB0aGF0IG1hdGNoIG11bHRpcGxlIGVs
ZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL1V0aWxpdGllcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvVXRpbGl0aWVzLmpzCmluZGV4IGViZDcxZTA0MjgwNmUzZWVjODBkZmI5NmY2ZDRiMDkzNTgy
MDI4OWQuLmIwYjI0NDZkNDkwNzA5NDA2ODY2ZmI4MjdkN2VlMjc3MDZhOWZhMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVz
LmpzCkBAIC0zODgsNiArMzg4LDE0IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbGVtZW50LnBy
b3RvdHlwZSwgInRvdGFsT2Zmc2V0VG9wIiwKICAgICB9CiB9KTsKIAorT2JqZWN0LmRlZmluZVBy
b3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCAidG90YWxPZmZzZXRCb3R0b20iLAoreworICAgIGdl
dCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5i
b3R0b207CisgICAgfQorfSk7CisKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3Rv
dHlwZSwgInJlbW92ZUNoaWxkcmVuIiwKIHsKICAgICB2YWx1ZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5l
bC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2Vy
U2lkZWJhclBhbmVsLmpzCmluZGV4IDhkYzIxNzU2NTAzYmQ2MDNmOGU3MWY5OTkyYmJiNDlmMzQx
NDE2N2YuLjliYjZhNjg0ODVlOGZiY2RkZDVlNTYwNzQyZTVkNzYxMDc1ZDBlZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lk
ZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzCkBAIC0xNjEsOCArMTYxLDggQEAgV0kuRGVidWdn
ZXJTaWRlYmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5h
dmlnYXRpb25TaWRlYmEKICAgICAgICAgYnJlYWtwb2ludE5hdmlnYXRpb25CYXIuYWRkTmF2aWdh
dGlvbkl0ZW0odGhpcy5fY3JlYXRlQnJlYWtwb2ludEJ1dHRvbik7CiAKICAgICAgICAgbGV0IGJy
ZWFrcG9pbnRzR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbYnJlYWtwb2ludHNS
b3ddKTsKLSAgICAgICAgbGV0IGJyZWFrcG9pbnRzU2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvbigiYnJlYWtwb2ludHMiLCBXSS5VSVN0cmluZygiQnJlYWtwb2ludHMiKSwgW2JyZWFrcG9p
bnRzR3JvdXBdLCBicmVha3BvaW50TmF2aWdhdGlvbkJhcldyYXBwZXIpOwotICAgICAgICB0aGlz
LmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYnJlYWtwb2ludHNTZWN0aW9uLmVsZW1l
bnQpOworICAgICAgICB0aGlzLl9icmVha3BvaW50c1NlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1Nl
Y3Rpb24oImJyZWFrcG9pbnRzIiwgV0kuVUlTdHJpbmcoIkJyZWFrcG9pbnRzIiksIFticmVha3Bv
aW50c0dyb3VwXSwgYnJlYWtwb2ludE5hdmlnYXRpb25CYXJXcmFwcGVyKTsKKyAgICAgICAgdGhp
cy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2JyZWFrcG9pbnRzU2VjdGlv
bi5lbGVtZW50KTsKIAogICAgICAgICB0aGlzLl9icmVha3BvaW50c0NvbnRlbnRUcmVlT3V0bGlu
ZS5hZGRFdmVudExpc3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50LkVsZW1lbnRBZGRlZCwgdGhp
cy5faGFuZGxlQnJlYWtwb2ludEVsZW1lbnRBZGRlZE9yUmVtb3ZlZCwgdGhpcyk7CiAgICAgICAg
IHRoaXMuX2JyZWFrcG9pbnRzQ29udGVudFRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0ku
VHJlZU91dGxpbmUuRXZlbnQuRWxlbWVudFJlbW92ZWQsIHRoaXMuX2hhbmRsZUJyZWFrcG9pbnRF
bGVtZW50QWRkZWRPclJlbW92ZWQsIHRoaXMpOwpAQCAtMzI5LDYgKzMyOSwyOSBAQCBXSS5EZWJ1
Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV0ku
TmF2aWdhdGlvblNpZGViYQogICAgICAgICByZXR1cm4gdGhpcy5fYWRkU2NyaXB0KHJlcHJlc2Vu
dGVkT2JqZWN0KTsKICAgICB9CiAKKyAgICBjcmVhdGVDb250ZW50VHJlZU91dGxpbmUob3B0aW9u
cyA9IHt9KQorICAgIHsKKyAgICAgICAgbGV0IHRyZWVPdXRsaW5lID0gc3VwZXIuY3JlYXRlQ29u
dGVudFRyZWVPdXRsaW5lKG9wdGlvbnMpCisKKyAgICAgICAgdHJlZU91dGxpbmUuYWRkRXZlbnRM
aXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50UmV2ZWFsZWQsIChldmVudCkgPT4g
eworICAgICAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5lbGVtZW50OworICAg
ICAgICAgICAgbGV0IGRldGFpbHNTZWN0aW9ucyA9IFt0aGlzLl9wYXVzZVJlYXNvblNlY3Rpb24s
IHRoaXMuX2NhbGxTdGFja1NlY3Rpb24sIHRoaXMuX2JyZWFrcG9pbnRzU2VjdGlvbiwgdGhpcy5f
c2NyaXB0c1NlY3Rpb25dOworICAgICAgICAgICAgbGV0IGRldGFpbHNTZWN0aW9uID0gZGV0YWls
c1NlY3Rpb25zLmZpbmQoKGRldGFpbHNTZWN0aW9uKSA9PiBkZXRhaWxzU2VjdGlvbi5lbGVtZW50
LmNvbnRhaW5zKHRyZWVFbGVtZW50Lmxpc3RJdGVtRWxlbWVudCkpOworICAgICAgICAgICAgaWYg
KCFkZXRhaWxzU2VjdGlvbikKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IC8vIFJldmVhbGluZyBhIFRyZWVFbGVtZW50IGF0IHRoZSBzY3JvbGwgY29udGFpbmVyJ3MgdG9w
bW9zdCBlZGdlIHdpdGgKKyAgICAgICAgICAgIC8vIHNjcm9sbEludG9WaWV3SWZOZWVkZWQgbWF5
IHJlc3VsdCBpbiB0aGUgZWxlbWVudCBiZWluZyBjb3ZlcmVkIGJ5IHRoZQorICAgICAgICAgICAg
Ly8gRGV0YWlsc1NlY3Rpb24gaGVhZGVyLCB3aGljaCB1c2VzIHN0aWNreSBwb3NpdGlvbmluZy4g
RGV0ZWN0IHRoaXMgY2FzZSwKKyAgICAgICAgICAgIC8vIGFuZCBhZGp1c3QgdGhlIHNpZGViYXIg
Y29udGVudCdzIHNjcm9sbCBwb3NpdGlvbiB0byBjb21wZW5zYXRlLgorICAgICAgICAgICAgbGV0
IG9mZnNldCA9IGRldGFpbHNTZWN0aW9uLmhlYWRlckVsZW1lbnQudG90YWxPZmZzZXRCb3R0b20g
LSB0cmVlRWxlbWVudC5saXN0SXRlbUVsZW1lbnQudG90YWxPZmZzZXRUb3A7CisgICAgICAgICAg
ICBpZiAob2Zmc2V0ID4gMCkKKyAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbEVsZW1lbnQuc2Ny
b2xsQnkoMCwgLW9mZnNldCk7CisgICAgICAgIH0pOworCisgICAgICAgIHJldHVybiB0cmVlT3V0
bGluZTsKKyAgICB9CisKICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIHNhdmVTdGF0ZVRvQ29va2ll
KGNvb2tpZSkKQEAgLTg2Miw2ICs4ODUsMTAgQEAgV0kuRGVidWdnZXJTaWRlYmFyUGFuZWwgPSBj
bGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25TaWRlYmEKICAg
ICAgICAgbGV0IHRhcmdldCA9IGV2ZW50LmRhdGEudGFyZ2V0OwogICAgICAgICBsZXQgdHJlZUVs
ZW1lbnQgPSB0aGlzLl9maW5kVGhyZWFkVHJlZUVsZW1lbnRGb3JUYXJnZXQodGFyZ2V0KTsKICAg
ICAgICAgdHJlZUVsZW1lbnQucmVmcmVzaCgpOworCisgICAgICAgIGxldCBhY3RpdmVDYWxsRnJh
bWVUcmVlRWxlbWVudCA9IHRoaXMuX2NhbGxTdGFja1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVu
dChXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lKTsKKyAgICAgICAgaWYgKGFjdGl2
ZUNhbGxGcmFtZVRyZWVFbGVtZW50KQorICAgICAgICAgICAgYWN0aXZlQ2FsbEZyYW1lVHJlZUVs
ZW1lbnQucmV2ZWFsKCk7CiAgICAgfQogCiAgICAgX2RlYnVnZ2VyQWN0aXZlQ2FsbEZyYW1lRGlk
Q2hhbmdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RldGFpbHNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uanMKaW5kZXggYWEzYjE4Zjc4OTY4YmI5YzRlYjNh
ZDVmODAwODc0NjAwYTQyMTBjNi4uMGE5MDIyYTA3OWEyN2NmMzY5ZTM0NGJmMWEzYmQzYTFhYTky
MzgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvRGV0YWlsc1NlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb24uanMKQEAgLTY1LDE1ICs2NSw5IEBAIFdJLkRldGFp
bHNTZWN0aW9uID0gY2xhc3MgRGV0YWlsc1NlY3Rpb24gZXh0ZW5kcyBXSS5PYmplY3QKIAogICAg
IC8vIFB1YmxpYwogCi0gICAgZ2V0IGVsZW1lbnQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMuX2VsZW1lbnQ7Ci0gICAgfQotCi0gICAgZ2V0IGlkZW50aWZpZXIoKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIHRoaXMuX2lkZW50aWZpZXI7Ci0gICAgfQorICAgIGdldCBlbGVtZW50KCkgeyBy
ZXR1cm4gdGhpcy5fZWxlbWVudDsgfQorICAgIGdldCBoZWFkZXJFbGVtZW50KCkgeyByZXR1cm4g
dGhpcy5faGVhZGVyRWxlbWVudDsgfQorICAgIGdldCBpZGVudGlmaWVyKCkgeyByZXR1cm4gdGhp
cy5faWRlbnRpZmllcjsgfQogCiAgICAgZ2V0IHRpdGxlKCkKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlv
blNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCmluZGV4IGM1YTFiZmUxNGVhZWI1
ODc3YWRiNWU0N2IyZjY1Nzg4NGE4YWU2ZmMuLjhlOWRkMTRiZjFjYzUzZmQ4ZTJhMjIwNGExNDBl
NGRjYTdhMGM3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJh
clBhbmVsLmpzCkBAIC00NzQsNiArNDc0LDI5IEBAIFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJh
clBhbmVsID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXCiAK
ICAgICAvLyBQcm90ZWN0ZWQKIAorICAgIGNyZWF0ZUNvbnRlbnRUcmVlT3V0bGluZShvcHRpb25z
ID0ge30pCisgICAgeworICAgICAgICBsZXQgdHJlZU91dGxpbmUgPSBzdXBlci5jcmVhdGVDb250
ZW50VHJlZU91dGxpbmUob3B0aW9ucykKKworICAgICAgICB0cmVlT3V0bGluZS5hZGRFdmVudExp
c3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50LkVsZW1lbnRSZXZlYWxlZCwgKGV2ZW50KSA9PiB7
CisgICAgICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBldmVudC5kYXRhLmVsZW1lbnQ7CisgICAg
ICAgICAgICBsZXQgZGV0YWlsc1NlY3Rpb25zID0gW3RoaXMuX3BhdXNlUmVhc29uU2VjdGlvbiwg
dGhpcy5fY2FsbFN0YWNrU2VjdGlvbiwgdGhpcy5fYnJlYWtwb2ludHNTZWN0aW9uXTsKKyAgICAg
ICAgICAgIGxldCBkZXRhaWxzU2VjdGlvbiA9IGRldGFpbHNTZWN0aW9ucy5maW5kKChkZXRhaWxz
U2VjdGlvbikgPT4gZGV0YWlsc1NlY3Rpb24uZWxlbWVudC5jb250YWlucyh0cmVlRWxlbWVudC5s
aXN0SXRlbUVsZW1lbnQpKTsKKyAgICAgICAgICAgIGlmICghZGV0YWlsc1NlY3Rpb24pCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAvLyBSZXZlYWxpbmcgYSBUcmVlRWxl
bWVudCBhdCB0aGUgc2Nyb2xsIGNvbnRhaW5lcidzIHRvcG1vc3QgZWRnZSB3aXRoCisgICAgICAg
ICAgICAvLyBzY3JvbGxJbnRvVmlld0lmTmVlZGVkIG1heSByZXN1bHQgaW4gdGhlIGVsZW1lbnQg
YmVpbmcgY292ZXJlZCBieSB0aGUKKyAgICAgICAgICAgIC8vIERldGFpbHNTZWN0aW9uIGhlYWRl
ciwgd2hpY2ggdXNlcyBzdGlja3kgcG9zaXRpb25pbmcuIERldGVjdCB0aGlzIGNhc2UsCisgICAg
ICAgICAgICAvLyBhbmQgYWRqdXN0IHRoZSBzaWRlYmFyIGNvbnRlbnQncyBzY3JvbGwgcG9zaXRp
b24gdG8gY29tcGVuc2F0ZS4KKyAgICAgICAgICAgIGxldCBvZmZzZXQgPSBkZXRhaWxzU2VjdGlv
bi5oZWFkZXJFbGVtZW50LnRvdGFsT2Zmc2V0Qm90dG9tIC0gdHJlZUVsZW1lbnQubGlzdEl0ZW1F
bGVtZW50LnRvdGFsT2Zmc2V0VG9wOworICAgICAgICAgICAgaWYgKG9mZnNldCA+IDApCisgICAg
ICAgICAgICAgICAgdGhpcy5zY3JvbGxFbGVtZW50LnNjcm9sbEJ5KDAsIC1vZmZzZXQpOworICAg
ICAgICB9KTsKKworICAgICAgICByZXR1cm4gdHJlZU91dGxpbmU7CisgICAgfQorCiAgICAgcmVz
ZXRGaWx0ZXIoKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVzb3VyY2VUeXBlU2NvcGVCYXIucmVz
ZXRUb0RlZmF1bHQoKTsKQEAgLTE3MjgsNiArMTc1MSwxMCBAQCBXSS5Tb3VyY2VzTmF2aWdhdGlv
blNpZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVu
ZHMgVwogICAgICAgICBjb25zb2xlLmFzc2VydCh0cmVlRWxlbWVudCk7CiAgICAgICAgIGlmICh0
cmVlRWxlbWVudCkKICAgICAgICAgICAgIHRyZWVFbGVtZW50LnJlZnJlc2goKTsKKworICAgICAg
ICBsZXQgYWN0aXZlQ2FsbEZyYW1lVHJlZUVsZW1lbnQgPSB0aGlzLl9jYWxsU3RhY2tUcmVlT3V0
bGluZS5maW5kVHJlZUVsZW1lbnQoV0kuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZSk7
CisgICAgICAgIGlmIChhY3RpdmVDYWxsRnJhbWVUcmVlRWxlbWVudCkKKyAgICAgICAgICAgIGFj
dGl2ZUNhbGxGcmFtZVRyZWVFbGVtZW50LnJldmVhbCgpOwogICAgIH0KIAogICAgIF9oYW5kbGVE
ZWJ1Z2dlckFjdGl2ZUNhbGxGcmFtZURpZENoYW5nZShldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVFbGVtZW50LmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZUVsZW1lbnQuanMKaW5k
ZXggNjNjMjdiOGYxNjA4MDk0YTM2NDc3ZWU0ZmEwNDJmNzU2NjllMTY2MS4uZjZhZTA0NjlkYzBi
MTkzZGFhOWIyMmNlZTc1ZjVlZmMzMzc3NzE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZUVsZW1lbnQuanMKQEAgLTQ4OCw2
ICs0ODgsOSBAQCBXSS5UcmVlRWxlbWVudCA9IGNsYXNzIFRyZWVFbGVtZW50IGV4dGVuZHMgV0ku
T2JqZWN0CiAKICAgICAgICAgaWYgKHRoaXMub25yZXZlYWwpCiAgICAgICAgICAgICB0aGlzLm9u
cmV2ZWFsKHRoaXMpOworCisgICAgICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lKQorICAgICAgICAg
ICAgdGhpcy50cmVlT3V0bGluZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuVHJlZU91dGxp
bmUuRXZlbnQuRWxlbWVudFJldmVhbGVkLCB7ZWxlbWVudDogdGhpc30pOwogICAgIH0KIAogICAg
IHJldmVhbGVkKGlnbm9yZUhpZGRlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKaW5kZXggNjZlY2Q1MmJiOGYz
MzkxY2MzNzMyZjA4MDAxYmVkNmM0ZjQyZWM0MS4uOTcwOTgyZDNjZTliYjFkZWVlNGIzMTMxMjc0
N2NiYmU4ZjUyZTJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKQEAgLTExNTksNiArMTE1OSw3IEBAIFdJ
LlRyZWVPdXRsaW5lLkV2ZW50ID0gewogICAgIEVsZW1lbnRBZGRlZDogU3ltYm9sKCJlbGVtZW50
LWFkZGVkIiksCiAgICAgRWxlbWVudERpZENoYW5nZTogU3ltYm9sKCJlbGVtZW50LWRpZC1jaGFu
Z2UiKSwKICAgICBFbGVtZW50UmVtb3ZlZDogU3ltYm9sKCJlbGVtZW50LXJlbW92ZWQiKSwKKyAg
ICBFbGVtZW50UmV2ZWFsZWQ6IFN5bWJvbCgiZWxlbWVudC1yZXZlYWxlZCIpLAogICAgIEVsZW1l
bnRDbGlja2VkOiBTeW1ib2woImVsZW1lbnQtY2xpY2tlZCIpLAogICAgIEVsZW1lbnREaXNjbG9z
dXJlRGlkQ2hhbmdlZDogU3ltYm9sKCJlbGVtZW50LWRpc2Nsb3N1cmUtZGlkLWNoYW5nZSIpLAog
ICAgIEVsZW1lbnRWaXNpYmlsaXR5RGlkQ2hhbmdlOiBTeW1ib2woImVsZW1lbnQtdmlzYmlsaXR5
LWRpZC1jaGFuZ2UiKSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>