<?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>122927</bug_id>
          
          <creation_ts>2013-10-16 16:48:49 -0700</creation_ts>
          <short_desc>Web Inspector: CSS Regions: When a flow is clicked the content of flow needs to be displayed</short_desc>
          <delta_ts>2013-11-06 17:13:43 -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>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>
          <dependson>123424</dependson>
          <blocked>57312</blocked>
    
    <blocked>122760</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandru Chiculita">achicu</reporter>
          <assigned_to name="Alexandru Chiculita">achicu</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>940582</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-10-16 16:48:49 -0700</bug_when>
    <thetext>Implement the content view for the flows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940583</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-10-16 16:49:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/15247057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947387</commentid>
    <comment_count>2</comment_count>
      <attachid>216090</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-11-05 15:38:56 -0800</bug_when>
    <thetext>Created attachment 216090
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947395</commentid>
    <comment_count>3</comment_count>
      <attachid>216090</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-05 16:15:34 -0800</bug_when>
    <thetext>Comment on attachment 216090
Patch V1

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

r=me, though I&apos;d like to see a screenshot attached to the bug. Are there any style concerns about the spacing / gap between multiple DOM Tree Outlines?

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeView.js:15
&gt; + * 

Nit: Trailing whitespace here (I only know cause it showed up in other files you added).

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeView.js:44
&gt; +    contentFlow.addEventListener(WebInspector.ContentFlow.Event.ContentNodeWasAdded, this._onContentNodeWasAdded, this);
&gt; +    contentFlow.addEventListener(WebInspector.ContentFlow.Event.ContentNodeWasRemoved, this._onContentNodeWasRemoved, this);

Style: The &quot;_onFoo&quot; methods can just be &quot;_foo&quot;. We tend to avoid the &quot;on&quot; where possible. Currently only really old code (DataGrid, TreeElement) have that naming.

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeView.js:50
&gt; +    constructor: WebInspector.ContentFlowTreeView,

Style: Recent change! We are going to start putting __proto__ here, after constructor. For example:

    constructor: WebInspector.ContentFlowTreeView,
    __proto__: WebInspector.ContentView.prototype,

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeView.js:91
&gt; +            this._nodesMap[id].setVisible(true, WebInspector.isConsoleFocused());

Nit: Stash &quot;isConsoleFocused&quot; into a local variable outside the for loop to prevent potentially calling it multiple times. This is also a good opportunity to name it after the action, &quot;var omitFocus = …&quot;.

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeView.js:104
&gt; +        this.representedObject.removeEventListener(WebInspector.ContentFlow.Event.ContentNodeWasAdded, this._onContentNodeWasAdded, this);
&gt; +        this.representedObject.removeEventListener(WebInspector.ContentFlow.Event.ContentNodeWasRemoved, this._onContentNodeWasRemoved, this);

If you update the function names, be sure to update them here too!

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeView.js:123
&gt; +        this._selectedTreeElement = selectedTreeElement;
&gt; +        if (selectedTreeElement)
&gt; +            ConsoleAgent.addInspectedNode(selectedTreeElement.representedObject.id);

Hmm, we may need to be smarter about this. I&apos;m imagining this scenario:

    1. User opens the inspector by inspecting &lt;body&gt;
      -&gt; $0 = &lt;body&gt;
    2. User opens a ContentFlowTreeView with &lt;div id=&quot;foo&quot;&gt; selected
      -&gt; $0 = &lt;div id=&quot;foo&quot;&gt;, $1 = &lt;body&gt;
    3. User switches back to the DOM Tree view
      -&gt; no change
    4. User sees &lt;body&gt; selected in the DOM Tree view and evaluates &quot;$0&quot; in the JS Console
      =&gt; unexpectedly gets &lt;div id=&quot;foo&quot;&gt;, expected &lt;body&gt;

Does that sound like a problem?

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeView.js:146
&gt; +        this._nodesMap[node.id] = contentNodeOutline;

Style: Please add a newline before and after this line. It helps visually separate the different tasks being performed.

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeView.js:156
&gt; +        for (var i = 0; i &lt; contentNodes.length; ++i) {
&gt; +            var contentNodeOutline = this._createContentNodeTree(contentNodes[i]);
&gt; +            this.element.appendChild(contentNodeOutline.element);
&gt; +        }

You could be the first user of for..of loops in the inspector! Totally optional of course (but certain a cool factor)

    for (var contentNode of contentNodes) {
       ...
    }

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeView.js:174
&gt; +        var contentNodeOutline = this._nodesMap[event.data.node.id];
&gt; +        contentNodeOutline.close();
&gt; +        contentNodeOutline.element.remove();

You should delete the node map entry to avoid leaking it and looping over it in the loops above:

    delete this._nodesMap[event.data.node.id];</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947404</commentid>
    <comment_count>4</comment_count>
      <attachid>216090</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-11-05 16:32:10 -0800</bug_when>
    <thetext>Comment on attachment 216090
Patch V1

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

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeView.js:30
&gt; +WebInspector.ContentFlowTreeView = function(contentFlow)

We like to keep the base class name as the suffix. So this would be WebInspector.ContentFlowTreeContentView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947410</commentid>
    <comment_count>5</comment_count>
      <attachid>216090</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-11-05 16:42:54 -0800</bug_when>
    <thetext>Comment on attachment 216090
Patch V1

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

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeView.js:39
&gt; +    // Map of contentNode ids to DOMTreeOutline objects.
&gt; +    this._nodesMap = {};

You should consider using Map.

this._nodesMap = new Map;

It will requite using .get() and .set() instead of [] though.

Going forward we would like to use Map when we know it is a map.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947413</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-05 16:47:10 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 216090 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=216090&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeView.js:39
&gt; &gt; +    // Map of contentNode ids to DOMTreeOutline objects.
&gt; &gt; +    this._nodesMap = {};
&gt; 
&gt; You should consider using Map.
&gt; 
&gt; this._nodesMap = new Map;
&gt; 
&gt; It will requite using .get() and .set() instead of [] though.
&gt; 
&gt; Going forward we would like to use Map when we know it is a map.

Note to iterate over a Map type, there is Map.prototype.forEach. You cannot use for..in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947781</commentid>
    <comment_count>7</comment_count>
      <attachid>216191</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-11-06 10:50:46 -0800</bug_when>
    <thetext>Created attachment 216191
Screenshot 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947784</commentid>
    <comment_count>8</comment_count>
      <attachid>216192</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-11-06 10:51:24 -0800</bug_when>
    <thetext>Created attachment 216192
Screenshot 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947793</commentid>
    <comment_count>9</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-11-06 11:08:12 -0800</bug_when>
    <thetext>Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947820</commentid>
    <comment_count>10</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-11-06 11:54:00 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Nice!

I&apos;ve created a test page to play with the code http://jsfiddle.net/achicu/D356p/. I need to fix https://bugs.webkit.org/show_bug.cgi?id=123577.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947825</commentid>
    <comment_count>11</comment_count>
      <attachid>216199</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-11-06 12:05:54 -0800</bug_when>
    <thetext>Created attachment 216199
Patch for landing

I&apos;ve incorporated the feedback and I&apos;ve added a new fixme for the selected node ConsoleAgent $n issue.

I didn&apos;t see any issues with the margins/padding of the tree outline.

Joe, let me know if you need to review this again, otherwise please update the cq+ flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947837</commentid>
    <comment_count>12</comment_count>
      <attachid>216199</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-11-06 12:19:43 -0800</bug_when>
    <thetext>Comment on attachment 216199
Patch for landing

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

Looking good. One question:

&gt; Source/WebInspectorUI/UserInterface/DOMTreeElement.js:486
&gt; +        this.treeOutline.selectDOMNode(null);

Does this cause excess work? Will the UI flash any?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947863</commentid>
    <comment_count>13</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-11-06 13:08:05 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 216199 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=216199&amp;action=review
&gt; 
&gt; Looking good. One question:
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/DOMTreeElement.js:486
&gt; &gt; +        this.treeOutline.selectDOMNode(null);
&gt; 
&gt; Does this cause excess work? Will the UI flash any?

It will basically just set the this._selectedDOMNode to null and invoke the SelectedNodeChanged handlers. 

The handlers for SelectedNodeChanged will trigger SelectionPathComponentsDidChange twice. That&apos;s once for null on the old tree and again with non-null for the new tree. I&apos;ve tracked that one down, the update of the NavigationBar happens on a timer. It means that the layout is only updated once using the last value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947864</commentid>
    <comment_count>14</comment_count>
      <attachid>216199</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-06 13:09:59 -0800</bug_when>
    <thetext>Comment on attachment 216199
Patch for landing

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

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeContentView.js:50
&gt; +

Nit, you can remove this blank line. (I updated the wiki page)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947865</commentid>
    <comment_count>15</comment_count>
      <attachid>216199</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-06 13:10:59 -0800</bug_when>
    <thetext>Comment on attachment 216199
Patch for landing

Rejecting attachment 216199 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 216199, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ntentView.js
patching file Source/WebInspectorUI/UserInterface/DOMTreeElement.js
patching file Source/WebInspectorUI/UserInterface/DOMTreeOutline.js
patching file Source/WebInspectorUI/UserInterface/Main.html
patching file Source/WebInspectorUI/UserInterface/Main.js
patching file Source/WebInspectorUI/UserInterface/ResourceSidebarPanel.js

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Joseph Pecoraro&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/22498018</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947890</commentid>
    <comment_count>16</comment_count>
      <attachid>216217</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-11-06 13:38:18 -0800</bug_when>
    <thetext>Created attachment 216217
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947909</commentid>
    <comment_count>17</comment_count>
      <attachid>216217</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-06 14:06:49 -0800</bug_when>
    <thetext>Comment on attachment 216217
Patch for landing

Clearing flags on attachment: 216217

Committed r158788: &lt;http://trac.webkit.org/changeset/158788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947910</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-06 14:06:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948003</commentid>
    <comment_count>19</comment_count>
      <attachid>216217</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-06 17:13:43 -0800</bug_when>
    <thetext>Comment on attachment 216217
Patch for landing

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

&gt; Source/WebInspectorUI/UserInterface/ContentFlowTreeContentView.js:39
&gt; +    this._nodesMap = new Map();

Style: Here is another one for the Style guide.  No () in constructors if not necessary. This could be:

    this._nodesMap = new Map;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216090</attachid>
            <date>2013-11-05 15:38:56 -0800</date>
            <delta_ts>2013-11-06 12:05:54 -0800</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug122927.v1.patch</filename>
            <type>text/plain</type>
            <size>15649</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDhjY2U2MzguLmVjNGJlMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEzLTExLTA1ICBBbGV4YW5kcnUgQ2hp
Y3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDU1Mg
UmVnaW9uczogV2hlbiBhIGZsb3cgaXMgY2xpY2tlZCB0aGUgY29udGVudCBvZiBmbG93IG5lZWRz
IHRvIGJlIGRpc3BsYXllZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIyOTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ29udGVudEZsb3dUcmVlVmlldyBpcyBub3cgdXNlZCB0byBkaXNwbGF5IHRoZSBj
b250ZW50IG5vZGVzIG9mIGEgQ29udGVudEZsb3cuIEl0IGlzCisgICAgICAgIHZlcnkgc2ltaWxh
ciB0byB0aGUgRE9NVHJlZUNvbnRlbnRWaWV3IGNsYXNzLCBidXQgY2FuIGhhbmRsZSBtdWx0aXBs
ZSByb290IG5vZGVzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250ZW50Rmxvd1RyZWVW
aWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1RyZWVWaWV3
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1RyZWVWaWV3LnByb3RvdHlwZS5n
ZXQgc2VsZWN0aW9uUGF0aENvbXBvbmVudHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRl
bnRGbG93VHJlZVZpZXcucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29udGVudEZsb3dUcmVlVmlldy5wcm90b3R5cGUuc2hvd24pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbnRlbnRGbG93VHJlZVZpZXcucHJvdG90eXBlLmhpZGRlbik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVlVmlldy5wcm90b3R5cGUuY2xvc2VkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1RyZWVWaWV3LnByb3RvdHlwZS5fc2VsZWN0
ZWROb2RlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1RyZWVW
aWV3LnByb3RvdHlwZS5fcGF0aENvbXBvbmVudFNlbGVjdGVkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db250ZW50Rmxvd1RyZWVWaWV3LnByb3RvdHlwZS5fY3JlYXRlQ29udGVudE5vZGVUcmVl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1RyZWVWaWV3LnByb3RvdHlwZS5f
Y3JlYXRlQ29udGVudFRyZWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1Ry
ZWVWaWV3LnByb3RvdHlwZS5fb25Db250ZW50Tm9kZVdhc0FkZGVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db250ZW50Rmxvd1RyZWVWaWV3LnByb3RvdHlwZS5fb25Db250ZW50Tm9kZVdhc1Jl
bW92ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udGVudFZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRl
bnRWaWV3LmlzVmlld2FibGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvRE9NVHJlZUVsZW1l
bnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLm9u
ZGVzZWxlY3QpOiBXZSBuZWVkIHRvIHJlbW92ZSB0aGUgc2VsZWN0ZWQgImRvbSBub2RlIgorICAg
ICAgICBzbyB0aGF0IHRoZSBlbGVtZW50IGlzIG5vdCBnb2luZyB0byBzdGF5IHNlbGVjdGVkIGFm
dGVyIHRoZSB3ZSBtb3ZlIHRvIGEgZGlmZmVyZW50IERPTSB0cmVlLgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvRE9NVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJl
ZU91dGxpbmUucHJvdG90eXBlLnNlbGVjdERPTU5vZGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvTWFpbi5odG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5zaWRlYmFyUGFuZWxGb3JSZXByZXNlbnRlZE9iamVjdCk6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9SZXNvdXJjZVNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3RyZWVFbGVtZW50U2VsZWN0
ZWQpOgorCiAyMDEzLTExLTAxICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVtb3ZlIGN1c3RvbSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCgpIGluIGZhdm9y
IG9mIG5hdGl2ZSB2ZXJzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250ZW50Rmxvd1RyZWVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udGVudEZsb3dUcmVlVmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mMDg3MDJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udGVudEZsb3dUcmVlVmlldy5qcwpAQCAtMCwwICsx
LDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBZG9iZSBTeXN0ZW1zIEluY29ycG9y
YXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
IAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisg
KiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVjdG9yLkNvbnRl
bnRGbG93VHJlZVZpZXcgPSBmdW5jdGlvbihjb250ZW50RmxvdykKK3sKKyAgICBjb25zb2xlLmFz
c2VydChjb250ZW50Rmxvdyk7CisKKyAgICBXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuY2FsbCh0
aGlzLCBjb250ZW50Rmxvdyk7CisKKyAgICB0aGlzLl9zZWxlY3RlZFRyZWVFbGVtZW50ID0gbnVs
bDsKKworICAgIC8vIE1hcCBvZiBjb250ZW50Tm9kZSBpZHMgdG8gRE9NVHJlZU91dGxpbmUgb2Jq
ZWN0cy4KKyAgICB0aGlzLl9ub2Rlc01hcCA9IHt9OworCisgICAgdGhpcy5fY3JlYXRlQ29udGVu
dFRyZWVzKCk7CisKKyAgICBjb250ZW50Rmxvdy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5Db250ZW50Rmxvdy5FdmVudC5Db250ZW50Tm9kZVdhc0FkZGVkLCB0aGlzLl9vbkNvbnRlbnRO
b2RlV2FzQWRkZWQsIHRoaXMpOworICAgIGNvbnRlbnRGbG93LmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkNvbnRlbnRGbG93LkV2ZW50LkNvbnRlbnROb2RlV2FzUmVtb3ZlZCwgdGhpcy5f
b25Db250ZW50Tm9kZVdhc1JlbW92ZWQsIHRoaXMpOworfTsKKworV2ViSW5zcGVjdG9yLkNvbnRl
bnRGbG93VHJlZVZpZXcuU3R5bGVDbGFzc05hbWUgPSAiY29udGVudC1mbG93LXRyZWUiOworCitX
ZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVlVmlldy5wcm90b3R5cGUgPSB7CisgICAgY29uc3Ry
dWN0b3I6IFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1RyZWVWaWV3LAorCisgICAgLy8gUHVibGlj
CisKKyAgICBnZXQgc2VsZWN0aW9uUGF0aENvbXBvbmVudHMoKQorICAgIHsKKyAgICAgICAgdmFy
IHRyZWVFbGVtZW50ID0gdGhpcy5fc2VsZWN0ZWRUcmVlRWxlbWVudDsKKyAgICAgICAgdmFyIHBh
dGhDb21wb25lbnRzID0gW107CisKKyAgICAgICAgd2hpbGUgKHRyZWVFbGVtZW50ICYmICF0cmVl
RWxlbWVudC5yb290KSB7CisgICAgICAgICAgICAvLyBUaGUgY2xvc2UgdGFnIGlzIGNvbnRhaW5l
ZCB3aXRoaW4gdGhlIGVsZW1lbnQgaXQgY2xvc2VzLiBTbyBza2lwIGl0IHNpbmNlIHdlIGRvbid0
IHdhbnQgdG8KKyAgICAgICAgICAgIC8vIHNob3cgdGhlIHNhbWUgbm9kZSB0d2ljZSBpbiB0aGUg
aGllcmFyY2h5LgorICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50LmlzQ2xvc2VUYWcoKSkgewor
ICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50ID0gdHJlZUVsZW1lbnQucGFyZW50OworICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGSVhN
RTogQ29udGVudEZsb3cuY29udGVudE5vZGVzIHNob3VsZCBiZSBsaW5rZWQgdG8gZWFjaCBvdGhl
ci4KKyAgICAgICAgICAgIHZhciBwYXRoQ29tcG9uZW50ID0gbmV3IFdlYkluc3BlY3Rvci5ET01U
cmVlRWxlbWVudFBhdGhDb21wb25lbnQodHJlZUVsZW1lbnQsIHRyZWVFbGVtZW50LnJlcHJlc2Vu
dGVkT2JqZWN0KTsKKyAgICAgICAgICAgIHBhdGhDb21wb25lbnQuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuSGllcmFyY2hpY2FsUGF0aENvbXBvbmVudC5FdmVudC5TaWJsaW5nV2FzU2Vs
ZWN0ZWQsIHRoaXMuX3BhdGhDb21wb25lbnRTZWxlY3RlZCwgdGhpcyk7CisgICAgICAgICAgICBw
YXRoQ29tcG9uZW50cy51bnNoaWZ0KHBhdGhDb21wb25lbnQpOworCisgICAgICAgICAgICAvLyBE
byBub3QgZGlzcGxheSBlbGVtZW50cyBvdXRzaWRlIHRoZSBDb250ZW50Rmxvdy4KKyAgICAgICAg
ICAgIGlmICh0aGlzLl9ub2Rlc01hcC5oYXNPd25Qcm9wZXJ0eSh0cmVlRWxlbWVudC5yZXByZXNl
bnRlZE9iamVjdC5pZCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIHRy
ZWVFbGVtZW50ID0gdHJlZUVsZW1lbnQucGFyZW50OworICAgICAgICB9CisKKyAgICAgICAgcmV0
dXJuIHBhdGhDb21wb25lbnRzOworICAgIH0sCisKKyAgICB1cGRhdGVMYXlvdXQ6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuX25vZGVzTWFwKQorICAgICAg
ICAgICAgdGhpcy5fbm9kZXNNYXBbaWRdLnVwZGF0ZVNlbGVjdGlvbigpOworICAgIH0sCisKKyAg
ICBzaG93bjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5f
bm9kZXNNYXApCisgICAgICAgICAgICB0aGlzLl9ub2Rlc01hcFtpZF0uc2V0VmlzaWJsZSh0cnVl
LCBXZWJJbnNwZWN0b3IuaXNDb25zb2xlRm9jdXNlZCgpKTsKKyAgICB9LAorCisgICAgaGlkZGVu
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIu
aGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKyAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5fbm9k
ZXNNYXApCisgICAgICAgICAgICB0aGlzLl9ub2Rlc01hcFtpZF0uc2V0VmlzaWJsZShmYWxzZSk7
CisgICAgfSwKKworICAgIGNsb3NlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db250ZW50
Rmxvdy5FdmVudC5Db250ZW50Tm9kZVdhc0FkZGVkLCB0aGlzLl9vbkNvbnRlbnROb2RlV2FzQWRk
ZWQsIHRoaXMpOworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93LkV2ZW50LkNvbnRlbnROb2RlV2FzUmVtb3Zl
ZCwgdGhpcy5fb25Db250ZW50Tm9kZVdhc1JlbW92ZWQsIHRoaXMpOworICAgICAgICBmb3IgKHZh
ciBpZCBpbiB0aGlzLl9ub2Rlc01hcCkKKyAgICAgICAgICAgIHRoaXMuX25vZGVzTWFwW2lkXS5j
bG9zZSgpOworICAgIH0sCisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfc2VsZWN0ZWROb2RlRGlk
Q2hhbmdlOiBmdW5jdGlvbihjb250ZW50Tm9kZU91dGxpbmUsIGV2ZW50KQorICAgIHsKKyAgICAg
ICAgdmFyIHNlbGVjdGVkVHJlZUVsZW1lbnQgPSBjb250ZW50Tm9kZU91dGxpbmUuc2VsZWN0ZWRU
cmVlRWxlbWVudDsKKyAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkVHJlZUVsZW1lbnQgPT09IHNl
bGVjdGVkVHJlZUVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gTWFr
ZSBzdXJlIHRoYXQgbW92aW5nIGZyb20gb25lIHRyZWUgdG8gdGhlIG90aGVyIHdpbGwgZGVzZWxl
Y3QgdGhlIHByZXZpb3VzIGVsZW1lbnQuCisgICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZFRyZWVF
bGVtZW50ICYmIHRoaXMuX3NlbGVjdGVkVHJlZUVsZW1lbnQudHJlZU91dGxpbmUgIT09IGNvbnRl
bnROb2RlT3V0bGluZSkKKyAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVHJlZUVsZW1lbnQuZGVz
ZWxlY3QoKTsKKworICAgICAgICB0aGlzLl9zZWxlY3RlZFRyZWVFbGVtZW50ID0gc2VsZWN0ZWRU
cmVlRWxlbWVudDsKKyAgICAgICAgaWYgKHNlbGVjdGVkVHJlZUVsZW1lbnQpCisgICAgICAgICAg
ICBDb25zb2xlQWdlbnQuYWRkSW5zcGVjdGVkTm9kZShzZWxlY3RlZFRyZWVFbGVtZW50LnJlcHJl
c2VudGVkT2JqZWN0LmlkKTsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0aW9uUGF0aENvbXBvbmVudHNE
aWRDaGFuZ2UpOworICAgIH0sCisKKyAgICBfcGF0aENvbXBvbmVudFNlbGVjdGVkOiBmdW5jdGlv
bihldmVudCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV2ZW50LmRhdGEucGF0aENv
bXBvbmVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25l
bnQpOworICAgICAgICBjb25zb2xlLmFzc2VydChldmVudC5kYXRhLnBhdGhDb21wb25lbnQuZG9t
VHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQpOworCisg
ICAgICAgIHZhciB0cmVlRWxlbWVudCA9IGV2ZW50LmRhdGEucGF0aENvbXBvbmVudC5kb21UcmVl
RWxlbWVudDsKKyAgICAgICAgdHJlZUVsZW1lbnQudHJlZU91dGxpbmUuc2VsZWN0RE9NTm9kZSh0
cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCwgdHJ1ZSk7CisgICAgfSwKKworICAgIF9jcmVh
dGVDb250ZW50Tm9kZVRyZWU6IGZ1bmN0aW9uKG5vZGUpCisgICAgeworICAgICAgICBjb25zb2xl
LmFzc2VydCghdGhpcy5fbm9kZXNNYXAuaGFzT3duUHJvcGVydHkobm9kZS5pZCkpOworICAgICAg
ICAvLyBGSVhNRTogRE9NVHJlZSdzIHNob3VsZCBiZSBsaW5rZWQgdG8gZWFjaCBvdGhlciB3aGVu
IG5hdmlnYXRpbmcgd2l0aCBrZXlib2FyZCB1cC9kb3duIGV2ZW50cy4KKyAgICAgICAgdmFyIGNv
bnRlbnROb2RlT3V0bGluZSA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NVHJlZU91dGxpbmUoZmFsc2Us
IHRydWUsIHRydWUpOworICAgICAgICBjb250ZW50Tm9kZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuRE9NVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0ZWROb2RlQ2hhbmdlZCwg
dGhpcy5fc2VsZWN0ZWROb2RlRGlkQ2hhbmdlLmJpbmQodGhpcywgY29udGVudE5vZGVPdXRsaW5l
KSwgdGhpcyk7CisgICAgICAgIGNvbnRlbnROb2RlT3V0bGluZS5zZXRWaXNpYmxlKHRoaXMudmlz
aWJsZSwgV2ViSW5zcGVjdG9yLmlzQ29uc29sZUZvY3VzZWQoKSk7CisgICAgICAgIGNvbnRlbnRO
b2RlT3V0bGluZS53aXJlVG9Eb21BZ2VudCgpOworICAgICAgICBjb250ZW50Tm9kZU91dGxpbmUu
cm9vdERPTU5vZGUgPSBub2RlOworICAgICAgICB0aGlzLl9ub2Rlc01hcFtub2RlLmlkXSA9IGNv
bnRlbnROb2RlT3V0bGluZTsKKyAgICAgICAgcmV0dXJuIGNvbnRlbnROb2RlT3V0bGluZTsKKyAg
ICB9LAorCisgICAgX2NyZWF0ZUNvbnRlbnRUcmVlczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgdmFyIGNvbnRlbnROb2RlcyA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY29udGVudE5vZGVz
OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRlbnROb2Rlcy5sZW5ndGg7ICsraSkg
eworICAgICAgICAgICAgdmFyIGNvbnRlbnROb2RlT3V0bGluZSA9IHRoaXMuX2NyZWF0ZUNvbnRl
bnROb2RlVHJlZShjb250ZW50Tm9kZXNbaV0pOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFw
cGVuZENoaWxkKGNvbnRlbnROb2RlT3V0bGluZS5lbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0s
CisKKyAgICBfb25Db250ZW50Tm9kZVdhc0FkZGVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7Cisg
ICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXMuX2NyZWF0ZUNvbnRlbnROb2RlVHJlZShldmVu
dC5kYXRhLm5vZGUpOworICAgICAgICBpZiAoZXZlbnQuZGF0YS5iZWZvcmUpIHsKKyAgICAgICAg
ICAgIHZhciBiZWZvcmVFbGVtZW50ID0gdGhpcy5fbm9kZXNNYXBbZXZlbnQuZGF0YS5iZWZvcmUu
aWRdOworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoYmVmb3JlRWxlbWVudCk7CisgICAgICAg
ICAgICB0aGlzLmVsZW1lbnQuaW5zZXJ0QmVmb3JlKHRyZWVFbGVtZW50LmVsZW1lbnQsIGJlZm9y
ZUVsZW1lbnQuZWxlbWVudCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGhpcy5lbGVt
ZW50LmFwcGVuZENoaWxkKHRyZWVFbGVtZW50LmVsZW1lbnQpOworICAgIH0sCisgICAgCisgICAg
X29uQ29udGVudE5vZGVXYXNSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAg
IHZhciBjb250ZW50Tm9kZU91dGxpbmUgPSB0aGlzLl9ub2Rlc01hcFtldmVudC5kYXRhLm5vZGUu
aWRdOworICAgICAgICBjb250ZW50Tm9kZU91dGxpbmUuY2xvc2UoKTsKKyAgICAgICAgY29udGVu
dE5vZGVPdXRsaW5lLmVsZW1lbnQucmVtb3ZlKCk7CisgICAgfQorfTsKKworV2ViSW5zcGVjdG9y
LkNvbnRlbnRGbG93VHJlZVZpZXcucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5D
b250ZW50Vmlldy5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRlbnRWaWV3LmpzCmluZGV4IDdjNDc1YzIuLjg5MGY1MjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRlbnRWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRlbnRWaWV3LmpzCkBA
IC03Miw2ICs3Miw5IEBAIFdlYkluc3BlY3Rvci5Db250ZW50VmlldyA9IGZ1bmN0aW9uKHJlcHJl
c2VudGVkT2JqZWN0KQogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZU9iamVjdCkKICAgICAgICAgICAgIHJldHVybiBuZXcg
V2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3KHJlcHJlc2VudGVkT2JqZWN0KTsKIAorICAg
ICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29udGVu
dEZsb3cpCisgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1Ry
ZWVWaWV3KHJlcHJlc2VudGVkT2JqZWN0KTsKKwogICAgICAgICBpZiAodHlwZW9mIHJlcHJlc2Vu
dGVkT2JqZWN0ID09PSAic3RyaW5nIiB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFN0
cmluZykKICAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlRleHRDb250ZW50Vmll
dyhyZXByZXNlbnRlZE9iamVjdCk7CiAKQEAgLTEyNiw2ICsxMjksOCBAQCBXZWJJbnNwZWN0b3Iu
Q29udGVudFZpZXcuaXNWaWV3YWJsZSA9IGZ1bmN0aW9uKHJlcHJlc2VudGVkT2JqZWN0KQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvbnRlbnRG
bG93KQorICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAodHlwZW9mIHJlcHJlc2VudGVkT2Jq
ZWN0ID09PSAic3RyaW5nIiB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFN0cmluZykK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NVHJlZUVsZW1lbnQuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9ET01UcmVlRWxlbWVudC5qcwppbmRleCBi
NDA3NDAyLi4wN2JkODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9ET01UcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9ET01UcmVlRWxlbWVudC5qcwpAQCAtNDgxLDYgKzQ4MSwxMSBAQCBXZWJJbnNw
ZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnRyZWVPdXRs
aW5lLnN1cHByZXNzUmV2ZWFsQW5kU2VsZWN0ID0gZmFsc2U7CiAgICAgfSwKIAorICAgIG9uZGVz
ZWxlY3Q6IGZ1bmN0aW9uKHRyZWVFbGVtZW50KQorICAgIHsKKyAgICAgICAgdGhpcy50cmVlT3V0
bGluZS5zZWxlY3RET01Ob2RlKG51bGwpOworICAgIH0sCisKICAgICBvbmRlbGV0ZTogZnVuY3Rp
b24oKQogICAgIHsKICAgICAgICAgdmFyIHN0YXJ0VGFnVHJlZUVsZW1lbnQgPSB0aGlzLnRyZWVP
dXRsaW5lLmZpbmRUcmVlRWxlbWVudCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RPTVRyZWVPdXRsaW5lLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NVHJlZU91dGxpbmUuanMK
aW5kZXggODk1MTAwYS4uMTdmYTVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvRE9NVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvRE9NVHJlZU91dGxpbmUuanMKQEAgLTE1NSw3ICsxNTUsOCBAQCBX
ZWJJbnNwZWN0b3IuRE9NVHJlZU91dGxpbmUucHJvdG90eXBlID0gewogICAgICAgICAvLyBhbmQg
dGhlIHNlbGVjdCgpIGNhbGwgd291bGQgY2hhbmdlIHRoZSBzZWxlY3RlZERPTU5vZGUgYW5kIHJl
ZW50ZXIgdGhpcyBzZXR0ZXIuIFNvIHRvCiAgICAgICAgIC8vIGF2b2lkIGNhbGxpbmcgX3NlbGVj
dGVkTm9kZUNoYW5nZWQoKSB0d2ljZSwgZmlyc3QgY2hlY2sgaWYgX3NlbGVjdGVkRE9NTm9kZSBp
cyB0aGUgc2FtZQogICAgICAgICAvLyBub2RlIGFzIHRoZSBvbmUgcGFzc2VkIGluLgotICAgICAg
ICBpZiAodGhpcy5fc2VsZWN0ZWRET01Ob2RlID09PSBub2RlKQorICAgICAgICAvLyBOb3RlIHRo
YXQgX3JldmVhbEFuZFNlbGVjdE5vZGUgd2lsbCBub3QgZG8gYW55dGhpbmcgZm9yIGEgbnVsbCBu
b2RlLgorICAgICAgICBpZiAoIW5vZGUgfHwgdGhpcy5fc2VsZWN0ZWRET01Ob2RlID09PSBub2Rl
KQogICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWROb2RlQ2hhbmdlZCgpOwogICAgIH0sCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCA4NjZm
YWQ2Li41OTVmYWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TWFpbi5odG1sCkBAIC00MDAsNiArNDAwLDcgQEAKICAgICA8c2NyaXB0IHNyYz0iTUlNRVR5cGVV
dGlsaXRpZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJMb2FkTG9jYWxpemVkU3Ry
aW5ncy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkdvVG9MaW5lRGlhbG9nLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iQ29udGVudEZsb3dUcmVlVmlldy5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1haW4uanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmpzCmluZGV4IDE1MmY2
M2EuLmY4NDQ1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFp
bi5qcwpAQCAtMzIyLDcgKzMyMiw3IEBAIFdlYkluc3BlY3Rvci5zaWRlYmFyUGFuZWxGb3JDdXJy
ZW50Q29udGVudFZpZXcgPSBmdW5jdGlvbigpCiBXZWJJbnNwZWN0b3Iuc2lkZWJhclBhbmVsRm9y
UmVwcmVzZW50ZWRPYmplY3QgPSBmdW5jdGlvbihyZXByZXNlbnRlZE9iamVjdCkKIHsKICAgICBp
ZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRnJhbWUgfHwgcmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUmVzb3VyY2UgfHwKLSAgICAg
ICAgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU2NyaXB0KQorICAg
ICAgICByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TY3JpcHQgfHwg
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29udGVudEZsb3cpCiAg
ICAgICAgIHJldHVybiB0aGlzLnJlc291cmNlU2lkZWJhclBhbmVsOwogCiAgICAgaWYgKHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VPYmplY3QgfHwg
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29va2llU3RvcmFnZU9i
amVjdCB8fApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
UmVzb3VyY2VTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcwppbmRleCBjNDJlN2UxLi44OGNiYjc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9SZXNvdXJjZVNpZGVi
YXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9SZXNv
dXJjZVNpZGViYXJQYW5lbC5qcwpAQCAtNjEwLDE5ICs2MTAsMTMgQEAgV2ViSW5zcGVjdG9yLlJl
c291cmNlU2lkZWJhclBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF90cmVlRWxlbWVudFNlbGVj
dGVkOiBmdW5jdGlvbih0cmVlRWxlbWVudCwgc2VsZWN0ZWRCeVVzZXIpCiAgICAgewotICAgICAg
ICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVl
RWxlbWVudCkgewotICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBET00gdHJlZSBpbnNw
ZWN0b3IgZm9yIGNvbnRlbnQgZmxvdyB0cmVlIGVsZW1lbnRzLgotICAgICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjkyNwotICAgICAgICAgICAg
Y29uc29sZS5sb2coIkNvbnRlbnQgRmxvdyB2aWV3IG5vdCBpbXBsZW1lbnRlZCIpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KICAgICAgICAgaWYgKHRyZWVFbGVtZW50IGluc3Rh
bmNlb2YgV2ViSW5zcGVjdG9yLkZvbGRlclRyZWVFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJu
OwogCiAgICAgICAgIGlmICh0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVFbGVtZW50IHx8IHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNj
cmlwdFRyZWVFbGVtZW50IHx8CiAgICAgICAgICAgICB0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdl
Ykluc3BlY3Rvci5TdG9yYWdlVHJlZUVsZW1lbnQgfHwgdHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuRGF0YWJhc2VUYWJsZVRyZWVFbGVtZW50IHx8Ci0gICAgICAgICAgICB0cmVl
RWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5EYXRhYmFzZVRyZWVFbGVtZW50IHx8IHRy
ZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRy
ZWVFbGVtZW50KSB7CisgICAgICAgICAgICB0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5EYXRhYmFzZVRyZWVFbGVtZW50IHx8IHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5z
cGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50IHx8CisgICAgICAgICAgICB0
cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1RyZWVFbGVtZW50
KSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRW
aWV3Rm9yUmVwcmVzZW50ZWRPYmplY3QodHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cg==
</data>
<flag name="review"
          id="238983"
          type_id="1"
          status="+"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="238984"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>216191</attachid>
            <date>2013-11-06 10:50:46 -0800</date>
            <delta_ts>2013-11-06 10:50:46 -0800</delta_ts>
            <desc>Screenshot 1</desc>
            <filename>content_flow_closed.jpg</filename>
            <type>image/jpeg</type>
            <size>0</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>216192</attachid>
            <date>2013-11-06 10:51:24 -0800</date>
            <delta_ts>2013-11-06 10:51:24 -0800</delta_ts>
            <desc>Screenshot 2</desc>
            <filename>content_flow_open.jpg</filename>
            <type>image/jpeg</type>
            <size>0</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216199</attachid>
            <date>2013-11-06 12:05:54 -0800</date>
            <delta_ts>2013-11-06 13:38:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug122927.v2.patch</filename>
            <type>text/plain</type>
            <size>17166</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDhjY2U2MzguLjBiY2EzMDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEzLTExLTA2ICBBbGV4YW5kcnUgQ2hp
Y3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDU1Mg
UmVnaW9uczogV2hlbiBhIGZsb3cgaXMgY2xpY2tlZCB0aGUgY29udGVudCBvZiBmbG93IG5lZWRz
IHRvIGJlIGRpc3BsYXllZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIyOTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgor
CisgICAgICAgIENvbnRlbnRGbG93VHJlZUNvbnRlbnRWaWV3IGlzIG5vdyB1c2VkIHRvIGRpc3Bs
YXkgdGhlIGNvbnRlbnQgbm9kZXMgb2YgYSBDb250ZW50Rmxvdy4gSXQgaXMKKyAgICAgICAgdmVy
eSBzaW1pbGFyIHRvIHRoZSBET01UcmVlQ29udGVudFZpZXcgY2xhc3MsIGJ1dCBjYW4gaGFuZGxl
IG11bHRpcGxlIHJvb3Qgbm9kZXMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRlbnRG
bG93VHJlZUNvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250
ZW50Rmxvd1RyZWVDb250ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudEZs
b3dUcmVlQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBzZWxlY3Rpb25QYXRoQ29tcG9uZW50cyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVlQ29udGVudFZpZXcucHJvdG90
eXBlLnVwZGF0ZUxheW91dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVl
Q29udGVudFZpZXcucHJvdG90eXBlLnNob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250
ZW50Rmxvd1RyZWVDb250ZW50Vmlldy5wcm90b3R5cGUuaGlkZGVuKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db250ZW50Rmxvd1RyZWVDb250ZW50Vmlldy5wcm90b3R5cGUuY2xvc2VkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1RyZWVDb250ZW50Vmlldy5wcm90b3R5cGUu
X3NlbGVjdGVkTm9kZURpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudEZs
b3dUcmVlQ29udGVudFZpZXcucHJvdG90eXBlLl9wYXRoQ29tcG9uZW50U2VsZWN0ZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93VHJlZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5f
Y3JlYXRlQ29udGVudE5vZGVUcmVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50Rmxv
d1RyZWVDb250ZW50Vmlldy5wcm90b3R5cGUuX2NyZWF0ZUNvbnRlbnRUcmVlcyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVlQ29udGVudFZpZXcucHJvdG90eXBlLl9jb250
ZW50Tm9kZVdhc0FkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1RyZWVD
b250ZW50Vmlldy5wcm90b3R5cGUuX2NvbnRlbnROb2RlV2FzUmVtb3ZlZCk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250
ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuaXNWaWV3YWJsZSk6
CisgICAgICAgICogVXNlckludGVyZmFjZS9ET01UcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUub25kZXNlbGVjdCk6IFdlIG5lZWQg
dG8gcmVtb3ZlIHRoZSBzZWxlY3RlZCAiZG9tIG5vZGUiCisgICAgICAgIHNvIHRoYXQgdGhlIGVs
ZW1lbnQgaXMgbm90IGdvaW5nIHRvIHN0YXkgc2VsZWN0ZWQgYWZ0ZXIgdGhlIHdlIG1vdmUgdG8g
YSBkaWZmZXJlbnQgRE9NIHRyZWUuCisgICAgICAgICogVXNlckludGVyZmFjZS9ET01UcmVlT3V0
bGluZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZS5wcm90b3R5cGUu
c2VsZWN0RE9NTm9kZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9NYWluLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnNpZGVi
YXJQYW5lbEZvclJlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Jl
c291cmNlU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5fdHJlZUVsZW1lbnRTZWxlY3RlZCk6CisKIDIwMTMtMTEtMDEg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KCiAgICAgICAgIFJlbW92ZSBjdXN0
b20gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQoKSBpbiBmYXZvciBvZiBuYXRpdmUgdmVyc2lvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udGVudEZs
b3cuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250ZW50Rmxvdy5q
cwppbmRleCBkMmUyYzQ0Li43MjYzMTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250ZW50Rmxvdy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250ZW50Rmxvdy5qcwpAQCAtMTIsNyArMTIsNyBAQAogICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKICAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscwogICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKKyAqCiAg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJ
UyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKICAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpAQCAtNDYsNiArNDYsNyBAQCBX
ZWJJbnNwZWN0b3IuQ29udGVudEZsb3cuRXZlbnQgPSB7CiBXZWJJbnNwZWN0b3IuQ29udGVudEZs
b3cucHJvdG90eXBlID0gewoKICAgICBjb25zdHJ1Y3RvcjogV2ViSW5zcGVjdG9yLkNvbnRlbnRG
bG93LAorICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUsCgogICAg
IC8vIFB1YmxpYwoKQEAgLTEwNSw2ICsxMDYsMyBAQCBXZWJJbnNwZWN0b3IuQ29udGVudEZsb3cu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuQ29udGVudEZsb3cuRXZlbnQuQ29udGVudE5vZGVXYXNSZW1vdmVkLCB7bm9kZTog
Y29udGVudE5vZGV9KTsKICAgICB9CiB9OwotCi0KLVdlYkluc3BlY3Rvci5Db250ZW50Rmxvdy5w
cm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250ZW50Rmxvd1Ry
ZWVDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRlbnRGbG93VHJlZUNvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjM2NmUyYWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250ZW50Rmxvd1RyZWVDb250ZW50Vmlldy5qcwpAQCAtMCwwICsxLDE5
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRl
ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
ICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgor
ICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3IuQ29udGVudEZs
b3dUcmVlQ29udGVudFZpZXcgPSBmdW5jdGlvbihjb250ZW50RmxvdykKK3sKKyAgICBjb25zb2xl
LmFzc2VydChjb250ZW50Rmxvdyk7CisKKyAgICBXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuY2Fs
bCh0aGlzLCBjb250ZW50Rmxvdyk7CisKKyAgICB0aGlzLl9zZWxlY3RlZFRyZWVFbGVtZW50ID0g
bnVsbDsKKworICAgIC8vIE1hcCBvZiBjb250ZW50Tm9kZSBpZHMgdG8gRE9NVHJlZU91dGxpbmUg
b2JqZWN0cy4KKyAgICB0aGlzLl9ub2Rlc01hcCA9IG5ldyBNYXAoKTsKKworICAgIHRoaXMuX2Ny
ZWF0ZUNvbnRlbnRUcmVlcygpOworCisgICAgY29udGVudEZsb3cuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQ29udGVudEZsb3cuRXZlbnQuQ29udGVudE5vZGVXYXNBZGRlZCwgdGhpcy5f
Y29udGVudE5vZGVXYXNBZGRlZCwgdGhpcyk7CisgICAgY29udGVudEZsb3cuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudEZsb3cuRXZlbnQuQ29udGVudE5vZGVXYXNSZW1vdmVk
LCB0aGlzLl9jb250ZW50Tm9kZVdhc1JlbW92ZWQsIHRoaXMpOworfTsKKworV2ViSW5zcGVjdG9y
LkNvbnRlbnRGbG93VHJlZUNvbnRlbnRWaWV3LlN0eWxlQ2xhc3NOYW1lID0gImNvbnRlbnQtZmxv
dy10cmVlIjsKKworV2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93VHJlZUNvbnRlbnRWaWV3LnByb3Rv
dHlwZSA9IHsKKworICAgIGNvbnN0cnVjdG9yOiBXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVl
Q29udGVudFZpZXcsCisgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcucHJv
dG90eXBlLAorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgc2VsZWN0aW9uUGF0aENvbXBvbmVu
dHMoKQorICAgIHsKKyAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gdGhpcy5fc2VsZWN0ZWRUcmVl
RWxlbWVudDsKKyAgICAgICAgdmFyIHBhdGhDb21wb25lbnRzID0gW107CisKKyAgICAgICAgd2hp
bGUgKHRyZWVFbGVtZW50ICYmICF0cmVlRWxlbWVudC5yb290KSB7CisgICAgICAgICAgICAvLyBU
aGUgY2xvc2UgdGFnIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGVsZW1lbnQgaXQgY2xvc2VzLiBT
byBza2lwIGl0IHNpbmNlIHdlIGRvbid0IHdhbnQgdG8KKyAgICAgICAgICAgIC8vIHNob3cgdGhl
IHNhbWUgbm9kZSB0d2ljZSBpbiB0aGUgaGllcmFyY2h5LgorICAgICAgICAgICAgaWYgKHRyZWVF
bGVtZW50LmlzQ2xvc2VUYWcoKSkgeworICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50ID0gdHJl
ZUVsZW1lbnQucGFyZW50OworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAvLyBGSVhNRTogQ29udGVudEZsb3cuY29udGVudE5vZGVzIHNob3Vs
ZCBiZSBsaW5rZWQgdG8gZWFjaCBvdGhlci4KKyAgICAgICAgICAgIHZhciBwYXRoQ29tcG9uZW50
ID0gbmV3IFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQodHJlZUVsZW1l
bnQsIHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAgICAgIHBhdGhDb21w
b25lbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSGllcmFyY2hpY2FsUGF0aENvbXBv
bmVudC5FdmVudC5TaWJsaW5nV2FzU2VsZWN0ZWQsIHRoaXMuX3BhdGhDb21wb25lbnRTZWxlY3Rl
ZCwgdGhpcyk7CisgICAgICAgICAgICBwYXRoQ29tcG9uZW50cy51bnNoaWZ0KHBhdGhDb21wb25l
bnQpOworCisgICAgICAgICAgICAvLyBEbyBub3QgZGlzcGxheSBlbGVtZW50cyBvdXRzaWRlIHRo
ZSBDb250ZW50Rmxvdy4KKyAgICAgICAgICAgIGlmICh0aGlzLl9ub2Rlc01hcC5oYXModHJlZUVs
ZW1lbnQucmVwcmVzZW50ZWRPYmplY3QuaWQpKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisg
ICAgICAgICAgICB0cmVlRWxlbWVudCA9IHRyZWVFbGVtZW50LnBhcmVudDsKKyAgICAgICAgfQor
CisgICAgICAgIHJldHVybiBwYXRoQ29tcG9uZW50czsKKyAgICB9LAorCisgICAgdXBkYXRlTGF5
b3V0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9ub2Rlc01hcC5mb3JFYWNoKGZ1
bmN0aW9uKG5vZGUpIHsKKyAgICAgICAgICAgIG5vZGUudXBkYXRlU2VsZWN0aW9uKCk7CisgICAg
ICAgIH0pOworICAgIH0sCisKKyAgICBzaG93bjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
dmFyIG9taXRGb2N1cyA9IFdlYkluc3BlY3Rvci5pc0NvbnNvbGVGb2N1c2VkKCk7CisgICAgICAg
IHRoaXMuX25vZGVzTWFwLmZvckVhY2goZnVuY3Rpb24obm9kZSkgeworICAgICAgICAgICAgbm9k
ZS5zZXRWaXNpYmxlKHRydWUsIG9taXRGb2N1cyk7CisgICAgICAgIH0pOworICAgIH0sCisKKyAg
ICBoaWRkZW46IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVl
TWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworICAgICAgICB0aGlzLl9ub2Rlc01hcC5m
b3JFYWNoKGZ1bmN0aW9uKG5vZGUpIHsKKyAgICAgICAgICAgIG5vZGUuc2V0VmlzaWJsZShmYWxz
ZSk7CisgICAgICAgIH0pOworICAgIH0sCisKKyAgICBjbG9zZWQ6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuQ29udGVudEZsb3cuRXZlbnQuQ29udGVudE5vZGVXYXNBZGRlZCwgdGhpcy5fY29u
dGVudE5vZGVXYXNBZGRlZCwgdGhpcyk7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudEZsb3cuRXZlbnQuQ29udGVu
dE5vZGVXYXNSZW1vdmVkLCB0aGlzLl9jb250ZW50Tm9kZVdhc1JlbW92ZWQsIHRoaXMpOworICAg
ICAgICB0aGlzLl9ub2Rlc01hcC5mb3JFYWNoKGZ1bmN0aW9uKG5vZGUpIHsKKyAgICAgICAgICAg
IG5vZGUuY2xvc2UoKTsKKyAgICAgICAgfSk7CisgICAgfSwKKworICAgIC8vIFByaXZhdGUKKwor
ICAgIF9zZWxlY3RlZE5vZGVEaWRDaGFuZ2U6IGZ1bmN0aW9uKGNvbnRlbnROb2RlT3V0bGluZSwg
ZXZlbnQpCisgICAgeworICAgICAgICB2YXIgc2VsZWN0ZWRUcmVlRWxlbWVudCA9IGNvbnRlbnRO
b2RlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50OworICAgICAgICBpZiAodGhpcy5fc2VsZWN0
ZWRUcmVlRWxlbWVudCA9PT0gc2VsZWN0ZWRUcmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBtb3ZpbmcgZnJvbSBvbmUgdHJlZSB0byB0
aGUgb3RoZXIgd2lsbCBkZXNlbGVjdCB0aGUgcHJldmlvdXMgZWxlbWVudC4KKyAgICAgICAgaWYg
KHRoaXMuX3NlbGVjdGVkVHJlZUVsZW1lbnQgJiYgdGhpcy5fc2VsZWN0ZWRUcmVlRWxlbWVudC50
cmVlT3V0bGluZSAhPT0gY29udGVudE5vZGVPdXRsaW5lKQorICAgICAgICAgICAgdGhpcy5fc2Vs
ZWN0ZWRUcmVlRWxlbWVudC5kZXNlbGVjdCgpOworCisgICAgICAgIHRoaXMuX3NlbGVjdGVkVHJl
ZUVsZW1lbnQgPSBzZWxlY3RlZFRyZWVFbGVtZW50OworICAgICAgICBpZiAoc2VsZWN0ZWRUcmVl
RWxlbWVudCkgeworICAgICAgICAgICAgLy8gRklYTUU6IFN3aXRjaGluZyBiZXR3ZWVuIGRpZmZl
cmVudCBDb250ZW50Rmxvd1RyZWVDb250ZW50VmlldyBvciBET01UcmVlQ29udGVudFZpZXcgZWxl
bWVudHMgc2hvdWxkIGNhbGwgQ29uc29sZUFnZW50LmFkZEluc3BlY3RlZE5vZGUuCisgICAgICAg
ICAgICBDb25zb2xlQWdlbnQuYWRkSW5zcGVjdGVkTm9kZShzZWxlY3RlZFRyZWVFbGVtZW50LnJl
cHJlc2VudGVkT2JqZWN0LmlkKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVudC5TZWxlY3Rpb25Q
YXRoQ29tcG9uZW50c0RpZENoYW5nZSk7CisgICAgfSwKKworICAgIF9wYXRoQ29tcG9uZW50U2Vs
ZWN0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZXZl
bnQuZGF0YS5wYXRoQ29tcG9uZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVt
ZW50UGF0aENvbXBvbmVudCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV2ZW50LmRhdGEucGF0
aENvbXBvbmVudC5kb21UcmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5ET01UcmVl
RWxlbWVudCk7CisKKyAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5wYXRoQ29t
cG9uZW50LmRvbVRyZWVFbGVtZW50OworICAgICAgICB0cmVlRWxlbWVudC50cmVlT3V0bGluZS5z
ZWxlY3RET01Ob2RlKHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0LCB0cnVlKTsKKyAgICB9
LAorCisgICAgX2NyZWF0ZUNvbnRlbnROb2RlVHJlZTogZnVuY3Rpb24obm9kZSkKKyAgICB7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9ub2Rlc01hcC5oYXMobm9kZS5pZCkpOworCisg
ICAgICAgIC8vIEZJWE1FOiBET01UcmVlJ3Mgc2hvdWxkIGJlIGxpbmtlZCB0byBlYWNoIG90aGVy
IHdoZW4gbmF2aWdhdGluZyB3aXRoIGtleWJvYXJkIHVwL2Rvd24gZXZlbnRzLgorICAgICAgICB2
YXIgY29udGVudE5vZGVPdXRsaW5lID0gbmV3IFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZShm
YWxzZSwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgIGNvbnRlbnROb2RlT3V0bGluZS5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZS5FdmVudC5TZWxlY3RlZE5vZGVDaGFu
Z2VkLCB0aGlzLl9zZWxlY3RlZE5vZGVEaWRDaGFuZ2UuYmluZCh0aGlzLCBjb250ZW50Tm9kZU91
dGxpbmUpLCB0aGlzKTsKKyAgICAgICAgY29udGVudE5vZGVPdXRsaW5lLnNldFZpc2libGUodGhp
cy52aXNpYmxlLCBXZWJJbnNwZWN0b3IuaXNDb25zb2xlRm9jdXNlZCgpKTsKKyAgICAgICAgY29u
dGVudE5vZGVPdXRsaW5lLndpcmVUb0RvbUFnZW50KCk7CisgICAgICAgIGNvbnRlbnROb2RlT3V0
bGluZS5yb290RE9NTm9kZSA9IG5vZGU7CisKKyAgICAgICAgdGhpcy5fbm9kZXNNYXAuc2V0KG5v
ZGUuaWQsIGNvbnRlbnROb2RlT3V0bGluZSk7CisKKyAgICAgICAgcmV0dXJuIGNvbnRlbnROb2Rl
T3V0bGluZTsKKyAgICB9LAorCisgICAgX2NyZWF0ZUNvbnRlbnRUcmVlczogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgdmFyIGNvbnRlbnROb2RlcyA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
Y29udGVudE5vZGVzOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRlbnROb2Rlcy5s
ZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGNvbnRlbnROb2RlT3V0bGluZSA9IHRoaXMu
X2NyZWF0ZUNvbnRlbnROb2RlVHJlZShjb250ZW50Tm9kZXNbaV0pOworICAgICAgICAgICAgdGhp
cy5lbGVtZW50LmFwcGVuZENoaWxkKGNvbnRlbnROb2RlT3V0bGluZS5lbGVtZW50KTsKKyAgICAg
ICAgfQorICAgIH0sCisKKyAgICBfY29udGVudE5vZGVXYXNBZGRlZDogZnVuY3Rpb24oZXZlbnQp
CisgICAgeworICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLl9jcmVhdGVDb250ZW50Tm9k
ZVRyZWUoZXZlbnQuZGF0YS5ub2RlKTsKKyAgICAgICAgaWYgKGV2ZW50LmRhdGEuYmVmb3JlKSB7
CisgICAgICAgICAgICB2YXIgYmVmb3JlRWxlbWVudCA9IHRoaXMuX25vZGVzTWFwLmdldChldmVu
dC5kYXRhLmJlZm9yZS5pZCk7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChiZWZvcmVFbGVt
ZW50KTsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5pbnNlcnRCZWZvcmUodHJlZUVsZW1lbnQu
ZWxlbWVudCwgYmVmb3JlRWxlbWVudC5lbGVtZW50KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodHJlZUVsZW1lbnQuZWxlbWVudCk7CisgICAg
fSwKKworICAgIF9jb250ZW50Tm9kZVdhc1JlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsK
KyAgICAgICAgdmFyIGNvbnRlbnROb2RlT3V0bGluZSA9IHRoaXMuX25vZGVzTWFwLmdldChldmVu
dC5kYXRhLm5vZGUuaWQpOworICAgICAgICBjb250ZW50Tm9kZU91dGxpbmUuY2xvc2UoKTsKKyAg
ICAgICAgY29udGVudE5vZGVPdXRsaW5lLmVsZW1lbnQucmVtb3ZlKCk7CisKKyAgICAgICAgdGhp
cy5fbm9kZXNNYXAucmVtb3ZlKGV2ZW50LmRhdGEubm9kZS5pZCk7CisgICAgfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRlbnRWaWV3Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udGVudFZpZXcuanMKaW5k
ZXggN2M0NzVjMi4uYTRiYjg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udGVudFZpZXcuanMKQEAgLTcyLDYgKzcyLDkgQEAgV2ViSW5zcGVjdG9y
LkNvbnRlbnRWaWV3ID0gZnVuY3Rpb24ocmVwcmVzZW50ZWRPYmplY3QpCiAgICAgICAgIGlmIChy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlT2Jq
ZWN0KQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVZp
ZXcocmVwcmVzZW50ZWRPYmplY3QpOwoKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93KQorICAgICAgICAgICAgcmV0dXJuIG5l
dyBXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVlQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmpl
Y3QpOworCiAgICAgICAgIGlmICh0eXBlb2YgcmVwcmVzZW50ZWRPYmplY3QgPT09ICJzdHJpbmci
IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgU3RyaW5nKQogICAgICAgICAgICAgcmV0
dXJuIG5ldyBXZWJJbnNwZWN0b3IuVGV4dENvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0KTsK
CkBAIC0xMjYsNiArMTI5LDggQEAgV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3LmlzVmlld2FibGUg
PSBmdW5jdGlvbihyZXByZXNlbnRlZE9iamVjdCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
aWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2Zp
bGVPYmplY3QpCiAgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChyZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Db250ZW50RmxvdykKKyAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgaWYgKHR5cGVvZiByZXByZXNlbnRlZE9iamVjdCA9PT0gInN0cmluZyIgfHwgcmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBTdHJpbmcpCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0RPTVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvRE9NVHJlZUVsZW1lbnQuanMKaW5kZXggYjQwNzQwMi4uMDdiZDg5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NVHJlZUVsZW1lbnQu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NVHJlZUVsZW1l
bnQuanMKQEAgLTQ4MSw2ICs0ODEsMTEgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5zdXBwcmVzc1JldmVhbEFuZFNl
bGVjdCA9IGZhbHNlOwogICAgIH0sCgorICAgIG9uZGVzZWxlY3Q6IGZ1bmN0aW9uKHRyZWVFbGVt
ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy50cmVlT3V0bGluZS5zZWxlY3RET01Ob2RlKG51bGwp
OworICAgIH0sCisKICAgICBvbmRlbGV0ZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFy
IHN0YXJ0VGFnVHJlZUVsZW1lbnQgPSB0aGlzLnRyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudCh0
aGlzLnJlcHJlc2VudGVkT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0RPTVRyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvRE9NVHJlZU91dGxpbmUuanMKaW5kZXggODk1MTAwYS4uMTdmYTVmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NVHJlZU91
dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NVHJl
ZU91dGxpbmUuanMKQEAgLTE1NSw3ICsxNTUsOCBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZU91dGxp
bmUucHJvdG90eXBlID0gewogICAgICAgICAvLyBhbmQgdGhlIHNlbGVjdCgpIGNhbGwgd291bGQg
Y2hhbmdlIHRoZSBzZWxlY3RlZERPTU5vZGUgYW5kIHJlZW50ZXIgdGhpcyBzZXR0ZXIuIFNvIHRv
CiAgICAgICAgIC8vIGF2b2lkIGNhbGxpbmcgX3NlbGVjdGVkTm9kZUNoYW5nZWQoKSB0d2ljZSwg
Zmlyc3QgY2hlY2sgaWYgX3NlbGVjdGVkRE9NTm9kZSBpcyB0aGUgc2FtZQogICAgICAgICAvLyBu
b2RlIGFzIHRoZSBvbmUgcGFzc2VkIGluLgotICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRET01O
b2RlID09PSBub2RlKQorICAgICAgICAvLyBOb3RlIHRoYXQgX3JldmVhbEFuZFNlbGVjdE5vZGUg
d2lsbCBub3QgZG8gYW55dGhpbmcgZm9yIGEgbnVsbCBub2RlLgorICAgICAgICBpZiAoIW5vZGUg
fHwgdGhpcy5fc2VsZWN0ZWRET01Ob2RlID09PSBub2RlKQogICAgICAgICAgICAgdGhpcy5fc2Vs
ZWN0ZWROb2RlQ2hhbmdlZCgpOwogICAgIH0sCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IDg2NmZhZDYuLjA5ZDEzNzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTQwMCw2ICs0MDAs
NyBAQAogICAgIDxzY3JpcHQgc3JjPSJNSU1FVHlwZVV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkxvYWRMb2NhbGl6ZWRTdHJpbmdzLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iR29Ub0xpbmVEaWFsb2cuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJDb250ZW50Rmxvd1RyZWVDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ik1haW4uanMiPjwvc2NyaXB0PgoKICAgICA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uanMKaW5kZXggMTUyZjYzYS4uZjg0NDUwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmpzCkBAIC0zMjIsNyArMzIy
LDcgQEAgV2ViSW5zcGVjdG9yLnNpZGViYXJQYW5lbEZvckN1cnJlbnRDb250ZW50VmlldyA9IGZ1
bmN0aW9uKCkKIFdlYkluc3BlY3Rvci5zaWRlYmFyUGFuZWxGb3JSZXByZXNlbnRlZE9iamVjdCA9
IGZ1bmN0aW9uKHJlcHJlc2VudGVkT2JqZWN0KQogewogICAgIGlmIChyZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5GcmFtZSB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdlYkluc3BlY3Rvci5SZXNvdXJjZSB8fAotICAgICAgICByZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TY3JpcHQpCisgICAgICAgIHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNjcmlwdCB8fCByZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Db250ZW50RmxvdykKICAgICAgICAgcmV0dXJuIHRoaXMu
cmVzb3VyY2VTaWRlYmFyUGFuZWw7CgogICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlT2JqZWN0IHx8IHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvb2tpZVN0b3JhZ2VPYmplY3QgfHwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Jlc291cmNlU2lkZWJhclBhbmVs
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUmVzb3VyY2VTaWRlYmFy
UGFuZWwuanMKaW5kZXggYzQyZTdlMS4uODhjYmI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMK
QEAgLTYxMCwxOSArNjEwLDEzIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5w
cm90b3R5cGUgPSB7CgogICAgIF90cmVlRWxlbWVudFNlbGVjdGVkOiBmdW5jdGlvbih0cmVlRWxl
bWVudCwgc2VsZWN0ZWRCeVVzZXIpCiAgICAgewotICAgICAgICBpZiAodHJlZUVsZW1lbnQgaW5z
dGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVlRWxlbWVudCkgewotICAgICAgICAg
ICAgLy8gRklYTUU6IEltcGxlbWVudCBET00gdHJlZSBpbnNwZWN0b3IgZm9yIGNvbnRlbnQgZmxv
dyB0cmVlIGVsZW1lbnRzLgotICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMjkyNwotICAgICAgICAgICAgY29uc29sZS5sb2coIkNvbnRlbnQg
RmxvdyB2aWV3IG5vdCBpbXBsZW1lbnRlZCIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0KICAgICAgICAgaWYgKHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkZv
bGRlclRyZWVFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICAgaWYgKHRyZWVF
bGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQgfHwgdHJl
ZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU2NyaXB0VHJlZUVsZW1lbnQgfHwKICAg
ICAgICAgICAgIHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlN0b3JhZ2VUcmVl
RWxlbWVudCB8fCB0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5EYXRhYmFzZVRh
YmxlVHJlZUVsZW1lbnQgfHwKLSAgICAgICAgICAgIHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2Vi
SW5zcGVjdG9yLkRhdGFiYXNlVHJlZUVsZW1lbnQgfHwgdHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQpIHsKKyAgICAgICAg
ICAgIHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRhdGFiYXNlVHJlZUVsZW1l
bnQgfHwgdHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNo
ZUZyYW1lVHJlZUVsZW1lbnQgfHwKKyAgICAgICAgICAgIHRyZWVFbGVtZW50IGluc3RhbmNlb2Yg
V2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93VHJlZUVsZW1lbnQpIHsKICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5jb250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXdGb3JSZXByZXNlbnRlZE9iamVj
dCh0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0K
</data>
<flag name="review"
          id="239138"
          type_id="1"
          status="+"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="239121"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216217</attachid>
            <date>2013-11-06 13:38:18 -0800</date>
            <delta_ts>2013-11-06 17:13:43 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug122927.v3.patch</filename>
            <type>text/plain</type>
            <size>17123</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDhjY2U2MzguLjMxYjc4NjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEzLTExLTA2ICBBbGV4YW5kcnUgQ2hp
Y3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDU1Mg
UmVnaW9uczogV2hlbiBhIGZsb3cgaXMgY2xpY2tlZCB0aGUgY29udGVudCBvZiBmbG93IG5lZWRz
IHRvIGJlIGRpc3BsYXllZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIyOTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgor
CisgICAgICAgIENvbnRlbnRGbG93VHJlZUNvbnRlbnRWaWV3IGlzIG5vdyB1c2VkIHRvIGRpc3Bs
YXkgdGhlIGNvbnRlbnQgbm9kZXMgb2YgYSBDb250ZW50Rmxvdy4gSXQgaXMKKyAgICAgICAgdmVy
eSBzaW1pbGFyIHRvIHRoZSBET01UcmVlQ29udGVudFZpZXcgY2xhc3MsIGJ1dCBjYW4gaGFuZGxl
IG11bHRpcGxlIHJvb3Qgbm9kZXMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRlbnRG
bG93VHJlZUNvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250
ZW50Rmxvd1RyZWVDb250ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudEZs
b3dUcmVlQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBzZWxlY3Rpb25QYXRoQ29tcG9uZW50cyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVlQ29udGVudFZpZXcucHJvdG90
eXBlLnVwZGF0ZUxheW91dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVl
Q29udGVudFZpZXcucHJvdG90eXBlLnNob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250
ZW50Rmxvd1RyZWVDb250ZW50Vmlldy5wcm90b3R5cGUuaGlkZGVuKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db250ZW50Rmxvd1RyZWVDb250ZW50Vmlldy5wcm90b3R5cGUuY2xvc2VkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1RyZWVDb250ZW50Vmlldy5wcm90b3R5cGUu
X3NlbGVjdGVkTm9kZURpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudEZs
b3dUcmVlQ29udGVudFZpZXcucHJvdG90eXBlLl9wYXRoQ29tcG9uZW50U2VsZWN0ZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93VHJlZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5f
Y3JlYXRlQ29udGVudE5vZGVUcmVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50Rmxv
d1RyZWVDb250ZW50Vmlldy5wcm90b3R5cGUuX2NyZWF0ZUNvbnRlbnRUcmVlcyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVlQ29udGVudFZpZXcucHJvdG90eXBlLl9jb250
ZW50Tm9kZVdhc0FkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvd1RyZWVD
b250ZW50Vmlldy5wcm90b3R5cGUuX2NvbnRlbnROb2RlV2FzUmVtb3ZlZCk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250
ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuaXNWaWV3YWJsZSk6
CisgICAgICAgICogVXNlckludGVyZmFjZS9ET01UcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUub25kZXNlbGVjdCk6IFdlIG5lZWQg
dG8gcmVtb3ZlIHRoZSBzZWxlY3RlZCAiZG9tIG5vZGUiCisgICAgICAgIHNvIHRoYXQgdGhlIGVs
ZW1lbnQgaXMgbm90IGdvaW5nIHRvIHN0YXkgc2VsZWN0ZWQgYWZ0ZXIgdGhlIHdlIG1vdmUgdG8g
YSBkaWZmZXJlbnQgRE9NIHRyZWUuCisgICAgICAgICogVXNlckludGVyZmFjZS9ET01UcmVlT3V0
bGluZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZS5wcm90b3R5cGUu
c2VsZWN0RE9NTm9kZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9NYWluLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnNpZGVi
YXJQYW5lbEZvclJlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Jl
c291cmNlU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5fdHJlZUVsZW1lbnRTZWxlY3RlZCk6CisKIDIwMTMtMTEtMDEg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgY3Vz
dG9tIEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kKCkgaW4gZmF2b3Igb2YgbmF0aXZlIHZlcnNpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRlbnRG
bG93LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udGVudEZsb3cu
anMKaW5kZXggZDJlMmM0NC4uNzI2MzE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udGVudEZsb3cuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udGVudEZsb3cuanMKQEAgLTEyLDcgKzEyLDcgQEAKICAqICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nCiAgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMKICAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIAorICoK
ICAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFT
IElTIiBBTkQgQU5ZCiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQogICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCkBAIC00Niw2ICs0Niw3IEBA
IFdlYkluc3BlY3Rvci5Db250ZW50Rmxvdy5FdmVudCA9IHsKIFdlYkluc3BlY3Rvci5Db250ZW50
Rmxvdy5wcm90b3R5cGUgPSB7CiAKICAgICBjb25zdHJ1Y3RvcjogV2ViSW5zcGVjdG9yLkNvbnRl
bnRGbG93LAorICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUsCiAK
ICAgICAvLyBQdWJsaWMKIApAQCAtMTA1LDYgKzEwNiwzIEBAIFdlYkluc3BlY3Rvci5Db250ZW50
Rmxvdy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdlYkluc3BlY3Rvci5Db250ZW50Rmxvdy5FdmVudC5Db250ZW50Tm9kZVdhc1JlbW92ZWQsIHtu
b2RlOiBjb250ZW50Tm9kZX0pOwogICAgIH0KIH07Ci0KLQotV2ViSW5zcGVjdG9yLkNvbnRlbnRG
bG93LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRlbnRG
bG93VHJlZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udGVudEZsb3dUcmVlQ29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNGExZDg5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRlbnRGbG93VHJlZUNvbnRlbnRWaWV3LmpzCkBAIC0wLDAg
KzEsMTg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFkb2JlIFN5c3RlbXMgSW5jb3Jw
b3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQor
ICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5Db250
ZW50Rmxvd1RyZWVDb250ZW50VmlldyA9IGZ1bmN0aW9uKGNvbnRlbnRGbG93KQoreworICAgIGNv
bnNvbGUuYXNzZXJ0KGNvbnRlbnRGbG93KTsKKworICAgIFdlYkluc3BlY3Rvci5Db250ZW50Vmll
dy5jYWxsKHRoaXMsIGNvbnRlbnRGbG93KTsKKworICAgIHRoaXMuX3NlbGVjdGVkVHJlZUVsZW1l
bnQgPSBudWxsOworCisgICAgLy8gTWFwIG9mIGNvbnRlbnROb2RlIGlkcyB0byBET01UcmVlT3V0
bGluZSBvYmplY3RzLgorICAgIHRoaXMuX25vZGVzTWFwID0gbmV3IE1hcCgpOworCisgICAgdGhp
cy5fY3JlYXRlQ29udGVudFRyZWVzKCk7CisKKyAgICBjb250ZW50Rmxvdy5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvdy5FdmVudC5Db250ZW50Tm9kZVdhc0FkZGVkLCB0
aGlzLl9jb250ZW50Tm9kZVdhc0FkZGVkLCB0aGlzKTsKKyAgICBjb250ZW50Rmxvdy5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db250ZW50Rmxvdy5FdmVudC5Db250ZW50Tm9kZVdhc1Jl
bW92ZWQsIHRoaXMuX2NvbnRlbnROb2RlV2FzUmVtb3ZlZCwgdGhpcyk7Cit9OworCitXZWJJbnNw
ZWN0b3IuQ29udGVudEZsb3dUcmVlQ29udGVudFZpZXcuU3R5bGVDbGFzc05hbWUgPSAiY29udGVu
dC1mbG93LXRyZWUiOworCitXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVlQ29udGVudFZpZXcu
cHJvdG90eXBlID0geworICAgIGNvbnN0cnVjdG9yOiBXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dU
cmVlQ29udGVudFZpZXcsCisgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcu
cHJvdG90eXBlLAorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgc2VsZWN0aW9uUGF0aENvbXBv
bmVudHMoKQorICAgIHsKKyAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gdGhpcy5fc2VsZWN0ZWRU
cmVlRWxlbWVudDsKKyAgICAgICAgdmFyIHBhdGhDb21wb25lbnRzID0gW107CisKKyAgICAgICAg
d2hpbGUgKHRyZWVFbGVtZW50ICYmICF0cmVlRWxlbWVudC5yb290KSB7CisgICAgICAgICAgICAv
LyBUaGUgY2xvc2UgdGFnIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGVsZW1lbnQgaXQgY2xvc2Vz
LiBTbyBza2lwIGl0IHNpbmNlIHdlIGRvbid0IHdhbnQgdG8KKyAgICAgICAgICAgIC8vIHNob3cg
dGhlIHNhbWUgbm9kZSB0d2ljZSBpbiB0aGUgaGllcmFyY2h5LgorICAgICAgICAgICAgaWYgKHRy
ZWVFbGVtZW50LmlzQ2xvc2VUYWcoKSkgeworICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50ID0g
dHJlZUVsZW1lbnQucGFyZW50OworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAvLyBGSVhNRTogQ29udGVudEZsb3cuY29udGVudE5vZGVzIHNo
b3VsZCBiZSBsaW5rZWQgdG8gZWFjaCBvdGhlci4KKyAgICAgICAgICAgIHZhciBwYXRoQ29tcG9u
ZW50ID0gbmV3IFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQodHJlZUVs
ZW1lbnQsIHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAgICAgIHBhdGhD
b21wb25lbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSGllcmFyY2hpY2FsUGF0aENv
bXBvbmVudC5FdmVudC5TaWJsaW5nV2FzU2VsZWN0ZWQsIHRoaXMuX3BhdGhDb21wb25lbnRTZWxl
Y3RlZCwgdGhpcyk7CisgICAgICAgICAgICBwYXRoQ29tcG9uZW50cy51bnNoaWZ0KHBhdGhDb21w
b25lbnQpOworCisgICAgICAgICAgICAvLyBEbyBub3QgZGlzcGxheSBlbGVtZW50cyBvdXRzaWRl
IHRoZSBDb250ZW50Rmxvdy4KKyAgICAgICAgICAgIGlmICh0aGlzLl9ub2Rlc01hcC5oYXModHJl
ZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QuaWQpKQorICAgICAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgICAgICB0cmVlRWxlbWVudCA9IHRyZWVFbGVtZW50LnBhcmVudDsKKyAgICAgICAg
fQorCisgICAgICAgIHJldHVybiBwYXRoQ29tcG9uZW50czsKKyAgICB9LAorCisgICAgdXBkYXRl
TGF5b3V0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9ub2Rlc01hcC5mb3JFYWNo
KGZ1bmN0aW9uKG5vZGUpIHsKKyAgICAgICAgICAgIG5vZGUudXBkYXRlU2VsZWN0aW9uKCk7Cisg
ICAgICAgIH0pOworICAgIH0sCisKKyAgICBzaG93bjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgdmFyIG9taXRGb2N1cyA9IFdlYkluc3BlY3Rvci5pc0NvbnNvbGVGb2N1c2VkKCk7CisgICAg
ICAgIHRoaXMuX25vZGVzTWFwLmZvckVhY2goZnVuY3Rpb24obm9kZSkgeworICAgICAgICAgICAg
bm9kZS5zZXRWaXNpYmxlKHRydWUsIG9taXRGb2N1cyk7CisgICAgICAgIH0pOworICAgIH0sCisK
KyAgICBoaWRkZW46IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21U
cmVlTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworICAgICAgICB0aGlzLl9ub2Rlc01h
cC5mb3JFYWNoKGZ1bmN0aW9uKG5vZGUpIHsKKyAgICAgICAgICAgIG5vZGUuc2V0VmlzaWJsZShm
YWxzZSk7CisgICAgICAgIH0pOworICAgIH0sCisKKyAgICBjbG9zZWQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQ29udGVudEZsb3cuRXZlbnQuQ29udGVudE5vZGVXYXNBZGRlZCwgdGhpcy5f
Y29udGVudE5vZGVXYXNBZGRlZCwgdGhpcyk7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudEZsb3cuRXZlbnQuQ29u
dGVudE5vZGVXYXNSZW1vdmVkLCB0aGlzLl9jb250ZW50Tm9kZVdhc1JlbW92ZWQsIHRoaXMpOwor
ICAgICAgICB0aGlzLl9ub2Rlc01hcC5mb3JFYWNoKGZ1bmN0aW9uKG5vZGUpIHsKKyAgICAgICAg
ICAgIG5vZGUuY2xvc2UoKTsKKyAgICAgICAgfSk7CisgICAgfSwKKworICAgIC8vIFByaXZhdGUK
KworICAgIF9zZWxlY3RlZE5vZGVEaWRDaGFuZ2U6IGZ1bmN0aW9uKGNvbnRlbnROb2RlT3V0bGlu
ZSwgZXZlbnQpCisgICAgeworICAgICAgICB2YXIgc2VsZWN0ZWRUcmVlRWxlbWVudCA9IGNvbnRl
bnROb2RlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50OworICAgICAgICBpZiAodGhpcy5fc2Vs
ZWN0ZWRUcmVlRWxlbWVudCA9PT0gc2VsZWN0ZWRUcmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBtb3ZpbmcgZnJvbSBvbmUgdHJlZSB0
byB0aGUgb3RoZXIgd2lsbCBkZXNlbGVjdCB0aGUgcHJldmlvdXMgZWxlbWVudC4KKyAgICAgICAg
aWYgKHRoaXMuX3NlbGVjdGVkVHJlZUVsZW1lbnQgJiYgdGhpcy5fc2VsZWN0ZWRUcmVlRWxlbWVu
dC50cmVlT3V0bGluZSAhPT0gY29udGVudE5vZGVPdXRsaW5lKQorICAgICAgICAgICAgdGhpcy5f
c2VsZWN0ZWRUcmVlRWxlbWVudC5kZXNlbGVjdCgpOworCisgICAgICAgIHRoaXMuX3NlbGVjdGVk
VHJlZUVsZW1lbnQgPSBzZWxlY3RlZFRyZWVFbGVtZW50OworICAgICAgICBpZiAoc2VsZWN0ZWRU
cmVlRWxlbWVudCkgeworICAgICAgICAgICAgLy8gRklYTUU6IFN3aXRjaGluZyBiZXR3ZWVuIGRp
ZmZlcmVudCBDb250ZW50Rmxvd1RyZWVDb250ZW50VmlldyBvciBET01UcmVlQ29udGVudFZpZXcg
ZWxlbWVudHMgc2hvdWxkIGNhbGwgQ29uc29sZUFnZW50LmFkZEluc3BlY3RlZE5vZGUuCisgICAg
ICAgICAgICBDb25zb2xlQWdlbnQuYWRkSW5zcGVjdGVkTm9kZShzZWxlY3RlZFRyZWVFbGVtZW50
LnJlcHJlc2VudGVkT2JqZWN0LmlkKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVudC5TZWxlY3Rp
b25QYXRoQ29tcG9uZW50c0RpZENoYW5nZSk7CisgICAgfSwKKworICAgIF9wYXRoQ29tcG9uZW50
U2VsZWN0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
ZXZlbnQuZGF0YS5wYXRoQ29tcG9uZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRPTVRyZWVF
bGVtZW50UGF0aENvbXBvbmVudCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV2ZW50LmRhdGEu
cGF0aENvbXBvbmVudC5kb21UcmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5ET01U
cmVlRWxlbWVudCk7CisKKyAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5wYXRo
Q29tcG9uZW50LmRvbVRyZWVFbGVtZW50OworICAgICAgICB0cmVlRWxlbWVudC50cmVlT3V0bGlu
ZS5zZWxlY3RET01Ob2RlKHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0LCB0cnVlKTsKKyAg
ICB9LAorCisgICAgX2NyZWF0ZUNvbnRlbnROb2RlVHJlZTogZnVuY3Rpb24obm9kZSkKKyAgICB7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9ub2Rlc01hcC5oYXMobm9kZS5pZCkpOwor
CisgICAgICAgIC8vIEZJWE1FOiBET01UcmVlJ3Mgc2hvdWxkIGJlIGxpbmtlZCB0byBlYWNoIG90
aGVyIHdoZW4gbmF2aWdhdGluZyB3aXRoIGtleWJvYXJkIHVwL2Rvd24gZXZlbnRzLgorICAgICAg
ICB2YXIgY29udGVudE5vZGVPdXRsaW5lID0gbmV3IFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGlu
ZShmYWxzZSwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgIGNvbnRlbnROb2RlT3V0bGluZS5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZS5FdmVudC5TZWxlY3RlZE5vZGVD
aGFuZ2VkLCB0aGlzLl9zZWxlY3RlZE5vZGVEaWRDaGFuZ2UuYmluZCh0aGlzLCBjb250ZW50Tm9k
ZU91dGxpbmUpLCB0aGlzKTsKKyAgICAgICAgY29udGVudE5vZGVPdXRsaW5lLnNldFZpc2libGUo
dGhpcy52aXNpYmxlLCBXZWJJbnNwZWN0b3IuaXNDb25zb2xlRm9jdXNlZCgpKTsKKyAgICAgICAg
Y29udGVudE5vZGVPdXRsaW5lLndpcmVUb0RvbUFnZW50KCk7CisgICAgICAgIGNvbnRlbnROb2Rl
T3V0bGluZS5yb290RE9NTm9kZSA9IG5vZGU7CisKKyAgICAgICAgdGhpcy5fbm9kZXNNYXAuc2V0
KG5vZGUuaWQsIGNvbnRlbnROb2RlT3V0bGluZSk7CisKKyAgICAgICAgcmV0dXJuIGNvbnRlbnRO
b2RlT3V0bGluZTsKKyAgICB9LAorCisgICAgX2NyZWF0ZUNvbnRlbnRUcmVlczogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgY29udGVudE5vZGUgb2YgdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5jb250ZW50Tm9kZXMpIHsKKyAgICAgICAgICAgIHZhciBjb250ZW50Tm9kZU91dGxp
bmUgPSB0aGlzLl9jcmVhdGVDb250ZW50Tm9kZVRyZWUoY29udGVudE5vZGUpOworICAgICAgICAg
ICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGNvbnRlbnROb2RlT3V0bGluZS5lbGVtZW50KTsK
KyAgICAgICAgfQorICAgIH0sCisKKyAgICBfY29udGVudE5vZGVXYXNBZGRlZDogZnVuY3Rpb24o
ZXZlbnQpCisgICAgeworICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLl9jcmVhdGVDb250
ZW50Tm9kZVRyZWUoZXZlbnQuZGF0YS5ub2RlKTsKKyAgICAgICAgaWYgKGV2ZW50LmRhdGEuYmVm
b3JlKSB7CisgICAgICAgICAgICB2YXIgYmVmb3JlRWxlbWVudCA9IHRoaXMuX25vZGVzTWFwLmdl
dChldmVudC5kYXRhLmJlZm9yZS5pZCk7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChiZWZv
cmVFbGVtZW50KTsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5pbnNlcnRCZWZvcmUodHJlZUVs
ZW1lbnQuZWxlbWVudCwgYmVmb3JlRWxlbWVudC5lbGVtZW50KTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodHJlZUVsZW1lbnQuZWxlbWVudCk7
CisgICAgfSwKKworICAgIF9jb250ZW50Tm9kZVdhc1JlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgdmFyIGNvbnRlbnROb2RlT3V0bGluZSA9IHRoaXMuX25vZGVzTWFwLmdl
dChldmVudC5kYXRhLm5vZGUuaWQpOworICAgICAgICBjb250ZW50Tm9kZU91dGxpbmUuY2xvc2Uo
KTsKKyAgICAgICAgY29udGVudE5vZGVPdXRsaW5lLmVsZW1lbnQucmVtb3ZlKCk7CisKKyAgICAg
ICAgdGhpcy5fbm9kZXNNYXAucmVtb3ZlKGV2ZW50LmRhdGEubm9kZS5pZCk7CisgICAgfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRlbnRW
aWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udGVudFZpZXcu
anMKaW5kZXggN2M0NzVjMi4uYTRiYjg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udGVudFZpZXcuanMKQEAgLTcyLDYgKzcyLDkgQEAgV2ViSW5z
cGVjdG9yLkNvbnRlbnRWaWV3ID0gZnVuY3Rpb24ocmVwcmVzZW50ZWRPYmplY3QpCiAgICAgICAg
IGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5DYW52YXNQcm9m
aWxlT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ2FudmFzUHJv
ZmlsZVZpZXcocmVwcmVzZW50ZWRPYmplY3QpOwogCisgICAgICAgIGlmIChyZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Db250ZW50RmxvdykKKyAgICAgICAgICAgIHJl
dHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93VHJlZUNvbnRlbnRWaWV3KHJlcHJlc2Vu
dGVkT2JqZWN0KTsKKwogICAgICAgICBpZiAodHlwZW9mIHJlcHJlc2VudGVkT2JqZWN0ID09PSAi
c3RyaW5nIiB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFN0cmluZykKICAgICAgICAg
ICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlRleHRDb250ZW50VmlldyhyZXByZXNlbnRlZE9i
amVjdCk7CiAKQEAgLTEyNiw2ICsxMjksOCBAQCBXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuaXNW
aWV3YWJsZSA9IGZ1bmN0aW9uKHJlcHJlc2VudGVkT2JqZWN0KQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ2Fu
dmFzUHJvZmlsZU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93KQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICBpZiAodHlwZW9mIHJlcHJlc2VudGVkT2JqZWN0ID09PSAic3RyaW5n
IiB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFN0cmluZykKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvRE9NVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9ET01UcmVlRWxlbWVudC5qcwppbmRleCBiNDA3NDAyLi4wN2JkODll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9ET01UcmVl
RWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9ET01U
cmVlRWxlbWVudC5qcwpAQCAtNDgxLDYgKzQ4MSwxMSBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVs
ZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnN1cHByZXNzUmV2
ZWFsQW5kU2VsZWN0ID0gZmFsc2U7CiAgICAgfSwKIAorICAgIG9uZGVzZWxlY3Q6IGZ1bmN0aW9u
KHRyZWVFbGVtZW50KQorICAgIHsKKyAgICAgICAgdGhpcy50cmVlT3V0bGluZS5zZWxlY3RET01O
b2RlKG51bGwpOworICAgIH0sCisKICAgICBvbmRlbGV0ZTogZnVuY3Rpb24oKQogICAgIHsKICAg
ICAgICAgdmFyIHN0YXJ0VGFnVHJlZUVsZW1lbnQgPSB0aGlzLnRyZWVPdXRsaW5lLmZpbmRUcmVl
RWxlbWVudCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RPTVRyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NVHJlZU91dGxpbmUuanMKaW5kZXggODk1MTAwYS4u
MTdmYTVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
RE9NVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvRE9NVHJlZU91dGxpbmUuanMKQEAgLTE1NSw3ICsxNTUsOCBAQCBXZWJJbnNwZWN0b3IuRE9N
VHJlZU91dGxpbmUucHJvdG90eXBlID0gewogICAgICAgICAvLyBhbmQgdGhlIHNlbGVjdCgpIGNh
bGwgd291bGQgY2hhbmdlIHRoZSBzZWxlY3RlZERPTU5vZGUgYW5kIHJlZW50ZXIgdGhpcyBzZXR0
ZXIuIFNvIHRvCiAgICAgICAgIC8vIGF2b2lkIGNhbGxpbmcgX3NlbGVjdGVkTm9kZUNoYW5nZWQo
KSB0d2ljZSwgZmlyc3QgY2hlY2sgaWYgX3NlbGVjdGVkRE9NTm9kZSBpcyB0aGUgc2FtZQogICAg
ICAgICAvLyBub2RlIGFzIHRoZSBvbmUgcGFzc2VkIGluLgotICAgICAgICBpZiAodGhpcy5fc2Vs
ZWN0ZWRET01Ob2RlID09PSBub2RlKQorICAgICAgICAvLyBOb3RlIHRoYXQgX3JldmVhbEFuZFNl
bGVjdE5vZGUgd2lsbCBub3QgZG8gYW55dGhpbmcgZm9yIGEgbnVsbCBub2RlLgorICAgICAgICBp
ZiAoIW5vZGUgfHwgdGhpcy5fc2VsZWN0ZWRET01Ob2RlID09PSBub2RlKQogICAgICAgICAgICAg
dGhpcy5fc2VsZWN0ZWROb2RlQ2hhbmdlZCgpOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCA4NjZmYWQ2Li4wOWQxMzc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC00
MDAsNiArNDAwLDcgQEAKICAgICA8c2NyaXB0IHNyYz0iTUlNRVR5cGVVdGlsaXRpZXMuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJMb2FkTG9jYWxpemVkU3RyaW5ncy5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkdvVG9MaW5lRGlhbG9nLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iQ29udGVudEZsb3dUcmVlQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJNYWluLmpzIj48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQ+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5qcwppbmRleCAxNTJmNjNhLi5mODQ0
NTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWlu
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uanMKQEAg
LTMyMiw3ICszMjIsNyBAQCBXZWJJbnNwZWN0b3Iuc2lkZWJhclBhbmVsRm9yQ3VycmVudENvbnRl
bnRWaWV3ID0gZnVuY3Rpb24oKQogV2ViSW5zcGVjdG9yLnNpZGViYXJQYW5lbEZvclJlcHJlc2Vu
dGVkT2JqZWN0ID0gZnVuY3Rpb24ocmVwcmVzZW50ZWRPYmplY3QpCiB7CiAgICAgaWYgKHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkZyYW1lIHx8IHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlIHx8Ci0gICAgICAgIHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNjcmlwdCkKKyAgICAgICAgcmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU2NyaXB0IHx8IHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93KQogICAgICAgICBy
ZXR1cm4gdGhpcy5yZXNvdXJjZVNpZGViYXJQYW5lbDsKIAogICAgIGlmIChyZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlT2JqZWN0IHx8IHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvb2tpZVN0b3JhZ2VPYmplY3QgfHwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Jlc291cmNl
U2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUmVz
b3VyY2VTaWRlYmFyUGFuZWwuanMKaW5kZXggYzQyZTdlMS4uODhjYmI3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUmVzb3VyY2VTaWRlYmFyUGFuZWwu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUmVzb3VyY2VTaWRl
YmFyUGFuZWwuanMKQEAgLTYxMCwxOSArNjEwLDEzIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNp
ZGViYXJQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBfdHJlZUVsZW1lbnRTZWxlY3RlZDogZnVu
Y3Rpb24odHJlZUVsZW1lbnQsIHNlbGVjdGVkQnlVc2VyKQogICAgIHsKLSAgICAgICAgaWYgKHRy
ZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93VHJlZUVsZW1lbnQp
IHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgRE9NIHRyZWUgaW5zcGVjdG9yIGZv
ciBjb250ZW50IGZsb3cgdHJlZSBlbGVtZW50cy4KLSAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI5MjcKLSAgICAgICAgICAgIGNvbnNvbGUu
bG9nKCJDb250ZW50IEZsb3cgdmlldyBub3QgaW1wbGVtZW50ZWQiKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotCiAgICAgICAgIGlmICh0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdl
Ykluc3BlY3Rvci5Gb2xkZXJUcmVlRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
RWxlbWVudCB8fCB0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TY3JpcHRUcmVl
RWxlbWVudCB8fAogICAgICAgICAgICAgdHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0
b3IuU3RvcmFnZVRyZWVFbGVtZW50IHx8IHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVj
dG9yLkRhdGFiYXNlVGFibGVUcmVlRWxlbWVudCB8fAotICAgICAgICAgICAgdHJlZUVsZW1lbnQg
aW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRGF0YWJhc2VUcmVlRWxlbWVudCB8fCB0cmVlRWxlbWVu
dCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVu
dCkgeworICAgICAgICAgICAgdHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRGF0
YWJhc2VUcmVlRWxlbWVudCB8fCB0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5B
cHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudCB8fAorICAgICAgICAgICAgdHJlZUVsZW1l
bnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29udGVudEZsb3dUcmVlRWxlbWVudCkgewogICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlld0ZvclJl
cHJlc2VudGVkT2JqZWN0KHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>