<?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>161567</bug_id>
          
          <creation_ts>2016-09-02 21:11:50 -0700</creation_ts>
          <short_desc>Web Inspector: Enable and enforce some recommended and stylistic ESLint rules</short_desc>
          <delta_ts>2016-09-04 22:15:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1226083</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-02 21:11:50 -0700</bug_when>
    <thetext>Enable and enforce some stylistic ESLint rules</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226084</commentid>
    <comment_count>1</comment_count>
      <attachid>287853</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-02 21:12:53 -0700</bug_when>
    <thetext>Created attachment 287853
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226115</commentid>
    <comment_count>2</comment_count>
      <attachid>287853</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-09-03 07:14:07 -0700</bug_when>
    <thetext>Comment on attachment 287853
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:597
&gt; -            let timerDetails = {timerId: recordPayload.data.timerId, timeout: recordPayload.data.timeout, repeating: !recordPayload.data.singleShot};
&gt; +            var timerDetails = {timerId: recordPayload.data.timerId, timeout: recordPayload.data.timeout, repeating: !recordPayload.data.singleShot};

I don’t understand why this semantic change would be needed to satisfy a style rule.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226167</commentid>
    <comment_count>3</comment_count>
      <attachid>287853</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-09-03 14:18:06 -0700</bug_when>
    <thetext>Comment on attachment 287853
[PATCH] Proposed Fix

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

r=me but have questions about let-&gt;var in case statements.

&gt; Source/WebInspectorUI/UserInterface/Base/MIMETypeUtilities.js:-107
&gt; -        &quot;image/jpeg&quot;: &quot;jpeg&quot;,

This seems unrelated to the style change.

&gt; Source/WebInspectorUI/UserInterface/Base/MIMETypeUtilities.js:-111
&gt; -        &quot;image/tiff&quot;: &quot;tif&quot;,

Ditto.

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:597
&gt;&gt; +            var timerDetails = {timerId: recordPayload.data.timerId, timeout: recordPayload.data.timeout, repeating: !recordPayload.data.singleShot};
&gt; 
&gt; I don’t understand why this semantic change would be needed to satisfy a style rule.

Yeah, this does not seem necessary to me.

&gt; Source/WebInspectorUI/UserInterface/Models/SourceCodeLocation.js:335
&gt; +            var displayURL = sourceCode.displayURL;

Same thing as Darin&apos;s comment here.

&gt; Source/WebInspectorUI/UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:58
&gt; +            var titleElement = fragment.appendChild(document.createElement(&quot;span&quot;));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226338</commentid>
    <comment_count>4</comment_count>
      <attachid>287853</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-04 21:48:30 -0700</bug_when>
    <thetext>Comment on attachment 287853
[PATCH] Proposed Fix

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/MIMETypeUtilities.js:-107
&gt;&gt; -        &quot;image/jpeg&quot;: &quot;jpeg&quot;,
&gt; 
&gt; This seems unrelated to the style change.

This is a duplicate key. I&apos;m removing the bad duplicate.

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/MIMETypeUtilities.js:-111
&gt;&gt; -        &quot;image/tiff&quot;: &quot;tif&quot;,
&gt; 
&gt; Ditto.

This is a duplicate key. I&apos;m removing the bad duplicate.

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:597
&gt;&gt;&gt; +            var timerDetails = {timerId: recordPayload.data.timerId, timeout: recordPayload.data.timeout, repeating: !recordPayload.data.singleShot};
&gt;&gt; 
&gt;&gt; I don’t understand why this semantic change would be needed to satisfy a style rule.
&gt; 
&gt; Yeah, this does not seem necessary to me.

I have been making this review comment on patches for a while. We should not use `let` or `const` inside switch statements. This is a recommended ESLint warning:
&lt;http://eslint.org/docs/rules/no-case-declarations&gt;

`let` inside `switch` is a tricky subject. It often leads to unexpected runtime unused declaration warnings. Using `var` is safer.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/SourceCodeLocation.js:335
&gt;&gt; +            var displayURL = sourceCode.displayURL;
&gt; 
&gt; Same thing as Darin&apos;s comment here.

Same.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:58
&gt;&gt; +            var titleElement = fragment.appendChild(document.createElement(&quot;span&quot;));
&gt; 
&gt; Ditto.

Same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226348</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-04 22:15:20 -0700</bug_when>
    <thetext>&lt;https://trac.webkit.org/changeset/205426&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287853</attachid>
            <date>2016-09-02 21:12:53 -0700</date>
            <delta_ts>2016-09-04 22:01:36 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>eslint-5.patch</filename>
            <type>text/plain</type>
            <size>36402</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS8uZXNsaW50cmMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvLmVzbGludHJjCmluZGV4IDk3NzM1YzguLjk2ZmMzOTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS8uZXNsaW50cmMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJLy5lc2xpbnRyYwpAQCAtMjQsNiArMjQsNyBAQAogICovCiAKIHsKKyAgICAiZXh0ZW5kcyI6
ICJlc2xpbnQ6cmVjb21tZW5kZWQiLAogICAgICJlbnYiOiB7CiAgICAgICAgICJicm93c2VyIjog
dHJ1ZSwKICAgICAgICAgImVzNiI6IHRydWUsCkBAIC0xMjEsMTIgKzEyMiwxOSBAQAogICAgICAg
ICAicGFyc2VMb2NhdGlvblF1ZXJ5UGFyYW1ldGVycyI6IHRydWUsCiAgICAgfSwKICAgICAicnVs
ZXMiOiB7Ci0gICAgICAgICJjb21tYS1kYW5nbGUiOiAwLAorICAgICAgICAiYXJyYXktYnJhY2tl
dC1zcGFjaW5nIjogWzIsICJuZXZlciJdLAorICAgICAgICAiYmxvY2stc3BhY2luZyI6IFsyLCAi
YWx3YXlzIl0sCisgICAgICAgICJjb21tYS1kYW5nbGUiOiBbMiwgIm9ubHktbXVsdGlsaW5lIl0s
CisgICAgICAgICJjb21tYS1zcGFjaW5nIjogWzIsIHsiYmVmb3JlIjogZmFsc2UsICJhZnRlciI6
IHRydWV9XSwKKyAgICAgICAgImNvbW1hLXN0eWxlIjogWzIsICJsYXN0Il0sCiAgICAgICAgICJj
b25zaXN0ZW50LXJldHVybiI6IDIsCiAgICAgICAgICJjdXJseSI6IDAsCiAgICAgICAgICJkb3Qt
bm90YXRpb24iOiAwLAorICAgICAgICAiZW9sLWxhc3QiOiAyLAogICAgICAgICAiZXFlcWVxIjog
MiwKLSAgICAgICAgImtleXdvcmQtc3BhY2luZyI6IDIsCisgICAgICAgICJmdW5jLWNhbGwtc3Bh
Y2luZyI6IFsyLCAibmV2ZXIiXSwKKyAgICAgICAgImtleS1zcGFjaW5nIjogWzIsIHsiYmVmb3Jl
Q29sb24iOiBmYWxzZSwgImFmdGVyQ29sb24iOiB0cnVlfV0sCisgICAgICAgICJrZXl3b3JkLXNw
YWNpbmciOiBbMiwgeyJiZWZvcmUiOiB0cnVlLCAiYWZ0ZXIiOiB0cnVlfV0sCiAgICAgICAgICJu
ZXctY2FwIjogMCwKICAgICAgICAgIm5ldy1wYXJlbnMiOiAwLAogICAgICAgICAibm8tY29uc29s
ZSI6IDAsCkBAIC0xMzQsMTEgKzE0MiwxNCBAQAogICAgICAgICAibm8tZXh0cmEtYmluZCI6IDIs
CiAgICAgICAgICJuby1leHRyYS1wYXJlbnMiOiBbMiwgImFsbCIsIHsibmVzdGVkQmluYXJ5RXhw
cmVzc2lvbnMiOiBmYWxzZX1dLAogICAgICAgICAibm8tZXh0cmEtc2VtaSI6IDIsCisgICAgICAg
ICJuby1nbG9iYWwtYXNzaWduIjogMiwKICAgICAgICAgIm5vLWlubmVyLWRlY2xhcmF0aW9ucyI6
IDAsCisgICAgICAgICJuby1tdWx0aS1zcGFjZXMiOiAyLAogICAgICAgICAibm8tbmV3IjogMCwK
ICAgICAgICAgIm5vLXByb3RvIjogMCwKICAgICAgICAgIm5vLXJlZGVjbGFyZSI6IDAsCiAgICAg
ICAgICJuby1yZXR1cm4tYXNzaWduIjogMiwKKyAgICAgICAgIm5vLXNlbGYtY29tcGFyZSI6IDIs
CiAgICAgICAgICJuby1zaGFkb3ciOiAwLAogICAgICAgICAibm8tdHJhaWxpbmctc3BhY2VzIjog
MiwKICAgICAgICAgIm5vLXVuZGVmIjogMiwKQEAgLTE0Niw5ICsxNTcsMTIgQEAKICAgICAgICAg
Im5vLXVudXNlZC1leHByZXNzaW9ucyI6IDIsCiAgICAgICAgICJuby11bnVzZWQtdmFycyI6IFsy
LCB7InZhcnMiOiAiYWxsIiwgImFyZ3MiOiAibm9uZSJ9XSwKICAgICAgICAgIm5vLXVzZS1iZWZv
cmUtZGVmaW5lIjogMCwKKyAgICAgICAgIm9iamVjdC1jdXJseS1zcGFjaW5nIjogWzIsICJuZXZl
ciJdLAogICAgICAgICAicXVvdGVzIjogWzIsICJkb3VibGUiXSwKICAgICAgICAgInNlbWkiOiAy
LAorICAgICAgICAic2VtaS1zcGFjaW5nIjogWzIsIHsiYmVmb3JlIjogZmFsc2UsICJhZnRlciI6
IHRydWV9XSwKICAgICAgICAgInNwYWNlLWluZml4LW9wcyI6IDIsCisgICAgICAgICJzcGFjZWQt
Y29tbWVudCI6IFsyLCAiYWx3YXlzIl0sCiAgICAgICAgICJzdHJpY3QiOiAwLAogICAgICAgICAi
dmFsaWQtdHlwZW9mIjogMiwKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBjNTI0
YTI5Li41YTJhNDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0NCBAQAog
MjAxNi0wOS0wMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEVuYWJsZSBhbmQgZW5mb3JjZSBzb21lIHN0eWxpc3RpYyBFU0xp
bnQgcnVsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MTU2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogLmVzbGludHJjOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9FdmVudExpc3RlbmVy
LmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9FdmVudExpc3RlbmVyU2V0LmpzOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9NSU1FVHlwZVV0aWxpdGllcy5qczoKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0NvZGVNaXJyb3JUb2tlblRyYWNraW5nQ29udHJvbGxlci5qczoKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTVRyZWVNYW5hZ2VyLmpzOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU0tleXdvcmRDb21wbGV0aW9ucy5qczoKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlLmpzOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9N
b2RlbHMvRnJhbWUuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvR2VvbWV0cnku
anM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvZmlsZU5vZGUuanM6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5q
czoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9Tb3VyY2VDb2RlTG9jYXRpb24uanM6
CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanM6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmll
dy5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51LmpzOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUNvbnRlbnRWaWV3LmpzOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanM6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0dlbmVyYWxUcmVlRWxlbWVudC5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlLmpzOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanM6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9PcGVuUmVzb3VyY2VEaWFsb2cuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9TdHlsZURldGFpbHNQYW5lbC5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5qczoKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1dvcmtlcnMvRm9ybWF0dGVyL0Zvcm1hdHRlcldvcmtlci5qczoKKworMjAxNi0wOS0wMiAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEFkZHJlc3MgRVNMaW50IHVuZGVmaW5lZCB2YXJpYWJsZSBlcnJvcnMgaW4gVXNlcklu
dGVyZmFjZS9WaWV3cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYxNTY1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0Jhc2UvRXZlbnRMaXN0ZW5lci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0Jhc2UvRXZlbnRMaXN0ZW5lci5qcwppbmRleCAwYmNiMDk5Li5iMDA5Zjg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL0V2ZW50
TGlzdGVuZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFz
ZS9FdmVudExpc3RlbmVyLmpzCkBAIC00Miw3ICs0Miw3IEBAIFdlYkluc3BlY3Rvci5FdmVudExp
c3RlbmVyID0gY2xhc3MgRXZlbnRMaXN0ZW5lcgogICAgICAgICBjb25zb2xlLmFzc2VydChjYWxs
YmFjaywgIk1pc3NpbmcgY2FsbGJhY2sgZm9yIGV2ZW50OiAiICsgdHlwZSk7CiAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGVtaXR0ZXIsICJNaXNzaW5nIGV2ZW50IGVtaXR0ZXIgZm9yIGV2ZW50OiAi
ICsgdHlwZSk7CiAgICAgICAgIHZhciBlbWl0dGVySXNWYWxpZCA9IGVtaXR0ZXIgJiYgKGVtaXR0
ZXIgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuT2JqZWN0IHx8IGVtaXR0ZXIgaW5zdGFuY2VvZiBO
b2RlIHx8ICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAiZnVuY3Rpb24iKSk7
Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGVtaXR0ZXJJc1ZhbGlkLCAgIkV2ZW50IGVtaXR0ZXIg
IiwgZW1pdHRlciwgIiAodHlwZToiICsgdHlwZSArICIpIGlzIG51bGwgb3IgZG9lcyBub3QgaW1w
bGVtZW50IE5vZGUgb3IgV2ViSW5zcGVjdG9yLk9iamVjdCEiKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoZW1pdHRlcklzVmFsaWQsICJFdmVudCBlbWl0dGVyICIsIGVtaXR0ZXIsICIgKHR5cGU6
IiArIHR5cGUgKyAiKSBpcyBudWxsIG9yIGRvZXMgbm90IGltcGxlbWVudCBOb2RlIG9yIFdlYklu
c3BlY3Rvci5PYmplY3QhIik7CiAKICAgICAgICAgaWYgKCFlbWl0dGVySXNWYWxpZCB8fCAhdHlw
ZSB8fCAhY2FsbGJhY2spCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL0V2ZW50TGlzdGVuZXJTZXQuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL0V2ZW50TGlzdGVuZXJTZXQu
anMKaW5kZXggYWE0ZjUwYi4uYmMzOTJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQmFzZS9FdmVudExpc3RlbmVyU2V0LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvRXZlbnRMaXN0ZW5lclNldC5qcwpAQCAt
NDcsNyArNDcsNyBAQCBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lclNldCA9IGNsYXNzIEV2ZW50
TGlzdGVuZXJTZXQKICAgICAgICAgY29uc29sZS5hc3NlcnQoY2FsbGJhY2ssICJNaXNzaW5nIGNh
bGxiYWNrIGZvciBldmVudDogIiArIHR5cGUpOwogICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBl
LCAiVHJpZWQgdG8gcmVnaXN0ZXIgbGlzdGVuZXIgZm9yIHVua25vd24gZXZlbnQ6ICIgKyB0eXBl
KTsKICAgICAgICAgdmFyIGVtaXR0ZXJJc1ZhbGlkID0gZW1pdHRlciAmJiAoZW1pdHRlciBpbnN0
YW5jZW9mIFdlYkluc3BlY3Rvci5PYmplY3QgfHwgZW1pdHRlciBpbnN0YW5jZW9mIE5vZGUgfHwg
KHR5cGVvZiBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIgPT09ICJmdW5jdGlvbiIpKTsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQoZW1pdHRlcklzVmFsaWQsICAiRXZlbnQgZW1pdHRlciAiLCBlbWl0
dGVyLCAiICh0eXBlOiIgKyB0eXBlICsgIikgaXMgbnVsbCBvciBkb2VzIG5vdCBpbXBsZW1lbnQg
Tm9kZSBvciBXZWJJbnNwZWN0b3IuT2JqZWN0ISIpOworICAgICAgICBjb25zb2xlLmFzc2VydChl
bWl0dGVySXNWYWxpZCwgIkV2ZW50IGVtaXR0ZXIgIiwgZW1pdHRlciwgIiAodHlwZToiICsgdHlw
ZSArICIpIGlzIG51bGwgb3IgZG9lcyBub3QgaW1wbGVtZW50IE5vZGUgb3IgV2ViSW5zcGVjdG9y
Lk9iamVjdCEiKTsKIAogICAgICAgICBpZiAoIWVtaXR0ZXJJc1ZhbGlkIHx8ICF0eXBlIHx8ICFj
YWxsYmFjaykKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTUlNRVR5cGVVdGlsaXRpZXMuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01JTUVUeXBlVXRpbGl0aWVzLmpzCmlu
ZGV4IDgxOWQxMTkuLjQyYmNlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0Jhc2UvTUlNRVR5cGVVdGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NSU1FVHlwZVV0aWxpdGllcy5qcwpAQCAtMTA0
LDExICsxMDQsOSBAQCBXZWJJbnNwZWN0b3IuZmlsZUV4dGVuc2lvbkZvck1JTUVUeXBlID0gZnVu
Y3Rpb24obWltZVR5cGUpCiAgICAgICAgIC8vIEltYWdlIHR5cGVzLgogICAgICAgICAiaW1hZ2Uv
Ym1wIjogImJtcCIsCiAgICAgICAgICJpbWFnZS9naWYiOiAiZ2lmIiwKLSAgICAgICAgImltYWdl
L2pwZWciOiAianBlZyIsCiAgICAgICAgICJpbWFnZS9qcGVnIjogImpwZyIsCiAgICAgICAgICJh
cHBsaWNhdGlvbi9wZGYiOiAicGRmIiwKICAgICAgICAgImltYWdlL3BuZyI6ICJwbmciLAotICAg
ICAgICAiaW1hZ2UvdGlmZiI6ICJ0aWYiLAogICAgICAgICAiaW1hZ2UvdGlmZiI6ICJ0aWZmIiwK
IAogICAgICAgICAvLyBGb250IHR5cGVzIGFuZCBNZWRpYSB0eXBlcyBhcmUgaWdub3JlZCBmb3Ig
bm93LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFz
ZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWlu
LmpzCmluZGV4IDM5MzFiM2UuLjVjZjNhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKQEAgLTIxNDAsNyArMjE0MCw3IEBAIFdlYklu
c3BlY3Rvci5saW5raWZ5TG9jYXRpb24gPSBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlciwgY2xhc3NOYW1lCiAKICAgICBpZiAoIXNvdXJjZUNvZGUpIHsKICAgICAgICAgdmFy
IGFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKLSAgICAgICAgYW5jaG9yLmhy
ZWYgID0gdXJsOworICAgICAgICBhbmNob3IuaHJlZiA9IHVybDsKICAgICAgICAgYW5jaG9yLmxp
bmVOdW1iZXIgPSBsaW5lTnVtYmVyOwogICAgICAgICBpZiAoY2xhc3NOYW1lKQogICAgICAgICAg
ICAgYW5jaG9yLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsKQEAgLTIzMzYsMzMgKzIzMzYsMzMgQEAg
V2ViSW5zcGVjdG9yLmhpZ2hsaWdodFJhbmdlc1dpdGhTdHlsZUNsYXNzID0gZnVuY3Rpb24oZWxl
bWVudCwgcmVzdWx0UmFuZ2VzLCBzdHkKICAgICAgICAgdmFyIGxhc3RUZXh0Tm9kZSA9IHRleHRO
b2RlU25hcHNob3Quc25hcHNob3RJdGVtKGVuZEluZGV4KTsKICAgICAgICAgdmFyIGxhc3RUZXh0
ID0gbGFzdFRleHROb2RlLnRleHRDb250ZW50OwogICAgICAgICBsYXN0VGV4dE5vZGUudGV4dENv
bnRlbnQgPSBsYXN0VGV4dC5zdWJzdHJpbmcoZW5kT2Zmc2V0IC0gbm9kZVJhbmdlc1tlbmRJbmRl
eF0ub2Zmc2V0KTsKLSAgICAgICAgY2hhbmdlcy5wdXNoKHsgbm9kZTogbGFzdFRleHROb2RlLCB0
eXBlOiAiY2hhbmdlZCIsIG9sZFRleHQ6IGxhc3RUZXh0LCBuZXdUZXh0OiBsYXN0VGV4dE5vZGUu
dGV4dENvbnRlbnQgfSk7CisgICAgICAgIGNoYW5nZXMucHVzaCh7bm9kZTogbGFzdFRleHROb2Rl
LCB0eXBlOiAiY2hhbmdlZCIsIG9sZFRleHQ6IGxhc3RUZXh0LCBuZXdUZXh0OiBsYXN0VGV4dE5v
ZGUudGV4dENvbnRlbnR9KTsKIAogICAgICAgICBpZiAoc3RhcnRJbmRleCA9PT0gZW5kSW5kZXgp
IHsKICAgICAgICAgICAgIGxhc3RUZXh0Tm9kZS5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZSho
aWdobGlnaHROb2RlLCBsYXN0VGV4dE5vZGUpOwotICAgICAgICAgICAgY2hhbmdlcy5wdXNoKHsg
bm9kZTogaGlnaGxpZ2h0Tm9kZSwgdHlwZTogImFkZGVkIiwgbmV4dFNpYmxpbmc6IGxhc3RUZXh0
Tm9kZSwgcGFyZW50OiBsYXN0VGV4dE5vZGUucGFyZW50RWxlbWVudCB9KTsKKyAgICAgICAgICAg
IGNoYW5nZXMucHVzaCh7bm9kZTogaGlnaGxpZ2h0Tm9kZSwgdHlwZTogImFkZGVkIiwgbmV4dFNp
Ymxpbmc6IGxhc3RUZXh0Tm9kZSwgcGFyZW50OiBsYXN0VGV4dE5vZGUucGFyZW50RWxlbWVudH0p
OwogICAgICAgICAgICAgaGlnaGxpZ2h0Tm9kZXMucHVzaChoaWdobGlnaHROb2RlKTsKIAogICAg
ICAgICAgICAgdmFyIHByZWZpeE5vZGUgPSBvd25lckRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGxh
c3RUZXh0LnN1YnN0cmluZygwLCBzdGFydE9mZnNldCAtIG5vZGVSYW5nZXNbc3RhcnRJbmRleF0u
b2Zmc2V0KSk7CiAgICAgICAgICAgICBsYXN0VGV4dE5vZGUucGFyZW50RWxlbWVudC5pbnNlcnRC
ZWZvcmUocHJlZml4Tm9kZSwgaGlnaGxpZ2h0Tm9kZSk7Ci0gICAgICAgICAgICBjaGFuZ2VzLnB1
c2goeyBub2RlOiBwcmVmaXhOb2RlLCB0eXBlOiAiYWRkZWQiLCBuZXh0U2libGluZzogaGlnaGxp
Z2h0Tm9kZSwgcGFyZW50OiBsYXN0VGV4dE5vZGUucGFyZW50RWxlbWVudCB9KTsKKyAgICAgICAg
ICAgIGNoYW5nZXMucHVzaCh7bm9kZTogcHJlZml4Tm9kZSwgdHlwZTogImFkZGVkIiwgbmV4dFNp
Ymxpbmc6IGhpZ2hsaWdodE5vZGUsIHBhcmVudDogbGFzdFRleHROb2RlLnBhcmVudEVsZW1lbnR9
KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHZhciBmaXJzdFRleHROb2RlID0gdGV4
dE5vZGVTbmFwc2hvdC5zbmFwc2hvdEl0ZW0oc3RhcnRJbmRleCk7CiAgICAgICAgICAgICB2YXIg
Zmlyc3RUZXh0ID0gZmlyc3RUZXh0Tm9kZS50ZXh0Q29udGVudDsKICAgICAgICAgICAgIHZhciBh
bmNob3JFbGVtZW50ID0gZmlyc3RUZXh0Tm9kZS5uZXh0U2libGluZzsKIAogICAgICAgICAgICAg
Zmlyc3RUZXh0Tm9kZS5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShoaWdobGlnaHROb2RlLCBh
bmNob3JFbGVtZW50KTsKLSAgICAgICAgICAgIGNoYW5nZXMucHVzaCh7IG5vZGU6IGhpZ2hsaWdo
dE5vZGUsIHR5cGU6ICJhZGRlZCIsIG5leHRTaWJsaW5nOiBhbmNob3JFbGVtZW50LCBwYXJlbnQ6
IGZpcnN0VGV4dE5vZGUucGFyZW50RWxlbWVudCB9KTsKKyAgICAgICAgICAgIGNoYW5nZXMucHVz
aCh7bm9kZTogaGlnaGxpZ2h0Tm9kZSwgdHlwZTogImFkZGVkIiwgbmV4dFNpYmxpbmc6IGFuY2hv
ckVsZW1lbnQsIHBhcmVudDogZmlyc3RUZXh0Tm9kZS5wYXJlbnRFbGVtZW50fSk7CiAgICAgICAg
ICAgICBoaWdobGlnaHROb2Rlcy5wdXNoKGhpZ2hsaWdodE5vZGUpOwogCiAgICAgICAgICAgICBm
aXJzdFRleHROb2RlLnRleHRDb250ZW50ID0gZmlyc3RUZXh0LnN1YnN0cmluZygwLCBzdGFydE9m
ZnNldCAtIG5vZGVSYW5nZXNbc3RhcnRJbmRleF0ub2Zmc2V0KTsKLSAgICAgICAgICAgIGNoYW5n
ZXMucHVzaCh7IG5vZGU6IGZpcnN0VGV4dE5vZGUsIHR5cGU6ICJjaGFuZ2VkIiwgb2xkVGV4dDog
Zmlyc3RUZXh0LCBuZXdUZXh0OiBmaXJzdFRleHROb2RlLnRleHRDb250ZW50IH0pOworICAgICAg
ICAgICAgY2hhbmdlcy5wdXNoKHtub2RlOiBmaXJzdFRleHROb2RlLCB0eXBlOiAiY2hhbmdlZCIs
IG9sZFRleHQ6IGZpcnN0VGV4dCwgbmV3VGV4dDogZmlyc3RUZXh0Tm9kZS50ZXh0Q29udGVudH0p
OwogCiAgICAgICAgICAgICBmb3IgKHZhciBqID0gc3RhcnRJbmRleCArIDE7IGogPCBlbmRJbmRl
eDsgaisrKSB7CiAgICAgICAgICAgICAgICAgdmFyIHRleHROb2RlID0gdGV4dE5vZGVTbmFwc2hv
dC5zbmFwc2hvdEl0ZW0oaik7CiAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSB0ZXh0Tm9kZS50
ZXh0Q29udGVudDsKICAgICAgICAgICAgICAgICB0ZXh0Tm9kZS50ZXh0Q29udGVudCA9ICIiOwot
ICAgICAgICAgICAgICAgIGNoYW5nZXMucHVzaCh7IG5vZGU6IHRleHROb2RlLCB0eXBlOiAiY2hh
bmdlZCIsIG9sZFRleHQ6IHRleHQsIG5ld1RleHQ6IHRleHROb2RlLnRleHRDb250ZW50IH0pOwor
ICAgICAgICAgICAgICAgIGNoYW5nZXMucHVzaCh7bm9kZTogdGV4dE5vZGUsIHR5cGU6ICJjaGFu
Z2VkIiwgb2xkVGV4dDogdGV4dCwgbmV3VGV4dDogdGV4dE5vZGUudGV4dENvbnRlbnR9KTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBzdGFydEluZGV4ID0gZW5kSW5kZXg7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9Db2RlTWlycm9yVG9rZW5UcmFja2luZ0NvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Db2RlTWlycm9yVG9rZW5UcmFja2luZ0Nv
bnRyb2xsZXIuanMKaW5kZXggYjI2M2NhOC4uMDNkZWY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ29kZU1pcnJvclRva2VuVHJh
Y2tpbmdDb250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0NvZGVNaXJyb3JUb2tlblRyYWNraW5nQ29udHJvbGxlci5qcwpAQCAt
NTA5LDcgKzUwOSw3IEBAIFdlYkluc3BlY3Rvci5Db2RlTWlycm9yVG9rZW5UcmFja2luZ0NvbnRy
b2xsZXIgPSBjbGFzcyBDb2RlTWlycm9yVG9rZW5UcmFja2luZ0NvCiAgICAgICAgICAgICAvLyBQ
ZWVrIGFoZWFkIHRvIHNlZSBpZiB0aGUgbmV4dCB0b2tlbiBpcyAifSIgb3IgIiwiLiBJZiBpdCBp
cywgd2UgYXJlIGEgc2hvcnRoYW5kIGFuZCB0aGVyZWZvcmUgYSB2YXJpYWJsZS4KICAgICAgICAg
ICAgIGxldCBzaG9ydGhhbmQgPSBmYWxzZTsKICAgICAgICAgICAgIGxldCBtb2RlID0gdG9rZW5J
bmZvLmlubmVyTW9kZS5tb2RlOwotICAgICAgICAgICAgbGV0IHBvc2l0aW9uID0gIHtsaW5lOiB0
b2tlbkluZm8ucG9zaXRpb24ubGluZSwgY2g6IHRva2VuSW5mby50b2tlbi5lbmR9OworICAgICAg
ICAgICAgbGV0IHBvc2l0aW9uID0ge2xpbmU6IHRva2VuSW5mby5wb3NpdGlvbi5saW5lLCBjaDog
dG9rZW5JbmZvLnRva2VuLmVuZH07CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iud2Fsa1Rva2Vu
cyh0aGlzLl9jb2RlTWlycm9yLCBtb2RlLCBwb3NpdGlvbiwgZnVuY3Rpb24odG9rZW5UeXBlLCBz
dHJpbmcpIHsKICAgICAgICAgICAgICAgICBpZiAodG9rZW5UeXBlKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9ET01UcmVlTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTVRyZWVNYW5hZ2VyLmpzCmluZGV4
IDFjZGE4ZTUuLmY2YTZiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTVRyZWVNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTVRyZWVNYW5hZ2VyLmpzCkBA
IC0xNjcsNyArMTY3LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyID0gY2xhc3MgRE9N
VHJlZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgICAgICB2YXIg
bm9kZSA9IHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF07CiAgICAgICAgICAgICBpZiAobm9kZSkg
ewogICAgICAgICAgICAgICAgIG5vZGUuX3NldEF0dHJpYnV0ZXNQYXlsb2FkKGF0dHJpYnV0ZXMp
OwotICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3Bl
Y3Rvci5ET01UcmVlTWFuYWdlci5FdmVudC5BdHRyaWJ1dGVNb2RpZmllZCwgeyBub2RlLCBuYW1l
OiAic3R5bGUiIH0pOworICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdlYkluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5FdmVudC5BdHRyaWJ1dGVNb2RpZmllZCwg
e25vZGUsIG5hbWU6ICJzdHlsZSJ9KTsKICAgICAgICAgICAgICAgICBub2RlLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9NTm9kZS5FdmVudC5BdHRyaWJ1dGVNb2RpZmll
ZCwge25hbWU6ICJzdHlsZSJ9KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxp
bmVNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCmluZGV4IGE3ZDFkOGIuLmRhYzNmYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVs
aW5lTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKQEAgLTU5NCw3ICs1OTQsNyBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNYW5hZ2VyID0gY2xhc3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLk9iamVjdAogICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoaXNOYU4oZW5kVGlt
ZSkpOwogCiAgICAgICAgICAgICAvLyBQYXNzIHRoZSBzdGFydFRpbWUgYXMgdGhlIGVuZFRpbWUg
c2luY2UgdGhpcyByZWNvcmQgdHlwZSBoYXMgbm8gZHVyYXRpb24uCi0gICAgICAgICAgICBsZXQg
dGltZXJEZXRhaWxzID0ge3RpbWVySWQ6IHJlY29yZFBheWxvYWQuZGF0YS50aW1lcklkLCB0aW1l
b3V0OiByZWNvcmRQYXlsb2FkLmRhdGEudGltZW91dCwgcmVwZWF0aW5nOiAhcmVjb3JkUGF5bG9h
ZC5kYXRhLnNpbmdsZVNob3R9OworICAgICAgICAgICAgdmFyIHRpbWVyRGV0YWlscyA9IHt0aW1l
cklkOiByZWNvcmRQYXlsb2FkLmRhdGEudGltZXJJZCwgdGltZW91dDogcmVjb3JkUGF5bG9hZC5k
YXRhLnRpbWVvdXQsIHJlcGVhdGluZzogIXJlY29yZFBheWxvYWQuZGF0YS5zaW5nbGVTaG90fTsK
ICAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lUmVjb3Jk
KFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuVGltZXJJbnN0YWxs
ZWQsIHN0YXJ0VGltZSwgc3RhcnRUaW1lLCBjYWxsRnJhbWVzLCBzb3VyY2VDb2RlTG9jYXRpb24s
IHRpbWVyRGV0YWlscyk7CiAKICAgICAgICAgY2FzZSBUaW1lbGluZUFnZW50LkV2ZW50VHlwZS5U
aW1lclJlbW92ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9DU1NLZXl3b3JkQ29tcGxldGlvbnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTS2V5d29yZENvbXBsZXRpb25zLmpzCmluZGV4IDk1
MjdjN2IuLmY1YWE3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9DU1NLZXl3b3JkQ29tcGxldGlvbnMuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU0tleXdvcmRDb21wbGV0aW9ucy5qcwpA
QCAtMjk2LDcgKzI5Niw3IEBAIFdlYkluc3BlY3Rvci5DU1NLZXl3b3JkQ29tcGxldGlvbnMuX3By
b3BlcnR5S2V5d29yZE1hcCA9IHsKICAgICAgICAgImhpZGRlbiIsICJhdXRvIiwgInZpc2libGUi
LCAib3ZlcmxheSIsICJzY3JvbGwiLCAibWFycXVlZSIsICItd2Via2l0LXBhZ2VkLXgiLCAiLXdl
YmtpdC1wYWdlZC15IgogICAgIF0sCiAgICAgIm1hcmdpbi1ib3R0b20tY29sbGFwc2UiOiBbCi0g
ICAgICAgICJjb2xsYXBzZSIsICAic2VwYXJhdGUiLCAiZGlzY2FyZCIKKyAgICAgICAgImNvbGxh
cHNlIiwgInNlcGFyYXRlIiwgImRpc2NhcmQiCiAgICAgXSwKICAgICAiLXdlYmtpdC1ib3gtcmVm
bGVjdCI6IFsKICAgICAgICAgIm5vbmUiLCAibGVmdCIsICJyaWdodCIsICJhYm92ZSIsICJiZWxv
dyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9ET01Ob2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0RPTU5vZGUuanMKaW5kZXggYzZmYzAwOS4uZGY3YzY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanMKQEAgLTM5Nyw3
ICszOTcsNyBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghZXJyb3IpIHsK
ICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fYXR0cmlidXRlc01hcFtuYW1lXTsKLSAgICAg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgIGkgPCB0aGlzLl9hdHRyaWJ1dGVzLmxlbmd0aDsg
KytpKSB7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9hdHRyaWJ1
dGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9hdHRyaWJ1
dGVzW2ldLm5hbWUgPT09IG5hbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2F0
dHJpYnV0ZXMuc3BsaWNlKGksIDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9N
Tm9kZVN0eWxlcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9ET01Ob2RlU3R5bGVzLmpzCmluZGV4IGY5ZGNkNmYuLmQ0MjcyNWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlU3R5bGVzLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2Rl
U3R5bGVzLmpzCkBAIC0yNjksNyArMjY5LDcgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGVTdHlsZXMg
PSBjbGFzcyBET01Ob2RlU3R5bGVzIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAg
ICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyA5KTogQmVmb3JlIENTUy5jcmVhdGVTdHlsZVNoZWV0
LCBDU1MuYWRkUnVsZSBjb3VsZCBiZSBjYWxsZWQgd2l0aCBhIGNvbnRleHROb2RlLgogICAgICAg
ICBpZiAoIUNTU0FnZW50LmNyZWF0ZVN0eWxlU2hlZXQpIHsKLSAgICAgICAgICAgIENTU0FnZW50
LmFkZFJ1bGUuaW52b2tlKHtjb250ZXh0Tm9kZUlkOiB0aGlzLl9ub2RlLmlkICwgc2VsZWN0b3J9
LCBhZGRlZFJ1bGUuYmluZCh0aGlzKSk7CisgICAgICAgICAgICBDU1NBZ2VudC5hZGRSdWxlLmlu
dm9rZSh7Y29udGV4dE5vZGVJZDogdGhpcy5fbm9kZS5pZCwgc2VsZWN0b3J9LCBhZGRlZFJ1bGUu
YmluZCh0aGlzKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0ZyYW1lLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0ZyYW1lLmpzCmluZGV4
IGJmMTE2YTIuLjYwNWU4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9GcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvRnJhbWUuanMKQEAgLTIwOCw3ICsyMDgsNyBAQCBXZWJJbnNwZWN0
b3IuRnJhbWUgPSBjbGFzcyBGcmFtZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAg
ICAgaWYgKHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRMaXN0LmNvbnRleHRzLmxlbmd0aCkgewogICAg
ICAgICAgICAgbGV0IGNvbnRleHRzID0gdGhpcy5fZXhlY3V0aW9uQ29udGV4dExpc3QuY29udGV4
dHMuc2xpY2UoKTsKICAgICAgICAgICAgIHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRMaXN0LmNsZWFy
KCk7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuRnJhbWUuRXZlbnQuRXhlY3V0aW9uQ29udGV4dHNDbGVhcmVkLCB7Y29tbWl0dGluZ1Byb3Zp
c2lvbmFsTG9hZDohIWNvbW1pdHRpbmdQcm92aXNpb25hbExvYWQsIGNvbnRleHRzfSk7CisgICAg
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRnJhbWUu
RXZlbnQuRXhlY3V0aW9uQ29udGV4dHNDbGVhcmVkLCB7Y29tbWl0dGluZ1Byb3Zpc2lvbmFsTG9h
ZDogISFjb21taXR0aW5nUHJvdmlzaW9uYWxMb2FkLCBjb250ZXh0c30pOwogICAgICAgICB9CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvR2VvbWV0cnkuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvR2VvbWV0cnkuanMKaW5kZXggMmNhMmE0Mi4uN2M3NzVhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5LmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9HZW9tZXRyeS5qcwpA
QCAtMjYzLDEwICsyNjMsMTAgQEAgV2ViSW5zcGVjdG9yLkVkZ2VJbnNldHMgPSBjbGFzcyBFZGdl
SW5zZXRzCiB9OwogCiBXZWJJbnNwZWN0b3IuUmVjdEVkZ2UgPSB7Ci0gICAgTUlOX1ggOiAwLAot
ICAgIE1JTl9ZIDogMSwKLSAgICBNQVhfWCA6IDIsCi0gICAgTUFYX1kgOiAzCisgICAgTUlOX1g6
IDAsCisgICAgTUlOX1k6IDEsCisgICAgTUFYX1g6IDIsCisgICAgTUFYX1k6IDMKIH07CiAKIFdl
Ykluc3BlY3Rvci5RdWFkID0gY2xhc3MgUXVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb2ZpbGVOb2RlLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb2ZpbGVOb2RlLmpzCmluZGV4IGE4MjVm
ZDkuLmU2ZTk1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9Qcm9maWxlTm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvUHJvZmlsZU5vZGUuanMKQEAgLTkxLDcgKzkxLDcgQEAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVOb2RlID0gY2xhc3MgUHJvZmlsZU5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuT2JqZWN0CiAgICAgZ2V0IHN0YXJ0VGltZSgpCiAgICAgewogICAgICAgICBpZiAodGhpcy5f
c3RhcnRUaW1lID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgICB0aGlzLl9zdGFydFRpbWUgPSAg
TWF0aC5tYXgoMCwgdGhpcy5fY2FsbHNbMF0uc3RhcnRUaW1lKTsKKyAgICAgICAgICAgIHRoaXMu
X3N0YXJ0VGltZSA9IE1hdGgubWF4KDAsIHRoaXMuX2NhbGxzWzBdLnN0YXJ0VGltZSk7CiAgICAg
ICAgIHJldHVybiB0aGlzLl9zdGFydFRpbWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVuZGVyaW5nRnJhbWVUaW1lbGlu
ZVJlY29yZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9S
ZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmpzCmluZGV4IDM2Yjc0ODIuLmQ2YjUwMmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZW5k
ZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmpzCkBAIC02
MCw3ICs2MCw3IEBAIFdlYkluc3BlY3Rvci5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkID0g
Y2xhc3MgUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZCBlCiAgICAgICAgIGNhc2UgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuU2NyaXB0OgogICAgICAgICAgICAgcmV0dXJuIFdl
Ykluc3BlY3Rvci5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLlRhc2tUeXBlLlNjcmlwdDsK
ICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5MYXlvdXQ6Ci0g
ICAgICAgICAgICBpZiAocmVjb3JkLmV2ZW50VHlwZSAgPT09IFdlYkluc3BlY3Rvci5MYXlvdXRU
aW1lbGluZVJlY29yZC5FdmVudFR5cGUuUGFpbnQgfHwgcmVjb3JkLmV2ZW50VHlwZSA9PT0gV2Vi
SW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5Db21wb3NpdGUpCisgICAg
ICAgICAgICBpZiAocmVjb3JkLmV2ZW50VHlwZSA9PT0gV2ViSW5zcGVjdG9yLkxheW91dFRpbWVs
aW5lUmVjb3JkLkV2ZW50VHlwZS5QYWludCB8fCByZWNvcmQuZXZlbnRUeXBlID09PSBXZWJJbnNw
ZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQuRXZlbnRUeXBlLkNvbXBvc2l0ZSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQu
VGFza1R5cGUuUGFpbnQ7CiAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlJlbmRlcmlu
Z0ZyYW1lVGltZWxpbmVSZWNvcmQuVGFza1R5cGUuTGF5b3V0OwogICAgICAgICBkZWZhdWx0Ogpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Nv
dXJjZUNvZGVMb2NhdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9Tb3VyY2VDb2RlTG9jYXRpb24uanMKaW5kZXggNDA0ODVkNy4uNzk2OTE3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NvdXJj
ZUNvZGVMb2NhdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvU291cmNlQ29kZUxvY2F0aW9uLmpzCkBAIC0zMzIsMTEgKzMzMiwxMSBAQCBXZWJJ
bnNwZWN0b3IuU291cmNlQ29kZUxvY2F0aW9uID0gY2xhc3MgU291cmNlQ29kZUxvY2F0aW9uIGV4
dGVuZHMgV2ViSW5zcGVjdG9yLgogCiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNvdXJjZUNv
ZGVMb2NhdGlvbi5OYW1lU3R5bGUuU2hvcnQ6CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNv
dXJjZUNvZGVMb2NhdGlvbi5OYW1lU3R5bGUuRnVsbDoKLSAgICAgICAgICAgIGxldCBkaXNwbGF5
VVJMID0gc291cmNlQ29kZS5kaXNwbGF5VVJMOwotICAgICAgICAgICAgbGV0IG5hbWUgPSBuYW1l
U3R5bGUgPT09IFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlTG9jYXRpb24uTmFtZVN0eWxlLkZ1bGwg
JiYgZGlzcGxheVVSTCA/IGRpc3BsYXlVUkwgOiBzb3VyY2VDb2RlLmRpc3BsYXlOYW1lOworICAg
ICAgICAgICAgdmFyIGRpc3BsYXlVUkwgPSBzb3VyY2VDb2RlLmRpc3BsYXlVUkw7CisgICAgICAg
ICAgICB2YXIgbmFtZSA9IG5hbWVTdHlsZSA9PT0gV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVMb2Nh
dGlvbi5OYW1lU3R5bGUuRnVsbCAmJiBkaXNwbGF5VVJMID8gZGlzcGxheVVSTCA6IHNvdXJjZUNv
ZGUuZGlzcGxheU5hbWU7CiAgICAgICAgICAgICBpZiAoY29sdW1uU3R5bGUgPT09IFdlYkluc3Bl
Y3Rvci5Tb3VyY2VDb2RlTG9jYXRpb24uQ29sdW1uU3R5bGUuSGlkZGVuKQogICAgICAgICAgICAg
ICAgIHJldHVybiBwcmVmaXggKyBuYW1lOwotICAgICAgICAgICAgbGV0IGxpbmVTdWZmaXggPSBk
aXNwbGF5VVJMID8gIjoiICsgbGluZVN0cmluZyA6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiIChs
aW5lICVzKSIpLmZvcm1hdChsaW5lU3RyaW5nKTsKKyAgICAgICAgICAgIHZhciBsaW5lU3VmZml4
ID0gZGlzcGxheVVSTCA/ICI6IiArIGxpbmVTdHJpbmcgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IiAobGluZSAlcykiKS5mb3JtYXQobGluZVN0cmluZyk7CiAgICAgICAgICAgICByZXR1cm4gcHJl
Zml4ICsgbmFtZSArIGxpbmVTdWZmaXg7CiAKICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVj
dC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90
ZU9iamVjdC5qcwppbmRleCBkYjFiNjdjLi5kNzhlZjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0
LmpzCkBAIC0zMTIsNyArMzEyLDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCA9IGNsYXNz
IFJlbW90ZU9iamVjdAogICAgICAgICB9CiAKICAgICAgICAgLy8gRklYTUU6IEl0IGRvZXNuJ3Qg
bG9vayBsaWtlIHNldFByb3BlcnR5VmFsdWUgaXMgdXNlZCB5ZXQuIFRoaXMgd2lsbCBuZWVkIHRv
IGJlIHRlc3RlZCB3aGVuIGl0IGlzIGFnYWluIChlZGl0YWJsZSBPYmplY3RUcmVlcykuCi0gICAg
ICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZS5pbnZva2Uoe2V4cHJlc3Npb246YXBwZW5kV2ViSW5z
cGVjdG9yU291cmNlVVJMKHZhbHVlKSwgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25z
b2xlOnRydWV9LCBldmFsdWF0ZWRDYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAgUnVudGlt
ZUFnZW50LmV2YWx1YXRlLmludm9rZSh7ZXhwcmVzc2lvbjogYXBwZW5kV2ViSW5zcGVjdG9yU291
cmNlVVJMKHZhbHVlKSwgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlOiB0cnVl
fSwgZXZhbHVhdGVkQ2FsbGJhY2suYmluZCh0aGlzKSk7CiAKICAgICAgICAgZnVuY3Rpb24gZXZh
bHVhdGVkQ2FsbGJhY2soZXJyb3IsIHJlc3VsdCwgd2FzVGhyb3duKQogICAgICAgICB7CkBAIC0z
MjgsNyArMzI4LDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCA9IGNsYXNzIFJlbW90ZU9i
amVjdAogCiAgICAgICAgICAgICBkZWxldGUgcmVzdWx0LmRlc2NyaXB0aW9uOyAvLyBPcHRpbWl6
ZSBvbiB0cmFmZmljLgogCi0gICAgICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0aW9uT24o
dGhpcy5fb2JqZWN0SWQsIGFwcGVuZFdlYkluc3BlY3RvclNvdXJjZVVSTChzZXRQcm9wZXJ0eVZh
bHVlLnRvU3RyaW5nKCkpLCBbe3ZhbHVlOm5hbWV9LCByZXN1bHRdLCB0cnVlLCB1bmRlZmluZWQs
IHByb3BlcnR5U2V0Q2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAgICAgICAgICBSdW50aW1lQWdl
bnQuY2FsbEZ1bmN0aW9uT24odGhpcy5fb2JqZWN0SWQsIGFwcGVuZFdlYkluc3BlY3RvclNvdXJj
ZVVSTChzZXRQcm9wZXJ0eVZhbHVlLnRvU3RyaW5nKCkpLCBbe3ZhbHVlOiBuYW1lfSwgcmVzdWx0
XSwgdHJ1ZSwgdW5kZWZpbmVkLCBwcm9wZXJ0eVNldENhbGxiYWNrLmJpbmQodGhpcykpOwogCiAg
ICAgICAgICAgICBpZiAocmVzdWx0Ll9vYmplY3RJZCkKICAgICAgICAgICAgICAgICBSdW50aW1l
QWdlbnQucmVsZWFzZU9iamVjdChyZXN1bHQuX29iamVjdElkKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFt
ZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuanMKaW5kZXggZDM2NzhlMC4uNzc2
MGQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVu
dFZpZXcuanMKQEAgLTE4Niw3ICsxODYsNyBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNo
ZUZyYW1lQ29udGVudFZpZXcgPSBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZQogICAg
ICAgICAgICAgY2FzZSAidHlwZSI6IGNvbXBhcmF0b3IgPSBsb2NhbGVDb21wYXJlLmJpbmQodGhp
cywgInR5cGUiKTsgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICJzaXplIjogY29tcGFyYXRvciA9
IG51bWJlckNvbXBhcmUuYmluZCh0aGlzLCAic2l6ZSIpOyBicmVhazsKICAgICAgICAgICAgIGNh
c2UgInVybCI6Ci0gICAgICAgICAgICBkZWZhdWx0OiAgY29tcGFyYXRvciA9IGxvY2FsZUNvbXBh
cmUuYmluZCh0aGlzLCAidXJsIik7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogY29tcGFy
YXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAidXJsIik7IGJyZWFrOwogICAgICAgICB9
CiAKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuc29ydE5vZGVzKGNvbXBhcmF0b3IpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1l
bnUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0
TWVudS5qcwppbmRleCA2YTdkZmYwLi5lNjJlOGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudS5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudS5qcwpAQCAtMjM0
LDQgKzIzNCw0IEBAIFdlYkluc3BlY3Rvci5Db250ZXh0TWVudSA9IGNsYXNzIENvbnRleHRNZW51
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRleHRTdWJNZW51CiAgICAgfQogfTsKIAotV2ViSW5z
cGVjdG9yLkNvbnRleHRNZW51LlByb3Bvc2VkTWVudVN5bWJvbCA9IFN5bWJvbCgiY29udGV4dC1t
ZW51LXByb3Bvc2VkLW1lbnUiKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitXZWJJbnNw
ZWN0b3IuQ29udGV4dE1lbnUuUHJvcG9zZWRNZW51U3ltYm9sID0gU3ltYm9sKCJjb250ZXh0LW1l
bnUtcHJvcG9zZWQtbWVudSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUNvbnRlbnRWaWV3LmpzCmluZGV4IDNm
ZjNlYmEuLjEzOGJmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTVRyZWVDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlQ29udGVudFZpZXcuanMKQEAgLTE2NSw3
ICsxNjUsNyBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUNvbnRlbnRWaWV3ID0gY2xhc3MgRE9NVHJl
ZUNvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLgogICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmFyY2hpdmVNYWluRnJhbWUoKTsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiB7IGN1
c3RvbVNhdmVIYW5kbGVyOiBzYXZlSGFuZGxlciB9OworICAgICAgICByZXR1cm4ge2N1c3RvbVNh
dmVIYW5kbGVyOiBzYXZlSGFuZGxlcn07CiAgICAgfQogCiAgICAgZ2V0IHN1cHBvcnRzU2VhcmNo
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0RPTVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRE9NVHJlZUVsZW1lbnQuanMKaW5kZXggMTFmYzA5Ny4uN2QxMzhjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1l
bnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9N
VHJlZUVsZW1lbnQuanMKQEAgLTEyMDAsNyArMTIwMCw3IEBAIFdlYkluc3BlY3Rvci5ET01UcmVl
RWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVF
bGVtCiAgICAgX2J1aWxkVGFnRE9NKHBhcmVudEVsZW1lbnQsIHRhZ05hbWUsIGlzQ2xvc2luZ1Rh
ZywgaXNEaXN0aW5jdFRyZWVFbGVtZW50KQogICAgIHsKICAgICAgICAgdmFyIG5vZGUgPSB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0OwotICAgICAgICB2YXIgY2xhc3NlcyA9IFsgImh0bWwtdGFnIiBd
OworICAgICAgICB2YXIgY2xhc3NlcyA9IFsiaHRtbC10YWciXTsKICAgICAgICAgaWYgKGlzQ2xv
c2luZ1RhZyAmJiBpc0Rpc3RpbmN0VHJlZUVsZW1lbnQpCiAgICAgICAgICAgICBjbGFzc2VzLnB1
c2goImNsb3NlIik7CiAgICAgICAgIHZhciB0YWdFbGVtZW50ID0gcGFyZW50RWxlbWVudC5jcmVh
dGVDaGlsZCgic3BhbiIsIGNsYXNzZXMuam9pbigiICIpKTsKQEAgLTE1MjYsMTMgKzE1MjYsMTMg
QEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICAgICAgdmFyIG1hdGNoID0gc2VhcmNoUmVn
ZXguZXhlYyh0ZXh0KTsKICAgICAgICAgdmFyIG1hdGNoUmFuZ2VzID0gW107CiAgICAgICAgIHdo
aWxlIChtYXRjaCkgewotICAgICAgICAgICAgbWF0Y2hSYW5nZXMucHVzaCh7IG9mZnNldDogbWF0
Y2guaW5kZXgsIGxlbmd0aDogbWF0Y2hbMF0ubGVuZ3RoIH0pOworICAgICAgICAgICAgbWF0Y2hS
YW5nZXMucHVzaCh7b2Zmc2V0OiBtYXRjaC5pbmRleCwgbGVuZ3RoOiBtYXRjaFswXS5sZW5ndGh9
KTsKICAgICAgICAgICAgIG1hdGNoID0gc2VhcmNoUmVnZXguZXhlYyh0ZXh0KTsKICAgICAgICAg
fQogCiAgICAgICAgIC8vIEZhbGwgYmFjayBmb3IgWFBhdGgsIGV0Yy4gbWF0Y2hlcy4KICAgICAg
ICAgaWYgKCFtYXRjaFJhbmdlcy5sZW5ndGgpCi0gICAgICAgICAgICBtYXRjaFJhbmdlcy5wdXNo
KHsgb2Zmc2V0OiAwLCBsZW5ndGg6IHRleHQubGVuZ3RoIH0pOworICAgICAgICAgICAgbWF0Y2hS
YW5nZXMucHVzaCh7b2Zmc2V0OiAwLCBsZW5ndGg6IHRleHQubGVuZ3RofSk7CiAKICAgICAgICAg
dGhpcy5faGlnaGxpZ2h0UmVzdWx0ID0gW107CiAgICAgICAgIFdlYkluc3BlY3Rvci5oaWdobGln
aHRSYW5nZXNXaXRoU3R5bGVDbGFzcyh0aGlzLnRpdGxlLCBtYXRjaFJhbmdlcywgV2ViSW5zcGVj
dG9yLkRPTVRyZWVFbGVtZW50LlNlYXJjaEhpZ2hsaWdodFN0eWxlQ2xhc3NOYW1lLCB0aGlzLl9o
aWdobGlnaHRSZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcwppbmRleCAwZWYyNzg5Li4zN2FjOGU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3Jp
ZC5qcwpAQCAtMTgwMSw3ICsxODAxLDcgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkID0gY2xhc3Mg
RGF0YUdyaWQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogICAgICAgICB0aGlzLl9kYXRhVGFi
bGVDb2x1bW5Hcm91cEVsZW1lbnQuY2hpbGRyZW5bbGVmdENlbGxJbmRleF0uc3R5bGUud2lkdGgg
PSBwZXJjZW50TGVmdENvbHVtbjsKIAogICAgICAgICB2YXIgcGVyY2VudFJpZ2h0Q29sdW1uID0g
KCgocmlnaHRFZGdlT2ZOZXh0Q29sdW1uIC0gZHJhZ1BvaW50KSAvIHRoaXMuX2RhdGFUYWJsZUVs
ZW1lbnQub2Zmc2V0V2lkdGgpICogMTAwKSArICIlIjsKLSAgICAgICAgdGhpcy5faGVhZGVyVGFi
bGVDb2x1bW5Hcm91cEVsZW1lbnQuY2hpbGRyZW5bcmlnaHRDZWxsSW5kZXhdLnN0eWxlLndpZHRo
ID0gIHBlcmNlbnRSaWdodENvbHVtbjsKKyAgICAgICAgdGhpcy5faGVhZGVyVGFibGVDb2x1bW5H
cm91cEVsZW1lbnQuY2hpbGRyZW5bcmlnaHRDZWxsSW5kZXhdLnN0eWxlLndpZHRoID0gcGVyY2Vu
dFJpZ2h0Q29sdW1uOwogICAgICAgICB0aGlzLl9kYXRhVGFibGVDb2x1bW5Hcm91cEVsZW1lbnQu
Y2hpbGRyZW5bcmlnaHRDZWxsSW5kZXhdLnN0eWxlLndpZHRoID0gcGVyY2VudFJpZ2h0Q29sdW1u
OwogCiAgICAgICAgIHRoaXMuX3Bvc2l0aW9uUmVzaXplckVsZW1lbnRzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HZW5lcmFsVHJlZUVs
ZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HZW5l
cmFsVHJlZUVsZW1lbnQuanMKaW5kZXggOTg4Y2FmNi4uZTRhODg5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR2VuZXJhbFRyZWVFbGVtZW50
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dlbmVy
YWxUcmVlRWxlbWVudC5qcwpAQCAtMzMwLDcgKzMzMCw3IEBAIFdlYkluc3BlY3Rvci5HZW5lcmFs
VHJlZUVsZW1lbnQgPSBjbGFzcyBHZW5lcmFsVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuCiAgICAgICAgIC8vIGFuZCB0aGUgdG9vbCB0aXAgb25seSBjYXJlcyBhYm91dCB0aGUgdGV4
dC4KICAgICAgICAgbGV0IG1haW5UaXRsZVRleHQgPSB0aGlzLl9tYWluVGl0bGVFbGVtZW50LnRl
eHRDb250ZW50OwogICAgICAgICBsZXQgc3VidGl0bGVUZXh0ID0gdGhpcy5fc3VidGl0bGVFbGVt
ZW50ID8gdGhpcy5fc3VidGl0bGVFbGVtZW50LnRleHRDb250ZW50IDogIiI7Ci0gICAgICAgIGxl
dCBsYXJnZSA9IHRoaXMudHJlZU91dGxpbmUgICYmIHRoaXMudHJlZU91dGxpbmUubGFyZ2U7Cisg
ICAgICAgIGxldCBsYXJnZSA9IHRoaXMudHJlZU91dGxpbmUgJiYgdGhpcy50cmVlT3V0bGluZS5s
YXJnZTsKICAgICAgICAgaWYgKG1haW5UaXRsZVRleHQgJiYgc3VidGl0bGVUZXh0KQogICAgICAg
ICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLnRpdGxlID0gbWFpblRpdGxlVGV4dCArIChsYXJnZSA/
ICJcbiIgOiAiIFx1MjAxNCAiKSArIHN1YnRpdGxlVGV4dDsKICAgICAgICAgZWxzZSBpZiAobWFp
blRpdGxlVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxp
bmVEYXRhR3JpZE5vZGUuanMKaW5kZXggYTZiZTNjMS4uZjZkMmUyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGlt
ZWxpbmVEYXRhR3JpZE5vZGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKQEAgLTU0
LDExICs1NCwxMSBAQCBXZWJJbnNwZWN0b3IuSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3Jp
ZE5vZGUgPSBjbGFzcyBIZWFwQWxsb2NhdGlvbnNUaW1lbGluZQogICAgICAgICBjYXNlICJuYW1l
IjoKICAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LmFkZCguLi50aGlzLmljb25DbGFzc05hbWVz
KCkpOwogCi0gICAgICAgICAgICBsZXQgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCk7Ci0gICAgICAgICAgICBsZXQgdGl0bGVFbGVtZW50ID0gZnJhZ21lbnQuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAgIHZh
ciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICAgICAg
ICAgIHZhciB0aXRsZUVsZW1lbnQgPSBmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzcGFuIikpOwogICAgICAgICAgICAgdGl0bGVFbGVtZW50LnRleHRDb250ZW50
ID0gdGhpcy5fZGF0YS5uYW1lOwogICAgICAgICAgICAgaWYgKCF0aGlzLl9yZWNvcmQuaGVhcFNu
YXBzaG90LmludmFsaWQpIHsKLSAgICAgICAgICAgICAgICBsZXQgZ29Ub0J1dHRvbiA9IGZyYWdt
ZW50LmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5jcmVhdGVHb1RvQXJyb3dCdXR0b24oKSk7Cisg
ICAgICAgICAgICAgICAgdmFyIGdvVG9CdXR0b24gPSBmcmFnbWVudC5hcHBlbmRDaGlsZChXZWJJ
bnNwZWN0b3IuY3JlYXRlR29Ub0Fycm93QnV0dG9uKCkpOwogICAgICAgICAgICAgICAgIGdvVG9C
dXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5faGVhcEFsbG9jYXRpb25zVmlldy5zaG93SGVhcFNuYXBzaG90VGltZWxp
bmVSZWNvcmQodGhpcy5fcmVjb3JkKTsKICAgICAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVu
dFZpZXcuanMKaW5kZXggMzQ1NjVmNi4uZTM0MDYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMK
QEAgLTkxNiw3ICs5MTYsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBM
b2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICAgICAg
dmFyIG1hdGNoID0gc2VhcmNoUmVnZXguZXhlYyh0ZXh0KTsKICAgICAgICAgICAgIHdoaWxlICht
YXRjaCkgewogICAgICAgICAgICAgICAgIG51bWJlck9mUmVzdWx0cysrOwotICAgICAgICAgICAg
ICAgIG1hdGNoUmFuZ2VzLnB1c2goeyBvZmZzZXQ6IG1hdGNoLmluZGV4LCBsZW5ndGg6IG1hdGNo
WzBdLmxlbmd0aCB9KTsKKyAgICAgICAgICAgICAgICBtYXRjaFJhbmdlcy5wdXNoKHtvZmZzZXQ6
IG1hdGNoLmluZGV4LCBsZW5ndGg6IG1hdGNoWzBdLmxlbmd0aH0pOwogICAgICAgICAgICAgICAg
IG1hdGNoID0gc2VhcmNoUmVnZXguZXhlYyh0ZXh0KTsKICAgICAgICAgICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT3BlblJlc291
cmNlRGlhbG9nLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
T3BlblJlc291cmNlRGlhbG9nLmpzCmluZGV4IGNhMzA1NjguLjAzZDIyNzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL09wZW5SZXNvdXJjZURp
YWxvZy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9P
cGVuUmVzb3VyY2VEaWFsb2cuanMKQEAgLTUzLDcgKzUzLDcgQEAgV2ViSW5zcGVjdG9yLk9wZW5S
ZXNvdXJjZURpYWxvZyA9IGNsYXNzIE9wZW5SZXNvdXJjZURpYWxvZyBleHRlbmRzIFdlYkluc3Bl
Y3Rvci4KICAgICAgICAgdGhpcy5fdHJlZU91dGxpbmUubGFyZ2UgPSB0cnVlOwogCiAgICAgICAg
IHRoaXMuX3RyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVPdXRs
aW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcy5fdHJlZVNlbGVjdGlvbkRpZENoYW5n
ZSwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX3RyZWVPdXRsaW5lLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiZm9jdXMiLCAoKSA9PiB7dGhpcy5faW5wdXRFbGVtZW50LmZvY3VzKCk7fSk7CisgICAg
ICAgIHRoaXMuX3RyZWVPdXRsaW5lLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCAo
KSA9PiB7IHRoaXMuX2lucHV0RWxlbWVudC5mb2N1cygpOyB9KTsKIAogICAgICAgICB0aGlzLmVs
ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdHJlZU91dGxpbmUuZWxlbWVudCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1N0eWxlRGV0YWls
c1BhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3R5
bGVEZXRhaWxzUGFuZWwuanMKaW5kZXggMDcxNTMzMy4uNmFlOGUzMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3R5bGVEZXRhaWxzUGFuZWwu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3R5bGVE
ZXRhaWxzUGFuZWwuanMKQEAgLTE1OSw0ICsxNTksNCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVEZXRh
aWxzUGFuZWwgPSBjbGFzcyBTdHlsZURldGFpbHNQYW5lbCBleHRlbmRzIFdlYkluc3BlY3Rvci5W
aQogCiBXZWJJbnNwZWN0b3IuU3R5bGVEZXRhaWxzUGFuZWwuRXZlbnQgPSB7CiAgICAgUmVmcmVz
aGVkOiAic3R5bGUtZGV0YWlscy1wYW5lbC1yZWZyZXNoZWQiCi19OwpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLmpzCmlu
ZGV4IGViNGI3NzUuLmE5Y2U4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1Bh
bmVsLmpzCkBAIC0xMTI2LDcgKzExMjYsNyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRh
aWxzUGFuZWwgPSBjbGFzcyBWaXN1YWxTdHlsZURldGFpbHNQYW5lbCBleHRlbmRzIFdlYgogCiAg
ICAgICAgIGxldCBib3JkZXJBbGxTaXplID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlv
blJvdzsKIAotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlclN0eWxlID0gbmV3IFdlYkluc3BlY3Rv
ci5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoWyJib3JkZXItdG9wLXN0eWxlIiwgImJvcmRlci1y
aWdodC1zdHlsZSIsICJib3JkZXItYm90dG9tLXN0eWxlIiwgImJvcmRlci1sZWZ0LXN0eWxlIl0g
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0eWxlIiksIHRoaXMuX2tleXdvcmRzLmJvcmRlclN0
eWxlKTsKKyAgICAgICAgcHJvcGVydGllcy5ib3JkZXJTdHlsZSA9IG5ldyBXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKFsiYm9yZGVyLXRvcC1zdHlsZSIsICJib3JkZXItcmln
aHQtc3R5bGUiLCAiYm9yZGVyLWJvdHRvbS1zdHlsZSIsICJib3JkZXItbGVmdC1zdHlsZSJdLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0eWxlIiksIHRoaXMuX2tleXdvcmRzLmJvcmRlclN0eWxl
KTsKICAgICAgICAgcHJvcGVydGllcy5ib3JkZXJTdHlsZS5wcm9wZXJ0eVJlZmVyZW5jZU5hbWUg
PSAiYm9yZGVyLXN0eWxlIjsKICAgICAgICAgcHJvcGVydGllcy5ib3JkZXJXaWR0aCA9IG5ldyBX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveChbImJvcmRlci10b3Atd2lkdGgi
LCAiYm9yZGVyLXJpZ2h0LXdpZHRoIiwgImJvcmRlci1ib3R0b20td2lkdGgiLCAiYm9yZGVyLWxl
ZnQtd2lkdGgiXSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJXaWR0aCIpLCB0aGlzLl9rZXl3b3Jk
cy5ib3JkZXJXaWR0aCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOwogICAgICAgICBwcm9wZXJ0aWVz
LmJvcmRlcldpZHRoLnByb3BlcnR5UmVmZXJlbmNlTmFtZSA9ICJib3JkZXItd2lkdGgiOwpAQCAt
MTMyNyw3ICsxMzI3LDcgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsID0g
Y2xhc3MgVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXZWIKIAogICAgICAgICBsZXQg
b3V0bGluZVNpemVSb3cgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uUm93OwogCi0g
ICAgICAgIHByb3BlcnRpZXMub3V0bGluZVN0eWxlID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxT
dHlsZUtleXdvcmRQaWNrZXIoIm91dGxpbmUtc3R5bGUiICwgV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJTdHlsZSIpLCB0aGlzLl9rZXl3b3Jkcy5ib3JkZXJTdHlsZSk7CisgICAgICAgIHByb3BlcnRp
ZXMub3V0bGluZVN0eWxlID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRQaWNr
ZXIoIm91dGxpbmUtc3R5bGUiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0eWxlIiksIHRoaXMu
X2tleXdvcmRzLmJvcmRlclN0eWxlKTsKICAgICAgICAgcHJvcGVydGllcy5vdXRsaW5lV2lkdGgg
PSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goIm91dGxpbmUtd2lk
dGgiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldpZHRoIiksIHRoaXMuX2tleXdvcmRzLmJvcmRl
cldpZHRoLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7CiAKICAgICAgICAgb3V0bGluZVNpemVSb3cu
ZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLm91dGxpbmVTdHlsZS5lbGVtZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlS2V5d29yZFBpY2tlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5qcwppbmRleCA2ODQ4M2EyLi43NGZm
ZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyLmpzCkBAIC05MCw3
ICs5MCw4IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIgPSBjbGFzcyBW
aXN1YWxTdHlsZUtleXdvcmRQaWNrZXIgZXh0ZW5kcyBXCiAgICAgfQogCiAgICAgdXBkYXRlRWRp
dG9yVmFsdWVzKHVwZGF0ZWRWYWx1ZXMpCi0gICAgeyAgIGlmICghdXBkYXRlZFZhbHVlcy5jb25m
bGljdGluZ1ZhbHVlcykgeworICAgIHsKKyAgICAgICAgaWYgKCF1cGRhdGVkVmFsdWVzLmNvbmZs
aWN0aW5nVmFsdWVzKSB7CiAgICAgICAgICAgICBsZXQgbWlzc2luZyA9IHRoaXMuX3Byb3BlcnR5
TWlzc2luZyB8fCAhdXBkYXRlZFZhbHVlcy52YWx1ZTsKICAgICAgICAgICAgIHRoaXMuX3VuY2hh
bmdlZE9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPSBtaXNzaW5nOwogICAgICAgICAgICAgdGhpcy5z
cGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQuaGlkZGVuID0gIW1pc3Npbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxT
dHlsZVByb3BlcnR5RWRpdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5qcwppbmRleCA3ZDEzZDMwLi4zMDA0
N2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuanMKQEAgLTU0
OSw3ICs1NDksNyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvciA9IGNs
YXNzIFZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IgZXh0ZW5kcwogICAgICAgICB9CiAKICAgICAg
ICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJtaXNzaW5nLWRlcGVuZGVuY3kiLCAh
IXRpdGxlLmxlbmd0aCk7Ci0gICAgICAgIHRoaXMuX3dhcm5pbmdFbGVtZW50LnRpdGxlID0gISF0
aXRsZS5sZW5ndGggPyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk1pc3NpbmcgRGVwZW5kZW5jaWVz
OiVzIikuZm9ybWF0KHRpdGxlKSA6IG51bGw7CisgICAgICAgIHRoaXMuX3dhcm5pbmdFbGVtZW50
LnRpdGxlID0gdGl0bGUubGVuZ3RoID8gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJNaXNzaW5nIERl
cGVuZGVuY2llczolcyIpLmZvcm1hdCh0aXRsZSkgOiBudWxsOwogICAgIH0KIAogICAgIF90aXRs
ZUVsZW1lbnRQcmVwYXJlRm9yQ2xpY2soZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9Gb3JtYXR0ZXJXb3JrZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRl
ci9Gb3JtYXR0ZXJXb3JrZXIuanMKaW5kZXggNDQzYjc4Yy4uOWJjODkyZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvRm9y
bWF0dGVyV29ya2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1dvcmtlcnMvRm9ybWF0dGVyL0Zvcm1hdHRlcldvcmtlci5qcwpAQCAtNjQsNyArNjQsNyBAQCBG
b3JtYXR0ZXJXb3JrZXIgPSBjbGFzcyBGb3JtYXR0ZXJXb3JrZXIKICAgICAgICAgICAgIGxldCBq
c29uU3RyaW5naWZpZWQgPSBKU09OLnN0cmluZ2lmeShKU09OLnBhcnNlKHNvdXJjZVRleHQpLCBu
dWxsLCBpbmRlbnRTdHJpbmcpOwogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHtmb3JtYXR0ZWRU
ZXh0OiBqc29uU3RyaW5naWZpZWR9OwogICAgICAgICAgICAgaWYgKGluY2x1ZGVTb3VyY2VNYXBE
YXRhKQotICAgICAgICAgICAgICAgIHJlc3VsdC5zb3VyY2VNYXBEYXRhID0ge21hcHBpbmc6IHtv
cmlnaW5hbDogW10sIGZvcm1hdHRlZDogW119LCBvcmlnaW5hbExpbmVFbmRpbmdzOltdLCBmb3Jt
YXR0ZWRMaW5lRW5kaW5nczogW119OworICAgICAgICAgICAgICAgIHJlc3VsdC5zb3VyY2VNYXBE
YXRhID0ge21hcHBpbmc6IHtvcmlnaW5hbDogW10sIGZvcm1hdHRlZDogW119LCBvcmlnaW5hbExp
bmVFbmRpbmdzOiBbXSwgZm9ybWF0dGVkTGluZUVuZGluZ3M6IFtdfTsKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgIH0gY2F0Y2ggKGUpIHt9CiAKQEAgLTc5LDcgKzc5LDcgQEAg
Rm9ybWF0dGVyV29ya2VyID0gY2xhc3MgRm9ybWF0dGVyV29ya2VyCiAgICAgICAgICAgICBsZXQg
Zm9ybWF0dGVkVGV4dFdpdGhQYXJlbnMgPSBpbnZhbGlkSlNPTkZvcm1hdHRlci5mb3JtYXR0ZWRU
ZXh0OwogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHtmb3JtYXR0ZWRUZXh0OiBmb3JtYXR0ZWRU
ZXh0V2l0aFBhcmVucy5zdWJzdHJpbmcoMSwgZm9ybWF0dGVkVGV4dFdpdGhQYXJlbnMubGVuZ3Ro
IC0gMil9OyAvLyBSZW1vdmUgIigiIGFuZCAiKVxuIi4KICAgICAgICAgICAgIGlmIChpbmNsdWRl
U291cmNlTWFwRGF0YSkKLSAgICAgICAgICAgICAgICByZXN1bHQuc291cmNlTWFwRGF0YSA9IHtt
YXBwaW5nOiB7b3JpZ2luYWw6IFtdLCBmb3JtYXR0ZWQ6IFtdfSwgb3JpZ2luYWxMaW5lRW5kaW5n
czpbXSwgZm9ybWF0dGVkTGluZUVuZGluZ3M6IFtdfTsKKyAgICAgICAgICAgICAgICByZXN1bHQu
c291cmNlTWFwRGF0YSA9IHttYXBwaW5nOiB7b3JpZ2luYWw6IFtdLCBmb3JtYXR0ZWQ6IFtdfSwg
b3JpZ2luYWxMaW5lRW5kaW5nczogW10sIGZvcm1hdHRlZExpbmVFbmRpbmdzOiBbXX07CiAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAK
</data>
<flag name="review"
          id="311275"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>