<?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>143623</bug_id>
          
          <creation_ts>2015-04-10 16:58:31 -0700</creation_ts>
          <short_desc>Web Inspector: Improve Console Message Formatting</short_desc>
          <delta_ts>2015-04-10 17:52:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>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>burg</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</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>1084411</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-10 16:58:31 -0700</bug_when>
    <thetext>* SUMMARY
Improve Console Message Formatting. Mostly focusing on handling of extra objects.

One of the goals of the new console design was to eliminate expanding multiple objects on the same line. In that way, a console.log/error/etc with multiple objects should be presented with each object on its own line. This eliminates the confusing and poor experience that comes with expanding/collapsing objects sharing the same line which causes everything to move when expanding.

The different cases for logging are and proposed UI are:

    1. console.log(&quot;message&quot;)
      =&gt; message

    2. console.log(&quot;format string message: %s&quot;, &quot;foo&quot;)
      =&gt; format string message: foo

    3. console.log(valueOrLosslessObject)
      =&gt; {a: 1}

    4. console.log(lossyObject)
      =&gt; ▶︎ Object {a: 1, b: 2, c: 3, d: 4, e: 5, ...}

    6. console.log(&quot;message&quot;, valueOrLosslessObject)
      =&gt; message – {a: 1}

    7. console.log(&quot;message&quot;, lossyObject)
      =&gt; ▶︎ message – Object {a: 1, b: 2, c: 3, ...}

    b. (it is collapsed by default, so after expanding)
      =&gt; ▼ message
         • ▼ Object
            a: 1
            b: 2
            ...

    8. console.log(&quot;message&quot;, anyValue1, anyValue2)
      =&gt; ▼ message (2)
         • {a: 1}
         • ▶︎ Object {a: 1, b: 2, c: 3, d: 4, e: 5, ...}

    b. (it is expanded by default, so after collapsing)
      =&gt; ▶︎ message (2)

    9. console.log(anyValue1, anyValue2)
      =&gt; ▼ No message (2)
         • {a: 1}
         • ▶︎ Object {a: 1, b: 2, c: 3, d: 4, e: 5, ...}


* NOTES
- There is an initial version of what this would look like at: http://timothy.hatcher.name/console/
- Currently for console.error we show the backtrace / call stack after the objects. Those can still show up underneath these &quot;extra objects&quot; for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084412</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-04-10 16:58:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/20507112&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084413</commentid>
    <comment_count>2</comment_count>
      <attachid>250542</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-10 16:59:42 -0700</bug_when>
    <thetext>Created attachment 250542
[TEST] Test for different console log cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084418</commentid>
    <comment_count>3</comment_count>
      <attachid>250543</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-10 17:09:59 -0700</bug_when>
    <thetext>Created attachment 250543
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084420</commentid>
    <comment_count>4</comment_count>
      <attachid>250543</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-10 17:11:37 -0700</bug_when>
    <thetext>Comment on attachment 250543
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.css:106
&gt; +    margin-left: 24px;

This should have been 20px.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084423</commentid>
    <comment_count>5</comment_count>
      <attachid>250543</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-10 17:19:04 -0700</bug_when>
    <thetext>Comment on attachment 250543
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.css:204
&gt; +    color: hsl(0, 0%, 67%);

Might want to use the same color as .console-message-enclosed.

&gt; Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.js:149
&gt; +            this._boundExpandClickHandler = function() { this.toggle(); }.bind(this);

Though this is safer, it also makes an extra closure that isn&apos;t needed. Maybe JSC ignores that since there is not closure vars used?

&gt; Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.js:338
&gt; +        this._stackTraceElement = this._element.appendChild(document.createElement(&quot;ul&quot;));
&gt; +        this._stackTraceElement.classList.add(&quot;console-message-stack-trace-container&quot;);
&gt; +        this._stackTraceElement.classList.add(&quot;console-message-text&quot;);
&gt; +
&gt; +        for (var callFrame of this._message.stackTrace) {
&gt; +            var callFrameElement = this._stackTraceElement.appendChild(document.createElement(&quot;li&quot;));
&gt; +            callFrameElement.classList.add(&quot;console-message-stack-trace-call-frame&quot;);
&gt; +            callFrameElement.textContent = callFrame.functionName || WebInspector.UIString(&quot;(anonymous function)&quot;);
&gt; +            if (callFrame.url &amp;&amp; !this._shouldHideURL(callFrame.url))
&gt; +                callFrameElement.appendChild(this._linkifyCallFrame(callFrame));
&gt;          }

We might want to clean this up with a custom UI with function icons and locations like the stack frame sidebar section. To unify how we show stack traces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084424</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-10 17:34:51 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 250543 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=250543&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.css:204
&gt; &gt; +    color: hsl(0, 0%, 67%);
&gt; 
&gt; Might want to use the same color as .console-message-enclosed.

Great catch! I actually just fixed all of these to be:

    color: rgba(0, 0, 0, 0.33);

&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.js:149
&gt; &gt; +            this._boundExpandClickHandler = function() { this.toggle(); }.bind(this);
&gt; 
&gt; Though this is safer, it also makes an extra closure that isn&apos;t needed.
&gt; Maybe JSC ignores that since there is not closure vars used?

Another great catch! I used to have more code in the handler but later moved it to expand. We should totally be able to make this &quot;this.toggle&quot;.

&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.js:338
&gt; &gt; +        this._stackTraceElement = this._element.appendChild(document.createElement(&quot;ul&quot;));
&gt; &gt; +        this._stackTraceElement.classList.add(&quot;console-message-stack-trace-container&quot;);
&gt; &gt; +        this._stackTraceElement.classList.add(&quot;console-message-text&quot;);
&gt; &gt; +
&gt; &gt; +        for (var callFrame of this._message.stackTrace) {
&gt; &gt; +            var callFrameElement = this._stackTraceElement.appendChild(document.createElement(&quot;li&quot;));
&gt; &gt; +            callFrameElement.classList.add(&quot;console-message-stack-trace-call-frame&quot;);
&gt; &gt; +            callFrameElement.textContent = callFrame.functionName || WebInspector.UIString(&quot;(anonymous function)&quot;);
&gt; &gt; +            if (callFrame.url &amp;&amp; !this._shouldHideURL(callFrame.url))
&gt; &gt; +                callFrameElement.appendChild(this._linkifyCallFrame(callFrame));
&gt; &gt;          }
&gt; 
&gt; We might want to clean this up with a custom UI with function icons and
&gt; locations like the stack frame sidebar section. To unify how we show stack
&gt; traces.

Ooo, that is a great idea!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084427</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-10 17:48:11 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/182644</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084428</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-10 17:52:19 -0700</bug_when>
    <thetext>And I made an error in my post-review changes that got fixed with:
http://trac.webkit.org/changeset/182646</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>250542</attachid>
            <date>2015-04-10 16:59:42 -0700</date>
            <delta_ts>2015-04-10 16:59:42 -0700</delta_ts>
            <desc>[TEST] Test for different console log cases</desc>
            <filename>console-log-test.html</filename>
            <type>text/html</type>
            <size>1371</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">PGJvZHk+CjxzY3JpcHQ+CmNvbnNvbGUud2FybigiVW5hYmxlIHRvIGRldGVybWluZSBpZiB0aGUg
dXNlciBpcyBhIHBvbHlnbG90LiBSZWZlciB0bzogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lr
aS9Qb2x5Z2xvdGlzbSIpOwpjb25zb2xlLndhcm4oIlVuYWJsZSB0byBkZXRlcm1pbmUgdXNlcidz
IG1haW4gbGFuZ3VhZ2UuIik7CmNvbnNvbGUud2FybigiVW5hYmxlIHRvIGRldGVybWluZSB1c2Vy
J3MgbG9jYXRpb24uIik7Cgp2YXIgcyA9IG5ldyBTZXQ7CmZvciAodmFyIGkgPSAyOyBpIDwgMTA7
ICsraSkgcy5hZGQoaSk7CmNvbnNvbGUubG9nKHMpOwoKZnVuY3Rpb24gY2hlY2tCb3hTaXplKGJv
eCkgewogICAgY29uc29sZS5lcnJvcigiQm94IG5lZWRzIHRvIGJlIDYwMCB4IDQwMCBtaW5pbXVt
LiIsIGJveC5zaXplLCBib3gpOwp9CgpmdW5jdGlvbiBjaGVja0JveElmQ29uZmlndXJlZChib3gp
IHsKICAgIGNoZWNrQm94U2l6ZShib3gpOwogICAgY29uc29sZS53YXJuKCJZb3UgbmVlZCB0byBj
b25maWd1cmUgYm94ZXMgYmVmb3JlIGFwcGVuZGluZyB0aGVtIHRvIHRoZSBib2R5LiIsIGJveCwg
ZG9jdW1lbnQuYm9keSk7Cn0KCmZ1bmN0aW9uIG90aGVyTG9ncygpIHsKICAgIGNvbnNvbGUudHJh
Y2UoKTsKICAgIGNvbnNvbGUubG9nKFsxLCAyLCAzXSk7CiAgICBjb25zb2xlLmxvZygibWVzc2Fn
ZSIsICJmb28iKTsKICAgIGNvbnNvbGUubG9nKCJtZXNzYWdlICVzIiwgImZvbyIpOwogICAgY29u
c29sZS5sb2coIm1lc3NhZ2UgJXMiLCAiZm9vIiwgImJhciIpOwogICAgY29uc29sZS5sb2coIm1l
c3NhZ2UiLCB7YToxfSk7CiAgICBjb25zb2xlLmxvZygibWVzc2FnZSIsIHdpbmRvdy5uYXZpZ2F0
b3IpOwogICAgY29uc29sZS5sb2coe2E6MX0sIFsxLDJdKTsKICAgIGNvbnNvbGUubG9nKCJub2Rl
IiwgZG9jdW1lbnQuYm9keSk7Cn0KCmZ1bmN0aW9uIEJveFNpemUod2lkdGgsIGhlaWdodCkKewog
ICAgdGhpcy53aWR0aCA9IHdpZHRoOwogICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7Cn0KCmZ1bmN0
aW9uIEJveChzaXplLCBwb3NpdGlvbiwgdGl0bGVzKQp7CiAgICB0aGlzLnNpemUgPSBzaXplOwog
ICAgdGhpcy5wb3NpdGlvbiA9IHBvc2l0aW9uOwogICAgdGhpcy50aXRsZXMgPSB0aXRsZXM7Cn0K
CnZhciBzaXplID0gbmV3IEJveFNpemUoMzAwLCAxNTApOwp2YXIgcG9zaXRpb24gPSB7eDowLCB5
OjB9Owp2YXIgdGl0bGVzID0gWyJGdWRnZSIsICJDaG9jb2xhdGUiXTsKdmFyIGJveCA9IG5ldyBC
b3goc2l6ZSwgcG9zaXRpb24sIHRpdGxlcyk7CnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICBj
aGVja0JveElmQ29uZmlndXJlZChib3gpOwogICAgb3RoZXJMb2dzKCk7Cn0sIDApOwo8L3Njcmlw
dD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250543</attachid>
            <date>2015-04-10 17:09:59 -0700</date>
            <delta_ts>2015-04-10 17:19:04 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>take1.patch</filename>
            <type>text/plain</type>
            <size>46019</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGQzOTNhZTguLmRkYjlmODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2MyBAQAorMjAxNS0wNC0xMCAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcHJv
dmUgQ29uc29sZSBNZXNzYWdlIEZvcm1hdHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzYyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICBN
aXNjLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZVZpZXcu
Y3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb25zb2xlLW1lc3NhZ2UuZXhwYW5kYWJsZSAuY29uc29s
ZS10b3AtbGV2ZWwtbWVzc2FnZTo6YmVmb3JlKToKKyAgICAgICAgKC5jb25zb2xlLW1lc3NhZ2Uu
ZXhwYW5kYWJsZS5leHBhbmRlZCAuY29uc29sZS10b3AtbGV2ZWwtbWVzc2FnZTo6YmVmb3JlKToK
KyAgICAgICAgKC5jb25zb2xlLW1lc3NhZ2UuZXhwYW5kYWJsZS5leHBhbmRlZCA6bWF0Y2hlcygu
Y29uc29sZS1tZXNzYWdlLXByZXZpZXcsIC5jb25zb2xlLW1lc3NhZ2UtcHJldmlldy1kaXZpZGVy
KSk6CisgICAgICAgICguY29uc29sZS1tZXNzYWdlLXByZXZpZXctZGl2aWRlcik6CisgICAgICAg
ICguY29uc29sZS1tZXNzYWdlLWVuY2xvc2VkKToKKyAgICAgICAgKC5jb25zb2xlLW1lc3NhZ2Ug
LmNvbnNvbGUtbWVzc2FnZS1zdGFjay10cmFjZS1jb250YWluZXIpOgorICAgICAgICAoLmNvbnNv
bGUtbWVzc2FnZS5leHBhbmRhYmxlLmV4cGFuZGVkIC5jb25zb2xlLW1lc3NhZ2Utc3RhY2stdHJh
Y2UtY29udGFpbmVyKToKKyAgICAgICAgKC5jb25zb2xlLW1lc3NhZ2UgLmNvbnNvbGUtbWVzc2Fn
ZS1zdGFjay10cmFjZS1jb250YWluZXIgPiBsaSk6CisgICAgICAgICguY29uc29sZS1tZXNzYWdl
IC5jb25zb2xlLW1lc3NhZ2UtZXh0cmEtcGFyYW1ldGVycy1jb250YWluZXIgPiBsaTo6YmVmb3Jl
KToKKyAgICAgICAgTmV3IHN0eWxlcyBmb3IgdGhlIG5ldyBDb25zb2xlTWVzc2FnZVZpZXcgY2hp
bGRyZW4uCisgICAgICAgIEhhbmRsZSBjb25zb2xlIG1lc3NhZ2UgZXhwYW5zaW9uLCBhIGxpc3Qg
b2YgZXh0cmEgcGFyYW1ldGVycworICAgICAgICBhbmQgYSBwb3RlbnRpYWwgbGlzdCBvZiBzdGFj
ayBmcmFtZXMuCisKKyAgICAgICAgKC5jb25zb2xlLW1lc3NhZ2UsIC5jb25zb2xlLXVzZXItY29t
bWFuZCk6CisgICAgICAgICguY29uc29sZS1tZXNzYWdlIC5yZXBlYXQtY291bnQpOgorICAgICAg
ICAoLmNvbnNvbGUtbWVzc2FnZS10ZXh0KToKKyAgICAgICAgKC5jb25zb2xlLW1lc3NhZ2UtdGV4
dCA+IHNwYW4pOgorICAgICAgICAoLmNvbnNvbGUtZXJyb3ItbGV2ZWwpOgorICAgICAgICAoLmNv
bnNvbGUtZXJyb3ItbGV2ZWwgLmNvbnNvbGUtbWVzc2FnZS10ZXh0KToKKyAgICAgICAgKC5jb25z
b2xlLWRlYnVnLWxldmVsIC5jb25zb2xlLW1lc3NhZ2UtdGV4dCk6CisgICAgICAgICguY29uc29s
ZS13YXJuaW5nLWxldmVsKToKKyAgICAgICAgKC5jb25zb2xlLXdhcm5pbmctbGV2ZWwgLmNvbnNv
bGUtbWVzc2FnZS10ZXh0KToKKyAgICAgICAgKC5jb25zb2xlLXVzZXItY29tbWFuZCAuY29uc29s
ZS1tZXNzYWdlKToKKyAgICAgICAgKC5jb25zb2xlLWVycm9yLWxldmVsOjpiZWZvcmUpOgorICAg
ICAgICAoLmNvbnNvbGUtd2FybmluZy1sZXZlbDo6YmVmb3JlKToKKyAgICAgICAgKC5jb25zb2xl
LXVzZXItY29tbWFuZDo6YmVmb3JlKToKKyAgICAgICAgKC5jb25zb2xlLWRlYnVnLWxldmVsOjpi
ZWZvcmUpOgorICAgICAgICAoOm1hdGNoZXMoLmNvbnNvbGUtd2FybmluZy1sZXZlbCwgLmNvbnNv
bGUtZXJyb3ItbGV2ZWwsIC5jb25zb2xlLWxvZy1sZXZlbCkuY29uc29sZS1tZXNzYWdlKToKKyAg
ICAgICAgKDptYXRjaGVzKC5jb25zb2xlLXdhcm5pbmctbGV2ZWwsIC5jb25zb2xlLWVycm9yLWxl
dmVsLCAuY29uc29sZS1sb2ctbGV2ZWwpOjpiZWZvcmUpOgorICAgICAgICAoLmNvbnNvbGUtdXNl
ci1jb21tYW5kID4gLmNvbnNvbGUtbWVzc2FnZS10ZXh0KToKKyAgICAgICAgKC5jb25zb2xlLW1l
c3NhZ2UtdXJsKToKKyAgICAgICAgKC5jb25zb2xlLXNhdmVkLXZhcmlhYmxlKToKKyAgICAgICAg
KC5jb25zb2xlLXVzZXItY29tbWFuZC1yZXN1bHQpOgorICAgICAgICAoLmNvbnNvbGUtdXNlci1j
b21tYW5kLXJlc3VsdC5jb25zb2xlLWxvZy1sZXZlbDo6YmVmb3JlKToKKyAgICAgICAgTW92ZWQg
ZnJvbSBMb2dDb250ZW50Vmlldy5jc3MgdG8gaGVyZSB3aGVyZSBpdCBpcyBtb3JlIGFwcHJvcHJp
YXRlCisgICAgICAgIHNpbmNlIENvbnNvbGVNZXNzYWdlVmlldyBhZGRlZCB0aGVtLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZVZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZVZpZXcucHJvdG90eXBlLmdldCBleHBhbmRhYmxlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZVZpZXcuc2V0IGV4cGFuZGFibGUudGhpcy5fYm91
bmRFeHBhbmRDbGlja0hhbmRsZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNz
YWdlVmlldy5wcm90b3R5cGUuc2V0IGV4cGFuZGFibGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbnNvbGVNZXNzYWdlVmlldy5wcm90b3R5cGUuZXhwYW5kKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZVZpZXcucHJvdG90eXBlLmNvbGxhcHNlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZVZpZXcucHJvdG90eXBlLnRvZ2dsZSk6CisgICAgICAg
IFByb3ZpZGUgaGlnaCBsZXZlbCBjb25zdHJ1Y3RzIGZvciBtYWtpbmcgYSBDb25zb2xlTWVzc2Fn
ZVZpZXcKKyAgICAgICAgZXhwYW5kYWJsZSwgYW5kIEFQSXMgdG8gZXhwYW5kL2NvbGxhcHNlLgor
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VWaWV3LnByb3RvdHlwZS5fYXBw
ZW5kRXh0cmFQYXJhbWV0ZXJzKToKKyAgICAgICAgQWRkIGFuZCBzdHlsZSB0aGUgbmV3IGxpc3Qg
b2YgZXh0cmEgcGFyYW1ldGVycy4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNz
YWdlVmlldy5wcm90b3R5cGUuX2FwcGVuZFN0YWNrVHJhY2UpOgorICAgICAgICBBZGQgYW5kIHN0
eWxlIHRoZSBuZXcgbGlzdCBzdGFjayBmcmFtZXMuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZVZpZXcucHJvdG90eXBlLl9hcHBlbmRGb3JtYXR0ZWRBcmd1bWVudHMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlVmlldy5wcm90b3R5cGUuX3Nob3Vs
ZENvbnNpZGVyT2JqZWN0TG9zc2xlc3MpOgorICAgICAgICBIYW5kbGluZyB0aGUgdG9wIGxldmVs
IG1lc3NhZ2UgdGV4dCBsaW5lIGZvciBhbGwgdGhlIGRpZmZlcmVudCBjYXNlcy4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLl9zdGFydEVkaXRpbmdUYXJnZXQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5fcG9wdWxhdGVU
YWdDb250ZXh0TWVudSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0
bGluZS5jc3M6CisgICAgICAgICguZG9tLXRyZWUtb3V0bGluZSAuYWRkLWF0dHJpYnV0ZSk6IERl
bGV0ZWQuCisgICAgICAgIENTUyBjbGFzcyAuYWRkLWF0dHJpYnV0ZSB3YXMgbm90IHVzZWQuIFJl
bW92ZSBhbGwgcmVmZXJlbmNlcy4KKyAgICAgICAgCisgICAgICAgICgud2Via2l0LWh0bWwtZnJh
Z21lbnQuc2hhZG93KToKKyAgICAgICAgTW92ZWQgZnJvbSBMb2dDb250ZW50Vmlldy5jc3MgdG8g
YSBtb3JlIGFwcHJvcHJpYXRlIHBsYWNlLgorICAgICAgICAKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0Zvcm1hdHRlZFZhbHVlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZvcm1h
dHRlZFZhbHVlLmNyZWF0ZU9iamVjdFByZXZpZXdPckZvcm1hdHRlZFZhbHVlRm9yUmVtb3RlT2Jq
ZWN0KToKKyAgICAgICAgSGVscGVyIHRvIGNyZWF0ZSBhIHByZXZpZXcgb3IgYSBmb3JtYXR0ZWQg
dmFsdWUgZm9yIGEgZ2l2ZW4gb2JqZWN0LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9Mb2dDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmll
dyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLl91cGRh
dGVNZXNzYWdlc1NlbGVjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZp
ZXcucHJvdG90eXBlLl9sZWZ0QXJyb3dXYXNQcmVzc2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3JpZ2h0QXJyb3dXYXNQcmVzc2VkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3JpZ2h0QXJyb3dXYXNQ
cmVzc2VkLmVsc2Uub3V0bGluZVRpdGxlLnRyZWVFbGVtZW50Lm9uZXhwYW5kKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3Byb3BlcnRp
ZXNTZWN0aW9uRGlkVXBkYXRlQ29udGVudCk6IERlbGV0ZWQuCisgICAgICAgIExvdHMgb2YgdGhp
cyBjb2RlIG5vIGxvbmdlciBtYWtlcyBzZW5zZS4gRGVsZXRlIHNvbWUgYW5kIHB1dCBGSVhNRXMK
KyAgICAgICAgd2hlcmUgaXQgbWFrZXMgc2Vuc2UgdG8gcmUtYWRkIGJhY2sgdXNlZnVsIGZlYXR1
cmVzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9PYmplY3RQcmV2aWV3Vmlldy5j
c3M6CisgICAgICAgICgub2JqZWN0LXByZXZpZXcgPiAuc2l6ZSk6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9PYmplY3RUcmVlQXJyYXlJbmRleFRyZWVFbGVtZW50LmNzczoKKyAgICAg
ICAgKC5vYmplY3QtdHJlZS1hcnJheS1pbmRleCAuaW5kZXgtdmFsdWUgLm9iamVjdC10cmVlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL09iamVjdFRyZWVWaWV3LmNz
czoKKyAgICAgICAgKC5vYmplY3QtdHJlZSk6CisgICAgICAgIFR3ZWFrIHN0eWxlcy4gT3BhY2l0
eSBpbnN0ZWFkIG9mIGEgc3BlY2lmaWMgZ3JheSB0byBiZXR0ZXIgd29yaworICAgICAgICB3aXRo
IG90aGVyIGNvbG9ycy4gQWx3YXlzIG1ha2Ugb2JqZWN0cyBiZSBpbmxpbmUtYmxvY2suCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmNzczoKKyAgICAgICAg
KC5jb25zb2xlLWVycm9yLWxldmVsICsgLmNvbnNvbGUtaXRlbSk6CisgICAgICAgICguY29uc29s
ZS13YXJuaW5nLWxldmVsICsgLmNvbnNvbGUtaXRlbSk6CisgICAgICAgICguY29uc29sZS1pdGVt
OjpiZWZvcmUpOgorICAgICAgICAoLmNvbnNvbGUtdXNlci1jb21tYW5kLXJlc3VsdCk6IERlbGV0
ZWQuCisgICAgICAgICguY29uc29sZS11c2VyLWNvbW1hbmQtcmVzdWx0LmNvbnNvbGUtbG9nLWxl
dmVsOjpiZWZvcmUpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUtbWVzc2FnZSwgLmNvbnNv
bGUtdXNlci1jb21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb25zb2xlLW1lc3NhZ2UgLnJl
cGVhdC1jb3VudCk6IERlbGV0ZWQuCisgICAgICAgICguY29uc29sZS1tZXNzYWdlLXRleHQpOiBE
ZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUtbWVzc2FnZS10ZXh0ID4gc3Bhbik6IERlbGV0ZWQu
CisgICAgICAgICguY29uc29sZS1lcnJvci1sZXZlbCk6IERlbGV0ZWQuCisgICAgICAgICguY29u
c29sZS1lcnJvci1sZXZlbCAuc2VjdGlvbiAuaGVhZGVyIC50aXRsZSk6IERlbGV0ZWQuCisgICAg
ICAgICguY29uc29sZS1kZWJ1Zy1sZXZlbCAuY29uc29sZS1tZXNzYWdlLXRleHQpOiBEZWxldGVk
LgorICAgICAgICAoLmNvbnNvbGUtZGVidWctbGV2ZWw6OmJlZm9yZSk6IERlbGV0ZWQuCisgICAg
ICAgICguY29uc29sZS1lcnJvci1sZXZlbDo6YmVmb3JlKTogRGVsZXRlZC4KKyAgICAgICAgKC5j
b25zb2xlLXdhcm5pbmctbGV2ZWwpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUtd2Fybmlu
Zy1sZXZlbCAuY29uc29sZS1tZXNzYWdlLXRleHQpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNv
bGUtd2FybmluZy1sZXZlbDo6YmVmb3JlKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb25zb2xlLXVz
ZXItY29tbWFuZCAuY29uc29sZS1tZXNzYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb25zb2xl
LXVzZXItY29tbWFuZDo6YmVmb3JlKTogRGVsZXRlZC4KKyAgICAgICAgKDptYXRjaGVzKC5jb25z
b2xlLXdhcm5pbmctbGV2ZWwsIC5jb25zb2xlLWVycm9yLWxldmVsLCAuY29uc29sZS1sb2ctbGV2
ZWwpLmNvbnNvbGUtbWVzc2FnZSk6IERlbGV0ZWQuCisgICAgICAgICg6bWF0Y2hlcyguY29uc29s
ZS13YXJuaW5nLWxldmVsLCAuY29uc29sZS1lcnJvci1sZXZlbCwgLmNvbnNvbGUtbG9nLWxldmVs
KTo6YmVmb3JlKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb25zb2xlLXVzZXItY29tbWFuZCA+IC5j
b25zb2xlLW1lc3NhZ2UtdGV4dCk6IERlbGV0ZWQuCisgICAgICAgICguY29uc29sZS1zYXZlZC12
YXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICguY29uc29sZS1tZXNzYWdlLXVybCk6IERlbGV0
ZWQuCisgICAgICAgICguY29uc29sZS1ncm91cC1tZXNzYWdlcyAuc2VjdGlvbik6IERlbGV0ZWQu
CisgICAgICAgICguY29uc29sZS1ncm91cC1tZXNzYWdlcyAuc2VjdGlvbiAuaGVhZGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKC5jb25zb2xlLWdyb3VwLW1lc3NhZ2VzIC5zZWN0aW9uIC5oZWFkZXI6
OmJlZm9yZSk6IERlbGV0ZWQuCisgICAgICAgICguY29uc29sZS1ncm91cC1tZXNzYWdlcyAuc2Vj
dGlvbiAuaGVhZGVyIC50aXRsZSk6IERlbGV0ZWQuCisgICAgICAgICguY29uc29sZS1ncm91cC1t
ZXNzYWdlcyAuc2VjdGlvbiAucHJvcGVydGllcyBsaSAuaW5mbyk6IERlbGV0ZWQuCisgICAgICAg
ICguY29uc29sZS1ncm91cC1tZXNzYWdlcyAub3V0bGluZS1kaXNjbG9zdXJlKTogRGVsZXRlZC4K
KyAgICAgICAgKC5jb25zb2xlLWdyb3VwLW1lc3NhZ2VzIC5vdXRsaW5lLWRpc2Nsb3N1cmUgPiBv
bCk6IERlbGV0ZWQuCisgICAgICAgICguY29uc29sZS1ncm91cC1tZXNzYWdlcyAub3V0bGluZS1k
aXNjbG9zdXJlIGxpIC5zZWxlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUtZ3Jv
dXAtbWVzc2FnZXMgLmFkZC1hdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAoLmVycm9yLW1l
c3NhZ2UpOiBEZWxldGVkLgorICAgICAgICAoLmF1dG8tY29tcGxldGUtdGV4dCwgLmVkaXRpbmcg
LmF1dG8tY29tcGxldGUtdGV4dCk6IERlbGV0ZWQuCisgICAgICAgICgub3V0bGluZS1kaXNjbG9z
dXJlIGxpLmhvdmVyZWQ6bm90KC5zZWxlY3RlZCkgLnNlbGVjdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgICgub3V0bGluZS1kaXNjbG9zdXJlIGxpLmhpZ2hsaWdodGVkIC5oaWdobGlnaHQpOiBEZWxl
dGVkLgorICAgICAgICAoLm91dGxpbmUtZGlzY2xvc3VyZSBsaS5zZWxlY3RlZC5oaWdobGlnaHRl
ZCAuaGlnaGxpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKC5vdXRsaW5lLWRpc2Nsb3N1cmUgbGkg
LnNlbGVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICgub3V0bGluZS1kaXNjbG9zdXJlIGxpLnNl
bGVjdGVkIC5zZWxlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoLm91dGxpbmUtZGlzY2xvc3Vy
ZSBsaS5lbGVtZW50cy1kcmFnLW92ZXIgLnNlbGVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICgu
b3V0bGluZS1kaXNjbG9zdXJlIG9sOmZvY3VzIGxpLnNlbGVjdGVkIC5zZWxlY3Rpb24pOiBEZWxl
dGVkLgorICAgICAgICAoLm91dGxpbmUtZGlzY2xvc3VyZSBvbC5zZWFyY2gtbWF0Y2gtbm90LWZv
dW5kIGxpLnNlbGVjdGVkIC5zZWxlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoLm91dGxpbmUt
ZGlzY2xvc3VyZSA+IG9sKTogRGVsZXRlZC4KKyAgICAgICAgKC5vdXRsaW5lLWRpc2Nsb3N1cmUs
IC5vdXRsaW5lLWRpc2Nsb3N1cmUgb2wpOiBEZWxldGVkLgorICAgICAgICAoLm91dGxpbmUtZGlz
Y2xvc3VyZSBsaSk6IERlbGV0ZWQuCisgICAgICAgICgub3V0bGluZS1kaXNjbG9zdXJlIC5leHBh
bmRlZCBsaSk6IERlbGV0ZWQuCisgICAgICAgICgub3V0bGluZS1kaXNjbG9zdXJlID4gbGkucGFy
ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKC5vdXRsaW5lLWRpc2Nsb3N1cmUgbGkgLndlYmtpdC1o
dG1sLXRhZy5jbG9zZSk6IERlbGV0ZWQuCisgICAgICAgICgub3V0bGluZS1kaXNjbG9zdXJlID4g
bGkucGFyZW50OjpiZWZvcmUpOiBEZWxldGVkLgorICAgICAgICAoLm91dGxpbmUtZGlzY2xvc3Vy
ZSBsaS5wYXJlbnQuZXhwYW5kZWQ6OmJlZm9yZSk6IERlbGV0ZWQuCisgICAgICAgICgub3V0bGlu
ZS1kaXNjbG9zdXJlIG9sLmNoaWxkcmVuKTogRGVsZXRlZC4KKyAgICAgICAgKC5vdXRsaW5lLWRp
c2Nsb3N1cmUgb2wuY2hpbGRyZW4uZXhwYW5kZWQpOiBEZWxldGVkLgorICAgICAgICAoLndlYmtp
dC1odG1sLWZyYWdtZW50LnNoYWRvdyk6IERlbGV0ZWQuCisgICAgICAgIERlbGV0ZSBub3cgdW51
c2VkIHN0eWxlcyBhbmQgbW92ZSBvdGhlciBzdHlsZXMgdG8gbW9yZSBhcHByb3ByaWF0ZSBwbGFj
ZXMuCisKIDIwMTUtMDQtMDkgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBVbmNhdWdodCBleGNlcHRpb24gdXNpbmcgY29uc29s
ZS50YWJsZSB3aXRoIGZpbHRlciBhcmd1bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3Mu
anMKaW5kZXggODAzYTdmN2ZhYjg2ZDdhY2Y0MmVlMGNmM2Q4NDIwNTg1ZWE2NDk1MC4uMDA3ODU3
MzY1MmZlYzY1ZjI3Y2U1ODQwNTk3MDk2NzdiZWNkYjMyYyAxMDA2NDQKR0lUIGJpbmFyeSBwYXRj
aApkZWx0YSA1OQp6Y21aMjxpRnc7NDxfKFckRD1SU01HTmR2VDE3UlhWSSpfSHI1WCsjelU8PEBi
NDFOc3hLc3RBRk99Rnt4YD9KNTsKS1o8ZjhvJF9vR3lpVj81PwoKZGVsdGEgNTUKemNtZG1YaUZ3
Zl88XyhXJFBkO2lWdXNMd2YxQUZPQWg1YG1GMV9jSHNoRkJuSjN1YzhkZkpHO05jJkB1eXt8LUFa
CkUwNXdEcihmfE1lCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFp
bi5odG1sCmluZGV4IDJiMTVhYTAuLjkwNjBjOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTQ4LDYgKzQ4LDcgQEAKICAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NvbG9yV2hlZWwuY3NzIj4KICAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NvbXBsZXRpb25TdWdnZXN0aW9uc1ZpZXcuY3Nz
Ij4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NvbXB1dGVkU3R5bGVE
ZXRhaWxzUGFuZWwuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdz
L0NvbnNvbGVNZXNzYWdlVmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iVmlld3MvQ29uc29sZVByb21wdC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iVmlld3MvQ29udGVudEJyb3dzZXIuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9IlZpZXdzL0NvbnRlbnRGbG93SWNvbi5jc3MiPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VWaWV3LmNz
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVNZXNz
YWdlVmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODI1OTRjMQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbnNvbGVNZXNzYWdlVmlldy5jc3MKQEAgLTAsMCArMSwyMTYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKy5jb25zb2xlLW1lc3NhZ2UsIC5jb25zb2xlLXVzZXItY29tbWFuZCB7CisgICAgcG9z
aXRpb246IHJlbGF0aXZlOworICAgIHBhZGRpbmc6IDRweCAxMnB4IDJweCAyMHB4OworICAgIG1p
bi1oZWlnaHQ6IDIxcHg7Cit9CisKKy5jb25zb2xlLW1lc3NhZ2UgLnJlcGVhdC1jb3VudCB7Cisg
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIGZsb2F0OiBsZWZ0OworCisgICAgcGFkZGlu
ZzogMXB4IDRweDsKKyAgICBtYXJnaW46IDAgMnB4IDAgLTE4cHg7CisKKyAgICBoZWlnaHQ6IDE1
cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyOCwgMTUxLCAxODkpOworICAgIHZlcnRp
Y2FsLWFsaWduOiBtaWRkbGU7CisgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKworICAgIGZvbnQt
c2l6ZTogMTFweDsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGxpbmUtaGVpZ2h0OiBub3Jt
YWw7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgY29sb3I6IHdoaXRlOworICAgIGJvcmRl
ci1yYWRpdXM6IDdweDsKK30KKworLmNvbnNvbGUtbWVzc2FnZS10ZXh0IHsKKyAgICB3aGl0ZS1z
cGFjZTogcHJlLXdyYXA7Cit9CisKKy5jb25zb2xlLW1lc3NhZ2UtdGV4dCA+IHNwYW4geworICAg
IC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7Cit9CisKKy5jb25zb2xlLW1lc3NhZ2UuZXhwYW5k
YWJsZSAuY29uc29sZS10b3AtbGV2ZWwtbWVzc2FnZTo6YmVmb3JlIHsKKyAgICBkaXNwbGF5OiBp
bmxpbmUtYmxvY2s7CisKKyAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7CisgICAgbWFyZ2lu
LWJvdHRvbTogLTJweDsKKyAgICBtYXJnaW4tcmlnaHQ6IDJweDsKKworICAgIHdpZHRoOiAxM3B4
OworICAgIGhlaWdodDogMTNweDsKKworICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY2Fu
dmFzKG5hdmlnYXRpb24tc2lkZWJhci1wYW5lbC1kaXNjbG9zdXJlLXRyaWFuZ2xlLWNsb3NlZC1u
b3JtYWwpOworICAgIGJhY2tncm91bmQtc2l6ZTogMTNweCAxM3B4OworICAgIGJhY2tncm91bmQt
cmVwZWF0OiBuby1yZXBlYXQ7CisgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOworCisg
ICAgY29udGVudDogIiI7Cit9CisKKy5jb25zb2xlLW1lc3NhZ2UuZXhwYW5kYWJsZS5leHBhbmRl
ZCAuY29uc29sZS10b3AtbGV2ZWwtbWVzc2FnZTo6YmVmb3JlIHsKKyAgICBiYWNrZ3JvdW5kLWlt
YWdlOiAtd2Via2l0LWNhbnZhcyhuYXZpZ2F0aW9uLXNpZGViYXItcGFuZWwtZGlzY2xvc3VyZS10
cmlhbmdsZS1vcGVuLW5vcm1hbCk7Cit9CisKKy5jb25zb2xlLW1lc3NhZ2UuZXhwYW5kYWJsZS5l
eHBhbmRlZCA6bWF0Y2hlcyguY29uc29sZS1tZXNzYWdlLXByZXZpZXcsIC5jb25zb2xlLW1lc3Nh
Z2UtcHJldmlldy1kaXZpZGVyKSB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKworLmNvbnNvbGUt
bWVzc2FnZS1wcmV2aWV3LWRpdmlkZXIgeworICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7
Cit9CisKKy5jb25zb2xlLW1lc3NhZ2UtZW5jbG9zZWQgeworICAgIGZvbnQtZmFtaWx5OiBNZW5s
bywgbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTogMTFweDsKKyAgICBjb2xvcjogcmdiYSgwLCAw
LCAwLCAwLjUpOworfQorCisuY29uc29sZS1tZXNzYWdlIC5jb25zb2xlLW1lc3NhZ2UtZXh0cmEt
cGFyYW1ldGVycy1jb250YWluZXIsCisuY29uc29sZS1tZXNzYWdlIC5jb25zb2xlLW1lc3NhZ2Ut
c3RhY2stdHJhY2UtY29udGFpbmVyIHsKKyAgICBtYXJnaW46IDA7CisgICAgcGFkZGluZzogMnB4
IDAgMCAwOworICAgIGxpc3Qtc3R5bGU6IG5vbmU7CisgICAgb3V0bGluZTogbm9uZTsKKyAgICBk
aXNwbGF5OiBub25lOworfQorCisuY29uc29sZS1tZXNzYWdlIC5jb25zb2xlLW1lc3NhZ2Utc3Rh
Y2stdHJhY2UtY29udGFpbmVyIHsKKyAgICBtYXJnaW4tbGVmdDogMjRweDsKK30KKworLmNvbnNv
bGUtbWVzc2FnZS5leHBhbmRhYmxlLmV4cGFuZGVkIC5jb25zb2xlLW1lc3NhZ2UtZXh0cmEtcGFy
YW1ldGVycy1jb250YWluZXIsCisuY29uc29sZS1tZXNzYWdlLmV4cGFuZGFibGUuZXhwYW5kZWQg
LmNvbnNvbGUtbWVzc2FnZS1zdGFjay10cmFjZS1jb250YWluZXIgeworICAgIGRpc3BsYXk6IGJs
b2NrOworfQorCisuY29uc29sZS1tZXNzYWdlIC5jb25zb2xlLW1lc3NhZ2UtZXh0cmEtcGFyYW1l
dGVycy1jb250YWluZXIgPiBsaSwKKy5jb25zb2xlLW1lc3NhZ2UgLmNvbnNvbGUtbWVzc2FnZS1z
dGFjay10cmFjZS1jb250YWluZXIgPiBsaSB7CisgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAg
ICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworICAgIC13
ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CisgICAgY3Vyc29yOiBkZWZhdWx0OworICAgIHBhZGRp
bmc6IDJweCAwOworfQorCisuY29uc29sZS1tZXNzYWdlIC5jb25zb2xlLW1lc3NhZ2UtZXh0cmEt
cGFyYW1ldGVycy1jb250YWluZXIgPiBsaTo6YmVmb3JlIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7CisKKyAgICB3aWR0aDogMTNweDsKKyAgICBoZWlnaHQ6IDEzcHg7CisgICAgY29udGVu
dDogIuKAoiI7CisKKyAgICBmb250LWZhbWlseTogLXdlYmtpdC1zeXN0ZW0tZm9udCwgc2Fucy1z
ZXJpZjsKKyAgICBmb250LXNpemU6IDExcHg7CisgICAgY29sb3I6IGhzbGEoMCwgMCUsIDAlLCAw
LjMzKTsKKworICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgbWFyZ2luLWxlZnQ6IDNweDsK
K30KKworLmNvbnNvbGUtZXJyb3ItbGV2ZWwgeworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgw
LCAxMDAlLCA5NiUpOworICAgIGJvcmRlci1jb2xvcjogaHNsKDAsIDEwMCUsIDkyJSk7Cit9CisK
Ky5jb25zb2xlLWVycm9yLWxldmVsIC5jb25zb2xlLW1lc3NhZ2UtdGV4dCB7CisgICAgY29sb3I6
IGhzbCgwLCA3NSUsIDQ1JSk7Cit9CisKKy5jb25zb2xlLWRlYnVnLWxldmVsIC5jb25zb2xlLW1l
c3NhZ2UtdGV4dCB7CisgICAgY29sb3I6IGJsdWU7Cit9CisKKy5jb25zb2xlLXdhcm5pbmctbGV2
ZWwgeworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCg1MCwgMTAwJSwgOTQlKTsKKyAgICBib3Jk
ZXItY29sb3I6IGhzbCg0MCwgMTAwJSwgOTAlKTsKK30KKworLmNvbnNvbGUtd2FybmluZy1sZXZl
bCAuY29uc29sZS1tZXNzYWdlLXRleHQgeworICAgIGNvbG9yOiBoc2woMzAsIDkwJSwgMzUlKTsK
K30KKworLmNvbnNvbGUtdXNlci1jb21tYW5kIC5jb25zb2xlLW1lc3NhZ2UgeworICAgIG1hcmdp
bi1sZWZ0OiAtMjRweDsKKyAgICBwYWRkaW5nLXJpZ2h0OiAwOworfQorCisuY29uc29sZS1lcnJv
ci1sZXZlbDo6YmVmb3JlIHsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0Vycm9yLnN2Zyk7
Cit9CisKKy5jb25zb2xlLXdhcm5pbmctbGV2ZWw6OmJlZm9yZSB7CisgICAgY29udGVudDogdXJs
KC4uL0ltYWdlcy9XYXJuaW5nLnN2Zyk7Cit9CisKKy5jb25zb2xlLXVzZXItY29tbWFuZDo6YmVm
b3JlIHsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL1VzZXJJbnB1dFByb21wdFByZXZpb3Vz
LnN2Zyk7Cit9CisKKy5jb25zb2xlLWRlYnVnLWxldmVsOjpiZWZvcmUgeworICAgIGJhY2tncm91
bmQtY29sb3I6IGJsdWU7Cit9CisKKzptYXRjaGVzKC5jb25zb2xlLXdhcm5pbmctbGV2ZWwsIC5j
b25zb2xlLWVycm9yLWxldmVsLCAuY29uc29sZS1sb2ctbGV2ZWwpLmNvbnNvbGUtbWVzc2FnZSB7
CisgLyogTW92ZSBub24tbW9ub3NwYWNlIGxvZy93YXJuaW5nL2Vycm9yIHRleHQgdXAgYSBiaXQu
ICovCisgICAgcGFkZGluZzogM3B4IDEycHggM3B4IDIwcHg7Cit9CisKKzptYXRjaGVzKC5jb25z
b2xlLXdhcm5pbmctbGV2ZWwsIC5jb25zb2xlLWVycm9yLWxldmVsLCAuY29uc29sZS1sb2ctbGV2
ZWwpOjpiZWZvcmUgeworIC8qIFJlLWNlbnRlciBsb2cvd2FybmluZy9lcnJvciBpY29ucy4gKi8K
KyAgICBwYWRkaW5nLXRvcDogMXB4OworfQorCisuY29uc29sZS11c2VyLWNvbW1hbmQgPiAuY29u
c29sZS1tZXNzYWdlLXRleHQgeworICAgIGNvbG9yOiByZ2IoMCwgMTI4LCAyNTUpOworfQorCisu
Y29uc29sZS1tZXNzYWdlLXVybCB7CisgICAgZmxvYXQ6IHJpZ2h0OworICAgIG1hcmdpbi1sZWZ0
OiA0cHg7CisgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKK30KKworLmNvbnNvbGUtc2F2ZWQtdmFy
aWFibGUgeworICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKKyAgICBjb2xvcjogaHNsKDAsIDAlLCA2
NyUpOworfQorCisuY29uc29sZS11c2VyLWNvbW1hbmQsCisuY29uc29sZS11c2VyLWNvbW1hbmQt
cmVzdWx0IHsKKyAgICBmb250LWZhbWlseTogTWVubG8sIG1vbm9zcGFjZTsKKyAgICBmb250LXNp
emU6IDExcHg7Cit9CisKKy5jb25zb2xlLXVzZXItY29tbWFuZC1yZXN1bHQuY29uc29sZS1sb2ct
bGV2ZWw6OmJlZm9yZSB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9Vc2VySW5wdXRSZXN1
bHQuc3ZnKTsKKyAgICBtYXJnaW4tbGVmdDogMXB4OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VWaWV3LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VW
aWV3LmpzCmluZGV4IDIzMmY5ZTAuLjA0MGJmNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVNZXNzYWdlVmlldy5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZVZp
ZXcuanMKQEAgLTczLDE0ICs3MywyMCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VWaWV3
ID0gY2xhc3MgQ29uc29sZU1lc3NhZ2VWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLgogICAgICAg
ICBpZiAodGhpcy5fbWVzc2FnZS50eXBlID09PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2Uu
TWVzc2FnZVR5cGUuU3RhcnRHcm91cCB8fCB0aGlzLl9tZXNzYWdlLnR5cGUgPT09IFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5TdGFydEdyb3VwQ29sbGFwc2VkKQogICAg
ICAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJjb25zb2xlLWdyb3VwLXRpdGxl
Iik7CiAKKyAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBwYXJhbWV0ZXJzIHVudXNlZCBieSB0aGUg
bWVzc2FnZXMncyBvcHRpb25hbCBmb3JtYXQgc3RyaW5nLgorICAgICAgICAvLyBBbnkgZXh0cmEg
cGFyYW1ldGVycyB3aWxsIGJlIGRpc3BsYXllZCBhcyBjaGlsZHJlbiBvZiB0aGlzIG1lc3NhZ2Uu
CisgICAgICAgIHRoaXMuX2V4dHJhUGFyYW1ldGVycyA9IHRoaXMuX21lc3NhZ2UucGFyYW1ldGVy
czsKKworICAgICAgICAvLyBGSVhNRTogVGhlIGxvY2F0aW9uIGxpbmsgc2hvdWxkIGluY2x1ZGUg
c3RhY2sgdHJhY2UgaW5mb3JtYXRpb24uCiAgICAgICAgIHRoaXMuX2FwcGVuZExvY2F0aW9uTGlu
aygpOwogCiAgICAgICAgIHRoaXMuX21lc3NhZ2VUZXh0RWxlbWVudCA9IHRoaXMuX2VsZW1lbnQu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgdGhp
cy5fbWVzc2FnZVRleHRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImNvbnNvbGUtdG9wLWxldmVsLW1l
c3NhZ2UiKTsKICAgICAgICAgdGhpcy5fbWVzc2FnZVRleHRFbGVtZW50LmNsYXNzTGlzdC5hZGQo
ImNvbnNvbGUtbWVzc2FnZS10ZXh0Iik7CiAgICAgICAgIHRoaXMuX2FwcGVuZE1lc3NhZ2VUZXh0
QW5kQXJndW1lbnRzKHRoaXMuX21lc3NhZ2VUZXh0RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2Fw
cGVuZFNhdmVkUmVzdWx0SW5kZXgoKTsKIAotICAgICAgICB0aGlzLl9hcHBlbmRQYXJhbWV0ZXJz
KCk7CisgICAgICAgIHRoaXMuX2FwcGVuZEV4dHJhUGFyYW1ldGVycygpOwogICAgICAgICB0aGlz
Ll9hcHBlbmRTdGFja1RyYWNlKCk7CiAKICAgICAgICAgdGhpcy5yZXBlYXRDb3VudCA9IHRoaXMu
X21lc3NhZ2UucmVwZWF0Q291bnQ7CkBAIC05Nyw3ICsxMDMsNyBAQCBXZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2VWaWV3ID0gY2xhc3MgQ29uc29sZU1lc3NhZ2VWaWV3IGV4dGVuZHMgV2ViSW5z
cGVjdG9yLgogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX21lc3NhZ2U7CiAgICAgfQotICAg
IAorCiAgICAgZ2V0IHJlcGVhdENvdW50KCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9y
ZXBlYXRDb3VudDsKQEAgLTEyOSw2ICsxMzUsNDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNz
YWdlVmlldyA9IGNsYXNzIENvbnNvbGVNZXNzYWdlVmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci4K
ICAgICAgICAgdGhpcy5fcmVwZWF0Q291bnRFbGVtZW50LnRleHRDb250ZW50ID0gY291bnQ7CiAg
ICAgfQogCisgICAgZ2V0IGV4cGFuZGFibGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJleHBhbmRhYmxlIik7CisgICAgfQorCisgICAg
c2V0IGV4cGFuZGFibGUoeCkKKyAgICB7CisgICAgICAgIGlmICh4ID09PSB0aGlzLmV4cGFuZGFi
bGUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCF0aGlzLl9ib3VuZEV4cGFu
ZENsaWNrSGFuZGxlcikKKyAgICAgICAgICAgIHRoaXMuX2JvdW5kRXhwYW5kQ2xpY2tIYW5kbGVy
ID0gZnVuY3Rpb24oKSB7IHRoaXMudG9nZ2xlKCk7IH0uYmluZCh0aGlzKTsKKworICAgICAgICB2
YXIgYmVjYW1lRXhwYW5kYWJsZSA9IHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiZXhw
YW5kYWJsZSIsIHgpOworCisgICAgICAgIGlmIChiZWNhbWVFeHBhbmRhYmxlKQorICAgICAgICAg
ICAgdGhpcy5fbWVzc2FnZVRleHRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhp
cy5fYm91bmRFeHBhbmRDbGlja0hhbmRsZXIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0
aGlzLl9tZXNzYWdlVGV4dEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlz
Ll9ib3VuZEV4cGFuZENsaWNrSGFuZGxlcik7CisgICAgfQorCisgICAgZXhwYW5kKCkKKyAgICB7
CisgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZXhwYW5kZWQiKTsKKworICAg
ICAgICAvLyBBdXRvLWV4cGFuZCBhbiBpbm5lciBvYmplY3QgdHJlZSBpZiB0aGVyZSBpcyBhIHNp
bmdsZSBvYmplY3QuCisgICAgICAgIGlmICh0aGlzLl9vYmplY3RUcmVlICYmIHRoaXMuX2V4dHJh
UGFyYW1ldGVycy5sZW5ndGggPT09IDEpCisgICAgICAgICAgICB0aGlzLl9vYmplY3RUcmVlLmV4
cGFuZCgpOworICAgIH0KKworICAgIGNvbGxhcHNlKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Vs
ZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5kZWQiKTsKKyAgICB9CisKKyAgICB0b2dnbGUo
KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJl
eHBhbmRlZCIpKQorICAgICAgICAgICAgdGhpcy5jb2xsYXBzZSgpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0aGlzLmV4cGFuZCgpOworICAgIH0KKwogICAgIHRvQ2xpcGJvYXJkU3RyaW5n
KGlzUHJlZml4T3B0aW9uYWwpCiAgICAgewogICAgICAgICB2YXIgY2xpcGJvYXJkU3RyaW5nID0g
dGhpcy5fbWVzc2FnZVRleHRFbGVtZW50LmlubmVyVGV4dDsKQEAgLTE3Myw2ICsyMjIsNyBAQCBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VWaWV3ID0gY2xhc3MgQ29uc29sZU1lc3NhZ2VWaWV3
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLgogICAgICAgICBpZiAodGhpcy5fbWVzc2FnZS5zb3VyY2Ug
PT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkNvbnNvbGVBUEkp
IHsKICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5fbWVzc2FnZS50eXBlKSB7CiAgICAgICAgICAg
ICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5UcmFjZToKKyAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHVzZSBhIGJldHRlciBzdHJpbmcgdGhl
biBjb25zb2xlLnRyYWNlLgogICAgICAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoImNvbnNvbGUudHJhY2UoKSIpKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKIApAQCAtMjI0LDcgKzI3NCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZVZpZXcgPSBjbGFzcyBDb25zb2xlTWVzc2FnZVZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuCiAg
ICAgICAgICAgICB0aGlzLl9vYmplY3RUcmVlLmFwcGVuZFRpdGxlU3VmZml4KHNhdmVkVmFyaWFi
bGVFbGVtZW50KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVRleHRF
bGVtZW50LmFwcGVuZENoaWxkKHNhdmVkVmFyaWFibGVFbGVtZW50KTsKLSAgICB9ICAgIAorICAg
IH0KIAogICAgIF9hcHBlbmRMb2NhdGlvbkxpbmsoKQogICAgIHsKQEAgLTI0Miw0OCArMjkyLDUw
IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZVZpZXcgPSBjbGFzcyBDb25zb2xlTWVzc2Fn
ZVZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBfYXBw
ZW5kUGFyYW1ldGVycygpCisgICAgX2FwcGVuZEV4dHJhUGFyYW1ldGVycygpCiAgICAgewotICAg
ICAgICAvLyBGSVhNRTogVG8gYmUgaW1wbGVtZW50ZWQgZm9yIHRoZSBuZXcgQ29uc29sZSBkZXNp
Z24uCisgICAgICAgIGlmICghdGhpcy5fZXh0cmFQYXJhbWV0ZXJzIHx8ICF0aGlzLl9leHRyYVBh
cmFtZXRlcnMubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuZXhw
YW5kYWJsZSA9IHRydWU7CisKKyAgICAgICAgLy8gQXV0by1leHBhbmQgaWYgdGhlcmUgYXJlIG11
bHRpcGxlIG9iamVjdHMuCisgICAgICAgIGlmICh0aGlzLl9leHRyYVBhcmFtZXRlcnMubGVuZ3Ro
ID4gMSkKKyAgICAgICAgICAgIHRoaXMuZXhwYW5kKCk7CisKKyAgICAgICAgdGhpcy5fZXh0cmFF
bGVtZW50c0xpc3QgPSB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoIm9sIikpOworICAgICAgICB0aGlzLl9leHRyYUVsZW1lbnRzTGlzdC5jbGFzc0xpc3Qu
YWRkKCJjb25zb2xlLW1lc3NhZ2UtZXh0cmEtcGFyYW1ldGVycy1jb250YWluZXIiKTsKKworICAg
ICAgICBmb3IgKHZhciBwYXJhbWV0ZXIgb2YgdGhpcy5fZXh0cmFQYXJhbWV0ZXJzKSB7CisgICAg
ICAgICAgICB2YXIgbGlzdEl0ZW1FbGVtZW50ID0gdGhpcy5fZXh0cmFFbGVtZW50c0xpc3QuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKSk7CisgICAgICAgICAgICB2YXIg
Zm9yY2VPYmplY3RFeHBhbnNpb24gPSBwYXJhbWV0ZXIudHlwZSA9PT0gIm9iamVjdCIgJiYgKHBh
cmFtZXRlci5zdWJ0eXBlICE9PSAibnVsbCIgJiYgcGFyYW1ldGVyLnN1YnR5cGUgIT09ICJyZWdl
eHAiICYmIHBhcmFtZXRlci5zdWJ0eXBlICE9PSAibm9kZSIpOworICAgICAgICAgICAgbGlzdEl0
ZW1FbGVtZW50LmNsYXNzTGlzdC5hZGQoImNvbnNvbGUtbWVzc2FnZS1leHRyYS1wYXJhbWV0ZXIi
KTsKKyAgICAgICAgICAgIGxpc3RJdGVtRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9mb3JtYXRQ
YXJhbWV0ZXIocGFyYW1ldGVyLCBmb3JjZU9iamVjdEV4cGFuc2lvbikpOworICAgICAgICB9CiAg
ICAgfQogCiAgICAgX2FwcGVuZFN0YWNrVHJhY2UoKQogICAgIHsKLSAgICAgICAgLy8gRklYTUU6
IFRvIGJlIHJlLXdyaXR0ZW4gaW4gdGhlIG5ldyBDb25zb2xlIGRlc2lnbi4KLQogICAgICAgICBp
ZiAoIXRoaXMuX3Nob3VsZFNob3dTdGFja1RyYWNlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgdmFyIG9sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsKLSAgICAgICAg
b2wuY2xhc3NOYW1lID0gIm91dGxpbmUtZGlzY2xvc3VyZSI7Ci0gICAgICAgIHZhciB0cmVlT3V0
bGluZSA9IG5ldyBXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUob2wpOwotICAgICAgICB2YXIgcm9v
dCA9IG5ldyBXZWJJbnNwZWN0b3IuVHJlZUVsZW1lbnQodGhpcy5fbWVzc2FnZVRleHRFbGVtZW50
LCBudWxsLCB0cnVlKTsKLSAgICAgICAgdHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQocm9vdCk7Cisg
ICAgICAgIHRoaXMuZXhwYW5kYWJsZSA9IHRydWU7CiAKKyAgICAgICAgLy8gQXV0by1leHBhbmQg
Zm9yIGNvbnNvbGUudHJhY2UuCiAgICAgICAgIGlmICh0aGlzLl9tZXNzYWdlLnR5cGUgPT09IFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5UcmFjZSkKLSAgICAgICAgICAg
IHJvb3QuZXhwYW5kKCk7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9tZXNz
YWdlLnN0YWNrVHJhY2UubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHZhciBmcmFtZSA9IHRo
aXMuX21lc3NhZ2Uuc3RhY2tUcmFjZVtpXTsKLQotICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgICAgIHZhciBtZXNzYWdlVGV4
dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgICAgICAgICBt
ZXNzYWdlVGV4dEVsZW1lbnQuY2xhc3NOYW1lID0gImNvbnNvbGUtbWVzc2FnZS10ZXh0IjsKLSAg
ICAgICAgICAgIHZhciBmdW5jdGlvbk5hbWUgPSBmcmFtZS5mdW5jdGlvbk5hbWUgfHwgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCIoYW5vbnltb3VzIGZ1bmN0aW9uKSIpOwotICAgICAgICAgICAgbWVz
c2FnZVRleHRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGZ1bmN0
aW9uTmFtZSkpOwotICAgICAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChtZXNzYWdlVGV4dEVs
ZW1lbnQpOwotCi0gICAgICAgICAgICBpZiAoZnJhbWUudXJsICYmICF0aGlzLl9zaG91bGRIaWRl
VVJMKGZyYW1lLnVybCkpIHsKLSAgICAgICAgICAgICAgICB2YXIgdXJsRWxlbWVudCA9IHRoaXMu
X2xpbmtpZnlDYWxsRnJhbWUoZnJhbWUpOwotICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5k
Q2hpbGQodXJsRWxlbWVudCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciB0cmVl
RWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuVHJlZUVsZW1lbnQoY29udGVudCk7Ci0gICAgICAg
ICAgICByb290LmFwcGVuZENoaWxkKHRyZWVFbGVtZW50KTsKKyAgICAgICAgICAgIHRoaXMuZXhw
YW5kKCk7CisKKyAgICAgICAgdGhpcy5fc3RhY2tUcmFjZUVsZW1lbnQgPSB0aGlzLl9lbGVtZW50
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInVsIikpOworICAgICAgICB0aGlz
Ll9zdGFja1RyYWNlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJjb25zb2xlLW1lc3NhZ2Utc3RhY2st
dHJhY2UtY29udGFpbmVyIik7CisgICAgICAgIHRoaXMuX3N0YWNrVHJhY2VFbGVtZW50LmNsYXNz
TGlzdC5hZGQoImNvbnNvbGUtbWVzc2FnZS10ZXh0Iik7CisKKyAgICAgICAgZm9yICh2YXIgY2Fs
bEZyYW1lIG9mIHRoaXMuX21lc3NhZ2Uuc3RhY2tUcmFjZSkgeworICAgICAgICAgICAgdmFyIGNh
bGxGcmFtZUVsZW1lbnQgPSB0aGlzLl9zdGFja1RyYWNlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpKTsKKyAgICAgICAgICAgIGNhbGxGcmFtZUVsZW1lbnQu
Y2xhc3NMaXN0LmFkZCgiY29uc29sZS1tZXNzYWdlLXN0YWNrLXRyYWNlLWNhbGwtZnJhbWUiKTsK
KyAgICAgICAgICAgIGNhbGxGcmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSBjYWxsRnJhbWUuZnVu
Y3Rpb25OYW1lIHx8IFdlYkluc3BlY3Rvci5VSVN0cmluZygiKGFub255bW91cyBmdW5jdGlvbiki
KTsKKyAgICAgICAgICAgIGlmIChjYWxsRnJhbWUudXJsICYmICF0aGlzLl9zaG91bGRIaWRlVVJM
KGNhbGxGcmFtZS51cmwpKQorICAgICAgICAgICAgICAgIGNhbGxGcmFtZUVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5fbGlua2lmeUNhbGxGcmFtZShjYWxsRnJhbWUpKTsKICAgICAgICAgfQotCi0g
ICAgICAgIHRoaXMuX21lc3NhZ2VUZXh0RWxlbWVudCA9IG9sOwotICAgICAgICB0aGlzLl9lbGVt
ZW50LmFwcGVuZENoaWxkKHRoaXMuX21lc3NhZ2VUZXh0RWxlbWVudCk7CiAgICAgfQogCiAgICAg
X2FwcGVuZEZvcm1hdHRlZEFyZ3VtZW50cyhlbGVtZW50LCBwYXJhbWV0ZXJzKQpAQCAtMzAzLDI0
ICszNTUsNjIgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlVmlldyA9IGNsYXNzIENvbnNv
bGVNZXNzYWdlVmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci4KICAgICAgICAgfQogCiAgICAgICAg
IHZhciBidWlsZGVyRWxlbWVudCA9IGVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic3BhbiIpKTsKLQotICAgICAgICAvLyBGb3JtYXQgc3RyaW5nLgogICAgICAgICB2
YXIgc2hvdWxkRm9ybWF0V2l0aFN0cmluZ1N1YnN0aXR1dGlvbiA9IFdlYkluc3BlY3Rvci5SZW1v
dGVPYmplY3QudHlwZShwYXJhbWV0ZXJzWzBdKSA9PT0gInN0cmluZyIgJiYgdGhpcy5fbWVzc2Fn
ZS50eXBlICE9PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuUmVzdWx0
OworCisgICAgICAgIC8vIFNpbmdsZSBvYmplY3QgKGUuZy4gY29uc29sZSByZXN1bHQgb3IgbG9n
Z2luZyBhIG5vbi1zdHJpbmcgb2JqZWN0KS4KKyAgICAgICAgaWYgKHBhcmFtZXRlcnMubGVuZ3Ro
ID09PSAxICYmICFzaG91bGRGb3JtYXRXaXRoU3RyaW5nU3Vic3RpdHV0aW9uKSB7CisgICAgICAg
ICAgICB0aGlzLl9leHRyYVBhcmFtZXRlcnMgPSBudWxsOworICAgICAgICAgICAgYnVpbGRlckVs
ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZm9ybWF0UGFyYW1ldGVyKHBhcmFtZXRlcnNbMF0sIGZh
bHNlKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xl
LmFzc2VydCh0aGlzLl9tZXNzYWdlLnR5cGUgIT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlVHlwZS5SZXN1bHQpOworCisgICAgICAgIC8vIEZvcm1hdCBzdHJpbmcgLyBtZXNz
YWdlIC8gZGVmYXVsdCBtZXNzYWdlLgogICAgICAgICBpZiAoc2hvdWxkRm9ybWF0V2l0aFN0cmlu
Z1N1YnN0aXR1dGlvbikgewogICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX2Zvcm1hdFdp
dGhTdWJzdGl0dXRpb25TdHJpbmcocGFyYW1ldGVycywgYnVpbGRlckVsZW1lbnQpOwogICAgICAg
ICAgICAgcGFyYW1ldGVycyA9IHJlc3VsdC51bnVzZWRTdWJzdGl0dXRpb25zOwotICAgICAgICAg
ICAgaWYgKHBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICAgICAgICAgIGJ1aWxkZXJFbGVtZW50
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIikpOworICAgICAgICAgICAg
dGhpcy5fZXh0cmFQYXJhbWV0ZXJzID0gcGFyYW1ldGVyczsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIHZhciBkZWZhdWx0TWVzc2FnZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm8g
bWVzc2FnZSIpOworICAgICAgICAgICAgYnVpbGRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoZGVmYXVsdE1lc3NhZ2UpKTsKICAgICAgICAgfQogCi0gICAgICAg
IC8vIEluZGl2aWR1YWwgb2JqZWN0cy4KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJh
bWV0ZXJzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBidWlsZGVyRWxlbWVudC5hcHBlbmRD
aGlsZCh0aGlzLl9mb3JtYXRQYXJhbWV0ZXIocGFyYW1ldGVyc1tpXSwgZmFsc2UpKTsKLSAgICAg
ICAgICAgIGlmIChpIDwgcGFyYW1ldGVycy5sZW5ndGggLSAxKQorICAgICAgICAvLyBUcmFpbGlu
ZyBwYXJhbWV0ZXJzLgorICAgICAgICBpZiAocGFyYW1ldGVycy5sZW5ndGgpIHsKKyAgICAgICAg
ICAgIGlmIChwYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMSkgeworICAgICAgICAgICAgICAgIC8vIFNp
bmdsZSBvYmplY3QuIFNob3cgYSBwcmV2aWV3LgorICAgICAgICAgICAgICAgIHZhciBlbmNsb3Nl
ZEVsZW1lbnQgPSBidWlsZGVyRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzcGFuIikpOworICAgICAgICAgICAgICAgIGVuY2xvc2VkRWxlbWVudC5jbGFzc0xpc3Qu
YWRkKCJjb25zb2xlLW1lc3NhZ2UtcHJldmlldy1kaXZpZGVyIik7CisgICAgICAgICAgICAgICAg
ZW5jbG9zZWRFbGVtZW50LnRleHRDb250ZW50ID0gIiBcdTIwMTMgIjsKKworICAgICAgICAgICAg
ICAgIHZhciBwcmV2aWV3Q29udGFpbmVyID0gYnVpbGRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAgICAgICBwcmV2aWV3Q29u
dGFpbmVyLmNsYXNzTGlzdC5hZGQoImNvbnNvbGUtbWVzc2FnZS1wcmV2aWV3Iik7CisKKyAgICAg
ICAgICAgICAgICB2YXIgcGFyYW1ldGVyID0gcGFyYW1ldGVyc1swXTsKKyAgICAgICAgICAgICAg
ICB2YXIgcHJldmlldyA9IFdlYkluc3BlY3Rvci5Gb3JtYXR0ZWRWYWx1ZS5jcmVhdGVPYmplY3RQ
cmV2aWV3T3JGb3JtYXR0ZWRWYWx1ZUZvclJlbW90ZU9iamVjdChwYXJhbWV0ZXIsIFdlYkluc3Bl
Y3Rvci5PYmplY3RQcmV2aWV3Vmlldy5Nb2RlLkJyaWVmKTsKKyAgICAgICAgICAgICAgICB2YXIg
aXNQcmV2aWV3VmlldyA9IHByZXZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuT2JqZWN0UHJl
dmlld1ZpZXc7CisgICAgICAgICAgICAgICAgdmFyIHByZXZpZXdFbGVtZW50ID0gaXNQcmV2aWV3
VmlldyA/IHByZXZpZXcuZWxlbWVudCA6IHByZXZpZXc7CisgICAgICAgICAgICAgICAgcHJldmll
d0NvbnRhaW5lci5hcHBlbmRDaGlsZChwcmV2aWV3RWxlbWVudCk7CisKKyAgICAgICAgICAgICAg
ICAvLyBJZiB0aGlzIHByZXZpZXcgaXMgZWZmZWN0aXZlbHkgbG9zc2xlc3MsIHdlIGNhbiBhdm9p
ZCBtYWtpbmcgdGhpcyBjb25zb2xlIG1lc3NhZ2UgZXhwYW5kYWJsZS4KKyAgICAgICAgICAgICAg
ICBpZiAoKGlzUHJldmlld1ZpZXcgJiYgcHJldmlldy5sb3NzbGVzcykgfHwgKCFpc1ByZXZpZXdW
aWV3ICYmIHRoaXMuX3Nob3VsZENvbnNpZGVyT2JqZWN0TG9zc2xlc3MocGFyYW1ldGVyKSkpCisg
ICAgICAgICAgICAgICAgICAgIHRoaXMuX2V4dHJhUGFyYW1ldGVycyA9IG51bGw7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIE11bHRpcGxlIG9iamVjdHMuIFNob3cg
YW4gaW5kaWNhdG9yLgogICAgICAgICAgICAgICAgIGJ1aWxkZXJFbGVtZW50LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIikpOworICAgICAgICAgICAgICAgIHZhciBlbmNs
b3NlZEVsZW1lbnQgPSBidWlsZGVyRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIikpOworICAgICAgICAgICAgICAgIGVuY2xvc2VkRWxlbWVudC5jbGFzc0xp
c3QuYWRkKCJjb25zb2xlLW1lc3NhZ2UtZW5jbG9zZWQiKTsKKyAgICAgICAgICAgICAgICBlbmNs
b3NlZEVsZW1lbnQudGV4dENvbnRlbnQgPSAiKCIgKyBwYXJhbWV0ZXJzLmxlbmd0aCArICIpIjsK
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAorICAgIF9zaG91bGRDb25zaWRlck9i
amVjdExvc3NsZXNzKG9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiBvYmplY3QudHlwZSAh
PT0gIm9iamVjdCIgfHwgb2JqZWN0LnN1YnR5cGUgPT09ICJudWxsIiB8fCBvYmplY3Quc3VidHlw
ZSA9PT0gInJlZ2V4cCI7CisgICAgfQorCiAgICAgX2Zvcm1hdFBhcmFtZXRlcihwYXJhbWV0ZXIs
IGZvcmNlT2JqZWN0Rm9ybWF0KQogICAgIHsKICAgICAgICAgdmFyIHR5cGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVu
dC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVF
bGVtZW50LmpzCmluZGV4IGYzNDA4ZGIuLmQ1NzJkOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50Lmpz
CkBAIC01NzYsMTAgKzU3Niw2IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNz
IERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAgICAgICAgIGlm
ICh0YWdOYW1lKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXJ0RWRpdGluZ1RhZ05hbWUo
dGFnTmFtZSk7CiAKLSAgICAgICAgdmFyIG5ld0F0dHJpYnV0ZSA9IGV2ZW50VGFyZ2V0LmVuY2xv
c2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoImFkZC1hdHRyaWJ1dGUiKTsKLSAgICAgICAgaWYgKG5l
d0F0dHJpYnV0ZSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZGROZXdBdHRyaWJ1dGUoKTsK
LQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC01ODgsMTEgKzU4NCwxMCBAQCBX
ZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRz
IFdlYkluc3BlY3Rvci5UcmVlRWxlbQogICAgICAgICB2YXIgbm9kZSA9IHRoaXMucmVwcmVzZW50
ZWRPYmplY3Q7CiAgICAgICAgIGlmICghbm9kZS5pc0luU2hhZG93VHJlZSgpKSB7CiAgICAgICAg
ICAgICB2YXIgYXR0cmlidXRlID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRo
Q2xhc3MoImh0bWwtYXR0cmlidXRlIik7Ci0gICAgICAgICAgICB2YXIgbmV3QXR0cmlidXRlID0g
ZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoImFkZC1hdHRyaWJ1dGUi
KTsKIAogICAgICAgICAgICAgLy8gQWRkIGF0dHJpYnV0ZS1yZWxhdGVkIGFjdGlvbnMuCiAgICAg
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQWRk
IEF0dHJpYnV0ZSIpLCB0aGlzLl9hZGROZXdBdHRyaWJ1dGUuYmluZCh0aGlzKSk7Ci0gICAgICAg
ICAgICBpZiAoYXR0cmlidXRlICYmICFuZXdBdHRyaWJ1dGUpCisgICAgICAgICAgICBpZiAoYXR0
cmlidXRlKQogICAgICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJFZGl0IEF0dHJpYnV0ZSIpLCB0aGlzLl9zdGFydEVkaXRpbmdBdHRyaWJ1
dGUuYmluZCh0aGlzLCBhdHRyaWJ1dGUsIGV2ZW50LnRhcmdldCkpOwogICAgICAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmNzcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmNzcwppbmRl
eCA0MWIzM2UwLi4zNTg2MWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5jc3MKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuY3NzCkBAIC0xNTEsMTIg
KzE1MSw2IEBAIGJvZHkubWFjLXBsYXRmb3JtLmxlZ2FjeSAuZG9tLXRyZWUtb3V0bGluZTpmb2N1
cyBsaS5zZWxlY3RlZCAuc2VsZWN0aW9uIHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0
LWNhbnZhcyhkaXNjbG9zdXJlLXRyaWFuZ2xlLXRpbnktb3Blbi1zZWxlY3RlZCk7CiB9CiAKLS5k
b20tdHJlZS1vdXRsaW5lIC5hZGQtYXR0cmlidXRlIHsKLSAgICBtYXJnaW4tbGVmdDogMXB4Owot
ICAgIG1hcmdpbi1yaWdodDogMXB4OwotICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Ci19Ci0KIC5k
b20tdHJlZS1vdXRsaW5lIC5odG1sLXRleHQtbm9kZS5sYXJnZSB7CiAgICAgZGlzcGxheTogaW5s
aW5lLWJsb2NrOwogICAgIG1pbi13aWR0aDogMTAwJTsKQEAgLTE2OCwzICsxNjIsNyBAQCBib2R5
Lm1hYy1wbGF0Zm9ybS5sZWdhY3kgLmRvbS10cmVlLW91dGxpbmU6Zm9jdXMgbGkuc2VsZWN0ZWQg
LnNlbGVjdGlvbiB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzUsIDIxNSwgMzgsIDAu
Mik7CiAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigyMzcsIDIwMiwgNzEpOwogfQor
Cisud2Via2l0LWh0bWwtZnJhZ21lbnQuc2hhZG93IHsKKyAgICBvcGFjaXR5OiAwLjY7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Gb3Jt
YXR0ZWRWYWx1ZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0Zvcm1hdHRlZFZhbHVlLmpzCmluZGV4IGY2NDgyNzAuLmU3MDAyYmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Zvcm1hdHRlZFZhbHVlLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Zvcm1hdHRl
ZFZhbHVlLmpzCkBAIC0xMjEsNiArMTIxLDE3IEBAIFdlYkluc3BlY3Rvci5Gb3JtYXR0ZWRWYWx1
ZS5jcmVhdGVFbGVtZW50Rm9yUHJvcGVydHlQcmV2aWV3ID0gZnVuY3Rpb24ocHJvcGVydHlQCiAg
ICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Gb3JtYXR0ZWRWYWx1ZS5jcmVhdGVFbGVtZW50Rm9yVHlw
ZXNBbmRWYWx1ZShwcm9wZXJ0eVByZXZpZXcudHlwZSwgcHJvcGVydHlQcmV2aWV3LnN1YnR5cGUs
IHByb3BlcnR5UHJldmlldy52YWx1ZSwgdW5kZWZpbmVkLCB0cnVlLCBmYWxzZSk7CiB9OwogCitX
ZWJJbnNwZWN0b3IuRm9ybWF0dGVkVmFsdWUuY3JlYXRlT2JqZWN0UHJldmlld09yRm9ybWF0dGVk
VmFsdWVGb3JSZW1vdGVPYmplY3QgPSBmdW5jdGlvbihvYmplY3QsIHByZXZpZXdWaWV3TW9kZSkK
K3sKKyAgICBpZiAob2JqZWN0LnN1YnR5cGUgPT09ICJub2RlIikKKyAgICAgICAgcmV0dXJuIFdl
Ykluc3BlY3Rvci5Gb3JtYXR0ZWRWYWx1ZS5jcmVhdGVFbGVtZW50Rm9yTm9kZShvYmplY3QpOwor
CisgICAgaWYgKG9iamVjdC5wcmV2aWV3KQorICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rv
ci5PYmplY3RQcmV2aWV3VmlldyhvYmplY3QucHJldmlldywgcHJldmlld1ZpZXdNb2RlKTsKKwor
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IuRm9ybWF0dGVkVmFsdWUuY3JlYXRlRWxlbWVudEZvclJl
bW90ZU9iamVjdChvYmplY3QpOworfTsKKwogV2ViSW5zcGVjdG9yLkZvcm1hdHRlZFZhbHVlLmNy
ZWF0ZU9iamVjdFRyZWVPckZvcm1hdHRlZFZhbHVlRm9yUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24o
b2JqZWN0LCBwcm9wZXJ0eVBhdGgsIGZvcmNlRXhwYW5kaW5nKQogewogICAgIGlmIChvYmplY3Qu
c3VidHlwZSA9PT0gIm5vZGUiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuY3NzCmluZGV4IGE2M2Q3MDQu
LjZiYWNhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5jc3MKQEAgLTQwLDEyICs0MCw2IEBACiAg
ICAgbWluLWhlaWdodDogMTAwJTsKIH0KIAotLmNvbnNvbGUtdXNlci1jb21tYW5kLAotLmNvbnNv
bGUtdXNlci1jb21tYW5kLXJlc3VsdCB7Ci0gICAgZm9udC1mYW1pbHk6IE1lbmxvLCBtb25vc3Bh
Y2U7Ci0gICAgZm9udC1zaXplOiAxMXB4OwotfQotCiAuY29uc29sZS1tZXNzYWdlcyA+IDpmaXJz
dC1jaGlsZCB7CiAgICAgbWFyZ2luLXRvcDogYXV0bzsKIH0KQEAgLTU0LDYgKzQ4LDIxIEBACiAg
ICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYigyNDAsIDI0MCwgMjQwKTsKIH0KIAorLmNvbnNv
bGUtZXJyb3ItbGV2ZWwgKyAuY29uc29sZS1pdGVtIHsKKyAgICBib3JkZXItdG9wLWNvbG9yOiBo
c2woMCwgMTAwJSwgOTIlKTsKK30KKworLmNvbnNvbGUtd2FybmluZy1sZXZlbCArIC5jb25zb2xl
LWl0ZW0geworICAgIGJvcmRlci10b3AtY29sb3I6IGhzbCg0MCwgMTAwJSwgOTAlKTsKK30KKwor
LmNvbnNvbGUtaXRlbTo6YmVmb3JlIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVm
dDogNHB4OworICAgIGhlaWdodDogMTJweDsKKyAgICB3aWR0aDogMTJweDsKK30KKwogLmNvbnNv
bGUtaXRlbS5zZWxlY3RlZDo6YWZ0ZXIgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICBk
aXNwbGF5OiBibG9jazsKQEAgLTkxLDU3ICsxMDAsNiBAQAogICAgIGNvbG9yOiBoc2woMjEwLCAx
MDAlLCAzMyUpOwogfQogCi0uY29uc29sZS11c2VyLWNvbW1hbmQtcmVzdWx0LmNvbnNvbGUtbG9n
LWxldmVsOjpiZWZvcmUgewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvVXNlcklucHV0UmVz
dWx0LnN2Zyk7Ci0gICAgbWFyZ2luLWxlZnQ6IDFweDsKLX0KLQotLmNvbnNvbGUtbWVzc2FnZSwg
LmNvbnNvbGUtdXNlci1jb21tYW5kIHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgcGFk
ZGluZzogNHB4IDEycHggMnB4IDIwcHg7Ci0gICAgbWluLWhlaWdodDogMjFweDsKLX0KLQotLmNv
bnNvbGUtaXRlbTo6YmVmb3JlIHsKLSAgICBjb250ZW50OiAiICI7Ci0KLSAgICBwb3NpdGlvbjog
YWJzb2x1dGU7Ci0gICAgbGVmdDogNHB4OwotICAgIGhlaWdodDogMTJweDsKLSAgICB3aWR0aDog
MTJweDsKLX0KLQotLmNvbnNvbGUtbWVzc2FnZSAucmVwZWF0LWNvdW50IHsKLSAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7Ci0gICAgaGVpZ2h0OiAxNXB4OwotICAgIGJhY2tncm91bmQtY29sb3I6
IHJnYigxMjgsIDE1MSwgMTg5KTsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwotICAgIHdo
aXRlLXNwYWNlOiBub3dyYXA7Ci0gICAgcGFkZGluZzogMXB4IDRweDsKLSAgICBtYXJnaW4tdG9w
OiAtMnB4OwotICAgIG1hcmdpbi1yaWdodDogNHB4OwotICAgIG1hcmdpbi1sZWZ0OiAtMThweDsK
LSAgICB0ZXh0LWFsaWduOiBsZWZ0OwotICAgIGZvbnQtc2l6ZTogMTFweDsKLSAgICBsaW5lLWhl
aWdodDogbm9ybWFsOwotICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgIHRleHQtc2hhZG93OiBu
b25lOwotICAgIGNvbG9yOiB3aGl0ZTsKLSAgICBib3JkZXItcmFkaXVzOiA3cHg7Ci0KLSAgICBm
bG9hdDogbGVmdDsKLSAgICBtYXJnaW4tdG9wOiAwOwotICAgIG1hcmdpbi1sZWZ0OiAycHg7Ci19
Ci0KLS5jb25zb2xlLW1lc3NhZ2UtdGV4dCB7Ci0gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwot
fQotCi0uY29uc29sZS1tZXNzYWdlLXRleHQgPiBzcGFuIHsKLSAgICAtd2Via2l0LXVzZXItc2Vs
ZWN0OiB0ZXh0OwotfQotCiAuY29uc29sZS1ncm91cC10aXRsZSB7CiAgICAgZm9udC13ZWlnaHQ6
IGJvbGQ7CiB9CkBAIC0xNzEsNzcgKzEyOSw2IEBACiAgICAgYm9yZGVyLXRvcDogM3B4IGRhc2hl
ZCByZ2IoMjQwLCAyNDAsIDI0MCk7CiB9CiAKLS5jb25zb2xlLWVycm9yLWxldmVsIHsKLSAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMTAwJSwgOTYlKTsKLSAgICBib3JkZXItY29sb3I6IGhz
bCgwLCAxMDAlLCA5MiUpOwotfQotCi0uY29uc29sZS1lcnJvci1sZXZlbCArIC5jb25zb2xlLWl0
ZW0gewotICAgIGJvcmRlci10b3AtY29sb3I6IGhzbCgwLCAxMDAlLCA5MiUpOwotfQotCi0uY29u
c29sZS1lcnJvci1sZXZlbCAuY29uc29sZS1tZXNzYWdlLXRleHQsCi0uY29uc29sZS1lcnJvci1s
ZXZlbCAuc2VjdGlvbiAuaGVhZGVyIC50aXRsZSB7Ci0gICAgY29sb3I6IGhzbCgwLCA3NSUsIDQ1
JSk7Ci19Ci0KLS5jb25zb2xlLWRlYnVnLWxldmVsIC5jb25zb2xlLW1lc3NhZ2UtdGV4dCB7Ci0g
ICAgY29sb3I6IGJsdWU7Ci19Ci0KLS5jb25zb2xlLWRlYnVnLWxldmVsOjpiZWZvcmUgewotICAg
IGJhY2tncm91bmQtY29sb3I6IGJsdWU7Ci19Ci0KLS5jb25zb2xlLWVycm9yLWxldmVsOjpiZWZv
cmUgewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvRXJyb3Iuc3ZnKTsKLX0KLQotLmNvbnNv
bGUtd2FybmluZy1sZXZlbCB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDUwLCAxMDAlLCA5
NCUpOwotICAgIGJvcmRlci1jb2xvcjogaHNsKDQwLCAxMDAlLCA5MCUpOwotfQotCi0uY29uc29s
ZS13YXJuaW5nLWxldmVsICsgLmNvbnNvbGUtaXRlbSB7Ci0gICAgYm9yZGVyLXRvcC1jb2xvcjog
aHNsKDQwLCAxMDAlLCA5MCUpOwotfQotCi0uY29uc29sZS13YXJuaW5nLWxldmVsIC5jb25zb2xl
LW1lc3NhZ2UtdGV4dCB7Ci0gICAgY29sb3I6IGhzbCgzMCwgOTAlLCAzNSUpOwotfQotCi0uY29u
c29sZS13YXJuaW5nLWxldmVsOjpiZWZvcmUgewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMv
V2FybmluZy5zdmcpOwotfQotCi0uY29uc29sZS11c2VyLWNvbW1hbmQgLmNvbnNvbGUtbWVzc2Fn
ZSB7Ci0gICAgbWFyZ2luLWxlZnQ6IC0yNHB4OwotICAgIHBhZGRpbmctcmlnaHQ6IDA7Ci19Ci0K
LS5jb25zb2xlLXVzZXItY29tbWFuZDo6YmVmb3JlIHsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1h
Z2VzL1VzZXJJbnB1dFByb21wdFByZXZpb3VzLnN2Zyk7Ci19Ci0KLTptYXRjaGVzKC5jb25zb2xl
LXdhcm5pbmctbGV2ZWwsIC5jb25zb2xlLWVycm9yLWxldmVsLCAuY29uc29sZS1sb2ctbGV2ZWwp
LmNvbnNvbGUtbWVzc2FnZSB7Ci0gLyogTW92ZSBub24tbW9ub3NwYWNlIGxvZy93YXJuaW5nL2Vy
cm9yIHRleHQgdXAgYSBiaXQuICovCi0gICAgcGFkZGluZzogM3B4IDEycHggM3B4IDIwcHg7Ci19
Ci0KLTptYXRjaGVzKC5jb25zb2xlLXdhcm5pbmctbGV2ZWwsIC5jb25zb2xlLWVycm9yLWxldmVs
LCAuY29uc29sZS1sb2ctbGV2ZWwpOjpiZWZvcmUgewotIC8qIFJlLWNlbnRlciBsb2cvd2Fybmlu
Zy9lcnJvciBpY29ucy4gKi8KLSAgICBwYWRkaW5nLXRvcDogMXB4OwotfQotCi0uY29uc29sZS11
c2VyLWNvbW1hbmQgPiAuY29uc29sZS1tZXNzYWdlLXRleHQgewotICAgIGNvbG9yOiByZ2IoMCwg
MTI4LCAyNTUpOwotfQotCi0uY29uc29sZS1zYXZlZC12YXJpYWJsZSB7Ci0gICAgZm9udC1zdHls
ZTogbm9ybWFsOwotICAgIGNvbG9yOiBoc2woMCwgMCUsIDY3JSk7Ci19Ci0KIC5jb25zb2xlLW1l
c3NhZ2VzIGEgewogICAgIGNvbG9yOiByZ2IoMzMlLCAzMyUsIDMzJSk7CiAgICAgY3Vyc29yOiBw
b2ludGVyOwpAQCAtMjU1LDE4NCArMTQyLDYgQEAKICAgICBjbGVhcjogYm90aDsKIH0KIAotLmNv
bnNvbGUtbWVzc2FnZS11cmwgewotICAgIGZsb2F0OiByaWdodDsKLSAgICBtYXJnaW4tbGVmdDog
NHB4OwotICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Ci19Ci0KLS5jb25zb2xlLWdyb3VwLW1lc3Nh
Z2VzIC5zZWN0aW9uIHsKLSAgICBtYXJnaW46IDAgMCAwIDEycHg7Ci19Ci0KLS5jb25zb2xlLWdy
b3VwLW1lc3NhZ2VzIC5zZWN0aW9uIC5oZWFkZXIgewotICAgIHBhZGRpbmc6IDAgOHB4IDAgMDsK
LSAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOwotICAgIGJvcmRlcjogbm9uZTsKLSAgICBtaW4t
aGVpZ2h0OiAwOwotfQotCi0uY29uc29sZS1ncm91cC1tZXNzYWdlcyAuc2VjdGlvbiAuaGVhZGVy
OjpiZWZvcmUgewotICAgIHRvcDogM3B4OwotICAgIGxlZnQ6IDFweDsKLX0KLQotLmNvbnNvbGUt
Z3JvdXAtbWVzc2FnZXMgLnNlY3Rpb24gLmhlYWRlciAudGl0bGUgewotICAgIGNvbG9yOiBibGFj
azsKLSAgICBmb250LXdlaWdodDogbm9ybWFsOwotICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IC8q
IEBGSVhNRTogbWF5IGNhdXNlIGluY29uc2lzdGVuY2llcyBpbiBsaW5lLWhlaWdodHMgb2YgbW9u
b3NwYWNlIGFuZCBub24tbW9ub3NwYWNlIHRleHQgKi8KLX0KLQotLmNvbnNvbGUtZ3JvdXAtbWVz
c2FnZXMgLnNlY3Rpb24gLnByb3BlcnRpZXMgbGkgLmluZm8gewotICAgIHBhZGRpbmctdG9wOiAw
OwotICAgIHBhZGRpbmctYm90dG9tOiAwOwotICAgIGNvbG9yOiByZ2IoNjAlLCA2MCUsIDYwJSk7
Ci19Ci0KLS5jb25zb2xlLWdyb3VwLW1lc3NhZ2VzIC5vdXRsaW5lLWRpc2Nsb3N1cmUgewotICAg
IG91dGxpbmU6IG5vbmU7Ci0gICAgcGFkZGluZy1sZWZ0OiAwOwotfQotCi0uY29uc29sZS1ncm91
cC1tZXNzYWdlcyAub3V0bGluZS1kaXNjbG9zdXJlID4gb2wgewotICAgIHBhZGRpbmc6IDAgMCAw
IDEycHggIWltcG9ydGFudDsKLX0KLQotLmNvbnNvbGUtZ3JvdXAtbWVzc2FnZXMgLm91dGxpbmUt
ZGlzY2xvc3VyZSBsaSAuc2VsZWN0aW9uIHsKLSAgICBtYXJnaW4tbGVmdDogLTZweDsKLSAgICBt
YXJnaW4tcmlnaHQ6IC02cHg7Ci19Ci0KLS5jb25zb2xlLWdyb3VwLW1lc3NhZ2VzIC5hZGQtYXR0
cmlidXRlIHsKLSAgICBkaXNwbGF5OiBub25lOwotfQotCi0uZXJyb3ItbWVzc2FnZSB7Ci0gICAg
Y29sb3I6IHJlZDsKLX0KLQotLmF1dG8tY29tcGxldGUtdGV4dCwgLmVkaXRpbmcgLmF1dG8tY29t
cGxldGUtdGV4dCB7Ci0gICAgY29sb3I6IHJnYigxMjgsIDEyOCwgMTI4KSAhaW1wb3J0YW50Owot
ICAgIC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtb25seTsKLX0KLQotLm91dGxpbmUtZGlzY2xv
c3VyZSBsaS5ob3ZlcmVkOm5vdCguc2VsZWN0ZWQpIC5zZWxlY3Rpb24gewotICAgIGRpc3BsYXk6
IGJsb2NrOwotICAgIGxlZnQ6IDNweDsKLSAgICByaWdodDogM3B4OwotICAgIGJhY2tncm91bmQt
Y29sb3I6IHJnYmEoNTYsIDEyMSwgMjE3LCAwLjEpOwotICAgIGJvcmRlci1yYWRpdXM6IDVweDsK
LX0KLQotLm91dGxpbmUtZGlzY2xvc3VyZSBsaS5oaWdobGlnaHRlZCAuaGlnaGxpZ2h0IHsKLSAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyMzAsIDE3OSk7Ci0gICAgYm9yZGVyLXJhZGl1
czogNHB4OwotICAgIHBhZGRpbmctYm90dG9tOiAycHg7Ci0gICAgbWFyZ2luLWJvdHRvbTogLTJw
eDsKLX0KLQotLm91dGxpbmUtZGlzY2xvc3VyZSBsaS5zZWxlY3RlZC5oaWdobGlnaHRlZCAuaGln
aGxpZ2h0IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKLSAgICBwYWRkaW5n
LWJvdHRvbTogMDsKLSAgICBtYXJnaW4tYm90dG9tOiAwOwotfQotCi0ub3V0bGluZS1kaXNjbG9z
dXJlIGxpIC5zZWxlY3Rpb24gewotICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgcG9zaXRpb246IGFi
c29sdXRlOwotICAgIGxlZnQ6IDA7Ci0gICAgcmlnaHQ6IDA7Ci0gICAgaGVpZ2h0OiAxNXB4Owot
ICAgIHotaW5kZXg6IC0xOwotfQotCi0ub3V0bGluZS1kaXNjbG9zdXJlIGxpLnNlbGVjdGVkIC5z
ZWxlY3Rpb24gewotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIGJhY2tncm91bmQtY29sb3I6IHJn
YigyMTIsIDIxMiwgMjEyKTsKLX0KLQotLm91dGxpbmUtZGlzY2xvc3VyZSBsaS5lbGVtZW50cy1k
cmFnLW92ZXIgLnNlbGVjdGlvbiB7Ci0gICAgZGlzcGxheTogYmxvY2s7Ci0gICAgbWFyZ2luLXRv
cDogLTJweDsKLSAgICBib3JkZXItdG9wOiAycHggc29saWQgcmdiKDU2LCAxMjEsIDIxNyk7Ci19
Ci0KLS5vdXRsaW5lLWRpc2Nsb3N1cmUgb2w6Zm9jdXMgbGkuc2VsZWN0ZWQgLnNlbGVjdGlvbiB7
Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDU2LCAxMjEsIDIxNyk7Ci19Ci0KLS5vdXRsaW5l
LWRpc2Nsb3N1cmUgb2wuc2VhcmNoLW1hdGNoLW5vdC1mb3VuZCBsaS5zZWxlY3RlZCAuc2VsZWN0
aW9uIHsKLSAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoNTYsIDEyMSwgMjE3KTsKLSAgICBiYWNr
Z3JvdW5kLWNvbG9yOiB3aGl0ZTsKLX0KLQotLm91dGxpbmUtZGlzY2xvc3VyZSA+IG9sIHsKLSAg
ICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgcGFkZGluZzogMnB4IDZweCAhaW1wb3J0YW50Owot
ICAgIG1hcmdpbjogMDsKLSAgICBjb2xvcjogYmxhY2s7Ci0gICAgY3Vyc29yOiBkZWZhdWx0Owot
ICAgIG1pbi13aWR0aDogMTAwJTsKLX0KLQotLm91dGxpbmUtZGlzY2xvc3VyZSwgLm91dGxpbmUt
ZGlzY2xvc3VyZSBvbCB7Ci0gICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwotICAgIC13ZWJraXQt
cGFkZGluZy1zdGFydDogMDsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLS5vdXRsaW5lLWRpc2Nsb3N1
cmUgbGkgewotICAgIHBhZGRpbmc6IDAgMCAwIDE0cHg7Ci0gICAgbWFyZ2luLXRvcDogMDsKLSAg
ICBtYXJnaW4tYm90dG9tOiAwOwotICAgIG1hcmdpbi1sZWZ0OiAtMnB4OwotICAgIHdvcmQtd3Jh
cDogYnJlYWstd29yZDsKLX0KLQotLm91dGxpbmUtZGlzY2xvc3VyZSAuZXhwYW5kZWQgbGkgewot
ICAgIG1hcmdpbi1ib3R0b206IDJweDsKLX0KLQotLm91dGxpbmUtZGlzY2xvc3VyZSA+IGxpLnBh
cmVudCB7Ci0gICAgbWFyZ2luLWxlZnQ6IC0xMnB4Ci19Ci0KLS5vdXRsaW5lLWRpc2Nsb3N1cmUg
bGkgLndlYmtpdC1odG1sLXRhZy5jbG9zZSB7Ci0gICAgbWFyZ2luLWxlZnQ6IC0xMnB4OwotfQot
Ci0ub3V0bGluZS1kaXNjbG9zdXJlID4gbGkucGFyZW50OjpiZWZvcmUgewotICAgIGZsb2F0OiBs
ZWZ0OwotCi0gICAgY29udGVudDogIiI7Ci0KLSAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0
LWNhbnZhcyhkaXNjbG9zdXJlLXRyaWFuZ2xlLXRpbnktY2xvc2VkLW5vcm1hbCk7Ci0gICAgYmFj
a2dyb3VuZC1zaXplOiA4cHggOHB4OwotICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7
Ci0KLSAgICB3aWR0aDogOHB4OwotICAgIGhlaWdodDogOHB4OwotCi0gICAgbWFyZ2luLXRvcDog
M3B4OwotICAgIHBhZGRpbmctcmlnaHQ6IDJweDsKLX0KLQotLm91dGxpbmUtZGlzY2xvc3VyZSBs
aS5wYXJlbnQuZXhwYW5kZWQ6OmJlZm9yZSB7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtp
dC1jYW52YXMoZGlzY2xvc3VyZS10cmlhbmdsZS10aW55LW9wZW4tbm9ybWFsKTsKLX0KLQotLm91
dGxpbmUtZGlzY2xvc3VyZSBvbC5jaGlsZHJlbiB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLQot
Lm91dGxpbmUtZGlzY2xvc3VyZSBvbC5jaGlsZHJlbi5leHBhbmRlZCB7Ci0gICAgZGlzcGxheTog
YmxvY2s7Ci19Ci0KLS53ZWJraXQtaHRtbC1mcmFnbWVudC5zaGFkb3cgewotICAgIG9wYWNpdHk6
IDAuNjsKLX0KLQogLmNvbnNvbGUtaXRlbS5maWx0ZXJlZC1vdXQgewogICAgIGRpc3BsYXk6IG5v
bmU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Mb2dDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCmluZGV4IGI4Y2JjZmMuLjBmNWQzYWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRl
bnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0xvZ0NvbnRlbnRWaWV3LmpzCkBAIC0zNSw3ICszNSw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250
ZW50VmlldyA9IGZ1bmN0aW9uKHJlcHJlc2VudGVkT2JqZWN0KQogICAgIC8vIEZJWE1FOiBUcnkg
dG8gdXNlIGEgbWFya2VyLCBpbnN0ZWFkIG9mIGEgbGlzdCBvZiBtZXNzYWdlcyB0aGF0IGdldCBy
ZS1hZGRlZC4KICAgICB0aGlzLl9wcm92aXNpb25hbE1lc3NhZ2VzID0gW107CiAKLSAgICB0aGlz
LmVsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU3R5bGVD
bGFzc05hbWUpOworICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJsb2ciKTsKIAogICAg
IHRoaXMubWVzc2FnZXNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAg
ICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuY2xhc3NOYW1lID0gImNvbnNvbGUtbWVzc2FnZXMiOwpA
QCAtMTA0LDcgKzEwNCw2IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TY29wZXMgPSB7
CiAgICAgTG9nczogImxvZy1sb2dzIgogfTsKIAotV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3
LlN0eWxlQ2xhc3NOYW1lID0gImxvZyI7CiBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuSXRl
bVdyYXBwZXJTdHlsZUNsYXNzTmFtZSA9ICJjb25zb2xlLWl0ZW0iOwogV2ViSW5zcGVjdG9yLkxv
Z0NvbnRlbnRWaWV3LkZpbHRlcmVkT3V0U3R5bGVDbGFzc05hbWUgPSAiZmlsdGVyZWQtb3V0IjsK
IFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lID0gInNl
bGVjdGVkIjsKQEAgLTQ4NSw2ICs0ODQsMTAgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3
LnByb3RvdHlwZSA9IHsKIAogICAgIF91cGRhdGVNZXNzYWdlc1NlbGVjdGlvbjogZnVuY3Rpb24o
bWVzc2FnZSwgbXVsdGlwbGVTZWxlY3Rpb24sIHJhbmdlU2VsZWN0aW9uLCBzaG91bGRTY3JvbGxJ
bnRvVmlldykKICAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG1lc3NhZ2UpOworICAgICAg
ICBpZiAoIW1lc3NhZ2UpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgdmFyIGFscmVh
ZHlTZWxlY3RlZE1lc3NhZ2UgPSB0aGlzLl9zZWxlY3RlZE1lc3NhZ2VzLmluY2x1ZGVzKG1lc3Nh
Z2UpOwogICAgICAgICBpZiAoYWxyZWFkeVNlbGVjdGVkTWVzc2FnZSAmJiB0aGlzLl9zZWxlY3Rl
ZE1lc3NhZ2VzLmxlbmd0aCAmJiBtdWx0aXBsZVNlbGVjdGlvbikgewogICAgICAgICAgICAgbWVz
c2FnZS5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3Rl
ZFN0eWxlQ2xhc3NOYW1lKTsKQEAgLTc5OCwxOCArODAxLDggQEAgV2ViSW5zcGVjdG9yLkxvZ0Nv
bnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKGN1cnJlbnRNZXNzYWdlLmNsYXNz
TGlzdC5jb250YWlucygiY29uc29sZS1ncm91cC10aXRsZSIpKQogICAgICAgICAgICAgY3VycmVu
dE1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKTsKICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICB2YXIgb3V0bGluZVRpdGxlID0gY3VycmVudE1lc3NhZ2UucXVl
cnlTZWxlY3Rvcigib2wub3V0bGluZS1kaXNjbG9zdXJlID4gbGkucGFyZW50Iik7Ci0gICAgICAg
ICAgICBpZiAob3V0bGluZVRpdGxlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmFsdEtl
eSkKLSAgICAgICAgICAgICAgICAgICAgb3V0bGluZVRpdGxlLnRyZWVFbGVtZW50LmNvbGxhcHNl
UmVjdXJzaXZlbHkoKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IG91dGxpbmVUaXRsZS50cmVlRWxlbWVudC5jb2xsYXBzZSgpOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0MTk0
OT4gV2ViIEluc3BlY3RvcjogUmlnaHQvTGVmdCBhcnJvdyBubyBsb25nZXIgd29ya3MgaW4gY29u
c29sZSB0byBleHBhbmQvY29sbGFwc2UgT2JqZWN0VHJlZXMKLSAgICAgICAgICAgICAgICB2YXIg
b3V0bGluZVNlY3Rpb24gPSBjdXJyZW50TWVzc2FnZS5xdWVyeVNlbGVjdG9yKCIuY29uc29sZS1m
b3JtYXR0ZWQtb2JqZWN0ID4gLnNlY3Rpb24iKTsKLSAgICAgICAgICAgICAgICBpZiAob3V0bGlu
ZVNlY3Rpb24pCi0gICAgICAgICAgICAgICAgICAgIG91dGxpbmVTZWN0aW9uLl9zZWN0aW9uLmNv
bGxhcHNlKCk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBGSVhNRTogV2ViIEluc3Bl
Y3RvcjogUmlnaHQvTGVmdCBhcnJvdyBubyBsb25nZXIgd29ya3MgaW4gY29uc29sZSB0byBleHBh
bmQvY29sbGFwc2UgQ29uc29sZU1lc3NhZ2VzCisgICAgICAgICAgICAvLyBGSVhNRTogPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE0MTk0OT4gV2ViIEluc3BlY3RvcjogUmlnaHQvTGVmdCBhcnJvdyBu
byBsb25nZXIgd29ya3MgaW4gY29uc29sZSB0byBleHBhbmQvY29sbGFwc2UgT2JqZWN0VHJlZXMK
ICAgICAgICAgfQogICAgIH0sCiAKQEAgLTgyMiw0NiArODE1LDExIEBAIFdlYkluc3BlY3Rvci5M
b2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChjdXJyZW50TWVzc2FnZS5j
bGFzc0xpc3QuY29udGFpbnMoImNvbnNvbGUtZ3JvdXAtdGl0bGUiKSkKICAgICAgICAgICAgIGN1
cnJlbnRNZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NMaXN0LnJlbW92ZSgiY29sbGFwc2VkIik7CiAg
ICAgICAgIGVsc2UgewotICAgICAgICAgICAgdmFyIG91dGxpbmVUaXRsZSA9IGN1cnJlbnRNZXNz
YWdlLnF1ZXJ5U2VsZWN0b3IoIm9sLm91dGxpbmUtZGlzY2xvc3VyZSA+IGxpLnBhcmVudCIpOwot
ICAgICAgICAgICAgaWYgKG91dGxpbmVUaXRsZSkgewotICAgICAgICAgICAgICAgIG91dGxpbmVU
aXRsZS50cmVlRWxlbWVudC5vbmV4cGFuZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXMuX2Vuc3VyZU1lc3NhZ2VJc1Zpc2libGUoY3VycmVudE1lc3NhZ2UpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fY2xlYXJGb2N1c2FibGVDaGlsZHJlbigpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgZGVsZXRlIG91dGxpbmVUaXRsZS50cmVlRWxlbWVudC5vbmV4cGFuZDsKLSAg
ICAgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgICAgICAgICAgICB9LmJpbmQo
dGhpcyk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoZXZlbnQuYWx0S2V5KQotICAgICAgICAgICAg
ICAgICAgICBvdXRsaW5lVGl0bGUudHJlZUVsZW1lbnQuZXhwYW5kUmVjdXJzaXZlbHkoKTsKLSAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG91dGxpbmVUaXRsZS50cmVl
RWxlbWVudC5leHBhbmQoKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
Ly8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDE5NDk+IFdlYiBJbnNwZWN0b3I6IFJp
Z2h0L0xlZnQgYXJyb3cgbm8gbG9uZ2VyIHdvcmtzIGluIGNvbnNvbGUgdG8gZXhwYW5kL2NvbGxh
cHNlIE9iamVjdFRyZWVzCi0gICAgICAgICAgICAgICAgdmFyIG91dGxpbmVTZWN0aW9uID0gY3Vy
cmVudE1lc3NhZ2UucXVlcnlTZWxlY3RvcigiLmNvbnNvbGUtZm9ybWF0dGVkLW9iamVjdCA+IC5z
ZWN0aW9uIik7Ci0gICAgICAgICAgICAgICAgaWYgKG91dGxpbmVTZWN0aW9uKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIG91dGxpbmVTZWN0aW9uLl9zZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlNlY3Rpb24uRXZlbnQuVmlzaWJsZUNvbnRlbnREaWRDaGFuZ2UsIHRoaXMuX3By
b3BlcnRpZXNTZWN0aW9uRGlkVXBkYXRlQ29udGVudCwgdGhpcyk7Ci0gICAgICAgICAgICAgICAg
ICAgIG91dGxpbmVTZWN0aW9uLl9zZWN0aW9uLmV4cGFuZCgpOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIEZJWE1FOiBXZWIgSW5zcGVjdG9yOiBSaWdo
dC9MZWZ0IGFycm93IG5vIGxvbmdlciB3b3JrcyBpbiBjb25zb2xlIHRvIGV4cGFuZC9jb2xsYXBz
ZSBDb25zb2xlTWVzc2FnZXMKKyAgICAgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTQxOTQ5PiBXZWIgSW5zcGVjdG9yOiBSaWdodC9MZWZ0IGFycm93IG5vIGxvbmdlciB3
b3JrcyBpbiBjb25zb2xlIHRvIGV4cGFuZC9jb2xsYXBzZSBPYmplY3RUcmVlcwogICAgICAgICB9
CiAgICAgfSwKIAotICAgIF9wcm9wZXJ0aWVzU2VjdGlvbkRpZFVwZGF0ZUNvbnRlbnQ6IGZ1bmN0
aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgdmFyIHNlY3Rpb24gPSBldmVudC50YXJnZXQ7Ci0g
ICAgICAgIHNlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU2VjdGlvbi5F
dmVudC5WaXNpYmxlQ29udGVudERpZENoYW5nZSwgdGhpcy5fcHJvcGVydGllc1NlY3Rpb25EaWRV
cGRhdGVDb250ZW50LCB0aGlzKTsKLQotICAgICAgICB2YXIgbWVzc2FnZSA9IHNlY3Rpb24uZWxl
bWVudC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50
Vmlldy5JdGVtV3JhcHBlclN0eWxlQ2xhc3NOYW1lKTsKLSAgICAgICAgaWYgKCF0aGlzLl9pc01l
c3NhZ2VTZWxlY3RlZChtZXNzYWdlKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHRoaXMuX2Vuc3VyZU1lc3NhZ2VJ
c1Zpc2libGUobWVzc2FnZSk7Ci0gICAgICAgICAgICB0aGlzLl9jbGVhckZvY3VzYWJsZUNoaWxk
cmVuKCk7Ci0gICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfSwKLQogICAgIF9wcmV2aW91c01l
c3NhZ2U6IGZ1bmN0aW9uKG1lc3NhZ2UpCiAgICAgewogICAgICAgICB2YXIgbWVzc2FnZXMgPSB0
aGlzLl92aXNpYmxlTWVzc2FnZUVsZW1lbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9PYmplY3RQcmV2aWV3Vmlldy5jc3MgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9PYmplY3RQcmV2aWV3Vmlldy5j
c3MKaW5kZXggN2ZkZGRlOC4uNjFkN2QxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT2JqZWN0UHJldmlld1ZpZXcuY3NzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL09iamVjdFByZXZpZXdWaWV3LmNz
cwpAQCAtNDEsNSArNDEsNSBAQAogCiAub2JqZWN0LXByZXZpZXcgPiAuc2l6ZSB7CiAgICAgZm9u
dC1zdHlsZTogbm9ybWFsOwotICAgIGNvbG9yOiBoc2woMCwgMCUsIDY3JSk7CisgICAgY29sb3I6
IHJnYmEoMCwgMCwgMCwgMC41KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL09iamVjdFRyZWVBcnJheUluZGV4VHJlZUVsZW1lbnQuY3Nz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT2JqZWN0VHJlZUFy
cmF5SW5kZXhUcmVlRWxlbWVudC5jc3MKaW5kZXggY2E0NDg2Yy4uYmQ0MDhlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT2JqZWN0VHJlZUFy
cmF5SW5kZXhUcmVlRWxlbWVudC5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvT2JqZWN0VHJlZUFycmF5SW5kZXhUcmVlRWxlbWVudC5jc3MKQEAgLTUw
LDExICs1MCw2IEBACiAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogfQogCi0vKiBGSVhNRTogU2hv
dWxkIHRoaXMgYmUgYWxsIHRoZSB0aW1lPyAqLwotLm9iamVjdC10cmVlLWFycmF5LWluZGV4IC5p
bmRleC12YWx1ZSAub2JqZWN0LXRyZWUgewotICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLX0K
LQogLyogQW4gYXJyYXkgaW5zaWRlIGFuIGFycmF5IHdlIHNob3VsZCByZWR1Y2UgdGhlIHBhZGRp
bmctc3RhcnQuICovCiAub2JqZWN0LXRyZWUtYXJyYXktaW5kZXggLmluZGV4LXZhbHVlIC5vYmpl
Y3QtdHJlZSAub2JqZWN0LXRyZWUtb3V0bGluZSB7CiAgICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0
OiA2cHg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9PYmplY3RUcmVlVmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9PYmplY3RUcmVlVmlldy5jc3MKaW5kZXggYmI2N2NhNi4uYTZjNTBjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT2JqZWN0
VHJlZVZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL09iamVjdFRyZWVWaWV3LmNzcwpAQCAtMjYsNiArMjYsOCBAQAogLm9iamVjdC10cmVlIHsK
ICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisK
ICAgICBjb2xvcjogYmxhY2s7CiAgICAgZm9udC1mYW1pbHk6IE1lbmxvLCBtb25vc3BhY2U7CiAg
ICAgZm9udC1zaXplOiAxMXB4Owo=
</data>
<flag name="review"
          id="275331"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>