<?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>16529</bug_id>
          
          <creation_ts>2007-12-20 07:45:25 -0800</creation_ts>
          <short_desc>Web Inspector: support drag and drop of CSS classes and ids onto DOM nodes</short_desc>
          <delta_ts>2016-09-15 17:58:26 -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>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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Danny Bloemendaal">danny.bloemendaal</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>mrowe</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>64815</commentid>
    <comment_count>0</comment_count>
    <who name="Danny Bloemendaal">danny.bloemendaal</who>
    <bug_when>2007-12-20 07:45:25 -0800</bug_when>
    <thetext>Something missing in firebug (ok, we take that as an example ;-)) is that you cannot create new classes and connect it to a node. Together with issue #16528 this could be a very good addition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68653</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-01-29 11:08:53 -0800</bug_when>
    <thetext>&lt;rdar://problem/5712891&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156401</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-20 22:08:58 -0700</bug_when>
    <thetext>Adding/Editing Selectors was added in bug 27124.  This allows you to create a &quot;new class&quot;.

As for &quot;connecting it to a node&quot; this is more complex. Currently you can do this by editing or creating the &quot;class&quot; attribute on the element in the element tree hierarchy.

This could be a nice case for HTML5 Drag and Drop (DnD).  Drag a Selector and drop it onto a node in the hierarchy.  The problem I see here is that it wouldn&apos;t be immediately obvious.  Take the following scenarios:

- Drag CSS Selector named &quot;.highlight&quot; onto a node in the tree and add the class name &quot;highlight&quot; to that node.  This makes sense because the selector itself is a &quot;class&quot; selector.

- Drag CSS Selector named &quot;#footer&quot; onto a node in the tree to apply all of the style rules inside the selector to that node&apos;s style attribute.  This is not immediately obvious, and should probably be avoided.  Editing the selector (already possible) might remedy this problem.

If we add DnD between CSS Selectors and the Elements Tree then I propose that only &quot;.classname&quot; selectors be given that privilege.  As always, discoverability is  major problem with these kinds of situations.  Otherwise I think DnD for the Styles Panel would be better suited to reordering the styles (changing the specificity).

Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156448</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-21 03:23:49 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; If we add DnD between CSS Selectors and the Elements Tree then I propose that
&gt; only &quot;.classname&quot; selectors be given that privilege.  As always,
&gt; discoverability is  major problem with these kinds of situations.  Otherwise I
&gt; think DnD for the Styles Panel would be better suited to reordering the styles
&gt; (changing the specificity).

I love the idea and agree with this. Tricky when it is a complex nested selector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226580</commentid>
    <comment_count>4</comment_count>
      <attachid>287994</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-09-05 22:26:54 -0700</bug_when>
    <thetext>Created attachment 287994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226877</commentid>
    <comment_count>5</comment_count>
      <attachid>287994</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-09-06 15:33:13 -0700</bug_when>
    <thetext>Comment on attachment 287994
Patch

Code change looks pretty good. Devin is going to try adding live-preview for the drag target, so clearing r?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227063</commentid>
    <comment_count>6</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-09-06 23:35:19 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 287994 [details]
&gt; Patch
&gt; 
&gt; Code change looks pretty good. Devin is going to try adding live-preview for
&gt; the drag target, so clearing r?.

So according to the spec, the data inside a drag event is only visible from said event during the &quot;dragstart&quot; and &quot;drop&quot; events.  As such, I could make it so that there is some sort of static variable on CSSStyleDetailsSidebarPanel (or some other class), but it seems like a layering violation.  I know that adding a simple visual indicator (like a box around the DOM node tree element) is doable, but it seems like having live-preview would require more effort than I anticipated.  If we are fine with the (assumed) layering-violation, or there is a simpler workaround, then I would prefer to do that (unless live-preview causes other performance/visual problems).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229867</commentid>
    <comment_count>7</comment_count>
      <attachid>287994</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-14 18:59:11 -0700</bug_when>
    <thetext>Comment on attachment 287994
Patch

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

I&apos;ll let Brian do a full review. I just had a comment when skimming.

&gt; Source/WebInspectorUI/UserInterface/Models/DOMNode.js:434
&gt; +            function toggleClass(className, flag)
&gt; +            {
&gt; +                this.classList.toggle(className, flag);
&gt; +            }

Style: I&apos;ve been naming functions that run on the inspected page with an obvious prefix and indication of what the this object is. Because we support older backends (like iOS 7), the code that runs inside this function may need to be run in an environment lacking some modern features (iOS 7 supports ES5 with very little ES6). That is not an issue here, but its a good indication to the person reading the code that they need to be careful.

Lets name this function:

    function inspectedPage_node_toggleClass(className, flag) {
        this.classList.toggle(className, flag);
    }

I realize now after reading more of the patch that this is just moved code. I think it would be worth the rename, either now or later I can follow-up and rename them all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230250</commentid>
    <comment_count>8</comment_count>
      <attachid>287994</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-09-15 16:59:34 -0700</bug_when>
    <thetext>Comment on attachment 287994
Patch

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

r=me, but please rename the injected script function.

&gt; Source/WebInspectorUI/UserInterface/Models/DOMNode.js:431
&gt; +            function toggleClass(className, flag)

Side note: I really wish we didn&apos;t use `this` in injected functions, because using an arrow function (perhaps in a refactoring) will break the code. I personally prefer python&apos;s approach of passing self as first argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230262</commentid>
    <comment_count>9</comment_count>
      <attachid>289021</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-09-15 17:25:58 -0700</bug_when>
    <thetext>Created attachment 289021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230280</commentid>
    <comment_count>10</comment_count>
      <attachid>289021</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-15 17:58:22 -0700</bug_when>
    <thetext>Comment on attachment 289021
Patch

Clearing flags on attachment: 289021

Committed r206008: &lt;http://trac.webkit.org/changeset/206008&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230281</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-15 17:58:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287994</attachid>
            <date>2016-09-05 22:26:54 -0700</date>
            <delta_ts>2016-09-15 17:25:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-16529-20160905222432.patch</filename>
            <type>text/plain</type>
            <size>14073</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDdhMDZmMDcxYTk5YjM1N2M0NjY0NGRjMWRhYWQx
YWM5Y2IxN2EwYTYuLjc5YjkzZjNlMGJlOTM5Mzk1YTY1NDdlNTMzNzJhNzYwYjk2YTA5YzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE2LTA5LTA1ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHN1cHBvcnQgZHJhZyBhbmQgZHJvcCBvZiBDU1MgY2xhc3NlcyBhbmQgaWRzIG9udG8g
RE9NIG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjUyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01Ob2RlLnByb3RvdHlwZS50b2dnbGVDbGFzcy5yZXNvbHZlZE5vZGUudG9nZ2xlQ2xhc3Mp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLnRvZ2dsZUNsYXNzLnJl
c29sdmVkTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUudG9n
Z2xlQ2xhc3MpOgorICAgICAgICBNb3ZlZCBmcm9tIFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFp
bHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl90b2dnbGVDbGFzcy4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5jb21wdXRlZFN0
eWxlRGV0YWlsc1BhbmVsU2hvd1Byb3BlcnR5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NT
dHlsZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3N3
aXRjaFBhbmVscyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJh
clBhbmVsLnByb3RvdHlwZS5fY2xhc3NUb2dnbGVCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9hZGRDbGFz
c0lucHV0Qmx1cik6CisgICAgICAgIEFkZGVkIGEgc2V0dGluZyBmb3IgYXV0by1leHBhbmRpbmcg
dGhlIENsYXNzZXMgdG9nZ2xlIGxpc3QgYmFzZWQgb24gdGhlIHByZXZpb3VzIHN0YXRlLgorICAg
ICAgICBBbHNvIHJlbmFtZWQgdGhlIGV4aXN0aW5nIF9sYXN0U2VsZWN0ZWRTZWN0aW9uU2V0dGlu
ZyB0byBfbGFzdFNlbGVjdGVkUGFuZWxTZXR0aW5nIHNpbmNlIHRoZQorICAgICAgICBzZXR0aW5n
IGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0byBkbyB3aXRoIHRoZSBsYXN0IHNlbGVjdGVkIHNlY3Rp
b24uCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwu
cHJvdG90eXBlLl9jcmVhdGVUb2dnbGVGb3JDbGFzc05hbWUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5Ub2dnbGVkQ2xhc3Nlc0RyYWdUeXBlKToK
KyAgICAgICAgQWRkZWQgZnVuY3Rpb25hbGl0eSB0byBhbGxvdyBkcmFnZ2luZyBvZiBhIGNsYXNz
TmFtZSB0b2dnbGUncyB0ZXh0IChub3QgdGhlIGNoZWNrYm94KSBieQorICAgICAgICB1c2luZyBh
IGN1c3RvbSB0eXBlLCBwcmV2ZW50aW5nIHRoZSB2YWx1ZSBmcm9tIGJlaW5nIGRyb3BwZWQgYW55
d2hlcmUgZXhjZXB0IHRoZSBET00gdHJlZS4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0
eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX2NyZWF0ZVRvZ2dsZUZvckNsYXNzTmFt
ZS5jbGFzc05hbWVUb2dnbGVDaGFuZ2VkKToKKyAgICAgICAgUmVzdHJ1Y3R1cmVkIHRvIHVzZSBh
cnJvdyBmdW5jdGlvbiB0byBhdm9pZCBmdW5jdGlvbiBiaW5kaW5nLgorCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fdG9nZ2xlQ2xh
c3MucmVzb2x2ZWROb2RlLnRvZ2dsZUNsYXNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl90b2dnbGVDbGFzcy5y
ZXNvbHZlZE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0
YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3RvZ2dsZUNsYXNzKTogRGVsZXRlZC4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRE9NVHJlZU91dGxpbmUucHJvdG90eXBlLl9vbmRyYWdvdmVyKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZS5wcm90b3R5cGUuX29uZHJvcC5jYWxsYmFj
ayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZU91dGxpbmUucHJvdG90eXBlLl9vbmRy
b3ApOgorICAgICAgICBBbGxvdyBkcmFnZ2luZyB3aGVuIHRoZSBkYXRhVHJhbnNmZXIgb2JqZWN0
IGNvbnRhaW5zIHRoZSB0eXBlIHNwZWNpZmllZCBieQorICAgICAgICBXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLlRvZ2dsZWRDbGFzc2VzRHJhZ1R5cGUuICBUaGUgdmFs
dWUgZm9yIHRoYXQgdHlwZQorICAgICAgICB3aWxsIGJlIGFkZGVkIHRvIHRoZSBkcm9wcGVkIGVs
ZW1lbnQncyBjbGFzc0xpc3QuCisKIDIwMTYtMDktMDQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29y
YXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFbmFibGUgYW5kIGVuZm9y
Y2Ugc29tZSByZWNvbW1lbmRlZCBhbmQgc3R5bGlzdGljIEVTTGludCBydWxlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcwpp
bmRleCBkZjdjNjRjNzVkYTM0OWYyZGM3ZTJmNjIyZjlhZTM3YTYyZmRmMzQ4Li5iY2YzMzEzMjc5
MDMxNmI3YWZlMzE2NTAyNGEzMWZmYzI5MGI4ZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcwpAQCAtNDEwLDYgKzQx
MCwzNiBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIERPTUFnZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmlk
LCBuYW1lLCBteWNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0KIAorICAgIHRvZ2dsZUNsYXNz
KGNsYXNzTmFtZSwgZmxhZykKKyAgICB7CisgICAgICAgIGlmICghY2xhc3NOYW1lIHx8ICFjbGFz
c05hbWUubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLmlz
UHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgICAgICB0aGlzLnBhcmVudE5vZGUudG9nZ2xlQ2xh
c3MoY2xhc3NOYW1lLCBmbGFnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh0aGlzLm5vZGVUeXBlKCkgIT09IE5vZGUuRUxFTUVOVF9OT0RFKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIGZ1bmN0aW9uIHJlc29sdmVkTm9kZShvYmplY3QpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICghb2JqZWN0KQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICAgICAgZnVuY3Rpb24gdG9nZ2xlQ2xhc3MoY2xhc3NOYW1lLCBmbGFnKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRoaXMuY2xhc3NMaXN0LnRvZ2dsZShjbGFz
c05hbWUsIGZsYWcpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBvYmplY3QuY2FsbEZ1
bmN0aW9uKHRvZ2dsZUNsYXNzLCBbY2xhc3NOYW1lLCBmbGFnXSk7CisgICAgICAgICAgICBvYmpl
Y3QucmVsZWFzZSgpOworICAgICAgICB9CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5yZXNvbHZlTm9kZSh0aGlzLCAiIiwgcmVzb2x2ZWROb2RlKTsKKyAgICB9CisKICAgICBn
ZXRDaGlsZE5vZGVzKGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW4p
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCAz
NzRjNjllNTgxZGI2NmZlNTBkYTkxMjI4MzA0ZDIyZjYxYjliMjRiLi41ZmE0NzMxYzYyZGNmNjg2
OWY5OTAwNDJjNTA3YTg4ODc3OGUzOWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZXRh
aWxzU2lkZWJhclBhbmVsLmpzCkBAIC0zNyw5ICszNywxMCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVs
IGV4dAogICAgICAgICB0aGlzLl9wYW5lbHMgPSBbdGhpcy5fY29tcHV0ZWRTdHlsZURldGFpbHNQ
YW5lbCwgdGhpcy5fcnVsZXNTdHlsZURldGFpbHNQYW5lbCwgdGhpcy5fdmlzdWFsU3R5bGVEZXRh
aWxzUGFuZWxdOwogICAgICAgICB0aGlzLl9wYW5lbE5hdmlnYXRpb25JbmZvID0gW3RoaXMuX2Nv
bXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwubmF2aWdhdGlvbkluZm8sIHRoaXMuX3J1bGVzU3R5bGVE
ZXRhaWxzUGFuZWwubmF2aWdhdGlvbkluZm8sIHRoaXMuX3Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVs
Lm5hdmlnYXRpb25JbmZvXTsKIAotICAgICAgICB0aGlzLl9sYXN0U2VsZWN0ZWRTZWN0aW9uU2V0
dGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGluZygibGFzdC1zZWxlY3RlZC1zdHlsZS1kZXRh
aWxzLXBhbmVsIiwgdGhpcy5fcnVsZXNTdHlsZURldGFpbHNQYW5lbC5uYXZpZ2F0aW9uSW5mby5p
ZGVudGlmaWVyKTsKKyAgICAgICAgdGhpcy5fbGFzdFNlbGVjdGVkUGFuZWxTZXR0aW5nID0gbmV3
IFdlYkluc3BlY3Rvci5TZXR0aW5nKCJsYXN0LXNlbGVjdGVkLXN0eWxlLWRldGFpbHMtcGFuZWwi
LCB0aGlzLl9ydWxlc1N0eWxlRGV0YWlsc1BhbmVsLm5hdmlnYXRpb25JbmZvLmlkZW50aWZpZXIp
OworICAgICAgICB0aGlzLl9jbGFzc0xpc3RDb250YWluZXJUb2dnbGVkU2V0dGluZyA9IG5ldyBX
ZWJJbnNwZWN0b3IuU2V0dGluZygiY2xhc3MtbGlzdC1jb250YWluZXItdG9nZ2xlZCIsIGZhbHNl
KTsKIAotICAgICAgICB0aGlzLl9pbml0aWFsbHlTZWxlY3RlZFBhbmVsID0gdGhpcy5fcGFuZWxN
YXRjaGluZ0lkZW50aWZpZXIodGhpcy5fbGFzdFNlbGVjdGVkU2VjdGlvblNldHRpbmcudmFsdWUp
IHx8IHRoaXMuX3J1bGVzU3R5bGVEZXRhaWxzUGFuZWw7CisgICAgICAgIHRoaXMuX2luaXRpYWxs
eVNlbGVjdGVkUGFuZWwgPSB0aGlzLl9wYW5lbE1hdGNoaW5nSWRlbnRpZmllcih0aGlzLl9sYXN0
U2VsZWN0ZWRQYW5lbFNldHRpbmcudmFsdWUpIHx8IHRoaXMuX3J1bGVzU3R5bGVEZXRhaWxzUGFu
ZWw7CiAKICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkl0ZW0gPSBuZXcgV2ViSW5zcGVjdG9yLlNj
b3BlUmFkaW9CdXR0b25OYXZpZ2F0aW9uSXRlbSh0aGlzLmlkZW50aWZpZXIsIHRoaXMuZGlzcGxh
eU5hbWUsIHRoaXMuX3BhbmVsTmF2aWdhdGlvbkluZm8sIHRoaXMuX2luaXRpYWxseVNlbGVjdGVk
UGFuZWwubmF2aWdhdGlvbkluZm8pOwogICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uSXRlbS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TY29wZVJhZGlvQnV0dG9uTmF2aWdhdGlvbkl0ZW0u
RXZlbnQuU2VsZWN0ZWRJdGVtQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2VsZWN0ZWRJdGVtQ2hhbmdl
ZCwgdGhpcyk7CkBAIC03Nyw3ICs3OCw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNT
aWRlYmFyUGFuZWwgPSBjbGFzcyBDU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0CiAgICAg
ICAgIHRoaXMuX3J1bGVzU3R5bGVEZXRhaWxzUGFuZWwuc2Nyb2xsVG9TZWN0aW9uQW5kSGlnaGxp
Z2h0UHJvcGVydHkocHJvcGVydHkpOwogICAgICAgICB0aGlzLl9zd2l0Y2hQYW5lbHModGhpcy5f
cnVsZXNTdHlsZURldGFpbHNQYW5lbCk7CiAKLSAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkl0ZW0u
c2VsZWN0ZWRJdGVtSWRlbnRpZmllciA9IHRoaXMuX2xhc3RTZWxlY3RlZFNlY3Rpb25TZXR0aW5n
LnZhbHVlOworICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uSXRlbS5zZWxlY3RlZEl0ZW1JZGVudGlm
aWVyID0gdGhpcy5fbGFzdFNlbGVjdGVkUGFuZWxTZXR0aW5nLnZhbHVlOwogICAgIH0KIAogICAg
IC8vIFByb3RlY3RlZApAQCAtMjAxLDYgKzIwMiw5IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURl
dGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0
CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc1N0eWxlTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5DU1NTdHlsZU1hbmFnZXIuRXZlbnQuU3R5bGVTaGVldEFkZGVkLCB0aGlz
Ll9zdHlsZVNoZWV0QWRkZWRPclJlbW92ZWQsIHRoaXMpOwogICAgICAgICBXZWJJbnNwZWN0b3Iu
Y3NzU3R5bGVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTWFu
YWdlci5FdmVudC5TdHlsZVNoZWV0UmVtb3ZlZCwgdGhpcy5fc3R5bGVTaGVldEFkZGVkT3JSZW1v
dmVkLCB0aGlzKTsKKworICAgICAgICBpZiAodGhpcy5fY2xhc3NMaXN0Q29udGFpbmVyVG9nZ2xl
ZFNldHRpbmcudmFsdWUpCisgICAgICAgICAgICB0aGlzLl9jbGFzc1RvZ2dsZUJ1dHRvbkNsaWNr
ZWQoKTsKICAgICB9CiAKICAgICBzaXplRGlkQ2hhbmdlKCkKQEAgLTI3OCw3ICsyODIsNyBAQCBX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQ1NTU3R5bGVE
ZXRhaWxzU2lkZWJhclBhbmVsIGV4dAogICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQu
Y2xhc3NMaXN0LnRvZ2dsZSgic3VwcG9ydHMtbmV3LXJ1bGUiLCB0eXBlb2YgdGhpcy5fc2VsZWN0
ZWRQYW5lbC5uZXdSdWxlQnV0dG9uQ2xpY2tlZCA9PT0gImZ1bmN0aW9uIik7CiAgICAgICAgIHRo
aXMuX3NlbGVjdGVkUGFuZWwuc2hvd24oKTsKIAotICAgICAgICB0aGlzLl9sYXN0U2VsZWN0ZWRT
ZWN0aW9uU2V0dGluZy52YWx1ZSA9IHNlbGVjdGVkUGFuZWwubmF2aWdhdGlvbkluZm8uaWRlbnRp
ZmllcjsKKyAgICAgICAgdGhpcy5fbGFzdFNlbGVjdGVkUGFuZWxTZXR0aW5nLnZhbHVlID0gc2Vs
ZWN0ZWRQYW5lbC5uYXZpZ2F0aW9uSW5mby5pZGVudGlmaWVyOwogICAgIH0KIAogICAgIF9mb3Jj
ZWRQc2V1ZG9DbGFzc0NoZWNrYm94Q2hhbmdlZChwc2V1ZG9DbGFzcywgZXZlbnQpCkBAIC0zMjks
NiArMzMzLDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNs
YXNzIENTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCBleHQKICAgICB7CiAgICAgICAgIHRoaXMu
X2NsYXNzVG9nZ2xlQnV0dG9uLmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdGVkIik7CiAgICAgICAg
IHRoaXMuX2NsYXNzTGlzdENvbnRhaW5lci5oaWRkZW4gPSAhdGhpcy5fY2xhc3NMaXN0Q29udGFp
bmVyLmhpZGRlbjsKKyAgICAgICAgdGhpcy5fY2xhc3NMaXN0Q29udGFpbmVyVG9nZ2xlZFNldHRp
bmcudmFsdWUgPSAhdGhpcy5fY2xhc3NMaXN0Q29udGFpbmVyLmhpZGRlbjsKICAgICAgICAgaWYg
KHRoaXMuX2NsYXNzTGlzdENvbnRhaW5lci5oaWRkZW4pCiAgICAgICAgICAgICByZXR1cm47CiAK
QEAgLTM1MSw3ICszNTYsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBh
bmVsID0gY2xhc3MgQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsIGV4dAogCiAgICAgX2FkZENs
YXNzSW5wdXRCbHVyKGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5fdG9nZ2xlQ2xhc3MuY2Fs
bCh0aGlzLCB0aGlzLl9hZGRDbGFzc0lucHV0LnZhbHVlLCB0cnVlKTsKKyAgICAgICAgdGhpcy5k
b21Ob2RlLnRvZ2dsZUNsYXNzKHRoaXMuX2FkZENsYXNzSW5wdXQudmFsdWUsIHRydWUpOwogICAg
ICAgICB0aGlzLl9hZGRDbGFzc0NvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKTsK
ICAgICAgICAgdGhpcy5fYWRkQ2xhc3NJbnB1dC52YWx1ZSA9IG51bGw7CiAgICAgfQpAQCAtNDA1
LDU0ICs0MTAsMjYgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCA9
IGNsYXNzIENTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCBleHQKIAogICAgICAgICBsZXQgY2xh
c3NOYW1lVGl0bGUgPSBjbGFzc05hbWVDb250YWluZXIuY3JlYXRlQ2hpbGQoInNwYW4iKTsKICAg
ICAgICAgY2xhc3NOYW1lVGl0bGUudGV4dENvbnRlbnQgPSBjbGFzc05hbWU7CisgICAgICAgIGNs
YXNzTmFtZVRpdGxlLmRyYWdnYWJsZSA9IHRydWU7CisgICAgICAgIGNsYXNzTmFtZVRpdGxlLmFk
ZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsIChldmVudCkgPT4geworICAgICAgICAgICAgZXZl
bnQuZGF0YVRyYW5zZmVyLnNldERhdGEoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGVi
YXJQYW5lbC5Ub2dnbGVkQ2xhc3Nlc0RyYWdUeXBlLCBjbGFzc05hbWUpOworICAgICAgICAgICAg
ZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSAiY29weSI7CisgICAgICAgIH0pOwog
Ci0gICAgICAgIGZ1bmN0aW9uIGNsYXNzTmFtZVRvZ2dsZUNoYW5nZWQoZXZlbnQpIHsKLSAgICAg
ICAgICAgIHRoaXMuX3RvZ2dsZUNsYXNzLmNhbGwodGhpcywgY2xhc3NOYW1lLCBjbGFzc05hbWVU
b2dnbGUuY2hlY2tlZCk7CisgICAgICAgIGxldCBjbGFzc05hbWVUb2dnbGVDaGFuZ2VkID0gKGV2
ZW50KSA9PiB7CisgICAgICAgICAgICB0aGlzLmRvbU5vZGUudG9nZ2xlQ2xhc3MoY2xhc3NOYW1l
LCBjbGFzc05hbWVUb2dnbGUuY2hlY2tlZCk7CiAgICAgICAgICAgICBjbGFzc1RvZ2dsZWRNYXAu
c2V0KGNsYXNzTmFtZSwgY2xhc3NOYW1lVG9nZ2xlLmNoZWNrZWQpOwotICAgICAgICB9CisgICAg
ICAgIH07CiAKLSAgICAgICAgY2xhc3NOYW1lVG9nZ2xlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgY2xhc3NOYW1lVG9nZ2xlQ2hhbmdlZC5iaW5kKHRoaXMpKTsKKyAgICAgICAgY2xhc3NOYW1l
VG9nZ2xlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgY2xhc3NOYW1lVG9nZ2xlQ2hhbmdlZCk7
CiAgICAgICAgIGNsYXNzTmFtZVRpdGxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKGV2ZW50
KSA9PiB7CiAgICAgICAgICAgICBjbGFzc05hbWVUb2dnbGUuY2hlY2tlZCA9ICFjbGFzc05hbWVU
b2dnbGUuY2hlY2tlZDsKLSAgICAgICAgICAgIGNsYXNzTmFtZVRvZ2dsZUNoYW5nZWQuY2FsbCh0
aGlzKTsKKyAgICAgICAgICAgIGNsYXNzTmFtZVRvZ2dsZUNoYW5nZWQoKTsKICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fY2xhc3NMaXN0Q29udGFpbmVyLmFwcGVuZENoaWxkKGNsYXNzTmFt
ZUNvbnRhaW5lcik7CiAgICAgfQogCi0gICAgX3RvZ2dsZUNsYXNzKGNsYXNzTmFtZSwgZmxhZykK
LSAgICB7Ci0gICAgICAgIGlmICghY2xhc3NOYW1lIHx8ICFjbGFzc05hbWUubGVuZ3RoKQotICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBlZmZlY3RpdmVOb2RlID0gdGhpcy5kb21O
b2RlOwotICAgICAgICBpZiAoZWZmZWN0aXZlTm9kZSAmJiBlZmZlY3RpdmVOb2RlLmlzUHNldWRv
RWxlbWVudCgpKQotICAgICAgICAgICAgZWZmZWN0aXZlTm9kZSA9IGVmZmVjdGl2ZU5vZGUucGFy
ZW50Tm9kZTsKLQotICAgICAgICBjb25zb2xlLmFzc2VydChlZmZlY3RpdmVOb2RlKTsKLSAgICAg
ICAgaWYgKCFlZmZlY3RpdmVOb2RlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlm
IChlZmZlY3RpdmVOb2RlLm5vZGVUeXBlKCkgIT09IE5vZGUuRUxFTUVOVF9OT0RFKQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZ1bmN0aW9uIHJlc29sdmVkTm9kZShvYmplY3QpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGlmICghb2JqZWN0KQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICAgICAgZnVuY3Rpb24gdG9nZ2xlQ2xhc3MoY2xhc3NOYW1lLCBmbGFnKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHRoaXMuY2xhc3NMaXN0LnRvZ2dsZShjbGFz
c05hbWUsIGZsYWcpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBvYmplY3QuY2FsbEZ1
bmN0aW9uKHRvZ2dsZUNsYXNzLCBbY2xhc3NOYW1lLCBmbGFnXSk7Ci0gICAgICAgICAgICBvYmpl
Y3QucmVsZWFzZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5yZXNvbHZlTm9kZShlZmZlY3RpdmVOb2RlLCAiIiwgcmVzb2x2ZWROb2RlKTsKLSAgICB9
Ci0KICAgICBfZmlsdGVyRGlkQ2hhbmdlKCkKICAgICB7CiAgICAgICAgIHRoaXMuY29udGVudFZp
ZXcuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNT
aWRlYmFyUGFuZWwuRmlsdGVySW5Qcm9ncmVzc0NsYXNzTmFtZSwgdGhpcy5fZmlsdGVyQmFyLmhh
c0FjdGl2ZUZpbHRlcnMoKSk7CkBAIC00NzQsMyArNDUxLDQgQEAgV2ViSW5zcGVjdG9yLkNTU1N0
eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5Ob0ZpbHRlck1hdGNoSW5TZWN0aW9uQ2xhc3NOYW1lID0g
ImZpbHQKIFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuTm9GaWx0ZXJN
YXRjaEluUHJvcGVydHlDbGFzc05hbWUgPSAiZmlsdGVyLXByb3BlcnR5LW5vbi1tYXRjaGluZyI7
CiAKIFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuVG9nZ2xlZENsYXNz
ZXNTeW1ib2wgPSBTeW1ib2woImNzcy1zdHlsZS1kZXRhaWxzLXNpZGViYXItcGFuZWwtdG9nZ2xl
ZC1jbGFzc2VzLXN5bWJvbCIpOworV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQ
YW5lbC5Ub2dnbGVkQ2xhc3Nlc0RyYWdUeXBlID0gInRleHQvY2xhc3NuYW1lIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRs
aW5lLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJl
ZU91dGxpbmUuanMKaW5kZXggMGRiZTk5NDdmYmVlYzJlYjQyZmQwOGZjYTgwMjEyNTQ3MDk5ZTgy
Yi4uYTVkMGEyM2YxNzExZmNkOTc4MGIyYzZjYWY1MDc5MzgwNmViYjg2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJl
ZU91dGxpbmUuanMKQEAgLTM4NywxNCArMzg3LDIwIEBAIFdlYkluc3BlY3Rvci5ET01UcmVlT3V0
bGluZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVPdXRs
CiAKICAgICBfb25kcmFnb3ZlcihldmVudCkKICAgICB7CisgICAgICAgIGlmIChldmVudC5kYXRh
VHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGVi
YXJQYW5lbC5Ub2dnbGVkQ2xhc3Nlc0RyYWdUeXBlKSkgeworICAgICAgICAgICAgZXZlbnQucHJl
dmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0
ID0gImNvcHkiOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKICAgICAg
ICAgaWYgKCF0aGlzLl9ub2RlQmVpbmdEcmFnZ2VkKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXMuX3RyZWVFbGVtZW50RnJvbUV2ZW50
KGV2ZW50KTsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gdGhpcy5fdHJlZUVsZW1lbnRGcm9t
RXZlbnQoZXZlbnQpOwogICAgICAgICBpZiAoIXRoaXMuX2lzVmFsaWREcmFnU291cmNlT3JUYXJn
ZXQodHJlZUVsZW1lbnQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIHZh
ciBub2RlID0gdHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGxldCBub2Rl
ID0gdHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgICAgIHdoaWxlIChub2RlKSB7
CiAgICAgICAgICAgICBpZiAobm9kZSA9PT0gdGhpcy5fbm9kZUJlaW5nRHJhZ2dlZCkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00NDcsMjEgKzQ1MywyNSBAQCBXZWJJbnNwZWN0
b3IuRE9NVHJlZU91dGxpbmUgPSBjbGFzcyBET01UcmVlT3V0bGluZSBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5UcmVlT3V0bAogICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0RE9NTm9kZShuZXdOb2Rl
LCB0cnVlKTsKICAgICAgICAgfQogCi0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXMuX3Ry
ZWVFbGVtZW50RnJvbUV2ZW50KGV2ZW50KTsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gdGhp
cy5fdHJlZUVsZW1lbnRGcm9tRXZlbnQoZXZlbnQpOwogICAgICAgICBpZiAodGhpcy5fbm9kZUJl
aW5nRHJhZ2dlZCAmJiB0cmVlRWxlbWVudCkgewotICAgICAgICAgICAgdmFyIHBhcmVudE5vZGU7
Ci0gICAgICAgICAgICB2YXIgYW5jaG9yTm9kZTsKKyAgICAgICAgICAgIGxldCBwYXJlbnROb2Rl
ID0gbnVsbDsKKyAgICAgICAgICAgIGxldCBhbmNob3JOb2RlID0gbnVsbDsKIAogICAgICAgICAg
ICAgaWYgKHRyZWVFbGVtZW50Ll9lbGVtZW50Q2xvc2VUYWcpIHsKICAgICAgICAgICAgICAgICAv
LyBEcm9wIG9udG8gY2xvc2luZyB0YWcgLT4gaW5zZXJ0IGFzIGxhc3QgY2hpbGQuCiAgICAgICAg
ICAgICAgICAgcGFyZW50Tm9kZSA9IHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OwogICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICB2YXIgZHJhZ1RhcmdldE5vZGUgPSB0
cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdDsKKyAgICAgICAgICAgICAgICBsZXQgZHJhZ1Rh
cmdldE5vZGUgPSB0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdDsKICAgICAgICAgICAgICAg
ICBwYXJlbnROb2RlID0gZHJhZ1RhcmdldE5vZGUucGFyZW50Tm9kZTsKICAgICAgICAgICAgICAg
ICBhbmNob3JOb2RlID0gZHJhZ1RhcmdldE5vZGU7CiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIHRoaXMuX25vZGVCZWluZ0RyYWdnZWQubW92ZVRvKHBhcmVudE5vZGUsIGFuY2hvck5vZGUs
IGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGV0
IGNsYXNzTmFtZSA9IGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKFdlYkluc3BlY3Rvci5DU1NT
dHlsZURldGFpbHNTaWRlYmFyUGFuZWwuVG9nZ2xlZENsYXNzZXNEcmFnVHlwZSk7CisgICAgICAg
ICAgICBpZiAoY2xhc3NOYW1lICYmIHRyZWVFbGVtZW50KQorICAgICAgICAgICAgICAgIHRyZWVF
bGVtZW50LnJlcHJlc2VudGVkT2JqZWN0LnRvZ2dsZUNsYXNzKGNsYXNzTmFtZSwgdHJ1ZSk7CiAg
ICAgICAgIH0KIAogICAgICAgICBkZWxldGUgdGhpcy5fbm9kZUJlaW5nRHJhZ2dlZDsK
</data>
<flag name="review"
          id="312169"
          type_id="1"
          status="+"
          setter="bburg"
    />
    <flag name="commit-queue"
          id="312274"
          type_id="3"
          status="-"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289021</attachid>
            <date>2016-09-15 17:25:58 -0700</date>
            <delta_ts>2016-09-15 17:58:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>16529.diff</filename>
            <type>text/plain</type>
            <size>14672</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGFjNDhhNzkuLmI2MGJjNWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTA5LTE1ICBEZXZpbiBSb3Vzc28g
IDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHN1
cHBvcnQgZHJhZyBhbmQgZHJvcCBvZiBDU1MgY2xhc3NlcyBhbmQgaWRzIG9udG8gRE9NIG5vZGVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUyOQor
CisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9k
ZS5wcm90b3R5cGUudG9nZ2xlQ2xhc3MucmVzb2x2ZWROb2RlLmluc3BlY3RlZFBhZ2Vfbm9kZV90
b2dnbGVDbGFzcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUudG9n
Z2xlQ2xhc3MucmVzb2x2ZWROb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnBy
b3RvdHlwZS50b2dnbGVDbGFzcyk6CisgICAgICAgIE1vdmVkIGZyb20gV2ViSW5zcGVjdG9yLkNT
U1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3RvZ2dsZUNsYXNzLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuY3Nz
OgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgPiAuY29udGVu
dCB+IDptYXRjaGVzKC5vcHRpb25zLWNvbnRhaW5lciwgLmNsYXNzLWxpc3QtY29udGFpbmVyKSk6
CisgICAgICAgIEFkZGVkIHotaW5kZXggdG8gZml4IG92ZXJsYXBwaW5nIHdpdGggc2VsZWN0b3Ig
b3JpZ2luLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURldGFpbHNT
aWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lk
ZWJhclBhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFy
UGFuZWwucHJvdG90eXBlLmNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWxTaG93UHJvcGVydHkpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5
cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxz
U2lkZWJhclBhbmVsLnByb3RvdHlwZS5fc3dpdGNoUGFuZWxzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9jbGFzc1RvZ2dsZUJ1
dHRvbkNsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGVi
YXJQYW5lbC5wcm90b3R5cGUuX2FkZENsYXNzSW5wdXRCbHVyKToKKyAgICAgICAgQWRkZWQgYSBz
ZXR0aW5nIGZvciBhdXRvLWV4cGFuZGluZyB0aGUgQ2xhc3NlcyB0b2dnbGUgbGlzdCBiYXNlZCBv
biB0aGUgcHJldmlvdXMgc3RhdGUuCisgICAgICAgIEFsc28gcmVuYW1lZCB0aGUgZXhpc3Rpbmcg
X2xhc3RTZWxlY3RlZFNlY3Rpb25TZXR0aW5nIHRvIF9sYXN0U2VsZWN0ZWRQYW5lbFNldHRpbmcg
c2luY2UgdGhlCisgICAgICAgIHNldHRpbmcgZG9lc24ndCBoYXZlIGFueXRoaW5nIHRvIGRvIHdp
dGggdGhlIGxhc3Qgc2VsZWN0ZWQgc2VjdGlvbi4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkNT
U1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX2NyZWF0ZVRvZ2dsZUZvckNsYXNz
TmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVs
LlRvZ2dsZWRDbGFzc2VzRHJhZ1R5cGUpOgorICAgICAgICBBZGRlZCBmdW5jdGlvbmFsaXR5IHRv
IGFsbG93IGRyYWdnaW5nIG9mIGEgY2xhc3NOYW1lIHRvZ2dsZSdzIHRleHQgKG5vdCB0aGUgY2hl
Y2tib3gpIGJ5CisgICAgICAgIHVzaW5nIGEgY3VzdG9tIHR5cGUsIHByZXZlbnRpbmcgdGhlIHZh
bHVlIGZyb20gYmVpbmcgZHJvcHBlZCBhbnl3aGVyZSBleGNlcHQgdGhlIERPTSB0cmVlLgorCisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlw
ZS5fY3JlYXRlVG9nZ2xlRm9yQ2xhc3NOYW1lLmNsYXNzTmFtZVRvZ2dsZUNoYW5nZWQpOgorICAg
ICAgICBSZXN0cnVjdHVyZWQgdG8gdXNlIGFycm93IGZ1bmN0aW9uIHRvIGF2b2lkIGZ1bmN0aW9u
IGJpbmRpbmcuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFy
UGFuZWwucHJvdG90eXBlLl90b2dnbGVDbGFzcy5yZXNvbHZlZE5vZGUudG9nZ2xlQ2xhc3MpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5l
bC5wcm90b3R5cGUuX3RvZ2dsZUNsYXNzLnJlc29sdmVkTm9kZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fdG9n
Z2xlQ2xhc3MpOiBEZWxldGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01U
cmVlT3V0bGluZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZS5wcm90
b3R5cGUuX29uZHJhZ292ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVPdXRsaW5l
LnByb3RvdHlwZS5fb25kcm9wLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01U
cmVlT3V0bGluZS5wcm90b3R5cGUuX29uZHJvcCk6CisgICAgICAgIEFsbG93IGRyYWdnaW5nIHdo
ZW4gdGhlIGRhdGFUcmFuc2ZlciBvYmplY3QgY29udGFpbnMgdGhlIHR5cGUgc3BlY2lmaWVkIGJ5
CisgICAgICAgIFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuVG9nZ2xl
ZENsYXNzZXNEcmFnVHlwZS4gIFRoZSB2YWx1ZSBmb3IgdGhhdCB0eXBlCisgICAgICAgIHdpbGwg
YmUgYWRkZWQgdG8gdGhlIGRyb3BwZWQgZWxlbWVudCdzIGNsYXNzTGlzdC4KKwogMjAxNi0wOS0x
NCAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQ2FsbCBmcmFtZSBpcyBzb21ldGltZXMgbm90IHNlbGVjdGVkIGluIERlYnVnZ2VyIHNp
ZGViYXIgb24gaW5pdGlhbCBwYXVzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcwppbmRleCBkZjdjNjRjLi44ZWUyMDY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9N
Tm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
RE9NTm9kZS5qcwpAQCAtNDEwLDYgKzQxMCwzNiBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNs
YXNzIERPTU5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIERPTUFnZW50
LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmlkLCBuYW1lLCBteWNhbGxiYWNrLmJpbmQodGhpcykpOwog
ICAgIH0KIAorICAgIHRvZ2dsZUNsYXNzKGNsYXNzTmFtZSwgZmxhZykKKyAgICB7CisgICAgICAg
IGlmICghY2xhc3NOYW1lIHx8ICFjbGFzc05hbWUubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGlmICh0aGlzLmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgICAgICB0
aGlzLnBhcmVudE5vZGUudG9nZ2xlQ2xhc3MoY2xhc3NOYW1lLCBmbGFnKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0aGlzLm5vZGVUeXBlKCkgIT09IE5v
ZGUuRUxFTUVOVF9OT0RFKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZ1bmN0aW9u
IHJlc29sdmVkTm9kZShvYmplY3QpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghb2JqZWN0
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgZnVuY3Rpb24gaW5zcGVj
dGVkUGFnZV9ub2RlX3RvZ2dsZUNsYXNzKGNsYXNzTmFtZSwgZmxhZykKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICB0aGlzLmNsYXNzTGlzdC50b2dnbGUoY2xhc3NOYW1lLCBmbGFnKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgb2JqZWN0LmNhbGxGdW5jdGlvbihpbnNwZWN0
ZWRQYWdlX25vZGVfdG9nZ2xlQ2xhc3MsIFtjbGFzc05hbWUsIGZsYWddKTsKKyAgICAgICAgICAg
IG9iamVjdC5yZWxlYXNlKCk7CisgICAgICAgIH0KKworICAgICAgICBXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LnJlc29sdmVOb2RlKHRoaXMsICIiLCByZXNvbHZlZE5vZGUpOworICAgIH0KKwog
ICAgIGdldENoaWxkTm9kZXMoY2FsbGJhY2spCiAgICAgewogICAgICAgICBpZiAodGhpcy5jaGls
ZHJlbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MK
aW5kZXggYzY5N2M3Mi4uMDE5ZDliMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmNzcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURldGFp
bHNTaWRlYmFyUGFuZWwuY3NzCkBAIC02OSw2ICs2OSw3IEBACiAgICAgZGlzcGxheTogZmxleDsK
ICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB6
LWluZGV4OiAxOwogICAgIHdpZHRoOiAxMDAlOwogICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRl
OwogICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVE
ZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCmluZGV4IDM3NGM2OWUuLjVm
YTQ3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanMK
QEAgLTM3LDkgKzM3LDEwIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFu
ZWwgPSBjbGFzcyBDU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0CiAgICAgICAgIHRoaXMu
X3BhbmVscyA9IFt0aGlzLl9jb21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLCB0aGlzLl9ydWxlc1N0
eWxlRGV0YWlsc1BhbmVsLCB0aGlzLl92aXN1YWxTdHlsZURldGFpbHNQYW5lbF07CiAgICAgICAg
IHRoaXMuX3BhbmVsTmF2aWdhdGlvbkluZm8gPSBbdGhpcy5fY29tcHV0ZWRTdHlsZURldGFpbHNQ
YW5lbC5uYXZpZ2F0aW9uSW5mbywgdGhpcy5fcnVsZXNTdHlsZURldGFpbHNQYW5lbC5uYXZpZ2F0
aW9uSW5mbywgdGhpcy5fdmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwubmF2aWdhdGlvbkluZm9dOwog
Ci0gICAgICAgIHRoaXMuX2xhc3RTZWxlY3RlZFNlY3Rpb25TZXR0aW5nID0gbmV3IFdlYkluc3Bl
Y3Rvci5TZXR0aW5nKCJsYXN0LXNlbGVjdGVkLXN0eWxlLWRldGFpbHMtcGFuZWwiLCB0aGlzLl9y
dWxlc1N0eWxlRGV0YWlsc1BhbmVsLm5hdmlnYXRpb25JbmZvLmlkZW50aWZpZXIpOworICAgICAg
ICB0aGlzLl9sYXN0U2VsZWN0ZWRQYW5lbFNldHRpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlNldHRp
bmcoImxhc3Qtc2VsZWN0ZWQtc3R5bGUtZGV0YWlscy1wYW5lbCIsIHRoaXMuX3J1bGVzU3R5bGVE
ZXRhaWxzUGFuZWwubmF2aWdhdGlvbkluZm8uaWRlbnRpZmllcik7CisgICAgICAgIHRoaXMuX2Ns
YXNzTGlzdENvbnRhaW5lclRvZ2dsZWRTZXR0aW5nID0gbmV3IFdlYkluc3BlY3Rvci5TZXR0aW5n
KCJjbGFzcy1saXN0LWNvbnRhaW5lci10b2dnbGVkIiwgZmFsc2UpOwogCi0gICAgICAgIHRoaXMu
X2luaXRpYWxseVNlbGVjdGVkUGFuZWwgPSB0aGlzLl9wYW5lbE1hdGNoaW5nSWRlbnRpZmllcih0
aGlzLl9sYXN0U2VsZWN0ZWRTZWN0aW9uU2V0dGluZy52YWx1ZSkgfHwgdGhpcy5fcnVsZXNTdHls
ZURldGFpbHNQYW5lbDsKKyAgICAgICAgdGhpcy5faW5pdGlhbGx5U2VsZWN0ZWRQYW5lbCA9IHRo
aXMuX3BhbmVsTWF0Y2hpbmdJZGVudGlmaWVyKHRoaXMuX2xhc3RTZWxlY3RlZFBhbmVsU2V0dGlu
Zy52YWx1ZSkgfHwgdGhpcy5fcnVsZXNTdHlsZURldGFpbHNQYW5lbDsKIAogICAgICAgICB0aGlz
Ll9uYXZpZ2F0aW9uSXRlbSA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVSYWRpb0J1dHRvbk5hdmln
YXRpb25JdGVtKHRoaXMuaWRlbnRpZmllciwgdGhpcy5kaXNwbGF5TmFtZSwgdGhpcy5fcGFuZWxO
YXZpZ2F0aW9uSW5mbywgdGhpcy5faW5pdGlhbGx5U2VsZWN0ZWRQYW5lbC5uYXZpZ2F0aW9uSW5m
byk7CiAgICAgICAgIHRoaXMuX25hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlNjb3BlUmFkaW9CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5TZWxlY3RlZEl0ZW1D
aGFuZ2VkLCB0aGlzLl9oYW5kbGVTZWxlY3RlZEl0ZW1DaGFuZ2VkLCB0aGlzKTsKQEAgLTc3LDcg
Kzc4LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNz
IENTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCBleHQKICAgICAgICAgdGhpcy5fcnVsZXNTdHls
ZURldGFpbHNQYW5lbC5zY3JvbGxUb1NlY3Rpb25BbmRIaWdobGlnaHRQcm9wZXJ0eShwcm9wZXJ0
eSk7CiAgICAgICAgIHRoaXMuX3N3aXRjaFBhbmVscyh0aGlzLl9ydWxlc1N0eWxlRGV0YWlsc1Bh
bmVsKTsKIAotICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uSXRlbS5zZWxlY3RlZEl0ZW1JZGVudGlm
aWVyID0gdGhpcy5fbGFzdFNlbGVjdGVkU2VjdGlvblNldHRpbmcudmFsdWU7CisgICAgICAgIHRo
aXMuX25hdmlnYXRpb25JdGVtLnNlbGVjdGVkSXRlbUlkZW50aWZpZXIgPSB0aGlzLl9sYXN0U2Vs
ZWN0ZWRQYW5lbFNldHRpbmcudmFsdWU7CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC0y
MDEsNiArMjAyLDkgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCA9
IGNsYXNzIENTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCBleHQKIAogICAgICAgICBXZWJJbnNw
ZWN0b3IuY3NzU3R5bGVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0
eWxlTWFuYWdlci5FdmVudC5TdHlsZVNoZWV0QWRkZWQsIHRoaXMuX3N0eWxlU2hlZXRBZGRlZE9y
UmVtb3ZlZCwgdGhpcyk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NTdHlsZU1hbmFnZXIuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNYW5hZ2VyLkV2ZW50LlN0eWxlU2hl
ZXRSZW1vdmVkLCB0aGlzLl9zdHlsZVNoZWV0QWRkZWRPclJlbW92ZWQsIHRoaXMpOworCisgICAg
ICAgIGlmICh0aGlzLl9jbGFzc0xpc3RDb250YWluZXJUb2dnbGVkU2V0dGluZy52YWx1ZSkKKyAg
ICAgICAgICAgIHRoaXMuX2NsYXNzVG9nZ2xlQnV0dG9uQ2xpY2tlZCgpOwogICAgIH0KIAogICAg
IHNpemVEaWRDaGFuZ2UoKQpAQCAtMjc4LDcgKzI4Miw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHls
ZURldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwg
ZXh0CiAgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJz
dXBwb3J0cy1uZXctcnVsZSIsIHR5cGVvZiB0aGlzLl9zZWxlY3RlZFBhbmVsLm5ld1J1bGVCdXR0
b25DbGlja2VkID09PSAiZnVuY3Rpb24iKTsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRQYW5lbC5z
aG93bigpOwogCi0gICAgICAgIHRoaXMuX2xhc3RTZWxlY3RlZFNlY3Rpb25TZXR0aW5nLnZhbHVl
ID0gc2VsZWN0ZWRQYW5lbC5uYXZpZ2F0aW9uSW5mby5pZGVudGlmaWVyOworICAgICAgICB0aGlz
Ll9sYXN0U2VsZWN0ZWRQYW5lbFNldHRpbmcudmFsdWUgPSBzZWxlY3RlZFBhbmVsLm5hdmlnYXRp
b25JbmZvLmlkZW50aWZpZXI7CiAgICAgfQogCiAgICAgX2ZvcmNlZFBzZXVkb0NsYXNzQ2hlY2ti
b3hDaGFuZ2VkKHBzZXVkb0NsYXNzLCBldmVudCkKQEAgLTMyOSw2ICszMzMsNyBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQ1NTU3R5bGVEZXRhaWxz
U2lkZWJhclBhbmVsIGV4dAogICAgIHsKICAgICAgICAgdGhpcy5fY2xhc3NUb2dnbGVCdXR0b24u
Y2xhc3NMaXN0LnRvZ2dsZSgic2VsZWN0ZWQiKTsKICAgICAgICAgdGhpcy5fY2xhc3NMaXN0Q29u
dGFpbmVyLmhpZGRlbiA9ICF0aGlzLl9jbGFzc0xpc3RDb250YWluZXIuaGlkZGVuOworICAgICAg
ICB0aGlzLl9jbGFzc0xpc3RDb250YWluZXJUb2dnbGVkU2V0dGluZy52YWx1ZSA9ICF0aGlzLl9j
bGFzc0xpc3RDb250YWluZXIuaGlkZGVuOwogICAgICAgICBpZiAodGhpcy5fY2xhc3NMaXN0Q29u
dGFpbmVyLmhpZGRlbikKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMzUxLDcgKzM1Niw3IEBA
IFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDU1NTdHls
ZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0CiAKICAgICBfYWRkQ2xhc3NJbnB1dEJsdXIoZXZlbnQp
CiAgICAgewotICAgICAgICB0aGlzLl90b2dnbGVDbGFzcy5jYWxsKHRoaXMsIHRoaXMuX2FkZENs
YXNzSW5wdXQudmFsdWUsIHRydWUpOworICAgICAgICB0aGlzLmRvbU5vZGUudG9nZ2xlQ2xhc3Mo
dGhpcy5fYWRkQ2xhc3NJbnB1dC52YWx1ZSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMuX2FkZENsYXNz
Q29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpOwogICAgICAgICB0aGlzLl9hZGRD
bGFzc0lucHV0LnZhbHVlID0gbnVsbDsKICAgICB9CkBAIC00MDUsNTQgKzQxMCwyNiBAQCBXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQ1NTU3R5bGVEZXRh
aWxzU2lkZWJhclBhbmVsIGV4dAogCiAgICAgICAgIGxldCBjbGFzc05hbWVUaXRsZSA9IGNsYXNz
TmFtZUNvbnRhaW5lci5jcmVhdGVDaGlsZCgic3BhbiIpOwogICAgICAgICBjbGFzc05hbWVUaXRs
ZS50ZXh0Q29udGVudCA9IGNsYXNzTmFtZTsKKyAgICAgICAgY2xhc3NOYW1lVGl0bGUuZHJhZ2dh
YmxlID0gdHJ1ZTsKKyAgICAgICAgY2xhc3NOYW1lVGl0bGUuYWRkRXZlbnRMaXN0ZW5lcigiZHJh
Z3N0YXJ0IiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0
RGF0YShXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLlRvZ2dsZWRDbGFz
c2VzRHJhZ1R5cGUsIGNsYXNzTmFtZSk7CisgICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIu
ZWZmZWN0QWxsb3dlZCA9ICJjb3B5IjsKKyAgICAgICAgfSk7CiAKLSAgICAgICAgZnVuY3Rpb24g
Y2xhc3NOYW1lVG9nZ2xlQ2hhbmdlZChldmVudCkgewotICAgICAgICAgICAgdGhpcy5fdG9nZ2xl
Q2xhc3MuY2FsbCh0aGlzLCBjbGFzc05hbWUsIGNsYXNzTmFtZVRvZ2dsZS5jaGVja2VkKTsKKyAg
ICAgICAgbGV0IGNsYXNzTmFtZVRvZ2dsZUNoYW5nZWQgPSAoZXZlbnQpID0+IHsKKyAgICAgICAg
ICAgIHRoaXMuZG9tTm9kZS50b2dnbGVDbGFzcyhjbGFzc05hbWUsIGNsYXNzTmFtZVRvZ2dsZS5j
aGVja2VkKTsKICAgICAgICAgICAgIGNsYXNzVG9nZ2xlZE1hcC5zZXQoY2xhc3NOYW1lLCBjbGFz
c05hbWVUb2dnbGUuY2hlY2tlZCk7Ci0gICAgICAgIH0KKyAgICAgICAgfTsKIAotICAgICAgICBj
bGFzc05hbWVUb2dnbGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBjbGFzc05hbWVUb2dnbGVD
aGFuZ2VkLmJpbmQodGhpcykpOworICAgICAgICBjbGFzc05hbWVUb2dnbGUuYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCBjbGFzc05hbWVUb2dnbGVDaGFuZ2VkKTsKICAgICAgICAgY2xhc3NOYW1l
VGl0bGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAg
IGNsYXNzTmFtZVRvZ2dsZS5jaGVja2VkID0gIWNsYXNzTmFtZVRvZ2dsZS5jaGVja2VkOwotICAg
ICAgICAgICAgY2xhc3NOYW1lVG9nZ2xlQ2hhbmdlZC5jYWxsKHRoaXMpOworICAgICAgICAgICAg
Y2xhc3NOYW1lVG9nZ2xlQ2hhbmdlZCgpOwogICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9j
bGFzc0xpc3RDb250YWluZXIuYXBwZW5kQ2hpbGQoY2xhc3NOYW1lQ29udGFpbmVyKTsKICAgICB9
CiAKLSAgICBfdG9nZ2xlQ2xhc3MoY2xhc3NOYW1lLCBmbGFnKQotICAgIHsKLSAgICAgICAgaWYg
KCFjbGFzc05hbWUgfHwgIWNsYXNzTmFtZS5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgbGV0IGVmZmVjdGl2ZU5vZGUgPSB0aGlzLmRvbU5vZGU7Ci0gICAgICAgIGlmIChl
ZmZlY3RpdmVOb2RlICYmIGVmZmVjdGl2ZU5vZGUuaXNQc2V1ZG9FbGVtZW50KCkpCi0gICAgICAg
ICAgICBlZmZlY3RpdmVOb2RlID0gZWZmZWN0aXZlTm9kZS5wYXJlbnROb2RlOwotCi0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGVmZmVjdGl2ZU5vZGUpOwotICAgICAgICBpZiAoIWVmZmVjdGl2ZU5v
ZGUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGVmZmVjdGl2ZU5vZGUubm9k
ZVR5cGUoKSAhPT0gTm9kZS5FTEVNRU5UX05PREUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgZnVuY3Rpb24gcmVzb2x2ZWROb2RlKG9iamVjdCkKLSAgICAgICAgewotICAgICAgICAg
ICAgaWYgKCFvYmplY3QpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBm
dW5jdGlvbiB0b2dnbGVDbGFzcyhjbGFzc05hbWUsIGZsYWcpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgdGhpcy5jbGFzc0xpc3QudG9nZ2xlKGNsYXNzTmFtZSwgZmxhZyk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIG9iamVjdC5jYWxsRnVuY3Rpb24odG9nZ2xlQ2xhc3Ms
IFtjbGFzc05hbWUsIGZsYWddKTsKLSAgICAgICAgICAgIG9iamVjdC5yZWxlYXNlKCk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnJlc29sdmVOb2RlKGVm
ZmVjdGl2ZU5vZGUsICIiLCByZXNvbHZlZE5vZGUpOwotICAgIH0KLQogICAgIF9maWx0ZXJEaWRD
aGFuZ2UoKQogICAgIHsKICAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmNsYXNzTGlz
dC50b2dnbGUoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5GaWx0ZXJJ
blByb2dyZXNzQ2xhc3NOYW1lLCB0aGlzLl9maWx0ZXJCYXIuaGFzQWN0aXZlRmlsdGVycygpKTsK
QEAgLTQ3NCwzICs0NTEsNCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBh
bmVsLk5vRmlsdGVyTWF0Y2hJblNlY3Rpb25DbGFzc05hbWUgPSAiZmlsdAogV2ViSW5zcGVjdG9y
LkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5Ob0ZpbHRlck1hdGNoSW5Qcm9wZXJ0eUNsYXNz
TmFtZSA9ICJmaWx0ZXItcHJvcGVydHktbm9uLW1hdGNoaW5nIjsKIAogV2ViSW5zcGVjdG9yLkNT
U1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5Ub2dnbGVkQ2xhc3Nlc1N5bWJvbCA9IFN5bWJvbCgi
Y3NzLXN0eWxlLWRldGFpbHMtc2lkZWJhci1wYW5lbC10b2dnbGVkLWNsYXNzZXMtc3ltYm9sIik7
CitXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLlRvZ2dsZWRDbGFzc2Vz
RHJhZ1R5cGUgPSAidGV4dC9jbGFzc25hbWUiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5qcwppbmRleCAw
ZGJlOTk0Li5hNWQwYTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5qcwpAQCAtMzg3LDE0ICszODcs
MjAgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVPdXRsaW5lID0gY2xhc3MgRE9NVHJlZU91dGxpbmUg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZU91dGwKIAogICAgIF9vbmRyYWdvdmVyKGV2ZW50KQog
ICAgIHsKKyAgICAgICAgaWYgKGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5pbmNsdWRlcyhXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLlRvZ2dsZWRDbGFzc2VzRHJhZ1R5
cGUpKSB7CisgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAg
ZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAiY29weSI7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoIXRoaXMuX25vZGVCZWluZ0RyYWdn
ZWQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgdmFyIHRyZWVFbGVtZW50
ID0gdGhpcy5fdHJlZUVsZW1lbnRGcm9tRXZlbnQoZXZlbnQpOworICAgICAgICBsZXQgdHJlZUVs
ZW1lbnQgPSB0aGlzLl90cmVlRWxlbWVudEZyb21FdmVudChldmVudCk7CiAgICAgICAgIGlmICgh
dGhpcy5faXNWYWxpZERyYWdTb3VyY2VPclRhcmdldCh0cmVlRWxlbWVudCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgdmFyIG5vZGUgPSB0cmVlRWxlbWVudC5yZXByZXNl
bnRlZE9iamVjdDsKKyAgICAgICAgbGV0IG5vZGUgPSB0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9i
amVjdDsKICAgICAgICAgd2hpbGUgKG5vZGUpIHsKICAgICAgICAgICAgIGlmIChub2RlID09PSB0
aGlzLl9ub2RlQmVpbmdEcmFnZ2VkKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTQ0NywyMSArNDUzLDI1IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERP
TVRyZWVPdXRsaW5lIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVPdXRsCiAgICAgICAgICAgICAg
ICAgdGhpcy5zZWxlY3RET01Ob2RlKG5ld05vZGUsIHRydWUpOwogICAgICAgICB9CiAKLSAgICAg
ICAgdmFyIHRyZWVFbGVtZW50ID0gdGhpcy5fdHJlZUVsZW1lbnRGcm9tRXZlbnQoZXZlbnQpOwor
ICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSB0aGlzLl90cmVlRWxlbWVudEZyb21FdmVudChldmVu
dCk7CiAgICAgICAgIGlmICh0aGlzLl9ub2RlQmVpbmdEcmFnZ2VkICYmIHRyZWVFbGVtZW50KSB7
Ci0gICAgICAgICAgICB2YXIgcGFyZW50Tm9kZTsKLSAgICAgICAgICAgIHZhciBhbmNob3JOb2Rl
OworICAgICAgICAgICAgbGV0IHBhcmVudE5vZGUgPSBudWxsOworICAgICAgICAgICAgbGV0IGFu
Y2hvck5vZGUgPSBudWxsOwogCiAgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQuX2VsZW1lbnRD
bG9zZVRhZykgewogICAgICAgICAgICAgICAgIC8vIERyb3Agb250byBjbG9zaW5nIHRhZyAtPiBp
bnNlcnQgYXMgbGFzdCBjaGlsZC4KICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0gdHJlZUVs
ZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIHZhciBkcmFnVGFyZ2V0Tm9kZSA9IHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0
OworICAgICAgICAgICAgICAgIGxldCBkcmFnVGFyZ2V0Tm9kZSA9IHRyZWVFbGVtZW50LnJlcHJl
c2VudGVkT2JqZWN0OwogICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSBkcmFnVGFyZ2V0Tm9k
ZS5wYXJlbnROb2RlOwogICAgICAgICAgICAgICAgIGFuY2hvck5vZGUgPSBkcmFnVGFyZ2V0Tm9k
ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgdGhpcy5fbm9kZUJlaW5nRHJhZ2dlZC5t
b3ZlVG8ocGFyZW50Tm9kZSwgYW5jaG9yTm9kZSwgY2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsZXQgY2xhc3NOYW1lID0gZXZlbnQuZGF0YVRyYW5z
ZmVyLmdldERhdGEoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5Ub2dn
bGVkQ2xhc3Nlc0RyYWdUeXBlKTsKKyAgICAgICAgICAgIGlmIChjbGFzc05hbWUgJiYgdHJlZUVs
ZW1lbnQpCisgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QudG9n
Z2xlQ2xhc3MoY2xhc3NOYW1lLCB0cnVlKTsKICAgICAgICAgfQogCiAgICAgICAgIGRlbGV0ZSB0
aGlzLl9ub2RlQmVpbmdEcmFnZ2VkOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>