<?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>70417</bug_id>
          
          <creation_ts>2011-10-19 07:14:54 -0700</creation_ts>
          <short_desc>Web Inspector: get rid of manual view hierarchy management.</short_desc>
          <delta_ts>2011-10-20 04:23:10 -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 (Deprecated)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>486763</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-19 07:14:54 -0700</bug_when>
    <thetext>This change removes necessity to manage view hierarchy manually (add/removeChildView methods are going away).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486798</commentid>
    <comment_count>1</comment_count>
      <attachid>111622</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-19 08:02:47 -0700</bug_when>
    <thetext>Created attachment 111622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486806</commentid>
    <comment_count>2</comment_count>
      <attachid>111622</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-19 08:21:49 -0700</bug_when>
    <thetext>Comment on attachment 111622
Patch

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

&gt; Source/WebCore/inspector/front-end/NetworkPanel.js:-43
&gt; -    // FIXME: some of the styles should be loaded on demand by components that need them.
&gt; -    var styles = [
&gt; -        &quot;inspectorCommon.css&quot;,
&gt; -        &quot;dataGrid.css&quot;,
&gt; -        &quot;networkLogView.css&quot;
&gt; -    ];
&gt; -    WebInspector.IFrameView.call(this, parentElement, styles);

This will probably regress performance. At least, this is worth reflecting in the ChangeLog.

&gt; Source/WebCore/inspector/front-end/Panel.js:88
&gt; +    detach: function()

how are extensions tests doing with this?

&gt; Source/WebCore/inspector/front-end/View.js:139
&gt; +        if (childIndex &lt; 0) {
&gt; +            console.error(&quot;Attempt to remove non-child view&quot;);

When are we supposed to hit the check?

&gt; Source/WebCore/inspector/front-end/View.js:185
&gt; +        while (parentElement &amp;&amp; !parentElement.__view__)

Just __view seems more consistent with the rest of our code. __foo__ seems to be customary used for JS quirks.

&gt; Source/WebCore/inspector/front-end/View.js:198
&gt; +    printViewHierarchy: function()

Is this still necessary?

&gt; Source/WebCore/inspector/front-end/View.js:205
&gt; +    _collectViewHierarchy: function(prefix, lines)

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486814</commentid>
    <comment_count>3</comment_count>
      <attachid>111622</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-19 08:29:01 -0700</bug_when>
    <thetext>Comment on attachment 111622
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/NetworkPanel.js:-43
&gt;&gt; -    WebInspector.IFrameView.call(this, parentElement, styles);
&gt; 
&gt; This will probably regress performance. At least, this is worth reflecting in the ChangeLog.

Done.

&gt;&gt; Source/WebCore/inspector/front-end/Panel.js:88
&gt;&gt; +    detach: function()
&gt; 
&gt; how are extensions tests doing with this?

Rolled it back for now.

&gt;&gt; Source/WebCore/inspector/front-end/View.js:139
&gt;&gt; +            console.error(&quot;Attempt to remove non-child view&quot;);
&gt; 
&gt; When are we supposed to hit the check?

We are not supposed to. I&apos;ll remove it after a number of builds.

&gt;&gt; Source/WebCore/inspector/front-end/View.js:185
&gt;&gt; +        while (parentElement &amp;&amp; !parentElement.__view__)
&gt; 
&gt; Just __view seems more consistent with the rest of our code. __foo__ seems to be customary used for JS quirks.

done.

&gt;&gt; Source/WebCore/inspector/front-end/View.js:198
&gt;&gt; +    printViewHierarchy: function()
&gt; 
&gt; Is this still necessary?

Yes, I&apos;d like to keep this debugging code at least for some time.

&gt;&gt; Source/WebCore/inspector/front-end/View.js:205
&gt;&gt; +    _collectViewHierarchy: function(prefix, lines)
&gt; 
&gt; ditto.

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486816</commentid>
    <comment_count>4</comment_count>
      <attachid>111626</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-19 08:32:36 -0700</bug_when>
    <thetext>Created attachment 111626
[Patch] Review comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486825</commentid>
    <comment_count>5</comment_count>
      <attachid>111627</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-19 08:39:43 -0700</bug_when>
    <thetext>Created attachment 111627
[Patch] Review comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486826</commentid>
    <comment_count>6</comment_count>
      <attachid>111627</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-19 08:45:54 -0700</bug_when>
    <thetext>Comment on attachment 111627
[Patch] Review comments addressed

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486848</commentid>
    <comment_count>7</comment_count>
      <attachid>111636</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-19 09:38:03 -0700</bug_when>
    <thetext>Created attachment 111636
[Patch] with new iframe support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486849</commentid>
    <comment_count>8</comment_count>
      <attachid>111627</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-19 09:40:35 -0700</bug_when>
    <thetext>Comment on attachment 111627
[Patch] Review comments addressed

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

&gt; Source/WebCore/inspector/front-end/View.js:76
&gt; +        if (parentElement &amp;&amp; this.element.parentElement != parentElement)

!= -&gt; !==</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486864</commentid>
    <comment_count>9</comment_count>
      <attachid>111636</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-19 10:00:08 -0700</bug_when>
    <thetext>Comment on attachment 111636
[Patch] with new iframe support

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

&gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:209
&gt; +                if (&quot;dispose&quot; in view)

This can be implemented as detach override in corresponding view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487476</commentid>
    <comment_count>10</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-20 04:23:10 -0700</bug_when>
    <thetext>Committed r97961: &lt;http://trac.webkit.org/changeset/97961&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111622</attachid>
            <date>2011-10-19 08:02:47 -0700</date>
            <delta_ts>2011-10-19 08:32:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70417-20111019190244.patch</filename>
            <type>text/plain</type>
            <size>34214</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc4NDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNzRiMWI1NDY2NThkNDRi
YjdmNzU1YWIwZTU2NTY4YTI5YTE4MGNjLi44ZTlkNDYyMTZiODA1MTA3YjgyOGI0NTk4ZTVhZGI5
NTMzOTRkNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMTEtMTAtMTkgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGdldCByaWQgb2YgbWFudWFsIHZpZXcgaGllcmFyY2h5IG1hbmFnZW1lbnQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQxNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9BdWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbC5wcm90
b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBl
Ll9jbGVhckJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5
cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlwZS5o
aWRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RHcmlk
Tm9kZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVj
dE5vZGUucHJvdG90eXBlLnF1ZXJ5T2JqZWN0Q29udGVudC5lbHNlLmZvcm1hdFJlc3VsdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5vZGUucHJvdG90
eXBlLnF1ZXJ5T2JqZWN0Q29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZXRhaWxlZEhlYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZXRhaWxlZEhl
YXBzaG90Vmlldy5wcm90b3R5cGUuc2hvdy5wcm9maWxlQ2FsbGJhY2syKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5wcm90b3R5cGUuc2hvdyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJvdG90eXBlLl9jaGFuZ2VWaWV3
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanM6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya0xvZ1ZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dW
aWV3LnByb3RvdHlwZS5faW5pdGlhbGl6ZVZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5l
dHdvcmtQYW5lbC5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29y
a1BhbmVsLnByb3RvdHlwZS5fc2hvd1Jlc291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
ZXR3b3JrUGFuZWwucHJvdG90eXBlLl9jbG9zZVZpc2libGVSZXNvdXJjZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5l
bC5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LmRldGFjaCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9yZXNldCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuY2xvc2VWaXNp
YmxlVmlldyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanM6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVByZXZpZXdWaWV3LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlUHJldmlld1ZpZXcucHJvdG90eXBlLmNvbnRl
bnRMb2FkZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VSZXNwb25z
ZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VSZXNwb25zZVZpZXcucHJv
dG90eXBlLmNvbnRlbnRMb2FkZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VUaW1pbmdWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5n
Vmlldy5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90
b3R5cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3Rv
dHlwZS5faW5uZXJTaG93Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJj
ZVRyZWVFbGVtZW50LnByb3RvdHlwZS5fcmVjcmVhdGVTb3VyY2VWaWV3KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl91aVNvdXJjZUNvZGVSZW1vdmVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jcmVhdGVTb3VyY2VGcmFtZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fcmVtb3ZlU291
cmNlRnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1RhYmJlZFBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUuYXBwZW5kVGFiKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZS5faGlkZVRhYik6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmF0dGFjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUuZGV0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS5fYWRkQ2hpbGRWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlw
ZS5fcmVtb3ZlQ2hpbGRWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlw
ZS5kaXNwYXRjaFRvVmlzaWJsZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZS5faGFuZGxlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlZpZXcucHJvdG90eXBlLl9oYW5kbGVSZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5wcmludFZpZXdIaWVyYXJjaHkpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9jb2xsZWN0Vmlld0hpZXJhcmNoeSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKwogMjAxMS0xMC0xOSAgVG9tYXN6
IE1vcmF3c2tpICA8dC5tb3Jhd3NraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJd
IEFkZGVkIG1pc3NpbmcgZmlsZXMgdG8gYnVpbGQgV2ViS2l0MiBFRkwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCmluZGV4IGNjMTQyZjBi
Yzc2ZWY2YTM0NjJiOTVmM2Q3ZTJlNWFjMThhZWZkMzIuLmUxOTFiNzY0YjIyMTU1Njk0MTJjYTE5
Yzc1OGJmMmJkYzY5ZWI1ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQXVkaXRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9BdWRpdHNQYW5lbC5qcwpAQCAtMjQ0LDkgKzI0NCw5IEBAIFdlYkluc3BlY3Rvci5B
dWRpdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB4LnNob3codGhpcy52aWV3c0Nv
bnRhaW5lckVsZW1lbnQpOwogICAgIH0sCiAKLSAgICBhdHRhY2g6IGZ1bmN0aW9uKCkKKyAgICBz
aG93OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90
eXBlLmF0dGFjaC5jYWxsKHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90
eXBlLnNob3cuY2FsbCh0aGlzKTsKIAogICAgICAgICB0aGlzLmF1ZGl0c0l0ZW1UcmVlRWxlbWVu
dC5zZWxlY3QoKTsKICAgICB9LApAQCAtMjU4LDYgKzI1OCwxMyBAQCBXZWJJbnNwZWN0b3IuQXVk
aXRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2NsZWFyQnV0dG9uQ2xpY2tlZDogZnVuY3Rp
b24oKQogICAgIHsKKyAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5hdWRpdFJlc3VsdHNUcmVl
RWxlbWVudC5jaGlsZHJlbjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5s
ZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGNoaWxkID0gY2hpbGRyZW5baV07CisgICAg
ICAgICAgICB2YXIgdmlldyA9IGNoaWxkLnJlc3VsdHMuX3Jlc3VsdFZpZXc7CisgICAgICAgICAg
ICB2aWV3LmRldGFjaCgpOworICAgICAgICB9CisKICAgICAgICAgdGhpcy5hdWRpdHNJdGVtVHJl
ZUVsZW1lbnQucmV2ZWFsQW5kU2VsZWN0KCk7CiAgICAgICAgIHRoaXMuYXVkaXRSZXN1bHRzVHJl
ZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCmluZGV4IDExMDYxNTAxNjA1MGI2
M2QwM2RiMjU2YTYxNTM3MWIwOTY4YWRjMjYuLjlkMDM2MmI0MGVhZTVlMmRiNTE0ZDE5ZjE3Yjkz
MGFiNzAyNDgwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ29uc29sZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ29uc29sZVBhbmVsLmpzCkBAIC01NiwxNSArNTYsMTMgQEAgV2ViSW5zcGVjdG9yLkNvbnNv
bGVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9kcmF3ZXJXYXNWaXNpYmxl
ID0gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LnNob3cuY2FsbCh0aGlzKTsKLQotICAgICAgICB0aGlzLmFkZENoaWxkVmlldyh0aGlzLl92aWV3
KTsKLSAgICAgICAgdGhpcy5fdmlldy5zaG93KCk7CisgICAgICAgIHRoaXMuX3ZpZXcuc2hvdyh0
aGlzLmVsZW1lbnQpOwogICAgIH0sCiAKICAgICBoaWRlOiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmhpZGUuY2FsbCh0aGlzKTsKLSAgICAg
ICAgdGhpcy5yZW1vdmVDaGlsZFZpZXcodGhpcy5fdmlldyk7CisgICAgICAgIHRoaXMuX3ZpZXcu
ZGV0YWNoKCk7CiAgICAgICAgIGlmICh0aGlzLl9kcmF3ZXJXYXNWaXNpYmxlKSB7CiAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZHJhd2VyLnNob3codGhpcy5fdmlldywgV2ViSW5zcGVjdG9yLkRy
YXdlci5BbmltYXRpb25UeXBlLkltbWVkaWF0ZWx5KTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9kcmF3ZXJXYXNWaXNpYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90R3JpZE5vZGVzLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90R3JpZE5vZGVzLmpzCmluZGV4IDI3
OWFiNjEyMzY5ZDYwYzFiZjUzYTc2OGIxZjUzYzVkMjdmNmE3N2EuLmJhOTdkMTkzYWUzNzA5MTcy
MzAyY2FhMjAxZmE3ZDA1NzMwNTc2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdEdyaWROb2Rlcy5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RHcmlkTm9kZXMuanMK
QEAgLTI3OCw3ICsyNzgsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVj
dE5vZGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGlmICghZXJyb3IgJiYgb2JqZWN0
LnR5cGUpCiAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3QuZnJvbVBheWxvYWQob2JqZWN0KSwgISFlcnJvcik7CiAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
LmZyb21FcnJvcihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vdCBhdmFpbGFibGUiKSkpOworICAg
ICAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21Q
cmltaXRpdmVWYWx1ZShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vdCBhdmFpbGFibGUiKSkpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBP
YmplY3RJZCh0aGlzLnNuYXBzaG90Tm9kZUlkLCBmb3JtYXRSZXN1bHQpOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVh
cHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxl
ZEhlYXBzaG90Vmlldy5qcwppbmRleCA2ODY3MzBjNjQ5ZDIzMDJhZTQ4ZDYwNzJhZmM2N2MxNWI4
YmQ5Mzc1Li42ZmMxNjE5N2U1NGZkZGEyMWViZjJhYzE4OGZkOTE2MGQ0OWZkMjMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RW
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRI
ZWFwc2hvdFZpZXcuanMKQEAgLTY5Nyw3ICs2OTcsNyBAQCBXZWJJbnNwZWN0b3IuRGV0YWlsZWRI
ZWFwc2hvdFZpZXcucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24g
cHJvZmlsZUNhbGxiYWNrMigpIHsKLSAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXcuc2hvdygp
OworICAgICAgICAgICAgdGhpcy5jdXJyZW50Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAg
ICAgICAgICB0aGlzLmRhdGFHcmlkLnVwZGF0ZVdpZHRocygpOwogICAgICAgICB9CiAgICAgfSwK
QEAgLTEwMDAsNyArMTAwMCw3IEBAIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB2aWV3ID0gdGhpcy52aWV3c1t0aGlzLnZpZXdzLmN1
cnJlbnRdOwogICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gdmlldy52aWV3OwogICAgICAgICB0
aGlzLmRhdGFHcmlkID0gdmlldy5ncmlkOwotICAgICAgICB0aGlzLmN1cnJlbnRWaWV3LnNob3co
KTsKKyAgICAgICAgdGhpcy5jdXJyZW50Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAg
IHRoaXMucmVmcmVzaFZpc2libGVEYXRhKCk7CiAgICAgICAgIHRoaXMuZGF0YUdyaWQudXBkYXRl
V2lkdGhzKCk7CiAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRWaWV3ID09PSB0aGlzLmRpZmZWaWV3
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFt
ZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcu
anMKaW5kZXggOGRiZDU4MWM4ODI3Y2ExZjQ1MGRjNGU0MjY0NjAzNzY0MDE0YTdiYy4uOGQwZjdk
ZjM3MzE1OWU2MzcxYWNkYzMwMzRjMjA4NzgwYmUxNjExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JRnJhbWVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSUZyYW1lVmlldy5qcwpAQCAtNDEsMTcgKzQxLDYgQEAg
V2ViSW5zcGVjdG9yLklGcmFtZVZpZXcgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50LCBzdHlsZXNo
ZWV0cykKIH0KIAogV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcucHJvdG90eXBlID0gewotICAgIF9p
bm5lclNob3c6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2lmcmFtZUVsZW1lbnQu
YWRkU3R5bGVDbGFzcygidmlzaWJsZSIpOwotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90
b3R5cGUuX2lubmVyU2hvdy5jYWxsKHRoaXMpOwotICAgIH0sCi0KLSAgICBfaW5uZXJIaWRlOiBm
dW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl9pZnJhbWVFbGVtZW50LnJlbW92ZVN0eWxl
Q2xhc3MoInZpc2libGUiKTsKLSAgICB9LAotCiAgICAgYXR0YWNoOiBmdW5jdGlvbihwYXJlbnQp
CiAgICAgewogICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZVZpZXcpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCmluZGV4IDFiZDRj
YzM1NWVmM2YxNTcxMDY3OGJkYzc2NmMxY2Q3NTVlNTM5NzQuLjFkNDY5ODkwMWJiMmI5M2ExN2Y4
OTgwNmFkNjliMjliODNmYmQwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCkBAIC0zMCwxNyArMzAsMTEgQEAKIAogLyoqCiAg
KiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuSUZyYW1lVmlld30KKyAq
IEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVmlld30KICAqLwogV2ViSW5zcGVjdG9yLk5ldHdvcmtM
b2dWaWV3ID0gZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKIHsKLSAgICAvLyBGSVhNRTogc29tZSBv
ZiB0aGUgc3R5bGVzIHNob3VsZCBiZSBsb2FkZWQgb24gZGVtYW5kIGJ5IGNvbXBvbmVudHMgdGhh
dCBuZWVkIHRoZW0uCi0gICAgdmFyIHN0eWxlcyA9IFsKLSAgICAgICAgImluc3BlY3RvckNvbW1v
bi5jc3MiLAotICAgICAgICAiZGF0YUdyaWQuY3NzIiwKLSAgICAgICAgIm5ldHdvcmtMb2dWaWV3
LmNzcyIKLSAgICBdOwotICAgIFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3LmNhbGwodGhpcywgcGFy
ZW50RWxlbWVudCwgc3R5bGVzKTsKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOwog
CiAgICAgdGhpcy5fYWxsb3dSZXNvdXJjZVNlbGVjdGlvbiA9IGZhbHNlOwogICAgIHRoaXMuX3Jl
c291cmNlcyA9IFtdOwpAQCAtNjksMTAgKzYzLDEyIEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9n
VmlldyA9IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCiAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNl
VHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVs
LkV2ZW50VHlwZXMuRnJhbWVOYXZpZ2F0ZWQsIHRoaXMuX2ZyYW1lTmF2aWdhdGVkLCB0aGlzKTsK
ICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5PbkxvYWQsIHRoaXMuX29uTG9h
ZEV2ZW50RmlyZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVz
LkRPTUNvbnRlbnRMb2FkZWQsIHRoaXMuX2RvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkLCB0aGlz
KTsKKworICAgIHRoaXMuX2luaXRpYWxpemVWaWV3KCk7CiB9CiAKIFdlYkluc3BlY3Rvci5OZXR3
b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7Ci0gICAgaW5pdGlhbGl6ZVZpZXc6IGZ1bmN0aW9uKCkK
KyAgICBfaW5pdGlhbGl6ZVZpZXc6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuZWxl
bWVudC5pZCA9ICJuZXR3b3JrLWNvbnRhaW5lciI7CiAKQEAgLTEyMDUsNyArMTIwMSw3IEBAIFdl
Ykluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAgICAgfQogfTsKIAotV2Vi
SW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0
b3IuSUZyYW1lVmlldy5wcm90b3R5cGU7CitXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJv
dG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZTsKIAogV2ViSW5z
cGVjdG9yLk5ldHdvcmtMb2dWaWV3LkV2ZW50VHlwZXMgPSB7CiAgICAgVmlld0NsZWFyZWQ6ICJW
aWV3Q2xlYXJlZCIsCkBAIC0xMjI0LDggKzEyMjAsNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1Bh
bmVsID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsICJuZXR3
b3JrIik7CiAKICAgICB0aGlzLmNyZWF0ZVNpZGViYXIoKTsKLSAgICB0aGlzLl9uZXR3b3JrTG9n
VmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcodGhpcy5zaWRlYmFyRWxlbWVu
dCk7Ci0gICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fbmV0d29ya0xvZ1ZpZXcpOworICAgIHRo
aXMuX25ldHdvcmtMb2dWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldygpOwog
CiAgICAgdGhpcy5fdmlld3NDb250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CiAgICAgdGhpcy5fdmlld3NDb250YWluZXJFbGVtZW50LmlkID0gIm5ldHdvcmst
dmlld3MiOwpAQCAtMTMwNSw3ICsxMzAwLDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgc2hvdzogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgV2ViSW5z
cGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7Ci0gICAgICAgIHRoaXMuX25l
dHdvcmtMb2dWaWV3LnNob3coKTsKKyAgICAgICAgdGhpcy5fbmV0d29ya0xvZ1ZpZXcuc2hvdyh0
aGlzLnNpZGViYXJFbGVtZW50KTsKICAgICB9LAogCiAgICAgZ2V0IHJlc291cmNlcygpCkBAIC0x
Mzg2LDEyICsxMzgxLDExIEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICB0aGlzLl90b2dnbGVWaWV3aW5nUmVzb3VyY2VNb2RlKCk7CiAKICAgICAgICAg
aWYgKHRoaXMudmlzaWJsZVZpZXcpIHsKLSAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRWaWV3
KHRoaXMudmlzaWJsZVZpZXcpOworICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5kZXRhY2go
KTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnZpc2libGVWaWV3OwogICAgICAgICB9CiAKICAg
ICAgICAgdmFyIHZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtJdGVtVmlldyhyZXNvdXJj
ZSk7Ci0gICAgICAgIHRoaXMuYWRkQ2hpbGRWaWV3KHZpZXcpOwogICAgICAgICB2aWV3LnNob3co
dGhpcy5fdmlld3NDb250YWluZXJFbGVtZW50KTsKICAgICAgICAgdGhpcy52aXNpYmxlVmlldyA9
IHZpZXc7CiAKQEAgLTE0MDMsNyArMTM5Nyw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygidmll
d2luZy1yZXNvdXJjZSIpOwogCiAgICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3KSB7Ci0gICAg
ICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyh0aGlzLnZpc2libGVWaWV3KTsKKyAgICAgICAg
ICAgIHRoaXMudmlzaWJsZVZpZXcuZGV0YWNoKCk7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy52
aXNpYmxlVmlldzsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9QYW5lbC5qcwppbmRleCAwYzdiMzI0OTRkNzRjMDJkYjAwNGE2ZmIxZWQ2YTc0YzU4OTc3
ZTdhLi4zNTdlMmYwMjg1OTY4ZDNiMTEyMjE5MzI4MTFiMTc5NDkyZTZmNGFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKQEAgLTYzLDcgKzYzLDEwIEBA
IFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBzaG93OiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRo
aXMpOworICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5QYW5lbC5fbWFpblBhbmVsc0VsZW1lbnQp
CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwuX21haW5QYW5lbHNFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tcGFuZWxzIik7CisgICAgCisgICAgICAgIFdlYklu
c3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLlBhbmVs
Ll9tYWluUGFuZWxzRWxlbWVudCk7CiAKICAgICAgICAgdmFyIHN0YXR1c0Jhckl0ZW1zID0gdGhp
cy5zdGF0dXNCYXJJdGVtczsKICAgICAgICAgaWYgKHN0YXR1c0Jhckl0ZW1zKSB7CkBAIC04Miw5
ICs4NSw5IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIFdlYklu
c3BlY3Rvci5leHRlbnNpb25TZXJ2ZXIubm90aWZ5UGFuZWxTaG93bih0aGlzLm5hbWUpOwogICAg
IH0sCiAKLSAgICBoaWRlOiBmdW5jdGlvbigpCisgICAgZGV0YWNoOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwor
ICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuZGV0YWNoLmNhbGwodGhpcyk7CiAK
ICAgICAgICAgaWYgKHRoaXMuX3N0YXR1c0Jhckl0ZW1Db250YWluZXIgJiYgdGhpcy5fc3RhdHVz
QmFySXRlbUNvbnRhaW5lci5wYXJlbnROb2RlKQogICAgICAgICAgICAgdGhpcy5fc3RhdHVzQmFy
SXRlbUNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX3N0YXR1c0Jhckl0ZW1D
b250YWluZXIpOwpAQCAtMTA0LDEyICsxMDcsNiBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5zaWRlYmFyVHJlZUVsZW1lbnQgfHwgdGhpcy5l
bGVtZW50OwogICAgIH0sCiAKLSAgICBhdHRhY2g6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAg
IGlmICghdGhpcy5lbGVtZW50LnBhcmVudE5vZGUpCi0gICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibWFpbi1wYW5lbHMiKS5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQpOwotICAg
IH0sCi0KICAgICBzZWFyY2hDYW5jZWxlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgV2Vi
SW5zcGVjdG9yLnNlYXJjaENvbnRyb2xsZXIudXBkYXRlU2VhcmNoTWF0Y2hlc0NvdW50KDAsIHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9m
aWxlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxl
c1BhbmVsLmpzCmluZGV4IDJhMWFiNzQ2MWZlYzBjMGE4YmUwMDg5NmRlZmY0OWI3NjgwYTZmNGQu
LmVhMTQxY2Q2ZTFmZjYyMjIwNWFhNmY2MDM5YmFmZTRlNGI2MTc2ZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTIw
NCw4ICsyMDQsMTIgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewog
CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fcHJvZmlsZXMubGVuZ3RoOyArK2kp
IHsKICAgICAgICAgICAgIHZhciB2aWV3ID0gdGhpcy5fcHJvZmlsZXNbaV0uX3Byb2ZpbGVWaWV3
OwotICAgICAgICAgICAgaWYgKHZpZXcgJiYgKCJkaXNwb3NlIiBpbiB2aWV3KSkKLSAgICAgICAg
ICAgICAgICB2aWV3LmRpc3Bvc2UoKTsKKyAgICAgICAgICAgIGlmICh2aWV3KSB7CisgICAgICAg
ICAgICAgICAgdmlldy5kZXRhY2goKTsKKyAgICAgICAgICAgICAgICBpZiAoImRpc3Bvc2UiIGlu
IHZpZXcpCisgICAgICAgICAgICAgICAgICAgIHZpZXcuZGlzcG9zZSgpOworICAgICAgICAgICAg
fQorCiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fcHJvZmlsZXNbaV0uX3Byb2ZpbGVWaWV3Owog
ICAgICAgICB9CiAgICAgICAgIGRlbGV0ZSB0aGlzLnZpc2libGVWaWV3OwpAQCAtMjMxLDcgKzIz
NSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoKTsKIAogICAgICAgICB0aGlzLl91cGRhdGVJbnRlcmZh
Y2UoKTsKLSAgICAgICAgdGhpcy53ZWxjb21lVmlldy5zaG93KCk7CisgICAgICAgIHRoaXMud2Vs
Y29tZVZpZXcuc2hvdyh0aGlzLmVsZW1lbnQpOwogICAgIH0sCiAKICAgICBfY2xlYXJQcm9maWxl
czogZnVuY3Rpb24oKQpAQCAtNTEzLDcgKzUxNyw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICBjbG9zZVZpc2libGVWaWV3OiBmdW5jdGlvbigpCiAgICAg
ewogICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMudmlzaWJs
ZVZpZXcuaGlkZSgpOworICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5kZXRhY2goKTsKICAg
ICAgICAgZGVsZXRlIHRoaXMudmlzaWJsZVZpZXc7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwppbmRleCBjMGVhMWZi
NDZiZjhlN2YyYjYwYzVkMzUzNzU0MGVjNzMwMGVkMjk0Li5hNTNjMjk1NjgwMmE1Yzk0NWRlMDli
NmEzOTM4N2E1YWY4NjM5OWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwpAQCAtNTQsMTEgKzU0LDYgQEAgV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdElkLCB0eXBlLCBzdWJ0eXBlLCB2YWx1ZSwg
ZGVzY3JpcHRpb24KICAgICB9CiB9CiAKLVdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbUVy
cm9yID0gZnVuY3Rpb24oZXJyb3JEZXNjcmlwdGlvbikKLXsKLSAgICByZXR1cm4gbmV3IFdlYklu
c3BlY3Rvci5SZW1vdGVPYmplY3QobnVsbCwgbnVsbCwgbnVsbCwgZXJyb3JEZXNjcmlwdGlvbik7
Ci19Ci0KIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVByaW1pdGl2ZVZhbHVlID0gZnVu
Y3Rpb24odmFsdWUpCiB7CiAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
KG51bGwsIHR5cGVvZiB2YWx1ZSwgbnVsbCwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVByZXZpZXdWaWV3LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVByZXZpZXdWaWV3LmpzCmluZGV4
IDZiNjJiM2EzMzhkZGZiMjQ5MmI3ZGZmOGQwM2VhNDUwZTIyN2Y4ZTkuLmEwMzQ4MDE5MTFjOWU5
MGVkYmFhMTgyYzE3N2M5OTE3ODAyMzJiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VQcmV2aWV3Vmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlUHJldmlld1ZpZXcuanMKQEAgLTQ0LDE5
ICs0NCwxOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VQcmV2aWV3Vmlldy5wcm90b3R5cGUgPSB7
CiAgICAgICAgIGlmICghdGhpcy5yZXNvdXJjZS5jb250ZW50KSB7CiAgICAgICAgICAgICBpZiAo
IXRoaXMuX2VtcHR5VmlldykgewogICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5VmlldyA9IHRo
aXMuX2NyZWF0ZUVtcHR5VmlldygpOwotICAgICAgICAgICAgICAgIHRoaXMuYWRkQ2hpbGRWaWV3
KHRoaXMuX2VtcHR5Vmlldyk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fZW1wdHlWaWV3LnNob3co
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcuc2hvdyh0aGlzLmVsZW1lbnQpOwog
ICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWaWV3ID0gdGhpcy5fZW1wdHlWaWV3OwogICAgICAg
ICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKHRoaXMuX2VtcHR5Vmll
dykgewotICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRWaWV3KHRoaXMuX2VtcHR5Vmll
dyk7CisgICAgICAgICAgICAgICAgdGhpcy5fZW1wdHlWaWV3LmRldGFjaCgpOwogICAgICAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzLl9lbXB0eVZpZXc7CiAgICAgICAgICAgICB9CisKICAgICAgICAg
ICAgIGlmICghdGhpcy5fcHJldmlld1ZpZXcpCiAgICAgICAgICAgICAgICAgdGhpcy5fcHJldmll
d1ZpZXcgPSB0aGlzLl9jcmVhdGVQcmV2aWV3VmlldygpOwotICAgICAgICAgICAgdGhpcy5hZGRD
aGlsZFZpZXcodGhpcy5fcHJldmlld1ZpZXcpOwotICAgICAgICAgICAgdGhpcy5fcHJldmlld1Zp
ZXcuc2hvdygpOworICAgICAgICAgICAgdGhpcy5fcHJldmlld1ZpZXcuc2hvdyh0aGlzLmVsZW1l
bnQpOwogICAgICAgICAgICAgdGhpcy5pbm5lclZpZXcgPSB0aGlzLl9wcmV2aWV3VmlldzsKICAg
ICAgICAgfQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlUmVzcG9uc2VWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZVJlc3BvbnNlVmlldy5qcwppbmRleCA0OTE0NTdlYTJkMzI0ZDFk
YTkwZGIzNjI2OGVjMjlhZDdiNDlkZWY4Li4yZDBmNTNjZmI5ZmExNWJkMDA5NmJkMTZlZGIwNWUy
NzRhYzA4ZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlUmVzcG9uc2VWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VSZXNwb25zZVZpZXcuanMKQEAgLTUwLDE3ICs1MCwxNiBAQCBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VSZXNwb25zZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICBpZiAo
IXRoaXMucmVzb3VyY2UuY29udGVudCB8fCAhdGhpcy5zb3VyY2VWaWV3KSB7CiAgICAgICAgICAg
ICBpZiAoIXRoaXMuX2VtcHR5VmlldykgewogICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5Vmll
dyA9IG5ldyBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3KFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGhp
cyByZXF1ZXN0IGhhcyBubyByZXNwb25zZSBkYXRhIGF2YWlsYWJsZS4iKSk7Ci0gICAgICAgICAg
ICAgICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fZW1wdHlWaWV3KTsKLSAgICAgICAgICAgICAg
ICB0aGlzLl9lbXB0eVZpZXcuc2hvdygpOworICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5Vmll
dy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgICAgICAgICAgdGhpcy5pbm5lclZpZXcgPSB0
aGlzLl9lbXB0eVZpZXc7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBpZiAodGhpcy5fZW1wdHlWaWV3KSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVD
aGlsZFZpZXcodGhpcy5fZW1wdHlWaWV3KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9lbXB0eVZp
ZXcuZGV0YWNoKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2VtcHR5VmlldzsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuYWRkQ2hpbGRWaWV3KHRoaXMuc291cmNlVmll
dyk7Ci0gICAgICAgICAgICB0aGlzLnNvdXJjZVZpZXcuc2hvdygpOworCisgICAgICAgICAgICB0
aGlzLnNvdXJjZVZpZXcuc2hvdyh0aGlzLmVsZW1lbnQpOwogICAgICAgICAgICAgdGhpcy5pbm5l
clZpZXcgPSB0aGlzLnNvdXJjZVZpZXc7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVGltaW5nVmlldy5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUaW1pbmdWaWV3Lmpz
CmluZGV4IGVjM2ZkMWEzN2MwNmYzYTFmZmEzZDljNTE1NTQ2MDg2NzlhM2JlZDYuLjliOTVjNjlj
MGFhMTMyMDdiM2Y5NDRjZGZkYWY4NjM3ODA2ZDlmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUaW1pbmdWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUaW1pbmdWaWV3LmpzCkBAIC00
OCw4ICs0OCw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWluZ1ZpZXcucHJvdG90eXBlID0g
ewogICAgICAgICBpZiAoIXRoaXMuX3Jlc291cmNlLnRpbWluZykgewogICAgICAgICAgICAgaWYg
KCF0aGlzLl9lbXB0eVZpZXcpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcgPSBu
ZXcgV2ViSW5zcGVjdG9yLkVtcHR5VmlldyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRoaXMgcmVx
dWVzdCBoYXMgbm8gZGV0YWlsZWQgdGltaW5nIGluZm8uIikpOwotICAgICAgICAgICAgICAgIHRo
aXMuYWRkQ2hpbGRWaWV3KHRoaXMuX2VtcHR5Vmlldyk7Ci0gICAgICAgICAgICAgICAgdGhpcy5f
ZW1wdHlWaWV3LnNob3coKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcuc2hvdyh0
aGlzLmVsZW1lbnQpOwogICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWaWV3ID0gdGhpcy5fZW1w
dHlWaWV3OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJv
dG90eXBlLnNob3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKQEAgLTU3LDcgKzU2LDcgQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5nVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAodGhpcy5fZW1wdHlWaWV3KSB7Ci0gICAgICAgICAgICB0aGlzLnJlbW92
ZUNoaWxkVmlldyh0aGlzLl9lbXB0eVZpZXcpOworICAgICAgICAgICAgdGhpcy5fZW1wdHlWaWV3
LmRldGFjaCgpOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2VtcHR5VmlldzsKICAgICAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZXNQYW5lbC5qcwppbmRleCA1ODYwYmZkYzBlY2UzYzA4N2U3MmE2MDA0MjI2MmU5YjVhYWU1Zjlk
Li45NDJkNmVkYzBjNWNhYmE5YWVkODE5NGRiNjg2MDg2YmYwZDBlNGI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKQEAg
LTE3MSwxMCArMTcxLDYgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9
IHsKIAogICAgICAgICBpZiAodGhpcy5zaWRlYmFyVHJlZS5zZWxlY3RlZFRyZWVFbGVtZW50KQog
ICAgICAgICAgICAgdGhpcy5zaWRlYmFyVHJlZS5zZWxlY3RlZFRyZWVFbGVtZW50LmRlc2VsZWN0
KCk7Ci0KLSAgICAgICAgdmFyIGNoaWxkVmlld3MgPSB0aGlzLmNoaWxkVmlld3MoKTsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZFZpZXdzLmxlbmd0aDsgKytpKQotICAgICAgICAg
ICAgdGhpcy5yZW1vdmVDaGlsZFZpZXcoY2hpbGRWaWV3c1tpXSk7CiAgICAgfSwKIAogICAgIF9w
b3B1bGF0ZVJlc291cmNlVHJlZTogZnVuY3Rpb24oKQpAQCAtNTA5LDkgKzUwNSw4IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgX2lubmVyU2hvd1ZpZXc6
IGZ1bmN0aW9uKHZpZXcpCiAgICAgewogICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldykKLSAg
ICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuaGlkZSgpOworICAgICAgICAgICAgdGhpcy52aXNp
YmxlVmlldy5kZXRhY2goKTsKIAotICAgICAgICB0aGlzLmFkZENoaWxkVmlldyh2aWV3KTsKICAg
ICAgICAgdmlldy5zaG93KHRoaXMuc3RvcmFnZVZpZXdzKTsKICAgICAgICAgdGhpcy52aXNpYmxl
VmlldyA9IHZpZXc7CiAKQEAgLTEzNDMsOCArMTMzOCw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJl
c291cmNlVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB2YXIgb2xkVmlld1BhcmVu
dE5vZGUgPSBvbGRWaWV3LnZpc2libGUgPyBvbGRWaWV3LmVsZW1lbnQucGFyZW50Tm9kZSA6IG51
bGw7CiAgICAgICAgIG5ld1ZpZXcuaW5oZXJpdFNjcm9sbFBvc2l0aW9ucyhvbGRWaWV3KTsKIAot
ICAgICAgICB0aGlzLl9zdG9yYWdlUGFuZWwucmVtb3ZlQ2hpbGRWaWV3KHRoaXMuX3NvdXJjZVZp
ZXcpOwotICAgICAgICB0aGlzLl9zdG9yYWdlUGFuZWwuYWRkQ2hpbGRWaWV3KG5ld1ZpZXcpOwor
ICAgICAgICB0aGlzLl9zb3VyY2VWaWV3LmRldGFjaCgpOwogICAgICAgICB0aGlzLl9zb3VyY2VW
aWV3ID0gbmV3VmlldzsKIAogICAgICAgICBpZiAob2xkVmlld1BhcmVudE5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4
IDU0Mjg1NmEwMTdhNzRiZmFiZTg3YWVkNTBkNTMwN2I1ZjBhOTBmMTkuLmM5Y2M1OTQ2Y2JhZjQz
YmVmNDVhODlhYTkwNzA4YzdmODczYmI0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0yNjAsNyArMjYwLDcgQEAgV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIg
dWlTb3VyY2VDb2RlID0gZXZlbnQuZGF0YTsKICAgICAgICAgaWYgKHVpU291cmNlQ29kZS5fc291
cmNlRnJhbWUpCi0gICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyh1aVNvdXJjZUNvZGUu
X3NvdXJjZUZyYW1lKTsKKyAgICAgICAgICAgIHVpU291cmNlQ29kZS5fc291cmNlRnJhbWUuZGV0
YWNoKCk7CiAgICAgfSwKIAogICAgIF9zaG93U2NyaXB0Rm9sZGVyc1NldHRpbmdDaGFuZ2VkOiBm
dW5jdGlvbigpCkBAIC02OTAsNyArNjkwLDYgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBkZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlwdHNQYW5lbCh0aGlzLCB1aVNvdXJjZUNvZGUpOwogICAg
ICAgICB2YXIgc291cmNlRnJhbWUgPSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VG
cmFtZShkZWxlZ2F0ZSwgdWlTb3VyY2VDb2RlKTsKIAotICAgICAgICB0aGlzLmFkZENoaWxkVmll
dyhzb3VyY2VGcmFtZSk7CiAgICAgICAgIHNvdXJjZUZyYW1lLl91aVNvdXJjZUNvZGUgPSB1aVNv
dXJjZUNvZGU7CiAgICAgICAgIHNvdXJjZUZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lLkV2ZW50cy5Mb2FkZWQsIHRoaXMuX3NvdXJjZUZyYW1lTG9hZGVkLCB0
aGlzKTsKICAgICAgICAgdWlTb3VyY2VDb2RlLl9zb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1lOwpA
QCAtNzA3LDcgKzcwNiw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICBpZiAoIXNvdXJjZUZyYW1lKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBkZWxldGUgdWlTb3VyY2VDb2RlLl9zb3VyY2VGcmFtZTsKLSAgICAgICAgdGhpcy5yZW1vdmVD
aGlsZFZpZXcoc291cmNlRnJhbWUpOworICAgICAgICBzb3VyY2VGcmFtZS5kZXRhY2goKTsKICAg
ICAgICAgc291cmNlRnJhbWUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU291cmNl
RnJhbWUuRXZlbnRzLkxvYWRlZCwgdGhpcy5fc291cmNlRnJhbWVMb2FkZWQsIHRoaXMpOwogICAg
IH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZy
YW1lLmpzCmluZGV4IDc5NjA4ZWEzZjI1YzE4NGFhMjIxZTJjNzMyMjVjMWJkNWFiYjA3ZjMuLmY1
NzhmMDU5YjcyZWE2NzY0ZTFjNmY5N2VmYWM5YzZiMDg1MzEwYjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwpAQCAtNDQsNyArNDQs
NiBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUgPSBmdW5jdGlvbihkZWxlZ2F0ZSwgdXJsKQog
CiAgICAgdmFyIHRleHRWaWV3ZXJEZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFZpZXdl
ckRlbGVnYXRlRm9yU291cmNlRnJhbWUodGhpcyk7CiAgICAgdGhpcy5fdGV4dFZpZXdlciA9IG5l
dyBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlcih0aGlzLl90ZXh0TW9kZWwsIFdlYkluc3BlY3Rvci5w
bGF0Zm9ybSwgdGhpcy5fdXJsLCB0ZXh0Vmlld2VyRGVsZWdhdGUpOwotICAgIHRoaXMuYWRkQ2hp
bGRWaWV3KHRoaXMuX3RleHRWaWV3ZXIpOwogICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0
aGlzLl90ZXh0Vmlld2VyLmVsZW1lbnQpOwogCiAgICAgdGhpcy5fZWRpdEJ1dHRvbiA9IG5ldyBX
ZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRWRpdCIp
LCAiZWRpdC1zb3VyY2Utc3RhdHVzLWJhci1pdGVtIik7CkBAIC04OSw3ICs4OCw3IEBAIFdlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBXZWJJbnNw
ZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAg
ICAgICB0aGlzLl9lbnN1cmVDb250ZW50TG9hZGVkKCk7Ci0gICAgICAgIHRoaXMuX3RleHRWaWV3
ZXIuc2hvdygpOworICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLnNob3codGhpcy5lbGVtZW50KTsK
ICAgICB9LAogCiAgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcwppbmRleCBhZjEzNTVjYjYyNzg5MzA2
YjhjNDc5OGRlYjQyOWI2NWI0MmQzYzk2Li41NzkwMzM4OGE0NmM0NWQzNWJlZWI5NzhjNGE3OWRh
YzBjYzRkMTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RhYmJlZFBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
YWJiZWRQYW5lLmpzCkBAIC0zMSwxMSArMzEsMTAgQEAKIC8qKgogICogQGV4dGVuZHMge1dlYklu
c3BlY3Rvci5WaWV3fQogICogQGNvbnN0cnVjdG9yCi0gKiBAcGFyYW0ge0VsZW1lbnQ9fSBlbGVt
ZW50CiAgKi8KLVdlYkluc3BlY3Rvci5UYWJiZWRQYW5lID0gZnVuY3Rpb24oZWxlbWVudCkKK1dl
Ykluc3BlY3Rvci5UYWJiZWRQYW5lID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5W
aWV3LmNhbGwodGhpcywgZWxlbWVudCk7CisgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlz
KTsKICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidGFiYmVkLXBhbmUiKTsKICAgICB0
aGlzLl90YWJzRWxlbWVudCA9IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgInRhYmJl
ZC1wYW5lLWhlYWRlciIpOwogICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50
LmNyZWF0ZUNoaWxkKCJkaXYiLCAidGFiYmVkLXBhbmUtY29udGVudCIpOwpAQCAtNTEsNyArNTAs
NiBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhp
cy5fdGFic0VsZW1lbnQuYXBwZW5kQ2hpbGQodGFiRWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2Nv
bnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHZpZXcuZWxlbWVudCk7Ci0gICAgICAgIHRoaXMuYWRk
Q2hpbGRWaWV3KHZpZXcpOwogCiAgICAgICAgIHRoaXMuX3RhYnNbaWRdID0geyB0YWJFbGVtZW50
OiB0YWJFbGVtZW50LCB2aWV3OiB2aWV3IH07CiAgICAgfSwKQEAgLTg2LDcgKzg0LDcgQEAgV2Vi
SW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlID0gewogICAgIF9oaWRlVGFiOiBmdW5jdGlv
bih0YWIpCiAgICAgewogICAgICAgICB0YWIudGFiRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJz
ZWxlY3RlZCIpOwotICAgICAgICB0YWIudmlldy52aXNpYmxlID0gZmFsc2U7CisgICAgICAgIHRh
Yi52aWV3LmRldGFjaCgpOwogICAgIH0sCiAKICAgICBjYW5IaWdobGlnaHRMaW5lOiBmdW5jdGlv
bigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMKaW5kZXggZDcw
NzQ5ZTQ0ODRkNzczN2EyNmQ3YjM3YmMxNmYzNTNlMDM1ZWNjZC4uNmQyMzg1NWM5MzkzZDEzNWM2
OTlmODczYjA0YjQ5MzExMzhlOWYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9WaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVmlldy5qcwpAQCAtMjcsMTEgKzI3LDEzIEBACiAvKioKICAqIEBjb25zdHJ1Y3Rvcgog
ICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmplY3R9Ci0gKiBAcGFyYW0ge0VsZW1lbnQ9fSBl
bGVtZW50CiAgKi8KLVdlYkluc3BlY3Rvci5WaWV3ID0gZnVuY3Rpb24oZWxlbWVudCkKK1dlYklu
c3BlY3Rvci5WaWV3ID0gZnVuY3Rpb24oKQogewotICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQg
fHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5lbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoIkRPTU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudCIsIHRoaXMuX2hhbmRsZUluc2VydGVk
SW50b0RvY3VtZW50LmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnQiLCB0aGlzLl9oYW5kbGVSZW1v
dmVkRnJvbURvY3VtZW50LmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLmVsZW1lbnQuX192
aWV3X18gPSB0aGlzOwogICAgIHRoaXMuX3Zpc2libGUgPSBmYWxzZTsKICAgICB0aGlzLl9jaGls
ZHJlbiA9IFtdOwogfQpAQCAtNjQsNDQgKzY2LDM0IEBAIFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgdGhpcy5zdG9yZVNjcm9sbFBvc2l0aW9ucygpOwogICAgIH0sCiAK
LSAgICBfaW5uZXJTaG93OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLmVsZW1lbnQu
YWRkU3R5bGVDbGFzcygidmlzaWJsZSIpOwotICAgIH0sCi0KICAgICAvKioKLSAgICAgKiBAcGFy
YW0ge0VsZW1lbnQ9fSBwYXJlbnRFbGVtZW50CisgICAgICogQHBhcmFtIHtFbGVtZW50fSBwYXJl
bnRFbGVtZW50CiAgICAgICovCiAgICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKICAg
ICB7CiAgICAgICAgIHRoaXMuX3Zpc2libGUgPSB0cnVlOwotICAgICAgICBpZiAocGFyZW50RWxl
bWVudCAmJiBwYXJlbnRFbGVtZW50ICE9PSB0aGlzLmVsZW1lbnQucGFyZW50Tm9kZSkgewotICAg
ICAgICAgICAgdGhpcy5fZGV0YWNoKCk7Ci0gICAgICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVu
ZENoaWxkKHRoaXMuZWxlbWVudCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCF0aGlzLmVsZW1l
bnQucGFyZW50Tm9kZSkgewotICAgICAgICAgICAgaWYgKHRoaXMuYXR0YWNoKQotICAgICAgICAg
ICAgICAgIHRoaXMuYXR0YWNoKCk7Ci0gICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9wYXJlbnRW
aWV3KQotICAgICAgICAgICAgICAgIHRoaXMuX3BhcmVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLmVsZW1lbnQpOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2lubmVyU2hvdygpOwor
ICAgICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlzaWJsZSIpOworICAgICAgICBp
ZiAocGFyZW50RWxlbWVudCAmJiB0aGlzLmVsZW1lbnQucGFyZW50Tm9kZSAhPSBwYXJlbnRFbGVt
ZW50KQorICAgICAgICAgICAgdGhpcy5hdHRhY2gocGFyZW50RWxlbWVudCk7CiAgICAgICAgIHRo
aXMuZGlzcGF0Y2hUb1NlbGZBbmRWaXNpYmxlQ2hpbGRyZW4oIndhc1Nob3duIik7CiAgICAgfSwK
IAotICAgIF9pbm5lckhpZGU6IGZ1bmN0aW9uKCkKKyAgICBoaWRlOiBmdW5jdGlvbigpCiAgICAg
eworICAgICAgICB0aGlzLmRpc3BhdGNoVG9TZWxmQW5kVmlzaWJsZUNoaWxkcmVuKCJ3aWxsSGlk
ZSIpOwogICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygidmlzaWJsZSIpOwor
ICAgICAgICB0aGlzLl92aXNpYmxlID0gZmFsc2U7CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0
aW9uKCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHBhcmVudEVsZW1lbnQKKyAg
ICAgKi8KKyAgICBhdHRhY2g6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCiAgICAgewotICAgICAg
ICB0aGlzLmRpc3BhdGNoVG9TZWxmQW5kVmlzaWJsZUNoaWxkcmVuKCJ3aWxsSGlkZSIpOwotICAg
ICAgICB0aGlzLl9pbm5lckhpZGUoKTsKLSAgICAgICAgdGhpcy5fdmlzaWJsZSA9IGZhbHNlOwor
ICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudCk7CiAgICAgfSwK
IAotICAgIF9kZXRhY2g6IGZ1bmN0aW9uKCkKKyAgICBkZXRhY2g6IGZ1bmN0aW9uKCkKICAgICB7
CiAgICAgICAgIGlmICh0aGlzLmVsZW1lbnQucGFyZW50Tm9kZSkKICAgICAgICAgICAgIHRoaXMu
ZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudCk7CkBAIC0xMzQsMzAg
KzEyNiwyMiBAQCBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAg
ICB9LAogCi0gICAgYWRkQ2hpbGRWaWV3OiBmdW5jdGlvbih2aWV3KQorICAgIF9hZGRDaGlsZFZp
ZXc6IGZ1bmN0aW9uKHZpZXcpCiAgICAgewotICAgICAgICBpZiAodmlldy5fcGFyZW50VmlldyA9
PT0gdGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKHZpZXcuX3BhcmVudFZp
ZXcpCi0gICAgICAgICAgICB2aWV3Ll9wYXJlbnRWaWV3LnJlbW92ZUNoaWxkVmlldyh2aWV3KTsK
ICAgICAgICAgdGhpcy5fY2hpbGRyZW4ucHVzaCh2aWV3KTsKICAgICAgICAgdmlldy5fcGFyZW50
VmlldyA9IHRoaXM7CiAgICAgfSwKIAotICAgIHJlbW92ZUNoaWxkVmlldzogZnVuY3Rpb24odmll
dykKKyAgICBfcmVtb3ZlQ2hpbGRWaWV3OiBmdW5jdGlvbih2aWV3KQogICAgIHsKICAgICAgICAg
dmFyIGNoaWxkSW5kZXggPSB0aGlzLl9jaGlsZHJlbi5pbmRleE9mKHZpZXcpOwotICAgICAgICBp
ZiAoY2hpbGRJbmRleCA8IDApCisgICAgICAgIGlmIChjaGlsZEluZGV4IDwgMCkgeworICAgICAg
ICAgICAgY29uc29sZS5lcnJvcigiQXR0ZW1wdCB0byByZW1vdmUgbm9uLWNoaWxkIHZpZXciKTsK
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX2NoaWxkcmVu
LnNwbGljZShjaGlsZEluZGV4LCAxKTsKICAgICAgICAgdmlldy5fcGFyZW50VmlldyA9IG51bGw7
Ci0gICAgICAgIHZpZXcuX2RldGFjaCgpOwotICAgIH0sCi0KLSAgICBjaGlsZFZpZXdzOiBmdW5j
dGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW4uc2xpY2UoKTsKICAg
ICB9LAogCiAgICAgb25SZXNpemU6IGZ1bmN0aW9uKCkKQEAgLTE5Myw3ICsxNzcsNDMgQEAgV2Vi
SW5zcGVjdG9yLlZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2NoaWxkcmVuLmxlbmd0aDsgKytpKQogICAgICAg
ICAgICAgdGhpcy5fY2hpbGRyZW5baV0uZGlzcGF0Y2hUb1NlbGZBbmRWaXNpYmxlQ2hpbGRyZW4o
bWV0aG9kTmFtZSk7CisgICAgfSwKKworICAgIF9oYW5kbGVJbnNlcnRlZEludG9Eb2N1bWVudDog
ZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgcGFyZW50RWxlbWVudCA9IHRoaXMu
ZWxlbWVudC5wYXJlbnRFbGVtZW50OworICAgICAgICB3aGlsZSAocGFyZW50RWxlbWVudCAmJiAh
cGFyZW50RWxlbWVudC5fX3ZpZXdfXykKKyAgICAgICAgICAgIHBhcmVudEVsZW1lbnQgPSBwYXJl
bnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7CisKKyAgICAgICAgdmFyIHBhcmVudFZpZXcgPSBwYXJl
bnRFbGVtZW50ID8gcGFyZW50RWxlbWVudC5fX3ZpZXdfXyA6IFdlYkluc3BlY3Rvci5fcm9vdFZp
ZXc7CisgICAgICAgIHBhcmVudFZpZXcuX2FkZENoaWxkVmlldyh0aGlzKTsKKyAgICB9LAorCisg
ICAgX2hhbmRsZVJlbW92ZWRGcm9tRG9jdW1lbnQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgaWYgKHRoaXMuX3BhcmVudFZpZXcpCisgICAgICAgICAgICB0aGlzLl9wYXJlbnRWaWV3
Ll9yZW1vdmVDaGlsZFZpZXcodGhpcyk7CisgICAgfSwKKworICAgIHByaW50Vmlld0hpZXJhcmNo
eTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIGxpbmVzID0gW107CisgICAgICAgIHRo
aXMuX2NvbGxlY3RWaWV3SGllcmFyY2h5KCIiLCBsaW5lcyk7CisgICAgICAgIGNvbnNvbGUubG9n
KGxpbmVzLmpvaW4oIlxuIikpOworICAgIH0sCisKKyAgICBfY29sbGVjdFZpZXdIaWVyYXJjaHk6
IGZ1bmN0aW9uKHByZWZpeCwgbGluZXMpCisgICAgeworICAgICAgICBsaW5lcy5wdXNoKHByZWZp
eCArICJbIiArIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgKyAiXSIgKyAodGhpcy5fY2hpbGRyZW4u
bGVuZ3RoID8gIiB7IiA6ICIiKSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlz
Ll9jaGlsZHJlbi5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMuX2NoaWxkcmVuW2ldLl9j
b2xsZWN0Vmlld0hpZXJhcmNoeShwcmVmaXggKyAiICAgICIsIGxpbmVzKTsKKworICAgICAgICBp
ZiAodGhpcy5fY2hpbGRyZW4ubGVuZ3RoKQorICAgICAgICAgICAgbGluZXMucHVzaChwcmVmaXgg
KyAifSIpOwogICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9fcHJvdG9f
XyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOworCitXZWJJbnNwZWN0b3IuX3Jvb3RW
aWV3ID0gbmV3IFdlYkluc3BlY3Rvci5WaWV3KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCAxYzExY2QwOTUxZGIwZThlOWE3
NTJiM2U0ZTg1YjU4YmI2OWI5ODIwLi4zOTdhMTNlMGIyMjI3MzUzZGRlNThlNjA5OTRlZTU2Zjll
MTFlZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmh0bWwKQEAgLTM2LDYgKzM2LDcgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJpbnNwZWN0b3IuY3NzIj4KICAgICA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJpbnNwZWN0b3JDb21tb24u
Y3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJp
bnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IHR5cGU9InRleHQvY3NzIiBocmVmPSJuZXR3b3JrTG9nVmlldy5jc3MiPgogICAgIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Im5ldHdvcmtQYW5lbC5jc3MiPgog
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImhlbHBTY3Jl
ZW4uY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSJwb3BvdmVyLmNzcyI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzCmluZGV4IDE0ODI5MmQyYTcyNDQzODE0ZTZhMzNlODM1NzM2MjFjOTEyOTc3
NzAuLmYwYWNlOWM2MzhkNDg5Mjg5MWNiNGJkYTI4NDI3OWVjZjUwNjZlMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0xMjksNyAr
MTI5LDcgQEAgdmFyIFdlYkluc3BlY3RvciA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICBpZiAodGhpcy5fY3VycmVudFBhbmVsKQotICAgICAgICAgICAgdGhpcy5fY3VycmVudFBh
bmVsLmhpZGUoKTsKKyAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQYW5lbC5kZXRhY2goKTsKIAog
ICAgICAgICB0aGlzLl9jdXJyZW50UGFuZWwgPSB4OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2RkN2QwZjM2NWYyYTBk
NTYxN2U1ZjExYzU4OTY2ZGNlYmI4MDFlNy4uZWY3Y2IyODVmOWI5YWY2NmYwZWY4N2ZiYWNjM2Vl
YjBiNzhlY2FiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTEwLTE5ICBQYXZlbCBGZWxk
bWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBnZXQg
cmlkIG9mIG1hbnVhbCB2aWV3IGhpZXJhcmNoeSBtYW5hZ2VtZW50LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0MTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci92aWV3LWV2ZW50cy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWw6CisKIDIw
MTEtMTAtMTkgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtj
aHJvbWl1bV0gVGVzdCBleHBlY3RhdGlvbiBjaGFuZ2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivdmlldy1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3ZpZXctZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCBhMDYyMGNkZWZjYjMxZGUzYWIyYTVl
Mjc2YzY5ZmM5OWY5OTFiMjkwLi42YzM3MWM4OTQ1NzY0NWJmYWI3ZjE3NzQxMjc0M2I4MjMyYjY2
NGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1ldmVudHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy1leHBlY3RlZC50
eHQKQEAgLTUsMTMgKzUsMTMgQEAgcGFyZW50Vmlldy5zaG93KHJvb3QpCiA+IFBhcmVudFZpZXcu
b25SZXNpemUoKQogcGFyZW50Vmlldy5kb1Jlc2l6ZSgpCiA+IFBhcmVudFZpZXcub25SZXNpemUo
KQotY2hpbGRWaWV3LnNob3coKQorY2hpbGRWaWV3LnNob3cocGFyZW50Vmlldy5lbGVtZW50KQog
PiBDaGlsZFZpZXcud2FzU2hvd24oKQogPiBDaGlsZFZpZXcub25SZXNpemUoKQogcGFyZW50Vmll
dy5kb1Jlc2l6ZSgpCiA+IFBhcmVudFZpZXcub25SZXNpemUoKQogPiBDaGlsZFZpZXcub25SZXNp
emUoKQotcGFyZW50Vmlldy5oaWRlKHJvb3QpCitwYXJlbnRWaWV3LmhpZGUoKQogPiBQYXJlbnRW
aWV3LndpbGxIaWRlKCkKID4gQ2hpbGRWaWV3LndpbGxIaWRlKCkKIHBhcmVudFZpZXcuc2hvdyhy
b290KQpAQCAtMjEsNiArMjEsNiBAQCBwYXJlbnRWaWV3LnNob3cocm9vdCkKID4gQ2hpbGRWaWV3
Lm9uUmVzaXplKCkKIGNoaWxkVmlldy5oaWRlKCkKID4gQ2hpbGRWaWV3LndpbGxIaWRlKCkKLXBh
cmVudFZpZXcuaGlkZShyb290KQorcGFyZW50Vmlldy5oaWRlKCkKID4gUGFyZW50Vmlldy53aWxs
SGlkZSgpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWwKaW5kZXggMGQzOGVi
NjI5M2JjY2IxMmFiMGZjZWZiZDI3MzYyMTRjOWIwOTQ3OC4uNzgzZjc2ODEwMTI2NjBkYTZjN2Zm
MDE3ZDRkOTdlODUyNzgwNjExYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Zp
ZXctZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0
bWwKQEAgLTQxLDIwICs0MSwxOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB9CiAgICAgdmFyIHBh
cmVudFZpZXcgPSBuZXcgVGVzdFZpZXcoIlBhcmVudFZpZXciKTsKICAgICB2YXIgY2hpbGRWaWV3
ID0gbmV3IFRlc3RWaWV3KCJDaGlsZFZpZXciKTsKLSAgICBwYXJlbnRWaWV3LmFkZENoaWxkVmll
dyhjaGlsZFZpZXcpOwogICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1h
aW4tcGFuZWxzIik7CiAgICAgdHJhY2VFdmFsKFsKICAgICAgICAgInBhcmVudFZpZXcuc2hvdyhy
b290KSIsCiAgICAgICAgICJwYXJlbnRWaWV3LmRvUmVzaXplKCkiLAotICAgICAgICAiY2hpbGRW
aWV3LnNob3coKSIsCisgICAgICAgICJjaGlsZFZpZXcuc2hvdyhwYXJlbnRWaWV3LmVsZW1lbnQp
IiwKICAgICAgICAgInBhcmVudFZpZXcuZG9SZXNpemUoKSIsCi0gICAgICAgICJwYXJlbnRWaWV3
LmhpZGUocm9vdCkiLAorICAgICAgICAicGFyZW50Vmlldy5oaWRlKCkiLAogICAgICAgICAicGFy
ZW50Vmlldy5zaG93KHJvb3QpIiwKICAgICAgICAgImNoaWxkVmlldy5oaWRlKCkiLAotICAgICAg
ICAicGFyZW50Vmlldy5oaWRlKHJvb3QpIgorICAgICAgICAicGFyZW50Vmlldy5oaWRlKCkiCiAg
ICAgXSk7Ci0gICAgcGFyZW50Vmlldy5yZW1vdmVDaGlsZFZpZXcoY2hpbGRWaWV3KTsKLSAgICBy
b290LnJlbW92ZUNoaWxkKHBhcmVudFZpZXcuZWxlbWVudCk7CisgICAgY2hpbGRWaWV3LmRldGFj
aCgpOworICAgIHBhcmVudFZpZXcuZGV0YWNoKCk7CiAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111626</attachid>
            <date>2011-10-19 08:32:36 -0700</date>
            <delta_ts>2011-10-19 08:39:35 -0700</delta_ts>
            <desc>[Patch] Review comments addressed</desc>
            <filename>bug-70417-20111019193234.patch</filename>
            <type>text/plain</type>
            <size>34467</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc4NDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNzRiMWI1NDY2NThkNDRi
YjdmNzU1YWIwZTU2NTY4YTI5YTE4MGNjLi45NzA0NWM4YzU5M2MzMmU1OTNlY2VkYWMwNzk1Mjlh
YTZkY2M3OTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzggQEAKKzIwMTEtMTAtMTkgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGdldCByaWQgb2YgbWFudWFsIHZpZXcgaGllcmFyY2h5IG1hbmFnZW1lbnQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQxNworICAgICAgICBUaGlz
IGNoYW5nZSByZW1vdmVzIG5lY2Vzc2l0eSB0byBtYW5hZ2UgdmlldyBoaWVyYXJjaHkgbWFudWFs
bHkKKyAgICAgICAgKGFkZC9yZW1vdmVDaGlsZFZpZXcgbWV0aG9kcyBhcmUgZ29pbmcgYXdheSku
IEl0IG1heSB0ZW1wb3JhcmlseQorICAgICAgICByZWdyZXNzIG5ldHdvcmsgdmlldyBwZXJmb3Jt
YW5jZSwgYnV0IEkgaGF2ZSBhIHBlbmRpbmcgY2hhbmdlCisgICAgICAgIHRoYXQgbG9hZHMgQ1NT
IG9uIHBlci1jb21wb25lbnQgYmFzaXMgYW5kIHJlc3RvcmVzIGl0LgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9B
dWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbC5wcm90b3R5
cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlLl9j
bGVhckJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29s
ZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUu
c2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlwZS5oaWRl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RHcmlkTm9k
ZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5v
ZGUucHJvdG90eXBlLnF1ZXJ5T2JqZWN0Q29udGVudC5lbHNlLmZvcm1hdFJlc3VsdCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5vZGUucHJvdG90eXBl
LnF1ZXJ5T2JqZWN0Q29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRh
aWxlZEhlYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBz
aG90Vmlldy5wcm90b3R5cGUuc2hvdy5wcm9maWxlQ2FsbGJhY2syKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJvdG90eXBlLl9jaGFuZ2VWaWV3KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanM6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTmV0d29ya0xvZ1ZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3
LnByb3RvdHlwZS5faW5pdGlhbGl6ZVZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdv
cmtQYW5lbC5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1Bh
bmVsLnByb3RvdHlwZS5fc2hvd1Jlc291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3
b3JrUGFuZWwucHJvdG90eXBlLl9jbG9zZVZpc2libGVSZXNvdXJjZSk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5w
cm90b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmRl
dGFjaCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9yZXNldCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuY2xvc2VWaXNpYmxl
Vmlldyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanM6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVByZXZpZXdWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlUHJldmlld1ZpZXcucHJvdG90eXBlLmNvbnRlbnRM
b2FkZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VSZXNwb25zZVZp
ZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VSZXNwb25zZVZpZXcucHJvdG90
eXBlLmNvbnRlbnRMb2FkZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VUaW1pbmdWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5nVmll
dy5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5
cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlw
ZS5faW5uZXJTaG93Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZVRy
ZWVFbGVtZW50LnByb3RvdHlwZS5fcmVjcmVhdGVTb3VyY2VWaWV3KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlLl91aVNvdXJjZUNvZGVSZW1vdmVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jcmVhdGVTb3VyY2VGcmFtZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fcmVtb3ZlU291cmNl
RnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lLnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1RhYmJlZFBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUuYXBwZW5kVGFiKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZS5faGlkZVRhYik6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlZpZXcucHJvdG90eXBlLmF0dGFjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmll
dy5wcm90b3R5cGUuZGV0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlw
ZS5fYWRkQ2hpbGRWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5f
cmVtb3ZlQ2hpbGRWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5k
aXNwYXRjaFRvVmlzaWJsZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnBy
b3RvdHlwZS5faGFuZGxlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpZXcucHJvdG90eXBlLl9oYW5kbGVSZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5wcmludFZpZXdIaWVyYXJjaHkpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9jb2xsZWN0Vmlld0hpZXJhcmNoeSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKwogMjAxMS0xMC0xOSAgVG9tYXN6IE1v
cmF3c2tpICA8dC5tb3Jhd3NraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEFk
ZGVkIG1pc3NpbmcgZmlsZXMgdG8gYnVpbGQgV2ViS2l0MiBFRkwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCmluZGV4IGNjMTQyZjBiYzc2
ZWY2YTM0NjJiOTVmM2Q3ZTJlNWFjMThhZWZkMzIuLmUxOTFiNzY0YjIyMTU1Njk0MTJjYTE5Yzc1
OGJmMmJkYzY5ZWI1ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQXVkaXRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9BdWRpdHNQYW5lbC5qcwpAQCAtMjQ0LDkgKzI0NCw5IEBAIFdlYkluc3BlY3Rvci5BdWRp
dHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB4LnNob3codGhpcy52aWV3c0NvbnRh
aW5lckVsZW1lbnQpOwogICAgIH0sCiAKLSAgICBhdHRhY2g6IGZ1bmN0aW9uKCkKKyAgICBzaG93
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LmF0dGFjaC5jYWxsKHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LnNob3cuY2FsbCh0aGlzKTsKIAogICAgICAgICB0aGlzLmF1ZGl0c0l0ZW1UcmVlRWxlbWVudC5z
ZWxlY3QoKTsKICAgICB9LApAQCAtMjU4LDYgKzI1OCwxMyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRz
UGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2NsZWFyQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24o
KQogICAgIHsKKyAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5hdWRpdFJlc3VsdHNUcmVlRWxl
bWVudC5jaGlsZHJlbjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5n
dGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGNoaWxkID0gY2hpbGRyZW5baV07CisgICAgICAg
ICAgICB2YXIgdmlldyA9IGNoaWxkLnJlc3VsdHMuX3Jlc3VsdFZpZXc7CisgICAgICAgICAgICB2
aWV3LmRldGFjaCgpOworICAgICAgICB9CisKICAgICAgICAgdGhpcy5hdWRpdHNJdGVtVHJlZUVs
ZW1lbnQucmV2ZWFsQW5kU2VsZWN0KCk7CiAgICAgICAgIHRoaXMuYXVkaXRSZXN1bHRzVHJlZUVs
ZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCmluZGV4IDExMDYxNTAxNjA1MGI2M2Qw
M2RiMjU2YTYxNTM3MWIwOTY4YWRjMjYuLjlkMDM2MmI0MGVhZTVlMmRiNTE0ZDE5ZjE3YjkzMGFi
NzAyNDgwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVBhbmVsLmpzCkBAIC01NiwxNSArNTYsMTMgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9kcmF3ZXJXYXNWaXNpYmxlID0g
dHJ1ZTsKICAgICAgICAgfQogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNo
b3cuY2FsbCh0aGlzKTsKLQotICAgICAgICB0aGlzLmFkZENoaWxkVmlldyh0aGlzLl92aWV3KTsK
LSAgICAgICAgdGhpcy5fdmlldy5zaG93KCk7CisgICAgICAgIHRoaXMuX3ZpZXcuc2hvdyh0aGlz
LmVsZW1lbnQpOwogICAgIH0sCiAKICAgICBoaWRlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAg
ICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmhpZGUuY2FsbCh0aGlzKTsKLSAgICAgICAg
dGhpcy5yZW1vdmVDaGlsZFZpZXcodGhpcy5fdmlldyk7CisgICAgICAgIHRoaXMuX3ZpZXcuZGV0
YWNoKCk7CiAgICAgICAgIGlmICh0aGlzLl9kcmF3ZXJXYXNWaXNpYmxlKSB7CiAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuZHJhd2VyLnNob3codGhpcy5fdmlldywgV2ViSW5zcGVjdG9yLkRyYXdl
ci5BbmltYXRpb25UeXBlLkltbWVkaWF0ZWx5KTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9k
cmF3ZXJXYXNWaXNpYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZXRhaWxlZEhlYXBzaG90R3JpZE5vZGVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90R3JpZE5vZGVzLmpzCmluZGV4IDI3OWFi
NjEyMzY5ZDYwYzFiZjUzYTc2OGIxZjUzYzVkMjdmNmE3N2EuLmJhOTdkMTkzYWUzNzA5MTcyMzAy
Y2FhMjAxZmE3ZDA1NzMwNTc2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdEdyaWROb2Rlcy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RHcmlkTm9kZXMuanMKQEAg
LTI3OCw3ICsyNzgsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5v
ZGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGlmICghZXJyb3IgJiYgb2JqZWN0LnR5
cGUpCiAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QuZnJvbVBheWxvYWQob2JqZWN0KSwgISFlcnJvcik7CiAgICAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZy
b21FcnJvcihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vdCBhdmFpbGFibGUiKSkpOworICAgICAg
ICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21Qcmlt
aXRpdmVWYWx1ZShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vdCBhdmFpbGFibGUiKSkpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBPYmpl
Y3RJZCh0aGlzLnNuYXBzaG90Tm9kZUlkLCBmb3JtYXRSZXN1bHQpOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNo
b3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhl
YXBzaG90Vmlldy5qcwppbmRleCA2ODY3MzBjNjQ5ZDIzMDJhZTQ4ZDYwNzJhZmM2N2MxNWI4YmQ5
Mzc1Li42ZmMxNjE5N2U1NGZkZGEyMWViZjJhYzE4OGZkOTE2MGQ0OWZkMjMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFw
c2hvdFZpZXcuanMKQEAgLTY5Nyw3ICs2OTcsNyBAQCBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFw
c2hvdFZpZXcucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gcHJv
ZmlsZUNhbGxiYWNrMigpIHsKLSAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXcuc2hvdygpOwor
ICAgICAgICAgICAgdGhpcy5jdXJyZW50Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAg
ICAgICB0aGlzLmRhdGFHcmlkLnVwZGF0ZVdpZHRocygpOwogICAgICAgICB9CiAgICAgfSwKQEAg
LTEwMDAsNyArMTAwMCw3IEBAIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciB2aWV3ID0gdGhpcy52aWV3c1t0aGlzLnZpZXdzLmN1cnJl
bnRdOwogICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gdmlldy52aWV3OwogICAgICAgICB0aGlz
LmRhdGFHcmlkID0gdmlldy5ncmlkOwotICAgICAgICB0aGlzLmN1cnJlbnRWaWV3LnNob3coKTsK
KyAgICAgICAgdGhpcy5jdXJyZW50Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgIHRo
aXMucmVmcmVzaFZpc2libGVEYXRhKCk7CiAgICAgICAgIHRoaXMuZGF0YUdyaWQudXBkYXRlV2lk
dGhzKCk7CiAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRWaWV3ID09PSB0aGlzLmRpZmZWaWV3KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VtcHR5Vmll
dy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCmlu
ZGV4IGZiMDMyMWU1ZDk3NWZmMWU5MjIxOTA4YmVlMTgwNzIxODNkMDY4NzQuLmY5ODY2MTJkOTk4
MDBlY2NhZWRiYWJkZTFhZTRmMGYwMDUwNzFlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCkBAIC00MCw3ICs0MCw3IEBAIFdlYkluc3Bl
Y3Rvci5FbXB0eVZpZXcgPSBmdW5jdGlvbih0ZXh0KQogCiBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3
LnByb3RvdHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0VsZW1lbnQ9fSBwYXJlbnRF
bGVtZW50CisgICAgICogQHBhcmFtIHtFbGVtZW50fSBwYXJlbnRFbGVtZW50CiAgICAgICovCiAg
ICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanMKaW5kZXggOGRiZDU4MWM4ODI3
Y2ExZjQ1MGRjNGU0MjY0NjAzNzY0MDE0YTdiYy4uOGQwZjdkZjM3MzE1OWU2MzcxYWNkYzMwMzRj
MjA4NzgwYmUxNjExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9JRnJhbWVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSUZyYW1lVmlldy5qcwpAQCAtNDEsMTcgKzQxLDYgQEAgV2ViSW5zcGVjdG9yLklGcmFtZVZp
ZXcgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50LCBzdHlsZXNoZWV0cykKIH0KIAogV2ViSW5zcGVj
dG9yLklGcmFtZVZpZXcucHJvdG90eXBlID0gewotICAgIF9pbm5lclNob3c6IGZ1bmN0aW9uKCkK
LSAgICB7Ci0gICAgICAgIHRoaXMuX2lmcmFtZUVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlzaWJs
ZSIpOwotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuX2lubmVyU2hvdy5jYWxs
KHRoaXMpOwotICAgIH0sCi0KLSAgICBfaW5uZXJIaWRlOiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICB0aGlzLl9pZnJhbWVFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInZpc2libGUiKTsKLSAg
ICB9LAotCiAgICAgYXR0YWNoOiBmdW5jdGlvbihwYXJlbnQpCiAgICAgewogICAgICAgICBpZiAo
dGhpcy5faW5pdGlhbGl6ZVZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCmluZGV4IDFiZDRjYzM1NWVmM2YxNTcxMDY3OGJkYzc2
NmMxY2Q3NTVlNTM5NzQuLmRmZDI4ZDY1NjgzMjM3MzZmNGI4NTk2MmIzYTk4Zjc1YjdlZjkxNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1Bh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1Bh
bmVsLmpzCkBAIC0zMCwxNyArMzAsMTEgQEAKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuSUZyYW1lVmlld30KKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0
b3IuVmlld30KICAqLwotV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3ID0gZnVuY3Rpb24ocGFy
ZW50RWxlbWVudCkKK1dlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldyA9IGZ1bmN0aW9uKCkKIHsK
LSAgICAvLyBGSVhNRTogc29tZSBvZiB0aGUgc3R5bGVzIHNob3VsZCBiZSBsb2FkZWQgb24gZGVt
YW5kIGJ5IGNvbXBvbmVudHMgdGhhdCBuZWVkIHRoZW0uCi0gICAgdmFyIHN0eWxlcyA9IFsKLSAg
ICAgICAgImluc3BlY3RvckNvbW1vbi5jc3MiLAotICAgICAgICAiZGF0YUdyaWQuY3NzIiwKLSAg
ICAgICAgIm5ldHdvcmtMb2dWaWV3LmNzcyIKLSAgICBdOwotICAgIFdlYkluc3BlY3Rvci5JRnJh
bWVWaWV3LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCwgc3R5bGVzKTsKKyAgICBXZWJJbnNwZWN0
b3IuVmlldy5jYWxsKHRoaXMpOwogCiAgICAgdGhpcy5fYWxsb3dSZXNvdXJjZVNlbGVjdGlvbiA9
IGZhbHNlOwogICAgIHRoaXMuX3Jlc291cmNlcyA9IFtdOwpAQCAtNjksMTAgKzYzLDEyIEBAIFdl
Ykluc3BlY3Rvci5OZXR3b3JrTG9nVmlldyA9IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCiAgICAg
V2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVOYXZpZ2F0ZWQsIHRoaXMuX2Zy
YW1lTmF2aWdhdGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBl
cy5PbkxvYWQsIHRoaXMuX29uTG9hZEV2ZW50RmlyZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rv
ci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbC5FdmVudFR5cGVzLkRPTUNvbnRlbnRMb2FkZWQsIHRoaXMuX2RvbUNvbnRlbnRM
b2FkZWRFdmVudEZpcmVkLCB0aGlzKTsKKworICAgIHRoaXMuX2luaXRpYWxpemVWaWV3KCk7CiB9
CiAKIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7Ci0gICAgaW5pdGlh
bGl6ZVZpZXc6IGZ1bmN0aW9uKCkKKyAgICBfaW5pdGlhbGl6ZVZpZXc6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIHRoaXMuZWxlbWVudC5pZCA9ICJuZXR3b3JrLWNvbnRhaW5lciI7CiAKQEAg
LTEyMDUsNyArMTIwMSw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUg
PSB7CiAgICAgfQogfTsKIAotV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZS5f
X3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5wcm90b3R5cGU7CitXZWJJbnNwZWN0
b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZTsKIAogV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LkV2ZW50VHlwZXMgPSB7
CiAgICAgVmlld0NsZWFyZWQ6ICJWaWV3Q2xlYXJlZCIsCkBAIC0xMjI0LDggKzEyMjAsNyBAQCBX
ZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3BlY3Rvci5Q
YW5lbC5jYWxsKHRoaXMsICJuZXR3b3JrIik7CiAKICAgICB0aGlzLmNyZWF0ZVNpZGViYXIoKTsK
LSAgICB0aGlzLl9uZXR3b3JrTG9nVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1Zp
ZXcodGhpcy5zaWRlYmFyRWxlbWVudCk7Ci0gICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fbmV0
d29ya0xvZ1ZpZXcpOworICAgIHRoaXMuX25ldHdvcmtMb2dWaWV3ID0gbmV3IFdlYkluc3BlY3Rv
ci5OZXR3b3JrTG9nVmlldygpOwogCiAgICAgdGhpcy5fdmlld3NDb250YWluZXJFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5fdmlld3NDb250YWluZXJF
bGVtZW50LmlkID0gIm5ldHdvcmstdmlld3MiOwpAQCAtMTMwNSw3ICsxMzAwLDcgQEAgV2ViSW5z
cGVjdG9yLk5ldHdvcmtQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgc2hvdzogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhp
cyk7Ci0gICAgICAgIHRoaXMuX25ldHdvcmtMb2dWaWV3LnNob3coKTsKKyAgICAgICAgdGhpcy5f
bmV0d29ya0xvZ1ZpZXcuc2hvdyh0aGlzLnNpZGViYXJFbGVtZW50KTsKICAgICB9LAogCiAgICAg
Z2V0IHJlc291cmNlcygpCkBAIC0xMzg2LDEyICsxMzgxLDExIEBAIFdlYkluc3BlY3Rvci5OZXR3
b3JrUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl90b2dnbGVWaWV3aW5nUmVzb3Vy
Y2VNb2RlKCk7CiAKICAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcpIHsKLSAgICAgICAgICAg
IHRoaXMucmVtb3ZlQ2hpbGRWaWV3KHRoaXMudmlzaWJsZVZpZXcpOworICAgICAgICAgICAgdGhp
cy52aXNpYmxlVmlldy5kZXRhY2goKTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnZpc2libGVW
aWV3OwogICAgICAgICB9CiAKICAgICAgICAgdmFyIHZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLk5l
dHdvcmtJdGVtVmlldyhyZXNvdXJjZSk7Ci0gICAgICAgIHRoaXMuYWRkQ2hpbGRWaWV3KHZpZXcp
OwogICAgICAgICB2aWV3LnNob3codGhpcy5fdmlld3NDb250YWluZXJFbGVtZW50KTsKICAgICAg
ICAgdGhpcy52aXNpYmxlVmlldyA9IHZpZXc7CiAKQEAgLTE0MDMsNyArMTM5Nyw3IEBAIFdlYklu
c3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmVsZW1lbnQu
cmVtb3ZlU3R5bGVDbGFzcygidmlld2luZy1yZXNvdXJjZSIpOwogCiAgICAgICAgIGlmICh0aGlz
LnZpc2libGVWaWV3KSB7Ci0gICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyh0aGlzLnZp
c2libGVWaWV3KTsKKyAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuZGV0YWNoKCk7CiAgICAg
ICAgICAgICBkZWxldGUgdGhpcy52aXNpYmxlVmlldzsKICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcwppbmRleCAwYzdiMzI0OTRkNzRjMDJk
YjAwNGE2ZmIxZWQ2YTc0YzU4OTc3ZTdhLi5iNTliNzlhNmZkMDMyNzkyYmFjZTY5M2U5OGI1ZjM0
ZDRiYzczYWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwu
anMKQEAgLTYzLDcgKzYzLDEwIEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAK
ICAgICBzaG93OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5w
cm90b3R5cGUuc2hvdy5jYWxsKHRoaXMpOworICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5QYW5l
bC5fbWFpblBhbmVsc0VsZW1lbnQpCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwuX21h
aW5QYW5lbHNFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tcGFuZWxzIik7
CisgICAgCisgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhp
cywgV2ViSW5zcGVjdG9yLlBhbmVsLl9tYWluUGFuZWxzRWxlbWVudCk7CiAKICAgICAgICAgdmFy
IHN0YXR1c0Jhckl0ZW1zID0gdGhpcy5zdGF0dXNCYXJJdGVtczsKICAgICAgICAgaWYgKHN0YXR1
c0Jhckl0ZW1zKSB7CkBAIC0xMDQsMTIgKzEwNyw2IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLnNpZGViYXJUcmVlRWxlbWVudCB8fCB0aGlz
LmVsZW1lbnQ7CiAgICAgfSwKIAotICAgIGF0dGFjaDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAg
ICAgaWYgKCF0aGlzLmVsZW1lbnQucGFyZW50Tm9kZSkKLSAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJtYWluLXBhbmVscyIpLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudCk7Ci0g
ICAgfSwKLQogICAgIHNlYXJjaENhbmNlbGVkOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBX
ZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRhdGVTZWFyY2hNYXRjaGVzQ291bnQoMCwg
dGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2Zp
bGVzUGFuZWwuanMKaW5kZXggMmExYWI3NDYxZmVjMGMwYThiZTAwODk2ZGVmZjQ5Yjc2ODBhNmY0
ZC4uZWExNDFjZDZlMWZmNjIyMjA1YWE2ZjYwMzliYWZlNGU0YjYxNzZlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAt
MjA0LDggKzIwNCwxMiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7
CiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9wcm9maWxlcy5sZW5ndGg7ICsr
aSkgewogICAgICAgICAgICAgdmFyIHZpZXcgPSB0aGlzLl9wcm9maWxlc1tpXS5fcHJvZmlsZVZp
ZXc7Ci0gICAgICAgICAgICBpZiAodmlldyAmJiAoImRpc3Bvc2UiIGluIHZpZXcpKQotICAgICAg
ICAgICAgICAgIHZpZXcuZGlzcG9zZSgpOworICAgICAgICAgICAgaWYgKHZpZXcpIHsKKyAgICAg
ICAgICAgICAgICB2aWV3LmRldGFjaCgpOworICAgICAgICAgICAgICAgIGlmICgiZGlzcG9zZSIg
aW4gdmlldykKKyAgICAgICAgICAgICAgICAgICAgdmlldy5kaXNwb3NlKCk7CisgICAgICAgICAg
ICB9CisKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wcm9maWxlc1tpXS5fcHJvZmlsZVZpZXc7
CiAgICAgICAgIH0KICAgICAgICAgZGVsZXRlIHRoaXMudmlzaWJsZVZpZXc7CkBAIC0yMzEsNyAr
MjM1LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygpOwogCiAgICAgICAgIHRoaXMuX3VwZGF0ZUludGVy
ZmFjZSgpOwotICAgICAgICB0aGlzLndlbGNvbWVWaWV3LnNob3coKTsKKyAgICAgICAgdGhpcy53
ZWxjb21lVmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgfSwKIAogICAgIF9jbGVhclByb2Zp
bGVzOiBmdW5jdGlvbigpCkBAIC01MTMsNyArNTE3LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWwucHJvdG90eXBlID0gewogICAgIGNsb3NlVmlzaWJsZVZpZXc6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3KQotICAgICAgICAgICAgdGhpcy52aXNp
YmxlVmlldy5oaWRlKCk7CisgICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LmRldGFjaCgpOwog
ICAgICAgICBkZWxldGUgdGhpcy52aXNpYmxlVmlldzsKICAgICB9LAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCmluZGV4IGMwZWEx
ZmI0NmJmOGU3ZjJiNjBjNWQzNTM3NTQwZWM3MzAwZWQyOTQuLmE1M2MyOTU2ODAyYTVjOTQ1ZGUw
OWI2YTM5Mzg3YTVhZjg2Mzk5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCkBAIC01NCwxMSArNTQsNiBAQCBXZWJJbnNwZWN0
b3IuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQsIHR5cGUsIHN1YnR5cGUsIHZhbHVl
LCBkZXNjcmlwdGlvbgogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9t
RXJyb3IgPSBmdW5jdGlvbihlcnJvckRlc2NyaXB0aW9uKQotewotICAgIHJldHVybiBuZXcgV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdChudWxsLCBudWxsLCBudWxsLCBlcnJvckRlc2NyaXB0aW9u
KTsKLX0KLQogV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUHJpbWl0aXZlVmFsdWUgPSBm
dW5jdGlvbih2YWx1ZSkKIHsKICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QobnVsbCwgdHlwZW9mIHZhbHVlLCBudWxsLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlUHJldmlld1ZpZXcuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlUHJldmlld1ZpZXcuanMKaW5k
ZXggNmI2MmIzYTMzOGRkZmIyNDkyYjdkZmY4ZDAzZWE0NTBlMjI3ZjhlOS4uYTAzNDgwMTkxMWM5
ZTkwZWRiYWExODJjMTc3Yzk5MTc4MDIzMmI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVByZXZpZXdWaWV3LmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VQcmV2aWV3Vmlldy5qcwpAQCAtNDQs
MTkgKzQ0LDE4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVByZXZpZXdWaWV3LnByb3RvdHlwZSA9
IHsKICAgICAgICAgaWYgKCF0aGlzLnJlc291cmNlLmNvbnRlbnQpIHsKICAgICAgICAgICAgIGlm
ICghdGhpcy5fZW1wdHlWaWV3KSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fZW1wdHlWaWV3ID0g
dGhpcy5fY3JlYXRlRW1wdHlWaWV3KCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5hZGRDaGlsZFZp
ZXcodGhpcy5fZW1wdHlWaWV3KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcuc2hv
dygpOworICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7
CiAgICAgICAgICAgICAgICAgdGhpcy5pbm5lclZpZXcgPSB0aGlzLl9lbXB0eVZpZXc7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAodGhpcy5fZW1wdHlW
aWV3KSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDaGlsZFZpZXcodGhpcy5fZW1wdHlW
aWV3KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcuZGV0YWNoKCk7CiAgICAgICAg
ICAgICAgICAgZGVsZXRlIHRoaXMuX2VtcHR5VmlldzsKICAgICAgICAgICAgIH0KKwogICAgICAg
ICAgICAgaWYgKCF0aGlzLl9wcmV2aWV3VmlldykKICAgICAgICAgICAgICAgICB0aGlzLl9wcmV2
aWV3VmlldyA9IHRoaXMuX2NyZWF0ZVByZXZpZXdWaWV3KCk7Ci0gICAgICAgICAgICB0aGlzLmFk
ZENoaWxkVmlldyh0aGlzLl9wcmV2aWV3Vmlldyk7Ci0gICAgICAgICAgICB0aGlzLl9wcmV2aWV3
Vmlldy5zaG93KCk7CisgICAgICAgICAgICB0aGlzLl9wcmV2aWV3Vmlldy5zaG93KHRoaXMuZWxl
bWVudCk7CiAgICAgICAgICAgICB0aGlzLmlubmVyVmlldyA9IHRoaXMuX3ByZXZpZXdWaWV3Owog
ICAgICAgICB9CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VSZXNwb25zZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlUmVzcG9uc2VWaWV3LmpzCmluZGV4IDQ5MTQ1N2VhMmQzMjRk
MWRhOTBkYjM2MjY4ZWMyOWFkN2I0OWRlZjguLjJkMGY1M2NmYjlmYTE1YmQwMDk2YmQxNmVkYjA1
ZTI3NGFjMDhmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VSZXNwb25zZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZVJlc3BvbnNlVmlldy5qcwpAQCAtNTAsMTcgKzUwLDE2IEBAIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVJlc3BvbnNlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlm
ICghdGhpcy5yZXNvdXJjZS5jb250ZW50IHx8ICF0aGlzLnNvdXJjZVZpZXcpIHsKICAgICAgICAg
ICAgIGlmICghdGhpcy5fZW1wdHlWaWV3KSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fZW1wdHlW
aWV3ID0gbmV3IFdlYkluc3BlY3Rvci5FbXB0eVZpZXcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJU
aGlzIHJlcXVlc3QgaGFzIG5vIHJlc3BvbnNlIGRhdGEgYXZhaWxhYmxlLiIpKTsKLSAgICAgICAg
ICAgICAgICB0aGlzLmFkZENoaWxkVmlldyh0aGlzLl9lbXB0eVZpZXcpOwotICAgICAgICAgICAg
ICAgIHRoaXMuX2VtcHR5Vmlldy5zaG93KCk7CisgICAgICAgICAgICAgICAgdGhpcy5fZW1wdHlW
aWV3LnNob3codGhpcy5lbGVtZW50KTsKICAgICAgICAgICAgICAgICB0aGlzLmlubmVyVmlldyA9
IHRoaXMuX2VtcHR5VmlldzsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIGlmICh0aGlzLl9lbXB0eVZpZXcpIHsKLSAgICAgICAgICAgICAgICB0aGlzLnJlbW92
ZUNoaWxkVmlldyh0aGlzLl9lbXB0eVZpZXcpOworICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5
Vmlldy5kZXRhY2goKTsKICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fZW1wdHlWaWV3Owog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5zb3VyY2VW
aWV3KTsKLSAgICAgICAgICAgIHRoaXMuc291cmNlVmlldy5zaG93KCk7CisKKyAgICAgICAgICAg
IHRoaXMuc291cmNlVmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgICAgICB0aGlzLmlu
bmVyVmlldyA9IHRoaXMuc291cmNlVmlldzsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUaW1pbmdWaWV3Lmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRpbWluZ1ZpZXcu
anMKaW5kZXggZWMzZmQxYTM3YzA2ZjNhMWZmYTNkOWM1MTU1NDYwODY3OWEzYmVkNi4uOWI5NWM2
OWMwYWExMzIwN2IzZjk0NGNkZmRhZjg2Mzc4MDZkOWYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRpbWluZ1ZpZXcuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRpbWluZ1ZpZXcuanMKQEAg
LTQ4LDggKzQ4LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5nVmlldy5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmICghdGhpcy5fcmVzb3VyY2UudGltaW5nKSB7CiAgICAgICAgICAgICBp
ZiAoIXRoaXMuX2VtcHR5VmlldykgewogICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5VmlldyA9
IG5ldyBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3KFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGhpcyBy
ZXF1ZXN0IGhhcyBubyBkZXRhaWxlZCB0aW1pbmcgaW5mby4iKSk7Ci0gICAgICAgICAgICAgICAg
dGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fZW1wdHlWaWV3KTsKLSAgICAgICAgICAgICAgICB0aGlz
Ll9lbXB0eVZpZXcuc2hvdygpOworICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5Vmlldy5zaG93
KHRoaXMuZWxlbWVudCk7CiAgICAgICAgICAgICAgICAgdGhpcy5pbm5lclZpZXcgPSB0aGlzLl9l
bXB0eVZpZXc7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5w
cm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwpAQCAtNTcsNyArNTYsNyBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1pbmdWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAg
fQogCiAgICAgICAgIGlmICh0aGlzLl9lbXB0eVZpZXcpIHsKLSAgICAgICAgICAgIHRoaXMucmVt
b3ZlQ2hpbGRWaWV3KHRoaXMuX2VtcHR5Vmlldyk7CisgICAgICAgICAgICB0aGlzLl9lbXB0eVZp
ZXcuZGV0YWNoKCk7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fZW1wdHlWaWV3OwogICAgICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlc1BhbmVsLmpzCmluZGV4IDU4NjBiZmRjMGVjZTNjMDg3ZTcyYTYwMDQyMjYyZTliNWFhZTVm
OWQuLjk0MmQ2ZWRjMGM1Y2FiYTlhZWQ4MTk0ZGI2ODYwODZiZjBkMGU0YjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpA
QCAtMTcxLDEwICsxNzEsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBl
ID0gewogCiAgICAgICAgIGlmICh0aGlzLnNpZGViYXJUcmVlLnNlbGVjdGVkVHJlZUVsZW1lbnQp
CiAgICAgICAgICAgICB0aGlzLnNpZGViYXJUcmVlLnNlbGVjdGVkVHJlZUVsZW1lbnQuZGVzZWxl
Y3QoKTsKLQotICAgICAgICB2YXIgY2hpbGRWaWV3cyA9IHRoaXMuY2hpbGRWaWV3cygpOwotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkVmlld3MubGVuZ3RoOyArK2kpCi0gICAgICAg
ICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyhjaGlsZFZpZXdzW2ldKTsKICAgICB9LAogCiAgICAg
X3BvcHVsYXRlUmVzb3VyY2VUcmVlOiBmdW5jdGlvbigpCkBAIC01MDksOSArNTA1LDggQEAgV2Vi
SW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfaW5uZXJTaG93Vmll
dzogZnVuY3Rpb24odmlldykKICAgICB7CiAgICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3KQot
ICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5oaWRlKCk7CisgICAgICAgICAgICB0aGlzLnZp
c2libGVWaWV3LmRldGFjaCgpOwogCi0gICAgICAgIHRoaXMuYWRkQ2hpbGRWaWV3KHZpZXcpOwog
ICAgICAgICB2aWV3LnNob3codGhpcy5zdG9yYWdlVmlld3MpOwogICAgICAgICB0aGlzLnZpc2li
bGVWaWV3ID0gdmlldzsKIApAQCAtMTM0Myw4ICsxMzM4LDcgQEAgV2ViSW5zcGVjdG9yLkZyYW1l
UmVzb3VyY2VUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBvbGRWaWV3UGFy
ZW50Tm9kZSA9IG9sZFZpZXcudmlzaWJsZSA/IG9sZFZpZXcuZWxlbWVudC5wYXJlbnROb2RlIDog
bnVsbDsKICAgICAgICAgbmV3Vmlldy5pbmhlcml0U2Nyb2xsUG9zaXRpb25zKG9sZFZpZXcpOwog
Ci0gICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5yZW1vdmVDaGlsZFZpZXcodGhpcy5fc291cmNl
Vmlldyk7Ci0gICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5hZGRDaGlsZFZpZXcobmV3Vmlldyk7
CisgICAgICAgIHRoaXMuX3NvdXJjZVZpZXcuZGV0YWNoKCk7CiAgICAgICAgIHRoaXMuX3NvdXJj
ZVZpZXcgPSBuZXdWaWV3OwogCiAgICAgICAgIGlmIChvbGRWaWV3UGFyZW50Tm9kZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5k
ZXggNTQyODU2YTAxN2E3NGJmYWJlODdhZWQ1MGQ1MzA3YjVmMGE5MGYxOS4uYzljYzU5NDZjYmFm
NDNiZWY0NWE4OWFhOTA3MDhjN2Y4NzNiYjQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTI2MCw3ICsyNjAsNyBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSBldmVudC5kYXRhOwogICAgICAgICBpZiAodWlTb3VyY2VDb2RlLl9z
b3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRWaWV3KHVpU291cmNlQ29k
ZS5fc291cmNlRnJhbWUpOworICAgICAgICAgICAgdWlTb3VyY2VDb2RlLl9zb3VyY2VGcmFtZS5k
ZXRhY2goKTsKICAgICB9LAogCiAgICAgX3Nob3dTY3JpcHRGb2xkZXJzU2V0dGluZ0NoYW5nZWQ6
IGZ1bmN0aW9uKCkKQEAgLTY5MCw3ICs2OTAsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVsKHRoaXMsIHVpU291cmNlQ29kZSk7CiAg
ICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJj
ZUZyYW1lKGRlbGVnYXRlLCB1aVNvdXJjZUNvZGUpOwogCi0gICAgICAgIHRoaXMuYWRkQ2hpbGRW
aWV3KHNvdXJjZUZyYW1lKTsKICAgICAgICAgc291cmNlRnJhbWUuX3VpU291cmNlQ29kZSA9IHVp
U291cmNlQ29kZTsKICAgICAgICAgc291cmNlRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLkxvYWRlZCwgdGhpcy5fc291cmNlRnJhbWVMb2FkZWQs
IHRoaXMpOwogICAgICAgICB1aVNvdXJjZUNvZGUuX3NvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7
CkBAIC03MDcsNyArNzA2LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmICghc291cmNlRnJhbWUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIGRlbGV0ZSB1aVNvdXJjZUNvZGUuX3NvdXJjZUZyYW1lOwotICAgICAgICB0aGlzLnJlbW92
ZUNoaWxkVmlldyhzb3VyY2VGcmFtZSk7CisgICAgICAgIHNvdXJjZUZyYW1lLmRldGFjaCgpOwog
ICAgICAgICBzb3VyY2VGcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VGcmFtZS5FdmVudHMuTG9hZGVkLCB0aGlzLl9zb3VyY2VGcmFtZUxvYWRlZCwgdGhpcyk7CiAg
ICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
b3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
RnJhbWUuanMKaW5kZXggNzk2MDhlYTNmMjVjMTg0YWEyMjFlMmM3MzIyNWMxYmQ1YWJiMDdmMy4u
ZjU3OGYwNTliNzJlYTY3NjRlMWM2Zjk3ZWZhYzljNmIwODUzMTBiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC00NCw3ICs0
NCw2IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZSA9IGZ1bmN0aW9uKGRlbGVnYXRlLCB1cmwp
CiAKICAgICB2YXIgdGV4dFZpZXdlckRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0Vmll
d2VyRGVsZWdhdGVGb3JTb3VyY2VGcmFtZSh0aGlzKTsKICAgICB0aGlzLl90ZXh0Vmlld2VyID0g
bmV3IFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyKHRoaXMuX3RleHRNb2RlbCwgV2ViSW5zcGVjdG9y
LnBsYXRmb3JtLCB0aGlzLl91cmwsIHRleHRWaWV3ZXJEZWxlZ2F0ZSk7Ci0gICAgdGhpcy5hZGRD
aGlsZFZpZXcodGhpcy5fdGV4dFZpZXdlcik7CiAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX3RleHRWaWV3ZXIuZWxlbWVudCk7CiAKICAgICB0aGlzLl9lZGl0QnV0dG9uID0gbmV3
IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFZGl0
IiksICJlZGl0LXNvdXJjZS1zdGF0dXMtYmFyLWl0ZW0iKTsKQEAgLTg5LDcgKzg4LDcgQEAgV2Vi
SW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIFdlYklu
c3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7CiAg
ICAgICAgIHRoaXMuX2Vuc3VyZUNvbnRlbnRMb2FkZWQoKTsKLSAgICAgICAgdGhpcy5fdGV4dFZp
ZXdlci5zaG93KCk7CisgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuc2hvdyh0aGlzLmVsZW1lbnQp
OwogICAgIH0sCiAKICAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzCmluZGV4IGFmMTM1NWNiNjI3ODkz
MDZiOGM0Nzk4ZGViNDI5YjY1YjQyZDNjOTYuLjU3OTAzMzg4YTQ2YzQ1ZDM1YmVlYjk3OGM0YTc5
ZGFjMGNjNGQxMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGFiYmVkUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RhYmJlZFBhbmUuanMKQEAgLTMxLDExICszMSwxMCBAQAogLyoqCiAgKiBAZXh0ZW5kcyB7V2Vi
SW5zcGVjdG9yLlZpZXd9CiAgKiBAY29uc3RydWN0b3IKLSAqIEBwYXJhbSB7RWxlbWVudD19IGVs
ZW1lbnQKICAqLwotV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUgPSBmdW5jdGlvbihlbGVtZW50KQor
V2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUgPSBmdW5jdGlvbigpCiB7Ci0gICAgV2ViSW5zcGVjdG9y
LlZpZXcuY2FsbCh0aGlzLCBlbGVtZW50KTsKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRo
aXMpOwogICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ0YWJiZWQtcGFuZSIpOwogICAg
IHRoaXMuX3RhYnNFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAidGFi
YmVkLXBhbmUtaGVhZGVyIik7CiAgICAgdGhpcy5fY29udGVudEVsZW1lbnQgPSB0aGlzLmVsZW1l
bnQuY3JlYXRlQ2hpbGQoImRpdiIsICJ0YWJiZWQtcGFuZS1jb250ZW50Iik7CkBAIC01MSw3ICs1
MCw2IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0
aGlzLl90YWJzRWxlbWVudC5hcHBlbmRDaGlsZCh0YWJFbGVtZW50KTsKICAgICAgICAgdGhpcy5f
Y29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodmlldy5lbGVtZW50KTsKLSAgICAgICAgdGhpcy5h
ZGRDaGlsZFZpZXcodmlldyk7CiAKICAgICAgICAgdGhpcy5fdGFic1tpZF0gPSB7IHRhYkVsZW1l
bnQ6IHRhYkVsZW1lbnQsIHZpZXc6IHZpZXcgfTsKICAgICB9LApAQCAtODYsNyArODQsNyBAQCBX
ZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgX2hpZGVUYWI6IGZ1bmN0
aW9uKHRhYikKICAgICB7CiAgICAgICAgIHRhYi50YWJFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3Mo
InNlbGVjdGVkIik7Ci0gICAgICAgIHRhYi52aWV3LnZpc2libGUgPSBmYWxzZTsKKyAgICAgICAg
dGFiLnZpZXcuZGV0YWNoKCk7CiAgICAgfSwKIAogICAgIGNhbkhpZ2hsaWdodExpbmU6IGZ1bmN0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmll
dy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcwppbmRleCBk
NzA3NDllNDQ4NGQ3NzM3YTI2ZDdiMzdiYzE2ZjM1M2UwMzVlY2NkLi43NDYwY2NjMzJmOGM1MTVh
YTJiZDFiMTY5ZTA4NGIzYWJmMmE2ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9WaWV3LmpzCkBAIC0yNywxMSArMjcsMTMgQEAKIC8qKgogICogQGNvbnN0cnVjdG9y
CiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KLSAqIEBwYXJhbSB7RWxlbWVudD19
IGVsZW1lbnQKICAqLwotV2ViSW5zcGVjdG9yLlZpZXcgPSBmdW5jdGlvbihlbGVtZW50KQorV2Vi
SW5zcGVjdG9yLlZpZXcgPSBmdW5jdGlvbigpCiB7Ci0gICAgdGhpcy5lbGVtZW50ID0gZWxlbWVu
dCB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLmVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiRE9NTm9kZUluc2VydGVkSW50b0RvY3VtZW50IiwgdGhpcy5faGFuZGxlSW5zZXJ0
ZWRJbnRvRG9jdW1lbnQuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMuZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJET01Ob2RlUmVtb3ZlZEZyb21Eb2N1bWVudCIsIHRoaXMuX2hhbmRsZVJl
bW92ZWRGcm9tRG9jdW1lbnQuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMuZWxlbWVudC5f
X3ZpZXcgPSB0aGlzOwogICAgIHRoaXMuX3Zpc2libGUgPSBmYWxzZTsKICAgICB0aGlzLl9jaGls
ZHJlbiA9IFtdOwogfQpAQCAtNDgsNyArNTAsNyBAQCBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKHgpCi0gICAgICAgICAg
ICB0aGlzLnNob3coKTsKKyAgICAgICAgICAgIHRoaXMuc2hvdyh0aGlzLmVsZW1lbnQucGFyZW50
RWxlbWVudCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuaGlkZSgpOwogICAgIH0s
CkBAIC02NCw0NyArNjYsMzcgQEAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLnN0b3JlU2Nyb2xsUG9zaXRpb25zKCk7CiAgICAgfSwKIAotICAgIF9pbm5lclNo
b3c6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNz
KCJ2aXNpYmxlIik7Ci0gICAgfSwKLQogICAgIC8qKgotICAgICAqIEBwYXJhbSB7RWxlbWVudD19
IHBhcmVudEVsZW1lbnQKKyAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHBhcmVudEVsZW1lbnQKICAg
ICAgKi8KICAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQogICAgIHsKICAgICAgICAg
dGhpcy5fdmlzaWJsZSA9IHRydWU7Ci0gICAgICAgIGlmIChwYXJlbnRFbGVtZW50ICYmIHBhcmVu
dEVsZW1lbnQgIT09IHRoaXMuZWxlbWVudC5wYXJlbnROb2RlKSB7Ci0gICAgICAgICAgICB0aGlz
Ll9kZXRhY2goKTsKLSAgICAgICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5l
bGVtZW50KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXRoaXMuZWxlbWVudC5wYXJlbnROb2Rl
KSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5hdHRhY2gpCi0gICAgICAgICAgICAgICAgdGhpcy5h
dHRhY2goKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX3BhcmVudFZpZXcpCi0gICAgICAg
ICAgICAgICAgdGhpcy5fcGFyZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZWxlbWVu
dCk7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5faW5uZXJTaG93KCk7CisgICAgICAgIHRoaXMu
ZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ2aXNpYmxlIik7CisgICAgICAgIGlmIChwYXJlbnRFbGVt
ZW50ICYmIHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50ICE9IHBhcmVudEVsZW1lbnQpCisgICAg
ICAgICAgICB0aGlzLmF0dGFjaChwYXJlbnRFbGVtZW50KTsKICAgICAgICAgdGhpcy5kaXNwYXRj
aFRvU2VsZkFuZFZpc2libGVDaGlsZHJlbigid2FzU2hvd24iKTsKICAgICB9LAogCi0gICAgX2lu
bmVySGlkZTogZnVuY3Rpb24oKQorICAgIGhpZGU6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAg
IHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRWaXNpYmxlQ2hpbGRyZW4oIndpbGxIaWRlIik7CiAgICAg
ICAgIHRoaXMuZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ2aXNpYmxlIik7CisgICAgICAgIHRo
aXMuX3Zpc2libGUgPSBmYWxzZTsKICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAg
IC8qKgorICAgICAqIEBwYXJhbSB7RWxlbWVudH0gcGFyZW50RWxlbWVudAorICAgICAqLworICAg
IGF0dGFjaDogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuZGlz
cGF0Y2hUb1NlbGZBbmRWaXNpYmxlQ2hpbGRyZW4oIndpbGxIaWRlIik7Ci0gICAgICAgIHRoaXMu
X2lubmVySGlkZSgpOwotICAgICAgICB0aGlzLl92aXNpYmxlID0gZmFsc2U7CisgICAgICAgIHBh
cmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTsKICAgICB9LAogCi0gICAgX2Rl
dGFjaDogZnVuY3Rpb24oKQorICAgIGRldGFjaDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
aWYgKHRoaXMuZWxlbWVudC5wYXJlbnROb2RlKQotICAgICAgICAgICAgdGhpcy5lbGVtZW50LnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KTsKKyAgICAgICAgaWYgKHRoaXMuZWxl
bWVudC5wYXJlbnRFbGVtZW50KQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LnBhcmVudEVsZW1l
bnQucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KTsKICAgICB9LAogCiAgICAgZWxlbWVudHNUb1Jl
c3RvcmVTY3JvbGxQb3NpdGlvbnNGb3I6IGZ1bmN0aW9uKCkKQEAgLTEzNCwzMCArMTI2LDIyIEBA
IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAg
ICBhZGRDaGlsZFZpZXc6IGZ1bmN0aW9uKHZpZXcpCisgICAgX2FkZENoaWxkVmlldzogZnVuY3Rp
b24odmlldykKICAgICB7Ci0gICAgICAgIGlmICh2aWV3Ll9wYXJlbnRWaWV3ID09PSB0aGlzKQot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAodmlldy5fcGFyZW50VmlldykKLSAgICAg
ICAgICAgIHZpZXcuX3BhcmVudFZpZXcucmVtb3ZlQ2hpbGRWaWV3KHZpZXcpOwogICAgICAgICB0
aGlzLl9jaGlsZHJlbi5wdXNoKHZpZXcpOwogICAgICAgICB2aWV3Ll9wYXJlbnRWaWV3ID0gdGhp
czsKICAgICB9LAogCi0gICAgcmVtb3ZlQ2hpbGRWaWV3OiBmdW5jdGlvbih2aWV3KQorICAgIF9y
ZW1vdmVDaGlsZFZpZXc6IGZ1bmN0aW9uKHZpZXcpCiAgICAgewogICAgICAgICB2YXIgY2hpbGRJ
bmRleCA9IHRoaXMuX2NoaWxkcmVuLmluZGV4T2Yodmlldyk7Ci0gICAgICAgIGlmIChjaGlsZElu
ZGV4IDwgMCkKKyAgICAgICAgaWYgKGNoaWxkSW5kZXggPCAwKSB7CisgICAgICAgICAgICBjb25z
b2xlLmVycm9yKCJBdHRlbXB0IHRvIHJlbW92ZSBub24tY2hpbGQgdmlldyIpOwogICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fY2hpbGRyZW4uc3BsaWNlKGNo
aWxkSW5kZXgsIDEpOwogICAgICAgICB2aWV3Ll9wYXJlbnRWaWV3ID0gbnVsbDsKLSAgICAgICAg
dmlldy5fZGV0YWNoKCk7Ci0gICAgfSwKLQotICAgIGNoaWxkVmlld3M6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbi5zbGljZSgpOwogICAgIH0sCiAKICAg
ICBvblJlc2l6ZTogZnVuY3Rpb24oKQpAQCAtMTkzLDcgKzE3Nyw0MyBAQCBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGhpcy5fY2hpbGRyZW4ubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICB0aGlz
Ll9jaGlsZHJlbltpXS5kaXNwYXRjaFRvU2VsZkFuZFZpc2libGVDaGlsZHJlbihtZXRob2ROYW1l
KTsKKyAgICB9LAorCisgICAgX2hhbmRsZUluc2VydGVkSW50b0RvY3VtZW50OiBmdW5jdGlvbihl
dmVudCkKKyAgICB7CisgICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50LnBh
cmVudEVsZW1lbnQ7CisgICAgICAgIHdoaWxlIChwYXJlbnRFbGVtZW50ICYmICFwYXJlbnRFbGVt
ZW50Ll9fdmlldykKKyAgICAgICAgICAgIHBhcmVudEVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LnBh
cmVudEVsZW1lbnQ7CisKKyAgICAgICAgdmFyIHBhcmVudFZpZXcgPSBwYXJlbnRFbGVtZW50ID8g
cGFyZW50RWxlbWVudC5fX3ZpZXcgOiBXZWJJbnNwZWN0b3IuX3Jvb3RWaWV3OworICAgICAgICBw
YXJlbnRWaWV3Ll9hZGRDaGlsZFZpZXcodGhpcyk7CisgICAgfSwKKworICAgIF9oYW5kbGVSZW1v
dmVkRnJvbURvY3VtZW50OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGlmICh0aGlz
Ll9wYXJlbnRWaWV3KQorICAgICAgICAgICAgdGhpcy5fcGFyZW50Vmlldy5fcmVtb3ZlQ2hpbGRW
aWV3KHRoaXMpOworICAgIH0sCisKKyAgICBwcmludFZpZXdIaWVyYXJjaHk6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIHZhciBsaW5lcyA9IFtdOworICAgICAgICB0aGlzLl9jb2xsZWN0Vmll
d0hpZXJhcmNoeSgiIiwgbGluZXMpOworICAgICAgICBjb25zb2xlLmxvZyhsaW5lcy5qb2luKCJc
biIpKTsKKyAgICB9LAorCisgICAgX2NvbGxlY3RWaWV3SGllcmFyY2h5OiBmdW5jdGlvbihwcmVm
aXgsIGxpbmVzKQorICAgIHsKKyAgICAgICAgbGluZXMucHVzaChwcmVmaXggKyAiWyIgKyB0aGlz
LmVsZW1lbnQuY2xhc3NOYW1lICsgIl0iICsgKHRoaXMuX2NoaWxkcmVuLmxlbmd0aCA/ICIgeyIg
OiAiIikpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fY2hpbGRyZW4ubGVu
Z3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl9jaGlsZHJlbltpXS5fY29sbGVjdFZpZXdIaWVy
YXJjaHkocHJlZml4ICsgIiAgICAiLCBsaW5lcyk7CisKKyAgICAgICAgaWYgKHRoaXMuX2NoaWxk
cmVuLmxlbmd0aCkKKyAgICAgICAgICAgIGxpbmVzLnB1c2gocHJlZml4ICsgIn0iKTsKICAgICB9
CiB9CiAKIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0
b3IuT2JqZWN0LnByb3RvdHlwZTsKKworV2ViSW5zcGVjdG9yLl9yb290VmlldyA9IG5ldyBXZWJJ
bnNwZWN0b3IuVmlldygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggMWMxMWNkMDk1MWRiMGU4ZTlhNzUyYjNlNGU4NWI1OGJi
NjliOTgyMC4uMzk3YTEzZTBiMjIyNzM1M2RkZTU4ZTYwOTk0ZWU1NmY5ZTExZWQ2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBA
IC0zNiw2ICszNiw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyIgaHJlZj0iaW5zcGVjdG9yLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaW5zcGVjdG9yQ29tbW9uLmNzcyI+CiAgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaW5zcGVjdG9yU3ludGF4
SGlnaGxpZ2h0LmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyIgaHJlZj0ibmV0d29ya0xvZ1ZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IHR5cGU9InRleHQvY3NzIiBocmVmPSJuZXR3b3JrUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJoZWxwU2NyZWVuLmNzcyI+CiAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0icG9wb3Zlci5jc3Mi
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDNkZDdkMGYzNjVmMmEwZDU2MTdlNWYxMWM1ODk2NmRjZWJiODAxZTcuLmVmN2Ni
Mjg1ZjliOWFmNjZmMGVmODdmYmFjYzNlZWIwYjc4ZWNhYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMS0xMC0xOSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogZ2V0IHJpZCBvZiBtYW51YWwgdmlldyBoaWVyYXJjaHkgbWFu
YWdlbWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwNDE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBpbnNwZWN0b3Ivdmlldy1ldmVudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rv
ci92aWV3LWV2ZW50cy5odG1sOgorCiAyMDExLTEwLTE5ICBZdXpvIEZ1amlzaGltYSAgPHl1em9A
Z29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFRlc3QgZXhwZWN0YXRpb24gY2hhbmdl
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy1leHBlY3RlZC50eHQKaW5k
ZXggYTA2MjBjZGVmY2IzMWRlM2FiMmE1ZTI3NmM2OWZjOTlmOTkxYjI5MC4uNmMzNzFjODk0NTc2
NDViZmFiN2YxNzc0MTI3NDNiODIzMmI2NjRmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3ZpZXctZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivdmlldy1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC01LDEzICs1LDEzIEBAIHBhcmVudFZpZXcu
c2hvdyhyb290KQogPiBQYXJlbnRWaWV3Lm9uUmVzaXplKCkKIHBhcmVudFZpZXcuZG9SZXNpemUo
KQogPiBQYXJlbnRWaWV3Lm9uUmVzaXplKCkKLWNoaWxkVmlldy5zaG93KCkKK2NoaWxkVmlldy5z
aG93KHBhcmVudFZpZXcuZWxlbWVudCkKID4gQ2hpbGRWaWV3Lndhc1Nob3duKCkKID4gQ2hpbGRW
aWV3Lm9uUmVzaXplKCkKIHBhcmVudFZpZXcuZG9SZXNpemUoKQogPiBQYXJlbnRWaWV3Lm9uUmVz
aXplKCkKID4gQ2hpbGRWaWV3Lm9uUmVzaXplKCkKLXBhcmVudFZpZXcuaGlkZShyb290KQorcGFy
ZW50Vmlldy5oaWRlKCkKID4gUGFyZW50Vmlldy53aWxsSGlkZSgpCiA+IENoaWxkVmlldy53aWxs
SGlkZSgpCiBwYXJlbnRWaWV3LnNob3cocm9vdCkKQEAgLTIxLDYgKzIxLDYgQEAgcGFyZW50Vmll
dy5zaG93KHJvb3QpCiA+IENoaWxkVmlldy5vblJlc2l6ZSgpCiBjaGlsZFZpZXcuaGlkZSgpCiA+
IENoaWxkVmlldy53aWxsSGlkZSgpCi1wYXJlbnRWaWV3LmhpZGUocm9vdCkKK3BhcmVudFZpZXcu
aGlkZSgpCiA+IFBhcmVudFZpZXcud2lsbEhpZGUoKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivdmlldy1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3
LWV2ZW50cy5odG1sCmluZGV4IDBkMzhlYjYyOTNiY2NiMTJhYjBmY2VmYmQyNzM2MjE0YzliMDk0
NzguLjc4M2Y3NjgxMDEyNjYwZGE2YzdmZjAxN2Q0ZDk3ZTg1Mjc4MDYxMWEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sCkBAIC00MSwyMCArNDEsMTkgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgfQogICAgIHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnRW
aWV3Iik7CiAgICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGRWaWV3Iik7Ci0g
ICAgcGFyZW50Vmlldy5hZGRDaGlsZFZpZXcoY2hpbGRWaWV3KTsKICAgICB2YXIgcm9vdCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLXBhbmVscyIpOwogICAgIHRyYWNlRXZhbChbCiAg
ICAgICAgICJwYXJlbnRWaWV3LnNob3cocm9vdCkiLAogICAgICAgICAicGFyZW50Vmlldy5kb1Jl
c2l6ZSgpIiwKLSAgICAgICAgImNoaWxkVmlldy5zaG93KCkiLAorICAgICAgICAiY2hpbGRWaWV3
LnNob3cocGFyZW50Vmlldy5lbGVtZW50KSIsCiAgICAgICAgICJwYXJlbnRWaWV3LmRvUmVzaXpl
KCkiLAotICAgICAgICAicGFyZW50Vmlldy5oaWRlKHJvb3QpIiwKKyAgICAgICAgInBhcmVudFZp
ZXcuaGlkZSgpIiwKICAgICAgICAgInBhcmVudFZpZXcuc2hvdyhyb290KSIsCiAgICAgICAgICJj
aGlsZFZpZXcuaGlkZSgpIiwKLSAgICAgICAgInBhcmVudFZpZXcuaGlkZShyb290KSIKKyAgICAg
ICAgInBhcmVudFZpZXcuaGlkZSgpIgogICAgIF0pOwotICAgIHBhcmVudFZpZXcucmVtb3ZlQ2hp
bGRWaWV3KGNoaWxkVmlldyk7Ci0gICAgcm9vdC5yZW1vdmVDaGlsZChwYXJlbnRWaWV3LmVsZW1l
bnQpOworICAgIGNoaWxkVmlldy5kZXRhY2goKTsKKyAgICBwYXJlbnRWaWV3LmRldGFjaCgpOwog
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111627</attachid>
            <date>2011-10-19 08:39:43 -0700</date>
            <delta_ts>2011-10-19 09:40:35 -0700</delta_ts>
            <desc>[Patch] Review comments addressed</desc>
            <filename>bug-70417-20111019193941.patch</filename>
            <type>text/plain</type>
            <size>34941</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc4NDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNzRiMWI1NDY2NThkNDRi
YjdmNzU1YWIwZTU2NTY4YTI5YTE4MGNjLi45NzA0NWM4YzU5M2MzMmU1OTNlY2VkYWMwNzk1Mjlh
YTZkY2M3OTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzggQEAKKzIwMTEtMTAtMTkgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGdldCByaWQgb2YgbWFudWFsIHZpZXcgaGllcmFyY2h5IG1hbmFnZW1lbnQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQxNworICAgICAgICBUaGlz
IGNoYW5nZSByZW1vdmVzIG5lY2Vzc2l0eSB0byBtYW5hZ2UgdmlldyBoaWVyYXJjaHkgbWFudWFs
bHkKKyAgICAgICAgKGFkZC9yZW1vdmVDaGlsZFZpZXcgbWV0aG9kcyBhcmUgZ29pbmcgYXdheSku
IEl0IG1heSB0ZW1wb3JhcmlseQorICAgICAgICByZWdyZXNzIG5ldHdvcmsgdmlldyBwZXJmb3Jt
YW5jZSwgYnV0IEkgaGF2ZSBhIHBlbmRpbmcgY2hhbmdlCisgICAgICAgIHRoYXQgbG9hZHMgQ1NT
IG9uIHBlci1jb21wb25lbnQgYmFzaXMgYW5kIHJlc3RvcmVzIGl0LgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9B
dWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbC5wcm90b3R5
cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlLl9j
bGVhckJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29s
ZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUu
c2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlwZS5oaWRl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RHcmlkTm9k
ZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5v
ZGUucHJvdG90eXBlLnF1ZXJ5T2JqZWN0Q29udGVudC5lbHNlLmZvcm1hdFJlc3VsdCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5vZGUucHJvdG90eXBl
LnF1ZXJ5T2JqZWN0Q29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRh
aWxlZEhlYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBz
aG90Vmlldy5wcm90b3R5cGUuc2hvdy5wcm9maWxlQ2FsbGJhY2syKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJvdG90eXBlLl9jaGFuZ2VWaWV3KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanM6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTmV0d29ya0xvZ1ZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3
LnByb3RvdHlwZS5faW5pdGlhbGl6ZVZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdv
cmtQYW5lbC5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1Bh
bmVsLnByb3RvdHlwZS5fc2hvd1Jlc291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3
b3JrUGFuZWwucHJvdG90eXBlLl9jbG9zZVZpc2libGVSZXNvdXJjZSk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5w
cm90b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmRl
dGFjaCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9yZXNldCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuY2xvc2VWaXNpYmxl
Vmlldyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanM6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVByZXZpZXdWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlUHJldmlld1ZpZXcucHJvdG90eXBlLmNvbnRlbnRM
b2FkZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VSZXNwb25zZVZp
ZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VSZXNwb25zZVZpZXcucHJvdG90
eXBlLmNvbnRlbnRMb2FkZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VUaW1pbmdWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5nVmll
dy5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5
cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlw
ZS5faW5uZXJTaG93Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZVRy
ZWVFbGVtZW50LnByb3RvdHlwZS5fcmVjcmVhdGVTb3VyY2VWaWV3KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlLl91aVNvdXJjZUNvZGVSZW1vdmVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jcmVhdGVTb3VyY2VGcmFtZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fcmVtb3ZlU291cmNl
RnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lLnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1RhYmJlZFBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUuYXBwZW5kVGFiKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZS5faGlkZVRhYik6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlZpZXcucHJvdG90eXBlLmF0dGFjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmll
dy5wcm90b3R5cGUuZGV0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlw
ZS5fYWRkQ2hpbGRWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5f
cmVtb3ZlQ2hpbGRWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5k
aXNwYXRjaFRvVmlzaWJsZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnBy
b3RvdHlwZS5faGFuZGxlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpZXcucHJvdG90eXBlLl9oYW5kbGVSZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5wcmludFZpZXdIaWVyYXJjaHkpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9jb2xsZWN0Vmlld0hpZXJhcmNoeSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKwogMjAxMS0xMC0xOSAgVG9tYXN6IE1v
cmF3c2tpICA8dC5tb3Jhd3NraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEFk
ZGVkIG1pc3NpbmcgZmlsZXMgdG8gYnVpbGQgV2ViS2l0MiBFRkwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCmluZGV4IGNjMTQyZjBiYzc2
ZWY2YTM0NjJiOTVmM2Q3ZTJlNWFjMThhZWZkMzIuLmUxOTFiNzY0YjIyMTU1Njk0MTJjYTE5Yzc1
OGJmMmJkYzY5ZWI1ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQXVkaXRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9BdWRpdHNQYW5lbC5qcwpAQCAtMjQ0LDkgKzI0NCw5IEBAIFdlYkluc3BlY3Rvci5BdWRp
dHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB4LnNob3codGhpcy52aWV3c0NvbnRh
aW5lckVsZW1lbnQpOwogICAgIH0sCiAKLSAgICBhdHRhY2g6IGZ1bmN0aW9uKCkKKyAgICBzaG93
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LmF0dGFjaC5jYWxsKHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LnNob3cuY2FsbCh0aGlzKTsKIAogICAgICAgICB0aGlzLmF1ZGl0c0l0ZW1UcmVlRWxlbWVudC5z
ZWxlY3QoKTsKICAgICB9LApAQCAtMjU4LDYgKzI1OCwxMyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRz
UGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2NsZWFyQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24o
KQogICAgIHsKKyAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5hdWRpdFJlc3VsdHNUcmVlRWxl
bWVudC5jaGlsZHJlbjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5n
dGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGNoaWxkID0gY2hpbGRyZW5baV07CisgICAgICAg
ICAgICB2YXIgdmlldyA9IGNoaWxkLnJlc3VsdHMuX3Jlc3VsdFZpZXc7CisgICAgICAgICAgICB2
aWV3LmRldGFjaCgpOworICAgICAgICB9CisKICAgICAgICAgdGhpcy5hdWRpdHNJdGVtVHJlZUVs
ZW1lbnQucmV2ZWFsQW5kU2VsZWN0KCk7CiAgICAgICAgIHRoaXMuYXVkaXRSZXN1bHRzVHJlZUVs
ZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCmluZGV4IDExMDYxNTAxNjA1MGI2M2Qw
M2RiMjU2YTYxNTM3MWIwOTY4YWRjMjYuLjlkMDM2MmI0MGVhZTVlMmRiNTE0ZDE5ZjE3YjkzMGFi
NzAyNDgwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVBhbmVsLmpzCkBAIC01NiwxNSArNTYsMTMgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9kcmF3ZXJXYXNWaXNpYmxlID0g
dHJ1ZTsKICAgICAgICAgfQogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNo
b3cuY2FsbCh0aGlzKTsKLQotICAgICAgICB0aGlzLmFkZENoaWxkVmlldyh0aGlzLl92aWV3KTsK
LSAgICAgICAgdGhpcy5fdmlldy5zaG93KCk7CisgICAgICAgIHRoaXMuX3ZpZXcuc2hvdyh0aGlz
LmVsZW1lbnQpOwogICAgIH0sCiAKICAgICBoaWRlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAg
ICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmhpZGUuY2FsbCh0aGlzKTsKLSAgICAgICAg
dGhpcy5yZW1vdmVDaGlsZFZpZXcodGhpcy5fdmlldyk7CisgICAgICAgIHRoaXMuX3ZpZXcuZGV0
YWNoKCk7CiAgICAgICAgIGlmICh0aGlzLl9kcmF3ZXJXYXNWaXNpYmxlKSB7CiAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuZHJhd2VyLnNob3codGhpcy5fdmlldywgV2ViSW5zcGVjdG9yLkRyYXdl
ci5BbmltYXRpb25UeXBlLkltbWVkaWF0ZWx5KTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9k
cmF3ZXJXYXNWaXNpYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZXRhaWxlZEhlYXBzaG90R3JpZE5vZGVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90R3JpZE5vZGVzLmpzCmluZGV4IDI3OWFi
NjEyMzY5ZDYwYzFiZjUzYTc2OGIxZjUzYzVkMjdmNmE3N2EuLmJhOTdkMTkzYWUzNzA5MTcyMzAy
Y2FhMjAxZmE3ZDA1NzMwNTc2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdEdyaWROb2Rlcy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RHcmlkTm9kZXMuanMKQEAg
LTI3OCw3ICsyNzgsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5v
ZGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGlmICghZXJyb3IgJiYgb2JqZWN0LnR5
cGUpCiAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QuZnJvbVBheWxvYWQob2JqZWN0KSwgISFlcnJvcik7CiAgICAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZy
b21FcnJvcihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vdCBhdmFpbGFibGUiKSkpOworICAgICAg
ICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21Qcmlt
aXRpdmVWYWx1ZShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vdCBhdmFpbGFibGUiKSkpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBPYmpl
Y3RJZCh0aGlzLnNuYXBzaG90Tm9kZUlkLCBmb3JtYXRSZXN1bHQpOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNo
b3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhl
YXBzaG90Vmlldy5qcwppbmRleCA2ODY3MzBjNjQ5ZDIzMDJhZTQ4ZDYwNzJhZmM2N2MxNWI4YmQ5
Mzc1Li42ZmMxNjE5N2U1NGZkZGEyMWViZjJhYzE4OGZkOTE2MGQ0OWZkMjMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFw
c2hvdFZpZXcuanMKQEAgLTY5Nyw3ICs2OTcsNyBAQCBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFw
c2hvdFZpZXcucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gcHJv
ZmlsZUNhbGxiYWNrMigpIHsKLSAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXcuc2hvdygpOwor
ICAgICAgICAgICAgdGhpcy5jdXJyZW50Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAg
ICAgICB0aGlzLmRhdGFHcmlkLnVwZGF0ZVdpZHRocygpOwogICAgICAgICB9CiAgICAgfSwKQEAg
LTEwMDAsNyArMTAwMCw3IEBAIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciB2aWV3ID0gdGhpcy52aWV3c1t0aGlzLnZpZXdzLmN1cnJl
bnRdOwogICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gdmlldy52aWV3OwogICAgICAgICB0aGlz
LmRhdGFHcmlkID0gdmlldy5ncmlkOwotICAgICAgICB0aGlzLmN1cnJlbnRWaWV3LnNob3coKTsK
KyAgICAgICAgdGhpcy5jdXJyZW50Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgIHRo
aXMucmVmcmVzaFZpc2libGVEYXRhKCk7CiAgICAgICAgIHRoaXMuZGF0YUdyaWQudXBkYXRlV2lk
dGhzKCk7CiAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRWaWV3ID09PSB0aGlzLmRpZmZWaWV3KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VtcHR5Vmll
dy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCmlu
ZGV4IGZiMDMyMWU1ZDk3NWZmMWU5MjIxOTA4YmVlMTgwNzIxODNkMDY4NzQuLmY5ODY2MTJkOTk4
MDBlY2NhZWRiYWJkZTFhZTRmMGYwMDUwNzFlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCkBAIC00MCw3ICs0MCw3IEBAIFdlYkluc3Bl
Y3Rvci5FbXB0eVZpZXcgPSBmdW5jdGlvbih0ZXh0KQogCiBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3
LnByb3RvdHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0VsZW1lbnQ9fSBwYXJlbnRF
bGVtZW50CisgICAgICogQHBhcmFtIHtFbGVtZW50fSBwYXJlbnRFbGVtZW50CiAgICAgICovCiAg
ICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanMKaW5kZXggOGRiZDU4MWM4ODI3
Y2ExZjQ1MGRjNGU0MjY0NjAzNzY0MDE0YTdiYy4uOGQwZjdkZjM3MzE1OWU2MzcxYWNkYzMwMzRj
MjA4NzgwYmUxNjExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9JRnJhbWVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSUZyYW1lVmlldy5qcwpAQCAtNDEsMTcgKzQxLDYgQEAgV2ViSW5zcGVjdG9yLklGcmFtZVZp
ZXcgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50LCBzdHlsZXNoZWV0cykKIH0KIAogV2ViSW5zcGVj
dG9yLklGcmFtZVZpZXcucHJvdG90eXBlID0gewotICAgIF9pbm5lclNob3c6IGZ1bmN0aW9uKCkK
LSAgICB7Ci0gICAgICAgIHRoaXMuX2lmcmFtZUVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlzaWJs
ZSIpOwotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuX2lubmVyU2hvdy5jYWxs
KHRoaXMpOwotICAgIH0sCi0KLSAgICBfaW5uZXJIaWRlOiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICB0aGlzLl9pZnJhbWVFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInZpc2libGUiKTsKLSAg
ICB9LAotCiAgICAgYXR0YWNoOiBmdW5jdGlvbihwYXJlbnQpCiAgICAgewogICAgICAgICBpZiAo
dGhpcy5faW5pdGlhbGl6ZVZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCmluZGV4IDFiZDRjYzM1NWVmM2YxNTcxMDY3OGJkYzc2
NmMxY2Q3NTVlNTM5NzQuLmM0NDFlZGU1ZDYzZTNkYmM5NzcyMzk0Y2Q5ZmYzMDBkODI0YzY2YzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1Bh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1Bh
bmVsLmpzCkBAIC0zMCwxNyArMzAsMTEgQEAKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuSUZyYW1lVmlld30KKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0
b3IuVmlld30KICAqLwotV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3ID0gZnVuY3Rpb24ocGFy
ZW50RWxlbWVudCkKK1dlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldyA9IGZ1bmN0aW9uKCkKIHsK
LSAgICAvLyBGSVhNRTogc29tZSBvZiB0aGUgc3R5bGVzIHNob3VsZCBiZSBsb2FkZWQgb24gZGVt
YW5kIGJ5IGNvbXBvbmVudHMgdGhhdCBuZWVkIHRoZW0uCi0gICAgdmFyIHN0eWxlcyA9IFsKLSAg
ICAgICAgImluc3BlY3RvckNvbW1vbi5jc3MiLAotICAgICAgICAiZGF0YUdyaWQuY3NzIiwKLSAg
ICAgICAgIm5ldHdvcmtMb2dWaWV3LmNzcyIKLSAgICBdOwotICAgIFdlYkluc3BlY3Rvci5JRnJh
bWVWaWV3LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCwgc3R5bGVzKTsKKyAgICBXZWJJbnNwZWN0
b3IuVmlldy5jYWxsKHRoaXMpOwogCiAgICAgdGhpcy5fYWxsb3dSZXNvdXJjZVNlbGVjdGlvbiA9
IGZhbHNlOwogICAgIHRoaXMuX3Jlc291cmNlcyA9IFtdOwpAQCAtNjksMTAgKzYzLDEyIEBAIFdl
Ykluc3BlY3Rvci5OZXR3b3JrTG9nVmlldyA9IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCiAgICAg
V2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVOYXZpZ2F0ZWQsIHRoaXMuX2Zy
YW1lTmF2aWdhdGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBl
cy5PbkxvYWQsIHRoaXMuX29uTG9hZEV2ZW50RmlyZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rv
ci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbC5FdmVudFR5cGVzLkRPTUNvbnRlbnRMb2FkZWQsIHRoaXMuX2RvbUNvbnRlbnRM
b2FkZWRFdmVudEZpcmVkLCB0aGlzKTsKKworICAgIHRoaXMuX2luaXRpYWxpemVWaWV3KCk7CiB9
CiAKIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7Ci0gICAgaW5pdGlh
bGl6ZVZpZXc6IGZ1bmN0aW9uKCkKKyAgICBfaW5pdGlhbGl6ZVZpZXc6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIHRoaXMuZWxlbWVudC5pZCA9ICJuZXR3b3JrLWNvbnRhaW5lciI7CiAKQEAg
LTY1MCwxMyArNjQ2LDEzIEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUg
PSB7CiAKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVj
dG9yLklGcmFtZVZpZXcucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhpcyk7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwogICAgICAgICB0
aGlzLl9yZWZyZXNoSWZOZWVkZWQoKTsKICAgICB9LAogCiAgICAgd2lsbEhpZGU6IGZ1bmN0aW9u
KCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3LnByb3RvdHlwZS53aWxs
SGlkZS5jYWxsKHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUud2ls
bEhpZGUuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fcG9wb3ZlckhlbHBlci5oaWRlUG9wb3Zl
cigpOwogICAgIH0sCiAKQEAgLTEyMDUsNyArMTIwMSw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3Jr
TG9nVmlldy5wcm90b3R5cGUgPSB7CiAgICAgfQogfTsKIAotV2ViSW5zcGVjdG9yLk5ldHdvcmtM
b2dWaWV3LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5wcm90
b3R5cGU7CitXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlLl9fcHJvdG9fXyA9
IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZTsKIAogV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dW
aWV3LkV2ZW50VHlwZXMgPSB7CiAgICAgVmlld0NsZWFyZWQ6ICJWaWV3Q2xlYXJlZCIsCkBAIC0x
MjI0LDggKzEyMjAsNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsID0gZnVuY3Rpb24oKQog
ICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsICJuZXR3b3JrIik7CiAKICAgICB0aGlz
LmNyZWF0ZVNpZGViYXIoKTsKLSAgICB0aGlzLl9uZXR3b3JrTG9nVmlldyA9IG5ldyBXZWJJbnNw
ZWN0b3IuTmV0d29ya0xvZ1ZpZXcodGhpcy5zaWRlYmFyRWxlbWVudCk7Ci0gICAgdGhpcy5hZGRD
aGlsZFZpZXcodGhpcy5fbmV0d29ya0xvZ1ZpZXcpOworICAgIHRoaXMuX25ldHdvcmtMb2dWaWV3
ID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldygpOwogCiAgICAgdGhpcy5fdmlld3ND
b250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhp
cy5fdmlld3NDb250YWluZXJFbGVtZW50LmlkID0gIm5ldHdvcmstdmlld3MiOwpAQCAtMTMwNSw3
ICsxMzAwLDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
c2hvdzogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3Rv
dHlwZS5zaG93LmNhbGwodGhpcyk7Ci0gICAgICAgIHRoaXMuX25ldHdvcmtMb2dWaWV3LnNob3co
KTsKKyAgICAgICAgdGhpcy5fbmV0d29ya0xvZ1ZpZXcuc2hvdyh0aGlzLnNpZGViYXJFbGVtZW50
KTsKICAgICB9LAogCiAgICAgZ2V0IHJlc291cmNlcygpCkBAIC0xMzg2LDEyICsxMzgxLDExIEBA
IFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl90
b2dnbGVWaWV3aW5nUmVzb3VyY2VNb2RlKCk7CiAKICAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZp
ZXcpIHsKLSAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRWaWV3KHRoaXMudmlzaWJsZVZpZXcp
OworICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5kZXRhY2goKTsKICAgICAgICAgICAgIGRl
bGV0ZSB0aGlzLnZpc2libGVWaWV3OwogICAgICAgICB9CiAKICAgICAgICAgdmFyIHZpZXcgPSBu
ZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtJdGVtVmlldyhyZXNvdXJjZSk7Ci0gICAgICAgIHRoaXMu
YWRkQ2hpbGRWaWV3KHZpZXcpOwogICAgICAgICB2aWV3LnNob3codGhpcy5fdmlld3NDb250YWlu
ZXJFbGVtZW50KTsKICAgICAgICAgdGhpcy52aXNpYmxlVmlldyA9IHZpZXc7CiAKQEAgLTE0MDMs
NyArMTM5Nyw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygidmlld2luZy1yZXNvdXJjZSIpOwog
CiAgICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3KSB7Ci0gICAgICAgICAgICB0aGlzLnJlbW92
ZUNoaWxkVmlldyh0aGlzLnZpc2libGVWaWV3KTsKKyAgICAgICAgICAgIHRoaXMudmlzaWJsZVZp
ZXcuZGV0YWNoKCk7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy52aXNpYmxlVmlldzsKICAgICAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Bh
bmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcwppbmRl
eCAwYzdiMzI0OTRkNzRjMDJkYjAwNGE2ZmIxZWQ2YTc0YzU4OTc3ZTdhLi5iNTliNzlhNmZkMDMy
NzkyYmFjZTY5M2U5OGI1ZjM0ZDRiYzczYWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUGFuZWwuanMKQEAgLTYzLDcgKzYzLDEwIEBAIFdlYkluc3BlY3Rvci5QYW5l
bC5wcm90b3R5cGUgPSB7CiAKICAgICBzaG93OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBX
ZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMpOworICAgICAgICBpZiAo
IVdlYkluc3BlY3Rvci5QYW5lbC5fbWFpblBhbmVsc0VsZW1lbnQpCisgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuUGFuZWwuX21haW5QYW5lbHNFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm1haW4tcGFuZWxzIik7CisgICAgCisgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS5zaG93LmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLlBhbmVsLl9tYWluUGFuZWxzRWxlbWVu
dCk7CiAKICAgICAgICAgdmFyIHN0YXR1c0Jhckl0ZW1zID0gdGhpcy5zdGF0dXNCYXJJdGVtczsK
ICAgICAgICAgaWYgKHN0YXR1c0Jhckl0ZW1zKSB7CkBAIC0xMDQsMTIgKzEwNyw2IEBAIFdlYklu
c3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLnNpZGViYXJU
cmVlRWxlbWVudCB8fCB0aGlzLmVsZW1lbnQ7CiAgICAgfSwKIAotICAgIGF0dGFjaDogZnVuY3Rp
b24oKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnQucGFyZW50Tm9kZSkKLSAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLXBhbmVscyIpLmFwcGVuZENoaWxk
KHRoaXMuZWxlbWVudCk7Ci0gICAgfSwKLQogICAgIHNlYXJjaENhbmNlbGVkOiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRhdGVTZWFy
Y2hNYXRjaGVzQ291bnQoMCwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKaW5kZXggMmExYWI3NDYxZmVjMGMwYThiZTAw
ODk2ZGVmZjQ5Yjc2ODBhNmY0ZC4uZWExNDFjZDZlMWZmNjIyMjA1YWE2ZjYwMzliYWZlNGU0YjYx
NzZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9m
aWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJv
ZmlsZXNQYW5lbC5qcwpAQCAtMjA0LDggKzIwNCwxMiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQ
YW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9w
cm9maWxlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHZpZXcgPSB0aGlzLl9wcm9m
aWxlc1tpXS5fcHJvZmlsZVZpZXc7Ci0gICAgICAgICAgICBpZiAodmlldyAmJiAoImRpc3Bvc2Ui
IGluIHZpZXcpKQotICAgICAgICAgICAgICAgIHZpZXcuZGlzcG9zZSgpOworICAgICAgICAgICAg
aWYgKHZpZXcpIHsKKyAgICAgICAgICAgICAgICB2aWV3LmRldGFjaCgpOworICAgICAgICAgICAg
ICAgIGlmICgiZGlzcG9zZSIgaW4gdmlldykKKyAgICAgICAgICAgICAgICAgICAgdmlldy5kaXNw
b3NlKCk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wcm9maWxl
c1tpXS5fcHJvZmlsZVZpZXc7CiAgICAgICAgIH0KICAgICAgICAgZGVsZXRlIHRoaXMudmlzaWJs
ZVZpZXc7CkBAIC0yMzEsNyArMjM1LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygpOwogCiAgICAgICAg
IHRoaXMuX3VwZGF0ZUludGVyZmFjZSgpOwotICAgICAgICB0aGlzLndlbGNvbWVWaWV3LnNob3co
KTsKKyAgICAgICAgdGhpcy53ZWxjb21lVmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgfSwK
IAogICAgIF9jbGVhclByb2ZpbGVzOiBmdW5jdGlvbigpCkBAIC01MTMsNyArNTE3LDcgQEAgV2Vi
SW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgIGNsb3NlVmlzaWJsZVZp
ZXc6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3KQotICAg
ICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5oaWRlKCk7CisgICAgICAgICAgICB0aGlzLnZpc2li
bGVWaWV3LmRldGFjaCgpOwogICAgICAgICBkZWxldGUgdGhpcy52aXNpYmxlVmlldzsKICAgICB9
LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90
ZU9iamVjdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2Jq
ZWN0LmpzCmluZGV4IGMwZWExZmI0NmJmOGU3ZjJiNjBjNWQzNTM3NTQwZWM3MzAwZWQyOTQuLmE1
M2MyOTU2ODAyYTVjOTQ1ZGUwOWI2YTM5Mzg3YTVhZjg2Mzk5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCkBAIC01NCwxMSAr
NTQsNiBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQsIHR5
cGUsIHN1YnR5cGUsIHZhbHVlLCBkZXNjcmlwdGlvbgogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdC5mcm9tRXJyb3IgPSBmdW5jdGlvbihlcnJvckRlc2NyaXB0aW9uKQotewot
ICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdChudWxsLCBudWxsLCBudWxs
LCBlcnJvckRlc2NyaXB0aW9uKTsKLX0KLQogV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9t
UHJpbWl0aXZlVmFsdWUgPSBmdW5jdGlvbih2YWx1ZSkKIHsKICAgICByZXR1cm4gbmV3IFdlYklu
c3BlY3Rvci5SZW1vdGVPYmplY3QobnVsbCwgdHlwZW9mIHZhbHVlLCBudWxsLCB2YWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlUHJl
dmlld1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
UHJldmlld1ZpZXcuanMKaW5kZXggNmI2MmIzYTMzOGRkZmIyNDkyYjdkZmY4ZDAzZWE0NTBlMjI3
ZjhlOS4uYTAzNDgwMTkxMWM5ZTkwZWRiYWExODJjMTc3Yzk5MTc4MDIzMmI5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVByZXZpZXdWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VQcmV2
aWV3Vmlldy5qcwpAQCAtNDQsMTkgKzQ0LDE4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVByZXZp
ZXdWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0aGlzLnJlc291cmNlLmNvbnRlbnQp
IHsKICAgICAgICAgICAgIGlmICghdGhpcy5fZW1wdHlWaWV3KSB7CiAgICAgICAgICAgICAgICAg
dGhpcy5fZW1wdHlWaWV3ID0gdGhpcy5fY3JlYXRlRW1wdHlWaWV3KCk7Ci0gICAgICAgICAgICAg
ICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fZW1wdHlWaWV3KTsKLSAgICAgICAgICAgICAgICB0
aGlzLl9lbXB0eVZpZXcuc2hvdygpOworICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5Vmlldy5z
aG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgICAgICAgICAgdGhpcy5pbm5lclZpZXcgPSB0aGlz
Ll9lbXB0eVZpZXc7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBpZiAodGhpcy5fZW1wdHlWaWV3KSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDaGls
ZFZpZXcodGhpcy5fZW1wdHlWaWV3KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcu
ZGV0YWNoKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2VtcHR5VmlldzsKICAgICAg
ICAgICAgIH0KKwogICAgICAgICAgICAgaWYgKCF0aGlzLl9wcmV2aWV3VmlldykKICAgICAgICAg
ICAgICAgICB0aGlzLl9wcmV2aWV3VmlldyA9IHRoaXMuX2NyZWF0ZVByZXZpZXdWaWV3KCk7Ci0g
ICAgICAgICAgICB0aGlzLmFkZENoaWxkVmlldyh0aGlzLl9wcmV2aWV3Vmlldyk7Ci0gICAgICAg
ICAgICB0aGlzLl9wcmV2aWV3Vmlldy5zaG93KCk7CisgICAgICAgICAgICB0aGlzLl9wcmV2aWV3
Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgICAgICB0aGlzLmlubmVyVmlldyA9IHRo
aXMuX3ByZXZpZXdWaWV3OwogICAgICAgICB9CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VSZXNwb25zZVZpZXcuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlUmVzcG9uc2VWaWV3LmpzCmlu
ZGV4IDQ5MTQ1N2VhMmQzMjRkMWRhOTBkYjM2MjY4ZWMyOWFkN2I0OWRlZjguLjJkMGY1M2NmYjlm
YTE1YmQwMDk2YmQxNmVkYjA1ZTI3NGFjMDhmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VSZXNwb25zZVZpZXcuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVJlc3BvbnNlVmlldy5qcwpAQCAt
NTAsMTcgKzUwLDE2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVJlc3BvbnNlVmlldy5wcm90b3R5
cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy5yZXNvdXJjZS5jb250ZW50IHx8ICF0aGlzLnNvdXJj
ZVZpZXcpIHsKICAgICAgICAgICAgIGlmICghdGhpcy5fZW1wdHlWaWV3KSB7CiAgICAgICAgICAg
ICAgICAgdGhpcy5fZW1wdHlWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5FbXB0eVZpZXcoV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJUaGlzIHJlcXVlc3QgaGFzIG5vIHJlc3BvbnNlIGRhdGEgYXZhaWxh
YmxlLiIpKTsKLSAgICAgICAgICAgICAgICB0aGlzLmFkZENoaWxkVmlldyh0aGlzLl9lbXB0eVZp
ZXcpOwotICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5Vmlldy5zaG93KCk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fZW1wdHlWaWV3LnNob3codGhpcy5lbGVtZW50KTsKICAgICAgICAgICAgICAg
ICB0aGlzLmlubmVyVmlldyA9IHRoaXMuX2VtcHR5VmlldzsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9lbXB0eVZpZXcpIHsKLSAgICAgICAg
ICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyh0aGlzLl9lbXB0eVZpZXcpOworICAgICAgICAg
ICAgICAgIHRoaXMuX2VtcHR5Vmlldy5kZXRhY2goKTsKICAgICAgICAgICAgICAgICBkZWxldGUg
dGhpcy5fZW1wdHlWaWV3OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5hZGRDaGls
ZFZpZXcodGhpcy5zb3VyY2VWaWV3KTsKLSAgICAgICAgICAgIHRoaXMuc291cmNlVmlldy5zaG93
KCk7CisKKyAgICAgICAgICAgIHRoaXMuc291cmNlVmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAg
ICAgICAgICAgICB0aGlzLmlubmVyVmlldyA9IHRoaXMuc291cmNlVmlldzsKICAgICAgICAgfQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VUaW1pbmdWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZVRpbWluZ1ZpZXcuanMKaW5kZXggZWMzZmQxYTM3YzA2ZjNhMWZmYTNkOWM1MTU1NDYw
ODY3OWEzYmVkNi4uOWI5NWM2OWMwYWExMzIwN2IzZjk0NGNkZmRhZjg2Mzc4MDZkOWYzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRpbWlu
Z1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVRpbWluZ1ZpZXcuanMKQEAgLTQ4LDggKzQ4LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVGlt
aW5nVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy5fcmVzb3VyY2UudGltaW5n
KSB7CiAgICAgICAgICAgICBpZiAoIXRoaXMuX2VtcHR5VmlldykgewogICAgICAgICAgICAgICAg
IHRoaXMuX2VtcHR5VmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3KFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiVGhpcyByZXF1ZXN0IGhhcyBubyBkZXRhaWxlZCB0aW1pbmcgaW5mby4iKSk7
Ci0gICAgICAgICAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fZW1wdHlWaWV3KTsKLSAg
ICAgICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcuc2hvdygpOworICAgICAgICAgICAgICAgIHRo
aXMuX2VtcHR5Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgICAgICAgICAgdGhpcy5p
bm5lclZpZXcgPSB0aGlzLl9lbXB0eVZpZXc7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQp
OwpAQCAtNTcsNyArNTYsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1pbmdWaWV3LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh0aGlzLl9lbXB0eVZpZXcpIHsKLSAg
ICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRWaWV3KHRoaXMuX2VtcHR5Vmlldyk7CisgICAgICAg
ICAgICB0aGlzLl9lbXB0eVZpZXcuZGV0YWNoKCk7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5f
ZW1wdHlWaWV3OwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCmluZGV4IDU4NjBiZmRjMGVjZTNjMDg3ZTcy
YTYwMDQyMjYyZTliNWFhZTVmOWQuLjk0MmQ2ZWRjMGM1Y2FiYTlhZWQ4MTk0ZGI2ODYwODZiZjBk
MGU0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZXNQYW5lbC5qcwpAQCAtMTcxLDEwICsxNzEsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIGlmICh0aGlzLnNpZGViYXJUcmVlLnNl
bGVjdGVkVHJlZUVsZW1lbnQpCiAgICAgICAgICAgICB0aGlzLnNpZGViYXJUcmVlLnNlbGVjdGVk
VHJlZUVsZW1lbnQuZGVzZWxlY3QoKTsKLQotICAgICAgICB2YXIgY2hpbGRWaWV3cyA9IHRoaXMu
Y2hpbGRWaWV3cygpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkVmlld3MubGVu
Z3RoOyArK2kpCi0gICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyhjaGlsZFZpZXdzW2ld
KTsKICAgICB9LAogCiAgICAgX3BvcHVsYXRlUmVzb3VyY2VUcmVlOiBmdW5jdGlvbigpCkBAIC01
MDksOSArNTA1LDggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICBfaW5uZXJTaG93VmlldzogZnVuY3Rpb24odmlldykKICAgICB7CiAgICAgICAgIGlmICh0
aGlzLnZpc2libGVWaWV3KQotICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5oaWRlKCk7Cisg
ICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LmRldGFjaCgpOwogCi0gICAgICAgIHRoaXMuYWRk
Q2hpbGRWaWV3KHZpZXcpOwogICAgICAgICB2aWV3LnNob3codGhpcy5zdG9yYWdlVmlld3MpOwog
ICAgICAgICB0aGlzLnZpc2libGVWaWV3ID0gdmlldzsKIApAQCAtMTM0Myw4ICsxMzM4LDcgQEAg
V2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHZhciBvbGRWaWV3UGFyZW50Tm9kZSA9IG9sZFZpZXcudmlzaWJsZSA/IG9sZFZpZXcuZWxl
bWVudC5wYXJlbnROb2RlIDogbnVsbDsKICAgICAgICAgbmV3Vmlldy5pbmhlcml0U2Nyb2xsUG9z
aXRpb25zKG9sZFZpZXcpOwogCi0gICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5yZW1vdmVDaGls
ZFZpZXcodGhpcy5fc291cmNlVmlldyk7Ci0gICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5hZGRD
aGlsZFZpZXcobmV3Vmlldyk7CisgICAgICAgIHRoaXMuX3NvdXJjZVZpZXcuZGV0YWNoKCk7CiAg
ICAgICAgIHRoaXMuX3NvdXJjZVZpZXcgPSBuZXdWaWV3OwogCiAgICAgICAgIGlmIChvbGRWaWV3
UGFyZW50Tm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRzUGFuZWwuanMKaW5kZXggNTQyODU2YTAxN2E3NGJmYWJlODdhZWQ1MGQ1MzA3YjVmMGE5
MGYxOS4uYzljYzU5NDZjYmFmNDNiZWY0NWE4OWFhOTA3MDhjN2Y4NzNiYjQyOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAg
LTI2MCw3ICsyNjAsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICB7CiAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBldmVudC5kYXRhOwogICAgICAgICBp
ZiAodWlTb3VyY2VDb2RlLl9zb3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hp
bGRWaWV3KHVpU291cmNlQ29kZS5fc291cmNlRnJhbWUpOworICAgICAgICAgICAgdWlTb3VyY2VD
b2RlLl9zb3VyY2VGcmFtZS5kZXRhY2goKTsKICAgICB9LAogCiAgICAgX3Nob3dTY3JpcHRGb2xk
ZXJzU2V0dGluZ0NoYW5nZWQ6IGZ1bmN0aW9uKCkKQEAgLTY5MCw3ICs2OTAsNiBAQCBXZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGRlbGVnYXRlID0g
bmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVsKHRoaXMs
IHVpU291cmNlQ29kZSk7CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IG5ldyBXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lKGRlbGVnYXRlLCB1aVNvdXJjZUNvZGUpOwogCi0gICAg
ICAgIHRoaXMuYWRkQ2hpbGRWaWV3KHNvdXJjZUZyYW1lKTsKICAgICAgICAgc291cmNlRnJhbWUu
X3VpU291cmNlQ29kZSA9IHVpU291cmNlQ29kZTsKICAgICAgICAgc291cmNlRnJhbWUuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLkxvYWRlZCwgdGhpcy5f
c291cmNlRnJhbWVMb2FkZWQsIHRoaXMpOwogICAgICAgICB1aVNvdXJjZUNvZGUuX3NvdXJjZUZy
YW1lID0gc291cmNlRnJhbWU7CkBAIC03MDcsNyArNzA2LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghc291cmNlRnJhbWUpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIGRlbGV0ZSB1aVNvdXJjZUNvZGUuX3NvdXJjZUZyYW1lOwot
ICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyhzb3VyY2VGcmFtZSk7CisgICAgICAgIHNvdXJj
ZUZyYW1lLmRldGFjaCgpOwogICAgICAgICBzb3VyY2VGcmFtZS5yZW1vdmVFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5FdmVudHMuTG9hZGVkLCB0aGlzLl9zb3VyY2VGcmFt
ZUxvYWRlZCwgdGhpcyk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKaW5kZXggNzk2MDhlYTNmMjVjMTg0YWEyMjFlMmM3
MzIyNWMxYmQ1YWJiMDdmMy4uZjU3OGYwNTliNzJlYTY3NjRlMWM2Zjk3ZWZhYzljNmIwODUzMTBi
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VG
cmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZy
YW1lLmpzCkBAIC00NCw3ICs0NCw2IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZSA9IGZ1bmN0
aW9uKGRlbGVnYXRlLCB1cmwpCiAKICAgICB2YXIgdGV4dFZpZXdlckRlbGVnYXRlID0gbmV3IFdl
Ykluc3BlY3Rvci5UZXh0Vmlld2VyRGVsZWdhdGVGb3JTb3VyY2VGcmFtZSh0aGlzKTsKICAgICB0
aGlzLl90ZXh0Vmlld2VyID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyKHRoaXMuX3RleHRN
b2RlbCwgV2ViSW5zcGVjdG9yLnBsYXRmb3JtLCB0aGlzLl91cmwsIHRleHRWaWV3ZXJEZWxlZ2F0
ZSk7Ci0gICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fdGV4dFZpZXdlcik7CiAgICAgdGhpcy5l
bGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3RleHRWaWV3ZXIuZWxlbWVudCk7CiAKICAgICB0aGlz
Ll9lZGl0QnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJFZGl0IiksICJlZGl0LXNvdXJjZS1zdGF0dXMtYmFyLWl0ZW0iKTsKQEAg
LTg5LDcgKzg4LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAg
ICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywg
cGFyZW50RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2Vuc3VyZUNvbnRlbnRMb2FkZWQoKTsKLSAg
ICAgICAgdGhpcy5fdGV4dFZpZXdlci5zaG93KCk7CisgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIu
c2hvdyh0aGlzLmVsZW1lbnQpOwogICAgIH0sCiAKICAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5l
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzCmlu
ZGV4IGFmMTM1NWNiNjI3ODkzMDZiOGM0Nzk4ZGViNDI5YjY1YjQyZDNjOTYuLjU3OTAzMzg4YTQ2
YzQ1ZDM1YmVlYjk3OGM0YTc5ZGFjMGNjNGQxMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUuanMKQEAgLTMxLDExICszMSwxMCBAQAogLyoq
CiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CiAgKiBAY29uc3RydWN0b3IKLSAqIEBw
YXJhbSB7RWxlbWVudD19IGVsZW1lbnQKICAqLwotV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUgPSBm
dW5jdGlvbihlbGVtZW50KQorV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUgPSBmdW5jdGlvbigpCiB7
Ci0gICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzLCBlbGVtZW50KTsKKyAgICBXZWJJbnNw
ZWN0b3IuVmlldy5jYWxsKHRoaXMpOwogICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ0
YWJiZWQtcGFuZSIpOwogICAgIHRoaXMuX3RhYnNFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNyZWF0
ZUNoaWxkKCJkaXYiLCAidGFiYmVkLXBhbmUtaGVhZGVyIik7CiAgICAgdGhpcy5fY29udGVudEVs
ZW1lbnQgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJ0YWJiZWQtcGFuZS1jb250
ZW50Iik7CkBAIC01MSw3ICs1MCw2IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlw
ZSA9IHsKIAogICAgICAgICB0aGlzLl90YWJzRWxlbWVudC5hcHBlbmRDaGlsZCh0YWJFbGVtZW50
KTsKICAgICAgICAgdGhpcy5fY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodmlldy5lbGVtZW50
KTsKLSAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXcodmlldyk7CiAKICAgICAgICAgdGhpcy5fdGFi
c1tpZF0gPSB7IHRhYkVsZW1lbnQ6IHRhYkVsZW1lbnQsIHZpZXc6IHZpZXcgfTsKICAgICB9LApA
QCAtODYsNyArODQsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUgPSB7CiAg
ICAgX2hpZGVUYWI6IGZ1bmN0aW9uKHRhYikKICAgICB7CiAgICAgICAgIHRhYi50YWJFbGVtZW50
LnJlbW92ZVN0eWxlQ2xhc3MoInNlbGVjdGVkIik7Ci0gICAgICAgIHRhYi52aWV3LnZpc2libGUg
PSBmYWxzZTsKKyAgICAgICAgdGFiLnZpZXcuZGV0YWNoKCk7CiAgICAgfSwKIAogICAgIGNhbkhp
Z2hsaWdodExpbmU6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVmlldy5qcwppbmRleCBkNzA3NDllNDQ4NGQ3NzM3YTI2ZDdiMzdiYzE2ZjM1M2UwMzVlY2Nk
Li43NDYwY2NjMzJmOGM1MTVhYTJiZDFiMTY5ZTA4NGIzYWJmMmE2ZmYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzCkBAIC0yNywxMSArMjcsMTMgQEAKIC8q
KgogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KLSAq
IEBwYXJhbSB7RWxlbWVudD19IGVsZW1lbnQKICAqLwotV2ViSW5zcGVjdG9yLlZpZXcgPSBmdW5j
dGlvbihlbGVtZW50KQorV2ViSW5zcGVjdG9yLlZpZXcgPSBmdW5jdGlvbigpCiB7Ci0gICAgdGhp
cy5lbGVtZW50ID0gZWxlbWVudCB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlz
LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZUluc2VydGVkSW50b0RvY3VtZW50Iiwg
dGhpcy5faGFuZGxlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQuYmluZCh0aGlzKSwgZmFsc2UpOworICAg
IHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlUmVtb3ZlZEZyb21Eb2N1bWVu
dCIsIHRoaXMuX2hhbmRsZVJlbW92ZWRGcm9tRG9jdW1lbnQuYmluZCh0aGlzKSwgZmFsc2UpOwor
ICAgIHRoaXMuZWxlbWVudC5fX3ZpZXcgPSB0aGlzOwogICAgIHRoaXMuX3Zpc2libGUgPSBmYWxz
ZTsKICAgICB0aGlzLl9jaGlsZHJlbiA9IFtdOwogfQpAQCAtNDgsNyArNTAsNyBAQCBXZWJJbnNw
ZWN0b3IuVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
aWYgKHgpCi0gICAgICAgICAgICB0aGlzLnNob3coKTsKKyAgICAgICAgICAgIHRoaXMuc2hvdyh0
aGlzLmVsZW1lbnQucGFyZW50RWxlbWVudCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRo
aXMuaGlkZSgpOwogICAgIH0sCkBAIC02NCw0NyArNjYsMzcgQEAgV2ViSW5zcGVjdG9yLlZpZXcu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnN0b3JlU2Nyb2xsUG9zaXRpb25zKCk7CiAgICAg
fSwKIAotICAgIF9pbm5lclNob3c6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZWxl
bWVudC5hZGRTdHlsZUNsYXNzKCJ2aXNpYmxlIik7Ci0gICAgfSwKLQogICAgIC8qKgotICAgICAq
IEBwYXJhbSB7RWxlbWVudD19IHBhcmVudEVsZW1lbnQKKyAgICAgKiBAcGFyYW0ge0VsZW1lbnR9
IHBhcmVudEVsZW1lbnQKICAgICAgKi8KICAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50
KQogICAgIHsKICAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHRydWU7Ci0gICAgICAgIGlmIChwYXJl
bnRFbGVtZW50ICYmIHBhcmVudEVsZW1lbnQgIT09IHRoaXMuZWxlbWVudC5wYXJlbnROb2RlKSB7
Ci0gICAgICAgICAgICB0aGlzLl9kZXRhY2goKTsKLSAgICAgICAgICAgIHBhcmVudEVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXRoaXMu
ZWxlbWVudC5wYXJlbnROb2RlKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5hdHRhY2gpCi0gICAg
ICAgICAgICAgICAgdGhpcy5hdHRhY2goKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX3Bh
cmVudFZpZXcpCi0gICAgICAgICAgICAgICAgdGhpcy5fcGFyZW50Vmlldy5lbGVtZW50LmFwcGVu
ZENoaWxkKHRoaXMuZWxlbWVudCk7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5faW5uZXJTaG93
KCk7CisgICAgICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ2aXNpYmxlIik7CisgICAg
ICAgIGlmIChwYXJlbnRFbGVtZW50ICYmIHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50ICE9IHBh
cmVudEVsZW1lbnQpCisgICAgICAgICAgICB0aGlzLmF0dGFjaChwYXJlbnRFbGVtZW50KTsKICAg
ICAgICAgdGhpcy5kaXNwYXRjaFRvU2VsZkFuZFZpc2libGVDaGlsZHJlbigid2FzU2hvd24iKTsK
ICAgICB9LAogCi0gICAgX2lubmVySGlkZTogZnVuY3Rpb24oKQorICAgIGhpZGU6IGZ1bmN0aW9u
KCkKICAgICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRWaXNpYmxlQ2hpbGRyZW4o
IndpbGxIaWRlIik7CiAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ2aXNp
YmxlIik7CisgICAgICAgIHRoaXMuX3Zpc2libGUgPSBmYWxzZTsKICAgICB9LAogCi0gICAgaGlk
ZTogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7RWxlbWVudH0gcGFyZW50RWxl
bWVudAorICAgICAqLworICAgIGF0dGFjaDogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKICAgICB7
Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRWaXNpYmxlQ2hpbGRyZW4oIndpbGxIaWRl
Iik7Ci0gICAgICAgIHRoaXMuX2lubmVySGlkZSgpOwotICAgICAgICB0aGlzLl92aXNpYmxlID0g
ZmFsc2U7CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTsK
ICAgICB9LAogCi0gICAgX2RldGFjaDogZnVuY3Rpb24oKQorICAgIGRldGFjaDogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5wYXJlbnROb2RlKQotICAgICAgICAg
ICAgdGhpcy5lbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KTsKKyAg
ICAgICAgaWYgKHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50KQorICAgICAgICAgICAgdGhpcy5l
bGVtZW50LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KTsKICAgICB9LAog
CiAgICAgZWxlbWVudHNUb1Jlc3RvcmVTY3JvbGxQb3NpdGlvbnNGb3I6IGZ1bmN0aW9uKCkKQEAg
LTEzNCwzMCArMTI2LDIyIEBAIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgfQogICAgIH0sCiAKLSAgICBhZGRDaGlsZFZpZXc6IGZ1bmN0aW9uKHZpZXcpCisgICAgX2Fk
ZENoaWxkVmlldzogZnVuY3Rpb24odmlldykKICAgICB7Ci0gICAgICAgIGlmICh2aWV3Ll9wYXJl
bnRWaWV3ID09PSB0aGlzKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAodmlldy5f
cGFyZW50VmlldykKLSAgICAgICAgICAgIHZpZXcuX3BhcmVudFZpZXcucmVtb3ZlQ2hpbGRWaWV3
KHZpZXcpOwogICAgICAgICB0aGlzLl9jaGlsZHJlbi5wdXNoKHZpZXcpOwogICAgICAgICB2aWV3
Ll9wYXJlbnRWaWV3ID0gdGhpczsKICAgICB9LAogCi0gICAgcmVtb3ZlQ2hpbGRWaWV3OiBmdW5j
dGlvbih2aWV3KQorICAgIF9yZW1vdmVDaGlsZFZpZXc6IGZ1bmN0aW9uKHZpZXcpCiAgICAgewog
ICAgICAgICB2YXIgY2hpbGRJbmRleCA9IHRoaXMuX2NoaWxkcmVuLmluZGV4T2Yodmlldyk7Ci0g
ICAgICAgIGlmIChjaGlsZEluZGV4IDwgMCkKKyAgICAgICAgaWYgKGNoaWxkSW5kZXggPCAwKSB7
CisgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJBdHRlbXB0IHRvIHJlbW92ZSBub24tY2hpbGQg
dmlldyIpOwogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKICAgICAgICAgdGhpcy5f
Y2hpbGRyZW4uc3BsaWNlKGNoaWxkSW5kZXgsIDEpOwogICAgICAgICB2aWV3Ll9wYXJlbnRWaWV3
ID0gbnVsbDsKLSAgICAgICAgdmlldy5fZGV0YWNoKCk7Ci0gICAgfSwKLQotICAgIGNoaWxkVmll
d3M6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbi5zbGlj
ZSgpOwogICAgIH0sCiAKICAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQpAQCAtMTkzLDcgKzE3Nyw0
MyBAQCBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fY2hpbGRyZW4ubGVuZ3RoOyArK2kp
CiAgICAgICAgICAgICB0aGlzLl9jaGlsZHJlbltpXS5kaXNwYXRjaFRvU2VsZkFuZFZpc2libGVD
aGlsZHJlbihtZXRob2ROYW1lKTsKKyAgICB9LAorCisgICAgX2hhbmRsZUluc2VydGVkSW50b0Rv
Y3VtZW50OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBwYXJlbnRFbGVtZW50
ID0gdGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQ7CisgICAgICAgIHdoaWxlIChwYXJlbnRFbGVt
ZW50ICYmICFwYXJlbnRFbGVtZW50Ll9fdmlldykKKyAgICAgICAgICAgIHBhcmVudEVsZW1lbnQg
PSBwYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7CisKKyAgICAgICAgdmFyIHBhcmVudFZpZXcg
PSBwYXJlbnRFbGVtZW50ID8gcGFyZW50RWxlbWVudC5fX3ZpZXcgOiBXZWJJbnNwZWN0b3IuX3Jv
b3RWaWV3OworICAgICAgICBwYXJlbnRWaWV3Ll9hZGRDaGlsZFZpZXcodGhpcyk7CisgICAgfSwK
KworICAgIF9oYW5kbGVSZW1vdmVkRnJvbURvY3VtZW50OiBmdW5jdGlvbihldmVudCkKKyAgICB7
CisgICAgICAgIGlmICh0aGlzLl9wYXJlbnRWaWV3KQorICAgICAgICAgICAgdGhpcy5fcGFyZW50
Vmlldy5fcmVtb3ZlQ2hpbGRWaWV3KHRoaXMpOworICAgIH0sCisKKyAgICBwcmludFZpZXdIaWVy
YXJjaHk6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBsaW5lcyA9IFtdOworICAgICAg
ICB0aGlzLl9jb2xsZWN0Vmlld0hpZXJhcmNoeSgiIiwgbGluZXMpOworICAgICAgICBjb25zb2xl
LmxvZyhsaW5lcy5qb2luKCJcbiIpKTsKKyAgICB9LAorCisgICAgX2NvbGxlY3RWaWV3SGllcmFy
Y2h5OiBmdW5jdGlvbihwcmVmaXgsIGxpbmVzKQorICAgIHsKKyAgICAgICAgbGluZXMucHVzaChw
cmVmaXggKyAiWyIgKyB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lICsgIl0iICsgKHRoaXMuX2NoaWxk
cmVuLmxlbmd0aCA/ICIgeyIgOiAiIikpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dGhpcy5fY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl9jaGlsZHJlbltp
XS5fY29sbGVjdFZpZXdIaWVyYXJjaHkocHJlZml4ICsgIiAgICAiLCBsaW5lcyk7CisKKyAgICAg
ICAgaWYgKHRoaXMuX2NoaWxkcmVuLmxlbmd0aCkKKyAgICAgICAgICAgIGxpbmVzLnB1c2gocHJl
Zml4ICsgIn0iKTsKICAgICB9CiB9CiAKIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5fX3By
b3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKKworV2ViSW5zcGVjdG9yLl9y
b290VmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuVmlldygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggMWMxMWNkMDk1MWRiMGU4
ZTlhNzUyYjNlNGU4NWI1OGJiNjliOTgyMC4uMzk3YTEzZTBiMjIyNzM1M2RkZTU4ZTYwOTk0ZWU1
NmY5ZTExZWQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5odG1sCkBAIC0zNiw2ICszNiw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaW5zcGVjdG9yLmNzcyI+CiAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaW5zcGVjdG9yQ29t
bW9uLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl
Zj0iaW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ibmV0d29ya0xvZ1ZpZXcuY3NzIj4KICAgICA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJuZXR3b3JrUGFuZWwuY3Nz
Ij4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJoZWxw
U2NyZWVuLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIg
aHJlZj0icG9wb3Zlci5jc3MiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNkZDdkMGYzNjVmMmEwZDU2MTdlNWYxMWM1ODk2
NmRjZWJiODAxZTcuLmVmN2NiMjg1ZjliOWFmNjZmMGVmODdmYmFjYzNlZWIwYjc4ZWNhYmIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMC0xOSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFu
QGdvb2dsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZ2V0IHJpZCBvZiBtYW51YWwg
dmlldyBoaWVyYXJjaHkgbWFuYWdlbWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcwNDE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivdmlldy1ldmVudHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sOgorCiAyMDExLTEwLTE5ICBZdXpv
IEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFRlc3Qg
ZXhwZWN0YXRpb24gY2hhbmdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Zp
ZXctZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50
cy1leHBlY3RlZC50eHQKaW5kZXggYTA2MjBjZGVmY2IzMWRlM2FiMmE1ZTI3NmM2OWZjOTlmOTkx
YjI5MC4uNmMzNzFjODk0NTc2NDViZmFiN2YxNzc0MTI3NDNiODIzMmI2NjRmNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC01LDEzICs1
LDEzIEBAIHBhcmVudFZpZXcuc2hvdyhyb290KQogPiBQYXJlbnRWaWV3Lm9uUmVzaXplKCkKIHBh
cmVudFZpZXcuZG9SZXNpemUoKQogPiBQYXJlbnRWaWV3Lm9uUmVzaXplKCkKLWNoaWxkVmlldy5z
aG93KCkKK2NoaWxkVmlldy5zaG93KHBhcmVudFZpZXcuZWxlbWVudCkKID4gQ2hpbGRWaWV3Lndh
c1Nob3duKCkKID4gQ2hpbGRWaWV3Lm9uUmVzaXplKCkKIHBhcmVudFZpZXcuZG9SZXNpemUoKQog
PiBQYXJlbnRWaWV3Lm9uUmVzaXplKCkKID4gQ2hpbGRWaWV3Lm9uUmVzaXplKCkKLXBhcmVudFZp
ZXcuaGlkZShyb290KQorcGFyZW50Vmlldy5oaWRlKCkKID4gUGFyZW50Vmlldy53aWxsSGlkZSgp
CiA+IENoaWxkVmlldy53aWxsSGlkZSgpCiBwYXJlbnRWaWV3LnNob3cocm9vdCkKQEAgLTIxLDYg
KzIxLDYgQEAgcGFyZW50Vmlldy5zaG93KHJvb3QpCiA+IENoaWxkVmlldy5vblJlc2l6ZSgpCiBj
aGlsZFZpZXcuaGlkZSgpCiA+IENoaWxkVmlldy53aWxsSGlkZSgpCi1wYXJlbnRWaWV3LmhpZGUo
cm9vdCkKK3BhcmVudFZpZXcuaGlkZSgpCiA+IFBhcmVudFZpZXcud2lsbEhpZGUoKQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1ldmVudHMuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sCmluZGV4IDBkMzhlYjYyOTNiY2NiMTJhYjBm
Y2VmYmQyNzM2MjE0YzliMDk0NzguLjc4M2Y3NjgxMDEyNjYwZGE2YzdmZjAxN2Q0ZDk3ZTg1Mjc4
MDYxMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sCkBAIC00MSwyMCAr
NDEsMTkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfQogICAgIHZhciBwYXJlbnRWaWV3ID0gbmV3
IFRlc3RWaWV3KCJQYXJlbnRWaWV3Iik7CiAgICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0Vmll
dygiQ2hpbGRWaWV3Iik7Ci0gICAgcGFyZW50Vmlldy5hZGRDaGlsZFZpZXcoY2hpbGRWaWV3KTsK
ICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLXBhbmVscyIpOwog
ICAgIHRyYWNlRXZhbChbCiAgICAgICAgICJwYXJlbnRWaWV3LnNob3cocm9vdCkiLAogICAgICAg
ICAicGFyZW50Vmlldy5kb1Jlc2l6ZSgpIiwKLSAgICAgICAgImNoaWxkVmlldy5zaG93KCkiLAor
ICAgICAgICAiY2hpbGRWaWV3LnNob3cocGFyZW50Vmlldy5lbGVtZW50KSIsCiAgICAgICAgICJw
YXJlbnRWaWV3LmRvUmVzaXplKCkiLAotICAgICAgICAicGFyZW50Vmlldy5oaWRlKHJvb3QpIiwK
KyAgICAgICAgInBhcmVudFZpZXcuaGlkZSgpIiwKICAgICAgICAgInBhcmVudFZpZXcuc2hvdyhy
b290KSIsCiAgICAgICAgICJjaGlsZFZpZXcuaGlkZSgpIiwKLSAgICAgICAgInBhcmVudFZpZXcu
aGlkZShyb290KSIKKyAgICAgICAgInBhcmVudFZpZXcuaGlkZSgpIgogICAgIF0pOwotICAgIHBh
cmVudFZpZXcucmVtb3ZlQ2hpbGRWaWV3KGNoaWxkVmlldyk7Ci0gICAgcm9vdC5yZW1vdmVDaGls
ZChwYXJlbnRWaWV3LmVsZW1lbnQpOworICAgIGNoaWxkVmlldy5kZXRhY2goKTsKKyAgICBwYXJl
bnRWaWV3LmRldGFjaCgpOwogICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111636</attachid>
            <date>2011-10-19 09:38:03 -0700</date>
            <delta_ts>2011-10-19 10:00:07 -0700</delta_ts>
            <desc>[Patch] with new iframe support</desc>
            <filename>bug-70417-20111019203801.patch</filename>
            <type>text/plain</type>
            <size>43301</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc4NjYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZTk3MzhmMWMzMjYxYjk1
YzNmMmY3YmM5ZDcwMGViODVhNGM4MmQ0Li43NzhiMzdiNDFlMWMxZWUzMjg2OTlmNzU2MWQzYTIx
NmYyNTM5NzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMTEtMTAtMTkgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGdldCByaWQgb2YgbWFudWFsIHZpZXcgaGllcmFyY2h5IG1hbmFnZW1lbnQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQxNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9BdWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbC5wcm90
b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBl
Ll9jbGVhckJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5
cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlwZS5o
aWRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RHcmlk
Tm9kZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVj
dE5vZGUucHJvdG90eXBlLnF1ZXJ5T2JqZWN0Q29udGVudC5lbHNlLmZvcm1hdFJlc3VsdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5vZGUucHJvdG90
eXBlLnF1ZXJ5T2JqZWN0Q29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZXRhaWxlZEhlYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZXRhaWxlZEhl
YXBzaG90Vmlldy5wcm90b3R5cGUuc2hvdy5wcm9maWxlQ2FsbGJhY2syKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5wcm90b3R5cGUuc2hvdyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJvdG90eXBlLl9jaGFuZ2VWaWV3
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanM6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya0xvZ1ZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dW
aWV3LnByb3RvdHlwZS5faW5pdGlhbGl6ZVZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5l
dHdvcmtQYW5lbC5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29y
a1BhbmVsLnByb3RvdHlwZS5fc2hvd1Jlc291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
ZXR3b3JrUGFuZWwucHJvdG90eXBlLl9jbG9zZVZpc2libGVSZXNvdXJjZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5l
bC5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LmRldGFjaCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9yZXNldCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuY2xvc2VWaXNp
YmxlVmlldyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanM6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVByZXZpZXdWaWV3LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlUHJldmlld1ZpZXcucHJvdG90eXBlLmNvbnRl
bnRMb2FkZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VSZXNwb25z
ZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VSZXNwb25zZVZpZXcucHJv
dG90eXBlLmNvbnRlbnRMb2FkZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VUaW1pbmdWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5n
Vmlldy5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90
b3R5cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3Rv
dHlwZS5faW5uZXJTaG93Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJj
ZVRyZWVFbGVtZW50LnByb3RvdHlwZS5fcmVjcmVhdGVTb3VyY2VWaWV3KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl91aVNvdXJjZUNvZGVSZW1vdmVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jcmVhdGVTb3VyY2VGcmFtZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fcmVtb3ZlU291
cmNlRnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1RhYmJlZFBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUuYXBwZW5kVGFiKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZS5faGlkZVRhYik6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmF0dGFjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUuZGV0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS5fYWRkQ2hpbGRWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlw
ZS5fcmVtb3ZlQ2hpbGRWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlw
ZS5kaXNwYXRjaFRvVmlzaWJsZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZS5faGFuZGxlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlZpZXcucHJvdG90eXBlLl9oYW5kbGVSZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5wcmludFZpZXdIaWVyYXJjaHkpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9jb2xsZWN0Vmlld0hpZXJhcmNoeSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKwogMjAxMS0xMC0xOSAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQXZvaWQg
dW5lY2Vzc2FyaWx5IGNhbGxpbmcgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlIG9uIHBsdWdpbiB3
aWRnZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1
ZGl0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQ
YW5lbC5qcwppbmRleCBjYzE0MmYwYmM3NmVmNmEzNDYyYjk1ZjNkN2UyZTVhYzE4YWVmZDMyLi5l
MDBmNzAyZGY0MWMyNDc0YTE4OTE2ZjJlNTJhZmIwNzJiY2UwNzk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKQEAgLTIzNiw3ICsy
MzYsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIGlmICh0aGlzLl92aXNpYmxlVmlldykKLSAgICAgICAgICAg
IHRoaXMuX3Zpc2libGVWaWV3LmhpZGUoKTsKKyAgICAgICAgICAgIHRoaXMuX3Zpc2libGVWaWV3
LmRldGFjaCgpOwogCiAgICAgICAgIHRoaXMuX3Zpc2libGVWaWV3ID0geDsKIApAQCAtMjQ0LDkg
KzI0NCw5IEBAIFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICB4LnNob3codGhpcy52aWV3c0NvbnRhaW5lckVsZW1lbnQpOwogICAgIH0sCiAKLSAgICBh
dHRhY2g6IGZ1bmN0aW9uKCkKKyAgICBzaG93OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBX
ZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmF0dGFjaC5jYWxsKHRoaXMpOworICAgICAgICBX
ZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsKIAogICAgICAgICB0
aGlzLmF1ZGl0c0l0ZW1UcmVlRWxlbWVudC5zZWxlY3QoKTsKICAgICB9LApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcwppbmRleCBiMGQ5
NDc2ODJhNWFmM2VmMTA5MzQ1ZDljNTVmMDlkMWU0N2E3YmRkLi5hOWYxODRmNmZiZjQ0MDRmYjg2
ODBkMDRlZjQ3YzRhMGM5OWI4OThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcwpAQCAtNTYsMTUgKzU2LDEzIEBAIFdlYkluc3Bl
Y3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fZHJhd2Vy
V2FzVmlzaWJsZSA9IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVs
LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7Ci0KLSAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXco
dGhpcy5fdmlldyk7Ci0gICAgICAgIHRoaXMuX3ZpZXcuc2hvdygpOworICAgICAgICB0aGlzLl92
aWV3LnNob3codGhpcy5lbGVtZW50KTsKICAgICB9LAogCiAgICAgaGlkZTogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5oaWRlLmNhbGwodGhp
cyk7Ci0gICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRWaWV3KHRoaXMuX3ZpZXcpOworICAgICAgICB0
aGlzLl92aWV3LmRldGFjaCgpOwogICAgICAgICBpZiAodGhpcy5fZHJhd2VyV2FzVmlzaWJsZSkg
ewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci5zaG93KHRoaXMuX3ZpZXcsIFdlYklu
c3BlY3Rvci5EcmF3ZXIuQW5pbWF0aW9uVHlwZS5JbW1lZGlhdGVseSk7CiAgICAgICAgICAgICBk
ZWxldGUgdGhpcy5fZHJhd2VyV2FzVmlzaWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdEdyaWROb2Rlcy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdEdyaWROb2Rlcy5q
cwppbmRleCBiOWVjNjViZGNlY2U5NGRjZjAzMWUwZmU4YzJkMjBjMDVmMWYxYWViLi41Y2UxNTBm
MWQ1ZmQ2Yjc1YjgxODNlNWY3NTY5YjkzZWM2ZDgzYzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RHcmlkTm9kZXMuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90R3Jp
ZE5vZGVzLmpzCkBAIC0yNzgsNyArMjc4LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEdl
bmVyaWNPYmplY3ROb2RlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBpZiAoIWVycm9y
ICYmIG9iamVjdC50eXBlKQogICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0
b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKG9iamVjdCksICEhZXJyb3IpOwogICAgICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdC5mcm9tRXJyb3IoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOb3QgYXZhaWxhYmxl
IikpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5mcm9tUHJpbWl0aXZlVmFsdWUoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOb3QgYXZhaWxh
YmxlIikpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0T2Jq
ZWN0QnlIZWFwT2JqZWN0SWQodGhpcy5zbmFwc2hvdE5vZGVJZCwgZm9ybWF0UmVzdWx0KTsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZXRhaWxlZEhlYXBzaG90Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRGV0YWlsZWRIZWFwc2hvdFZpZXcuanMKaW5kZXggM2M0MTQzNmQ4MWVhMzk4OThkOTNjYTNh
M2JmYmU0NWZmOGNhODM3Ny4uYjVjZGMwOThkNGVlOGQxZWYwY2Y0Y2Y4MjY3ZTE4OGIxODkxYmQ1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxl
ZEhlYXBzaG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RldGFpbGVkSGVhcHNob3RWaWV3LmpzCkBAIC02MzgsOCArNjM4LDcgQEAgV2ViSW5zcGVjdG9y
LkRldGFpbGVkSGVhcHNob3RWaWV3ID0gZnVuY3Rpb24ocGFyZW50LCBwcm9maWxlKQogICAgIHRo
aXMucmV0YWlubWVudERhdGFHcmlkID0gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RSZXRh
aW5pbmdQYXRoc0xpc3QoKTsKICAgICB0aGlzLnJldGFpbm1lbnREYXRhR3JpZC5lbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fbW91c2VDbGlja0luUmV0YWlubWVudEdyaWQu
YmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgdGhpcy5yZXRhaW5tZW50Vmlldy5lbGVtZW50LmFwcGVu
ZENoaWxkKHRoaXMucmV0YWlubWVudERhdGFHcmlkLmVsZW1lbnQpOwotICAgIHRoaXMucmV0YWlu
bWVudFZpZXcudmlzaWJsZSA9IHRydWU7Ci0gICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRo
aXMucmV0YWlubWVudFZpZXcuZWxlbWVudCk7CisgICAgdGhpcy5yZXRhaW5tZW50Vmlldy5zaG93
KHRoaXMuZWxlbWVudCk7CiAgICAgdGhpcy5yZXRhaW5tZW50RGF0YUdyaWQucmVzZXQoKTsKIAog
ICAgIHRoaXMuZGF0YUdyaWQgPSB0aGlzLmNvbnN0cnVjdG9yc0RhdGFHcmlkOwpAQCAtNzU2LDcg
Kzc1NSw3IEBAIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7
CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBwcm9maWxlQ2FsbGJhY2syKCkgewotICAg
ICAgICAgICAgdGhpcy5jdXJyZW50Vmlldy5zaG93KCk7CisgICAgICAgICAgICB0aGlzLmN1cnJl
bnRWaWV3LnNob3codGhpcy5lbGVtZW50KTsKICAgICAgICAgICAgIHRoaXMuZGF0YUdyaWQudXBk
YXRlV2lkdGhzKCk7CiAgICAgICAgIH0KICAgICB9LApAQCAtMTA3Myw3ICsxMDcyLDcgQEAgV2Vi
SW5zcGVjdG9yLkRldGFpbGVkSGVhcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFy
IHZpZXcgPSB0aGlzLnZpZXdzW3RoaXMudmlld3MuY3VycmVudF07CiAgICAgICAgIHRoaXMuY3Vy
cmVudFZpZXcgPSB2aWV3LnZpZXc7CiAgICAgICAgIHRoaXMuZGF0YUdyaWQgPSB2aWV3LmdyaWQ7
Ci0gICAgICAgIHRoaXMuY3VycmVudFZpZXcuc2hvdygpOworICAgICAgICB0aGlzLmN1cnJlbnRW
aWV3LnNob3codGhpcy5lbGVtZW50KTsKICAgICAgICAgdGhpcy5yZWZyZXNoVmlzaWJsZURhdGEo
KTsKICAgICAgICAgdGhpcy5kYXRhR3JpZC51cGRhdGVXaWR0aHMoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcwppbmRleCAzYjI0MzJmMTIyMmIxZDI1
NjU2N2JmYmNkYmE0ZmQ4ZmEyOWViMDEyLi5jODM2N2NmZjY4NGExZTlhYmYzYjk5ZTI1MDg0ZGI0
NGI2NzRlMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RyYXdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdl
ci5qcwpAQCAtNzYsMTEgKzc2LDkgQEAgV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHRoaXMuaW1tZWRpYXRlbHlGaW5pc2hBbmltYXRpb24oKTsKIAogICAgICAgICB2
YXIgZHJhd2VyV2FzVmlzaWJsZSA9IHRoaXMudmlzaWJsZTsKLSAgICAgICAgCi0gICAgICAgIGlm
ICh0aGlzLl92aWV3KSB7CisKKyAgICAgICAgaWYgKHRoaXMuX3ZpZXcpCiAgICAgICAgICAgICB0
aGlzLl9kcmF3ZXJDb250ZW50c0VsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgICAg
IHRoaXMuX3ZpZXcuaGlkZSgpOwotICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fdmlldyA9IHZp
ZXc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRW1w
dHlWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcu
anMKaW5kZXggZmIwMzIxZTVkOTc1ZmYxZTkyMjE5MDhiZWUxODA3MjE4M2QwNjg3NC4uZjk4NjYx
MmQ5OTgwMGVjY2FlZGJhYmRlMWFlNGYwZjAwNTA3MWVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcuanMKQEAgLTQwLDcgKzQwLDcgQEAgV2Vi
SW5zcGVjdG9yLkVtcHR5VmlldyA9IGZ1bmN0aW9uKHRleHQpCiAKIFdlYkluc3BlY3Rvci5FbXB0
eVZpZXcucHJvdG90eXBlID0gewogICAgIC8qKgotICAgICAqIEBwYXJhbSB7RWxlbWVudD19IHBh
cmVudEVsZW1lbnQKKyAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHBhcmVudEVsZW1lbnQKICAgICAg
Ki8KICAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKaW5k
ZXggN2RiOWIyNmIyYjllOTQ5NjQ5MmZmM2M1ZWMwZDY5OTljOWMwZjUxOC4uNTgxY2QyZjBkOWVk
ZjQ4MDJmNDEyODNkMDUzODE5MDQxYzI5YWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKQEAgLTIwMSw4ICsyMDEs
NyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
V2ViSW5zcGVjdG9yLnBhbmVsc1tpZF0gPSBwYW5lbDsKICAgICAgICAgV2ViSW5zcGVjdG9yLmFk
ZFBhbmVsKHBhbmVsKTsKIAotICAgICAgICB2YXIgaWZyYW1lID0gdGhpcy5jcmVhdGVDbGllbnRJ
ZnJhbWUocGFuZWwuZWxlbWVudCwgdGhpcy5fZXhwYW5kUmVzb3VyY2VQYXRoKHBvcnQuX2V4dGVu
c2lvbk9yaWdpbiwgbWVzc2FnZS5wYWdlKSk7Ci0gICAgICAgIGlmcmFtZS5hZGRTdHlsZUNsYXNz
KCJwYW5lbCIpOworICAgICAgICB0aGlzLmNyZWF0ZUNsaWVudElmcmFtZShwYW5lbC5lbGVtZW50
LCB0aGlzLl9leHBhbmRSZXNvdXJjZVBhdGgocG9ydC5fZXh0ZW5zaW9uT3JpZ2luLCBtZXNzYWdl
LnBhZ2UpLCB0cnVlKTsKICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cy5PSygpOwogICAgIH0s
CiAKQEAgLTIyMiwxMyArMjIxLDEwIEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzLk9LKCk7CiAgICAgfSwKIAot
ICAgIGNyZWF0ZUNsaWVudElmcmFtZTogZnVuY3Rpb24ocGFyZW50LCB1cmwpCisgICAgY3JlYXRl
Q2xpZW50SWZyYW1lOiBmdW5jdGlvbihwYXJlbnQsIHVybCwgaXNQYW5lbCkKICAgICB7Ci0gICAg
ICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgICAg
ICAgaWZyYW1lLnNyYyA9IHVybDsKLSAgICAgICAgaWZyYW1lLmFkZFN0eWxlQ2xhc3MoImV4dGVu
c2lvbiIpOwotICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLSAgICAgICAgcmV0
dXJuIGlmcmFtZTsKKyAgICAgICAgdmFyIGlmcmFtZVZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLklG
cmFtZVZpZXcodXJsLCAiZXh0ZW5zaW9uIiArIChpc1BhbmVsID8gIiBwYW5lbCIgOiAiIikpOwor
ICAgICAgICBpZnJhbWVWaWV3LnNob3cocGFyZW50KTsKICAgICB9LAogCiAgICAgX29uU2V0U2lk
ZWJhckhlaWdodDogZnVuY3Rpb24obWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSUZyYW1lVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvSUZyYW1lVmlldy5qcwppbmRleCA4ZGJkNTgxYzg4MjdjYTFmNDUwZGM0
ZTQyNjQ2MDM3NjQwMTRhN2JjLi4zMDNkZjcwZTIwMDcwY2JkZmNlMDliNWEyNzZlZjA1NGIzOGU4
MTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFt
ZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JRnJhbWVW
aWV3LmpzCkBAIC0zMSw3OSArMzEsMzcgQEAKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0
ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CisgKiBAcGFyYW0ge3N0cmluZ30gc3JjCisgKiBAcGFy
YW0ge3N0cmluZz19IGNsYXNzTmFtZQogICovCi1XZWJJbnNwZWN0b3IuSUZyYW1lVmlldyA9IGZ1
bmN0aW9uKHBhcmVudEVsZW1lbnQsIHN0eWxlc2hlZXRzKQorV2ViSW5zcGVjdG9yLklGcmFtZVZp
ZXcgPSBmdW5jdGlvbihzcmMsIGNsYXNzTmFtZSkKIHsKLSAgICB0aGlzLl9pZnJhbWVFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gICAgdGhpcy5faWZyYW1lRWxl
bWVudC5hZGRTdHlsZUNsYXNzKCJ2aWV3Iik7Ci0gICAgdGhpcy5faW5pdGlhbGl6ZVZpZXcgPSB0
aGlzLl9hdHRhY2hJRnJhbWVBbmRJbml0aWFsaXplLmJpbmQodGhpcywgcGFyZW50RWxlbWVudCwg
c3R5bGVzaGVldHMpOwogICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CisgICAgdGhp
cy5lbGVtZW50LmNsYXNzTmFtZSA9ICJmaWxsIjsKKyAgICB0aGlzLl9zcmMgPSBzcmM7CisgICAg
dGhpcy5fY2xhc3NOYW1lID0gY2xhc3NOYW1lOwogfQogCiBXZWJJbnNwZWN0b3IuSUZyYW1lVmll
dy5wcm90b3R5cGUgPSB7Ci0gICAgX2lubmVyU2hvdzogZnVuY3Rpb24oKQorICAgIHdpbGxEZXRh
Y2g6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2lmcmFtZUVsZW1lbnQuYWRkU3R5
bGVDbGFzcygidmlzaWJsZSIpOwotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUu
X2lubmVyU2hvdy5jYWxsKHRoaXMpOwotICAgIH0sCi0KLSAgICBfaW5uZXJIaWRlOiBmdW5jdGlv
bigpCi0gICAgewotICAgICAgICB0aGlzLl9pZnJhbWVFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3Mo
InZpc2libGUiKTsKLSAgICB9LAotCi0gICAgYXR0YWNoOiBmdW5jdGlvbihwYXJlbnQpCi0gICAg
ewotICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZVZpZXcpCi0gICAgICAgICAgICB0aGlzLl9p
bml0aWFsaXplVmlldygpOwotICAgICAgICB0aGlzLl9pZnJhbWVFbGVtZW50LmNvbnRlbnREb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudCk7Ci0gICAgfSwKLQotICAgIF9hdHRh
Y2hJRnJhbWVBbmRJbml0aWFsaXplOiBmdW5jdGlvbihwYXJlbnQsIHN0eWxlc2hlZXRzKQotICAg
IHsKLSAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplVmlldykKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2luaXRpYWxpemVWaWV3OwotICAgICAgICBwYXJlbnQu
YXBwZW5kQ2hpbGQodGhpcy5faWZyYW1lRWxlbWVudCk7Ci0gICAgICAgIHRoaXMuX3NldERvY3Vt
ZW50VHlwZSgpOwotICAgICAgICB2YXIgaWZyYW1lRG9jdW1lbnQgPSB0aGlzLl9pZnJhbWVFbGVt
ZW50LmNvbnRlbnREb2N1bWVudDsKLSAgICAgICAgdGhpcy5faWZyYW1lRWxlbWVudC5jb250ZW50
V2luZG93LmV2YWwoIigiICsgc2V0dXBQcm90b3R5cGVVdGlsaXRpZXMudG9TdHJpbmcoKSArICIp
KCk7Iik7Ci0gICAgICAgIHRoaXMuZWxlbWVudCA9IGlmcmFtZURvY3VtZW50LmJvZHkuY3JlYXRl
Q2hpbGQoImRpdiIpOwotICAgICAgICB0aGlzLmFkZFN0eWxlc2hlZXRzKHN0eWxlc2hlZXRzKTsK
LSAgICAgICAgdGhpcy5fcHJvcGFnYXRlQm9keVN0eWxlKCk7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5hZGRNYWluRXZlbnRMaXN0ZW5lcnMoaWZyYW1lRG9jdW1lbnQpOwotCi0gICAgICAgIGlmICh0
eXBlb2YgdGhpcy5pbml0aWFsaXplVmlldyA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgIHRo
aXMuaW5pdGlhbGl6ZVZpZXcoKTsKLSAgICB9LAotCi0gICAgYWRkU3R5bGVzaGVldHM6IGZ1bmN0
aW9uKGhyZWZzKQotICAgIHsKLSAgICAgICAgdmFyIGNzc1RleHQgPSAiIjsKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBocmVmcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHho
ciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgICAgICAgICAgeGhyLm9wZW4oIkdFVCIsIGhy
ZWZzW2ldLCBmYWxzZSk7Ci0gICAgICAgICAgICB4aHIuc2VuZChudWxsKTsKLSAgICAgICAgICAg
IGNzc1RleHQgKz0geGhyLnJlc3BvbnNlVGV4dDsKKyAgICAgICAgaWYgKHRoaXMuX2lmcmFtZSkg
eworICAgICAgICAgICAgdGhpcy5faWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2lmcmFtZSk7CiAgICAgICAg
IH0KLSAgICAgICAgdmFyIHN0eWxlICA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7
Ci0gICAgICAgIHN0eWxlLnR5cGUgPSAidGV4dC9jc3MiOwotICAgICAgICBzdHlsZS50ZXh0Q29u
dGVudCA9IGNzc1RleHQ7Ci0gICAgICAgIHRoaXMuX2lmcmFtZUVsZW1lbnQuY29udGVudERvY3Vt
ZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpOwogICAgIH0sCiAKLSAgICBfc2V0RG9jdW1lbnRU
eXBlOiBmdW5jdGlvbigpCisgICAgb25JbnNlcnRlZEludG9Eb2N1bWVudDogZnVuY3Rpb24oKQog
ICAgIHsKLSAgICAgICAgdmFyIGRvYyA9IHRoaXMuX2lmcmFtZUVsZW1lbnQuY29udGVudERvY3Vt
ZW50Lm9wZW4oKTsKLSAgICAgICAgZG9jLndyaXRlKCI8IURPQ1RZUEUgaHRtbD4iKTsKLSAgICAg
ICAgZG9jLmNsb3NlKCk7Ci0gICAgfSwKKyAgICAgICAgaWYgKCF0aGlzLl9pZnJhbWUpIHsKKyAg
ICAgICAgICAgIHRoaXMuX2lmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIp
OworICAgICAgICAgICAgdGhpcy5faWZyYW1lLnNyYyA9IHRoaXMuX3NyYzsKKyAgICAgICAgICAg
IGlmICh0aGlzLl9jbGFzc05hbWUpCisgICAgICAgICAgICAgICAgdGhpcy5faWZyYW1lLmNsYXNz
TmFtZSA9IHRoaXMuX2NsYXNzTmFtZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0aGlz
Ll9pZnJhbWUuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAKLSAgICBfcHJvcGFnYXRlQm9keVN0
eWxlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgYm9keSA9IHRoaXMuX2lmcmFtZUVs
ZW1lbnQuY29udGVudERvY3VtZW50LmJvZHk7Ci0gICAgICAgIGJvZHkuY2xhc3NOYW1lID0gZG9j
dW1lbnQuYm9keS5jbGFzc05hbWU7Ci0gICAgICAgIGJvZHkuYWRkU3R5bGVDbGFzcygidmlzaWJs
ZSIpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5faWZyYW1lKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrUGFuZWwuanMKaW5kZXggMjlhNzlmNTZmMmU5NjE1NGRlNDhkNDAyZGQ1MTEzOGQ5YjYyZWNi
YS4uYzYwYTBlYTAzZDljMjczYjEzYWEzMWE5YmFkNjUzNTI4YzExNzRiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKQEAgLTMw
LDE3ICszMCwxMSBAQAogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgotICogQGV4dGVuZHMge1dlYklu
c3BlY3Rvci5JRnJhbWVWaWV3fQorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQogICov
Ci1XZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQor
V2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3ID0gZnVuY3Rpb24oKQogewotICAgIC8vIEZJWE1F
OiBzb21lIG9mIHRoZSBzdHlsZXMgc2hvdWxkIGJlIGxvYWRlZCBvbiBkZW1hbmQgYnkgY29tcG9u
ZW50cyB0aGF0IG5lZWQgdGhlbS4KLSAgICB2YXIgc3R5bGVzID0gWwotICAgICAgICAiaW5zcGVj
dG9yQ29tbW9uLmNzcyIsCi0gICAgICAgICJkYXRhR3JpZC5jc3MiLAotICAgICAgICAibmV0d29y
a0xvZ1ZpZXcuY3NzIgotICAgIF07Ci0gICAgV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcuY2FsbCh0
aGlzLCBwYXJlbnRFbGVtZW50LCBzdHlsZXMpOworICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwo
dGhpcyk7CiAKICAgICB0aGlzLl9hbGxvd1Jlc291cmNlU2VsZWN0aW9uID0gZmFsc2U7CiAgICAg
dGhpcy5fcmVzb3VyY2VzID0gW107CkBAIC02OSwxMCArNjMsMTIgQEAgV2ViSW5zcGVjdG9yLk5l
dHdvcmtMb2dWaWV3ID0gZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKICAgICBXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VU
cmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU5hdmlnYXRlZCwgdGhpcy5fZnJhbWVOYXZpZ2F0ZWQs
IHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLk9uTG9hZCwgdGhp
cy5fb25Mb2FkRXZlbnRGaXJlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJl
ZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2
ZW50VHlwZXMuRE9NQ29udGVudExvYWRlZCwgdGhpcy5fZG9tQ29udGVudExvYWRlZEV2ZW50Rmly
ZWQsIHRoaXMpOworCisgICAgdGhpcy5faW5pdGlhbGl6ZVZpZXcoKTsKIH0KIAogV2ViSW5zcGVj
dG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBpbml0aWFsaXplVmlldzogZnVu
Y3Rpb24oKQorICAgIF9pbml0aWFsaXplVmlldzogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
dGhpcy5lbGVtZW50LmlkID0gIm5ldHdvcmstY29udGFpbmVyIjsKIApAQCAtNjUwLDEzICs2NDYs
MTMgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIHdh
c1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuSUZyYW1lVmll
dy5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlZp
ZXcucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuX3JlZnJlc2hJ
Zk5lZWRlZCgpOwogICAgIH0sCiAKICAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcucHJvdG90eXBlLndpbGxIaWRlLmNhbGwodGhp
cyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS53aWxsSGlkZS5jYWxsKHRo
aXMpOwogICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3BvdmVyKCk7CiAgICAgfSwK
IApAQCAtMTIwNSw3ICsxMjAxLDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3Rv
dHlwZSA9IHsKICAgICB9CiB9OwogCi1XZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90
eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3LnByb3RvdHlwZTsKK1dlYklu
c3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9y
LlZpZXcucHJvdG90eXBlOwogCiBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcuRXZlbnRUeXBl
cyA9IHsKICAgICBWaWV3Q2xlYXJlZDogIlZpZXdDbGVhcmVkIiwKQEAgLTEyMjQsOCArMTIyMCw3
IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5zcGVj
dG9yLlBhbmVsLmNhbGwodGhpcywgIm5ldHdvcmsiKTsKIAogICAgIHRoaXMuY3JlYXRlU2lkZWJh
cigpOwotICAgIHRoaXMuX25ldHdvcmtMb2dWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3Jr
TG9nVmlldyh0aGlzLnNpZGViYXJFbGVtZW50KTsKLSAgICB0aGlzLmFkZENoaWxkVmlldyh0aGlz
Ll9uZXR3b3JrTG9nVmlldyk7CisgICAgdGhpcy5fbmV0d29ya0xvZ1ZpZXcgPSBuZXcgV2ViSW5z
cGVjdG9yLk5ldHdvcmtMb2dWaWV3KCk7CiAKICAgICB0aGlzLl92aWV3c0NvbnRhaW5lckVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0aGlzLl92aWV3c0NvbnRh
aW5lckVsZW1lbnQuaWQgPSAibmV0d29yay12aWV3cyI7CkBAIC0xMzA1LDcgKzEzMDAsNyBAQCBX
ZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBzaG93OiBmdW5jdGlv
bigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cuY2Fs
bCh0aGlzKTsKLSAgICAgICAgdGhpcy5fbmV0d29ya0xvZ1ZpZXcuc2hvdygpOworICAgICAgICB0
aGlzLl9uZXR3b3JrTG9nVmlldy5zaG93KHRoaXMuc2lkZWJhckVsZW1lbnQpOwogICAgIH0sCiAK
ICAgICBnZXQgcmVzb3VyY2VzKCkKQEAgLTEzODYsMTIgKzEzODEsMTEgQEAgV2ViSW5zcGVjdG9y
Lk5ldHdvcmtQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3RvZ2dsZVZpZXdpbmdS
ZXNvdXJjZU1vZGUoKTsKIAogICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldykgewotICAgICAg
ICAgICAgdGhpcy5yZW1vdmVDaGlsZFZpZXcodGhpcy52aXNpYmxlVmlldyk7CisgICAgICAgICAg
ICB0aGlzLnZpc2libGVWaWV3LmRldGFjaCgpOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMudmlz
aWJsZVZpZXc7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgdmlldyA9IG5ldyBXZWJJbnNwZWN0
b3IuTmV0d29ya0l0ZW1WaWV3KHJlc291cmNlKTsKLSAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXco
dmlldyk7CiAgICAgICAgIHZpZXcuc2hvdyh0aGlzLl92aWV3c0NvbnRhaW5lckVsZW1lbnQpOwog
ICAgICAgICB0aGlzLnZpc2libGVWaWV3ID0gdmlldzsKIApAQCAtMTQwMyw3ICsxMzk3LDcgQEAg
V2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZWxl
bWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ2aWV3aW5nLXJlc291cmNlIik7CiAKICAgICAgICAgaWYg
KHRoaXMudmlzaWJsZVZpZXcpIHsKLSAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRWaWV3KHRo
aXMudmlzaWJsZVZpZXcpOworICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5kZXRhY2goKTsK
ICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnZpc2libGVWaWV3OwogICAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCmluZGV4IDBjN2IzMjQ5NGQ3
NGMwMmRiMDA0YTZmYjFlZDZhNzRjNTg5NzdlN2EuLjM1N2UyZjAyODU5NjhkM2IxMTIyMTkzMjgx
MWIxNzk0OTJlNmY0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Q
YW5lbC5qcwpAQCAtNjMsNyArNjMsMTAgQEAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9
IHsKIAogICAgIHNob3c6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5W
aWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CisgICAgICAgIGlmICghV2ViSW5zcGVjdG9y
LlBhbmVsLl9tYWluUGFuZWxzRWxlbWVudCkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5QYW5l
bC5fbWFpblBhbmVsc0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1wYW5l
bHMiKTsKKyAgICAKKyAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2Fs
bCh0aGlzLCBXZWJJbnNwZWN0b3IuUGFuZWwuX21haW5QYW5lbHNFbGVtZW50KTsKIAogICAgICAg
ICB2YXIgc3RhdHVzQmFySXRlbXMgPSB0aGlzLnN0YXR1c0Jhckl0ZW1zOwogICAgICAgICBpZiAo
c3RhdHVzQmFySXRlbXMpIHsKQEAgLTgyLDkgKzg1LDkgQEAgV2ViSW5zcGVjdG9yLlBhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlci5ub3RpZnlQ
YW5lbFNob3duKHRoaXMubmFtZSk7CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKKyAg
ICBkZXRhY2g6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnBy
b3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS5kZXRhY2guY2FsbCh0aGlzKTsKIAogICAgICAgICBpZiAodGhpcy5fc3RhdHVzQmFySXRl
bUNvbnRhaW5lciAmJiB0aGlzLl9zdGF0dXNCYXJJdGVtQ29udGFpbmVyLnBhcmVudE5vZGUpCiAg
ICAgICAgICAgICB0aGlzLl9zdGF0dXNCYXJJdGVtQ29udGFpbmVyLnBhcmVudE5vZGUucmVtb3Zl
Q2hpbGQodGhpcy5fc3RhdHVzQmFySXRlbUNvbnRhaW5lcik7CkBAIC0xMDQsMTIgKzEwNyw2IEBA
IFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLnNp
ZGViYXJUcmVlRWxlbWVudCB8fCB0aGlzLmVsZW1lbnQ7CiAgICAgfSwKIAotICAgIGF0dGFjaDog
ZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnQucGFyZW50Tm9kZSkK
LSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLXBhbmVscyIpLmFwcGVu
ZENoaWxkKHRoaXMuZWxlbWVudCk7Ci0gICAgfSwKLQogICAgIHNlYXJjaENhbmNlbGVkOiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRh
dGVTZWFyY2hNYXRjaGVzQ291bnQoMCwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKaW5kZXggMmExYWI3NDYxZmVjMGMw
YThiZTAwODk2ZGVmZjQ5Yjc2ODBhNmY0ZC4uZWExNDFjZDZlMWZmNjIyMjA1YWE2ZjYwMzliYWZl
NGU0YjYxNzZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtMjA0LDggKzIwNCwxMiBAQCBXZWJJbnNwZWN0b3IuUHJv
ZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0
aGlzLl9wcm9maWxlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHZpZXcgPSB0aGlz
Ll9wcm9maWxlc1tpXS5fcHJvZmlsZVZpZXc7Ci0gICAgICAgICAgICBpZiAodmlldyAmJiAoImRp
c3Bvc2UiIGluIHZpZXcpKQotICAgICAgICAgICAgICAgIHZpZXcuZGlzcG9zZSgpOworICAgICAg
ICAgICAgaWYgKHZpZXcpIHsKKyAgICAgICAgICAgICAgICB2aWV3LmRldGFjaCgpOworICAgICAg
ICAgICAgICAgIGlmICgiZGlzcG9zZSIgaW4gdmlldykKKyAgICAgICAgICAgICAgICAgICAgdmll
dy5kaXNwb3NlKCk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9w
cm9maWxlc1tpXS5fcHJvZmlsZVZpZXc7CiAgICAgICAgIH0KICAgICAgICAgZGVsZXRlIHRoaXMu
dmlzaWJsZVZpZXc7CkBAIC0yMzEsNyArMjM1LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygpOwogCiAg
ICAgICAgIHRoaXMuX3VwZGF0ZUludGVyZmFjZSgpOwotICAgICAgICB0aGlzLndlbGNvbWVWaWV3
LnNob3coKTsKKyAgICAgICAgdGhpcy53ZWxjb21lVmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAg
ICAgfSwKIAogICAgIF9jbGVhclByb2ZpbGVzOiBmdW5jdGlvbigpCkBAIC01MTMsNyArNTE3LDcg
QEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgIGNsb3NlVmlz
aWJsZVZpZXc6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3
KQotICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5oaWRlKCk7CisgICAgICAgICAgICB0aGlz
LnZpc2libGVWaWV3LmRldGFjaCgpOwogICAgICAgICBkZWxldGUgdGhpcy52aXNpYmxlVmlldzsK
ICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1JlbW90ZU9iamVjdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVt
b3RlT2JqZWN0LmpzCmluZGV4IGMwZWExZmI0NmJmOGU3ZjJiNjBjNWQzNTM3NTQwZWM3MzAwZWQy
OTQuLmE1M2MyOTU2ODAyYTVjOTQ1ZGUwOWI2YTM5Mzg3YTVhZjg2Mzk5YTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCkBAIC01
NCwxMSArNTQsNiBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0
SWQsIHR5cGUsIHN1YnR5cGUsIHZhbHVlLCBkZXNjcmlwdGlvbgogICAgIH0KIH0KIAotV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tRXJyb3IgPSBmdW5jdGlvbihlcnJvckRlc2NyaXB0aW9u
KQotewotICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdChudWxsLCBudWxs
LCBudWxsLCBlcnJvckRlc2NyaXB0aW9uKTsKLX0KLQogV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dC5mcm9tUHJpbWl0aXZlVmFsdWUgPSBmdW5jdGlvbih2YWx1ZSkKIHsKICAgICByZXR1cm4gbmV3
IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QobnVsbCwgdHlwZW9mIHZhbHVlLCBudWxsLCB2YWx1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlUHJldmlld1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlUHJldmlld1ZpZXcuanMKaW5kZXggNmI2MmIzYTMzOGRkZmIyNDkyYjdkZmY4ZDAzZWE0
NTBlMjI3ZjhlOS4uYTAzNDgwMTkxMWM5ZTkwZWRiYWExODJjMTc3Yzk5MTc4MDIzMmI5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVByZXZp
ZXdWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VQcmV2aWV3Vmlldy5qcwpAQCAtNDQsMTkgKzQ0LDE4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVByZXZpZXdWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0aGlzLnJlc291cmNlLmNv
bnRlbnQpIHsKICAgICAgICAgICAgIGlmICghdGhpcy5fZW1wdHlWaWV3KSB7CiAgICAgICAgICAg
ICAgICAgdGhpcy5fZW1wdHlWaWV3ID0gdGhpcy5fY3JlYXRlRW1wdHlWaWV3KCk7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fZW1wdHlWaWV3KTsKLSAgICAgICAgICAg
ICAgICB0aGlzLl9lbXB0eVZpZXcuc2hvdygpOworICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5
Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgICAgICAgICAgdGhpcy5pbm5lclZpZXcg
PSB0aGlzLl9lbXB0eVZpZXc7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBpZiAodGhpcy5fZW1wdHlWaWV3KSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5yZW1v
dmVDaGlsZFZpZXcodGhpcy5fZW1wdHlWaWV3KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9lbXB0
eVZpZXcuZGV0YWNoKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2VtcHR5VmlldzsK
ICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgaWYgKCF0aGlzLl9wcmV2aWV3VmlldykKICAg
ICAgICAgICAgICAgICB0aGlzLl9wcmV2aWV3VmlldyA9IHRoaXMuX2NyZWF0ZVByZXZpZXdWaWV3
KCk7Ci0gICAgICAgICAgICB0aGlzLmFkZENoaWxkVmlldyh0aGlzLl9wcmV2aWV3Vmlldyk7Ci0g
ICAgICAgICAgICB0aGlzLl9wcmV2aWV3Vmlldy5zaG93KCk7CisgICAgICAgICAgICB0aGlzLl9w
cmV2aWV3Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgICAgICB0aGlzLmlubmVyVmll
dyA9IHRoaXMuX3ByZXZpZXdWaWV3OwogICAgICAgICB9CiAgICAgfSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VSZXNwb25zZVZpZXcuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlUmVzcG9uc2VWaWV3
LmpzCmluZGV4IDQ5MTQ1N2VhMmQzMjRkMWRhOTBkYjM2MjY4ZWMyOWFkN2I0OWRlZjguLjJkMGY1
M2NmYjlmYTE1YmQwMDk2YmQxNmVkYjA1ZTI3NGFjMDhmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VSZXNwb25zZVZpZXcuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVJlc3BvbnNlVmlldy5q
cwpAQCAtNTAsMTcgKzUwLDE2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVJlc3BvbnNlVmlldy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy5yZXNvdXJjZS5jb250ZW50IHx8ICF0aGlz
LnNvdXJjZVZpZXcpIHsKICAgICAgICAgICAgIGlmICghdGhpcy5fZW1wdHlWaWV3KSB7CiAgICAg
ICAgICAgICAgICAgdGhpcy5fZW1wdHlWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5FbXB0eVZpZXco
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUaGlzIHJlcXVlc3QgaGFzIG5vIHJlc3BvbnNlIGRhdGEg
YXZhaWxhYmxlLiIpKTsKLSAgICAgICAgICAgICAgICB0aGlzLmFkZENoaWxkVmlldyh0aGlzLl9l
bXB0eVZpZXcpOwotICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5Vmlldy5zaG93KCk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fZW1wdHlWaWV3LnNob3codGhpcy5lbGVtZW50KTsKICAgICAgICAg
ICAgICAgICB0aGlzLmlubmVyVmlldyA9IHRoaXMuX2VtcHR5VmlldzsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9lbXB0eVZpZXcpIHsKLSAg
ICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyh0aGlzLl9lbXB0eVZpZXcpOworICAg
ICAgICAgICAgICAgIHRoaXMuX2VtcHR5Vmlldy5kZXRhY2goKTsKICAgICAgICAgICAgICAgICBk
ZWxldGUgdGhpcy5fZW1wdHlWaWV3OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5h
ZGRDaGlsZFZpZXcodGhpcy5zb3VyY2VWaWV3KTsKLSAgICAgICAgICAgIHRoaXMuc291cmNlVmll
dy5zaG93KCk7CisKKyAgICAgICAgICAgIHRoaXMuc291cmNlVmlldy5zaG93KHRoaXMuZWxlbWVu
dCk7CiAgICAgICAgICAgICB0aGlzLmlubmVyVmlldyA9IHRoaXMuc291cmNlVmlldzsKICAgICAg
ICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VUaW1pbmdWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZVRpbWluZ1ZpZXcuanMKaW5kZXggZWMzZmQxYTM3YzA2ZjNhMWZmYTNkOWM1
MTU1NDYwODY3OWEzYmVkNi4uOWI5NWM2OWMwYWExMzIwN2IzZjk0NGNkZmRhZjg2Mzc4MDZkOWYz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVRpbWluZ1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZVRpbWluZ1ZpZXcuanMKQEAgLTQ4LDggKzQ4LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlVGltaW5nVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy5fcmVzb3VyY2Uu
dGltaW5nKSB7CiAgICAgICAgICAgICBpZiAoIXRoaXMuX2VtcHR5VmlldykgewogICAgICAgICAg
ICAgICAgIHRoaXMuX2VtcHR5VmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3KFdlYklu
c3BlY3Rvci5VSVN0cmluZygiVGhpcyByZXF1ZXN0IGhhcyBubyBkZXRhaWxlZCB0aW1pbmcgaW5m
by4iKSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fZW1wdHlWaWV3
KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcuc2hvdygpOworICAgICAgICAgICAg
ICAgIHRoaXMuX2VtcHR5Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgICAgICAgICAg
dGhpcy5pbm5lclZpZXcgPSB0aGlzLl9lbXB0eVZpZXc7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVs
ZW1lbnQpOwpAQCAtNTcsNyArNTYsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1pbmdWaWV3
LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh0aGlzLl9lbXB0eVZpZXcp
IHsKLSAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRWaWV3KHRoaXMuX2VtcHR5Vmlldyk7Cisg
ICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcuZGV0YWNoKCk7CiAgICAgICAgICAgICBkZWxldGUg
dGhpcy5fZW1wdHlWaWV3OwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCmluZGV4IDU4NjBiZmRjMGVjZTNj
MDg3ZTcyYTYwMDQyMjYyZTliNWFhZTVmOWQuLjFjYzYwNDM2OWZkMjhiZGVhOGE2ODFiNWZhMTQ2
MDdjMjA1OTJjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpAQCAtMTcxLDEwICsxNzEsNiBAQCBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIGlmICh0aGlzLnNpZGViYXJU
cmVlLnNlbGVjdGVkVHJlZUVsZW1lbnQpCiAgICAgICAgICAgICB0aGlzLnNpZGViYXJUcmVlLnNl
bGVjdGVkVHJlZUVsZW1lbnQuZGVzZWxlY3QoKTsKLQotICAgICAgICB2YXIgY2hpbGRWaWV3cyA9
IHRoaXMuY2hpbGRWaWV3cygpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkVmll
d3MubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyhjaGlsZFZp
ZXdzW2ldKTsKICAgICB9LAogCiAgICAgX3BvcHVsYXRlUmVzb3VyY2VUcmVlOiBmdW5jdGlvbigp
CkBAIC0zNjYsNyArMzYyLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICB7CiAgICAgICAgIHZhciB2aWV3ID0gdGhpcy5fcmVzb3VyY2VWaWV3Rm9yUmVz
b3VyY2UocmVzb3VyY2UpOwogICAgICAgICBpZiAoIXZpZXcpIHsKLSAgICAgICAgICAgIHRoaXMu
dmlzaWJsZVZpZXcuaGlkZSgpOworICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5kZXRhY2go
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAodmlldy5zZWFy
Y2hDYW5jZWxlZCkKQEAgLTUwOSw5ICs1MDUsOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlID0gewogICAgIF9pbm5lclNob3dWaWV3OiBmdW5jdGlvbih2aWV3KQogICAg
IHsKICAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcpCi0gICAgICAgICAgICB0aGlzLnZpc2li
bGVWaWV3LmhpZGUoKTsKKyAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuZGV0YWNoKCk7CiAK
LSAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXcodmlldyk7CiAgICAgICAgIHZpZXcuc2hvdyh0aGlz
LnN0b3JhZ2VWaWV3cyk7CiAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcgPSB2aWV3OwogCkBAIC01
MjUsNyArNTIwLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICB7CiAgICAgICAgIGlmICghdGhpcy52aXNpYmxlVmlldykKICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgdGhpcy52aXNpYmxlVmlldy5oaWRlKCk7CisgICAgICAgIHRoaXMudmlzaWJs
ZVZpZXcuZGV0YWNoKCk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLnZpc2libGVWaWV3OwogICAgIH0s
CiAKQEAgLTEzNDMsOCArMTMzOCw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlVHJlZUVs
ZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB2YXIgb2xkVmlld1BhcmVudE5vZGUgPSBvbGRW
aWV3LnZpc2libGUgPyBvbGRWaWV3LmVsZW1lbnQucGFyZW50Tm9kZSA6IG51bGw7CiAgICAgICAg
IG5ld1ZpZXcuaW5oZXJpdFNjcm9sbFBvc2l0aW9ucyhvbGRWaWV3KTsKIAotICAgICAgICB0aGlz
Ll9zdG9yYWdlUGFuZWwucmVtb3ZlQ2hpbGRWaWV3KHRoaXMuX3NvdXJjZVZpZXcpOwotICAgICAg
ICB0aGlzLl9zdG9yYWdlUGFuZWwuYWRkQ2hpbGRWaWV3KG5ld1ZpZXcpOworICAgICAgICB0aGlz
Ll9zb3VyY2VWaWV3LmRldGFjaCgpOwogICAgICAgICB0aGlzLl9zb3VyY2VWaWV3ID0gbmV3Vmll
dzsKIAogICAgICAgICBpZiAob2xkVmlld1BhcmVudE5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDI3MjJkZjNiNjky
MjQxNjAwNWViMTQwOTNiNWI3MDk1OGYxODExZjcuLmI3NDNhNjI4NDhjNDBiNzBhM2JhNDdlMWYy
YTE5MTM4NjRmMDdmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0yNjAsNyArMjYwLDcgQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
ID0gZXZlbnQuZGF0YTsKICAgICAgICAgaWYgKHVpU291cmNlQ29kZS5fc291cmNlRnJhbWUpCi0g
ICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyh1aVNvdXJjZUNvZGUuX3NvdXJjZUZyYW1l
KTsKKyAgICAgICAgICAgIHVpU291cmNlQ29kZS5fc291cmNlRnJhbWUuZGV0YWNoKCk7CiAgICAg
fSwKIAogICAgIF9zaG93U2NyaXB0Rm9sZGVyc1NldHRpbmdDaGFuZ2VkOiBmdW5jdGlvbigpCkBA
IC02MTcsNyArNjE3LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKHRoaXMuX3Zpc2libGVWaWV3KQot
ICAgICAgICAgICAgdGhpcy5fdmlzaWJsZVZpZXcuaGlkZSgpOworICAgICAgICAgICAgdGhpcy5f
dmlzaWJsZVZpZXcuZGV0YWNoKCk7CiAKICAgICAgICAgdGhpcy5fdmlzaWJsZVZpZXcgPSB4Owog
CkBAIC02OTAsNyArNjkwLDYgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHZhciBkZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVE
ZWxlZ2F0ZUZvclNjcmlwdHNQYW5lbCh0aGlzLCB1aVNvdXJjZUNvZGUpOwogICAgICAgICB2YXIg
c291cmNlRnJhbWUgPSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZShkZWxl
Z2F0ZSwgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwsIHVpU291cmNlQ29kZSk7CiAKLSAgICAgICAg
dGhpcy5hZGRDaGlsZFZpZXcoc291cmNlRnJhbWUpOwogICAgICAgICBzb3VyY2VGcmFtZS5fdWlT
b3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwogICAgICAgICBzb3VyY2VGcmFtZS5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5FdmVudHMuTG9hZGVkLCB0aGlzLl9zb3Vy
Y2VGcmFtZUxvYWRlZCwgdGhpcyk7CiAgICAgICAgIHVpU291cmNlQ29kZS5fc291cmNlRnJhbWUg
PSBzb3VyY2VGcmFtZTsKQEAgLTcwNyw3ICs3MDYsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCFzb3VyY2VGcmFtZSkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgZGVsZXRlIHVpU291cmNlQ29kZS5fc291cmNlRnJhbWU7Ci0gICAg
ICAgIHRoaXMucmVtb3ZlQ2hpbGRWaWV3KHNvdXJjZUZyYW1lKTsKKyAgICAgICAgc291cmNlRnJh
bWUuZGV0YWNoKCk7CiAgICAgICAgIHNvdXJjZUZyYW1lLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlNvdXJjZUZyYW1lLkV2ZW50cy5Mb2FkZWQsIHRoaXMuX3NvdXJjZUZyYW1lTG9h
ZGVkLCB0aGlzKTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGcmFtZS5qcwppbmRleCBjMzExNWE5YTZiZTRlZDg1NTJlYWI1Njg5ZWFh
Yjc0NmRkMjk1MzJhLi5hZjcxY2M4ODA5M2QzYTM5MDRiODc1OGE3ZTc3NDU0ZGFjZWQ5ODRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1l
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUu
anMKQEAgLTQ0LDcgKzQ0LDYgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lID0gZnVuY3Rpb24o
ZGVsZWdhdGUsIHVybCkKIAogICAgIHZhciB0ZXh0Vmlld2VyRGVsZWdhdGUgPSBuZXcgV2ViSW5z
cGVjdG9yLlRleHRWaWV3ZXJEZWxlZ2F0ZUZvclNvdXJjZUZyYW1lKHRoaXMpOwogICAgIHRoaXMu
X3RleHRWaWV3ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIodGhpcy5fdGV4dE1vZGVs
LCBXZWJJbnNwZWN0b3IucGxhdGZvcm0sIHRoaXMuX3VybCwgdGV4dFZpZXdlckRlbGVnYXRlKTsK
LSAgICB0aGlzLmFkZENoaWxkVmlldyh0aGlzLl90ZXh0Vmlld2VyKTsKICAgICB0aGlzLmVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5fdGV4dFZpZXdlci5lbGVtZW50KTsKIAogICAgIHRoaXMucG9w
b3ZlckhlbHBlciA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0UG9wb3ZlckhlbHBlcih0aGlzLl90
ZXh0Vmlld2VyLmVsZW1lbnQsCkBAIC05Myw3ICs5Miw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZS5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90
b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0aGlzLl9lbnN1
cmVDb250ZW50TG9hZGVkKCk7Ci0gICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuc2hvdygpOworICAg
ICAgICB0aGlzLl90ZXh0Vmlld2VyLnNob3codGhpcy5lbGVtZW50KTsKICAgICB9LAogCiAgICAg
d2lsbEhpZGU6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGFiYmVkUGFuZS5qcwppbmRleCBhZjEzNTVjYjYyNzg5MzA2YjhjNDc5OGRlYjQyOWI2
NWI0MmQzYzk2Li41NzkwMzM4OGE0NmM0NWQzNWJlZWI5NzhjNGE3OWRhYzBjYzRkMTAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzCkBA
IC0zMSwxMSArMzEsMTAgQEAKIC8qKgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQog
ICogQGNvbnN0cnVjdG9yCi0gKiBAcGFyYW0ge0VsZW1lbnQ9fSBlbGVtZW50CiAgKi8KLVdlYklu
c3BlY3Rvci5UYWJiZWRQYW5lID0gZnVuY3Rpb24oZWxlbWVudCkKK1dlYkluc3BlY3Rvci5UYWJi
ZWRQYW5lID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcywg
ZWxlbWVudCk7CisgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKICAgICB0aGlzLmVs
ZW1lbnQuYWRkU3R5bGVDbGFzcygidGFiYmVkLXBhbmUiKTsKICAgICB0aGlzLl90YWJzRWxlbWVu
dCA9IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgInRhYmJlZC1wYW5lLWhlYWRlciIp
OwogICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJk
aXYiLCAidGFiYmVkLXBhbmUtY29udGVudCIpOwpAQCAtNTEsNyArNTAsNiBAQCBXZWJJbnNwZWN0
b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5fdGFic0VsZW1lbnQu
YXBwZW5kQ2hpbGQodGFiRWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50LmFw
cGVuZENoaWxkKHZpZXcuZWxlbWVudCk7Ci0gICAgICAgIHRoaXMuYWRkQ2hpbGRWaWV3KHZpZXcp
OwogCiAgICAgICAgIHRoaXMuX3RhYnNbaWRdID0geyB0YWJFbGVtZW50OiB0YWJFbGVtZW50LCB2
aWV3OiB2aWV3IH07CiAgICAgfSwKQEAgLTg2LDcgKzg0LDcgQEAgV2ViSW5zcGVjdG9yLlRhYmJl
ZFBhbmUucHJvdG90eXBlID0gewogICAgIF9oaWRlVGFiOiBmdW5jdGlvbih0YWIpCiAgICAgewog
ICAgICAgICB0YWIudGFiRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJzZWxlY3RlZCIpOwotICAg
ICAgICB0YWIudmlldy52aXNpYmxlID0gZmFsc2U7CisgICAgICAgIHRhYi52aWV3LmRldGFjaCgp
OwogICAgIH0sCiAKICAgICBjYW5IaWdobGlnaHRMaW5lOiBmdW5jdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMKaW5kZXggZDcwNzQ5ZTQ0ODRkNzczN2Ey
NmQ3YjM3YmMxNmYzNTNlMDM1ZWNjZC4uODNiMzBlYzFiMzE0YzY4ZTA1NjZiMTI3NjJkNjYwMjA4
M2E3MWQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9W
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcwpA
QCAtMjcsMTEgKzI3LDEzIEBACiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dl
Ykluc3BlY3Rvci5PYmplY3R9Ci0gKiBAcGFyYW0ge0VsZW1lbnQ9fSBlbGVtZW50CiAgKi8KLVdl
Ykluc3BlY3Rvci5WaWV3ID0gZnVuY3Rpb24oZWxlbWVudCkKK1dlYkluc3BlY3Rvci5WaWV3ID0g
ZnVuY3Rpb24oKQogewotICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQgfHwgZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJ
bnNlcnRlZEludG9Eb2N1bWVudCIsIHRoaXMuX2hhbmRsZUluc2VydGVkSW50b0RvY3VtZW50LmJp
bmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9N
Tm9kZVJlbW92ZWRGcm9tRG9jdW1lbnQiLCB0aGlzLl9oYW5kbGVSZW1vdmVkRnJvbURvY3VtZW50
LmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLmVsZW1lbnQuX192aWV3ID0gdGhpczsKICAg
ICB0aGlzLl92aXNpYmxlID0gZmFsc2U7CiAgICAgdGhpcy5fY2hpbGRyZW4gPSBbXTsKIH0KQEAg
LTQ4LDcgKzUwLDcgQEAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIGlmICh4KQotICAgICAgICAgICAgdGhpcy5zaG93KCk7Cisg
ICAgICAgICAgICB0aGlzLnNob3codGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICB0aGlzLmhpZGUoKTsKICAgICB9LApAQCAtNjQsNDcgKzY2LDQz
IEBAIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5zdG9yZVNj
cm9sbFBvc2l0aW9ucygpOwogICAgIH0sCiAKLSAgICBfaW5uZXJTaG93OiBmdW5jdGlvbigpCisg
ICAgd2lsbERldGFjaDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFk
ZFN0eWxlQ2xhc3MoInZpc2libGUiKTsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFt
IHtFbGVtZW50PX0gcGFyZW50RWxlbWVudAorICAgICAqIEBwYXJhbSB7RWxlbWVudH0gcGFyZW50
RWxlbWVudAogICAgICAqLwogICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCiAgICAg
ewogICAgICAgICB0aGlzLl92aXNpYmxlID0gdHJ1ZTsKLSAgICAgICAgaWYgKHBhcmVudEVsZW1l
bnQgJiYgcGFyZW50RWxlbWVudCAhPT0gdGhpcy5lbGVtZW50LnBhcmVudE5vZGUpIHsKLSAgICAg
ICAgICAgIHRoaXMuX2RldGFjaCgpOwotICAgICAgICAgICAgcGFyZW50RWxlbWVudC5hcHBlbmRD
aGlsZCh0aGlzLmVsZW1lbnQpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghdGhpcy5lbGVtZW50
LnBhcmVudE5vZGUpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLmF0dGFjaCkKLSAgICAgICAgICAg
ICAgICB0aGlzLmF0dGFjaCgpOwotICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fcGFyZW50Vmll
dykKLSAgICAgICAgICAgICAgICB0aGlzLl9wYXJlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQo
dGhpcy5lbGVtZW50KTsKLSAgICAgICAgfQotICAgICAgICB0aGlzLl9pbm5lclNob3coKTsKLSAg
ICAgICAgdGhpcy5kaXNwYXRjaFRvU2VsZkFuZFZpc2libGVDaGlsZHJlbigid2FzU2hvd24iKTsK
KyAgICAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInZpc2libGUiKTsKKyAgICAgICAg
aWYgKHBhcmVudEVsZW1lbnQgJiYgdGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQgIT0gcGFyZW50
RWxlbWVudCkKKyAgICAgICAgICAgIHRoaXMuYXR0YWNoKHBhcmVudEVsZW1lbnQpOworICAgICAg
ICB0aGlzLmRpc3BhdGNoVG9TZWxmQW5kQ2hpbGRyZW4oIndhc1Nob3duIiwgdHJ1ZSk7CiAgICAg
fSwKIAotICAgIF9pbm5lckhpZGU6IGZ1bmN0aW9uKCkKKyAgICBoaWRlOiBmdW5jdGlvbigpCiAg
ICAgeworICAgICAgICB0aGlzLmRpc3BhdGNoVG9TZWxmQW5kQ2hpbGRyZW4oIndpbGxIaWRlIiwg
dHJ1ZSk7CiAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ2aXNpYmxlIik7
CisgICAgICAgIHRoaXMuX3Zpc2libGUgPSBmYWxzZTsKICAgICB9LAogCi0gICAgaGlkZTogZnVu
Y3Rpb24oKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7RWxlbWVudH0gcGFyZW50RWxlbWVudAor
ICAgICAqLworICAgIGF0dGFjaDogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKICAgICB7Ci0gICAg
ICAgIHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRWaXNpYmxlQ2hpbGRyZW4oIndpbGxIaWRlIik7Ci0g
ICAgICAgIHRoaXMuX2lubmVySGlkZSgpOwotICAgICAgICB0aGlzLl92aXNpYmxlID0gZmFsc2U7
CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTsKICAgICB9
LAogCi0gICAgX2RldGFjaDogZnVuY3Rpb24oKQorICAgIGRldGFjaDogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5wYXJlbnROb2RlKQotICAgICAgICAgICAgdGhp
cy5lbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KTsKKyAgICAgICAg
dGhpcy5kaXNwYXRjaFRvU2VsZkFuZENoaWxkcmVuKCJ3aWxsRGV0YWNoIik7CisKKyAgICAgICAg
aWYgKHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50KQorICAgICAgICAgICAgdGhpcy5lbGVtZW50
LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KTsKICAgICB9LAogCiAgICAg
ZWxlbWVudHNUb1Jlc3RvcmVTY3JvbGxQb3NpdGlvbnNGb3I6IGZ1bmN0aW9uKCkKQEAgLTEzNCwz
MCArMTMyLDIyIEBAIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQog
ICAgIH0sCiAKLSAgICBhZGRDaGlsZFZpZXc6IGZ1bmN0aW9uKHZpZXcpCisgICAgX2FkZENoaWxk
VmlldzogZnVuY3Rpb24odmlldykKICAgICB7Ci0gICAgICAgIGlmICh2aWV3Ll9wYXJlbnRWaWV3
ID09PSB0aGlzKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAodmlldy5fcGFyZW50
VmlldykKLSAgICAgICAgICAgIHZpZXcuX3BhcmVudFZpZXcucmVtb3ZlQ2hpbGRWaWV3KHZpZXcp
OwogICAgICAgICB0aGlzLl9jaGlsZHJlbi5wdXNoKHZpZXcpOwogICAgICAgICB2aWV3Ll9wYXJl
bnRWaWV3ID0gdGhpczsKICAgICB9LAogCi0gICAgcmVtb3ZlQ2hpbGRWaWV3OiBmdW5jdGlvbih2
aWV3KQorICAgIF9yZW1vdmVDaGlsZFZpZXc6IGZ1bmN0aW9uKHZpZXcpCiAgICAgewogICAgICAg
ICB2YXIgY2hpbGRJbmRleCA9IHRoaXMuX2NoaWxkcmVuLmluZGV4T2Yodmlldyk7Ci0gICAgICAg
IGlmIChjaGlsZEluZGV4IDwgMCkKKyAgICAgICAgaWYgKGNoaWxkSW5kZXggPCAwKSB7CisgICAg
ICAgICAgICBjb25zb2xlLmVycm9yKCJBdHRlbXB0IHRvIHJlbW92ZSBub24tY2hpbGQgdmlldyIp
OwogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fY2hpbGRy
ZW4uc3BsaWNlKGNoaWxkSW5kZXgsIDEpOwogICAgICAgICB2aWV3Ll9wYXJlbnRWaWV3ID0gbnVs
bDsKLSAgICAgICAgdmlldy5fZGV0YWNoKCk7Ci0gICAgfSwKLQotICAgIGNoaWxkVmlld3M6IGZ1
bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbi5zbGljZSgpOwog
ICAgIH0sCiAKICAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQpAQCAtMTc1LDI1ICsxNjUsNjYgQEAg
V2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlID0gewogCiAgICAgZG9SZXNpemU6IGZ1bmN0aW9u
KCkKICAgICB7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRWaXNpYmxlQ2hpbGRyZW4o
Im9uUmVzaXplIik7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJlbigib25S
ZXNpemUiLCB0cnVlKTsKICAgICB9LAogCi0gICAgZGlzcGF0Y2hUb1NlbGZBbmRWaXNpYmxlQ2hp
bGRyZW46IGZ1bmN0aW9uKG1ldGhvZE5hbWUpCisgICAgZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJl
bjogZnVuY3Rpb24obWV0aG9kTmFtZSwgdmlzaWJsZU9ubHkpCiAgICAgewotICAgICAgICBpZiAo
IXRoaXMudmlzaWJsZSkKKyAgICAgICAgaWYgKHZpc2libGVPbmx5ICYmICF0aGlzLnZpc2libGUp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmICh0eXBlb2YgdGhpc1ttZXRob2ROYW1l
XSA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgICAgIHRoaXNbbWV0aG9kTmFtZV0uY2FsbCh0aGlz
KTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaFRvVmlzaWJsZUNoaWxkcmVuKG1ldGhvZE5hbWUpOwor
ICAgICAgICB0aGlzLmRpc3BhdGNoVG9DaGlsZHJlbihtZXRob2ROYW1lLCB2aXNpYmxlT25seSk7
CiAgICAgfSwKIAotICAgIGRpc3BhdGNoVG9WaXNpYmxlQ2hpbGRyZW46IGZ1bmN0aW9uKG1ldGhv
ZE5hbWUpCisgICAgZGlzcGF0Y2hUb0NoaWxkcmVuOiBmdW5jdGlvbihtZXRob2ROYW1lLCB2aXNp
YmxlT25seSkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy52aXNpYmxlKQorICAgICAgICBpZiAo
dmlzaWJsZU9ubHkgJiYgIXRoaXMudmlzaWJsZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9jaGlsZHJlbi5sZW5ndGg7ICsraSkKLSAgICAg
ICAgICAgIHRoaXMuX2NoaWxkcmVuW2ldLmRpc3BhdGNoVG9TZWxmQW5kVmlzaWJsZUNoaWxkcmVu
KG1ldGhvZE5hbWUpOworICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW5baV0uZGlzcGF0Y2hUb1Nl
bGZBbmRDaGlsZHJlbihtZXRob2ROYW1lLCB2aXNpYmxlT25seSk7CisgICAgfSwKKworICAgIF9o
YW5kbGVJbnNlcnRlZEludG9Eb2N1bWVudDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAg
ICB2YXIgcGFyZW50RWxlbWVudCA9IHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50OworICAgICAg
ICB3aGlsZSAocGFyZW50RWxlbWVudCAmJiAhcGFyZW50RWxlbWVudC5fX3ZpZXcpCisgICAgICAg
ICAgICBwYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50OworCisgICAg
ICAgIHZhciBwYXJlbnRWaWV3ID0gcGFyZW50RWxlbWVudCA/IHBhcmVudEVsZW1lbnQuX192aWV3
IDogV2ViSW5zcGVjdG9yLl9yb290VmlldzsKKyAgICAgICAgcGFyZW50Vmlldy5fYWRkQ2hpbGRW
aWV3KHRoaXMpOworICAgICAgICB0aGlzLm9uSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICB9
LAorCisgICAgb25JbnNlcnRlZEludG9Eb2N1bWVudDogZnVuY3Rpb24oKQorICAgIHsKKyAgICB9
LAorCisgICAgX2hhbmRsZVJlbW92ZWRGcm9tRG9jdW1lbnQ6IGZ1bmN0aW9uKGV2ZW50KQorICAg
IHsKKyAgICAgICAgaWYgKHRoaXMuX3BhcmVudFZpZXcpCisgICAgICAgICAgICB0aGlzLl9wYXJl
bnRWaWV3Ll9yZW1vdmVDaGlsZFZpZXcodGhpcyk7CisgICAgfSwKKworICAgIHByaW50Vmlld0hp
ZXJhcmNoeTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIGxpbmVzID0gW107CisgICAg
ICAgIHRoaXMuX2NvbGxlY3RWaWV3SGllcmFyY2h5KCIiLCBsaW5lcyk7CisgICAgICAgIGNvbnNv
bGUubG9nKGxpbmVzLmpvaW4oIlxuIikpOworICAgIH0sCisKKyAgICBfY29sbGVjdFZpZXdIaWVy
YXJjaHk6IGZ1bmN0aW9uKHByZWZpeCwgbGluZXMpCisgICAgeworICAgICAgICBsaW5lcy5wdXNo
KHByZWZpeCArICJbIiArIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgKyAiXSIgKyAodGhpcy5fY2hp
bGRyZW4ubGVuZ3RoID8gIiB7IiA6ICIiKSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCB0aGlzLl9jaGlsZHJlbi5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMuX2NoaWxkcmVu
W2ldLl9jb2xsZWN0Vmlld0hpZXJhcmNoeShwcmVmaXggKyAiICAgICIsIGxpbmVzKTsKKworICAg
ICAgICBpZiAodGhpcy5fY2hpbGRyZW4ubGVuZ3RoKQorICAgICAgICAgICAgbGluZXMucHVzaChw
cmVmaXggKyAifSIpOwogICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9f
cHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOworCitXZWJJbnNwZWN0b3Iu
X3Jvb3RWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5WaWV3KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKaW5kZXggZjY3OGEzZDc4ZDFmZmMz
NzEyOWFhNmE2NTJkYzY4ZDVkNDY0YTA3Yi4uYjhlOTMwYjNkY2MxMDU4M2RkZTFkOGRiODUxMzI1
OTQ2ZDliYzFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmNzcwpAQCAtMzEsNiArMzEsMTQgQEAgaW5wdXRbdHlwZT0ic2VhcmNoIl06Zm9j
dXMsIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cyB7CiAgICAgb3V0bGluZTogYXV0byA1cHggLXdl
YmtpdC1mb2N1cy1yaW5nLWNvbG9yOwogfQogCisuZmlsbCB7CisgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworICAgIHJpZ2h0OiAwOworICAgIGJvdHRv
bTogMDsKK30KKwogI3Rvb2xiYXIgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICB0b3A6
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
aHRtbAppbmRleCAxYzExY2QwOTUxZGIwZThlOWE3NTJiM2U0ZTg1YjU4YmI2OWI5ODIwLi4zOTdh
MTNlMGIyMjI3MzUzZGRlNThlNjA5OTRlZTU2ZjllMTFlZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKQEAgLTM2LDYgKzM2LDcg
QEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBo
cmVmPSJpbnNwZWN0b3IuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRl
eHQvY3NzIiBocmVmPSJpbnNwZWN0b3JDb21tb24uY3NzIj4KICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJpbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3Nz
Ij4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJuZXR3
b3JrTG9nVmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiIGhyZWY9Im5ldHdvcmtQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9ImhlbHBTY3JlZW4uY3NzIj4KICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJwb3BvdmVyLmNzcyI+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDE0ODI5MmQy
YTcyNDQzODE0ZTZhMzNlODM1NzM2MjFjOTEyOTc3NzAuLmYwYWNlOWM2MzhkNDg5Mjg5MWNiNGJk
YTI4NDI3OWVjZjUwNjZlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0xMjksNyArMTI5LDcgQEAgdmFyIFdlYkluc3BlY3RvciA9
IHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAodGhpcy5fY3VycmVudFBhbmVs
KQotICAgICAgICAgICAgdGhpcy5fY3VycmVudFBhbmVsLmhpZGUoKTsKKyAgICAgICAgICAgIHRo
aXMuX2N1cnJlbnRQYW5lbC5kZXRhY2goKTsKIAogICAgICAgICB0aGlzLl9jdXJyZW50UGFuZWwg
PSB4OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMGQ1OTRhYjY2OWU5YmM0MTgyMGYzZGQ3N2ZmN2MxM2U4ZjUzODQ1YS4u
YTkzNmM3ZWIxMTAyM2QzZWU0ZDcxYzJiMDA3MGI1OWZlNmYxY2IxZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDExLTEwLTE5ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBnZXQgcmlkIG9mIG1hbnVhbCB2aWV3IGhpZXJhcmNo
eSBtYW5hZ2VtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzA0MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGluc3BlY3Rvci92aWV3LWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5z
cGVjdG9yL3ZpZXctZXZlbnRzLmh0bWw6CisKIDIwMTEtMTAtMTkgIENoYW5nIFNodSAgPGNzaHVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFN1cHBvcnQgV0sxLW9ubHkgU2tpcHBlZCBsaXN0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1ldmVudHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRl
eCBhMDYyMGNkZWZjYjMxZGUzYWIyYTVlMjc2YzY5ZmM5OWY5OTFiMjkwLi42YzM3MWM4OTQ1NzY0
NWJmYWI3ZjE3NzQxMjc0M2I4MjMyYjY2NGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivdmlldy1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci92aWV3LWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTUsMTMgKzUsMTMgQEAgcGFyZW50Vmlldy5z
aG93KHJvb3QpCiA+IFBhcmVudFZpZXcub25SZXNpemUoKQogcGFyZW50Vmlldy5kb1Jlc2l6ZSgp
CiA+IFBhcmVudFZpZXcub25SZXNpemUoKQotY2hpbGRWaWV3LnNob3coKQorY2hpbGRWaWV3LnNo
b3cocGFyZW50Vmlldy5lbGVtZW50KQogPiBDaGlsZFZpZXcud2FzU2hvd24oKQogPiBDaGlsZFZp
ZXcub25SZXNpemUoKQogcGFyZW50Vmlldy5kb1Jlc2l6ZSgpCiA+IFBhcmVudFZpZXcub25SZXNp
emUoKQogPiBDaGlsZFZpZXcub25SZXNpemUoKQotcGFyZW50Vmlldy5oaWRlKHJvb3QpCitwYXJl
bnRWaWV3LmhpZGUoKQogPiBQYXJlbnRWaWV3LndpbGxIaWRlKCkKID4gQ2hpbGRWaWV3LndpbGxI
aWRlKCkKIHBhcmVudFZpZXcuc2hvdyhyb290KQpAQCAtMjEsNiArMjEsNiBAQCBwYXJlbnRWaWV3
LnNob3cocm9vdCkKID4gQ2hpbGRWaWV3Lm9uUmVzaXplKCkKIGNoaWxkVmlldy5oaWRlKCkKID4g
Q2hpbGRWaWV3LndpbGxIaWRlKCkKLXBhcmVudFZpZXcuaGlkZShyb290KQorcGFyZW50Vmlldy5o
aWRlKCkKID4gUGFyZW50Vmlldy53aWxsSGlkZSgpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXct
ZXZlbnRzLmh0bWwKaW5kZXggMGQzOGViNjI5M2JjY2IxMmFiMGZjZWZiZDI3MzYyMTRjOWIwOTQ3
OC4uNzgzZjc2ODEwMTI2NjBkYTZjN2ZmMDE3ZDRkOTdlODUyNzgwNjExYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWwKQEAgLTQxLDIwICs0MSwxOSBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICB9CiAgICAgdmFyIHBhcmVudFZpZXcgPSBuZXcgVGVzdFZpZXcoIlBhcmVudFZp
ZXciKTsKICAgICB2YXIgY2hpbGRWaWV3ID0gbmV3IFRlc3RWaWV3KCJDaGlsZFZpZXciKTsKLSAg
ICBwYXJlbnRWaWV3LmFkZENoaWxkVmlldyhjaGlsZFZpZXcpOwogICAgIHZhciByb290ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tcGFuZWxzIik7CiAgICAgdHJhY2VFdmFsKFsKICAg
ICAgICAgInBhcmVudFZpZXcuc2hvdyhyb290KSIsCiAgICAgICAgICJwYXJlbnRWaWV3LmRvUmVz
aXplKCkiLAotICAgICAgICAiY2hpbGRWaWV3LnNob3coKSIsCisgICAgICAgICJjaGlsZFZpZXcu
c2hvdyhwYXJlbnRWaWV3LmVsZW1lbnQpIiwKICAgICAgICAgInBhcmVudFZpZXcuZG9SZXNpemUo
KSIsCi0gICAgICAgICJwYXJlbnRWaWV3LmhpZGUocm9vdCkiLAorICAgICAgICAicGFyZW50Vmll
dy5oaWRlKCkiLAogICAgICAgICAicGFyZW50Vmlldy5zaG93KHJvb3QpIiwKICAgICAgICAgImNo
aWxkVmlldy5oaWRlKCkiLAotICAgICAgICAicGFyZW50Vmlldy5oaWRlKHJvb3QpIgorICAgICAg
ICAicGFyZW50Vmlldy5oaWRlKCkiCiAgICAgXSk7Ci0gICAgcGFyZW50Vmlldy5yZW1vdmVDaGls
ZFZpZXcoY2hpbGRWaWV3KTsKLSAgICByb290LnJlbW92ZUNoaWxkKHBhcmVudFZpZXcuZWxlbWVu
dCk7CisgICAgY2hpbGRWaWV3LmRldGFjaCgpOworICAgIHBhcmVudFZpZXcuZGV0YWNoKCk7CiAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKIH0KIAo=
</data>
<flag name="review"
          id="109510"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>