<?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>173747</bug_id>
          
          <creation_ts>2017-06-22 16:56:55 -0700</creation_ts>
          <short_desc>Web Inspector: Use Element.closest for internal code</short_desc>
          <delta_ts>2020-02-06 02:39: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>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>GoodFirstBug, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikita Vasilyev">nvasilyev</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fujii</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1322131</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-06-22 16:56:55 -0700</bug_when>
    <thetext>There&apos;re a few methods defined in Utilities.js that could be replaced by Element.prototype.closest[1]:

    Node.prototype.enclosingNodeOrSelfWithClass
    Node.prototype.enclosingNodeOrSelfWithNodeName
    Node.prototype.enclosingNodeOrSelfWithNodeNameInArray

[1]: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510597</commentid>
    <comment_count>1</comment_count>
      <attachid>363127</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-27 13:48:33 -0800</bug_when>
    <thetext>Created attachment 363127
Patch

I haven&apos;t tested every single case, but the ones I did worked fine :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510631</commentid>
    <comment_count>2</comment_count>
      <attachid>363127</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-02-27 15:12:23 -0800</bug_when>
    <thetext>Comment on attachment 363127
Patch

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:2340
&gt; +        let contentBrowserElement = this.currentFocusElement.closest(&quot;content-browser&quot;);

This should be &quot;.content-browser&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510633</commentid>
    <comment_count>3</comment_count>
      <attachid>363137</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-27 15:15:00 -0800</bug_when>
    <thetext>Created attachment 363137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510664</commentid>
    <comment_count>4</comment_count>
      <attachid>363137</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-27 15:54:48 -0800</bug_when>
    <thetext>Comment on attachment 363137
Patch

Clearing flags on attachment: 363137

Committed r242174: &lt;https://trac.webkit.org/changeset/242174&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510665</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-27 15:54:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510667</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-27 15:55:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/48454502&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615579</commentid>
    <comment_count>7</comment_count>
      <attachid>363137</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-02-06 02:39:43 -0800</bug_when>
    <thetext>Comment on attachment 363137
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:536
&gt; +                wrapper = selection.focusNode.closest(&quot;.&quot; + WI.LogContentView.ItemWrapperStyleClassName);

selection.focusNode isn&apos;t necessarily an Element. 
Filed: Bug 207248 – [Web Inspector][WinCairo] Selecting an error message in Console causes &quot;TypeError:​ selection.focusNode.closest is not a function.&quot;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363127</attachid>
            <date>2019-02-27 13:48:33 -0800</date>
            <delta_ts>2019-02-27 15:14:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173747-20190227134832.patch</filename>
            <type>text/plain</type>
            <size>31026</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDJhM2FkMWIxMDFjY2IwOGEzMmUyY2FlODllZDVh
ZjQ3ZmQ2N2MyZWIuLjkxOWNhN2FhMGNjYTlkOGIxYzE4NTVjYzRjYWFjMTE4M2VmOTNmZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE5LTAyLTI3ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBV
c2UgRWxlbWVudC5jbG9zZXN0IGZvciBpbnRlcm5hbCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM3NDcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHVzYWdlIG9mIGFkZGVkIHV0aWxp
dHkgZnVuY3Rpb25zIG9uIHRoZSBgTm9kZWAgcHJvdG90eXBlIHdpdGggdGhlIGJ1aWx0LWluCisg
ICAgICAgIGBFbGVtZW50LnByb3RvdHlwZS5jbG9zZXN0YCBhcyBpdCdzIG1vcmUgZmxleGlibGUg
YW5kIGlzIGNhcGFibGUgb2YgZG9pbmcgdGhlIHNhbWUgdGhpbmcuCisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzOgorICAgICAgICAoTm9kZS5wcm90b3R5cGUuZW5j
bG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgIChOb2RlLnByb3Rv
dHlwZS5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lSW5BcnJheSk6IERlbGV0ZWQuCisg
ICAgICAgIChOb2RlLnByb3RvdHlwZS5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAgICAgICAg
KFdJLmhhbmRsZVBvc3NpYmxlTGlua0NsaWNrKToKKyAgICAgICAgKFdJLl9mb2N1c2VkQ29udGVu
dEJyb3dzZXIpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ1BVVGltZWxpbmVWaWV3
LmpzOgorICAgICAgICAoV0kuQ1BVVGltZWxpbmVWaWV3LnByb3RvdHlwZS5fZ3JhcGhQb3NpdGlv
bkZvck1vdXNlRXZlbnQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29tcGxldGlv
blN1Z2dlc3Rpb25zVmlldy5qczoKKyAgICAgICAgKFdJLkNvbXBsZXRpb25TdWdnZXN0aW9uc1Zp
ZXcucHJvdG90eXBlLnNldCBzZWxlY3RlZEluZGV4KToKKyAgICAgICAgKFdJLkNvbXBsZXRpb25T
dWdnZXN0aW9uc1ZpZXcucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAgIChXSS5Db21wbGV0aW9u
U3VnZ2VzdGlvbnNWaWV3LnByb3RvdHlwZS5faXRlbUNsaWNrZWQpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvQ29uc29sZUdyb3VwLmpzOgorICAgICAgICAoV0kuQ29uc29sZUdyb3Vw
LnByb3RvdHlwZS5fdGl0bGVDbGlja2VkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0RPTVRyZWVDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkRPTVRyZWVDb250ZW50Vmlldy5w
cm90b3R5cGUuX21vdXNlV2FzQ2xpY2tlZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9ET01UcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdJLkRPTVRyZWVFbGVtZW50LnByb3RvdHlw
ZS5fc3RhcnRFZGl0aW5nVGFyZ2V0KToKKyAgICAgICAgKFdJLkRPTVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5fcG9wdWxhdGVUYWdDb250ZXh0TWVudSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9ET01UcmVlT3V0bGluZS5qczoKKyAgICAgICAgKFdJLkRPTVRyZWVPdXRsaW5lLnByb3Rv
dHlwZS5wb3B1bGF0ZUNvbnRleHRNZW51KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0RhdGFHcmlkLmpzOgorICAgICAgICAoV0kuRGF0YUdyaWQucHJvdG90eXBlLl9zdGFydEVkaXRp
bmcpOgorICAgICAgICAoV0kuRGF0YUdyaWQucHJvdG90eXBlLl9lZGl0aW5nQ2FuY2VsbGVkKToK
KyAgICAgICAgKFdJLkRhdGFHcmlkLnByb3RvdHlwZS5kYXRhR3JpZE5vZGVGcm9tTm9kZSk6Cisg
ICAgICAgIChXSS5EYXRhR3JpZC5wcm90b3R5cGUuZGF0YUdyaWROb2RlRnJvbVBvaW50KToKKyAg
ICAgICAgKFdJLkRhdGFHcmlkLnByb3RvdHlwZS5faGVhZGVyQ2VsbENsaWNrZWQpOgorICAgICAg
ICAoV0kuRGF0YUdyaWQucHJvdG90eXBlLl9tb3VzZW92ZXJDb2x1bW5Db2xsYXBzZXIpOgorICAg
ICAgICAoV0kuRGF0YUdyaWQucHJvdG90eXBlLl9tb3VzZW91dENvbHVtbkNvbGxhcHNlcik6Cisg
ICAgICAgIChXSS5EYXRhR3JpZC5wcm90b3R5cGUuX2NsaWNrSW5Db2x1bW5Db2xsYXBzZXIpOgor
ICAgICAgICAoV0kuRGF0YUdyaWQucHJvdG90eXBlLl9jb250ZXh0TWVudUluSGVhZGVyKToKKyAg
ICAgICAgKFdJLkRhdGFHcmlkLnByb3RvdHlwZS5fY29udGV4dE1lbnVJbkRhdGFUYWJsZSk6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZE5vZGUuanM6CisgICAgICAgIChX
SS5EYXRhR3JpZE5vZGUucHJvdG90eXBlLmlzRXZlbnRXaXRoaW5EaXNjbG9zdXJlVHJpYW5nbGUp
OgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTGVnYWN5VGFiQmFyLmpzOgorICAgICAg
ICAoV0kuTGVnYWN5VGFiQmFyLnByb3RvdHlwZS5faGFuZGxlTW91c2VEb3duKToKKyAgICAgICAg
KFdJLkxlZ2FjeVRhYkJhci5wcm90b3R5cGUuX2hhbmRsZUNsaWNrKToKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuTG9nQ29udGVu
dFZpZXcucHJvdG90eXBlLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKFdJLkxv
Z0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fbW91c2Vkb3duKToKKyAgICAgICAgKFdJLkxvZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5fdGFyZ2V0SW5NZXNzYWdlQ2FuQmVTZWxlY3RlZCk6CisgICAgICAg
IChXSS5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX21vdXNlbW92ZSk6CisgICAgICAgIChXSS5M
b2dDb250ZW50Vmlldy5wcm90b3R5cGUuX21vdXNldXApOgorICAgICAgICAoV0kuTG9nQ29udGVu
dFZpZXcucHJvdG90eXBlLl9vbmRyYWdzdGFydCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9OYXZpZ2F0aW9uQmFyLmpzOgorICAgICAgICAoV0kuTmF2aWdhdGlvbkJhci5wcm90b3R5
cGUuX21vdXNlRG93bik6CisgICAgICAgIChXSS5OYXZpZ2F0aW9uQmFyLnByb3RvdHlwZS5fbW91
c2VNb3ZlZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Qb3BvdmVyLmpzOgorICAg
ICAgICAoV0kuUG9wb3Zlci5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvVGFiQmFyLmpzOgorICAgICAgICAoV0kuVGFiQmFyLnByb3RvdHlwZS5f
aGFuZGxlTW91c2VEb3duKToKKyAgICAgICAgKFdJLlRhYkJhci5wcm90b3R5cGUuX2hhbmRsZUNs
aWNrKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RhYmxlLmpzOgorICAgICAgICAo
V0kuVGFibGUucHJvdG90eXBlLl9oYW5kbGVNb3VzZURvd24pOgorICAgICAgICAoV0kuVGFibGUu
cHJvdG90eXBlLl9oYW5kbGVDb250ZXh0TWVudSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9UcmVlT3V0bGluZS5qczoKKyAgICAgICAgKFdJLlRyZWVPdXRsaW5lLnByb3RvdHlwZS50
cmVlRWxlbWVudEZyb21Ob2RlKToKKwogMjAxOS0wMi0yNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcG9wb3ZlciBjb2xvcnMgZG9u
J3QgY2hhbmdlIHdoZW4gdHJhbnNpdGlvbmluZyB0by9mcm9tIGRhcmsgbW9kZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IGVmNWYx
NjU4ODVmM2Y4MGUwMjk4ZTFlYjZiZDQ3ZDMzYzMzMWEwNDEuLjc1ZTYxZTJjYjMzMmJjY2VjMDI2
MmEzZTZkYTMyZTRiZDBiNzVkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanMKQEAgLTkxMSw3ICs5MTEsNyBAQCBXSS51cGRhdGVWaXNp
YmlsaXR5U3RhdGUgPSBmdW5jdGlvbih2aXNpYmxlKQogCiBXSS5oYW5kbGVQb3NzaWJsZUxpbmtD
bGljayA9IGZ1bmN0aW9uKGV2ZW50LCBmcmFtZSwgb3B0aW9ucyA9IHt9KQogewotICAgIGxldCBh
bmNob3JFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5h
bWUoImEiKTsKKyAgICBsZXQgYW5jaG9yRWxlbWVudCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCJh
Iik7CiAgICAgaWYgKCFhbmNob3JFbGVtZW50IHx8ICFhbmNob3JFbGVtZW50LmhyZWYpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjMzNyw3ICsyMzM3LDcgQEAgV0kuX2ZvY3VzQ29uc29s
ZVByb21wdCA9IGZ1bmN0aW9uKGV2ZW50KQogV0kuX2ZvY3VzZWRDb250ZW50QnJvd3NlciA9IGZ1
bmN0aW9uKCkKIHsKICAgICBpZiAodGhpcy5jdXJyZW50Rm9jdXNFbGVtZW50KSB7Ci0gICAgICAg
IGxldCBjb250ZW50QnJvd3NlckVsZW1lbnQgPSB0aGlzLmN1cnJlbnRGb2N1c0VsZW1lbnQuZW5j
bG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygiY29udGVudC1icm93c2VyIik7CisgICAgICAgIGxl
dCBjb250ZW50QnJvd3NlckVsZW1lbnQgPSB0aGlzLmN1cnJlbnRGb2N1c0VsZW1lbnQuY2xvc2Vz
dCgiY29udGVudC1icm93c2VyIik7CiAgICAgICAgIGlmIChjb250ZW50QnJvd3NlckVsZW1lbnQg
JiYgY29udGVudEJyb3dzZXJFbGVtZW50Ll9fdmlldyAmJiBjb250ZW50QnJvd3NlckVsZW1lbnQu
X192aWV3IGluc3RhbmNlb2YgV0kuQ29udGVudEJyb3dzZXIpCiAgICAgICAgICAgICByZXR1cm4g
Y29udGVudEJyb3dzZXJFbGVtZW50Ll9fdmlldzsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzCmluZGV4IGJiM2Qx
ZGJlNDdjMzcwY2MwNWUyODQ0YmJjYTgxZTY2Y2YwNGJhNjEuLmRkNzgzNDMzNzc4NWQzN2U5MDk2
YTdlOWMxMjliY2M5ZDY3ODc1ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzCkBAIC0xODAsNDQgKzE4MCw2IEBAIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShTZXQucHJvdG90eXBlLCAiaXNTdWJzZXRPZiIsCiAgICAgfQog
fSk7CiAKLU9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgImVuY2xvc2luZ05v
ZGVPclNlbGZXaXRoQ2xhc3MiLAotewotICAgIHZhbHVlKGNsYXNzTmFtZSkKLSAgICB7Ci0gICAg
ICAgIGZvciAobGV0IG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0gbm9kZS5wYXJlbnRFbGVtZW50
KSB7Ci0gICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUg
JiYgbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoY2xhc3NOYW1lKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gbm9kZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLX0p
OwotCi1PYmplY3QuZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUsICJlbmNsb3NpbmdOb2Rl
T3JTZWxmV2l0aE5vZGVOYW1lSW5BcnJheSIsCi17Ci0gICAgdmFsdWUobm9kZU5hbWVzKQotICAg
IHsKLSAgICAgICAgbGV0IGxvd2VyQ2FzZU5vZGVOYW1lcyA9IG5vZGVOYW1lcy5tYXAoKG5hbWUp
ID0+IG5hbWUudG9Mb3dlckNhc2UoKSk7Ci0KLSAgICAgICAgZm9yIChsZXQgbm9kZSA9IHRoaXM7
IG5vZGU7IG5vZGUgPSBub2RlLnBhcmVudEVsZW1lbnQpIHsKLSAgICAgICAgICAgIGZvciAobGV0
IG5vZGVOYW1lIG9mIGxvd2VyQ2FzZU5vZGVOYW1lcykgewotICAgICAgICAgICAgICAgIGlmIChu
b2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IG5vZGVOYW1lKQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJl
dHVybiBudWxsOwotICAgIH0KLX0pOwotCi1PYmplY3QuZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90
b3R5cGUsICJlbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lIiwKLXsKLSAgICB2YWx1ZShu
b2RlTmFtZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmVuY2xvc2luZ05vZGVPclNlbGZX
aXRoTm9kZU5hbWVJbkFycmF5KFtub2RlTmFtZV0pOwotICAgIH0KLX0pOwotCiBPYmplY3QuZGVm
aW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUsICJ0cmF2ZXJzZU5leHROb2RlIiwKIHsKICAgICB2
YWx1ZShzdGF5V2l0aGluKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ1BVVGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ1BVVGltZWxpbmVWaWV3LmpzCmluZGV4IDcwZWJkYjcxMjRh
YTc3MGJmMWVhYWY2NWI5NjcwOTg2Mzg5NjVmZmIuLjhlZjU0ZmE5ZDY0YjViMjhmZTZjNzUzZjg3
NGY5YzNlMjk4OWNjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NQVVRpbWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9DUFVUaW1lbGluZVZpZXcuanMKQEAgLTcyMCw3ICs3MjAs
NyBAQCBXSS5DUFVUaW1lbGluZVZpZXcgPSBjbGFzcyBDUFVUaW1lbGluZVZpZXcgZXh0ZW5kcyBX
SS5UaW1lbGluZVZpZXcKIAogICAgIF9ncmFwaFBvc2l0aW9uRm9yTW91c2VFdmVudChldmVudCkK
ICAgICB7Ci0gICAgICAgIGxldCBzdmdFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05v
ZGVPclNlbGZXaXRoTm9kZU5hbWUoInN2ZyIpOworICAgICAgICBsZXQgc3ZnRWxlbWVudCA9IGV2
ZW50LnRhcmdldC5jbG9zZXN0KCJzdmciKTsKICAgICAgICAgaWYgKCFzdmdFbGVtZW50KQogICAg
ICAgICAgICAgcmV0dXJuIE5hTjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcGxldGlvblN1Z2dlc3Rpb25zVmlldy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbXBsZXRpb25TdWdnZXN0aW9u
c1ZpZXcuanMKaW5kZXggZDc2ZmIxOGMwZWY4ODI5OWFlOWI3NDcwOTk4YjMzNjA4Njc3OTkwOS4u
OWQ4OGNmNjJjZjU4MWQ1YmJmODRlNTdiMzQzOGFhNzVkZTVjNzU1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcGxldGlvblN1Z2dlc3Rp
b25zVmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db21wbGV0aW9uU3VnZ2VzdGlvbnNWaWV3LmpzCkBAIC02OCw3ICs2OCw3IEBAIFdJLkNvbXBs
ZXRpb25TdWdnZXN0aW9uc1ZpZXcgPSBjbGFzcyBDb21wbGV0aW9uU3VnZ2VzdGlvbnNWaWV3IGV4
dGVuZHMgV0kuT2JqZWN0CiAgICAgewogICAgICAgICB2YXIgc2VsZWN0ZWRJdGVtRWxlbWVudCA9
IHRoaXMuX3NlbGVjdGVkSXRlbUVsZW1lbnQ7CiAgICAgICAgIGlmIChzZWxlY3RlZEl0ZW1FbGVt
ZW50KQotICAgICAgICAgICAgc2VsZWN0ZWRJdGVtRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdJ
LkNvbXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcuU2VsZWN0ZWRJdGVtU3R5bGVDbGFzc05hbWUpOwor
ICAgICAgICAgICAgc2VsZWN0ZWRJdGVtRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3Rl
ZCIpOwogCiAgICAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSBpbmRleDsKIApAQCAtNzYsNyAr
NzYsNyBAQCBXSS5Db21wbGV0aW9uU3VnZ2VzdGlvbnNWaWV3ID0gY2xhc3MgQ29tcGxldGlvblN1
Z2dlc3Rpb25zVmlldyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBpZiAoIXNlbGVjdGVkSXRl
bUVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgc2VsZWN0ZWRJdGVtRWxl
bWVudC5jbGFzc0xpc3QuYWRkKFdJLkNvbXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcuU2VsZWN0ZWRJ
dGVtU3R5bGVDbGFzc05hbWUpOworICAgICAgICBzZWxlY3RlZEl0ZW1FbGVtZW50LmNsYXNzTGlz
dC5hZGQoInNlbGVjdGVkIik7CiAgICAgICAgIHNlbGVjdGVkSXRlbUVsZW1lbnQuc2Nyb2xsSW50
b1ZpZXdJZk5lZWRlZChmYWxzZSk7CiAgICAgfQogCkBAIC0xOTIsMTAgKzE5Miw5IEBAIFdJLkNv
bXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcgPSBjbGFzcyBDb21wbGV0aW9uU3VnZ2VzdGlvbnNWaWV3
IGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb21wbGV0
aW9ucy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIGl0ZW1FbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICBpdGVtRWxlbWVudC5jbGFzc05h
bWUgPSBXSS5Db21wbGV0aW9uU3VnZ2VzdGlvbnNWaWV3Lkl0ZW1FbGVtZW50U3R5bGVDbGFzc05h
bWU7CisgICAgICAgICAgICBpdGVtRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpdGVtIik7CisgICAg
ICAgICAgICBpdGVtRWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJzZWxlY3RlZCIsIGkgPT09IHRo
aXMuX3NlbGVjdGVkSW5kZXgpOwogICAgICAgICAgICAgaXRlbUVsZW1lbnQudGV4dENvbnRlbnQg
PSBjb21wbGV0aW9uc1tpXTsKLSAgICAgICAgICAgIGlmIChpID09PSB0aGlzLl9zZWxlY3RlZElu
ZGV4KQotICAgICAgICAgICAgICAgIGl0ZW1FbGVtZW50LmNsYXNzTGlzdC5hZGQoV0kuQ29tcGxl
dGlvblN1Z2dlc3Rpb25zVmlldy5TZWxlY3RlZEl0ZW1TdHlsZUNsYXNzTmFtZSk7CiAgICAgICAg
ICAgICB0aGlzLl9jb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKGl0ZW1FbGVtZW50KTsKIAog
ICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5j
b21wbGV0aW9uU3VnZ2VzdGlvbnNWaWV3Q3VzdG9taXplQ29tcGxldGlvbkVsZW1lbnQgPT09ICJm
dW5jdGlvbiIpCkBAIC0yMzgsNyArMjM3LDcgQEAgV0kuQ29tcGxldGlvblN1Z2dlc3Rpb25zVmll
dyA9IGNsYXNzIENvbXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICB2YXIgaXRlbUVsZW1lbnQgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldp
dGhDbGFzcyhXSS5Db21wbGV0aW9uU3VnZ2VzdGlvbnNWaWV3Lkl0ZW1FbGVtZW50U3R5bGVDbGFz
c05hbWUpOworICAgICAgICBsZXQgaXRlbUVsZW1lbnQgPSBldmVudC50YXJnZXQuY2xvc2VzdCgi
Lml0ZW0iKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoaXRlbUVsZW1lbnQpOwogICAgICAgICBp
ZiAoIWl0ZW1FbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjU2LDYgKzI1NSwzIEBA
IFdJLkNvbXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcgPSBjbGFzcyBDb21wbGV0aW9uU3VnZ2VzdGlv
bnNWaWV3IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX21vdmVJbnRlcnZhbElkZW50
aWZpZXIgPSBudWxsOwogICAgIH0KIH07Ci0KLVdJLkNvbXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcu
SXRlbUVsZW1lbnRTdHlsZUNsYXNzTmFtZSA9ICJpdGVtIjsKLVdJLkNvbXBsZXRpb25TdWdnZXN0
aW9uc1ZpZXcuU2VsZWN0ZWRJdGVtU3R5bGVDbGFzc05hbWUgPSAic2VsZWN0ZWQiOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUdy
b3VwLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29s
ZUdyb3VwLmpzCmluZGV4IGY0YTc0ZGEwYjA4MzE2ZWIzNTgzZjBiNGJiODg3M2MwOTFmMTYzNTQu
LmIwODVkNzg4ODgzNmE3MTE0ZDI1MmU1Y2E5MzBhOTVkMTQxMzEzZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVHcm91cC5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlR3Jv
dXAuanMKQEAgLTg5LDkgKzg5LDkgQEAgV0kuQ29uc29sZUdyb3VwID0gY2xhc3MgQ29uc29sZUdy
b3VwIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICBfdGl0bGVDbGlja2VkKGV2ZW50KQogICAgIHsK
LSAgICAgICAgdmFyIGdyb3VwVGl0bGVFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05v
ZGVPclNlbGZXaXRoQ2xhc3MoImNvbnNvbGUtZ3JvdXAtdGl0bGUiKTsKKyAgICAgICAgdmFyIGdy
b3VwVGl0bGVFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoIi5jb25zb2xlLWdyb3VwLXRp
dGxlIik7CiAgICAgICAgIGlmIChncm91cFRpdGxlRWxlbWVudCkgewotICAgICAgICAgICAgdmFy
IGdyb3VwRWxlbWVudCA9IGdyb3VwVGl0bGVFbGVtZW50LmVuY2xvc2luZ05vZGVPclNlbGZXaXRo
Q2xhc3MoImNvbnNvbGUtZ3JvdXAiKTsKKyAgICAgICAgICAgIHZhciBncm91cEVsZW1lbnQgPSBn
cm91cFRpdGxlRWxlbWVudC5jbG9zZXN0KCIuY29uc29sZS1ncm91cCIpOwogICAgICAgICAgICAg
aWYgKGdyb3VwRWxlbWVudCkKICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBFbGVtZW50LmNsYXNz
TGlzdC5jb250YWlucygiY29sbGFwc2VkIikpCiAgICAgICAgICAgICAgICAgICAgIGdyb3VwRWxl
bWVudC5jbGFzc0xpc3QucmVtb3ZlKCJjb2xsYXBzZWQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVDb250ZW50Vmlldy5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVDb250ZW50
Vmlldy5qcwppbmRleCAzMjY1NDMxNjhlOGYyNGFhMDA4MjA2NTk2OWQyYzQxMWUzZmJjMGU3Li5k
ZGY1NTcwN2E3ZGU3MzUyNjdiMDEyOTgzZWM5YzBiM2RlNDA5YTM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlQ29udGVudFZpZXcu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJl
ZUNvbnRlbnRWaWV3LmpzCkBAIC01MDIsNyArNTAyLDcgQEAgV0kuRE9NVHJlZUNvbnRlbnRWaWV3
ID0gY2xhc3MgRE9NVHJlZUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAg
IF9tb3VzZVdhc0NsaWNrZWQoZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgYW5jaG9yRWxlbWVu
dCA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJhIik7Cisg
ICAgICAgIHZhciBhbmNob3JFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoImEiKTsKICAg
ICAgICAgaWYgKCFhbmNob3JFbGVtZW50IHx8ICFhbmNob3JFbGVtZW50LmhyZWYpCiAgICAgICAg
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanMKaW5kZXggOGM0NWE1NDdmY2YyY2Rk
ZDgxNWIyMzAzMWIzMjUxMzhmMWE1YmE2YS4uMGExZjgyNWJhZDAwMWI0YTRlZDJkZGI2NzYyNmQ2
MmM2ZTU5NGM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanMKQEAgLTY5NiwxNSArNjk2LDE1IEBA
IFdJLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5UcmVl
RWxlbWVudAogICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlVHlwZSgpICE9
PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlKCkg
IT09IE5vZGUuVEVYVF9OT0RFKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAg
IHZhciB0ZXh0Tm9kZSA9IGV2ZW50VGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3Mo
Imh0bWwtdGV4dC1ub2RlIik7CisgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGV2ZW50VGFyZ2V0LmNs
b3Nlc3QoIi5odG1sLXRleHQtbm9kZSIpOwogICAgICAgICBpZiAodGV4dE5vZGUpCiAgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fc3RhcnRFZGl0aW5nVGV4dE5vZGUodGV4dE5vZGUpOwogCi0gICAg
ICAgIHZhciBhdHRyaWJ1dGUgPSBldmVudFRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENs
YXNzKCJodG1sLWF0dHJpYnV0ZSIpOworICAgICAgICB2YXIgYXR0cmlidXRlID0gZXZlbnRUYXJn
ZXQuY2xvc2VzdCgiLmh0bWwtYXR0cmlidXRlIik7CiAgICAgICAgIGlmIChhdHRyaWJ1dGUpCiAg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhcnRFZGl0aW5nQXR0cmlidXRlKGF0dHJpYnV0ZSwg
ZXZlbnRUYXJnZXQpOwogCi0gICAgICAgIHZhciB0YWdOYW1lID0gZXZlbnRUYXJnZXQuZW5jbG9z
aW5nTm9kZU9yU2VsZldpdGhDbGFzcygiaHRtbC10YWctbmFtZSIpOworICAgICAgICB2YXIgdGFn
TmFtZSA9IGV2ZW50VGFyZ2V0LmNsb3Nlc3QoIi5odG1sLXRhZy1uYW1lIik7CiAgICAgICAgIGlm
ICh0YWdOYW1lKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXJ0RWRpdGluZ1RhZ05hbWUo
dGFnTmFtZSk7CiAKQEAgLTczOCw3ICs3MzgsNyBAQCBXSS5ET01UcmVlRWxlbWVudCA9IGNsYXNz
IERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV0kuVHJlZUVsZW1lbnQKIAogICAgICAgICBzdWJNZW51
cy5hZGQuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiQXR0cmlidXRlIiksIHRoaXMuX2FkZE5ld0F0
dHJpYnV0ZS5iaW5kKHRoaXMpLCAhaXNOb25TaGFkb3dFZGl0YWJsZSk7CiAKLSAgICAgICAgbGV0
IGF0dHJpYnV0ZSA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKCJo
dG1sLWF0dHJpYnV0ZSIpOworICAgICAgICBsZXQgYXR0cmlidXRlID0gZXZlbnQudGFyZ2V0LmNs
b3Nlc3QoIi5odG1sLWF0dHJpYnV0ZSIpOwogICAgICAgICBzdWJNZW51cy5lZGl0LmFwcGVuZEl0
ZW0oV0kuVUlTdHJpbmcoIkF0dHJpYnV0ZSIpLCB0aGlzLl9zdGFydEVkaXRpbmdBdHRyaWJ1dGUu
YmluZCh0aGlzLCBhdHRyaWJ1dGUsIGV2ZW50LnRhcmdldCksICFhdHRyaWJ1dGUgfHwgISBpc05v
blNoYWRvd0VkaXRhYmxlKTsKIAogICAgICAgICBsZXQgYXR0cmlidXRlTmFtZSA9IG51bGw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01U
cmVlT3V0bGluZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0RPTVRyZWVPdXRsaW5lLmpzCmluZGV4IGY1NDRlYjcyZTlhOWNlNWM2NjdkMmM3NGFkOGI1YzJi
OGMzNzY0MDIuLjY3ZWJkMDYyMGY2MjRlMjVjNWQyZTRkMjMzYTNkZDZjYWM2MzE5YTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVP
dXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0RPTVRyZWVPdXRsaW5lLmpzCkBAIC0yNDQsMTAgKzI0NCwxMCBAQCBXSS5ET01UcmVlT3V0bGlu
ZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuVHJlZU91dGxpbmUKIAogICAgIHBv
cHVsYXRlQ29udGV4dE1lbnUoY29udGV4dE1lbnUsIGV2ZW50LCB0cmVlRWxlbWVudCkKICAgICB7
Ci0gICAgICAgIGxldCB0YWcgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhD
bGFzcygiaHRtbC10YWciKTsKLSAgICAgICAgbGV0IHRleHROb2RlID0gZXZlbnQudGFyZ2V0LmVu
Y2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoImh0bWwtdGV4dC1ub2RlIik7Ci0gICAgICAgIGxl
dCBjb21tZW50Tm9kZSA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNz
KCJodG1sLWNvbW1lbnQiKTsKLSAgICAgICAgbGV0IHBzZXVkb0VsZW1lbnQgPSBldmVudC50YXJn
ZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygiaHRtbC1wc2V1ZG8tZWxlbWVudCIpOwor
ICAgICAgICBsZXQgdGFnID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoIi5odG1sLXRhZyIpOworICAg
ICAgICBsZXQgdGV4dE5vZGUgPSBldmVudC50YXJnZXQuY2xvc2VzdCgiLmh0bWwtdGV4dC1ub2Rl
Iik7CisgICAgICAgIGxldCBjb21tZW50Tm9kZSA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCIuaHRt
bC1jb21tZW50Iik7CisgICAgICAgIGxldCBwc2V1ZG9FbGVtZW50ID0gZXZlbnQudGFyZ2V0LmNs
b3Nlc3QoIi5odG1sLXBzZXVkby1lbGVtZW50Iik7CiAKICAgICAgICAgbGV0IHN1Yk1lbnVzID0g
ewogICAgICAgICAgICAgYWRkOiBuZXcgV0kuQ29udGV4dFN1Yk1lbnVJdGVtKGNvbnRleHRNZW51
LCBXSS5VSVN0cmluZygiQWRkIikpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcwppbmRleCA4MzBmODBkOTYyNGIzMzAwMzEw
MjhmMzUwNWY3ZWZiZGNmODAwOTQ3Li5hNWJhNTM5Yjk2OGI2ZjE4N2E1YmZlMGExYjQ5ZmE1MzQx
MjI0MDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9EYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9EYXRhR3JpZC5qcwpAQCAtNTI0LDcgKzUyNCw3IEBAIFdJLkRhdGFHcmlkID0gY2xh
c3MgRGF0YUdyaWQgZXh0ZW5kcyBXSS5WaWV3CiAKICAgICBfc3RhcnRFZGl0aW5nKHRhcmdldCkK
ICAgICB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gdGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZX
aXRoTm9kZU5hbWUoInRkIik7CisgICAgICAgIHZhciBlbGVtZW50ID0gdGFyZ2V0LmNsb3Nlc3Qo
InRkIik7CiAgICAgICAgIGlmICghZWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAt
NjA1LDcgKzYwNSw3IEBAIFdJLkRhdGFHcmlkID0gY2xhc3MgRGF0YUdyaWQgZXh0ZW5kcyBXSS5W
aWV3CiAKICAgICBfZWRpdGluZ0NhbmNlbGxlZChlbGVtZW50KQogICAgIHsKLSAgICAgICAgY29u
c29sZS5hc3NlcnQodGhpcy5fZWRpdGluZ05vZGUuZWxlbWVudCA9PT0gZWxlbWVudC5lbmNsb3Np
bmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJ0ciIpKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
dGhpcy5fZWRpdGluZ05vZGUuZWxlbWVudCA9PT0gZWxlbWVudC5jbG9zZXN0KCJ0ciIpKTsKIAog
ICAgICAgICB0aGlzLl9lZGl0aW5nTm9kZS5yZWZyZXNoKCk7CiAKQEAgLTE0MzgsMjAgKzE0Mzgs
MjAgQEAgV0kuRGF0YUdyaWQgPSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdJLlZpZXcKIAogICAg
IGRhdGFHcmlkTm9kZUZyb21Ob2RlKHRhcmdldCkKICAgICB7Ci0gICAgICAgIHZhciByb3dFbGVt
ZW50ID0gdGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5hbWUoInRyIik7CisgICAg
ICAgIHZhciByb3dFbGVtZW50ID0gdGFyZ2V0LmNsb3Nlc3QoInRyIik7CiAgICAgICAgIHJldHVy
biByb3dFbGVtZW50ICYmIHJvd0VsZW1lbnQuX2RhdGFHcmlkTm9kZTsKICAgICB9CiAKICAgICBk
YXRhR3JpZE5vZGVGcm9tUG9pbnQoeCwgeSkKICAgICB7CiAgICAgICAgIHZhciBub2RlID0gdGhp
cy5fZGF0YVRhYmxlRWxlbWVudC5vd25lckRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoeCwgeSk7
Ci0gICAgICAgIHZhciByb3dFbGVtZW50ID0gbm9kZS5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5v
ZGVOYW1lKCJ0ciIpOworICAgICAgICB2YXIgcm93RWxlbWVudCA9IG5vZGUuY2xvc2VzdCgidHIi
KTsKICAgICAgICAgcmV0dXJuIHJvd0VsZW1lbnQgJiYgcm93RWxlbWVudC5fZGF0YUdyaWROb2Rl
OwogICAgIH0KIAogICAgIF9oZWFkZXJDZWxsQ2xpY2tlZChldmVudCkKICAgICB7Ci0gICAgICAg
IGxldCBjZWxsID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5hbWUo
InRoIik7CisgICAgICAgIGxldCBjZWxsID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoInRoIik7CiAg
ICAgICAgIGlmICghY2VsbCB8fCAhY2VsbC5jb2x1bW5JZGVudGlmaWVyIHx8ICFjZWxsLmNsYXNz
TGlzdC5jb250YWlucyhXSS5EYXRhR3JpZC5Tb3J0YWJsZUNvbHVtblN0eWxlQ2xhc3NOYW1lKSkK
ICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTQ2MSw3ICsxNDYxLDcgQEAgV0kuRGF0YUdyaWQg
PSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdJLlZpZXcKIAogICAgIF9tb3VzZW92ZXJDb2x1bW5D
b2xsYXBzZXIoZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgY2VsbCA9IGV2ZW50LnRhcmdldC5l
bmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJ0aCIpOworICAgICAgICB2YXIgY2VsbCA9
IGV2ZW50LnRhcmdldC5jbG9zZXN0KCJ0aCIpOwogICAgICAgICBpZiAoIWNlbGwgfHwgIWNlbGwu
Y29sbGFwc2VzR3JvdXApCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTE0NzAsNyArMTQ3MCw3
IEBAIFdJLkRhdGFHcmlkID0gY2xhc3MgRGF0YUdyaWQgZXh0ZW5kcyBXSS5WaWV3CiAKICAgICBf
bW91c2VvdXRDb2x1bW5Db2xsYXBzZXIoZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgY2VsbCA9
IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJ0aCIpOworICAg
ICAgICB2YXIgY2VsbCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCJ0aCIpOwogICAgICAgICBpZiAo
IWNlbGwgfHwgIWNlbGwuY29sbGFwc2VzR3JvdXApCiAgICAgICAgICAgICByZXR1cm47CiAKQEAg
LTE0NzksNyArMTQ3OSw3IEBAIFdJLkRhdGFHcmlkID0gY2xhc3MgRGF0YUdyaWQgZXh0ZW5kcyBX
SS5WaWV3CiAKICAgICBfY2xpY2tJbkNvbHVtbkNvbGxhcHNlcihldmVudCkKICAgICB7Ci0gICAg
ICAgIHZhciBjZWxsID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5h
bWUoInRoIik7CisgICAgICAgIHZhciBjZWxsID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoInRoIik7
CiAgICAgICAgIGlmICghY2VsbCB8fCAhY2VsbC5jb2xsYXBzZXNHcm91cCkKICAgICAgICAgICAg
IHJldHVybjsKIApAQCAtMTU3OCw3ICsxNTc4LDcgQEAgV0kuRGF0YUdyaWQgPSBjbGFzcyBEYXRh
R3JpZCBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHRoaXMuX2hhc0NvcHlhYmxlRGF0YSgp
KQogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiQ29weSBU
YWJsZSIpLCB0aGlzLl9jb3B5VGFibGUuYmluZCh0aGlzKSk7CiAKLSAgICAgICAgbGV0IGhlYWRl
ckNlbGxFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5h
bWUoInRoIik7CisgICAgICAgIGxldCBoZWFkZXJDZWxsRWxlbWVudCA9IGV2ZW50LnRhcmdldC5j
bG9zZXN0KCJ0aCIpOwogICAgICAgICBpZiAoIWhlYWRlckNlbGxFbGVtZW50KQogICAgICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xNjQ3LDcgKzE2NDcsNyBAQCBXSS5EYXRhR3JpZCA9IGNsYXNzIERh
dGFHcmlkIGV4dGVuZHMgV0kuVmlldwogICAgICAgICAgICAgICAgICAgICBpZiAoZ3JpZE5vZGUg
PT09IHRoaXMucGxhY2Vob2xkZXJOb2RlKQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiQWRkIE5ldyIpLCB0aGlzLl9zdGFydEVkaXRp
bmcuYmluZCh0aGlzLCBldmVudC50YXJnZXQpKTsKICAgICAgICAgICAgICAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZWxlbWVudCA9IGV2ZW50LnRhcmdldC5lbmNs
b3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJ0ZCIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGVsZW1lbnQgPSBldmVudC50YXJnZXQuY2xvc2VzdCgidGQiKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBjb2x1bW5JZGVudGlmaWVyID0gZWxlbWVudC5fX2NvbHVtbklkZW50
aWZpZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29sdW1uVGl0bGUgPSB0aGlzLmRh
dGFHcmlkLmNvbHVtbnMuZ2V0KGNvbHVtbklkZW50aWZpZXIpWyJ0aXRsZSJdOwogICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiRWRpdCBc
dTIwMUMlc1x1MjAxRCIpLmZvcm1hdChjb2x1bW5UaXRsZSksIHRoaXMuX3N0YXJ0RWRpdGluZy5i
aW5kKHRoaXMsIGV2ZW50LnRhcmdldCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWROb2RlLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWROb2RlLmpzCmluZGV4IGU1OGFlNWZk
YjgwYmQwM2E5ZWE5M2U1ODQ2MTc2MTE4OGIwNDA5OGEuLmQ5MGE5NDgwYWUwMDU2ZDM2NjFiN2Fj
YWI5OTk2ZmJjNmFlNGRmMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0RhdGFHcmlkTm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZE5vZGUuanMKQEAgLTY1MCw3ICs2NTAsNyBA
QCBXSS5EYXRhR3JpZE5vZGUgPSBjbGFzcyBEYXRhR3JpZE5vZGUgZXh0ZW5kcyBXSS5PYmplY3QK
ICAgICAgICAgaWYgKCF0aGlzLmhhc0NoaWxkcmVuKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgICAgIGxldCBjZWxsID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZX
aXRoTm9kZU5hbWUoInRkIik7CisgICAgICAgIGxldCBjZWxsID0gZXZlbnQudGFyZ2V0LmNsb3Nl
c3QoInRkIik7CiAgICAgICAgIGlmICghY2VsbCB8fCAhY2VsbC5jbGFzc0xpc3QuY29udGFpbnMo
ImRpc2Nsb3N1cmUiKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGVnYWN5VGFiQmFyLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGVnYWN5VGFiQmFy
LmpzCmluZGV4IGI2NmMzZGI3NTI3NzcyZThlNTIzOTVkYzZhNWJjMWMzOWRmYjE5MGMuLjBjNDAz
ZjIyNWI2ZWU0NTAwNmVkNjhiMzNjODYyMjUwNGU3ODBjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xlZ2FjeVRhYkJhci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MZWdhY3lUYWJCYXIuanMK
QEAgLTU5MCw3ICs1OTAsNyBAQCBXSS5MZWdhY3lUYWJCYXIgPSBjbGFzcyBMZWdhY3lUYWJCYXIg
ZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXZlbnQu
Y3RybEtleSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBsZXQgaXRlbUVsZW1lbnQg
PSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcyhXSS5UYWJCYXJJdGVt
LlN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgbGV0IGl0ZW1FbGVtZW50ID0gZXZlbnQudGFyZ2V0
LmNsb3Nlc3QoIi4iICsgV0kuVGFiQmFySXRlbS5TdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIGlm
ICghaXRlbUVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTYxNiw3ICs2MTYsNyBA
QCBXSS5MZWdhY3lUYWJCYXIgPSBjbGFzcyBMZWdhY3lUYWJCYXIgZXh0ZW5kcyBXSS5WaWV3CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBsZXQgY2xvc2VCdXR0b25F
bGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoV0kuVGFi
QmFySXRlbS5DbG9zZUJ1dHRvblN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgbGV0IGNsb3NlQnV0
dG9uRWxlbWVudCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCIuIiArIFdJLlRhYkJhckl0ZW0uQ2xv
c2VCdXR0b25TdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIGlmIChjbG9zZUJ1dHRvbkVsZW1lbnQp
CiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTY0OSw3ICs2NDksNyBAQCBXSS5MZWdhY3lUYWJC
YXIgPSBjbGFzcyBMZWdhY3lUYWJCYXIgZXh0ZW5kcyBXSS5WaWV3CiAKICAgICBfaGFuZGxlQ2xp
Y2soZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgaXRlbUVsZW1lbnQgPSBldmVudC50YXJnZXQu
ZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcyhXSS5UYWJCYXJJdGVtLlN0eWxlQ2xhc3NOYW1l
KTsKKyAgICAgICAgdmFyIGl0ZW1FbGVtZW50ID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoIi4iICsg
V0kuVGFiQmFySXRlbS5TdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIGlmICghaXRlbUVsZW1lbnQp
CiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTY2Miw3ICs2NjIsNyBAQCBXSS5MZWdhY3lUYWJC
YXIgPSBjbGFzcyBMZWdhY3lUYWJCYXIgZXh0ZW5kcyBXSS5WaWV3CiAKICAgICAgICAgY29uc3Qg
Y2xpY2tlZE1pZGRsZUJ1dHRvbiA9IGV2ZW50LmJ1dHRvbiA9PT0gMTsKIAotICAgICAgICB2YXIg
Y2xvc2VCdXR0b25FbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRo
Q2xhc3MoV0kuVGFiQmFySXRlbS5DbG9zZUJ1dHRvblN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAg
dmFyIGNsb3NlQnV0dG9uRWxlbWVudCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCIuIiArIFdJLlRh
YkJhckl0ZW0uQ2xvc2VCdXR0b25TdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIGlmIChjbG9zZUJ1
dHRvbkVsZW1lbnQgfHwgY2xpY2tlZE1pZGRsZUJ1dHRvbikgewogICAgICAgICAgICAgLy8gRGlz
YWxsb3cgY2xvc2luZyB0aGUgZGVmYXVsdCB0YWIgaWYgaXQgaXMgdGhlIG9ubHkgdGFiLgogICAg
ICAgICAgICAgaWYgKHRhYkJhckl0ZW0uaXNEZWZhdWx0VGFiICYmIHRoaXMuZWxlbWVudC5jbGFz
c0xpc3QuY29udGFpbnMoInNpbmdsZS10YWIiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKaW5kZXgg
MTk5Y2I3ODJlODU2ZDdlZTg5ODM5ZTJlNjYxNzYyMzc0NWYzOTIxNi4uYjE1OTA5NDY5MmQzNTQ3
NDYxNjg1NWEwYzE1MzhkOTIyMDk3ODVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKQEAgLTQ3
Miw3ICs0NzIsNyBAQCBXSS5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgIHRoaXMuX21vdXNldXAoZXZlbnQpOwog
CiAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gc2hvdyB0aGUgY3VzdG9tIG1lbnUgZm9yIGxp
bmtzIGluIHRoZSBjb25zb2xlLgotICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05v
ZGVPclNlbGZXaXRoTm9kZU5hbWUoImEiKSkKKyAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5jbG9z
ZXN0KCJhIikpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbGV0IGNvbnRleHRNZW51
ID0gV0kuQ29udGV4dE1lbnUuY3JlYXRlRnJvbUV2ZW50KGV2ZW50KTsKQEAgLTUwOSw3ICs1MDks
NyBAQCBXSS5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
Q29udGVudFZpZXcKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHRo
aXMuX21vdXNlRG93bldyYXBwZXIgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldp
dGhDbGFzcyhXSS5Mb2dDb250ZW50Vmlldy5JdGVtV3JhcHBlclN0eWxlQ2xhc3NOYW1lKTsKKyAg
ICAgICAgdGhpcy5fbW91c2VEb3duV3JhcHBlciA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCIuIiAr
IFdJLkxvZ0NvbnRlbnRWaWV3Lkl0ZW1XcmFwcGVyU3R5bGVDbGFzc05hbWUpOwogICAgICAgICB0
aGlzLl9tb3VzZURvd25TaGlmdEtleSA9IGV2ZW50LnNoaWZ0S2V5OwogICAgICAgICB0aGlzLl9t
b3VzZURvd25Db21tYW5kS2V5ID0gZXZlbnQubWV0YUtleTsKICAgICAgICAgdGhpcy5fbW91c2VN
b3ZlSXNSb3dTZWxlY3Rpb24gPSBmYWxzZTsKQEAgLTUyMCw3ICs1MjAsNyBAQCBXSS5Mb2dDb250
ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAog
ICAgIF90YXJnZXRJbk1lc3NhZ2VDYW5CZVNlbGVjdGVkKHRhcmdldCwgbWVzc2FnZSkKICAgICB7
Ci0gICAgICAgIGlmICh0YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFtZSgiYSIp
KQorICAgICAgICBpZiAodGFyZ2V0LmNsb3Nlc3QoImEiKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtNTI4LDEyICs1MjgsMTIgQEAg
V0kuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRl
bnRWaWV3CiAgICAgX21vdXNlbW92ZShldmVudCkKICAgICB7CiAgICAgICAgIHZhciBzZWxlY3Rp
b24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgICAgIHZhciB3cmFwcGVyID0gZXZlbnQu
dGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoV0kuTG9nQ29udGVudFZpZXcuSXRl
bVdyYXBwZXJTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgIHZhciB3cmFwcGVyID0gZXZlbnQudGFy
Z2V0LmNsb3Nlc3QoIi4iICsgV0kuTG9nQ29udGVudFZpZXcuSXRlbVdyYXBwZXJTdHlsZUNsYXNz
TmFtZSk7CiAKICAgICAgICAgaWYgKCF3cmFwcGVyKSB7CiAgICAgICAgICAgICAvLyBObyB3cmFw
cGVyIHVuZGVyIHRoZSBtb3VzZSwgc28gbG9vayBhdCB0aGUgc2VsZWN0aW9uIHRvIHRyeSBhbmQg
ZmluZCBvbmUuCiAgICAgICAgICAgICBpZiAoIXNlbGVjdGlvbi5pc0NvbGxhcHNlZCkKLSAgICAg
ICAgICAgICAgICB3cmFwcGVyID0gc2VsZWN0aW9uLmZvY3VzTm9kZS5lbmNsb3NpbmdOb2RlT3JT
ZWxmV2l0aENsYXNzKFdJLkxvZ0NvbnRlbnRWaWV3Lkl0ZW1XcmFwcGVyU3R5bGVDbGFzc05hbWUp
OworICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBzZWxlY3Rpb24uZm9jdXNOb2RlLmNsb3Nlc3Qo
Ii4iICsgV0kuTG9nQ29udGVudFZpZXcuSXRlbVdyYXBwZXJTdHlsZUNsYXNzTmFtZSk7CiAKICAg
ICAgICAgICAgIGlmICghd3JhcHBlcikgewogICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1v
dmVBbGxSYW5nZXMoKTsKQEAgLTU3MCw3ICs1NzAsNyBAQCBXSS5Mb2dDb250ZW50VmlldyA9IGNs
YXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgd2luZG93
LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCB0aGlzKTsKIAogICAgICAgICB2YXIgc2Vs
ZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwotICAgICAgICB2YXIgd3JhcHBlciA9IGV2
ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKFdJLkxvZ0NvbnRlbnRWaWV3
Lkl0ZW1XcmFwcGVyU3R5bGVDbGFzc05hbWUpOworICAgICAgICB2YXIgd3JhcHBlciA9IGV2ZW50
LnRhcmdldC5jbG9zZXN0KCIuIiArIFdJLkxvZ0NvbnRlbnRWaWV3Lkl0ZW1XcmFwcGVyU3R5bGVD
bGFzc05hbWUpOwogCiAgICAgICAgIGlmICh3cmFwcGVyICYmIChzZWxlY3Rpb24uaXNDb2xsYXBz
ZWQgfHwgZXZlbnQuc2hpZnRLZXkpKSB7CiAgICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxs
UmFuZ2VzKCk7CkBAIC01OTgsNyArNTk4LDcgQEAgV0kuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBM
b2dDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICBfb25kcmFnc3RhcnQo
ZXZlbnQpCiAgICAgewotICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNl
bGZXaXRoQ2xhc3MoV0kuRE9NVHJlZU91dGxpbmUuU3R5bGVDbGFzc05hbWUpKSB7CisgICAgICAg
IGlmIChldmVudC50YXJnZXQuY2xvc2VzdCgiLiIgKyBXSS5ET01UcmVlT3V0bGluZS5TdHlsZUNs
YXNzTmFtZSkpIHsKICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAg
ICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmF2aWdhdGlvbkJhci5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05hdmlnYXRpb25CYXIu
anMKaW5kZXggMTI2Zjk4ZWRlM2JkYjJmMWY5MmQ2MWFlNzJiMDhlYjM4MDAxMGEwMS4uN2MwMzI5
M2IyNmM0MzFiZDk4YTQxYTA4MTMzOWVjYTI1NWVmOTU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmF2aWdhdGlvbkJhci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OYXZpZ2F0aW9uQmFyLmpz
CkBAIC0yOTUsNyArMjk1LDcgQEAgV0kuTmF2aWdhdGlvbkJhciA9IGNsYXNzIE5hdmlnYXRpb25C
YXIgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlmICghdGhpcy5fZm9jdXNlZCkKICAgICAgICAg
ICAgIHRoaXMuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoInRhYmluZGV4Iik7CiAKLSAgICAgICAg
dmFyIGl0ZW1FbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xh
c3MoV0kuUmFkaW9CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZUNsYXNzTmFtZSk7CisgICAgICAg
IHZhciBpdGVtRWxlbWVudCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCIuIiArIFdJLlJhZGlvQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGVDbGFzc05hbWUpOwogICAgICAgICBpZiAoIWl0ZW1FbGVt
ZW50IHx8ICFpdGVtRWxlbWVudC5uYXZpZ2F0aW9uSXRlbSkKICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtMzI3LDcgKzMyNyw3IEBAIFdJLk5hdmlnYXRpb25CYXIgPSBjbGFzcyBOYXZpZ2F0aW9u
QmFyIGV4dGVuZHMgV0kuVmlldwogICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAg
ICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKIAotICAgICAgICB2YXIgaXRlbUVsZW1lbnQg
PSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcyhXSS5SYWRpb0J1dHRv
bk5hdmlnYXRpb25JdGVtLlN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgdmFyIGl0ZW1FbGVtZW50
ID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoIi4iICsgV0kuUmFkaW9CdXR0b25OYXZpZ2F0aW9uSXRl
bS5TdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIGlmICghaXRlbUVsZW1lbnQgfHwgIWl0ZW1FbGVt
ZW50Lm5hdmlnYXRpb25JdGVtIHx8ICF0aGlzLmVsZW1lbnQuY29udGFpbnMoaXRlbUVsZW1lbnQp
KSB7CiAgICAgICAgICAgICAvLyBGaW5kIHRoZSBlbGVtZW50IHRoYXQgaXMgYXQgdGhlIFggcG9z
aXRpb24gb2YgdGhlIG1vdXNlLCBldmVuIHdoZW4gdGhlIG1vdXNlIGlzIG5vIGxvbmdlcgogICAg
ICAgICAgICAgLy8gdmVydGljYWxseSBpbiB0aGUgbmF2aWdhdGlvbiBiYXIuCkBAIC0zMzUsNyAr
MzM1LDcgQEAgV0kuTmF2aWdhdGlvbkJhciA9IGNsYXNzIE5hdmlnYXRpb25CYXIgZXh0ZW5kcyBX
SS5WaWV3CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgICAgICBpdGVtRWxlbWVudCA9IGVsZW1lbnQuZW5jbG9zaW5nTm9kZU9yU2Vs
ZldpdGhDbGFzcyhXSS5SYWRpb0J1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlQ2xhc3NOYW1lKTsK
KyAgICAgICAgICAgIGl0ZW1FbGVtZW50ID0gZWxlbWVudC5jbG9zZXN0KCIuIiArIFdJLlJhZGlv
QnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgaWYgKCFp
dGVtRWxlbWVudCB8fCAhaXRlbUVsZW1lbnQubmF2aWdhdGlvbkl0ZW0gfHwgIXRoaXMuZWxlbWVu
dC5jb250YWlucyhpdGVtRWxlbWVudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Qb3BvdmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
UG9wb3Zlci5qcwppbmRleCBiODQ1ZTViMjcxZTg3MzU5NTVlODczNDRiZTBlNDExYjJlOTMwZmE5
Li40ZmMzN2JmM2ZkYTgyNzExMDcxZDQ0MmQwMDQ3NmRkMGM3MDY3ZDYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Qb3BvdmVyLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1BvcG92ZXIuanMKQEAg
LTE3MSw3ICsxNzEsNyBAQCBXSS5Qb3BvdmVyID0gY2xhc3MgUG9wb3ZlciBleHRlbmRzIFdJLk9i
amVjdAogICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHsKICAgICAgICAgY2FzZSAibW91c2Vk
b3duIjoKICAgICAgICAgY2FzZSAic2Nyb2xsIjoKLSAgICAgICAgICAgIGlmICghdGhpcy5fZWxl
bWVudC5jb250YWlucyhldmVudC50YXJnZXQpICYmICFldmVudC50YXJnZXQuZW5jbG9zaW5nTm9k
ZU9yU2VsZldpdGhDbGFzcyhXSS5Qb3BvdmVyLklnbm9yZUF1dG9EaXNtaXNzQ2xhc3NOYW1lKQor
ICAgICAgICAgICAgaWYgKCF0aGlzLl9lbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiYg
IWV2ZW50LnRhcmdldC5jbG9zZXN0KCIuIiArIFdJLlBvcG92ZXIuSWdub3JlQXV0b0Rpc21pc3ND
bGFzc05hbWUpCiAgICAgICAgICAgICAgICAgJiYgIWV2ZW50W1dJLlBvcG92ZXIuRXZlbnRQcmV2
ZW50RGlzbWlzc1N5bWJvbF0pIHsKICAgICAgICAgICAgICAgICB0aGlzLmRpc21pc3MoKTsKICAg
ICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1RhYkJhci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1RhYkJhci5qcwppbmRleCA5Y2RkMGE1NWM3MGZlZGRhZmEyZTZhMDZhYTNlZmI5MWM0
YTkzNDFlLi4yNTljMjZhN2JmYTA3YjUwMzg4ZDZiNzcwNzVjZmJmYzg5NDJmNzY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UYWJCYXIuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGFiQmFyLmpz
CkBAIC01NTgsNyArNTU4LDcgQEAgV0kuVGFiQmFyID0gY2xhc3MgVGFiQmFyIGV4dGVuZHMgV0ku
VmlldwogICAgICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwIHx8IGV2ZW50LmN0cmxLZXkpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbGV0IGl0ZW1FbGVtZW50ID0gZXZlbnQudGFy
Z2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoV0kuVGFiQmFySXRlbS5TdHlsZUNsYXNz
TmFtZSk7CisgICAgICAgIGxldCBpdGVtRWxlbWVudCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCIu
IiArIFdJLlRhYkJhckl0ZW0uU3R5bGVDbGFzc05hbWUpOwogICAgICAgICBpZiAoIWl0ZW1FbGVt
ZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01ODEsNyArNTgxLDcgQEAgV0kuVGFiQmFy
ID0gY2xhc3MgVGFiQmFyIGV4dGVuZHMgV0kuVmlldwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKLSAgICAgICAgbGV0IGNsb3NlQnV0dG9uRWxlbWVudCA9IGV2ZW50LnRhcmdldC5l
bmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKFdJLlRhYkJhckl0ZW0uQ2xvc2VCdXR0b25TdHls
ZUNsYXNzTmFtZSk7CisgICAgICAgIGxldCBjbG9zZUJ1dHRvbkVsZW1lbnQgPSBldmVudC50YXJn
ZXQuY2xvc2VzdCgiLiIgKyBXSS5UYWJCYXJJdGVtLkNsb3NlQnV0dG9uU3R5bGVDbGFzc05hbWUp
OwogICAgICAgICBpZiAoY2xvc2VCdXR0b25FbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC02MTQsNyArNjE0LDcgQEAgV0kuVGFiQmFyID0gY2xhc3MgVGFiQmFyIGV4dGVuZHMgV0ku
VmlldwogCiAgICAgX2hhbmRsZUNsaWNrKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGl0ZW1F
bGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoV0kuVGFi
QmFySXRlbS5TdHlsZUNsYXNzTmFtZSk7CisgICAgICAgIHZhciBpdGVtRWxlbWVudCA9IGV2ZW50
LnRhcmdldC5jbG9zZXN0KCIuIiArIFdJLlRhYkJhckl0ZW0uU3R5bGVDbGFzc05hbWUpOwogICAg
ICAgICBpZiAoIWl0ZW1FbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02MjcsNyAr
NjI3LDcgQEAgV0kuVGFiQmFyID0gY2xhc3MgVGFiQmFyIGV4dGVuZHMgV0kuVmlldwogCiAgICAg
ICAgIGNvbnN0IGNsaWNrZWRNaWRkbGVCdXR0b24gPSBldmVudC5idXR0b24gPT09IDE7CiAKLSAg
ICAgICAgdmFyIGNsb3NlQnV0dG9uRWxlbWVudCA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2Rl
T3JTZWxmV2l0aENsYXNzKFdJLlRhYkJhckl0ZW0uQ2xvc2VCdXR0b25TdHlsZUNsYXNzTmFtZSk7
CisgICAgICAgIHZhciBjbG9zZUJ1dHRvbkVsZW1lbnQgPSBldmVudC50YXJnZXQuY2xvc2VzdCgi
LiIgKyBXSS5UYWJCYXJJdGVtLkNsb3NlQnV0dG9uU3R5bGVDbGFzc05hbWUpOwogICAgICAgICBp
ZiAoY2xvc2VCdXR0b25FbGVtZW50IHx8IGNsaWNrZWRNaWRkbGVCdXR0b24pIHsKICAgICAgICAg
ICAgIC8vIERpc2FsbG93IGNsb3NpbmcgdGhlIG9ubHkgdGFiLgogICAgICAgICAgICAgaWYgKHRo
aXMuZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoInNpbmdsZS10YWIiKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RhYmxlLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGFibGUuanMKaW5kZXggNjhk
ZjkzNWI3ZGM0ZDMyMzM2YTlmYTM5ZWEyNjE5OWFmN2UwNTlkNy4uMDA2MTMzNzA1MjFhMmU3Mjll
YjliNzU1N2ZmNWFjN2RmMDFlMGZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVGFibGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVGFibGUuanMKQEAgLTEyOTksNyArMTI5OSw3IEBAIFdJLlRh
YmxlID0gY2xhc3MgVGFibGUgZXh0ZW5kcyBXSS5WaWV3CiAKICAgICBfaGFuZGxlTW91c2VEb3du
KGV2ZW50KQogICAgIHsKLSAgICAgICAgbGV0IGNlbGwgPSBldmVudC50YXJnZXQuZW5jbG9zaW5n
Tm9kZU9yU2VsZldpdGhDbGFzcygiY2VsbCIpOworICAgICAgICBsZXQgY2VsbCA9IGV2ZW50LnRh
cmdldC5jbG9zZXN0KCIuY2VsbCIpOwogICAgICAgICBpZiAoIWNlbGwpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKQEAgLTEzMjMsNyArMTMyMyw3IEBAIFdJLlRhYmxlID0gY2xhc3MgVGFibGUgZXh0
ZW5kcyBXSS5WaWV3CiAKICAgICBfaGFuZGxlQ29udGV4dE1lbnUoZXZlbnQpCiAgICAgewotICAg
ICAgICBsZXQgY2VsbCA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNz
KCJjZWxsIik7CisgICAgICAgIGxldCBjZWxsID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoIi5jZWxs
Iik7CiAgICAgICAgIGlmICghY2VsbCkKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlT3V0bGlu
ZS5qcwppbmRleCBiM2U0NjIyNDExZjAzOTg5MWMzNzVjYjljYzgxMGZlZWI0MDM5ZDI2Li45NThj
YjNiZDBkOTlhNDJhNDU3YjAyOGU0MjhkOWE4NTZmMTJmMjk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlT3V0bGluZS5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlT3V0bGluZS5qcwpA
QCAtNTc0LDcgKzU3NCw3IEBAIFdJLlRyZWVPdXRsaW5lID0gY2xhc3MgVHJlZU91dGxpbmUgZXh0
ZW5kcyBXSS5PYmplY3QKIAogICAgIHRyZWVFbGVtZW50RnJvbU5vZGUobm9kZSkKICAgICB7Ci0g
ICAgICAgIHZhciBsaXN0Tm9kZSA9IG5vZGUuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFt
ZUluQXJyYXkoWyJvbCIsICJsaSJdKTsKKyAgICAgICAgdmFyIGxpc3ROb2RlID0gbm9kZS5jbG9z
ZXN0KCJvbCwgbGkiKTsKICAgICAgICAgaWYgKGxpc3ROb2RlKQogICAgICAgICAgICAgcmV0dXJu
IGxpc3ROb2RlLnBhcmVudFRyZWVFbGVtZW50IHx8IGxpc3ROb2RlLnRyZWVFbGVtZW50OwogICAg
ICAgICByZXR1cm4gbnVsbDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363137</attachid>
            <date>2019-02-27 15:15:00 -0800</date>
            <delta_ts>2019-02-27 15:54:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173747-20190227151459.patch</filename>
            <type>text/plain</type>
            <size>31025</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDVmN2IzZjVkZDhmMzBlZDAzYjJhY2RjOWYwNTA2
Njk2YTE0ZmNiMjkuLjUzNDA5NTllZjQxZmZhMTI2MzRiODU1M2U2YjNmNmFkZTlhNjIwYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE5LTAyLTI3ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBV
c2UgRWxlbWVudC5jbG9zZXN0IGZvciBpbnRlcm5hbCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM3NDcKKworICAgICAgICBSZXZpZXdlZCBi
eSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgUmVwbGFjZSB1c2FnZSBvZiBhZGRlZCB1dGls
aXR5IGZ1bmN0aW9ucyBvbiB0aGUgYE5vZGVgIHByb3RvdHlwZSB3aXRoIHRoZSBidWlsdC1pbgor
ICAgICAgICBgRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdGAgYXMgaXQncyBtb3JlIGZsZXhpYmxl
IGFuZCBpcyBjYXBhYmxlIG9mIGRvaW5nIHRoZSBzYW1lIHRoaW5nLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qczoKKyAgICAgICAgKE5vZGUucHJvdG90eXBlLmVu
Y2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MpOiBEZWxldGVkLgorICAgICAgICAoTm9kZS5wcm90
b3R5cGUuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFtZUluQXJyYXkpOiBEZWxldGVkLgor
ICAgICAgICAoTm9kZS5wcm90b3R5cGUuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFtZSk6
IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAg
IChXSS5oYW5kbGVQb3NzaWJsZUxpbmtDbGljayk6CisgICAgICAgIChXSS5fZm9jdXNlZENvbnRl
bnRCcm93c2VyKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NQVVRpbWVsaW5lVmll
dy5qczoKKyAgICAgICAgKFdJLkNQVVRpbWVsaW5lVmlldy5wcm90b3R5cGUuX2dyYXBoUG9zaXRp
b25Gb3JNb3VzZUV2ZW50KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbXBsZXRp
b25TdWdnZXN0aW9uc1ZpZXcuanM6CisgICAgICAgIChXSS5Db21wbGV0aW9uU3VnZ2VzdGlvbnNW
aWV3LnByb3RvdHlwZS5zZXQgc2VsZWN0ZWRJbmRleCk6CisgICAgICAgIChXSS5Db21wbGV0aW9u
U3VnZ2VzdGlvbnNWaWV3LnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAoV0kuQ29tcGxldGlv
blN1Z2dlc3Rpb25zVmlldy5wcm90b3R5cGUuX2l0ZW1DbGlja2VkKToKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVHcm91cC5qczoKKyAgICAgICAgKFdJLkNvbnNvbGVHcm91
cC5wcm90b3R5cGUuX3RpdGxlQ2xpY2tlZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9ET01UcmVlQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5ET01UcmVlQ29udGVudFZpZXcu
cHJvdG90eXBlLl9tb3VzZVdhc0NsaWNrZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvRE9NVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXSS5ET01UcmVlRWxlbWVudC5wcm90b3R5
cGUuX3N0YXJ0RWRpdGluZ1RhcmdldCk6CisgICAgICAgIChXSS5ET01UcmVlRWxlbWVudC5wcm90
b3R5cGUuX3BvcHVsYXRlVGFnQ29udGV4dE1lbnUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvRE9NVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXSS5ET01UcmVlT3V0bGluZS5wcm90
b3R5cGUucG9wdWxhdGVDb250ZXh0TWVudSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9EYXRhR3JpZC5qczoKKyAgICAgICAgKFdJLkRhdGFHcmlkLnByb3RvdHlwZS5fc3RhcnRFZGl0
aW5nKToKKyAgICAgICAgKFdJLkRhdGFHcmlkLnByb3RvdHlwZS5fZWRpdGluZ0NhbmNlbGxlZCk6
CisgICAgICAgIChXSS5EYXRhR3JpZC5wcm90b3R5cGUuZGF0YUdyaWROb2RlRnJvbU5vZGUpOgor
ICAgICAgICAoV0kuRGF0YUdyaWQucHJvdG90eXBlLmRhdGFHcmlkTm9kZUZyb21Qb2ludCk6Cisg
ICAgICAgIChXSS5EYXRhR3JpZC5wcm90b3R5cGUuX2hlYWRlckNlbGxDbGlja2VkKToKKyAgICAg
ICAgKFdJLkRhdGFHcmlkLnByb3RvdHlwZS5fbW91c2VvdmVyQ29sdW1uQ29sbGFwc2VyKToKKyAg
ICAgICAgKFdJLkRhdGFHcmlkLnByb3RvdHlwZS5fbW91c2VvdXRDb2x1bW5Db2xsYXBzZXIpOgor
ICAgICAgICAoV0kuRGF0YUdyaWQucHJvdG90eXBlLl9jbGlja0luQ29sdW1uQ29sbGFwc2VyKToK
KyAgICAgICAgKFdJLkRhdGFHcmlkLnByb3RvdHlwZS5fY29udGV4dE1lbnVJbkhlYWRlcik6Cisg
ICAgICAgIChXSS5EYXRhR3JpZC5wcm90b3R5cGUuX2NvbnRleHRNZW51SW5EYXRhVGFibGUpOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWROb2RlLmpzOgorICAgICAgICAo
V0kuRGF0YUdyaWROb2RlLnByb3RvdHlwZS5pc0V2ZW50V2l0aGluRGlzY2xvc3VyZVRyaWFuZ2xl
KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xlZ2FjeVRhYkJhci5qczoKKyAgICAg
ICAgKFdJLkxlZ2FjeVRhYkJhci5wcm90b3R5cGUuX2hhbmRsZU1vdXNlRG93bik6CisgICAgICAg
IChXSS5MZWdhY3lUYWJCYXIucHJvdG90eXBlLl9oYW5kbGVDbGljayk6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkxvZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgIChXSS5M
b2dDb250ZW50Vmlldy5wcm90b3R5cGUuX21vdXNlZG93bik6CisgICAgICAgIChXSS5Mb2dDb250
ZW50Vmlldy5wcm90b3R5cGUuX3RhcmdldEluTWVzc2FnZUNhbkJlU2VsZWN0ZWQpOgorICAgICAg
ICAoV0kuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLl9tb3VzZW1vdmUpOgorICAgICAgICAoV0ku
TG9nQ29udGVudFZpZXcucHJvdG90eXBlLl9tb3VzZXVwKToKKyAgICAgICAgKFdJLkxvZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5fb25kcmFnc3RhcnQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvTmF2aWdhdGlvbkJhci5qczoKKyAgICAgICAgKFdJLk5hdmlnYXRpb25CYXIucHJvdG90
eXBlLl9tb3VzZURvd24pOgorICAgICAgICAoV0kuTmF2aWdhdGlvbkJhci5wcm90b3R5cGUuX21v
dXNlTW92ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUG9wb3Zlci5qczoKKyAg
ICAgICAgKFdJLlBvcG92ZXIucHJvdG90eXBlLmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL1RhYkJhci5qczoKKyAgICAgICAgKFdJLlRhYkJhci5wcm90b3R5cGUu
X2hhbmRsZU1vdXNlRG93bik6CisgICAgICAgIChXSS5UYWJCYXIucHJvdG90eXBlLl9oYW5kbGVD
bGljayk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UYWJsZS5qczoKKyAgICAgICAg
KFdJLlRhYmxlLnByb3RvdHlwZS5faGFuZGxlTW91c2VEb3duKToKKyAgICAgICAgKFdJLlRhYmxl
LnByb3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXSS5UcmVlT3V0bGluZS5wcm90b3R5cGUu
dHJlZUVsZW1lbnRGcm9tTm9kZSk6CisKIDIwMTktMDItMjcgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT04ocjI0MjEx
OCk6IERlYnVnZ2VyOiBldmVudCBicmVha3BvaW50cyBoYXZlIG5vIGljb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCBlZjVmMTY1
ODg1ZjNmODBlMDI5OGUxZWI2YmQ0N2QzM2MzMzFhMDQxLi5iN2JjOWVkZWM0OWM4ZjRiZTU2Y2Jl
NzUzMTVkYzM3NjY2ZDk3Y2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC05MTEsNyArOTExLDcgQEAgV0kudXBkYXRlVmlzaWJp
bGl0eVN0YXRlID0gZnVuY3Rpb24odmlzaWJsZSkKIAogV0kuaGFuZGxlUG9zc2libGVMaW5rQ2xp
Y2sgPSBmdW5jdGlvbihldmVudCwgZnJhbWUsIG9wdGlvbnMgPSB7fSkKIHsKLSAgICBsZXQgYW5j
aG9yRWxlbWVudCA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1l
KCJhIik7CisgICAgbGV0IGFuY2hvckVsZW1lbnQgPSBldmVudC50YXJnZXQuY2xvc2VzdCgiYSIp
OwogICAgIGlmICghYW5jaG9yRWxlbWVudCB8fCAhYW5jaG9yRWxlbWVudC5ocmVmKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKQEAgLTIzMzcsNyArMjMzNyw3IEBAIFdJLl9mb2N1c0NvbnNvbGVQ
cm9tcHQgPSBmdW5jdGlvbihldmVudCkKIFdJLl9mb2N1c2VkQ29udGVudEJyb3dzZXIgPSBmdW5j
dGlvbigpCiB7CiAgICAgaWYgKHRoaXMuY3VycmVudEZvY3VzRWxlbWVudCkgewotICAgICAgICBs
ZXQgY29udGVudEJyb3dzZXJFbGVtZW50ID0gdGhpcy5jdXJyZW50Rm9jdXNFbGVtZW50LmVuY2xv
c2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoImNvbnRlbnQtYnJvd3NlciIpOworICAgICAgICBsZXQg
Y29udGVudEJyb3dzZXJFbGVtZW50ID0gdGhpcy5jdXJyZW50Rm9jdXNFbGVtZW50LmNsb3Nlc3Qo
Ii5jb250ZW50LWJyb3dzZXIiKTsKICAgICAgICAgaWYgKGNvbnRlbnRCcm93c2VyRWxlbWVudCAm
JiBjb250ZW50QnJvd3NlckVsZW1lbnQuX192aWV3ICYmIGNvbnRlbnRCcm93c2VyRWxlbWVudC5f
X3ZpZXcgaW5zdGFuY2VvZiBXSS5Db250ZW50QnJvd3NlcikKICAgICAgICAgICAgIHJldHVybiBj
b250ZW50QnJvd3NlckVsZW1lbnQuX192aWV3OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKaW5kZXggYmIzZDFk
YmU0N2MzNzBjYzA1ZTI4NDRiYmNhODFlNjZjZjA0YmE2MS4uZGQ3ODM0MzM3Nzg1ZDM3ZTkwOTZh
N2U5YzEyOWJjYzlkNjc4NzVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKQEAgLTE4MCw0NCArMTgwLDYgQEAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KFNldC5wcm90b3R5cGUsICJpc1N1YnNldE9mIiwKICAgICB9CiB9
KTsKIAotT2JqZWN0LmRlZmluZVByb3BlcnR5KE5vZGUucHJvdG90eXBlLCAiZW5jbG9zaW5nTm9k
ZU9yU2VsZldpdGhDbGFzcyIsCi17Ci0gICAgdmFsdWUoY2xhc3NOYW1lKQotICAgIHsKLSAgICAg
ICAgZm9yIChsZXQgbm9kZSA9IHRoaXM7IG5vZGU7IG5vZGUgPSBub2RlLnBhcmVudEVsZW1lbnQp
IHsKLSAgICAgICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSAm
JiBub2RlLmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBub2RlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotfSk7
Ci0KLU9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgImVuY2xvc2luZ05vZGVP
clNlbGZXaXRoTm9kZU5hbWVJbkFycmF5IiwKLXsKLSAgICB2YWx1ZShub2RlTmFtZXMpCi0gICAg
ewotICAgICAgICBsZXQgbG93ZXJDYXNlTm9kZU5hbWVzID0gbm9kZU5hbWVzLm1hcCgobmFtZSkg
PT4gbmFtZS50b0xvd2VyQ2FzZSgpKTsKLQotICAgICAgICBmb3IgKGxldCBub2RlID0gdGhpczsg
bm9kZTsgbm9kZSA9IG5vZGUucGFyZW50RWxlbWVudCkgewotICAgICAgICAgICAgZm9yIChsZXQg
bm9kZU5hbWUgb2YgbG93ZXJDYXNlTm9kZU5hbWVzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG5v
ZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gbm9kZU5hbWUpCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiBub2RlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0
dXJuIG51bGw7Ci0gICAgfQotfSk7Ci0KLU9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3Rv
dHlwZSwgImVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5hbWUiLAotewotICAgIHZhbHVlKG5v
ZGVOYW1lKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZW5jbG9zaW5nTm9kZU9yU2VsZldp
dGhOb2RlTmFtZUluQXJyYXkoW25vZGVOYW1lXSk7Ci0gICAgfQotfSk7Ci0KIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgInRyYXZlcnNlTmV4dE5vZGUiLAogewogICAgIHZh
bHVlKHN0YXlXaXRoaW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DUFVUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DUFVUaW1lbGluZVZpZXcuanMKaW5kZXggNzBlYmRiNzEyNGFh
NzcwYmYxZWFhZjY1Yjk2NzA5ODYzODk2NWZmYi4uOGVmNTRmYTlkNjRiNWIyOGZlNmM3NTNmODc0
ZjljM2UyOTg5Y2M3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ1BVVGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NQVVRpbWVsaW5lVmlldy5qcwpAQCAtNzIwLDcgKzcyMCw3
IEBAIFdJLkNQVVRpbWVsaW5lVmlldyA9IGNsYXNzIENQVVRpbWVsaW5lVmlldyBleHRlbmRzIFdJ
LlRpbWVsaW5lVmlldwogCiAgICAgX2dyYXBoUG9zaXRpb25Gb3JNb3VzZUV2ZW50KGV2ZW50KQog
ICAgIHsKLSAgICAgICAgbGV0IHN2Z0VsZW1lbnQgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9k
ZU9yU2VsZldpdGhOb2RlTmFtZSgic3ZnIik7CisgICAgICAgIGxldCBzdmdFbGVtZW50ID0gZXZl
bnQudGFyZ2V0LmNsb3Nlc3QoInN2ZyIpOwogICAgICAgICBpZiAoIXN2Z0VsZW1lbnQpCiAgICAg
ICAgICAgICByZXR1cm4gTmFOOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Db21wbGV0aW9uU3VnZ2VzdGlvbnNWaWV3LmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcGxldGlvblN1Z2dlc3Rpb25z
Vmlldy5qcwppbmRleCBkNzZmYjE4YzBlZjg4Mjk5YWU5Yjc0NzA5OThiMzM2MDg2Nzc5OTA5Li45
ZDg4Y2Y2MmNmNTgxZDViYmY4NGU1N2IzNDM4YWE3NWRlNWM3NTUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db21wbGV0aW9uU3VnZ2VzdGlv
bnNWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NvbXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcuanMKQEAgLTY4LDcgKzY4LDcgQEAgV0kuQ29tcGxl
dGlvblN1Z2dlc3Rpb25zVmlldyA9IGNsYXNzIENvbXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICB7CiAgICAgICAgIHZhciBzZWxlY3RlZEl0ZW1FbGVtZW50ID0g
dGhpcy5fc2VsZWN0ZWRJdGVtRWxlbWVudDsKICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbUVsZW1l
bnQpCi0gICAgICAgICAgICBzZWxlY3RlZEl0ZW1FbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoV0ku
Q29tcGxldGlvblN1Z2dlc3Rpb25zVmlldy5TZWxlY3RlZEl0ZW1TdHlsZUNsYXNzTmFtZSk7Cisg
ICAgICAgICAgICBzZWxlY3RlZEl0ZW1FbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGVk
Iik7CiAKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IGluZGV4OwogCkBAIC03Niw3ICs3
Niw3IEBAIFdJLkNvbXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcgPSBjbGFzcyBDb21wbGV0aW9uU3Vn
Z2VzdGlvbnNWaWV3IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGlmICghc2VsZWN0ZWRJdGVt
RWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBzZWxlY3RlZEl0ZW1FbGVt
ZW50LmNsYXNzTGlzdC5hZGQoV0kuQ29tcGxldGlvblN1Z2dlc3Rpb25zVmlldy5TZWxlY3RlZEl0
ZW1TdHlsZUNsYXNzTmFtZSk7CisgICAgICAgIHNlbGVjdGVkSXRlbUVsZW1lbnQuY2xhc3NMaXN0
LmFkZCgic2VsZWN0ZWQiKTsKICAgICAgICAgc2VsZWN0ZWRJdGVtRWxlbWVudC5zY3JvbGxJbnRv
Vmlld0lmTmVlZGVkKGZhbHNlKTsKICAgICB9CiAKQEAgLTE5MiwxMCArMTkyLDkgQEAgV0kuQ29t
cGxldGlvblN1Z2dlc3Rpb25zVmlldyA9IGNsYXNzIENvbXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcg
ZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbXBsZXRp
b25zLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgaXRlbUVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgICAgIGl0ZW1FbGVtZW50LmNsYXNzTmFt
ZSA9IFdJLkNvbXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcuSXRlbUVsZW1lbnRTdHlsZUNsYXNzTmFt
ZTsKKyAgICAgICAgICAgIGl0ZW1FbGVtZW50LmNsYXNzTGlzdC5hZGQoIml0ZW0iKTsKKyAgICAg
ICAgICAgIGl0ZW1FbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdGVkIiwgaSA9PT0gdGhp
cy5fc2VsZWN0ZWRJbmRleCk7CiAgICAgICAgICAgICBpdGVtRWxlbWVudC50ZXh0Q29udGVudCA9
IGNvbXBsZXRpb25zW2ldOwotICAgICAgICAgICAgaWYgKGkgPT09IHRoaXMuX3NlbGVjdGVkSW5k
ZXgpCi0gICAgICAgICAgICAgICAgaXRlbUVsZW1lbnQuY2xhc3NMaXN0LmFkZChXSS5Db21wbGV0
aW9uU3VnZ2VzdGlvbnNWaWV3LlNlbGVjdGVkSXRlbVN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAg
ICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQoaXRlbUVsZW1lbnQpOwogCiAg
ICAgICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLmNv
bXBsZXRpb25TdWdnZXN0aW9uc1ZpZXdDdXN0b21pemVDb21wbGV0aW9uRWxlbWVudCA9PT0gImZ1
bmN0aW9uIikKQEAgLTIzOCw3ICsyMzcsNyBAQCBXSS5Db21wbGV0aW9uU3VnZ2VzdGlvbnNWaWV3
ID0gY2xhc3MgQ29tcGxldGlvblN1Z2dlc3Rpb25zVmlldyBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIHZhciBpdGVtRWxlbWVudCA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0
aENsYXNzKFdJLkNvbXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcuSXRlbUVsZW1lbnRTdHlsZUNsYXNz
TmFtZSk7CisgICAgICAgIGxldCBpdGVtRWxlbWVudCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCIu
aXRlbSIpOwogICAgICAgICBjb25zb2xlLmFzc2VydChpdGVtRWxlbWVudCk7CiAgICAgICAgIGlm
ICghaXRlbUVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yNTYsNiArMjU1LDMgQEAg
V0kuQ29tcGxldGlvblN1Z2dlc3Rpb25zVmlldyA9IGNsYXNzIENvbXBsZXRpb25TdWdnZXN0aW9u
c1ZpZXcgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5fbW92ZUludGVydmFsSWRlbnRp
ZmllciA9IG51bGw7CiAgICAgfQogfTsKLQotV0kuQ29tcGxldGlvblN1Z2dlc3Rpb25zVmlldy5J
dGVtRWxlbWVudFN0eWxlQ2xhc3NOYW1lID0gIml0ZW0iOwotV0kuQ29tcGxldGlvblN1Z2dlc3Rp
b25zVmlldy5TZWxlY3RlZEl0ZW1TdHlsZUNsYXNzTmFtZSA9ICJzZWxlY3RlZCI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlR3Jv
dXAuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xl
R3JvdXAuanMKaW5kZXggZjRhNzRkYTBiMDgzMTZlYjM1ODNmMGI0YmI4ODczYzA5MWYxNjM1NC4u
YjA4NWQ3ODg4ODM2YTcxMTRkMjUyZTVjYTkzMGE5NWQxNDEzMTNlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUdyb3VwLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVHcm91
cC5qcwpAQCAtODksOSArODksOSBAQCBXSS5Db25zb2xlR3JvdXAgPSBjbGFzcyBDb25zb2xlR3Jv
dXAgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIF90aXRsZUNsaWNrZWQoZXZlbnQpCiAgICAgewot
ICAgICAgICB2YXIgZ3JvdXBUaXRsZUVsZW1lbnQgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9k
ZU9yU2VsZldpdGhDbGFzcygiY29uc29sZS1ncm91cC10aXRsZSIpOworICAgICAgICB2YXIgZ3Jv
dXBUaXRsZUVsZW1lbnQgPSBldmVudC50YXJnZXQuY2xvc2VzdCgiLmNvbnNvbGUtZ3JvdXAtdGl0
bGUiKTsKICAgICAgICAgaWYgKGdyb3VwVGl0bGVFbGVtZW50KSB7Ci0gICAgICAgICAgICB2YXIg
Z3JvdXBFbGVtZW50ID0gZ3JvdXBUaXRsZUVsZW1lbnQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhD
bGFzcygiY29uc29sZS1ncm91cCIpOworICAgICAgICAgICAgdmFyIGdyb3VwRWxlbWVudCA9IGdy
b3VwVGl0bGVFbGVtZW50LmNsb3Nlc3QoIi5jb25zb2xlLWdyb3VwIik7CiAgICAgICAgICAgICBp
ZiAoZ3JvdXBFbGVtZW50KQogICAgICAgICAgICAgICAgIGlmIChncm91cEVsZW1lbnQuY2xhc3NM
aXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKSkKICAgICAgICAgICAgICAgICAgICAgZ3JvdXBFbGVt
ZW50LmNsYXNzTGlzdC5yZW1vdmUoImNvbGxhcHNlZCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUNvbnRlbnRWaWV3LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUNvbnRlbnRW
aWV3LmpzCmluZGV4IDMyNjU0MzE2OGU4ZjI0YWEwMDgyMDY1OTY5ZDJjNDExZTNmYmMwZTcuLmRk
ZjU1NzA3YTdkZTczNTI2N2IwMTI5ODNlYzljMGIzZGU0MDlhMzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVDb250ZW50Vmlldy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVl
Q29udGVudFZpZXcuanMKQEAgLTUwMiw3ICs1MDIsNyBAQCBXSS5ET01UcmVlQ29udGVudFZpZXcg
PSBjbGFzcyBET01UcmVlQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAg
X21vdXNlV2FzQ2xpY2tlZChldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBhbmNob3JFbGVtZW50
ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5hbWUoImEiKTsKKyAg
ICAgICAgdmFyIGFuY2hvckVsZW1lbnQgPSBldmVudC50YXJnZXQuY2xvc2VzdCgiYSIpOwogICAg
ICAgICBpZiAoIWFuY2hvckVsZW1lbnQgfHwgIWFuY2hvckVsZW1lbnQuaHJlZikKICAgICAgICAg
ICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcwppbmRleCA4YzQ1YTU0N2ZjZjJjZGRk
ODE1YjIzMDMxYjMyNTEzOGYxYTViYTZhLi4wYTFmODI1YmFkMDAxYjRhNGVkMmRkYjY3NjI2ZDYy
YzZlNTk0YzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcwpAQCAtNjk2LDE1ICs2OTYsMTUgQEAg
V0kuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdJLlRyZWVF
bGVtZW50CiAgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlKCkgIT09
IE5vZGUuRUxFTUVOVF9OT0RFICYmIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUoKSAh
PT0gTm9kZS5URVhUX05PREUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAg
dmFyIHRleHROb2RlID0gZXZlbnRUYXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygi
aHRtbC10ZXh0LW5vZGUiKTsKKyAgICAgICAgdmFyIHRleHROb2RlID0gZXZlbnRUYXJnZXQuY2xv
c2VzdCgiLmh0bWwtdGV4dC1ub2RlIik7CiAgICAgICAgIGlmICh0ZXh0Tm9kZSkKICAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9zdGFydEVkaXRpbmdUZXh0Tm9kZSh0ZXh0Tm9kZSk7CiAKLSAgICAg
ICAgdmFyIGF0dHJpYnV0ZSA9IGV2ZW50VGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xh
c3MoImh0bWwtYXR0cmlidXRlIik7CisgICAgICAgIHZhciBhdHRyaWJ1dGUgPSBldmVudFRhcmdl
dC5jbG9zZXN0KCIuaHRtbC1hdHRyaWJ1dGUiKTsKICAgICAgICAgaWYgKGF0dHJpYnV0ZSkKICAg
ICAgICAgICAgIHJldHVybiB0aGlzLl9zdGFydEVkaXRpbmdBdHRyaWJ1dGUoYXR0cmlidXRlLCBl
dmVudFRhcmdldCk7CiAKLSAgICAgICAgdmFyIHRhZ05hbWUgPSBldmVudFRhcmdldC5lbmNsb3Np
bmdOb2RlT3JTZWxmV2l0aENsYXNzKCJodG1sLXRhZy1uYW1lIik7CisgICAgICAgIHZhciB0YWdO
YW1lID0gZXZlbnRUYXJnZXQuY2xvc2VzdCgiLmh0bWwtdGFnLW5hbWUiKTsKICAgICAgICAgaWYg
KHRhZ05hbWUpCiAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhcnRFZGl0aW5nVGFnTmFtZSh0
YWdOYW1lKTsKIApAQCAtNzM4LDcgKzczOCw3IEBAIFdJLkRPTVRyZWVFbGVtZW50ID0gY2xhc3Mg
RE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5UcmVlRWxlbWVudAogCiAgICAgICAgIHN1Yk1lbnVz
LmFkZC5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJBdHRyaWJ1dGUiKSwgdGhpcy5fYWRkTmV3QXR0
cmlidXRlLmJpbmQodGhpcyksICFpc05vblNoYWRvd0VkaXRhYmxlKTsKIAotICAgICAgICBsZXQg
YXR0cmlidXRlID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoImh0
bWwtYXR0cmlidXRlIik7CisgICAgICAgIGxldCBhdHRyaWJ1dGUgPSBldmVudC50YXJnZXQuY2xv
c2VzdCgiLmh0bWwtYXR0cmlidXRlIik7CiAgICAgICAgIHN1Yk1lbnVzLmVkaXQuYXBwZW5kSXRl
bShXSS5VSVN0cmluZygiQXR0cmlidXRlIiksIHRoaXMuX3N0YXJ0RWRpdGluZ0F0dHJpYnV0ZS5i
aW5kKHRoaXMsIGF0dHJpYnV0ZSwgZXZlbnQudGFyZ2V0KSwgIWF0dHJpYnV0ZSB8fCAhIGlzTm9u
U2hhZG93RWRpdGFibGUpOwogCiAgICAgICAgIGxldCBhdHRyaWJ1dGVOYW1lID0gbnVsbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRy
ZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NVHJlZU91dGxpbmUuanMKaW5kZXggZjU0NGViNzJlOWE5Y2U1YzY2N2QyYzc0YWQ4YjVjMmI4
YzM3NjQwMi4uNjdlYmQwNjIwZjYyNGUyNWM1ZDJlNGQyMzNhM2RkNmNhYzYzMTlhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91
dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NVHJlZU91dGxpbmUuanMKQEAgLTI0NCwxMCArMjQ0LDEwIEBAIFdJLkRPTVRyZWVPdXRsaW5l
ID0gY2xhc3MgRE9NVHJlZU91dGxpbmUgZXh0ZW5kcyBXSS5UcmVlT3V0bGluZQogCiAgICAgcG9w
dWxhdGVDb250ZXh0TWVudShjb250ZXh0TWVudSwgZXZlbnQsIHRyZWVFbGVtZW50KQogICAgIHsK
LSAgICAgICAgbGV0IHRhZyA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENs
YXNzKCJodG1sLXRhZyIpOwotICAgICAgICBsZXQgdGV4dE5vZGUgPSBldmVudC50YXJnZXQuZW5j
bG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygiaHRtbC10ZXh0LW5vZGUiKTsKLSAgICAgICAgbGV0
IGNvbW1lbnROb2RlID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3Mo
Imh0bWwtY29tbWVudCIpOwotICAgICAgICBsZXQgcHNldWRvRWxlbWVudCA9IGV2ZW50LnRhcmdl
dC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKCJodG1sLXBzZXVkby1lbGVtZW50Iik7Cisg
ICAgICAgIGxldCB0YWcgPSBldmVudC50YXJnZXQuY2xvc2VzdCgiLmh0bWwtdGFnIik7CisgICAg
ICAgIGxldCB0ZXh0Tm9kZSA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCIuaHRtbC10ZXh0LW5vZGUi
KTsKKyAgICAgICAgbGV0IGNvbW1lbnROb2RlID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoIi5odG1s
LWNvbW1lbnQiKTsKKyAgICAgICAgbGV0IHBzZXVkb0VsZW1lbnQgPSBldmVudC50YXJnZXQuY2xv
c2VzdCgiLmh0bWwtcHNldWRvLWVsZW1lbnQiKTsKIAogICAgICAgICBsZXQgc3ViTWVudXMgPSB7
CiAgICAgICAgICAgICBhZGQ6IG5ldyBXSS5Db250ZXh0U3ViTWVudUl0ZW0oY29udGV4dE1lbnUs
IFdJLlVJU3RyaW5nKCJBZGQiKSksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFHcmlkLmpzCmluZGV4IDgzMGY4MGQ5NjI0YjMzMDAzMTAy
OGYzNTA1ZjdlZmJkY2Y4MDA5NDcuLmE1YmE1MzliOTY4YjZmMTg3YTViZmUwYTFiNDlmYTUzNDEy
MjQwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0RhdGFHcmlkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RhdGFHcmlkLmpzCkBAIC01MjQsNyArNTI0LDcgQEAgV0kuRGF0YUdyaWQgPSBjbGFz
cyBEYXRhR3JpZCBleHRlbmRzIFdJLlZpZXcKIAogICAgIF9zdGFydEVkaXRpbmcodGFyZ2V0KQog
ICAgIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSB0YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldp
dGhOb2RlTmFtZSgidGQiKTsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSB0YXJnZXQuY2xvc2VzdCgi
dGQiKTsKICAgICAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02
MDUsNyArNjA1LDcgQEAgV0kuRGF0YUdyaWQgPSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdJLlZp
ZXcKIAogICAgIF9lZGl0aW5nQ2FuY2VsbGVkKGVsZW1lbnQpCiAgICAgewotICAgICAgICBjb25z
b2xlLmFzc2VydCh0aGlzLl9lZGl0aW5nTm9kZS5lbGVtZW50ID09PSBlbGVtZW50LmVuY2xvc2lu
Z05vZGVPclNlbGZXaXRoTm9kZU5hbWUoInRyIikpOworICAgICAgICBjb25zb2xlLmFzc2VydCh0
aGlzLl9lZGl0aW5nTm9kZS5lbGVtZW50ID09PSBlbGVtZW50LmNsb3Nlc3QoInRyIikpOwogCiAg
ICAgICAgIHRoaXMuX2VkaXRpbmdOb2RlLnJlZnJlc2goKTsKIApAQCAtMTQzOCwyMCArMTQzOCwy
MCBAQCBXSS5EYXRhR3JpZCA9IGNsYXNzIERhdGFHcmlkIGV4dGVuZHMgV0kuVmlldwogCiAgICAg
ZGF0YUdyaWROb2RlRnJvbU5vZGUodGFyZ2V0KQogICAgIHsKLSAgICAgICAgdmFyIHJvd0VsZW1l
bnQgPSB0YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFtZSgidHIiKTsKKyAgICAg
ICAgdmFyIHJvd0VsZW1lbnQgPSB0YXJnZXQuY2xvc2VzdCgidHIiKTsKICAgICAgICAgcmV0dXJu
IHJvd0VsZW1lbnQgJiYgcm93RWxlbWVudC5fZGF0YUdyaWROb2RlOwogICAgIH0KIAogICAgIGRh
dGFHcmlkTm9kZUZyb21Qb2ludCh4LCB5KQogICAgIHsKICAgICAgICAgdmFyIG5vZGUgPSB0aGlz
Ll9kYXRhVGFibGVFbGVtZW50Lm93bmVyRG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh4LCB5KTsK
LSAgICAgICAgdmFyIHJvd0VsZW1lbnQgPSBub2RlLmVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9k
ZU5hbWUoInRyIik7CisgICAgICAgIHZhciByb3dFbGVtZW50ID0gbm9kZS5jbG9zZXN0KCJ0ciIp
OwogICAgICAgICByZXR1cm4gcm93RWxlbWVudCAmJiByb3dFbGVtZW50Ll9kYXRhR3JpZE5vZGU7
CiAgICAgfQogCiAgICAgX2hlYWRlckNlbGxDbGlja2VkKGV2ZW50KQogICAgIHsKLSAgICAgICAg
bGV0IGNlbGwgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFtZSgi
dGgiKTsKKyAgICAgICAgbGV0IGNlbGwgPSBldmVudC50YXJnZXQuY2xvc2VzdCgidGgiKTsKICAg
ICAgICAgaWYgKCFjZWxsIHx8ICFjZWxsLmNvbHVtbklkZW50aWZpZXIgfHwgIWNlbGwuY2xhc3NM
aXN0LmNvbnRhaW5zKFdJLkRhdGFHcmlkLlNvcnRhYmxlQ29sdW1uU3R5bGVDbGFzc05hbWUpKQog
ICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDYxLDcgKzE0NjEsNyBAQCBXSS5EYXRhR3JpZCA9
IGNsYXNzIERhdGFHcmlkIGV4dGVuZHMgV0kuVmlldwogCiAgICAgX21vdXNlb3ZlckNvbHVtbkNv
bGxhcHNlcihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBjZWxsID0gZXZlbnQudGFyZ2V0LmVu
Y2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5hbWUoInRoIik7CisgICAgICAgIHZhciBjZWxsID0g
ZXZlbnQudGFyZ2V0LmNsb3Nlc3QoInRoIik7CiAgICAgICAgIGlmICghY2VsbCB8fCAhY2VsbC5j
b2xsYXBzZXNHcm91cCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTQ3MCw3ICsxNDcwLDcg
QEAgV0kuRGF0YUdyaWQgPSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdJLlZpZXcKIAogICAgIF9t
b3VzZW91dENvbHVtbkNvbGxhcHNlcihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBjZWxsID0g
ZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5hbWUoInRoIik7CisgICAg
ICAgIHZhciBjZWxsID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoInRoIik7CiAgICAgICAgIGlmICgh
Y2VsbCB8fCAhY2VsbC5jb2xsYXBzZXNHcm91cCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAt
MTQ3OSw3ICsxNDc5LDcgQEAgV0kuRGF0YUdyaWQgPSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdJ
LlZpZXcKIAogICAgIF9jbGlja0luQ29sdW1uQ29sbGFwc2VyKGV2ZW50KQogICAgIHsKLSAgICAg
ICAgdmFyIGNlbGwgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFt
ZSgidGgiKTsKKyAgICAgICAgdmFyIGNlbGwgPSBldmVudC50YXJnZXQuY2xvc2VzdCgidGgiKTsK
ICAgICAgICAgaWYgKCFjZWxsIHx8ICFjZWxsLmNvbGxhcHNlc0dyb3VwKQogICAgICAgICAgICAg
cmV0dXJuOwogCkBAIC0xNTc4LDcgKzE1NzgsNyBAQCBXSS5EYXRhR3JpZCA9IGNsYXNzIERhdGFH
cmlkIGV4dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAodGhpcy5faGFzQ29weWFibGVEYXRhKCkp
CiAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJDb3B5IFRh
YmxlIiksIHRoaXMuX2NvcHlUYWJsZS5iaW5kKHRoaXMpKTsKIAotICAgICAgICBsZXQgaGVhZGVy
Q2VsbEVsZW1lbnQgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFt
ZSgidGgiKTsKKyAgICAgICAgbGV0IGhlYWRlckNlbGxFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmNs
b3Nlc3QoInRoIik7CiAgICAgICAgIGlmICghaGVhZGVyQ2VsbEVsZW1lbnQpCiAgICAgICAgICAg
ICByZXR1cm47CiAKQEAgLTE2NDcsNyArMTY0Nyw3IEBAIFdJLkRhdGFHcmlkID0gY2xhc3MgRGF0
YUdyaWQgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgICAgICAgICAgICAgIGlmIChncmlkTm9kZSA9
PT0gdGhpcy5wbGFjZWhvbGRlck5vZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJBZGQgTmV3IiksIHRoaXMuX3N0YXJ0RWRpdGlu
Zy5iaW5kKHRoaXMsIGV2ZW50LnRhcmdldCkpOwogICAgICAgICAgICAgICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xv
c2luZ05vZGVPclNlbGZXaXRoTm9kZU5hbWUoInRkIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgZWxlbWVudCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCJ0ZCIpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGNvbHVtbklkZW50aWZpZXIgPSBlbGVtZW50Ll9fY29sdW1uSWRlbnRp
ZmllcjsKICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2x1bW5UaXRsZSA9IHRoaXMuZGF0
YUdyaWQuY29sdW1ucy5nZXQoY29sdW1uSWRlbnRpZmllcilbInRpdGxlIl07CiAgICAgICAgICAg
ICAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJFZGl0IFx1
MjAxQyVzXHUyMDFEIikuZm9ybWF0KGNvbHVtblRpdGxlKSwgdGhpcy5fc3RhcnRFZGl0aW5nLmJp
bmQodGhpcywgZXZlbnQudGFyZ2V0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZE5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZE5vZGUuanMKaW5kZXggZTU4YWU1ZmRi
ODBiZDAzYTllYTkzZTU4NDYxNzYxMTg4YjA0MDk4YS4uZDkwYTk0ODBhZTAwNTZkMzY2MWI3YWNh
Yjk5OTZmYmM2YWU0ZGYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRGF0YUdyaWROb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFHcmlkTm9kZS5qcwpAQCAtNjUwLDcgKzY1MCw3IEBA
IFdJLkRhdGFHcmlkTm9kZSA9IGNsYXNzIERhdGFHcmlkTm9kZSBleHRlbmRzIFdJLk9iamVjdAog
ICAgICAgICBpZiAoIXRoaXMuaGFzQ2hpbGRyZW4pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICAgICAgbGV0IGNlbGwgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldp
dGhOb2RlTmFtZSgidGQiKTsKKyAgICAgICAgbGV0IGNlbGwgPSBldmVudC50YXJnZXQuY2xvc2Vz
dCgidGQiKTsKICAgICAgICAgaWYgKCFjZWxsIHx8ICFjZWxsLmNsYXNzTGlzdC5jb250YWlucygi
ZGlzY2xvc3VyZSIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MZWdhY3lUYWJCYXIuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MZWdhY3lUYWJCYXIu
anMKaW5kZXggYjY2YzNkYjc1Mjc3NzJlOGU1MjM5NWRjNmE1YmMxYzM5ZGZiMTkwYy4uMGM0MDNm
MjI1YjZlZTQ1MDA2ZWQ2OGIzM2M4NjIyNTA0ZTc4MGMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGVnYWN5VGFiQmFyLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xlZ2FjeVRhYkJhci5qcwpA
QCAtNTkwLDcgKzU5MCw3IEBAIFdJLkxlZ2FjeVRhYkJhciA9IGNsYXNzIExlZ2FjeVRhYkJhciBl
eHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCB8fCBldmVudC5j
dHJsS2V5KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxldCBpdGVtRWxlbWVudCA9
IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKFdJLlRhYkJhckl0ZW0u
U3R5bGVDbGFzc05hbWUpOworICAgICAgICBsZXQgaXRlbUVsZW1lbnQgPSBldmVudC50YXJnZXQu
Y2xvc2VzdCgiLiIgKyBXSS5UYWJCYXJJdGVtLlN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgaWYg
KCFpdGVtRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNjE2LDcgKzYxNiw3IEBA
IFdJLkxlZ2FjeVRhYkJhciA9IGNsYXNzIExlZ2FjeVRhYkJhciBleHRlbmRzIFdJLlZpZXcKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGxldCBjbG9zZUJ1dHRvbkVs
ZW1lbnQgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcyhXSS5UYWJC
YXJJdGVtLkNsb3NlQnV0dG9uU3R5bGVDbGFzc05hbWUpOworICAgICAgICBsZXQgY2xvc2VCdXR0
b25FbGVtZW50ID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoIi4iICsgV0kuVGFiQmFySXRlbS5DbG9z
ZUJ1dHRvblN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgaWYgKGNsb3NlQnV0dG9uRWxlbWVudCkK
ICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNjQ5LDcgKzY0OSw3IEBAIFdJLkxlZ2FjeVRhYkJh
ciA9IGNsYXNzIExlZ2FjeVRhYkJhciBleHRlbmRzIFdJLlZpZXcKIAogICAgIF9oYW5kbGVDbGlj
ayhldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBpdGVtRWxlbWVudCA9IGV2ZW50LnRhcmdldC5l
bmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKFdJLlRhYkJhckl0ZW0uU3R5bGVDbGFzc05hbWUp
OworICAgICAgICB2YXIgaXRlbUVsZW1lbnQgPSBldmVudC50YXJnZXQuY2xvc2VzdCgiLiIgKyBX
SS5UYWJCYXJJdGVtLlN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgaWYgKCFpdGVtRWxlbWVudCkK
ICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNjYyLDcgKzY2Miw3IEBAIFdJLkxlZ2FjeVRhYkJh
ciA9IGNsYXNzIExlZ2FjeVRhYkJhciBleHRlbmRzIFdJLlZpZXcKIAogICAgICAgICBjb25zdCBj
bGlja2VkTWlkZGxlQnV0dG9uID0gZXZlbnQuYnV0dG9uID09PSAxOwogCi0gICAgICAgIHZhciBj
bG9zZUJ1dHRvbkVsZW1lbnQgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhD
bGFzcyhXSS5UYWJCYXJJdGVtLkNsb3NlQnV0dG9uU3R5bGVDbGFzc05hbWUpOworICAgICAgICB2
YXIgY2xvc2VCdXR0b25FbGVtZW50ID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoIi4iICsgV0kuVGFi
QmFySXRlbS5DbG9zZUJ1dHRvblN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgaWYgKGNsb3NlQnV0
dG9uRWxlbWVudCB8fCBjbGlja2VkTWlkZGxlQnV0dG9uKSB7CiAgICAgICAgICAgICAvLyBEaXNh
bGxvdyBjbG9zaW5nIHRoZSBkZWZhdWx0IHRhYiBpZiBpdCBpcyB0aGUgb25seSB0YWIuCiAgICAg
ICAgICAgICBpZiAodGFiQmFySXRlbS5pc0RlZmF1bHRUYWIgJiYgdGhpcy5lbGVtZW50LmNsYXNz
TGlzdC5jb250YWlucygic2luZ2xlLXRhYiIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwppbmRleCAx
OTljYjc4MmU4NTZkN2VlODk4MzllMmU2NjE3NjIzNzQ1ZjM5MjE2Li5iMTU5MDk0NjkyZDM1NDc0
NjE2ODU1YTBjMTUzOGQ5MjIwOTc4NWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwpAQCAtNDcy
LDcgKzQ3Miw3IEBAIFdJLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0
ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgdGhpcy5fbW91c2V1cChldmVudCk7CiAK
ICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBzaG93IHRoZSBjdXN0b20gbWVudSBmb3IgbGlu
a3MgaW4gdGhlIGNvbnNvbGUuCi0gICAgICAgIGlmIChldmVudC50YXJnZXQuZW5jbG9zaW5nTm9k
ZU9yU2VsZldpdGhOb2RlTmFtZSgiYSIpKQorICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LmNsb3Nl
c3QoImEiKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBsZXQgY29udGV4dE1lbnUg
PSBXSS5Db250ZXh0TWVudS5jcmVhdGVGcm9tRXZlbnQoZXZlbnQpOwpAQCAtNTA5LDcgKzUwOSw3
IEBAIFdJLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5D
b250ZW50VmlldwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgdGhp
cy5fbW91c2VEb3duV3JhcHBlciA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0
aENsYXNzKFdJLkxvZ0NvbnRlbnRWaWV3Lkl0ZW1XcmFwcGVyU3R5bGVDbGFzc05hbWUpOworICAg
ICAgICB0aGlzLl9tb3VzZURvd25XcmFwcGVyID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoIi4iICsg
V0kuTG9nQ29udGVudFZpZXcuSXRlbVdyYXBwZXJTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIHRo
aXMuX21vdXNlRG93blNoaWZ0S2V5ID0gZXZlbnQuc2hpZnRLZXk7CiAgICAgICAgIHRoaXMuX21v
dXNlRG93bkNvbW1hbmRLZXkgPSBldmVudC5tZXRhS2V5OwogICAgICAgICB0aGlzLl9tb3VzZU1v
dmVJc1Jvd1NlbGVjdGlvbiA9IGZhbHNlOwpAQCAtNTIwLDcgKzUyMCw3IEBAIFdJLkxvZ0NvbnRl
bnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAg
ICAgX3RhcmdldEluTWVzc2FnZUNhbkJlU2VsZWN0ZWQodGFyZ2V0LCBtZXNzYWdlKQogICAgIHsK
LSAgICAgICAgaWYgKHRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJhIikp
CisgICAgICAgIGlmICh0YXJnZXQuY2xvc2VzdCgiYSIpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC01MjgsMTIgKzUyOCwxMiBAQCBX
SS5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVu
dFZpZXcKICAgICBfbW91c2Vtb3ZlKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIHNlbGVjdGlv
biA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKLSAgICAgICAgdmFyIHdyYXBwZXIgPSBldmVudC50
YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcyhXSS5Mb2dDb250ZW50Vmlldy5JdGVt
V3JhcHBlclN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgdmFyIHdyYXBwZXIgPSBldmVudC50YXJn
ZXQuY2xvc2VzdCgiLiIgKyBXSS5Mb2dDb250ZW50Vmlldy5JdGVtV3JhcHBlclN0eWxlQ2xhc3NO
YW1lKTsKIAogICAgICAgICBpZiAoIXdyYXBwZXIpIHsKICAgICAgICAgICAgIC8vIE5vIHdyYXBw
ZXIgdW5kZXIgdGhlIG1vdXNlLCBzbyBsb29rIGF0IHRoZSBzZWxlY3Rpb24gdG8gdHJ5IGFuZCBm
aW5kIG9uZS4KICAgICAgICAgICAgIGlmICghc2VsZWN0aW9uLmlzQ29sbGFwc2VkKQotICAgICAg
ICAgICAgICAgIHdyYXBwZXIgPSBzZWxlY3Rpb24uZm9jdXNOb2RlLmVuY2xvc2luZ05vZGVPclNl
bGZXaXRoQ2xhc3MoV0kuTG9nQ29udGVudFZpZXcuSXRlbVdyYXBwZXJTdHlsZUNsYXNzTmFtZSk7
CisgICAgICAgICAgICAgICAgd3JhcHBlciA9IHNlbGVjdGlvbi5mb2N1c05vZGUuY2xvc2VzdCgi
LiIgKyBXSS5Mb2dDb250ZW50Vmlldy5JdGVtV3JhcHBlclN0eWxlQ2xhc3NOYW1lKTsKIAogICAg
ICAgICAgICAgaWYgKCF3cmFwcGVyKSB7CiAgICAgICAgICAgICAgICAgc2VsZWN0aW9uLnJlbW92
ZUFsbFJhbmdlcygpOwpAQCAtNTcwLDcgKzU3MCw3IEBAIFdJLkxvZ0NvbnRlbnRWaWV3ID0gY2xh
c3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB3aW5kb3cu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHRoaXMpOwogCiAgICAgICAgIHZhciBzZWxl
Y3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgICAgIHZhciB3cmFwcGVyID0gZXZl
bnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoV0kuTG9nQ29udGVudFZpZXcu
SXRlbVdyYXBwZXJTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgIHZhciB3cmFwcGVyID0gZXZlbnQu
dGFyZ2V0LmNsb3Nlc3QoIi4iICsgV0kuTG9nQ29udGVudFZpZXcuSXRlbVdyYXBwZXJTdHlsZUNs
YXNzTmFtZSk7CiAKICAgICAgICAgaWYgKHdyYXBwZXIgJiYgKHNlbGVjdGlvbi5pc0NvbGxhcHNl
ZCB8fCBldmVudC5zaGlmdEtleSkpIHsKICAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxS
YW5nZXMoKTsKQEAgLTU5OCw3ICs1OTgsNyBAQCBXSS5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExv
Z0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgIF9vbmRyYWdzdGFydChl
dmVudCkKICAgICB7Ci0gICAgICAgIGlmIChldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2Vs
ZldpdGhDbGFzcyhXSS5ET01UcmVlT3V0bGluZS5TdHlsZUNsYXNzTmFtZSkpIHsKKyAgICAgICAg
aWYgKGV2ZW50LnRhcmdldC5jbG9zZXN0KCIuIiArIFdJLkRPTVRyZWVPdXRsaW5lLlN0eWxlQ2xh
c3NOYW1lKSkgewogICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAg
ICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OYXZpZ2F0aW9uQmFyLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmF2aWdhdGlvbkJhci5q
cwppbmRleCAxMjZmOThlZGUzYmRiMmYxZjkyZDYxYWU3MmIwOGViMzgwMDEwYTAxLi43YzAzMjkz
YjI2YzQzMWJkOThhNDFhMDgxMzM5ZWNhMjU1ZWY5NThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OYXZpZ2F0aW9uQmFyLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05hdmlnYXRpb25CYXIuanMK
QEAgLTI5NSw3ICsyOTUsNyBAQCBXSS5OYXZpZ2F0aW9uQmFyID0gY2xhc3MgTmF2aWdhdGlvbkJh
ciBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKCF0aGlzLl9mb2N1c2VkKQogICAgICAgICAg
ICAgdGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKTsKIAotICAgICAgICB2
YXIgaXRlbUVsZW1lbnQgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFz
cyhXSS5SYWRpb0J1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAg
dmFyIGl0ZW1FbGVtZW50ID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoIi4iICsgV0kuUmFkaW9CdXR0
b25OYXZpZ2F0aW9uSXRlbS5TdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIGlmICghaXRlbUVsZW1l
bnQgfHwgIWl0ZW1FbGVtZW50Lm5hdmlnYXRpb25JdGVtKQogICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC0zMjcsNyArMzI3LDcgQEAgV0kuTmF2aWdhdGlvbkJhciA9IGNsYXNzIE5hdmlnYXRpb25C
YXIgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAg
ICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogCi0gICAgICAgIHZhciBpdGVtRWxlbWVudCA9
IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKFdJLlJhZGlvQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uU3R5bGVDbGFzc05hbWUpOworICAgICAgICB2YXIgaXRlbUVsZW1lbnQg
PSBldmVudC50YXJnZXQuY2xvc2VzdCgiLiIgKyBXSS5SYWRpb0J1dHRvbk5hdmlnYXRpb25JdGVt
LlN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgaWYgKCFpdGVtRWxlbWVudCB8fCAhaXRlbUVsZW1l
bnQubmF2aWdhdGlvbkl0ZW0gfHwgIXRoaXMuZWxlbWVudC5jb250YWlucyhpdGVtRWxlbWVudCkp
IHsKICAgICAgICAgICAgIC8vIEZpbmQgdGhlIGVsZW1lbnQgdGhhdCBpcyBhdCB0aGUgWCBwb3Np
dGlvbiBvZiB0aGUgbW91c2UsIGV2ZW4gd2hlbiB0aGUgbW91c2UgaXMgbm8gbG9uZ2VyCiAgICAg
ICAgICAgICAvLyB2ZXJ0aWNhbGx5IGluIHRoZSBuYXZpZ2F0aW9uIGJhci4KQEAgLTMzNSw3ICsz
MzUsNyBAQCBXSS5OYXZpZ2F0aW9uQmFyID0gY2xhc3MgTmF2aWdhdGlvbkJhciBleHRlbmRzIFdJ
LlZpZXcKICAgICAgICAgICAgIGlmICghZWxlbWVudCkKICAgICAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgICAgIGl0ZW1FbGVtZW50ID0gZWxlbWVudC5lbmNsb3NpbmdOb2RlT3JTZWxm
V2l0aENsYXNzKFdJLlJhZGlvQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGVDbGFzc05hbWUpOwor
ICAgICAgICAgICAgaXRlbUVsZW1lbnQgPSBlbGVtZW50LmNsb3Nlc3QoIi4iICsgV0kuUmFkaW9C
dXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICBpZiAoIWl0
ZW1FbGVtZW50IHx8ICFpdGVtRWxlbWVudC5uYXZpZ2F0aW9uSXRlbSB8fCAhdGhpcy5lbGVtZW50
LmNvbnRhaW5zKGl0ZW1FbGVtZW50KSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1BvcG92ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Q
b3BvdmVyLmpzCmluZGV4IGI4NDVlNWIyNzFlODczNTk1NWU4NzM0NGJlMGU0MTFiMmU5MzBmYTku
LjRmYzM3YmYzZmRhODI3MTEwNzFkNDQyZDAwNDc2ZGQwYzcwNjdkNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1BvcG92ZXIuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUG9wb3Zlci5qcwpAQCAt
MTcxLDcgKzE3MSw3IEBAIFdJLlBvcG92ZXIgPSBjbGFzcyBQb3BvdmVyIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgewogICAgICAgICBjYXNlICJtb3VzZWRv
d24iOgogICAgICAgICBjYXNlICJzY3JvbGwiOgotICAgICAgICAgICAgaWYgKCF0aGlzLl9lbGVt
ZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiYgIWV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2Rl
T3JTZWxmV2l0aENsYXNzKFdJLlBvcG92ZXIuSWdub3JlQXV0b0Rpc21pc3NDbGFzc05hbWUpCisg
ICAgICAgICAgICBpZiAoIXRoaXMuX2VsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiAh
ZXZlbnQudGFyZ2V0LmNsb3Nlc3QoIi4iICsgV0kuUG9wb3Zlci5JZ25vcmVBdXRvRGlzbWlzc0Ns
YXNzTmFtZSkKICAgICAgICAgICAgICAgICAmJiAhZXZlbnRbV0kuUG9wb3Zlci5FdmVudFByZXZl
bnREaXNtaXNzU3ltYm9sXSkgewogICAgICAgICAgICAgICAgIHRoaXMuZGlzbWlzcygpOwogICAg
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvVGFiQmFyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVGFiQmFyLmpzCmluZGV4IDljZGQwYTU1YzcwZmVkZGFmYTJlNmEwNmFhM2VmYjkxYzRh
OTM0MWUuLjI1OWMyNmE3YmZhMDdiNTAzODhkNmI3NzA3NWNmYmZjODk0MmY3NjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RhYkJhci5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UYWJCYXIuanMK
QEAgLTU1OCw3ICs1NTgsNyBAQCBXSS5UYWJCYXIgPSBjbGFzcyBUYWJCYXIgZXh0ZW5kcyBXSS5W
aWV3CiAgICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXZlbnQuY3RybEtleSkKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBsZXQgaXRlbUVsZW1lbnQgPSBldmVudC50YXJn
ZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcyhXSS5UYWJCYXJJdGVtLlN0eWxlQ2xhc3NO
YW1lKTsKKyAgICAgICAgbGV0IGl0ZW1FbGVtZW50ID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoIi4i
ICsgV0kuVGFiQmFySXRlbS5TdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIGlmICghaXRlbUVsZW1l
bnQpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTU4MSw3ICs1ODEsNyBAQCBXSS5UYWJCYXIg
PSBjbGFzcyBUYWJCYXIgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAotICAgICAgICBsZXQgY2xvc2VCdXR0b25FbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVu
Y2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoV0kuVGFiQmFySXRlbS5DbG9zZUJ1dHRvblN0eWxl
Q2xhc3NOYW1lKTsKKyAgICAgICAgbGV0IGNsb3NlQnV0dG9uRWxlbWVudCA9IGV2ZW50LnRhcmdl
dC5jbG9zZXN0KCIuIiArIFdJLlRhYkJhckl0ZW0uQ2xvc2VCdXR0b25TdHlsZUNsYXNzTmFtZSk7
CiAgICAgICAgIGlmIChjbG9zZUJ1dHRvbkVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAK
QEAgLTYxNCw3ICs2MTQsNyBAQCBXSS5UYWJCYXIgPSBjbGFzcyBUYWJCYXIgZXh0ZW5kcyBXSS5W
aWV3CiAKICAgICBfaGFuZGxlQ2xpY2soZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgaXRlbUVs
ZW1lbnQgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcyhXSS5UYWJC
YXJJdGVtLlN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgdmFyIGl0ZW1FbGVtZW50ID0gZXZlbnQu
dGFyZ2V0LmNsb3Nlc3QoIi4iICsgV0kuVGFiQmFySXRlbS5TdHlsZUNsYXNzTmFtZSk7CiAgICAg
ICAgIGlmICghaXRlbUVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTYyNyw3ICs2
MjcsNyBAQCBXSS5UYWJCYXIgPSBjbGFzcyBUYWJCYXIgZXh0ZW5kcyBXSS5WaWV3CiAKICAgICAg
ICAgY29uc3QgY2xpY2tlZE1pZGRsZUJ1dHRvbiA9IGV2ZW50LmJ1dHRvbiA9PT0gMTsKIAotICAg
ICAgICB2YXIgY2xvc2VCdXR0b25FbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVP
clNlbGZXaXRoQ2xhc3MoV0kuVGFiQmFySXRlbS5DbG9zZUJ1dHRvblN0eWxlQ2xhc3NOYW1lKTsK
KyAgICAgICAgdmFyIGNsb3NlQnV0dG9uRWxlbWVudCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCIu
IiArIFdJLlRhYkJhckl0ZW0uQ2xvc2VCdXR0b25TdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIGlm
IChjbG9zZUJ1dHRvbkVsZW1lbnQgfHwgY2xpY2tlZE1pZGRsZUJ1dHRvbikgewogICAgICAgICAg
ICAgLy8gRGlzYWxsb3cgY2xvc2luZyB0aGUgb25seSB0YWIuCiAgICAgICAgICAgICBpZiAodGhp
cy5lbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygic2luZ2xlLXRhYiIpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGFibGUuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UYWJsZS5qcwppbmRleCA2OGRm
OTM1YjdkYzRkMzIzMzZhOWZhMzllYTI2MTk5YWY3ZTA1OWQ3Li4wMDYxMzM3MDUyMWEyZTcyOWVi
OWI3NTU3ZmY1YWM3ZGYwMWUwZmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9UYWJsZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9UYWJsZS5qcwpAQCAtMTI5OSw3ICsxMjk5LDcgQEAgV0kuVGFi
bGUgPSBjbGFzcyBUYWJsZSBleHRlbmRzIFdJLlZpZXcKIAogICAgIF9oYW5kbGVNb3VzZURvd24o
ZXZlbnQpCiAgICAgewotICAgICAgICBsZXQgY2VsbCA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdO
b2RlT3JTZWxmV2l0aENsYXNzKCJjZWxsIik7CisgICAgICAgIGxldCBjZWxsID0gZXZlbnQudGFy
Z2V0LmNsb3Nlc3QoIi5jZWxsIik7CiAgICAgICAgIGlmICghY2VsbCkKICAgICAgICAgICAgIHJl
dHVybjsKIApAQCAtMTMyMyw3ICsxMzIzLDcgQEAgV0kuVGFibGUgPSBjbGFzcyBUYWJsZSBleHRl
bmRzIFdJLlZpZXcKIAogICAgIF9oYW5kbGVDb250ZXh0TWVudShldmVudCkKICAgICB7Ci0gICAg
ICAgIGxldCBjZWxsID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3Mo
ImNlbGwiKTsKKyAgICAgICAgbGV0IGNlbGwgPSBldmVudC50YXJnZXQuY2xvc2VzdCgiLmNlbGwi
KTsKICAgICAgICAgaWYgKCFjZWxsKQogICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlT3V0bGluZS5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5l
LmpzCmluZGV4IGIzZTQ2MjI0MTFmMDM5ODkxYzM3NWNiOWNjODEwZmVlYjQwMzlkMjYuLjk1OGNi
M2JkMGQ5OWE0MmE0NTdiMDI4ZTQyOGQ5YTg1NmYxMmYyOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzCkBA
IC01NzQsNyArNTc0LDcgQEAgV0kuVHJlZU91dGxpbmUgPSBjbGFzcyBUcmVlT3V0bGluZSBleHRl
bmRzIFdJLk9iamVjdAogCiAgICAgdHJlZUVsZW1lbnRGcm9tTm9kZShub2RlKQogICAgIHsKLSAg
ICAgICAgdmFyIGxpc3ROb2RlID0gbm9kZS5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1l
SW5BcnJheShbIm9sIiwgImxpIl0pOworICAgICAgICB2YXIgbGlzdE5vZGUgPSBub2RlLmNsb3Nl
c3QoIm9sLCBsaSIpOwogICAgICAgICBpZiAobGlzdE5vZGUpCiAgICAgICAgICAgICByZXR1cm4g
bGlzdE5vZGUucGFyZW50VHJlZUVsZW1lbnQgfHwgbGlzdE5vZGUudHJlZUVsZW1lbnQ7CiAgICAg
ICAgIHJldHVybiBudWxsOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>