<?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>66131</bug_id>
          
          <creation_ts>2011-08-12 03:05:34 -0700</creation_ts>
          <short_desc>Web Inspector: maintain visible view hierarchy and dispatch common view events automatically</short_desc>
          <delta_ts>2011-08-18 07:23:43 -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>
          
          <blocked>66064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</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>450374</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-12 03:05:34 -0700</bug_when>
    <thetext>- added a notion of an optional parent to a View
- maintain a list of visible View children
- dispatch common view events, such as resize, activation (i.e. becoming visible as a result of some of the parent views becoming visible) and deactivation automatically through the hierarchy of visible views.
- changed store/restore of the view scroll position to use element&apos;s scrollTop/scrollLeft rather than view properties
- removed scrollTop/scrollLeft getters/setters for views that have an unusual scroll container, override storeScrollPositions()/restoreScrollPositions() instead.

This takes hare of several bugs where we were not restoring view positions properly or not re-sizing views. Also, this removes some custom/override logic from view and panel implementation in favor of common logic in the base View.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450375</commentid>
    <comment_count>1</comment_count>
      <attachid>103756</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-12 03:08:38 -0700</bug_when>
    <thetext>Created attachment 103756
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450390</commentid>
    <comment_count>2</comment_count>
      <attachid>103756</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-12 04:49:17 -0700</bug_when>
    <thetext>Comment on attachment 103756
patch

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

&gt; Source/WebCore/inspector/front-end/ConsoleView.js:38
&gt; +    drawer.setParent(this);

ConsoleView is not a parent of drawer. Is full screen mode a drawer?

&gt; Source/WebCore/inspector/front-end/Drawer.js:183
&gt; +            WebInspector.currentPanel.dispatchToVisibleViews(&quot;resize&quot;);

I like the way it was.

&gt; Source/WebCore/inspector/front-end/Drawer.js:363
&gt; + }

extra space

&gt; Source/WebCore/inspector/front-end/NetworkPanel.js:643
&gt; +    viewActivated: function()

What is view activated?

&gt; Source/WebCore/inspector/front-end/NetworkPanel.js:1388
&gt; +            this.visibleView.setParent(null);

You should do addChildView instead.

&gt; Source/WebCore/inspector/front-end/View.js:137
&gt; +        this._visibleChildren.push(view);

I don&apos;t think you should distinguish between visible views and non-visible views here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451080</commentid>
    <comment_count>3</comment_count>
      <attachid>103917</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-15 08:55:18 -0700</bug_when>
    <thetext>Created attachment 103917
patch

- viewActivated/viewDeactivated -&gt; becameOnscreen/becameOffscreen
- setParent -&gt; addChild/removeChild
- generalized saving/restoring scroll positions between panel and view
- only support inheriting scroll positions for TextView &amp; SourceFrame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451557</commentid>
    <comment_count>4</comment_count>
      <attachid>103917</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-16 05:07:46 -0700</bug_when>
    <thetext>Comment on attachment 103917
patch

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

We need to make sure that the view with the attached element is in the view hierarchy.

&gt; Source/WebCore/ChangeLog:3
&gt; +        Web Inspector: maintain visible view hierarchy and dispatch common view events automatically

Does this change fix any bugs?

&gt; Source/WebCore/inspector/front-end/Drawer.js:65
&gt; +            this.removeChild(this._visibleView);

Why do we do this? We should either view.hide or detach / removeChild.

&gt; Source/WebCore/inspector/front-end/NetworkPanel.js:1257
&gt; +    this.addChild(this._networkLogView);

addChildView

&gt; Source/WebCore/inspector/front-end/NetworkPanel.js:1390
&gt;              this.visibleView.detach();

detach should remove child from hierarchy.

&gt; Source/WebCore/inspector/front-end/NetworkPanel.js:1407
&gt; +            this.removeChild(this.visibleView);

ditto

&gt; Source/WebCore/inspector/front-end/Panel.js:390
&gt; +        this.dispatchToVisibleChildren(&quot;resize&quot;);

This should be on view, you should distinguish doResize and onResize.

&gt; Source/WebCore/inspector/front-end/ResourcesPanel.js:519
&gt; +        this.addChild(view);

Again, hide and addChild should not be invoked next to each other.

&gt; Source/WebCore/inspector/front-end/ResourcesPanel.js:534
&gt; +        this.removeChild(this.visibleView);

detach / removeChild together.

&gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:672
&gt; +        sourceFrame.detach();

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451672</commentid>
    <comment_count>5</comment_count>
      <attachid>104056</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-16 09:35:08 -0700</bug_when>
    <thetext>Created attachment 104056
patch

Panel.resize() -&gt; View.doResize() &amp; View.onResize()
View.detach() -&gt; View._detach(), clients should removeChildView() instead.
ebcameOnscreen()/becameOffscreen() -&gt; didShow()/willHide()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451675</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-16 09:40:45 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 103917 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=103917&amp;action=review
&gt; 
&gt; Does this change fix any bugs?

yep -- at least bug 66064, plus a number of bugs with saving/restoring scroll positions (which I didn&apos;t file separately).

Also, forgetting to delegate resize() or show()/hide() properly used to be our favorite source of bugs in the past.
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/Drawer.js:65
&gt; &gt; +            this.removeChild(this._visibleView);
&gt; 
&gt; Why do we do this? We should either view.hide or detach / removeChild.

We now just call removeChildView() in the client code, detach() is implicit.

&gt; &gt; Source/WebCore/inspector/front-end/NetworkPanel.js:1257
&gt; &gt; +    this.addChild(this._networkLogView);
&gt; 
&gt; addChildView

done.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/NetworkPanel.js:1390
&gt; &gt;              this.visibleView.detach();
&gt; 
&gt; detach should remove child from hierarchy.

I made it vice versa.

&gt; &gt; Source/WebCore/inspector/front-end/NetworkPanel.js:1407
&gt; &gt; +            this.removeChild(this.visibleView);
&gt; 
&gt; ditto
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/Panel.js:390
&gt; &gt; +        this.dispatchToVisibleChildren(&quot;resize&quot;);
&gt; 
&gt; This should be on view, you should distinguish doResize and onResize.

done.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ResourcesPanel.js:519
&gt; &gt; +        this.addChild(view);
&gt; 
&gt; Again, hide and addChild should not be invoked next to each other.
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ResourcesPanel.js:534
&gt; &gt; +        this.removeChild(this.visibleView);
&gt; 
&gt; detach / removeChild together.
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:672
&gt; &gt; +        sourceFrame.detach();
&gt; 
&gt; ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451702</commentid>
    <comment_count>7</comment_count>
      <attachid>104056</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-16 10:05:48 -0700</bug_when>
    <thetext>Comment on attachment 104056
patch

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

Looks good. Please provide a couple of tests!

&gt; Source/WebCore/inspector/front-end/ResourcesPanel.js:533
&gt; +        this.removeChildView(this.visibleView);

Either leave view as is or detach it at all times.

&gt; Source/WebCore/inspector/front-end/SourceFrame.js:81
&gt; +    show: function(parent)

This change does not look consistent. Please leave parentElement.

&gt; Source/WebCore/inspector/front-end/View.js:54
&gt; +        if (typeof this.onResize === &quot;function&quot;)

Just call onResize.

&gt; Source/WebCore/inspector/front-end/View.js:131
&gt; +    addChildView: function(view, parentElement)

parentElement is unused.

&gt; Source/WebCore/inspector/front-end/View.js:133
&gt; +        if (view._parent === this)

_parentView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453025</commentid>
    <comment_count>8</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-18 07:23:43 -0700</bug_when>
    <thetext>Manually committed r93196: http://trac.webkit.org/changeset/93196</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103756</attachid>
            <date>2011-08-12 03:08:38 -0700</date>
            <delta_ts>2011-08-15 08:55:18 -0700</delta_ts>
            <desc>patch</desc>
            <filename>view-children.diff</filename>
            <type>text/plain</type>
            <size>29030</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwNDU4MDNmLi5hN2FiYThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODUg
QEAKKzIwMTEtMDgtMTIgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBtYWludGFpbiB2aXNpYmxlIHZpZXcgaGllcmFyY2h5IGFu
ZCBkaXNwYXRjaCBjb21tb24gdmlldyBldmVudHMgYXV0b21hdGljYWxseQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYxMzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIGFkZGVkIGEgbm90aW9uIG9mIGFu
IG9wdGlvbmFsIHBhcmVudCB0byBhIFZpZXcKKyAgICAgICAgLSBtYWludGFpbiBhIGxpc3Qgb2Yg
dmlzaWJsZSBWaWV3IGNoaWxkcmVuCisgICAgICAgIC0gZGlzcGF0Y2ggY29tbW9uIHZpZXcgZXZl
bnRzLCBzdWNoIGFzIHJlc2l6ZSwgYWN0aXZhdGlvbiAoaS5lLiBiZWNvbWluZyB2aXNpYmxlIGFz
IGEgcmVzdWx0IG9mIHNvbWUgb2YgdGhlIHBhcmVudCB2aWV3cyBiZWNvbWluZyB2aXNpYmxlKSBh
bmQgZGVhY3RpdmF0aW9uIGF1dG9tYXRpY2FsbHkgdGhyb3VnaCB0aGUgaGllcmFyY2h5IG9mIHZp
c2libGUgdmlld3MuCisgICAgICAgIC0gY2hhbmdlZCBzdG9yZS9yZXN0b3JlIG9mIHRoZSB2aWV3
IHNjcm9sbCBwb3NpdGlvbiB0byB1c2UgZWxlbWVudCdzIHNjcm9sbFRvcC9zY3JvbGxMZWZ0IHJh
dGhlciB0aGFuIHZpZXcgcHJvcGVydGllcworICAgICAgICAtIHJlbW92ZWQgc2Nyb2xsVG9wL3Nj
cm9sbExlZnQgZ2V0dGVycy9zZXR0ZXJzIGZvciB2aWV3cyB0aGF0IGhhdmUgYW4gdW51c3VhbCBz
Y3JvbGwgY29udGFpbmVyLCBvdmVycmlkZSBzdG9yZVNjcm9sbFBvc2l0aW9ucygpL3Jlc3RvcmVT
Y3JvbGxQb3NpdGlvbnMoKSBpbnN0ZWFkLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90
b3R5cGUuc3RvcmVTY3JvbGxQb3NpdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVWaWV3LnByb3RvdHlwZS5yZXN0b3JlU2Nyb2xsUG9zaXRpb25zKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIu
cHJvdG90eXBlLmhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUu
X2FuaW1hdGVEcmF3ZXJIZWlnaHQuYW5pbWF0aW9uRmluaXNoZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRyYXdlci5wcm90b3R5cGUuX2FuaW1hdGVEcmF3ZXJIZWlnaHQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUuX3N0YXR1c0JhckRyYWdnaW5nKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlLl9lbmRTdGF0dXNCYXJEcmFnZ2luZyk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JRnJhbWVWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLklGcmFtZVZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya0l0ZW1WaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtJdGVtVmll
dy5wcm90b3R5cGUuX2luc3RhbGxIaWdobGlnaHRTdXBwb3J0KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3
b3JrTG9nVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90
eXBlLmVsZW1lbnRzVG9SZXN0b3JlU2Nyb2xsUG9zaXRpb25zRm9yKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUudmlld0FjdGl2YXRlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlLnZpZXdEZWFjdGl2YXRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5ldHdvcmtQYW5lbC5wcm90b3R5cGUuX3Nob3dSZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZS5fY2xvc2VWaXNpYmxlUmVzb3VyY2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUGFuZWwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnBy
b3RvdHlwZS5oaWRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUudXBk
YXRlU2lkZWJhcldpZHRoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUu
c3RvcmVTY3JvbGxQb3NpdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3Rv
dHlwZS5yZXN0b3JlU2Nyb2xsUG9zaXRpb25zKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5l
bC5wcm90b3R5cGUudXBkYXRlTWFpblZpZXdXaWR0aCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUuX3Jlc291cmNlVmlld0ZvclJlc291cmNlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX2lubmVyU2hvd1ZpZXcpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5jbG9zZVZpc2libGVW
aWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUudXBk
YXRlTWFpblZpZXdXaWR0aCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5z
aG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jcmVh
dGVTb3VyY2VGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZS5fcmVtb3ZlU291cmNlRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbC5wcm90b3R5cGUuc2V0U2lkZWJhcldpZHRoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1l
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuc2hvdyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLnZpZXdEZWFjdGl2YXRl
ZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlLmFwcGVuZFRhYik6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRleHRWaWV3ZXIucHJvdG90eXBlLnN0b3JlU2Nyb2xsUG9zaXRpb25zKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZS5yZXN0b3JlU2Nyb2xsUG9zaXRpb25z
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuZWxlbWVudHNUb1Jlc3Rv
cmVTY3JvbGxQb3NpdGlvbnNGb3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVmlldy5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aWV3LnByb3RvdHlwZS52aWV3QWN0aXZhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZS52aWV3RGVhY3RpdmF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcu
cHJvdG90eXBlLl9pbm5lclNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90
eXBlLnNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9pbm5lckhp
ZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnN0b3JlU2Nyb2xsUG9zaXRpb25zKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5yZXN0b3JlU2Nyb2xsUG9zaXRpb25z
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zZXRQYXJlbnQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9hZGRWaXNpYmxlQ2hpbGQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9yZW1vdmVWaXNpYmxlQ2hpbGQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmRpc3BhdGNoVG9WaXNpYmxlVmll
d3MpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLndpbmRvd1Jlc2l6ZSk6CisKIDIwMTEtMDgtMTEgIEFuZHJleSBLb3N5
YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbcmVm
YWN0b3JpbmddIG1ha2UgdGFiYmVkIHBhbmUgYSB2aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCA5NzQ3NzU4Li43MDI3NzQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVW
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZp
ZXcuanMKQEAgLTM1LDYgKzM1LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rp
b24oZHJhd2VyKQogCiAgICAgdGhpcy5tZXNzYWdlcyA9IFtdOwogICAgIHRoaXMuZHJhd2VyID0g
ZHJhd2VyOworICAgIGRyYXdlci5zZXRQYXJlbnQodGhpcyk7CiAKICAgICB0aGlzLmNsZWFyQnV0
dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsZWFyLWNvbnNvbGUtc3RhdHVzLWJhci1p
dGVtIik7CiAgICAgdGhpcy5jbGVhckJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiQ2xlYXIgY29uc29sZSBsb2cuIik7CkBAIC03ODYsMjQgKzc4NywxNiBAQCBXZWJJbnNwZWN0
b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0
KG91dHB1dCwgb3V0cHV0LnN1YnR5cGUgJiYgb3V0cHV0LnN1YnR5cGUgPT09ICJhcnJheSIpOwog
ICAgIH0sCiAKLSAgICBnZXQgc2Nyb2xsTGVmdCgpCisgICAgc3RvcmVTY3JvbGxQb3NpdGlvbnM6
IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VzRWxlbWVudC5z
Y3JvbGxMZWZ0OworICAgICAgICB0aGlzLl9zY3JvbGxMZWZ0ID0gdGhpcy5tZXNzYWdlc0VsZW1l
bnQuc2Nyb2xsTGVmdDsKKyAgICAgICAgdGhpcy5fc2N0b2xsVG9wID0gdGhpcy5tZXNzYWdlc0Vs
ZW1lbnQuc2Nyb2xsVG9wOwogICAgIH0sCiAKLSAgICBzZXQgc2Nyb2xsTGVmdChzY3JvbGxMZWZ0
KQorICAgIHJlc3RvcmVTY3JvbGxQb3NpdGlvbnM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IHRoaXMubWVzc2FnZXNFbGVtZW50LnNjcm9sbExlZnQgPSBzY3JvbGxMZWZ0OwotICAgIH0sCi0K
LSAgICBnZXQgc2Nyb2xsVG9wKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2Vz
RWxlbWVudC5zY3JvbGxUb3A7Ci0gICAgfSwKLQotICAgIHNldCBzY3JvbGxUb3Aoc2Nyb2xsVG9w
KQotICAgIHsKLSAgICAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuc2Nyb2xsVG9wID0gc2Nyb2xs
VG9wOworICAgICAgICB0aGlzLm1lc3NhZ2VzRWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy5fc2Ny
b2xsTGVmdDsKKyAgICAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy5f
c2Nyb2xsVG9wOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EcmF3ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RyYXdlci5qcwppbmRleCAzODA0NmYwLi4yYWNiMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcwpAQCAtMTgwLDcgKzE4MCw3IEBAIFdlYklu
c3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIGFuaW1hdGlv
bkZpbmlzaGVkKCkKICAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRQ
YW5lbC5yZXNpemUoKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwuZGlz
cGF0Y2hUb1Zpc2libGVWaWV3cygicmVzaXplIik7CiAgICAgICAgICAgICB0aGlzLl9tYWluU3Rh
dHVzQmFyLmluc2VydEJlZm9yZShhbmNob3JlZEl0ZW1zLCB0aGlzLl9tYWluU3RhdHVzQmFyLmZp
cnN0Q2hpbGQpOwogICAgICAgICAgICAgdGhpcy5fbWFpblN0YXR1c0Jhci5zdHlsZS5yZW1vdmVQ
cm9wZXJ0eSgicGFkZGluZy1sZWZ0Iik7CiAKQEAgLTI5NCw3ICsyOTQsNyBAQCBXZWJJbnNwZWN0
b3IuRHJhd2VyLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBhbmltYXRpb25GaW5p
c2hlZCgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwu
cmVzaXplKCk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsLmRpc3BhdGNo
VG9WaXNpYmxlVmlld3MoInJlc2l6ZSIpOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2FuaW1h
dGluZzsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50QW5pbWF0aW9uOwogICAgICAg
ICAgICAgdGhpcy5zdGF0ZSA9IGZpbmFsU3RhdGU7CkBAIC0zNDUsNyArMzQ1LDcgQEAgV2ViSW5z
cGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX21haW5FbGVtZW50LnN0
eWxlLmJvdHRvbSA9IGhlaWdodCArICJweCI7CiAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5o
ZWlnaHQgPSBoZWlnaHQgKyAicHgiOwogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmN1cnJlbnRQ
YW5lbCkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwucmVzaXplKCk7Cisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsLmRpc3BhdGNoVG9WaXNpYmxlVmll
d3MoInJlc2l6ZSIpOwogCiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAg
IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwpAQCAtMzU5LDMwICszNTksOCBAQCBXZWJJbnNwZWN0
b3IuRHJhd2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgZGVsZXRlIHRoaXMuX3N0YXR1c0JhckRy
YWdPZmZzZXQ7CiAKICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgfSwKLSAg
ICAKLSAgICBnZXQgc2Nyb2xsTGVmdCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy52aXNp
YmxlVmlldyA/IHRoaXMudmlzaWJsZVZpZXcuc2Nyb2xsTGVmdCA6IDA7Ci0gICAgfSwKLQotICAg
IHNldCBzY3JvbGxMZWZ0KHNjcm9sbExlZnQpCi0gICAgewotICAgICAgICBpZiAodGhpcy52aXNp
YmxlVmlldykKLSAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuc2Nyb2xsTGVmdCA9IHNjcm9s
bExlZnQ7Ci0gICAgfSwKLQotICAgIGdldCBzY3JvbGxUb3AoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMudmlzaWJsZVZpZXcgPyB0aGlzLnZpc2libGVWaWV3LnNjcm9sbFRvcCA6IDA7Ci0g
ICAgfSwKLQotICAgIHNldCBzY3JvbGxUb3Aoc2Nyb2xsVG9wKQotICAgIHsKLSAgICAgICAgaWYg
KHRoaXMudmlzaWJsZVZpZXcpCi0gICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LnNjcm9sbFRv
cCA9IHNjcm9sbFRvcDsKICAgICB9Ci19CisgfQogCiBXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSUZyYW1lVmlldy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSUZyYW1lVmlldy5qcwppbmRleCAzYjBi
ZDgxLi5lMmRiNTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0lGcmFtZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9JRnJhbWVWaWV3LmpzCkBAIC0yOCwxMiArMjgsMTIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAotV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcgPSBmdW5jdGlvbihwYXJlbnQsIHN0eWxlc2hlZXRz
KQorV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50LCBzdHls
ZXNoZWV0cywgcGFyZW50VmlldykKIHsKICAgICB0aGlzLl9pZnJhbWVFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CiAgICAgdGhpcy5faWZyYW1lRWxlbWVudC5hZGRT
dHlsZUNsYXNzKCJ2aWV3Iik7Ci0gICAgdGhpcy5faW5pdGlhbGl6ZVZpZXcgPSB0aGlzLl9hdHRh
Y2hJRnJhbWVBbmRJbml0aWFsaXplLmJpbmQodGhpcywgcGFyZW50LCBzdHlsZXNoZWV0cyk7Ci0g
ICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKKyAgICB0aGlzLl9pbml0aWFsaXplVmll
dyA9IHRoaXMuX2F0dGFjaElGcmFtZUFuZEluaXRpYWxpemUuYmluZCh0aGlzLCBwYXJlbnRFbGVt
ZW50LCBzdHlsZXNoZWV0cyk7CisgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzLCBwYXJl
bnRWaWV3KTsKIH0KIAogV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcucHJvdG90eXBlID0gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZp
ZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJdGVtVmll
dy5qcwppbmRleCAzYzMyNTIzLi41NzgzOThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJdGVtVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJdGVtVmlldy5qcwpAQCAtODgsMTIgKzg4LDYg
QEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtJdGVtVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICB0aGlzLmhpZ2hsaWdodExpbmUgPSB2aWV3LmhpZ2hsaWdodExpbmUuYmluZCh2aWV3KTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgZGVsZXRlIHRoaXMuaGlnaGxpZ2h0TGluZTsKLSAgICB9
LAotCi0gICAgcmVzaXplOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fY29v
a2llc1ZpZXcgJiYgdGhpcy5fY29va2llc1ZpZXcudmlzaWJsZSkKLSAgICAgICAgICAgIHRoaXMu
X2Nvb2tpZXNWaWV3LnJlc2l6ZSgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwppbmRleCAwN2JkNTA2Li45YWE0
NmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtQYW5lbC5qcwpAQCAtMjgsNyArMjgsNyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNw
ZWN0b3IuTmV0d29ya0xvZ1ZpZXcgPSBmdW5jdGlvbihwYXJlbnQpCitXZWJJbnNwZWN0b3IuTmV0
d29ya0xvZ1ZpZXcgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50LCBwYXJlbnRWaWV3KQogewogICAg
IGZ1bmN0aW9uIGV2ZW50c0NvbGxlY3Rpb25FbmFibGVkKGVycm9yLCBlbmFibGVkKQogICAgIHsK
QEAgLTQyLDcgKzQyLDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3ID0gZnVuY3Rpb24o
cGFyZW50KQogICAgICAgICAiZGF0YUdyaWQuY3NzIiwKICAgICAgICAgIm5ldHdvcmtMb2dWaWV3
LmNzcyIKICAgICBdOwotICAgIFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3LmNhbGwodGhpcywgcGFy
ZW50LCBzdHlsZXMpOworICAgIFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3LmNhbGwodGhpcywgcGFy
ZW50RWxlbWVudCwgc3R5bGVzLCBwYXJlbnRWaWV3KTsKIAogICAgIHRoaXMuX2FsbG93UmVzb3Vy
Y2VTZWxlY3Rpb24gPSBmYWxzZTsKICAgICB0aGlzLl9yZXNvdXJjZXMgPSBbXTsKQEAgLTEyNSw3
ICsxMjUsNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogICAg
IHsKICAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3JpZCkgLy8gTm90IGluaXRpYWxpemVkIHlldC4K
ICAgICAgICAgICAgIHJldHVybiBbXTsKLSAgICAgICAgcmV0dXJuIFt0aGlzLmVsZW1lbnQsIHRo
aXMuX2RhdGFHcmlkLnNjcm9sbENvbnRhaW5lcl07CisgICAgICAgIHJldHVybiBbdGhpcy5fZGF0
YUdyaWQuc2Nyb2xsQ29udGFpbmVyXTsKICAgICB9LAogCiAgICAgcmVzaXplOiBmdW5jdGlvbigp
CkBAIC02NDAsMTUgKzY0MCwxNiBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90
eXBlID0gewogICAgICAgICB0aGlzLl91cGRhdGVEaXZpZGVyc0lmTmVlZGVkKHRydWUpOwogICAg
IH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbigpCisgICAgdmlld0FjdGl2YXRlZDogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcucHJvdG90eXBlLnNob3cu
Y2FsbCh0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcucHJvdG90eXBlLnZp
ZXdBY3RpdmF0ZWQuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fcmVmcmVzaElmTmVlZGVkKCk7
CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnVwZGF0ZVdpZHRocygpOwogICAgIH0sCiAKLSAgICBo
aWRlOiBmdW5jdGlvbigpCisgICAgdmlld0RlYWN0aXZhdGVkOiBmdW5jdGlvbigpCiAgICAgewor
ICAgICAgICBXZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5wcm90b3R5cGUudmlld0RlYWN0aXZhdGVk
LmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIuaGlkZVBvcHVwKCk7CiAg
ICAgfSwKIApAQCAtMTI1Miw3ICsxMjUzLDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbCA9
IGZ1bmN0aW9uKCkKICAgICBXZWJJbnNwZWN0b3IuUGFuZWwuY2FsbCh0aGlzLCAibmV0d29yayIp
OwogCiAgICAgdGhpcy5jcmVhdGVTaWRlYmFyKCk7Ci0gICAgdGhpcy5fbmV0d29ya0xvZ1ZpZXcg
PSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3KHRoaXMuc2lkZWJhckVsZW1lbnQpOwor
ICAgIHRoaXMuX25ldHdvcmtMb2dWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmll
dyh0aGlzLnNpZGViYXJFbGVtZW50LCB0aGlzKTsKIAogICAgIHRoaXMuX3ZpZXdzQ29udGFpbmVy
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMuX3ZpZXdz
Q29udGFpbmVyRWxlbWVudC5pZCA9ICJuZXR3b3JrLXZpZXdzIjsKQEAgLTEyOTEsMTIgKzEyOTIs
NiBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0
dXJuIHRoaXMuX25ldHdvcmtMb2dWaWV3LmVsZW1lbnRzVG9SZXN0b3JlU2Nyb2xsUG9zaXRpb25z
Rm9yKCk7CiAgICAgfSwKIAotICAgIHJlc2l6ZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
V2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5yZXNpemUuY2FsbCh0aGlzKTsKLSAgICAgICAg
dGhpcy5fbmV0d29ya0xvZ1ZpZXcucmVzaXplKCk7Ci0gICAgfSwKLQogICAgIC8vIEZJWE1FOiBv
bmx5IHVzZWQgYnkgdGhlIGxheW91dCB0ZXN0cywgc2hvdWxkIG5vdCBiZSBleHBvc2VkLgogICAg
IF9yZXNldDogZnVuY3Rpb24oKQogICAgIHsKQEAgLTEzMzMsMTggKzEzMjgsOSBAQCBXZWJJbnNw
ZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBzaG93OiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cuY2FsbCh0aGlz
KTsKLQotICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMudmlz
aWJsZVZpZXcuc2hvdyh0aGlzLl92aWV3c0NvbnRhaW5lckVsZW1lbnQpOwogICAgICAgICB0aGlz
Ll9uZXR3b3JrTG9nVmlldy5zaG93KCk7CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkK
LSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuaGlkZS5jYWxsKHRo
aXMpOwotICAgICAgICB0aGlzLl9uZXR3b3JrTG9nVmlldy5oaWRlKCk7Ci0gICAgfSwKLQogICAg
IGdldCByZXNvdXJjZXMoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX25ldHdvcmtMb2dW
aWV3LnJlc291cmNlczsKQEAgLTEzOTksMTEgKzEzODUsMTMgQEAgV2ViSW5zcGVjdG9yLk5ldHdv
cmtQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3RvZ2dsZVZpZXdpbmdSZXNvdXJj
ZU1vZGUoKTsKIAogICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldykgeworICAgICAgICAgICAg
dGhpcy52aXNpYmxlVmlldy5zZXRQYXJlbnQobnVsbCk7CiAgICAgICAgICAgICB0aGlzLnZpc2li
bGVWaWV3LmRldGFjaCgpOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMudmlzaWJsZVZpZXc7CiAg
ICAgICAgIH0KIAogICAgICAgICB2YXIgdmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya0l0
ZW1WaWV3KHJlc291cmNlKTsKKyAgICAgICAgdmlldy5zZXRQYXJlbnQodGhpcyk7CiAgICAgICAg
IHZpZXcuc2hvdyh0aGlzLl92aWV3c0NvbnRhaW5lckVsZW1lbnQpOwogICAgICAgICB0aGlzLnZp
c2libGVWaWV3ID0gdmlldzsKIApAQCAtMTQxNSw2ICsxNDAzLDcgQEAgV2ViSW5zcGVjdG9yLk5l
dHdvcmtQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVTdHls
ZUNsYXNzKCJ2aWV3aW5nLXJlc291cmNlIik7CiAKICAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZp
ZXcpIHsKKyAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuc2V0UGFyZW50KG51bGwpOwogICAg
ICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5kZXRhY2goKTsKICAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLnZpc2libGVWaWV3OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9QYW5lbC5qcwppbmRleCA3YWVkNzc1Li5lOWQ3M2NmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKQEAgLTc1LDEzICs3NSwxMSBAQCBXZWJJ
bnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBXZWJJbnNwZWN0b3IuY3VycmVu
dEZvY3VzRWxlbWVudCA9IHRoaXMuZGVmYXVsdEZvY3VzZWRFbGVtZW50OwogCiAgICAgICAgIHRo
aXMucmVzdG9yZVNpZGViYXJXaWR0aCgpOwotICAgICAgICB0aGlzLl9yZXN0b3JlU2Nyb2xsUG9z
aXRpb25zKCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5leHRlbnNpb25TZXJ2ZXIubm90aWZ5UGFu
ZWxTaG93bih0aGlzLm5hbWUpOwogICAgIH0sCiAKICAgICBoaWRlOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICB0aGlzLl9zdG9yZVNjcm9sbFBvc2l0aW9ucygpOwogICAgICAgICBXZWJJbnNw
ZWN0b3IuVmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwogCiAgICAgICAgIGlmICh0aGlz
Ll9zdGF0dXNCYXJJdGVtQ29udGFpbmVyICYmIHRoaXMuX3N0YXR1c0Jhckl0ZW1Db250YWluZXIu
cGFyZW50Tm9kZSkKQEAgLTM1Niw3ICszNTQsNyBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90
eXBlID0gewogCiAgICAgICAgIHRoaXMuX2N1cnJlbnRTaWRlYmFyV2lkdGggPSB3aWR0aDsKICAg
ICAgICAgdGhpcy5zZXRTaWRlYmFyV2lkdGgod2lkdGgpOwotCisgICAgICAgIHRoaXMuZGlzcGF0
Y2hUb1Zpc2libGVWaWV3cygicmVzaXplIik7CiAgICAgICAgIHRoaXMudXBkYXRlTWFpblZpZXdX
aWR0aCh3aWR0aCk7CiAgICAgfSwKIApAQCAtMzg4LDEzICszODYsNiBAQCBXZWJJbnNwZWN0b3Iu
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAvLyBTaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkg
YW5jZXN0b3JzLgogICAgIH0sCiAKLSAgICByZXNpemU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIHZhciB2aXNpYmxlVmlldyA9IHRoaXMudmlzaWJsZVZpZXc7Ci0gICAgICAgIGlmICh2aXNp
YmxlVmlldyAmJiAicmVzaXplIiBpbiB2aXNpYmxlVmlldykKLSAgICAgICAgICAgIHZpc2libGVW
aWV3LnJlc2l6ZSgpOwotICAgIH0sCi0KICAgICBjYW5TaG93QW5jaG9yTG9jYXRpb246IGZ1bmN0
aW9uKGFuY2hvcikKICAgICB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQxMCw3ICs0MDEs
NyBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gW107
CiAgICAgfSwKIAotICAgIF9zdG9yZVNjcm9sbFBvc2l0aW9uczogZnVuY3Rpb24oKQorICAgIHN0
b3JlU2Nyb2xsUG9zaXRpb25zOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgZWxlbWVu
dHMgPSB0aGlzLmVsZW1lbnRzVG9SZXN0b3JlU2Nyb2xsUG9zaXRpb25zRm9yKCk7CiAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyArK2kpIHsKQEAgLTQxOSw3ICs0
MTAsNyBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAg
fSwKIAotICAgIF9yZXN0b3JlU2Nyb2xsUG9zaXRpb25zOiBmdW5jdGlvbigpCisgICAgcmVzdG9y
ZVNjcm9sbFBvc2l0aW9uczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIGVsZW1lbnRz
ID0gdGhpcy5lbGVtZW50c1RvUmVzdG9yZVNjcm9sbFBvc2l0aW9uc0ZvcigpOwogICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgKytpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKaW5kZXggOGJh
OTRiZi4uZWRhOWMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtNjQzLDcgKzY0Myw3IEBAIFdlYkluc3BlY3Rvci5Q
cm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5wcm9maWxlVmlld3Muc3R5
bGUubGVmdCA9IHdpZHRoICsgInB4IjsKICAgICAgICAgLy8gTWluIHdpZHRoID0gPG51bWJlciBv
ZiBidXR0b25zIG9uIHRoZSBsZWZ0PiAqIDMxCiAgICAgICAgIHRoaXMucHJvZmlsZVZpZXdTdGF0
dXNCYXJJdGVtc0NvbnRhaW5lci5zdHlsZS5sZWZ0ID0gTWF0aC5tYXgoNiAqIDMxLCB3aWR0aCkg
KyAicHgiOwotICAgICAgICB0aGlzLnJlc2l6ZSgpOworICAgICAgICB0aGlzLmRpc3BhdGNoVG9W
aXNpYmxlVmlld3MoInJlc2l6ZSIpOwogICAgIH0sCiAKICAgICBfc2V0UmVjb3JkaW5nUHJvZmls
ZTogZnVuY3Rpb24oaXNQcm9maWxpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCAxZWQyNDVkLi5hZGExYTg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1Bh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Vz
UGFuZWwuanMKQEAgLTM3OCw3ICszNzgsOSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAg
cmV0dXJuIHRyZWVFbGVtZW50LnNvdXJjZVZpZXcoKTsKICAgICAgICAgfQotICAgICAgICByZXR1
cm4gV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5ub25Tb3VyY2VWaWV3Rm9yUmVzb3VyY2UocmVz
b3VyY2UpOworICAgICAgICB2YXIgdmlldyA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcubm9u
U291cmNlVmlld0ZvclJlc291cmNlKHJlc291cmNlKTsKKyAgICAgICAgdmlldy5zZXRQYXJlbnQo
dGhpcyk7CisgICAgICAgIHJldHVybiB2aWV3OwogICAgIH0sCiAKICAgICBfc2hvd1JldmlzaW9u
VmlldzogZnVuY3Rpb24ocmV2aXNpb24pCkBAIC01MjAsNiArNTIyLDcgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZp
ZXcpCiAgICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LmhpZGUoKTsKIAorICAgICAgICB2aWV3
LnNldFBhcmVudCh0aGlzKTsKICAgICAgICAgdmlldy5zaG93KHRoaXMuc3RvcmFnZVZpZXdzKTsK
ICAgICAgICAgdGhpcy52aXNpYmxlVmlldyA9IHZpZXc7CiAKQEAgLTUzMyw2ICs1MzYsNyBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAg
aWYgKHRoaXMudmlzaWJsZVZpZXcpCiAgICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LmhpZGUo
KTsKKyAgICAgICAgdGhpcy52aXNpYmxlVmlldy5zZXRQYXJlbnQobnVsbCk7CiAgICAgICAgIGRl
bGV0ZSB0aGlzLnZpc2libGVWaWV3OwogICAgIH0sCiAKQEAgLTY4NCw3ICs2ODgsNyBAQCBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdGhp
cy5zdG9yYWdlVmlld3Muc3R5bGUubGVmdCA9IHdpZHRoICsgInB4IjsKICAgICAgICAgdGhpcy5z
dG9yYWdlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVyLnN0eWxlLmxlZnQgPSB3aWR0aCArICJw
eCI7Ci0gICAgICAgIHRoaXMucmVzaXplKCk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hUb1Zpc2li
bGVWaWV3cygicmVzaXplIik7CiAgICAgfSwKIAogICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9u
KHF1ZXJ5KSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRzUGFuZWwuanMKaW5kZXggOTYwMTRkMy4uOGUyZWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTIxMSwxOCArMjEx
LDYgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRo
aXMuc2lkZWJhclJlc2l6ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAodGhpcy5zaWRlYmFyRWxlbWVu
dC5vZmZzZXRXaWR0aCAtIDMpICsgInB4IjsKICAgICAgICAgaWYgKFByZWZlcmVuY2VzLm5hdGl2
ZUluc3RydW1lbnRhdGlvbkVuYWJsZWQpCiAgICAgICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50
Lmluc2VydEJlZm9yZSh0aGlzLnNpZGViYXJQYW5lcy5kb21CcmVha3BvaW50cy5lbGVtZW50LCB0
aGlzLnNpZGViYXJQYW5lcy54aHJCcmVha3BvaW50cy5lbGVtZW50KTsKLQotICAgICAgICBpZiAo
dGhpcy52aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuc2hvdyh0aGlz
LnZpZXdzQ29udGFpbmVyRWxlbWVudCk7Ci0gICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLndhdGNo
RXhwcmVzc2lvbnMuc2hvdygpOwotICAgIH0sCi0KLSAgICBoaWRlOiBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMudmlzaWJs
ZVZpZXcuaGlkZSgpOwotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmhpZGUu
Y2FsbCh0aGlzKTsKLSAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9ucy5o
aWRlKCk7CiAgICAgfSwKIAogICAgIGdldCBicmVha3BvaW50c0FjdGl2YXRlZCgpCkBAIC02MzMs
NiArNjIxLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuc291cmNlRmlsZShz
b3VyY2VGaWxlSWQpOwogICAgICAgICB2YXIgZGVsZWdhdGUgPSBuZXcgV2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwodGhpcy5fcHJlc2VudGF0aW9uTW9kZWws
IHNvdXJjZUZpbGVJZCk7CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IG5ldyBXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWUoZGVsZWdhdGUsIHNvdXJjZUZpbGUudXJsKTsKKyAgICAgICAgc291cmNl
RnJhbWUuc2V0UGFyZW50KHRoaXMpOwogICAgICAgICBzb3VyY2VGcmFtZS5fc291cmNlRmlsZUlk
ID0gc291cmNlRmlsZUlkOwogICAgICAgICBzb3VyY2VGcmFtZS5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZS5FdmVudHMuTG9hZGVkLCB0aGlzLl9zb3VyY2VGcmFtZUxv
YWRlZCwgdGhpcyk7CiAgICAgICAgIHRoaXMuX3NvdXJjZUZpbGVJZFRvU291cmNlRnJhbWVbc291
cmNlRmlsZUlkXSA9IHNvdXJjZUZyYW1lOwpAQCAtNjQ0LDYgKzYzMyw3IEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB2YXIgc291cmNlRnJhbWUgPSB0
aGlzLl9zb3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1lW3NvdXJjZUZpbGVJZF07CiAgICAgICAgIGlm
ICghc291cmNlRnJhbWUpCiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHNvdXJjZUZyYW1l
LnNldFBhcmVudChudWxsKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3NvdXJjZUZpbGVJZFRvU291
cmNlRnJhbWVbc291cmNlRmlsZUlkXTsKICAgICAgICAgc291cmNlRnJhbWUucmVtb3ZlRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLkxvYWRlZCwgdGhpcy5fc291
cmNlRnJhbWVMb2FkZWQsIHRoaXMpOwogICAgIH0sCkBAIC03NjMsNyArNzUzLDcgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuc2lkZWJhclJl
c2l6ZVdpZGdldEVsZW1lbnQuc3R5bGUucmlnaHQgPSBuZXdXaWR0aCArICJweCI7CiAgICAgICAg
IHRoaXMuc2lkZWJhclJlc2l6ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAobmV3V2lkdGggLSAzKSAr
ICJweCI7CiAKLSAgICAgICAgdGhpcy5yZXNpemUoKTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaFRv
VmlzaWJsZVZpZXdzKCJyZXNpemUiKTsKICAgICB9LAogCiAgICAgX3NldFBhdXNlT25FeGNlcHRp
b25zOiBmdW5jdGlvbihwYXVzZU9uRXhjZXB0aW9uc1N0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKaW5kZXggYTVhNjM5MC4uZmVh
Yzk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJj
ZUZyYW1lLmpzCkBAIC00MCw2ICs0MCw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZSA9IGZ1
bmN0aW9uKGRlbGVnYXRlLCB1cmwpCiAKICAgICB2YXIgdGV4dFZpZXdlckRlbGVnYXRlID0gbmV3
IFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyRGVsZWdhdGVGb3JTb3VyY2VGcmFtZSh0aGlzKTsKICAg
ICB0aGlzLl90ZXh0Vmlld2VyID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyKHRoaXMuX3Rl
eHRNb2RlbCwgV2ViSW5zcGVjdG9yLnBsYXRmb3JtLCB0aGlzLl91cmwsIHRleHRWaWV3ZXJEZWxl
Z2F0ZSk7CisgICAgdGhpcy5fdGV4dFZpZXdlci5zZXRQYXJlbnQodGhpcyk7CiAgICAgdGhpcy5l
bGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3RleHRWaWV3ZXIuZWxlbWVudCk7CiAKICAgICB0aGlz
Ll9jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXggPSAtMTsKQEAgLTc3LDI2ICs3OCwxOSBAQCBXZWJJ
bnNwZWN0b3IuU291cmNlRnJhbWUuY3JlYXRlU2VhcmNoUmVnZXggPSBmdW5jdGlvbihxdWVyeSkK
IAogCiBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewotICAgIHNob3c6IGZ1
bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgc2hvdzogZnVuY3Rpb24ocGFyZW50KQogICAgIHsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBwYXJl
bnRFbGVtZW50KTsKLQorICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5j
YWxsKHRoaXMsIHBhcmVudCk7CiAgICAgICAgIHRoaXMuX2Vuc3VyZUNvbnRlbnRMb2FkZWQoKTsK
LSAgICAgICAgCi0gICAgICAgIHRoaXMucmVzdG9yZVNjcm9sbFBvc2l0aW9ucygpOwotCi0gICAg
ICAgIC8vIFJlc2l6ZSBhZnRlciBzZXR0aW5nIHRoZSBpbml0aWFsIHNjcm9sbCBwb3NpdGlvbnMg
dG8gYXZvaWQgdW5uZWNlc3NhcnkgcmVuZGVyaW5nIHdvcmsuCi0gICAgICAgIHRoaXMuX3RleHRW
aWV3ZXIucmVzaXplKCk7CisgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuc2hvdygpOwogICAgIH0s
CiAKLSAgICBoaWRlOiBmdW5jdGlvbigpCisgICAgdmlld0RlYWN0aXZhdGVkOiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRo
aXMpOwotCisgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS52aWV3RGVhY3RpdmF0
ZWQuY2FsbCh0aGlzKTsKICAgICAgICAgaWYgKHRoaXMubG9hZGVkKQogICAgICAgICAgICAgdGhp
cy5fdGV4dFZpZXdlci5mcmVlQ2FjaGVkRWxlbWVudHMoKTsKIAotICAgICAgICB0aGlzLl90ZXh0
Vmlld2VyLmhpZGUoKTsKICAgICAgICAgdGhpcy5faGlkZVBvcHVwKCk7CiAgICAgICAgIHRoaXMu
X2NsZWFyTGluZUhpZ2hsaWdodCgpOwogICAgIH0sCkBAIC0xNjAsMjggKzE1NCw2IEBAIFdlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl90
ZXh0TW9kZWw7CiAgICAgfSwKIAotICAgIGdldCBzY3JvbGxMZWZ0KCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLmxvYWRlZCA/IHRoaXMuX3RleHRWaWV3ZXIuc2Nyb2xsTGVmdCA6IDA7Ci0g
ICAgfSwKLQotICAgIHNldCBzY3JvbGxMZWZ0KHNjcm9sbExlZnQpCi0gICAgewotICAgICAgICBp
ZiAodGhpcy5sb2FkZWQpCi0gICAgICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLnNjcm9sbExlZnQg
PSBzY3JvbGxMZWZ0OwotICAgIH0sCi0KLSAgICBnZXQgc2Nyb2xsVG9wKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLmxvYWRlZCA/IHRoaXMuX3RleHRWaWV3ZXIuc2Nyb2xsVG9wIDogMDsK
LSAgICB9LAotCi0gICAgc2V0IHNjcm9sbFRvcChzY3JvbGxUb3ApCi0gICAgewotICAgICAgICBp
ZiAodGhpcy5sb2FkZWQpCi0gICAgICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLnNjcm9sbFRvcCA9
IHNjcm9sbFRvcDsKLSAgICB9LAotCiAgICAgaGlnaGxpZ2h0TGluZTogZnVuY3Rpb24obGluZSkK
ICAgICB7CiAgICAgICAgIGlmICh0aGlzLmxvYWRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcwppbmRleCAxMzdkOWExLi5jNzdiYzlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpz
CkBAIC00Niw2ICs0Niw3IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZSA9IHsK
IAogICAgICAgICB0aGlzLl90YWJzRWxlbWVudC5hcHBlbmRDaGlsZCh0YWJFbGVtZW50KTsKICAg
ICAgICAgdGhpcy5fY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodmlldy5lbGVtZW50KTsKKyAg
ICAgICAgdmlldy5zZXRQYXJlbnQodGhpcyk7CiAKICAgICAgICAgdGhpcy5fdGFic1tpZF0gPSB7
IHRhYkVsZW1lbnQ6IHRhYkVsZW1lbnQsIHZpZXc6IHZpZXcgfTsKICAgICB9LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzCmluZGV4IGEzODU2
MWEuLmM3MGY5YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGV4dFZpZXdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RleHRWaWV3ZXIuanMKQEAgLTEyNywyNCArMTI3LDE3IEBAIFdlYkluc3BlY3Rvci5UZXh0Vmll
d2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZ3V0dGVyUGFuZWwuZnJlZUNhY2hlZEVs
ZW1lbnRzKCk7CiAgICAgfSwKIAotICAgIGdldCBzY3JvbGxUb3AoKQorICAgIC8vIEZJWE1FOiBt
YWtlIG1haW4gcGFuZWwgYSB2aWV3LCBhbmQgdGhlc2UgdHdvIG92ZXJyaWRlcyB3aWxsIGJlIGdv
bmUuCisgICAgc3RvcmVTY3JvbGxQb3NpdGlvbnM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLl9tYWluUGFuZWwuZWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAgIHRoaXMu
X3Njcm9sbFRvcCA9IHRoaXMuX21haW5QYW5lbC5lbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAg
dGhpcy5fc2Nyb2xsTGVmdCA9IHRoaXMuX21haW5QYW5lbC5lbGVtZW50LnNjcm9sbExlZnQ7CiAg
ICAgfSwKIAotICAgIHNldCBzY3JvbGxUb3Aoc2Nyb2xsVG9wKQorICAgIHJlc3RvcmVTY3JvbGxQ
b3NpdGlvbnM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX21haW5QYW5lbC5lbGVt
ZW50LnNjcm9sbFRvcCA9IHNjcm9sbFRvcDsKLSAgICB9LAotCi0gICAgZ2V0IHNjcm9sbExlZnQo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX21haW5QYW5lbC5lbGVtZW50LnNjcm9sbExl
ZnQ7Ci0gICAgfSwKLQotICAgIHNldCBzY3JvbGxMZWZ0KHNjcm9sbExlZnQpCi0gICAgewotICAg
ICAgICB0aGlzLl9tYWluUGFuZWwuZWxlbWVudC5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdDsKKyAg
ICAgICAgdGhpcy5fbWFpblBhbmVsLmVsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy5fc2Nyb2xsVG9w
OworICAgICAgICB0aGlzLl9tYWluUGFuZWwuZWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy5fc2Ny
b2xsTGVmdDsKICAgICB9LAogCiAgICAgYmVnaW5VcGRhdGVzOiBmdW5jdGlvbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5k
ZXggYmE0ODViZS4uYjkzYWFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtNTE3LDExICs1MTcsMTQgQEAgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9tb2RlbC5f
cmVzZXQoKTsKICAgICB9LAogCisgICAgZWxlbWVudHNUb1Jlc3RvcmVTY3JvbGxQb3NpdGlvbnNG
b3I6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBbdGhpcy5fY29udGFpbmVyRWxl
bWVudF07CisgICAgfSwKKwogICAgIHNob3c6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFdl
Ykluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMpOwotICAgICAgICBpZiAo
dHlwZW9mIHRoaXMuX3Njcm9sbFRvcCA9PT0gIm51bWJlciIpCi0gICAgICAgICAgICB0aGlzLl9j
b250YWluZXJFbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMuX3Njcm9sbFRvcDsKICAgICAgICAgdGhp
cy5fcmVmcmVzaCgpOwogICAgICAgICBXZWJJbnNwZWN0b3IuZHJhd2VyLmN1cnJlbnRQYW5lbENv
dW50ZXJzID0gdGhpcy5yZWNvcmRzQ291bnRlcjsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzCmluZGV4IDE5MzI0NTkuLjdkYzgxYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMKQEAgLTI0LDEwICsyNCwxMyBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuVmlldyA9IGZ1bmN0aW9uKGVs
ZW1lbnQpCitXZWJJbnNwZWN0b3IuVmlldyA9IGZ1bmN0aW9uKGVsZW1lbnQsIHBhcmVudCkKIHsK
ICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50IHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOwogICAgIHRoaXMuX3Zpc2libGUgPSBmYWxzZTsKKyAgICB0aGlzLl92aXNpYmxlQ2hpbGRy
ZW4gPSBbXTsKKyAgICBpZiAocGFyZW50KQorICAgICAgICB0aGlzLnNldFBhcmVudChwYXJlbnQp
OwogfQogCiBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUgPSB7CkBAIC00NywxMCArNTAsMjEg
QEAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5oaWRl
KCk7CiAgICAgfSwKIAorICAgIHZpZXdBY3RpdmF0ZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHRoaXMucmVzdG9yZVNjcm9sbFBvc2l0aW9ucygpOworICAgICAgICBpZiAodHlwZW9mIHRo
aXMucmVzaXplID09PSAiZnVuY3Rpb24iKQorICAgICAgICAgICAgdGhpcy5yZXNpemUoKTsKKyAg
ICB9LAorCisgICAgdmlld0RlYWN0aXZhdGVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0
aGlzLnN0b3JlU2Nyb2xsUG9zaXRpb25zKCk7CisgICAgfSwKKwogICAgIF9pbm5lclNob3c6IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ2aXNp
YmxlIik7Ci0gICAgICAgIHRoaXMucmVzdG9yZVNjcm9sbFBvc2l0aW9ucygpOwogICAgIH0sCiAK
ICAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQpAQCAtNjMsMTcgKzc3LDIyIEBAIFdl
Ykluc3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnQu
cGFyZW50Tm9kZSAmJiB0aGlzLmF0dGFjaCkKICAgICAgICAgICAgIHRoaXMuYXR0YWNoKCk7CiAg
ICAgICAgIHRoaXMuX2lubmVyU2hvdygpOworICAgICAgICBpZiAodGhpcy5fcGFyZW50KQorICAg
ICAgICAgICAgdGhpcy5fcGFyZW50Ll9hZGRWaXNpYmxlQ2hpbGQodGhpcyk7CisgICAgICAgIHRo
aXMuZGlzcGF0Y2hUb1Zpc2libGVWaWV3cygidmlld0FjdGl2YXRlZCIpOwogICAgIH0sCiAKICAg
ICBfaW5uZXJIaWRlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLnN0b3JlU2Nyb2xs
UG9zaXRpb25zKCk7CiAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ2aXNp
YmxlIik7CiAgICAgfSwKIAogICAgIGhpZGU6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIHRo
aXMuZGlzcGF0Y2hUb1Zpc2libGVWaWV3cygidmlld0RlYWN0aXZhdGVkIik7CiAgICAgICAgIHRo
aXMuX2lubmVySGlkZSgpOworICAgICAgICBpZiAodGhpcy5fcGFyZW50KQorICAgICAgICAgICAg
dGhpcy5fcGFyZW50Ll9yZW1vdmVWaXNpYmxlQ2hpbGQodGhpcyk7CiAgICAgICAgIHRoaXMuX3Zp
c2libGUgPSBmYWxzZTsKICAgICB9LAogCkBAIC04NSw4ICsxMDQsOCBAQCBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUgPSB7CiAKICAgICBzdG9yZVNjcm9sbFBvc2l0aW9uczogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgdGhpcy5fc2Nyb2xsTGVmdCA9IHRoaXMuc2Nyb2xsTGVmdDsKLSAg
ICAgICAgdGhpcy5fc2Nyb2xsVG9wID0gdGhpcy5zY3JvbGxUb3A7CisgICAgICAgIHRoaXMuX3Nj
cm9sbExlZnQgPSB0aGlzLmVsZW1lbnQuc2Nyb2xsTGVmdDsKKyAgICAgICAgdGhpcy5fc2Nyb2xs
VG9wID0gdGhpcy5lbGVtZW50LnNjcm9sbFRvcDsKICAgICB9LAogICAgIAogICAgIGluaGVyaXRT
Y3JvbGxQb3NpdGlvbnNGcm9tVmlldzogZnVuY3Rpb24odmlldykKQEAgLTk3LDggKzExNiw0MiBA
QCBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICByZXN0b3JlU2Nyb2xsUG9z
aXRpb25zOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLnNjcm9sbExlZnQgPSB0aGlz
Ll9zY3JvbGxMZWZ0OwotICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IHRoaXMuX3Njcm9sbFRvcDsK
KyAgICAgICAgdGhpcy5lbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLl9zY3JvbGxMZWZ0OworICAg
ICAgICB0aGlzLmVsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy5fc2Nyb2xsVG9wOworICAgIH0sCisK
KyAgICBzZXRQYXJlbnQ6IGZ1bmN0aW9uKHBhcmVudCkKKyAgICB7CisgICAgICAgIGlmIChwYXJl
bnQgPT09IHRoaXMuX3BhcmVudCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHRo
aXMudmlzaWJsZSAmJiB0aGlzLl9wYXJlbnQpCisgICAgICAgICAgICB0aGlzLl9wYXJlbnQuX3Jl
bW92ZVZpc2libGVDaGlsZCh0aGlzKTsKKyAgICAgICAgdGhpcy5fcGFyZW50ID0gcGFyZW50Owor
ICAgICAgICBpZiAodGhpcy52aXNpYmxlICYmIHRoaXMuX3BhcmVudCkKKyAgICAgICAgICAgIHRo
aXMuX3BhcmVudC5fYWRkVmlzaWJsZUNoaWxkKHRoaXMpOworICAKKyAgICB9LAorCisgICAgX2Fk
ZFZpc2libGVDaGlsZDogZnVuY3Rpb24odmlldykKKyAgICB7CisgICAgICAgIHRoaXMuX3Zpc2li
bGVDaGlsZHJlbi5wdXNoKHZpZXcpOworICAgIH0sCisKKyAgICBfcmVtb3ZlVmlzaWJsZUNoaWxk
OiBmdW5jdGlvbih2aWV3KQorICAgIHsKKyAgICAgICAgdmFyIHZpZXdJbmRleCA9IHRoaXMuX3Zp
c2libGVDaGlsZHJlbi5pbmRleE9mKHZpZXcpOworICAgICAgICBpZiAodmlld0luZGV4ID49IDAp
CisgICAgICAgICAgICB0aGlzLl92aXNpYmxlQ2hpbGRyZW4uc3BsaWNlKHZpZXdJbmRleCwgMSk7
CisgICAgfSwKKworICAgIGRpc3BhdGNoVG9WaXNpYmxlVmlld3M6IGZ1bmN0aW9uKG1ldGhvZE5h
bWUpCisgICAgeworICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgaWYgKHR5cGVvZiB0aGlzW21ldGhvZE5hbWVdID09PSAiZnVuY3Rpb24iKQor
ICAgICAgICAgICAgdGhpc1ttZXRob2ROYW1lXS5jYWxsKHRoaXMpOworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHRoaXMuX3Zpc2libGVDaGlsZHJlbi5sZW5ndGg7ICsraSkKKyAgICAgICAg
ICAgIHRoaXMuX3Zpc2libGVDaGlsZHJlbltpXS5kaXNwYXRjaFRvVmlzaWJsZVZpZXdzKG1ldGhv
ZE5hbWUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcwppbmRleCA4MTQyMzFlLi5jYTMzMDdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtNjI4LDcgKzYyOCw3
IEBAIFdlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZCA9IGZ1bmN0aW9uKG1l
c3NhZ2VPYmplY3QpCiBXZWJJbnNwZWN0b3Iud2luZG93UmVzaXplID0gZnVuY3Rpb24oZXZlbnQp
CiB7CiAgICAgaWYgKHRoaXMuY3VycmVudFBhbmVsKQotICAgICAgICB0aGlzLmN1cnJlbnRQYW5l
bC5yZXNpemUoKTsKKyAgICAgICAgdGhpcy5jdXJyZW50UGFuZWwuZGlzcGF0Y2hUb1Zpc2libGVW
aWV3cygicmVzaXplIik7CiAgICAgdGhpcy5kcmF3ZXIucmVzaXplKCk7CiAgICAgdGhpcy50b29s
YmFyLnJlc2l6ZSgpOwogfQo=
</data>
<flag name="review"
          id="99452"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103917</attachid>
            <date>2011-08-15 08:55:18 -0700</date>
            <delta_ts>2011-08-16 09:35:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>view-children.diff</filename>
            <type>text/plain</type>
            <size>27315</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZDBlZWE1Li5jZDdmMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODUg
QEAKKzIwMTEtMDgtMTIgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBtYWludGFpbiB2aXNpYmxlIHZpZXcgaGllcmFyY2h5IGFu
ZCBkaXNwYXRjaCBjb21tb24gdmlldyBldmVudHMgYXV0b21hdGljYWxseQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYxMzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIGFkZGVkIGEgbm90aW9uIG9mIGFu
IG9wdGlvbmFsIHBhcmVudCB0byBhIFZpZXcKKyAgICAgICAgLSBtYWludGFpbiBhIGxpc3Qgb2Yg
dmlzaWJsZSBWaWV3IGNoaWxkcmVuCisgICAgICAgIC0gZGlzcGF0Y2ggY29tbW9uIHZpZXcgZXZl
bnRzLCBzdWNoIGFzIHJlc2l6ZSwgYWN0aXZhdGlvbiAoaS5lLiBiZWNvbWluZyB2aXNpYmxlIGFz
IGEgcmVzdWx0IG9mIHNvbWUgb2YgdGhlIHBhcmVudCB2aWV3cyBiZWNvbWluZyB2aXNpYmxlKSBh
bmQgZGVhY3RpdmF0aW9uIGF1dG9tYXRpY2FsbHkgdGhyb3VnaCB0aGUgaGllcmFyY2h5IG9mIHZp
c2libGUgdmlld3MuCisgICAgICAgIC0gY2hhbmdlZCBzdG9yZS9yZXN0b3JlIG9mIHRoZSB2aWV3
IHNjcm9sbCBwb3NpdGlvbiB0byB1c2UgZWxlbWVudCdzIHNjcm9sbFRvcC9zY3JvbGxMZWZ0IHJh
dGhlciB0aGFuIHZpZXcgcHJvcGVydGllcworICAgICAgICAtIHJlbW92ZWQgc2Nyb2xsVG9wL3Nj
cm9sbExlZnQgZ2V0dGVycy9zZXR0ZXJzIGZvciB2aWV3cyB0aGF0IGhhdmUgYW4gdW51c3VhbCBz
Y3JvbGwgY29udGFpbmVyLCBvdmVycmlkZSBzdG9yZVNjcm9sbFBvc2l0aW9ucygpL3Jlc3RvcmVT
Y3JvbGxQb3NpdGlvbnMoKSBpbnN0ZWFkLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90
b3R5cGUuc3RvcmVTY3JvbGxQb3NpdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVWaWV3LnByb3RvdHlwZS5yZXN0b3JlU2Nyb2xsUG9zaXRpb25zKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIu
cHJvdG90eXBlLmhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUu
X2FuaW1hdGVEcmF3ZXJIZWlnaHQuYW5pbWF0aW9uRmluaXNoZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRyYXdlci5wcm90b3R5cGUuX2FuaW1hdGVEcmF3ZXJIZWlnaHQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUuX3N0YXR1c0JhckRyYWdnaW5nKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlLl9lbmRTdGF0dXNCYXJEcmFnZ2luZyk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JRnJhbWVWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLklGcmFtZVZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya0l0ZW1WaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtJdGVtVmll
dy5wcm90b3R5cGUuX2luc3RhbGxIaWdobGlnaHRTdXBwb3J0KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3
b3JrTG9nVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90
eXBlLmVsZW1lbnRzVG9SZXN0b3JlU2Nyb2xsUG9zaXRpb25zRm9yKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUudmlld0FjdGl2YXRlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlLnZpZXdEZWFjdGl2YXRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5ldHdvcmtQYW5lbC5wcm90b3R5cGUuX3Nob3dSZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZS5fY2xvc2VWaXNpYmxlUmVzb3VyY2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUGFuZWwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnBy
b3RvdHlwZS5oaWRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUudXBk
YXRlU2lkZWJhcldpZHRoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUu
c3RvcmVTY3JvbGxQb3NpdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3Rv
dHlwZS5yZXN0b3JlU2Nyb2xsUG9zaXRpb25zKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5l
bC5wcm90b3R5cGUudXBkYXRlTWFpblZpZXdXaWR0aCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUuX3Jlc291cmNlVmlld0ZvclJlc291cmNlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX2lubmVyU2hvd1ZpZXcpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5jbG9zZVZpc2libGVW
aWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUudXBk
YXRlTWFpblZpZXdXaWR0aCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5z
aG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jcmVh
dGVTb3VyY2VGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZS5fcmVtb3ZlU291cmNlRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbC5wcm90b3R5cGUuc2V0U2lkZWJhcldpZHRoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1l
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuc2hvdyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLnZpZXdEZWFjdGl2YXRl
ZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlLmFwcGVuZFRhYik6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRleHRWaWV3ZXIucHJvdG90eXBlLnN0b3JlU2Nyb2xsUG9zaXRpb25zKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZS5yZXN0b3JlU2Nyb2xsUG9zaXRpb25z
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuZWxlbWVudHNUb1Jlc3Rv
cmVTY3JvbGxQb3NpdGlvbnNGb3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVmlldy5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aWV3LnByb3RvdHlwZS52aWV3QWN0aXZhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZS52aWV3RGVhY3RpdmF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcu
cHJvdG90eXBlLl9pbm5lclNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90
eXBlLnNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9pbm5lckhp
ZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnN0b3JlU2Nyb2xsUG9zaXRpb25zKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5yZXN0b3JlU2Nyb2xsUG9zaXRpb25z
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zZXRQYXJlbnQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9hZGRWaXNpYmxlQ2hpbGQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9yZW1vdmVWaXNpYmxlQ2hpbGQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmRpc3BhdGNoVG9WaXNpYmxlVmll
d3MpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLndpbmRvd1Jlc2l6ZSk6CisKIDIwMTEtMDgtMTQgIFBhdmVsIEZlbGRt
YW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc2hv
d0NvbnRleHRNZW51IG1pc3NpbmcgaW4gUmVtb3RlIERldlRvb2xzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCA4NzAyZTkyLi5h
N2FlYTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVZpZXcuanMKQEAgLTc4OCwyNCArNzg4LDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdChvdXRwdXQsIG91dHB1
dC5zdWJ0eXBlICYmIG91dHB1dC5zdWJ0eXBlID09PSAiYXJyYXkiKTsKICAgICB9LAogCi0gICAg
Z2V0IHNjcm9sbExlZnQoKQorICAgIGVsZW1lbnRzVG9SZXN0b3JlU2Nyb2xsUG9zaXRpb25zRm9y
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5tZXNzYWdlc0VsZW1lbnQu
c2Nyb2xsTGVmdDsKLSAgICB9LAotCi0gICAgc2V0IHNjcm9sbExlZnQoc2Nyb2xsTGVmdCkKLSAg
ICB7Ci0gICAgICAgIHRoaXMubWVzc2FnZXNFbGVtZW50LnNjcm9sbExlZnQgPSBzY3JvbGxMZWZ0
OwotICAgIH0sCi0KLSAgICBnZXQgc2Nyb2xsVG9wKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLm1lc3NhZ2VzRWxlbWVudC5zY3JvbGxUb3A7Ci0gICAgfSwKLQotICAgIHNldCBzY3JvbGxU
b3Aoc2Nyb2xsVG9wKQotICAgIHsKLSAgICAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuc2Nyb2xs
VG9wID0gc2Nyb2xsVG9wOworICAgICAgICByZXR1cm4gW3RoaXMubWVzc2FnZXNFbGVtZW50XTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRHJhd2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIu
anMKaW5kZXggMzgwNDZmMC4uNWEzMDc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EcmF3ZXIuanMKQEAgLTYwLDEwICs2MCwxMiBAQCBXZWJJbnNwZWN0b3IuRHJh
d2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIHZhciBmaXJzdFRpbWUgPSAh
dGhpcy5fdmlzaWJsZVZpZXc7Ci0gICAgICAgIGlmICh0aGlzLl92aXNpYmxlVmlldykKKyAgICAg
ICAgaWYgKHRoaXMuX3Zpc2libGVWaWV3KSB7CiAgICAgICAgICAgICB0aGlzLl92aXNpYmxlVmll
dy5oaWRlKCk7Ci0KKyAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQodGhpcy5fdmlzaWJsZVZp
ZXcpOworICAgICAgICB9CiAgICAgICAgIHRoaXMuX3Zpc2libGVWaWV3ID0geDsKKyAgICAgICAg
dGhpcy5hZGRDaGlsZCh4KTsKIAogICAgICAgICBpZiAoeCAmJiAhZmlyc3RUaW1lKSB7CiAgICAg
ICAgICAgICB0aGlzLl9zYWZlbHlSZW1vdmVDaGlsZHJlbigpOwpAQCAtMTM0LDcgKzEzNiw2IEBA
IFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAg
dGhpcy5fY3VycmVudEFuaW1hdGlvbiA9IFdlYkluc3BlY3Rvci5hbmltYXRlU3R5bGUoYW5pbWF0
aW9ucywgdGhpcy5fYW5pbWF0aW9uRHVyYXRpb24oKSwgYW5pbWF0aW9uRmluaXNoZWQuYmluZCh0
aGlzKSk7Ci0gICAgICAgIHRoaXMucmVzdG9yZVNjcm9sbFBvc2l0aW9ucygpOwogICAgIH0sCiAK
ICAgICBoaWRlOiBmdW5jdGlvbigpCkBAIC0zNTksMjggKzM2MCw2IEBAIFdlYkluc3BlY3Rvci5E
cmF3ZXIucHJvdG90eXBlID0gewogICAgICAgICBkZWxldGUgdGhpcy5fc3RhdHVzQmFyRHJhZ09m
ZnNldDsKIAogICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICB9LAotICAgIAot
ICAgIGdldCBzY3JvbGxMZWZ0KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnZpc2libGVW
aWV3ID8gdGhpcy52aXNpYmxlVmlldy5zY3JvbGxMZWZ0IDogMDsKLSAgICB9LAotCi0gICAgc2V0
IHNjcm9sbExlZnQoc2Nyb2xsTGVmdCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLnZpc2libGVW
aWV3KQotICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVm
dDsKLSAgICB9LAotCi0gICAgZ2V0IHNjcm9sbFRvcCgpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy52aXNpYmxlVmlldyA/IHRoaXMudmlzaWJsZVZpZXcuc2Nyb2xsVG9wIDogMDsKLSAgICB9
LAotCi0gICAgc2V0IHNjcm9sbFRvcChzY3JvbGxUb3ApCi0gICAgewotICAgICAgICBpZiAodGhp
cy52aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuc2Nyb2xsVG9wID0g
c2Nyb2xsVG9wOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9JRnJhbWVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9JRnJhbWVWaWV3LmpzCmluZGV4IDNiMGJkODEuLjU5NzBlMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSUZyYW1lVmlldy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanMKQEAgLTI4LDEx
ICsyOCwxMSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuSUZyYW1lVmll
dyA9IGZ1bmN0aW9uKHBhcmVudCwgc3R5bGVzaGVldHMpCitXZWJJbnNwZWN0b3IuSUZyYW1lVmll
dyA9IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQsIHN0eWxlc2hlZXRzKQogewogICAgIHRoaXMuX2lm
cmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKICAgICB0aGlz
Ll9pZnJhbWVFbGVtZW50LmFkZFN0eWxlQ2xhc3MoInZpZXciKTsKLSAgICB0aGlzLl9pbml0aWFs
aXplVmlldyA9IHRoaXMuX2F0dGFjaElGcmFtZUFuZEluaXRpYWxpemUuYmluZCh0aGlzLCBwYXJl
bnQsIHN0eWxlc2hlZXRzKTsKKyAgICB0aGlzLl9pbml0aWFsaXplVmlldyA9IHRoaXMuX2F0dGFj
aElGcmFtZUFuZEluaXRpYWxpemUuYmluZCh0aGlzLCBwYXJlbnRFbGVtZW50LCBzdHlsZXNoZWV0
cyk7CiAgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZpZXcuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJdGVtVmlldy5qcwppbmRl
eCAzYzMyNTIzLi41NzgzOThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL05ldHdvcmtJdGVtVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtJdGVtVmlldy5qcwpAQCAtODgsMTIgKzg4LDYgQEAgV2ViSW5z
cGVjdG9yLk5ldHdvcmtJdGVtVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLmhp
Z2hsaWdodExpbmUgPSB2aWV3LmhpZ2hsaWdodExpbmUuYmluZCh2aWV3KTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgZGVsZXRlIHRoaXMuaGlnaGxpZ2h0TGluZTsKLSAgICB9LAotCi0gICAg
cmVzaXplOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fY29va2llc1ZpZXcg
JiYgdGhpcy5fY29va2llc1ZpZXcudmlzaWJsZSkKLSAgICAgICAgICAgIHRoaXMuX2Nvb2tpZXNW
aWV3LnJlc2l6ZSgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwppbmRleCBkMGI5NTcyLi5hNjMxYTc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5q
cwpAQCAtMjgsNyArMjgsNyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuTmV0
d29ya0xvZ1ZpZXcgPSBmdW5jdGlvbihwYXJlbnQpCitXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1Zp
ZXcgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQogewogICAgIGZ1bmN0aW9uIGV2ZW50c0NvbGxl
Y3Rpb25FbmFibGVkKGVycm9yLCBlbmFibGVkKQogICAgIHsKQEAgLTQyLDcgKzQyLDcgQEAgV2Vi
SW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3ID0gZnVuY3Rpb24ocGFyZW50KQogICAgICAgICAiZGF0
YUdyaWQuY3NzIiwKICAgICAgICAgIm5ldHdvcmtMb2dWaWV3LmNzcyIKICAgICBdOwotICAgIFdl
Ykluc3BlY3Rvci5JRnJhbWVWaWV3LmNhbGwodGhpcywgcGFyZW50LCBzdHlsZXMpOworICAgIFdl
Ykluc3BlY3Rvci5JRnJhbWVWaWV3LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCwgc3R5bGVzKTsK
IAogICAgIHRoaXMuX2FsbG93UmVzb3VyY2VTZWxlY3Rpb24gPSBmYWxzZTsKICAgICB0aGlzLl9y
ZXNvdXJjZXMgPSBbXTsKQEAgLTEyNSw3ICsxMjUsNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0xv
Z1ZpZXcucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3JpZCkg
Ly8gTm90IGluaXRpYWxpemVkIHlldC4KICAgICAgICAgICAgIHJldHVybiBbXTsKLSAgICAgICAg
cmV0dXJuIFt0aGlzLmVsZW1lbnQsIHRoaXMuX2RhdGFHcmlkLnNjcm9sbENvbnRhaW5lcl07Cisg
ICAgICAgIHJldHVybiBbdGhpcy5fZGF0YUdyaWQuc2Nyb2xsQ29udGFpbmVyXTsKICAgICB9LAog
CiAgICAgcmVzaXplOiBmdW5jdGlvbigpCkBAIC02NDAsMTUgKzY0MCwxNiBAQCBXZWJJbnNwZWN0
b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91cGRhdGVEaXZp
ZGVyc0lmTmVlZGVkKHRydWUpOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbigpCisgICAg
YmVjYW1lT25zY3JlZW46IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5J
RnJhbWVWaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5JRnJhbWVWaWV3LnByb3RvdHlwZS5iZWNhbWVPbnNjcmVlbi5jYWxsKHRoaXMpOwogICAgICAg
ICB0aGlzLl9yZWZyZXNoSWZOZWVkZWQoKTsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRl
V2lkdGhzKCk7CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKKyAgICBiZWNhbWVPZmZz
Y3JlZW46IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3
LnByb3RvdHlwZS5iZWNhbWVPZmZzY3JlZW4uY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fcG9w
b3ZlckhlbHBlci5oaWRlUG9wdXAoKTsKICAgICB9LAogCkBAIC0xMjUzLDYgKzEyNTQsNyBAQCBX
ZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5jcmVhdGVT
aWRlYmFyKCk7CiAgICAgdGhpcy5fbmV0d29ya0xvZ1ZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLk5l
dHdvcmtMb2dWaWV3KHRoaXMuc2lkZWJhckVsZW1lbnQpOworICAgIHRoaXMuYWRkQ2hpbGQodGhp
cy5fbmV0d29ya0xvZ1ZpZXcpOwogCiAgICAgdGhpcy5fdmlld3NDb250YWluZXJFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5fdmlld3NDb250YWluZXJF
bGVtZW50LmlkID0gIm5ldHdvcmstdmlld3MiOwpAQCAtMTI5MSwxMiArMTI5Myw2IEBAIFdlYklu
c3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5f
bmV0d29ya0xvZ1ZpZXcuZWxlbWVudHNUb1Jlc3RvcmVTY3JvbGxQb3NpdGlvbnNGb3IoKTsKICAg
ICB9LAogCi0gICAgcmVzaXplOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0
b3IuUGFuZWwucHJvdG90eXBlLnJlc2l6ZS5jYWxsKHRoaXMpOwotICAgICAgICB0aGlzLl9uZXR3
b3JrTG9nVmlldy5yZXNpemUoKTsKLSAgICB9LAotCiAgICAgLy8gRklYTUU6IG9ubHkgdXNlZCBi
eSB0aGUgbGF5b3V0IHRlc3RzLCBzaG91bGQgbm90IGJlIGV4cG9zZWQuCiAgICAgX3Jlc2V0OiBm
dW5jdGlvbigpCiAgICAgewpAQCAtMTMzMywxOCArMTMyOSw5IEBAIFdlYkluc3BlY3Rvci5OZXR3
b3JrUGFuZWwucHJvdG90eXBlID0gewogICAgIHNob3c6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAg
ICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMpOwotCi0gICAg
ICAgIGlmICh0aGlzLnZpc2libGVWaWV3KQotICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5z
aG93KHRoaXMuX3ZpZXdzQ29udGFpbmVyRWxlbWVudCk7CiAgICAgICAgIHRoaXMuX25ldHdvcmtM
b2dWaWV3LnNob3coKTsKICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQotICAgIHsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7Ci0gICAg
ICAgIHRoaXMuX25ldHdvcmtMb2dWaWV3LmhpZGUoKTsKLSAgICB9LAotCiAgICAgZ2V0IHJlc291
cmNlcygpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fbmV0d29ya0xvZ1ZpZXcucmVzb3Vy
Y2VzOwpAQCAtMTM5OSwxMSArMTM4NiwxMyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdG9nZ2xlVmlld2luZ1Jlc291cmNlTW9kZSgpOwog
CiAgICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3KSB7CisgICAgICAgICAgICB0aGlzLnJlbW92
ZUNoaWxkKHRoaXMudmlzaWJsZVZpZXcpOwogICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5k
ZXRhY2goKTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnZpc2libGVWaWV3OwogICAgICAgICB9
CiAKICAgICAgICAgdmFyIHZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtJdGVtVmlldyhy
ZXNvdXJjZSk7CisgICAgICAgIHRoaXMuYWRkQ2hpbGQodmlldyk7CiAgICAgICAgIHZpZXcuc2hv
dyh0aGlzLl92aWV3c0NvbnRhaW5lckVsZW1lbnQpOwogICAgICAgICB0aGlzLnZpc2libGVWaWV3
ID0gdmlldzsKIApAQCAtMTQxNSw2ICsxNDA0LDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5l
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ2
aWV3aW5nLXJlc291cmNlIik7CiAKICAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcpIHsKKyAg
ICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQodGhpcy52aXNpYmxlVmlldyk7CiAgICAgICAgICAg
ICB0aGlzLnZpc2libGVWaWV3LmRldGFjaCgpOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMudmlz
aWJsZVZpZXc7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1BhbmVsLmpzCmluZGV4IDQ5NTIxOTYuLjNhNzMyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcwpAQCAtNzUsMTMgKzc1LDExIEBAIFdlYkluc3BlY3Rv
ci5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNF
bGVtZW50ID0gdGhpcy5kZWZhdWx0Rm9jdXNlZEVsZW1lbnQ7CiAKICAgICAgICAgdGhpcy5yZXN0
b3JlU2lkZWJhcldpZHRoKCk7Ci0gICAgICAgIHRoaXMuX3Jlc3RvcmVTY3JvbGxQb3NpdGlvbnMo
KTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlci5ub3RpZnlQYW5lbFNob3du
KHRoaXMubmFtZSk7CiAgICAgfSwKIAogICAgIGhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX3N0b3JlU2Nyb2xsUG9zaXRpb25zKCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5W
aWV3LnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7CiAKICAgICAgICAgaWYgKHRoaXMuX3N0YXR1
c0Jhckl0ZW1Db250YWluZXIgJiYgdGhpcy5fc3RhdHVzQmFySXRlbUNvbnRhaW5lci5wYXJlbnRO
b2RlKQpAQCAtMzU1LDcgKzM1Myw3IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7
CiAKICAgICAgICAgdGhpcy5fY3VycmVudFNpZGViYXJXaWR0aCA9IHdpZHRoOwogICAgICAgICB0
aGlzLnNldFNpZGViYXJXaWR0aCh3aWR0aCk7Ci0KKyAgICAgICAgdGhpcy5yZXNpemUoKTsKICAg
ICAgICAgdGhpcy51cGRhdGVNYWluVmlld1dpZHRoKHdpZHRoKTsKICAgICB9LAogCkBAIC0zODks
OSArMzg3LDcgQEAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIHJlc2l6
ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIHZpc2libGVWaWV3ID0gdGhpcy52aXNp
YmxlVmlldzsKLSAgICAgICAgaWYgKHZpc2libGVWaWV3ICYmICJyZXNpemUiIGluIHZpc2libGVW
aWV3KQotICAgICAgICAgICAgdmlzaWJsZVZpZXcucmVzaXplKCk7CisgICAgICAgIHRoaXMuZGlz
cGF0Y2hUb1Zpc2libGVDaGlsZHJlbigicmVzaXplIik7CiAgICAgfSwKIAogICAgIGNhblNob3dB
bmNob3JMb2NhdGlvbjogZnVuY3Rpb24oYW5jaG9yKQpAQCAtNDA5LDI1ICs0MDUsNiBAQCBXZWJJ
bnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gW107CiAgICAgfSwK
IAotICAgIF9zdG9yZVNjcm9sbFBvc2l0aW9uczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
dmFyIGVsZW1lbnRzID0gdGhpcy5lbGVtZW50c1RvUmVzdG9yZVNjcm9sbFBvc2l0aW9uc0Zvcigp
OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICB2YXIgY29udGFpbmVyID0gZWxlbWVudHNbaV07Ci0gICAgICAgICAgICBjb250
YWluZXIuX3Njcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3A7Ci0gICAgICAgIH0KLSAgICB9
LAotCi0gICAgX3Jlc3RvcmVTY3JvbGxQb3NpdGlvbnM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIHZhciBlbGVtZW50cyA9IHRoaXMuZWxlbWVudHNUb1Jlc3RvcmVTY3JvbGxQb3NpdGlvbnNG
b3IoKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7ICsraSkg
ewotICAgICAgICAgICAgdmFyIGNvbnRhaW5lciA9IGVsZW1lbnRzW2ldOwotICAgICAgICAgICAg
aWYgKGNvbnRhaW5lci5fc2Nyb2xsVG9wKQotICAgICAgICAgICAgICAgIGNvbnRhaW5lci5zY3Jv
bGxUb3AgPSBjb250YWluZXIuX3Njcm9sbFRvcDsKLSAgICAgICAgfQotICAgIH0sCi0KICAgICBo
YW5kbGVTaG9ydGN1dDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgc2hvcnRj
dXRLZXkgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlS2V5RnJvbUV2ZW50KGV2
ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlc1BhbmVsLmpzCmluZGV4IDI3Zjc0MDQuLjVmOWZlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpAQCAtMTAxLDkg
KzEwMSw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMpOwogCiAgICAg
ICAgIHRoaXMuX3BvcHVsYXRlUmVzb3VyY2VUcmVlKCk7Ci0KLSAgICAgICAgaWYgKHRoaXMudmlz
aWJsZVZpZXcgJiYgdGhpcy52aXNpYmxlVmlldy5yZXNvdXJjZSkKLSAgICAgICAgICAgIHRoaXMu
X3Nob3dSZXNvdXJjZVZpZXcodGhpcy52aXNpYmxlVmlldy5yZXNvdXJjZSk7CiAgICAgfSwKIAog
ICAgIF9vbkxvYWRFdmVudEZpcmVkOiBmdW5jdGlvbigpCkBAIC01MTksNiArNTE2LDcgQEAgV2Vi
SW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMu
dmlzaWJsZVZpZXcpCiAgICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LmhpZGUoKTsKIAorICAg
ICAgICB0aGlzLmFkZENoaWxkKHZpZXcpOwogICAgICAgICB2aWV3LnNob3codGhpcy5zdG9yYWdl
Vmlld3MpOwogICAgICAgICB0aGlzLnZpc2libGVWaWV3ID0gdmlldzsKIApAQCAtNTMxLDcgKzUy
OSw5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgY2xv
c2VWaXNpYmxlVmlldzogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMudmlzaWJs
ZVZpZXcpCi0gICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LmhpZGUoKTsKKyAgICAgICAgICAg
IHRoaXMudmlzaWJsZVZpZXcuZGV0YWNoKCk7CisgICAgICAgCisgICAgICAgIHRoaXMucmVtb3Zl
Q2hpbGQodGhpcy52aXNpYmxlVmlldyk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLnZpc2libGVWaWV3
OwogICAgIH0sCiAKQEAgLTEzOTIsOSArMTM5MiwxMSBAQCBXZWJJbnNwZWN0b3IuRnJhbWVSZXNv
dXJjZVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG5ld1ZpZXcgPSB0aGlz
Ll9jcmVhdGVTb3VyY2VWaWV3KCk7CiAKICAgICAgICAgdmFyIG9sZFZpZXdQYXJlbnROb2RlID0g
b2xkVmlldy52aXNpYmxlID8gb2xkVmlldy5lbGVtZW50LnBhcmVudE5vZGUgOiBudWxsOwotICAg
ICAgICBuZXdWaWV3LmluaGVyaXRTY3JvbGxQb3NpdGlvbnNGcm9tVmlldyhvbGRWaWV3KTsKKyAg
ICAgICAgbmV3Vmlldy5pbmhlcml0U2Nyb2xsUG9zaXRpb25zKG9sZFZpZXcpOwogCiAgICAgICAg
IHRoaXMuX3NvdXJjZVZpZXcuZGV0YWNoKCk7CisgICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5y
ZW1vdmVDaGlsZCh0aGlzLl9zb3VyY2VWaWV3KTsKKyAgICAgICAgdGhpcy5fc3RvcmFnZVBhbmVs
LmFkZENoaWxkKG5ld1ZpZXcpOwogICAgICAgICB0aGlzLl9zb3VyY2VWaWV3ID0gbmV3VmlldzsK
IAogICAgICAgICBpZiAob2xkVmlld1BhcmVudE5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDJkMmMyODQuLjYxZTU0
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzCkBAIC0yMTMsMjAgKzIxMyw5IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnNpZGViYXJSZXNpemVFbGVtZW50LnN0eWxlLnJp
Z2h0ID0gKHRoaXMuc2lkZWJhckVsZW1lbnQub2Zmc2V0V2lkdGggLSAzKSArICJweCI7CiAgICAg
ICAgIGlmIChQcmVmZXJlbmNlcy5uYXRpdmVJbnN0cnVtZW50YXRpb25FbmFibGVkKQogICAgICAg
ICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5pbnNlcnRCZWZvcmUodGhpcy5zaWRlYmFyUGFuZXMu
ZG9tQnJlYWtwb2ludHMuZWxlbWVudCwgdGhpcy5zaWRlYmFyUGFuZXMueGhyQnJlYWtwb2ludHMu
ZWxlbWVudCk7Ci0KLSAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcpCi0gICAgICAgICAgICB0
aGlzLnZpc2libGVWaWV3LnNob3codGhpcy52aWV3c0NvbnRhaW5lckVsZW1lbnQpOwogICAgICAg
ICB0aGlzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zLnNob3coKTsKICAgICB9LAogCi0g
ICAgaGlkZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcp
Ci0gICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LmhpZGUoKTsKLSAgICAgICAgV2ViSW5zcGVj
dG9yLlBhbmVsLnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7Ci0gICAgICAgIHRoaXMuc2lkZWJh
clBhbmVzLndhdGNoRXhwcmVzc2lvbnMuaGlkZSgpOwotICAgIH0sCi0KICAgICBnZXQgYnJlYWtw
b2ludHNBY3RpdmF0ZWQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMudG9nZ2xlQnJlYWtw
b2ludHNCdXR0b24udG9nZ2xlZDsKQEAgLTY2NSw2ICs2NTQsNyBAQCBXZWJJbnNwZWN0b3IuU2Ny
aXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9w
cmVzZW50YXRpb25Nb2RlbC5zb3VyY2VGaWxlKHNvdXJjZUZpbGVJZCk7CiAgICAgICAgIHZhciBk
ZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlwdHNQ
YW5lbCh0aGlzLl9wcmVzZW50YXRpb25Nb2RlbCwgc291cmNlRmlsZUlkKTsKICAgICAgICAgdmFy
IHNvdXJjZUZyYW1lID0gbmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZShkZWxlZ2F0ZSwgc291
cmNlRmlsZS51cmwpOworICAgICAgICB0aGlzLmFkZENoaWxkKHNvdXJjZUZyYW1lKTsKICAgICAg
ICAgc291cmNlRnJhbWUuX3NvdXJjZUZpbGVJZCA9IHNvdXJjZUZpbGVJZDsKICAgICAgICAgc291
cmNlRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuRXZlbnRz
LkxvYWRlZCwgdGhpcy5fc291cmNlRnJhbWVMb2FkZWQsIHRoaXMpOwogICAgICAgICB0aGlzLl9z
b3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1lW3NvdXJjZUZpbGVJZF0gPSBzb3VyY2VGcmFtZTsKQEAg
LTY3Nyw3ICs2NjcsOSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgaWYgKCFzb3VyY2VGcmFtZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ZGVsZXRlIHRoaXMuX3NvdXJjZUZpbGVJZFRvU291cmNlRnJhbWVbc291cmNlRmlsZUlkXTsKKyAg
ICAgICAgdGhpcy5yZW1vdmVDaGlsZChzb3VyY2VGcmFtZSk7CiAgICAgICAgIHNvdXJjZUZyYW1l
LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLkV2ZW50cy5Mb2Fk
ZWQsIHRoaXMuX3NvdXJjZUZyYW1lTG9hZGVkLCB0aGlzKTsKKyAgICAgICAgc291cmNlRnJhbWUu
ZGV0YWNoKCk7CiAgICAgfSwKIAogICAgIF9zb3VyY2VGaWxlUmVwbGFjZWQ6IGZ1bmN0aW9uKGV2
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJh
bWUuanMKaW5kZXggMjY5OTA2NS4uYjY0ZGVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC00MCw2ICs0MCw3IEBAIFdlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZSA9IGZ1bmN0aW9uKGRlbGVnYXRlLCB1cmwpCiAKICAgICB2YXIg
dGV4dFZpZXdlckRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyRGVsZWdhdGVG
b3JTb3VyY2VGcmFtZSh0aGlzKTsKICAgICB0aGlzLl90ZXh0Vmlld2VyID0gbmV3IFdlYkluc3Bl
Y3Rvci5UZXh0Vmlld2VyKHRoaXMuX3RleHRNb2RlbCwgV2ViSW5zcGVjdG9yLnBsYXRmb3JtLCB0
aGlzLl91cmwsIHRleHRWaWV3ZXJEZWxlZ2F0ZSk7CisgICAgdGhpcy5hZGRDaGlsZCh0aGlzLl90
ZXh0Vmlld2VyKTsKICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdGV4dFZpZXdl
ci5lbGVtZW50KTsKIAogICAgIHRoaXMuX2N1cnJlbnRTZWFyY2hSZXN1bHRJbmRleCA9IC0xOwpA
QCAtNzcsMjYgKzc4LDE5IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5jcmVhdGVTZWFyY2hS
ZWdleCA9IGZ1bmN0aW9uKHF1ZXJ5KQogCiAKIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90
b3R5cGUgPSB7Ci0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICBzaG93OiBm
dW5jdGlvbihwYXJlbnQpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5
cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwotCisgICAgICAgIFdlYkluc3BlY3Rv
ci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50KTsKICAgICAgICAgdGhpcy5f
ZW5zdXJlQ29udGVudExvYWRlZCgpOwotCi0gICAgICAgIHRoaXMucmVzdG9yZVNjcm9sbFBvc2l0
aW9ucygpOwotCi0gICAgICAgIC8vIFJlc2l6ZSBhZnRlciBzZXR0aW5nIHRoZSBpbml0aWFsIHNj
cm9sbCBwb3NpdGlvbnMgdG8gYXZvaWQgdW5uZWNlc3NhcnkgcmVuZGVyaW5nIHdvcmsuCi0gICAg
ICAgIHRoaXMuX3RleHRWaWV3ZXIucmVzaXplKCk7CisgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIu
c2hvdygpOwogICAgIH0sCiAKLSAgICBoaWRlOiBmdW5jdGlvbigpCisgICAgYmVjYW1lT2Zmc2Ny
ZWVuOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5
cGUuaGlkZS5jYWxsKHRoaXMpOwotCisgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlw
ZS5iZWNhbWVPZmZzY3JlZW4uY2FsbCh0aGlzKTsKICAgICAgICAgaWYgKHRoaXMubG9hZGVkKQog
ICAgICAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5mcmVlQ2FjaGVkRWxlbWVudHMoKTsKIAotICAg
ICAgICB0aGlzLl90ZXh0Vmlld2VyLmhpZGUoKTsKICAgICAgICAgdGhpcy5faGlkZVBvcHVwKCk7
CiAgICAgICAgIHRoaXMuX2NsZWFyTGluZUhpZ2hsaWdodCgpOwogICAgIH0sCkBAIC0xNjAsMjgg
KzE1NCw2IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHJldHVybiB0aGlzLl90ZXh0TW9kZWw7CiAgICAgfSwKIAotICAgIGdldCBzY3JvbGxMZWZ0KCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmxvYWRlZCA/IHRoaXMuX3RleHRWaWV3ZXIuc2Ny
b2xsTGVmdCA6IDA7Ci0gICAgfSwKLQotICAgIHNldCBzY3JvbGxMZWZ0KHNjcm9sbExlZnQpCi0g
ICAgewotICAgICAgICBpZiAodGhpcy5sb2FkZWQpCi0gICAgICAgICAgICB0aGlzLl90ZXh0Vmll
d2VyLnNjcm9sbExlZnQgPSBzY3JvbGxMZWZ0OwotICAgIH0sCi0KLSAgICBnZXQgc2Nyb2xsVG9w
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmxvYWRlZCA/IHRoaXMuX3RleHRWaWV3ZXIu
c2Nyb2xsVG9wIDogMDsKLSAgICB9LAotCi0gICAgc2V0IHNjcm9sbFRvcChzY3JvbGxUb3ApCi0g
ICAgewotICAgICAgICBpZiAodGhpcy5sb2FkZWQpCi0gICAgICAgICAgICB0aGlzLl90ZXh0Vmll
d2VyLnNjcm9sbFRvcCA9IHNjcm9sbFRvcDsKLSAgICB9LAotCiAgICAgaGlnaGxpZ2h0TGluZTog
ZnVuY3Rpb24obGluZSkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLmxvYWRlZCkKQEAgLTg3Nyw5
ICs4NDksOSBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAg
ICByZXR1cm4gY29uZGl0aW9uRWxlbWVudDsKICAgICB9LAogCi0gICAgcmVzaXplOiBmdW5jdGlv
bigpCisgICAgaW5oZXJpdFNjcm9sbFBvc2l0aW9uczogZnVuY3Rpb24oc291cmNlRnJhbWUpCiAg
ICAgewotICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLnJlc2l6ZSgpOworICAgICAgICB0aGlzLl90
ZXh0Vmlld2VyLmluaGVyaXRTY3JvbGxQb3NpdGlvbnMoc291cmNlRnJhbWUuX3RleHRWaWV3ZXIp
OwogICAgIH0sCiAKICAgICBkb3VibGVDbGljazogZnVuY3Rpb24obGluZU51bWJlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcwppbmRleCAx
MzdkOWExLi5lMTFkMzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RhYmJlZFBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UYWJiZWRQYW5lLmpzCkBAIC00Niw2ICs0Niw3IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRQ
YW5lLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl90YWJzRWxlbWVudC5hcHBlbmRDaGls
ZCh0YWJFbGVtZW50KTsKICAgICAgICAgdGhpcy5fY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQo
dmlldy5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5hZGRDaGlsZCh2aWV3KTsKIAogICAgICAgICB0
aGlzLl90YWJzW2lkXSA9IHsgdGFiRWxlbWVudDogdGFiRWxlbWVudCwgdmlldzogdmlldyB9Owog
ICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rl
eHRWaWV3ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3
ZXIuanMKaW5kZXggYTM4NTYxYS4uZTFlMjdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGV4dFZpZXdlci5qcwpAQCAtMTI3LDI0ICsxMjcsMTUgQEAgV2Vi
SW5zcGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9ndXR0ZXJQ
YW5lbC5mcmVlQ2FjaGVkRWxlbWVudHMoKTsKICAgICB9LAogCi0gICAgZ2V0IHNjcm9sbFRvcCgp
CisgICAgZWxlbWVudHNUb1Jlc3RvcmVTY3JvbGxQb3NpdGlvbnNGb3I6IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9tYWluUGFuZWwuZWxlbWVudC5zY3JvbGxUb3A7Cisg
ICAgICAgIHJldHVybiBbdGhpcy5fbWFpblBhbmVsLmVsZW1lbnRdOwogICAgIH0sCiAKLSAgICBz
ZXQgc2Nyb2xsVG9wKHNjcm9sbFRvcCkKKyAgICBpbmhlcml0U2Nyb2xsUG9zaXRpb25zOiBmdW5j
dGlvbih0ZXh0Vmlld2VyKQogICAgIHsKLSAgICAgICAgdGhpcy5fbWFpblBhbmVsLmVsZW1lbnQu
c2Nyb2xsVG9wID0gc2Nyb2xsVG9wOwotICAgIH0sCi0KLSAgICBnZXQgc2Nyb2xsTGVmdCgpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbWFpblBhbmVsLmVsZW1lbnQuc2Nyb2xsTGVmdDsK
LSAgICB9LAotCi0gICAgc2V0IHNjcm9sbExlZnQoc2Nyb2xsTGVmdCkKLSAgICB7Ci0gICAgICAg
IHRoaXMuX21haW5QYW5lbC5lbGVtZW50LnNjcm9sbExlZnQgPSBzY3JvbGxMZWZ0OworICAgICAg
ICB0aGlzLl9tYWluUGFuZWwuZWxlbWVudC5fc2Nyb2xsVG9wID0gdGV4dFZpZXdlci5fbWFpblBh
bmVsLmVsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICB0aGlzLl9tYWluUGFuZWwuZWxlbWVudC5f
c2Nyb2xsTGVmdCA9IHRleHRWaWV3ZXIuX21haW5QYW5lbC5lbGVtZW50LnNjcm9sbExlZnQ7CiAg
ICAgfSwKIAogICAgIGJlZ2luVXBkYXRlczogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IGQ1MDU0MWQu
LjUxZWVjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RpbWVsaW5lUGFuZWwuanMKQEAgLTUxNywxMSArNTE3LDE0IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fbW9kZWwuX3Jlc2V0KCk7CiAg
ICAgfSwKIAorICAgIGVsZW1lbnRzVG9SZXN0b3JlU2Nyb2xsUG9zaXRpb25zRm9yOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gW3RoaXMuX2NvbnRhaW5lckVsZW1lbnRdOworICAg
IH0sCisKICAgICBzaG93OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3Iu
UGFuZWwucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsKLSAgICAgICAgaWYgKHR5cGVvZiB0aGlz
Ll9zY3JvbGxUb3AgPT09ICJudW1iZXIiKQotICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyRWxl
bWVudC5zY3JvbGxUb3AgPSB0aGlzLl9zY3JvbGxUb3A7CiAgICAgICAgIHRoaXMuX3JlZnJlc2go
KTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci5jdXJyZW50UGFuZWxDb3VudGVycyA9IHRo
aXMucmVjb3Jkc0NvdW50ZXI7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVmlldy5qcwppbmRleCAxOTMyNDU5Li43YmRlYjRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzCkBAIC0yOCw2ICsyOCw3IEBAIFdlYkluc3BlY3Rv
ci5WaWV3ID0gZnVuY3Rpb24oZWxlbWVudCkKIHsKICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50
IHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMuX3Zpc2libGUgPSBm
YWxzZTsKKyAgICB0aGlzLl9jaGlsZHJlbiA9IFtdOwogfQogCiBXZWJJbnNwZWN0b3IuVmlldy5w
cm90b3R5cGUgPSB7CkBAIC00NywxMCArNDgsMjEgQEAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90
eXBlID0gewogICAgICAgICAgICAgdGhpcy5oaWRlKCk7CiAgICAgfSwKIAorICAgIGJlY2FtZU9u
c2NyZWVuOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLnJlc3RvcmVTY3JvbGxQb3Np
dGlvbnMoKTsKKyAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc2l6ZSA9PT0gImZ1bmN0aW9uIikK
KyAgICAgICAgICAgIHRoaXMucmVzaXplKCk7CisgICAgfSwKKworICAgIGJlY2FtZU9mZnNjcmVl
bjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5zdG9yZVNjcm9sbFBvc2l0aW9ucygp
OworICAgIH0sCisKICAgICBfaW5uZXJTaG93OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0
aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlzaWJsZSIpOwotICAgICAgICB0aGlzLnJlc3Rv
cmVTY3JvbGxQb3NpdGlvbnMoKTsKICAgICB9LAogCiAgICAgc2hvdzogZnVuY3Rpb24ocGFyZW50
RWxlbWVudCkKQEAgLTYzLDE2ICs3NSwxNyBAQCBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmICghdGhpcy5lbGVtZW50LnBhcmVudE5vZGUgJiYgdGhpcy5hdHRhY2gp
CiAgICAgICAgICAgICB0aGlzLmF0dGFjaCgpOwogICAgICAgICB0aGlzLl9pbm5lclNob3coKTsK
KyAgICAgICAgdGhpcy5kaXNwYXRjaFRvU2VsZkFuZFZpc2libGVDaGlsZHJlbigiYmVjYW1lT25z
Y3JlZW4iKTsKICAgICB9LAogCiAgICAgX2lubmVySGlkZTogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgdGhpcy5zdG9yZVNjcm9sbFBvc2l0aW9ucygpOwogICAgICAgICB0aGlzLmVsZW1lbnQu
cmVtb3ZlU3R5bGVDbGFzcygidmlzaWJsZSIpOwogICAgIH0sCiAKICAgICBoaWRlOiBmdW5jdGlv
bigpCiAgICAgeworICAgICAgICB0aGlzLmRpc3BhdGNoVG9TZWxmQW5kVmlzaWJsZUNoaWxkcmVu
KCJiZWNhbWVPZmZzY3JlZW4iKTsKICAgICAgICAgdGhpcy5faW5uZXJIaWRlKCk7CiAgICAgICAg
IHRoaXMuX3Zpc2libGUgPSBmYWxzZTsKICAgICB9LApAQCAtODMsMjIgKzk2LDY3IEBAIFdlYklu
c3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5wYXJl
bnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudCk7CiAgICAgfSwKIAotICAgIHN0b3JlU2Ny
b2xsUG9zaXRpb25zOiBmdW5jdGlvbigpCisgICAgZWxlbWVudHNUb1Jlc3RvcmVTY3JvbGxQb3Np
dGlvbnNGb3I6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Njcm9sbExlZnQgPSB0
aGlzLnNjcm9sbExlZnQ7Ci0gICAgICAgIHRoaXMuX3Njcm9sbFRvcCA9IHRoaXMuc2Nyb2xsVG9w
OworICAgICAgICByZXR1cm4gW3RoaXMuZWxlbWVudF07CiAgICAgfSwKLSAgICAKLSAgICBpbmhl
cml0U2Nyb2xsUG9zaXRpb25zRnJvbVZpZXc6IGZ1bmN0aW9uKHZpZXcpCisKKyAgICBzdG9yZVNj
cm9sbFBvc2l0aW9uczogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fc2Nyb2xsTGVm
dCA9IHZpZXcuX3Njcm9sbExlZnQ7Ci0gICAgICAgIHRoaXMuX3Njcm9sbFRvcCA9IHZpZXcuX3Nj
cm9sbFRvcDsKKyAgICAgICAgdmFyIGVsZW1lbnRzID0gdGhpcy5lbGVtZW50c1RvUmVzdG9yZVNj
cm9sbFBvc2l0aW9uc0ZvcigpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgY29udGFpbmVyID0gZWxlbWVudHNbaV07
CisgICAgICAgICAgICBjb250YWluZXIuX3Njcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3A7
CisgICAgICAgICAgICBjb250YWluZXIuX3Njcm9sbExlZnQgPSBjb250YWluZXIuc2Nyb2xsTGVm
dDsKKyAgICAgICAgfQogICAgIH0sCiAKICAgICByZXN0b3JlU2Nyb2xsUG9zaXRpb25zOiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICB0aGlzLnNjcm9sbExlZnQgPSB0aGlzLl9zY3JvbGxMZWZ0
OwotICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IHRoaXMuX3Njcm9sbFRvcDsKKyAgICAgICAgdmFy
IGVsZW1lbnRzID0gdGhpcy5lbGVtZW50c1RvUmVzdG9yZVNjcm9sbFBvc2l0aW9uc0ZvcigpOwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgKytpKSB7CisgICAg
ICAgICAgICB2YXIgY29udGFpbmVyID0gZWxlbWVudHNbaV07CisgICAgICAgICAgICBpZiAoY29u
dGFpbmVyLl9zY3JvbGxUb3ApCisgICAgICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9
IGNvbnRhaW5lci5fc2Nyb2xsVG9wOworICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5fc2Nyb2xs
TGVmdCkKKyAgICAgICAgICAgICAgICBjb250YWluZXIuc2Nyb2xsTGVmdCA9IGNvbnRhaW5lci5f
c2Nyb2xsTGVmdDsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBhZGRDaGlsZDogZnVuY3Rpb24o
dmlldykKKyAgICB7CisgICAgICAgIGlmICh2aWV3Ll9wYXJlbnQgPT09IHRoaXMpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIGlmICh2aWV3Ll9wYXJlbnQpCisgICAgICAgICAgICB2aWV3
Ll9wYXJlbnQucmVtb3ZlQ2hpbGQodmlldyk7CisgICAgICAgIHRoaXMuX2NoaWxkcmVuLnB1c2go
dmlldyk7CisgICAgICAgIHZpZXcuX3BhcmVudCA9IHRoaXM7CisgICAgfSwKKworICAgIHJlbW92
ZUNoaWxkOiBmdW5jdGlvbih2aWV3KQorICAgIHsKKyAgICAgICAgdmFyIGNoaWxkSW5kZXggPSB0
aGlzLl9jaGlsZHJlbi5pbmRleE9mKHZpZXcpOworICAgICAgICBpZiAoY2hpbGRJbmRleCA+PSAw
KSB7CisgICAgICAgICAgICB0aGlzLl9jaGlsZHJlbi5zcGxpY2UoY2hpbGRJbmRleCwgMSk7Cisg
ICAgICAgICAgICB2aWV3Ll9wYXJlbnQgPSBudWxsOworICAgICAgICB9CisgICAgfSwKKworICAg
IGRpc3BhdGNoVG9TZWxmQW5kVmlzaWJsZUNoaWxkcmVuOiBmdW5jdGlvbihtZXRob2ROYW1lKQor
ICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIGlmICh0eXBlb2YgdGhpc1ttZXRob2ROYW1lXSA9PT0gImZ1bmN0aW9uIikKKyAgICAg
ICAgICAgIHRoaXNbbWV0aG9kTmFtZV0uY2FsbCh0aGlzKTsKKyAgICAgICAgdGhpcy5kaXNwYXRj
aFRvVmlzaWJsZUNoaWxkcmVuKG1ldGhvZE5hbWUpOworICAgIH0sCisKKyAgICBkaXNwYXRjaFRv
VmlzaWJsZUNoaWxkcmVuOiBmdW5jdGlvbihtZXRob2ROYW1lKQorICAgIHsKKyAgICAgICAgaWYg
KCF0aGlzLnZpc2libGUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdGhpcy5fY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl9j
aGlsZHJlbltpXS5kaXNwYXRjaFRvU2VsZkFuZFZpc2libGVDaGlsZHJlbihtZXRob2ROYW1lKTsK
ICAgICB9CiB9CiAK
</data>
<flag name="review"
          id="99630"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104056</attachid>
            <date>2011-08-16 09:35:08 -0700</date>
            <delta_ts>2011-08-16 10:05:47 -0700</delta_ts>
            <desc>patch</desc>
            <filename>view-children.diff</filename>
            <type>text/plain</type>
            <size>42819</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjM2VkMzk1Li40NzE0NDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODUg
QEAKKzIwMTEtMDgtMTIgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBtYWludGFpbiB2aXNpYmxlIHZpZXcgaGllcmFyY2h5IGFu
ZCBkaXNwYXRjaCBjb21tb24gdmlldyBldmVudHMgYXV0b21hdGljYWxseQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYxMzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIGFkZGVkIGEgbm90aW9uIG9mIGFu
IG9wdGlvbmFsIHBhcmVudCB0byBhIFZpZXcKKyAgICAgICAgLSBtYWludGFpbiBhIGxpc3Qgb2Yg
dmlzaWJsZSBWaWV3IGNoaWxkcmVuCisgICAgICAgIC0gZGlzcGF0Y2ggY29tbW9uIHZpZXcgZXZl
bnRzLCBzdWNoIGFzIHJlc2l6ZSwgYWN0aXZhdGlvbiAoaS5lLiBiZWNvbWluZyB2aXNpYmxlIGFz
IGEgcmVzdWx0IG9mIHNvbWUgb2YgdGhlIHBhcmVudCB2aWV3cyBiZWNvbWluZyB2aXNpYmxlKSBh
bmQgZGVhY3RpdmF0aW9uIGF1dG9tYXRpY2FsbHkgdGhyb3VnaCB0aGUgaGllcmFyY2h5IG9mIHZp
c2libGUgdmlld3MuCisgICAgICAgIC0gY2hhbmdlZCBzdG9yZS9yZXN0b3JlIG9mIHRoZSB2aWV3
IHNjcm9sbCBwb3NpdGlvbiB0byB1c2UgZWxlbWVudCdzIHNjcm9sbFRvcC9zY3JvbGxMZWZ0IHJh
dGhlciB0aGFuIHZpZXcgcHJvcGVydGllcworICAgICAgICAtIHJlbW92ZWQgc2Nyb2xsVG9wL3Nj
cm9sbExlZnQgZ2V0dGVycy9zZXR0ZXJzIGZvciB2aWV3cyB0aGF0IGhhdmUgYW4gdW51c3VhbCBz
Y3JvbGwgY29udGFpbmVyLCBvdmVycmlkZSBzdG9yZVNjcm9sbFBvc2l0aW9ucygpL3Jlc3RvcmVT
Y3JvbGxQb3NpdGlvbnMoKSBpbnN0ZWFkLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90
b3R5cGUuc3RvcmVTY3JvbGxQb3NpdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVWaWV3LnByb3RvdHlwZS5yZXN0b3JlU2Nyb2xsUG9zaXRpb25zKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIu
cHJvdG90eXBlLmhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUu
X2FuaW1hdGVEcmF3ZXJIZWlnaHQuYW5pbWF0aW9uRmluaXNoZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRyYXdlci5wcm90b3R5cGUuX2FuaW1hdGVEcmF3ZXJIZWlnaHQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUuX3N0YXR1c0JhckRyYWdnaW5nKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlLl9lbmRTdGF0dXNCYXJEcmFnZ2luZyk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JRnJhbWVWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLklGcmFtZVZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya0l0ZW1WaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtJdGVtVmll
dy5wcm90b3R5cGUuX2luc3RhbGxIaWdobGlnaHRTdXBwb3J0KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3
b3JrTG9nVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90
eXBlLmVsZW1lbnRzVG9SZXN0b3JlU2Nyb2xsUG9zaXRpb25zRm9yKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUudmlld0FjdGl2YXRlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlLnZpZXdEZWFjdGl2YXRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5ldHdvcmtQYW5lbC5wcm90b3R5cGUuX3Nob3dSZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZS5fY2xvc2VWaXNpYmxlUmVzb3VyY2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUGFuZWwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnBy
b3RvdHlwZS5oaWRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUudXBk
YXRlU2lkZWJhcldpZHRoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUu
c3RvcmVTY3JvbGxQb3NpdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsLnByb3Rv
dHlwZS5yZXN0b3JlU2Nyb2xsUG9zaXRpb25zKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5l
bC5wcm90b3R5cGUudXBkYXRlTWFpblZpZXdXaWR0aCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUuX3Jlc291cmNlVmlld0ZvclJlc291cmNlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX2lubmVyU2hvd1ZpZXcpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5jbG9zZVZpc2libGVW
aWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUudXBk
YXRlTWFpblZpZXdXaWR0aCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5z
aG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jcmVh
dGVTb3VyY2VGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZS5fcmVtb3ZlU291cmNlRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbC5wcm90b3R5cGUuc2V0U2lkZWJhcldpZHRoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1l
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuc2hvdyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLnZpZXdEZWFjdGl2YXRl
ZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlLmFwcGVuZFRhYik6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRleHRWaWV3ZXIucHJvdG90eXBlLnN0b3JlU2Nyb2xsUG9zaXRpb25zKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZS5yZXN0b3JlU2Nyb2xsUG9zaXRpb25z
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuZWxlbWVudHNUb1Jlc3Rv
cmVTY3JvbGxQb3NpdGlvbnNGb3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVmlldy5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aWV3LnByb3RvdHlwZS52aWV3QWN0aXZhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZS52aWV3RGVhY3RpdmF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcu
cHJvdG90eXBlLl9pbm5lclNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90
eXBlLnNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9pbm5lckhp
ZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnN0b3JlU2Nyb2xsUG9zaXRpb25zKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5yZXN0b3JlU2Nyb2xsUG9zaXRpb25z
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zZXRQYXJlbnQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9hZGRWaXNpYmxlQ2hpbGQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9yZW1vdmVWaXNpYmxlQ2hpbGQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmRpc3BhdGNoVG9WaXNpYmxlVmll
d3MpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLndpbmRvd1Jlc2l6ZSk6CisKIDIwMTEtMDgtMTUgIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyNzA1OTgpOiBb
Q2hyb21pdW1dIFN0eWxlIGNoYW5nZXMgaW4gdGV4dElucHV0IGV2ZW50IGNhbiBwcmV2ZW50IGZy
b20gdXBkYXRpbmcgPHRleHRhcmVhPiB2YWx1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5q
cwppbmRleCA5ZDFiNmE0Li43YTU0NDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3Lmpz
CkBAIC0yNDksNyArMjQ5LDcgQEAgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1Zp
ZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuY2hpbGRyZW5bMF0u
c2VsZWN0ZWQgPSB0cnVlOwogICAgIH0sCiAKLSAgICByZXNpemU6IGZ1bmN0aW9uKCkKKyAgICBv
blJlc2l6ZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2RhdGFHcmlkKQog
ICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRlV2lkdGhzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCBlOWZjODg5
Li45MjYyZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVZpZXcuanMKQEAgLTI3Miw5ICsyNzIsOCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZp
ZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRyYXdlci52aXNpYmxlVmlldyA9IHRoaXM7
CiAgICAgfSwKIAotICAgIGF0dGFjaDogZnVuY3Rpb24obWFpbkVsZW1lbnQsIHN0YXR1c0JhckVs
ZW1lbnQpCisgICAgcG9wdWxhdGVTdGF0dXNCYXI6IGZ1bmN0aW9uKHN0YXR1c0JhckVsZW1lbnQp
CiAgICAgewotICAgICAgICBtYWluRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQpOwog
ICAgICAgICBzdGF0dXNCYXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuY2xlYXJCdXR0b24pOwog
ICAgICAgICBzdGF0dXNCYXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZmlsdGVyQmFyRWxlbWVu
dCk7CiAgICAgfSwKQEAgLTc5MSwyNCArNzkwLDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdChvdXRwdXQsIG91dHB1
dC5zdWJ0eXBlICYmIG91dHB1dC5zdWJ0eXBlID09PSAiYXJyYXkiKTsKICAgICB9LAogCi0gICAg
Z2V0IHNjcm9sbExlZnQoKQorICAgIGVsZW1lbnRzVG9SZXN0b3JlU2Nyb2xsUG9zaXRpb25zRm9y
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5tZXNzYWdlc0VsZW1lbnQu
c2Nyb2xsTGVmdDsKLSAgICB9LAotCi0gICAgc2V0IHNjcm9sbExlZnQoc2Nyb2xsTGVmdCkKLSAg
ICB7Ci0gICAgICAgIHRoaXMubWVzc2FnZXNFbGVtZW50LnNjcm9sbExlZnQgPSBzY3JvbGxMZWZ0
OwotICAgIH0sCi0KLSAgICBnZXQgc2Nyb2xsVG9wKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLm1lc3NhZ2VzRWxlbWVudC5zY3JvbGxUb3A7Ci0gICAgfSwKLQotICAgIHNldCBzY3JvbGxU
b3Aoc2Nyb2xsVG9wKQotICAgIHsKLSAgICAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuc2Nyb2xs
VG9wID0gc2Nyb2xsVG9wOworICAgICAgICByZXR1cm4gW3RoaXMubWVzc2FnZXNFbGVtZW50XTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ29va2llSXRlbXNWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db29raWVJdGVtc1ZpZXcuanMKaW5kZXggMTM2MTFhNC4uNmI1YTNkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMK
QEAgLTY3LDcgKzY3LDcgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHRoaXMuX2RlbGV0ZUJ1dHRvbi52aXNpYmxlID0gZmFsc2U7CiAgICAgfSwK
IAotICAgIHJlc2l6ZTogZnVuY3Rpb24oKQorICAgIG9uUmVzaXplOiBmdW5jdGlvbigpCiAgICAg
ewogICAgICAgICBpZiAodGhpcy5fY29va2llc1RhYmxlKQogICAgICAgICAgICAgdGhpcy5fY29v
a2llc1RhYmxlLnVwZGF0ZVdpZHRocygpOwpAQCAtMjAyLDcgKzIwMiw3IEBAIFdlYkluc3BlY3Rv
ci5TaW1wbGVDb29raWVzVGFibGUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9kYXRhR3Jp
ZC5jaGlsZHJlblswXS5zZWxlY3RlZCA9IHRydWU7CiAgICAgfSwKIAotICAgIHJlc2l6ZTogZnVu
Y3Rpb24oKQorICAgIG9uUmVzaXplOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAodGhp
cy5fZGF0YUdyaWQpCiAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVXaWR0aHMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFn
ZUl0ZW1zVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3Rv
cmFnZUl0ZW1zVmlldy5qcwppbmRleCBiNjNiYzk2Li4yMmNlNWJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2VJdGVtc1ZpZXcuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlSXRlbXNWaWV3
LmpzCkBAIC03NSw3ICs3NSw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IHRydWU7CiAg
ICAgfSwKIAotICAgIHJlc2l6ZTogZnVuY3Rpb24oKQorICAgIG9uUmVzaXplOiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICBpZiAodGhpcy5fZGF0YUdyaWQpCiAgICAgICAgICAgICB0aGlzLl9k
YXRhR3JpZC51cGRhdGVXaWR0aHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzCmluZGV4IGFiMDkyMTUu
Ljg1ZjMwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGV0YWlsZWRIZWFwc2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qcwpAQCAtNzA1LDcgKzcwNSw3IEBAIFdlYklu
c3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
X2N1cnJlbnRTZWFyY2hSZXN1bHRJbmRleCA9IC0xOwogICAgIH0sCiAKLSAgICByZXNpemU6IGZ1
bmN0aW9uKCkKKyAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRo
aXMuZGF0YUdyaWQpCiAgICAgICAgICAgICB0aGlzLmRhdGFHcmlkLnVwZGF0ZVdpZHRocygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcwppbmRleCAzODA0
NmYwLi40ZWRhODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RyYXdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Ry
YXdlci5qcwpAQCAtNjEsMTQgKzYxLDE0IEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBl
ID0gewogCiAgICAgICAgIHZhciBmaXJzdFRpbWUgPSAhdGhpcy5fdmlzaWJsZVZpZXc7CiAgICAg
ICAgIGlmICh0aGlzLl92aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMuX3Zpc2libGVWaWV3
LmhpZGUoKTsKLQorICAgICAgICAgICAgdGhpcy5yZW1vdmVDaGlsZFZpZXcodGhpcy5fdmlzaWJs
ZVZpZXcpOwogICAgICAgICB0aGlzLl92aXNpYmxlVmlldyA9IHg7CisgICAgICAgIHRoaXMuYWRk
Q2hpbGRWaWV3KHgpOwogCiAgICAgICAgIGlmICh4ICYmICFmaXJzdFRpbWUpIHsKICAgICAgICAg
ICAgIHRoaXMuX3NhZmVseVJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgICAgICB0aGlzLl92aWV3
U3RhdHVzQmFyLnJlbW92ZUNoaWxkcmVuKCk7IC8vIG9wdGltaXplIHRoaXM/IGNhbGwgb2xkLmRl
dGFjaCgpCi0gICAgICAgICAgICB4LmF0dGFjaCh0aGlzLmVsZW1lbnQsIHRoaXMuX3ZpZXdTdGF0
dXNCYXIpOworICAgICAgICAgICAgeC5wb3B1bGF0ZVN0YXR1c0Jhcih0aGlzLl92aWV3U3RhdHVz
QmFyKTsKICAgICAgICAgICAgIHguc2hvdygpOwogICAgICAgICAgICAgdGhpcy52aXNpYmxlID0g
dHJ1ZTsKICAgICAgICAgfQpAQCAtMTM0LDcgKzEzNCw2IEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIu
cHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fY3VycmVudEFuaW1hdGlv
biA9IFdlYkluc3BlY3Rvci5hbmltYXRlU3R5bGUoYW5pbWF0aW9ucywgdGhpcy5fYW5pbWF0aW9u
RHVyYXRpb24oKSwgYW5pbWF0aW9uRmluaXNoZWQuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMu
cmVzdG9yZVNjcm9sbFBvc2l0aW9ucygpOwogICAgIH0sCiAKICAgICBoaWRlOiBmdW5jdGlvbigp
CkBAIC0xODAsNyArMTc5LDcgQEAgV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7CiAK
ICAgICAgICAgZnVuY3Rpb24gYW5pbWF0aW9uRmluaXNoZWQoKQogICAgICAgICB7Ci0gICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsLnJlc2l6ZSgpOworICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmN1cnJlbnRQYW5lbC5kb1Jlc2l6ZSgpOwogICAgICAgICAgICAgdGhpcy5fbWFp
blN0YXR1c0Jhci5pbnNlcnRCZWZvcmUoYW5jaG9yZWRJdGVtcywgdGhpcy5fbWFpblN0YXR1c0Jh
ci5maXJzdENoaWxkKTsKICAgICAgICAgICAgIHRoaXMuX21haW5TdGF0dXNCYXIuc3R5bGUucmVt
b3ZlUHJvcGVydHkoInBhZGRpbmctbGVmdCIpOwogCkBAIC0xOTksNyArMTk4LDcgQEAgV2ViSW5z
cGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2N1cnJlbnRBbmltYXRp
b24gPSBXZWJJbnNwZWN0b3IuYW5pbWF0ZVN0eWxlKGFuaW1hdGlvbnMsIHRoaXMuX2FuaW1hdGlv
bkR1cmF0aW9uKCksIGFuaW1hdGlvbkZpbmlzaGVkLmJpbmQodGhpcykpOwogICAgIH0sCiAKLSAg
ICByZXNpemU6IGZ1bmN0aW9uKCkKKyAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQogICAgIHsKICAg
ICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFdlYkluc3BlY3Rvci5EcmF3ZXIuU3RhdGUuSGlkZGVu
KQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjk0LDcgKzI5Myw3IEBAIFdlYkluc3BlY3Rvci5E
cmF3ZXIucHJvdG90eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIGFuaW1hdGlvbkZpbmlzaGVk
KCkKICAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbC5yZXNp
emUoKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwuZG9SZXNpemUoKTsK
ICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9hbmltYXRpbmc7CiAgICAgICAgICAgICBkZWxldGUg
dGhpcy5fY3VycmVudEFuaW1hdGlvbjsKICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBmaW5hbFN0
YXRlOwpAQCAtMzQ1LDcgKzM0NCw3IEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0g
ewogICAgICAgICB0aGlzLl9tYWluRWxlbWVudC5zdHlsZS5ib3R0b20gPSBoZWlnaHQgKyAicHgi
OwogICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgInB4IjsKICAg
ICAgICAgaWYgKFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwpCi0gICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuY3VycmVudFBhbmVsLnJlc2l6ZSgpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1
cnJlbnRQYW5lbC5kb1Jlc2l6ZSgpOwogCiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7
CiAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwpAQCAtMzU5LDI4ICszNTgsNiBAQCBX
ZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgZGVsZXRlIHRoaXMuX3N0
YXR1c0JhckRyYWdPZmZzZXQ7CiAKICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0g
ICAgfSwKLSAgICAKLSAgICBnZXQgc2Nyb2xsTGVmdCgpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy52aXNpYmxlVmlldyA/IHRoaXMudmlzaWJsZVZpZXcuc2Nyb2xsTGVmdCA6IDA7Ci0gICAg
fSwKLQotICAgIHNldCBzY3JvbGxMZWZ0KHNjcm9sbExlZnQpCi0gICAgewotICAgICAgICBpZiAo
dGhpcy52aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuc2Nyb2xsTGVm
dCA9IHNjcm9sbExlZnQ7Ci0gICAgfSwKLQotICAgIGdldCBzY3JvbGxUb3AoKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZVZpZXcgPyB0aGlzLnZpc2libGVWaWV3LnNjcm9sbFRv
cCA6IDA7Ci0gICAgfSwKLQotICAgIHNldCBzY3JvbGxUb3Aoc2Nyb2xsVG9wKQotICAgIHsKLSAg
ICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcpCi0gICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3
LnNjcm9sbFRvcCA9IHNjcm9sbFRvcDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwppbmRleCBjMjAzY2NhLi4z
YmM3ZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Vs
ZW1lbnRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
bGVtZW50c1BhbmVsLmpzCkBAIC0xNjgsNyArMTY4LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRz
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnNldFNlYXJjaGluZ0Zvck5vZGUoZmFs
c2UpOwogICAgIH0sCiAKLSAgICByZXNpemU6IGZ1bmN0aW9uKCkKKyAgICBvblJlc2l6ZTogZnVu
Y3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy50cmVlT3V0bGluZS51cGRhdGVTZWxlY3Rpb24o
KTsKICAgICAgICAgdGhpcy51cGRhdGVCcmVhZGNydW1iU2l6ZXMoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCmluZGV4IDJj
MmI1ZTguLjMwMmVkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FeHRlbnNpb25QYW5lbC5qcwpAQCAtNDIsMTIgKzQyLDYgQEAgV2ViSW5zcGVjdG9y
LkV4dGVuc2lvblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuc2lkZWJh
clRyZWVFbGVtZW50IHx8IHRoaXMuZWxlbWVudDsKICAgICB9LAogCi0gICAgdXBkYXRlTWFpblZp
ZXdXaWR0aDogZnVuY3Rpb24od2lkdGgpCi0gICAgewotICAgICAgICB0aGlzLmJvZHlFbGVtZW50
LnN0eWxlLmxlZnQgPSB3aWR0aCArICJweCI7Ci0gICAgICAgIHRoaXMucmVzaXplKCk7Ci0gICAg
fSwKLQogICAgIHNlYXJjaENhbmNlbGVkOiBmdW5jdGlvbihzdGFydGluZ05ld1NlYXJjaCkKICAg
ICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5leHRlbnNpb25TZXJ2ZXIubm90aWZ5U2VhcmNoQWN0
aW9uKHRoaXMuX2lkLCAiY2FuY2VsU2VhcmNoIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Gb250Vmlldy5qcwppbmRleCA1NTExMGI3Li5hOWI3YWFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRm9udFZpZXcuanMKQEAgLTgxLDcg
KzgxLDcgQEAgV2ViSW5zcGVjdG9yLkZvbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy51cGRhdGVGb250UHJldmlld1NpemUoKTsKICAgICB9LAogCi0gICAgcmVzaXplOiBmdW5jdGlv
bigpCisgICAgb25SZXNpemU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9p
blJlc2l6ZSkKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSUZyYW1lVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvSUZyYW1lVmlldy5qcwppbmRleCAzYjBiZDgxLi41OTcwZTIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JRnJhbWVWaWV3LmpzCkBA
IC0yOCwxMSArMjgsMTEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLklG
cmFtZVZpZXcgPSBmdW5jdGlvbihwYXJlbnQsIHN0eWxlc2hlZXRzKQorV2ViSW5zcGVjdG9yLklG
cmFtZVZpZXcgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50LCBzdHlsZXNoZWV0cykKIHsKICAgICB0
aGlzLl9pZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CiAg
ICAgdGhpcy5faWZyYW1lRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ2aWV3Iik7Ci0gICAgdGhpcy5f
aW5pdGlhbGl6ZVZpZXcgPSB0aGlzLl9hdHRhY2hJRnJhbWVBbmRJbml0aWFsaXplLmJpbmQodGhp
cywgcGFyZW50LCBzdHlsZXNoZWV0cyk7CisgICAgdGhpcy5faW5pdGlhbGl6ZVZpZXcgPSB0aGlz
Ll9hdHRhY2hJRnJhbWVBbmRJbml0aWFsaXplLmJpbmQodGhpcywgcGFyZW50RWxlbWVudCwgc3R5
bGVzaGVldHMpOwogICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0l0ZW1WaWV3
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZpZXcu
anMKaW5kZXggM2MzMjUyMy4uNTc4Mzk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZpZXcuanMKQEAgLTg4LDEyICs4OCw2IEBA
IFdlYkluc3BlY3Rvci5OZXR3b3JrSXRlbVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAg
dGhpcy5oaWdobGlnaHRMaW5lID0gdmlldy5oaWdobGlnaHRMaW5lLmJpbmQodmlldyk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmhpZ2hsaWdodExpbmU7Ci0gICAgfSwK
LQotICAgIHJlc2l6ZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2Nvb2tp
ZXNWaWV3ICYmIHRoaXMuX2Nvb2tpZXNWaWV3LnZpc2libGUpCi0gICAgICAgICAgICB0aGlzLl9j
b29raWVzVmlldy5yZXNpemUoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKaW5kZXggYzliY2Y1Zi4uYzU4ODNm
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3Jr
UGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3Jr
UGFuZWwuanMKQEAgLTI4LDcgKzI4LDcgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVj
dG9yLk5ldHdvcmtMb2dWaWV3ID0gZnVuY3Rpb24ocGFyZW50KQorV2ViSW5zcGVjdG9yLk5ldHdv
cmtMb2dWaWV3ID0gZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKIHsKICAgICBmdW5jdGlvbiBldmVu
dHNDb2xsZWN0aW9uRW5hYmxlZChlcnJvciwgZW5hYmxlZCkKICAgICB7CkBAIC00Miw3ICs0Miw3
IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldyA9IGZ1bmN0aW9uKHBhcmVudCkKICAgICAg
ICAgImRhdGFHcmlkLmNzcyIsCiAgICAgICAgICJuZXR3b3JrTG9nVmlldy5jc3MiCiAgICAgXTsK
LSAgICBXZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5jYWxsKHRoaXMsIHBhcmVudCwgc3R5bGVzKTsK
KyAgICBXZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQsIHN0
eWxlcyk7CiAKICAgICB0aGlzLl9hbGxvd1Jlc291cmNlU2VsZWN0aW9uID0gZmFsc2U7CiAgICAg
dGhpcy5fcmVzb3VyY2VzID0gW107CkBAIC0xMjUsMTAgKzEyNSwxMCBAQCBXZWJJbnNwZWN0b3Iu
TmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9k
YXRhR3JpZCkgLy8gTm90IGluaXRpYWxpemVkIHlldC4KICAgICAgICAgICAgIHJldHVybiBbXTsK
LSAgICAgICAgcmV0dXJuIFt0aGlzLmVsZW1lbnQsIHRoaXMuX2RhdGFHcmlkLnNjcm9sbENvbnRh
aW5lcl07CisgICAgICAgIHJldHVybiBbdGhpcy5fZGF0YUdyaWQuc2Nyb2xsQ29udGFpbmVyXTsK
ICAgICB9LAogCi0gICAgcmVzaXplOiBmdW5jdGlvbigpCisgICAgb25SZXNpemU6IGZ1bmN0aW9u
KCkKICAgICB7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnVwZGF0ZVdpZHRocygpOwogICAgICAg
ICB0aGlzLl91cGRhdGVPZmZzY3JlZW5Sb3dzKCk7CkBAIC02NDAsMTUgKzY0MCwxNiBAQCBXZWJJ
bnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91cGRh
dGVEaXZpZGVyc0lmTmVlZGVkKHRydWUpOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbigp
CisgICAgZGlkU2hvdzogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLklG
cmFtZVZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LklGcmFtZVZpZXcucHJvdG90eXBlLmRpZFNob3cuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5f
cmVmcmVzaElmTmVlZGVkKCk7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnVwZGF0ZVdpZHRocygp
OwogICAgIH0sCiAKLSAgICBoaWRlOiBmdW5jdGlvbigpCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9u
KCkKICAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3LnByb3RvdHlwZS53aWxs
SGlkZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3B1cCgp
OwogICAgIH0sCiAKQEAgLTEyNTUsNiArMTI1Niw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFu
ZWwgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLmNyZWF0ZVNpZGViYXIoKTsKICAgICB0aGlzLl9u
ZXR3b3JrTG9nVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcodGhpcy5zaWRl
YmFyRWxlbWVudCk7CisgICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fbmV0d29ya0xvZ1ZpZXcp
OwogCiAgICAgdGhpcy5fdmlld3NDb250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CiAgICAgdGhpcy5fdmlld3NDb250YWluZXJFbGVtZW50LmlkID0gIm5ldHdv
cmstdmlld3MiOwpAQCAtMTI5NCwxMiArMTI5Niw2IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fbmV0d29ya0xvZ1ZpZXcuZWxl
bWVudHNUb1Jlc3RvcmVTY3JvbGxQb3NpdGlvbnNGb3IoKTsKICAgICB9LAogCi0gICAgcmVzaXpl
OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LnJlc2l6ZS5jYWxsKHRoaXMpOwotICAgICAgICB0aGlzLl9uZXR3b3JrTG9nVmlldy5yZXNpemUo
KTsKLSAgICB9LAotCiAgICAgLy8gRklYTUU6IG9ubHkgdXNlZCBieSB0aGUgbGF5b3V0IHRlc3Rz
LCBzaG91bGQgbm90IGJlIGV4cG9zZWQuCiAgICAgX3Jlc2V0OiBmdW5jdGlvbigpCiAgICAgewpA
QCAtMTMzNiwxOCArMTMzMiw5IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBl
ID0gewogICAgIHNob3c6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5Q
YW5lbC5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMpOwotCi0gICAgICAgIGlmICh0aGlzLnZpc2li
bGVWaWV3KQotICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5zaG93KHRoaXMuX3ZpZXdzQ29u
dGFpbmVyRWxlbWVudCk7CiAgICAgICAgIHRoaXMuX25ldHdvcmtMb2dWaWV3LnNob3coKTsKICAg
ICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9y
LlBhbmVsLnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7Ci0gICAgICAgIHRoaXMuX25ldHdvcmtM
b2dWaWV3LmhpZGUoKTsKLSAgICB9LAotCiAgICAgZ2V0IHJlc291cmNlcygpCiAgICAgewogICAg
ICAgICByZXR1cm4gdGhpcy5fbmV0d29ya0xvZ1ZpZXcucmVzb3VyY2VzOwpAQCAtMTQwNywxMSAr
MTM5NCwxMiBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5fdG9nZ2xlVmlld2luZ1Jlc291cmNlTW9kZSgpOwogCiAgICAgICAgIGlmICh0aGlz
LnZpc2libGVWaWV3KSB7Ci0gICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LmRldGFjaCgpOwor
ICAgICAgICAgICAgdGhpcy5yZW1vdmVDaGlsZFZpZXcodGhpcy52aXNpYmxlVmlldyk7CiAgICAg
ICAgICAgICBkZWxldGUgdGhpcy52aXNpYmxlVmlldzsKICAgICAgICAgfQogCiAgICAgICAgIHZh
ciB2aWV3ID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrSXRlbVZpZXcocmVzb3VyY2UpOworICAg
ICAgICB0aGlzLmFkZENoaWxkVmlldyh2aWV3KTsKICAgICAgICAgdmlldy5zaG93KHRoaXMuX3Zp
ZXdzQ29udGFpbmVyRWxlbWVudCk7CiAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcgPSB2aWV3Owog
CkBAIC0xNDIzLDcgKzE0MTEsNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInZpZXdpbmctcmVz
b3VyY2UiKTsKIAogICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldykgewotICAgICAgICAgICAg
dGhpcy52aXNpYmxlVmlldy5kZXRhY2goKTsKKyAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRW
aWV3KHRoaXMudmlzaWJsZVZpZXcpOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMudmlzaWJsZVZp
ZXc7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFu
ZWwuanMKaW5kZXggNDk1MjE5Ni4uMjJmMmUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC03NSwxMyArNzUsMTEgQEAgV2ViSW5zcGVjdG9yLlBh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1l
bnQgPSB0aGlzLmRlZmF1bHRGb2N1c2VkRWxlbWVudDsKIAogICAgICAgICB0aGlzLnJlc3RvcmVT
aWRlYmFyV2lkdGgoKTsKLSAgICAgICAgdGhpcy5fcmVzdG9yZVNjcm9sbFBvc2l0aW9ucygpOwog
ICAgICAgICBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uU2VydmVyLm5vdGlmeVBhbmVsU2hvd24odGhp
cy5uYW1lKTsKICAgICB9LAogCiAgICAgaGlkZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
dGhpcy5fc3RvcmVTY3JvbGxQb3NpdGlvbnMoKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcu
cHJvdG90eXBlLmhpZGUuY2FsbCh0aGlzKTsKIAogICAgICAgICBpZiAodGhpcy5fc3RhdHVzQmFy
SXRlbUNvbnRhaW5lciAmJiB0aGlzLl9zdGF0dXNCYXJJdGVtQ29udGFpbmVyLnBhcmVudE5vZGUp
CkBAIC0yMDEsOSArMTk5LDYgQEAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIGlmICghdmlldykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
ICAgIGlmICh2aWV3LmVsZW1lbnQucGFyZW50Tm9kZSAhPT0gcGFyZW50RWxlbWVudCAmJiB2aWV3
LmVsZW1lbnQucGFyZW50Tm9kZSAmJiBwYXJlbnRFbGVtZW50KQotICAgICAgICAgICAgICAgIHZp
ZXcuZGV0YWNoKCk7Ci0KICAgICAgICAgICAgIHZpZXcuY3VycmVudFF1ZXJ5ID0gcXVlcnk7CiAg
ICAgICAgICAgICB2aWV3LnBlcmZvcm1TZWFyY2gocXVlcnksIGJvdW5kRmluaXNoZWRDYWxsYmFj
ayk7CiAgICAgICAgIH0KQEAgLTM1NSw4ICszNTAsOCBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJv
dG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX2N1cnJlbnRTaWRlYmFyV2lkdGggPSB3aWR0aDsK
ICAgICAgICAgdGhpcy5zZXRTaWRlYmFyV2lkdGgod2lkdGgpOwotCiAgICAgICAgIHRoaXMudXBk
YXRlTWFpblZpZXdXaWR0aCh3aWR0aCk7CisgICAgICAgIHRoaXMuZG9SZXNpemUoKTsKICAgICB9
LAogCiAgICAgc2V0U2lkZWJhcldpZHRoOiBmdW5jdGlvbih3aWR0aCkKQEAgLTM4NywxMyArMzgy
LDYgQEAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gU2hvdWxk
IGJlIGltcGxlbWVudGVkIGJ5IGFuY2VzdG9ycy4KICAgICB9LAogCi0gICAgcmVzaXplOiBmdW5j
dGlvbigpCi0gICAgewotICAgICAgICB2YXIgdmlzaWJsZVZpZXcgPSB0aGlzLnZpc2libGVWaWV3
OwotICAgICAgICBpZiAodmlzaWJsZVZpZXcgJiYgInJlc2l6ZSIgaW4gdmlzaWJsZVZpZXcpCi0g
ICAgICAgICAgICB2aXNpYmxlVmlldy5yZXNpemUoKTsKLSAgICB9LAotCiAgICAgY2FuU2hvd0Fu
Y2hvckxvY2F0aW9uOiBmdW5jdGlvbihhbmNob3IpCiAgICAgewogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC00MDksMjUgKzM5Nyw2IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHJldHVybiBbXTsKICAgICB9LAogCi0gICAgX3N0b3JlU2Nyb2xsUG9zaXRpb25z
OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgZWxlbWVudHMgPSB0aGlzLmVsZW1lbnRz
VG9SZXN0b3JlU2Nyb2xsUG9zaXRpb25zRm9yKCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgZWxlbWVudHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBjb250YWluZXIgPSBl
bGVtZW50c1tpXTsKLSAgICAgICAgICAgIGNvbnRhaW5lci5fc2Nyb2xsVG9wID0gY29udGFpbmVy
LnNjcm9sbFRvcDsKLSAgICAgICAgfQotICAgIH0sCi0KLSAgICBfcmVzdG9yZVNjcm9sbFBvc2l0
aW9uczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIGVsZW1lbnRzID0gdGhpcy5lbGVt
ZW50c1RvUmVzdG9yZVNjcm9sbFBvc2l0aW9uc0ZvcigpOwotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgY29udGFpbmVy
ID0gZWxlbWVudHNbaV07Ci0gICAgICAgICAgICBpZiAoY29udGFpbmVyLl9zY3JvbGxUb3ApCi0g
ICAgICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IGNvbnRhaW5lci5fc2Nyb2xsVG9w
OwotICAgICAgICB9Ci0gICAgfSwKLQogICAgIGhhbmRsZVNob3J0Y3V0OiBmdW5jdGlvbihldmVu
dCkKICAgICB7CiAgICAgICAgIHZhciBzaG9ydGN1dEtleSA9IFdlYkluc3BlY3Rvci5LZXlib2Fy
ZFNob3J0Y3V0Lm1ha2VLZXlGcm9tRXZlbnQoZXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbEVuYWJsZXJWaWV3LmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbEVuYWJsZXJWaWV3LmpzCmluZGV4IDVjMjY2
MDQuLmE0MjE3M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUGFuZWxFbmFibGVyVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1BhbmVsRW5hYmxlclZpZXcuanMKQEAgLTgzLDEwICs4MywxMCBAQCBXZWJJbnNwZWN0
b3IuUGFuZWxFbmFibGVyVmlldy5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBXZWJJbnNw
ZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogCi0g
ICAgICAgIHNldFRpbWVvdXQodGhpcy5yZXNpemUuYmluZCh0aGlzKSwgMCk7CisgICAgICAgIHNl
dFRpbWVvdXQodGhpcy5kb1Jlc2l6ZS5iaW5kKHRoaXMpLCAwKTsKICAgICB9LAogCi0gICAgcmVz
aXplOiBmdW5jdGlvbigpCisgICAgb25SZXNpemU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAg
IHRoaXMuaW1hZ2VFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5qcwppbmRleCA2
NTEwOTVhLi44ZDE4NTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Byb2ZpbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZVZpZXcuanMKQEAgLTE2NCwxOSArMTY0LDEzIEBAIFdlYkluc3BlY3Rvci5D
UFVQcm9maWxlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9ib3R0b21V
cFRyZWU7CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCi0gICAg
ewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBh
cmVudEVsZW1lbnQpOwotICAgICAgICB0aGlzLmRhdGFHcmlkLnVwZGF0ZVdpZHRocygpOwotICAg
IH0sCi0KICAgICBoaWRlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9jdXJyZW50U2Vh
cmNoUmVzdWx0SW5kZXggPSAtMTsKICAgICB9LAogCi0gICAgcmVzaXplOiBmdW5jdGlvbigpCisg
ICAgb25SZXNpemU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLmRhdGFHcmlk
KQogICAgICAgICAgICAgdGhpcy5kYXRhR3JpZC51cGRhdGVXaWR0aHMoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwppbmRleCBj
MjU1NTkwLi5iMTRkOGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCkBAIC02NDIsNyArNjQyLDYgQEAgV2ViSW5zcGVjdG9y
LlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnByb2ZpbGVWaWV3cy5z
dHlsZS5sZWZ0ID0gd2lkdGggKyAicHgiOwogICAgICAgICAvLyBNaW4gd2lkdGggPSA8bnVtYmVy
IG9mIGJ1dHRvbnMgb24gdGhlIGxlZnQ+ICogMzEKICAgICAgICAgdGhpcy5wcm9maWxlVmlld1N0
YXR1c0Jhckl0ZW1zQ29udGFpbmVyLnN0eWxlLmxlZnQgPSBNYXRoLm1heCg2ICogMzEsIHdpZHRo
KSArICJweCI7Ci0gICAgICAgIHRoaXMucmVzaXplKCk7CiAgICAgfSwKIAogICAgIF9zZXRSZWNv
cmRpbmdQcm9maWxlOiBmdW5jdGlvbihpc1Byb2ZpbGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qcwppbmRl
eCAzOTFjZWY3Li5mMDdlN2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlQ29va2llc1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUNvb2tpZXNWaWV3LmpzCkBAIC01Nyw3ICs1Nyw3IEBA
IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5fY29va2llc1RhYmxlLnVwZGF0ZVdpZHRocygpOwogICAgIH0sCiAKLSAgICByZXNpemU6
IGZ1bmN0aW9uKCkKKyAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYg
KHRoaXMuX2Nvb2tpZXNUYWJsZSkKICAgICAgICAgICAgIHRoaXMuX2Nvb2tpZXNUYWJsZS51cGRh
dGVXaWR0aHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VQcmV2aWV3Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2VQcmV2aWV3Vmlldy5qcwppbmRleCA2Mzc1ZjdkLi5kMjZhYTA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlUHJldmll
d1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVByZXZpZXdWaWV3LmpzCkBAIC00MCwxNyArNDAsMTkgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNl
UHJldmlld1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXRoaXMucmVzb3VyY2UuY29u
dGVudCkgewogICAgICAgICAgICAgaWYgKCF0aGlzLl9lbXB0eVZpZXcpIHsKICAgICAgICAgICAg
ICAgICB0aGlzLl9lbXB0eVZpZXcgPSB0aGlzLl9jcmVhdGVFbXB0eVZpZXcoKTsKLSAgICAgICAg
ICAgICAgICB0aGlzLl9lbXB0eVZpZXcuc2hvdyh0aGlzLmVsZW1lbnQpOworICAgICAgICAgICAg
ICAgIHRoaXMuYWRkQ2hpbGRWaWV3KHRoaXMuX2VtcHR5Vmlldyk7CisgICAgICAgICAgICAgICAg
dGhpcy5fZW1wdHlWaWV3LnNob3coKTsKICAgICAgICAgICAgICAgICB0aGlzLmlubmVyVmlldyA9
IHRoaXMuX2VtcHR5VmlldzsgCiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBpZiAodGhpcy5fZW1wdHlWaWV3KSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fZW1w
dHlWaWV3LmRldGFjaCgpOworICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRWaWV3KHRo
aXMuX2VtcHR5Vmlldyk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2VtcHR5VmlldzsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICghdGhpcy5fcHJldmlld1ZpZXcpCiAgICAg
ICAgICAgICAgICAgdGhpcy5fcHJldmlld1ZpZXcgPSB0aGlzLl9jcmVhdGVQcmV2aWV3Vmlldygp
OwotICAgICAgICAgICAgdGhpcy5fcHJldmlld1ZpZXcuc2hvdyh0aGlzLmVsZW1lbnQpOworICAg
ICAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fcHJldmlld1ZpZXcpOworICAgICAgICAg
ICAgdGhpcy5fcHJldmlld1ZpZXcuc2hvdygpOwogICAgICAgICAgICAgdGhpcy5pbm5lclZpZXcg
PSB0aGlzLl9wcmV2aWV3VmlldzsgCiAgICAgICAgIH0KICAgICB9LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVJlc3BvbnNlVmlldy5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VSZXNwb25zZVZpZXcu
anMKaW5kZXggZTAxMWJiMi4uZmI4ZTIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVJlc3BvbnNlVmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlUmVzcG9uc2VWaWV3LmpzCkBAIC00Niwx
NSArNDYsMTcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlUmVzcG9uc2VWaWV3LnByb3RvdHlwZSA9
IHsKICAgICAgICAgaWYgKCF0aGlzLnJlc291cmNlLmNvbnRlbnQgfHwgIXRoaXMuc291cmNlVmll
dykgewogICAgICAgICAgICAgaWYgKCF0aGlzLl9lbXB0eVZpZXcpIHsKICAgICAgICAgICAgICAg
ICB0aGlzLl9lbXB0eVZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLkVtcHR5VmlldyhXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlRoaXMgcmVxdWVzdCBoYXMgbm8gcmVzcG9uc2UgZGF0YSBhdmFpbGFibGUu
IikpOwotICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7
CisgICAgICAgICAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fZW1wdHlWaWV3KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcuc2hvdygpOwogICAgICAgICAgICAgICAgIHRo
aXMuaW5uZXJWaWV3ID0gdGhpcy5fZW1wdHlWaWV3OyAKICAgICAgICAgICAgIH0KICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9lbXB0eVZpZXcpIHsKLSAgICAgICAgICAg
ICAgICB0aGlzLl9lbXB0eVZpZXcuZGV0YWNoKCk7CisgICAgICAgICAgICAgICAgdGhpcy5yZW1v
dmVDaGlsZFZpZXcodGhpcy5fZW1wdHlWaWV3KTsKICAgICAgICAgICAgICAgICBkZWxldGUgdGhp
cy5fZW1wdHlWaWV3OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5zb3VyY2VWaWV3
LnNob3codGhpcy5lbGVtZW50KTsKKyAgICAgICAgICAgIHRoaXMuYWRkQ2hpbGRWaWV3KHRoaXMu
c291cmNlVmlldyk7CisgICAgICAgICAgICB0aGlzLnNvdXJjZVZpZXcuc2hvdygpOwogICAgICAg
ICAgICAgdGhpcy5pbm5lclZpZXcgPSB0aGlzLnNvdXJjZVZpZXc7IAogICAgICAgICB9CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVRpbWluZ1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlVGltaW5nVmlldy5qcwppbmRleCBmODVjNTgzLi4yMjkzMjc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVGltaW5nVmlldy5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVGltaW5nVmlldy5q
cwpAQCAtNDQsMTQgKzQ0LDE2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWluZ1ZpZXcucHJv
dG90eXBlID0gewogICAgICAgICBpZiAoIXRoaXMuX3Jlc291cmNlLnRpbWluZykgewogICAgICAg
ICAgICAgaWYgKCF0aGlzLl9lbXB0eVZpZXcpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9lbXB0
eVZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLkVtcHR5VmlldyhXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlRoaXMgcmVxdWVzdCBoYXMgbm8gZGV0YWlsZWQgdGltaW5nIGluZm8uIikpOwotICAgICAgICAg
ICAgICAgIHRoaXMuX2VtcHR5Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CisgICAgICAgICAgICAg
ICAgdGhpcy5hZGRDaGlsZFZpZXcodGhpcy5fZW1wdHlWaWV3KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9lbXB0eVZpZXcuc2hvdygpOworICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWaWV3ID0g
dGhpcy5fZW1wdHlWaWV3OyAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBpZiAodGhpcy5fZW1wdHlWaWV3KSB7
Ci0gICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcuZGV0YWNoKCk7CisgICAgICAgICAgICB0aGlz
LnJlbW92ZUNoaWxkVmlldyh0aGlzLl9lbXB0eVZpZXcpOwogICAgICAgICAgICAgZGVsZXRlIHRo
aXMuX2VtcHR5VmlldzsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCAyN2Y3NDA0Li45ODVkZTk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VzUGFuZWwuanMKQEAgLTEwMSw5ICsxMDEsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNo
b3cuY2FsbCh0aGlzKTsKIAogICAgICAgICB0aGlzLl9wb3B1bGF0ZVJlc291cmNlVHJlZSgpOwot
Ci0gICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3ICYmIHRoaXMudmlzaWJsZVZpZXcucmVzb3Vy
Y2UpCi0gICAgICAgICAgICB0aGlzLl9zaG93UmVzb3VyY2VWaWV3KHRoaXMudmlzaWJsZVZpZXcu
cmVzb3VyY2UpOwogICAgIH0sCiAKICAgICBfb25Mb2FkRXZlbnRGaXJlZDogZnVuY3Rpb24oKQpA
QCAtNTE5LDYgKzUxNiw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3KQogICAgICAgICAgICAgdGhpcy52aXNp
YmxlVmlldy5oaWRlKCk7CiAKKyAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXcodmlldyk7CiAgICAg
ICAgIHZpZXcuc2hvdyh0aGlzLnN0b3JhZ2VWaWV3cyk7CiAgICAgICAgIHRoaXMudmlzaWJsZVZp
ZXcgPSB2aWV3OwogCkBAIC01MzAsOCArNTI4LDkgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1Bh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgIGNsb3NlVmlzaWJsZVZpZXc6IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3KQotICAgICAgICAgICAgdGhpcy52aXNp
YmxlVmlldy5oaWRlKCk7CisgICAgICAgIGlmICghdGhpcy52aXNpYmxlVmlldykKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5yZW1vdmVDaGlsZFZpZXcodGhpcy52aXNpYmxlVmll
dyk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLnZpc2libGVWaWV3OwogICAgIH0sCiAKQEAgLTY4Myw3
ICs2ODIsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAg
IHsKICAgICAgICAgdGhpcy5zdG9yYWdlVmlld3Muc3R5bGUubGVmdCA9IHdpZHRoICsgInB4IjsK
ICAgICAgICAgdGhpcy5zdG9yYWdlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVyLnN0eWxlLmxl
ZnQgPSB3aWR0aCArICJweCI7Ci0gICAgICAgIHRoaXMucmVzaXplKCk7CiAgICAgfSwKIAogICAg
IHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5KSAKQEAgLTEzOTIsOSArMTM5MCwxMCBAQCBX
ZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdmFyIG5ld1ZpZXcgPSB0aGlzLl9jcmVhdGVTb3VyY2VWaWV3KCk7CiAKICAgICAgICAgdmFy
IG9sZFZpZXdQYXJlbnROb2RlID0gb2xkVmlldy52aXNpYmxlID8gb2xkVmlldy5lbGVtZW50LnBh
cmVudE5vZGUgOiBudWxsOwotICAgICAgICBuZXdWaWV3LmluaGVyaXRTY3JvbGxQb3NpdGlvbnNG
cm9tVmlldyhvbGRWaWV3KTsKKyAgICAgICAgbmV3Vmlldy5pbmhlcml0U2Nyb2xsUG9zaXRpb25z
KG9sZFZpZXcpOwogCi0gICAgICAgIHRoaXMuX3NvdXJjZVZpZXcuZGV0YWNoKCk7CisgICAgICAg
IHRoaXMuX3N0b3JhZ2VQYW5lbC5yZW1vdmVDaGlsZFZpZXcodGhpcy5fc291cmNlVmlldyk7Cisg
ICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5hZGRDaGlsZFZpZXcobmV3Vmlldyk7CiAgICAgICAg
IHRoaXMuX3NvdXJjZVZpZXcgPSBuZXdWaWV3OwogCiAgICAgICAgIGlmIChvbGRWaWV3UGFyZW50
Tm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanMKaW5kZXggZWVjYzU0My4uM2ZiN2MzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTIxMywyMCArMjEzLDkg
QEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
c2lkZWJhclJlc2l6ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAodGhpcy5zaWRlYmFyRWxlbWVudC5v
ZmZzZXRXaWR0aCAtIDMpICsgInB4IjsKICAgICAgICAgaWYgKFByZWZlcmVuY2VzLm5hdGl2ZUlu
c3RydW1lbnRhdGlvbkVuYWJsZWQpCiAgICAgICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50Lmlu
c2VydEJlZm9yZSh0aGlzLnNpZGViYXJQYW5lcy5kb21CcmVha3BvaW50cy5lbGVtZW50LCB0aGlz
LnNpZGViYXJQYW5lcy54aHJCcmVha3BvaW50cy5lbGVtZW50KTsKLQotICAgICAgICBpZiAodGhp
cy52aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcuc2hvdyh0aGlzLnZp
ZXdzQ29udGFpbmVyRWxlbWVudCk7CiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLndhdGNoRXhw
cmVzc2lvbnMuc2hvdygpOwogICAgIH0sCiAKLSAgICBoaWRlOiBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldykKLSAgICAgICAgICAgIHRoaXMudmlzaWJsZVZp
ZXcuaGlkZSgpOwotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmhpZGUuY2Fs
bCh0aGlzKTsKLSAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9ucy5oaWRl
KCk7Ci0gICAgfSwKLQogICAgIGdldCBicmVha3BvaW50c0FjdGl2YXRlZCgpCiAgICAgewogICAg
ICAgICByZXR1cm4gdGhpcy50b2dnbGVCcmVha3BvaW50c0J1dHRvbi50b2dnbGVkOwpAQCAtNjY1
LDYgKzY1NCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnNvdXJjZUZpbGUo
c291cmNlRmlsZUlkKTsKICAgICAgICAgdmFyIGRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVsKHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVs
LCBzb3VyY2VGaWxlSWQpOwogICAgICAgICB2YXIgc291cmNlRnJhbWUgPSBuZXcgV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lKGRlbGVnYXRlLCBzb3VyY2VGaWxlLnVybCk7CisgICAgICAgIHRoaXMu
YWRkQ2hpbGRWaWV3KHNvdXJjZUZyYW1lKTsKICAgICAgICAgc291cmNlRnJhbWUuX3NvdXJjZUZp
bGVJZCA9IHNvdXJjZUZpbGVJZDsKICAgICAgICAgc291cmNlRnJhbWUuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLkxvYWRlZCwgdGhpcy5fc291cmNlRnJh
bWVMb2FkZWQsIHRoaXMpOwogICAgICAgICB0aGlzLl9zb3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1l
W3NvdXJjZUZpbGVJZF0gPSBzb3VyY2VGcmFtZTsKQEAgLTY3Nyw2ICs2NjcsNyBAQCBXZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCFzb3VyY2VGcmFt
ZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZGVsZXRlIHRoaXMuX3NvdXJjZUZpbGVJ
ZFRvU291cmNlRnJhbWVbc291cmNlRmlsZUlkXTsKKyAgICAgICAgdGhpcy5yZW1vdmVDaGlsZFZp
ZXcoc291cmNlRnJhbWUpOwogICAgICAgICBzb3VyY2VGcmFtZS5yZW1vdmVFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5FdmVudHMuTG9hZGVkLCB0aGlzLl9zb3VyY2VGcmFt
ZUxvYWRlZCwgdGhpcyk7CiAgICAgfSwKIApAQCAtNzk1LDcgKzc4Niw3IEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnNpZGViYXJSZXNpemVX
aWRnZXRFbGVtZW50LnN0eWxlLnJpZ2h0ID0gbmV3V2lkdGggKyAicHgiOwogICAgICAgICB0aGlz
LnNpZGViYXJSZXNpemVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gKG5ld1dpZHRoIC0gMykgKyAicHgi
OwogCi0gICAgICAgIHRoaXMucmVzaXplKCk7CisgICAgICAgIHRoaXMuZG9SZXNpemUoKTsKICAg
ICB9LAogCiAgICAgX3NldFBhdXNlT25FeGNlcHRpb25zOiBmdW5jdGlvbihwYXVzZU9uRXhjZXB0
aW9uc1N0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Tb3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlRnJhbWUuanMKaW5kZXggMjY5OTA2NS4uMjliNGJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC00MCw2ICs0MCw3IEBA
IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZSA9IGZ1bmN0aW9uKGRlbGVnYXRlLCB1cmwpCiAKICAg
ICB2YXIgdGV4dFZpZXdlckRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyRGVs
ZWdhdGVGb3JTb3VyY2VGcmFtZSh0aGlzKTsKICAgICB0aGlzLl90ZXh0Vmlld2VyID0gbmV3IFdl
Ykluc3BlY3Rvci5UZXh0Vmlld2VyKHRoaXMuX3RleHRNb2RlbCwgV2ViSW5zcGVjdG9yLnBsYXRm
b3JtLCB0aGlzLl91cmwsIHRleHRWaWV3ZXJEZWxlZ2F0ZSk7CisgICAgdGhpcy5hZGRDaGlsZFZp
ZXcodGhpcy5fdGV4dFZpZXdlcik7CiAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
X3RleHRWaWV3ZXIuZWxlbWVudCk7CiAKICAgICB0aGlzLl9jdXJyZW50U2VhcmNoUmVzdWx0SW5k
ZXggPSAtMTsKQEAgLTc3LDI2ICs3OCwxOSBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuY3Jl
YXRlU2VhcmNoUmVnZXggPSBmdW5jdGlvbihxdWVyeSkKIAogCiBXZWJJbnNwZWN0b3IuU291cmNl
RnJhbWUucHJvdG90eXBlID0gewotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisg
ICAgc2hvdzogZnVuY3Rpb24ocGFyZW50KQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZp
ZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKLQorICAgICAgICBX
ZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudCk7CiAgICAg
ICAgIHRoaXMuX2Vuc3VyZUNvbnRlbnRMb2FkZWQoKTsKLQotICAgICAgICB0aGlzLnJlc3RvcmVT
Y3JvbGxQb3NpdGlvbnMoKTsKLQotICAgICAgICAvLyBSZXNpemUgYWZ0ZXIgc2V0dGluZyB0aGUg
aW5pdGlhbCBzY3JvbGwgcG9zaXRpb25zIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHJlbmRlcmluZyB3
b3JrLgotICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLnJlc2l6ZSgpOworICAgICAgICB0aGlzLl90
ZXh0Vmlld2VyLnNob3coKTsKICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIHdp
bGxIaWRlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90
b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwotCisgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS53aWxsSGlkZS5jYWxsKHRoaXMpOwogICAgICAgICBpZiAodGhpcy5sb2FkZWQpCiAgICAg
ICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLmZyZWVDYWNoZWRFbGVtZW50cygpOwogCi0gICAgICAg
IHRoaXMuX3RleHRWaWV3ZXIuaGlkZSgpOwogICAgICAgICB0aGlzLl9oaWRlUG9wdXAoKTsKICAg
ICAgICAgdGhpcy5fY2xlYXJMaW5lSGlnaGxpZ2h0KCk7CiAgICAgfSwKQEAgLTE1Miw3ICsxNDYs
NyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
Ll9yb3dNZXNzYWdlcyA9IHt9OwogICAgICAgICB0aGlzLl9tZXNzYWdlQnViYmxlcyA9IHt9Owog
Ci0gICAgICAgIHRoaXMuX3RleHRWaWV3ZXIucmVzaXplKCk7CisgICAgICAgIHRoaXMuX3RleHRW
aWV3ZXIuZG9SZXNpemUoKTsKICAgICB9LAogCiAgICAgZ2V0IHRleHRNb2RlbCgpCkBAIC0xNjAs
MjggKzE1NCw2IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHJldHVybiB0aGlzLl90ZXh0TW9kZWw7CiAgICAgfSwKIAotICAgIGdldCBzY3JvbGxMZWZ0
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmxvYWRlZCA/IHRoaXMuX3RleHRWaWV3ZXIu
c2Nyb2xsTGVmdCA6IDA7Ci0gICAgfSwKLQotICAgIHNldCBzY3JvbGxMZWZ0KHNjcm9sbExlZnQp
Ci0gICAgewotICAgICAgICBpZiAodGhpcy5sb2FkZWQpCi0gICAgICAgICAgICB0aGlzLl90ZXh0
Vmlld2VyLnNjcm9sbExlZnQgPSBzY3JvbGxMZWZ0OwotICAgIH0sCi0KLSAgICBnZXQgc2Nyb2xs
VG9wKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmxvYWRlZCA/IHRoaXMuX3RleHRWaWV3
ZXIuc2Nyb2xsVG9wIDogMDsKLSAgICB9LAotCi0gICAgc2V0IHNjcm9sbFRvcChzY3JvbGxUb3Ap
Ci0gICAgewotICAgICAgICBpZiAodGhpcy5sb2FkZWQpCi0gICAgICAgICAgICB0aGlzLl90ZXh0
Vmlld2VyLnNjcm9sbFRvcCA9IHNjcm9sbFRvcDsKLSAgICB9LAotCiAgICAgaGlnaGxpZ2h0TGlu
ZTogZnVuY3Rpb24obGluZSkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLmxvYWRlZCkKQEAgLTM0
NSw3ICszMTcsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLl9hZGRFeGlzdGluZ01lc3NhZ2VzVG9Tb3VyY2UoKTsKICAgICAgICAgdGhpcy5f
dXBkYXRlRGlmZkRlY29yYXRpb25zKCk7CiAKLSAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5yZXNp
emUoKTsKKyAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5kb1Jlc2l6ZSgpOwogCiAgICAgICAgIHRo
aXMuX3RleHRWaWV3ZXIuZW5kVXBkYXRlcygpOwogICAgIH0sCkBAIC04NzcsOSArODQ5LDkgQEAg
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIGNv
bmRpdGlvbkVsZW1lbnQ7CiAgICAgfSwKIAotICAgIHJlc2l6ZTogZnVuY3Rpb24oKQorICAgIGlu
aGVyaXRTY3JvbGxQb3NpdGlvbnM6IGZ1bmN0aW9uKHNvdXJjZUZyYW1lKQogICAgIHsKLSAgICAg
ICAgdGhpcy5fdGV4dFZpZXdlci5yZXNpemUoKTsKKyAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5p
bmhlcml0U2Nyb2xsUG9zaXRpb25zKHNvdXJjZUZyYW1lLl90ZXh0Vmlld2VyKTsKICAgICB9LAog
CiAgICAgZG91YmxlQ2xpY2s6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUuanMKaW5kZXggMTM3ZDlhMS4uNTdj
MTk1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJi
ZWRQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVk
UGFuZS5qcwpAQCAtNDYsNiArNDYsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5
cGUgPSB7CiAKICAgICAgICAgdGhpcy5fdGFic0VsZW1lbnQuYXBwZW5kQ2hpbGQodGFiRWxlbWVu
dCk7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHZpZXcuZWxlbWVu
dCk7CisgICAgICAgIHRoaXMuYWRkQ2hpbGRWaWV3KHZpZXcpOwogCiAgICAgICAgIHRoaXMuX3Rh
YnNbaWRdID0geyB0YWJFbGVtZW50OiB0YWJFbGVtZW50LCB2aWV3OiB2aWV3IH07CiAgICAgfSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFZpZXdl
ci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFZpZXdlci5qcwpp
bmRleCBhMzg1NjFhLi5jMDMzODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzCkBAIC0xMjcsMjQgKzEyNywxNSBAQCBXZWJJbnNwZWN0
b3IuVGV4dFZpZXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2d1dHRlclBhbmVsLmZy
ZWVDYWNoZWRFbGVtZW50cygpOwogICAgIH0sCiAKLSAgICBnZXQgc2Nyb2xsVG9wKCkKKyAgICBl
bGVtZW50c1RvUmVzdG9yZVNjcm9sbFBvc2l0aW9uc0ZvcjogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRoaXMuX21haW5QYW5lbC5lbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAg
cmV0dXJuIFt0aGlzLl9tYWluUGFuZWwuZWxlbWVudF07CiAgICAgfSwKIAotICAgIHNldCBzY3Jv
bGxUb3Aoc2Nyb2xsVG9wKQorICAgIGluaGVyaXRTY3JvbGxQb3NpdGlvbnM6IGZ1bmN0aW9uKHRl
eHRWaWV3ZXIpCiAgICAgewotICAgICAgICB0aGlzLl9tYWluUGFuZWwuZWxlbWVudC5zY3JvbGxU
b3AgPSBzY3JvbGxUb3A7Ci0gICAgfSwKLQotICAgIGdldCBzY3JvbGxMZWZ0KCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9tYWluUGFuZWwuZWxlbWVudC5zY3JvbGxMZWZ0OwotICAgIH0s
Ci0KLSAgICBzZXQgc2Nyb2xsTGVmdChzY3JvbGxMZWZ0KQotICAgIHsKLSAgICAgICAgdGhpcy5f
bWFpblBhbmVsLmVsZW1lbnQuc2Nyb2xsTGVmdCA9IHNjcm9sbExlZnQ7CisgICAgICAgIHRoaXMu
X21haW5QYW5lbC5lbGVtZW50Ll9zY3JvbGxUb3AgPSB0ZXh0Vmlld2VyLl9tYWluUGFuZWwuZWxl
bWVudC5zY3JvbGxUb3A7CisgICAgICAgIHRoaXMuX21haW5QYW5lbC5lbGVtZW50Ll9zY3JvbGxM
ZWZ0ID0gdGV4dFZpZXdlci5fbWFpblBhbmVsLmVsZW1lbnQuc2Nyb2xsTGVmdDsKICAgICB9LAog
CiAgICAgYmVnaW5VcGRhdGVzOiBmdW5jdGlvbigpCkBAIC0xNjAsNyArMTUxLDcgQEAgV2ViSW5z
cGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91cGRhdGVQYW5l
bE9mZnNldHMoKTsKICAgICB9LAogCi0gICAgcmVzaXplOiBmdW5jdGlvbigpCisgICAgb25SZXNp
emU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX21haW5QYW5lbC5yZXNpemUoKTsK
ICAgICAgICAgdGhpcy5fZ3V0dGVyUGFuZWwucmVzaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggZDUwNTQxZC4u
YTZiOTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGltZWxpbmVQYW5lbC5qcwpAQCAtNDg2LDcgKzQ4Niw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lLnVwZGF0ZU1h
aW5WaWV3V2lkdGgod2lkdGgpOwogICAgIH0sCiAKLSAgICByZXNpemU6IGZ1bmN0aW9uKCkKKyAg
ICBvblJlc2l6ZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fY2xvc2VSZWNvcmRE
ZXRhaWxzKCk7CiAgICAgICAgIHRoaXMuX3NjaGVkdWxlUmVmcmVzaCgpOwpAQCAtNTE3LDExICs1
MTcsMTQgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLl9tb2RlbC5fcmVzZXQoKTsKICAgICB9LAogCisgICAgZWxlbWVudHNUb1Jlc3RvcmVT
Y3JvbGxQb3NpdGlvbnNGb3I6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBbdGhp
cy5fY29udGFpbmVyRWxlbWVudF07CisgICAgfSwKKwogICAgIHNob3c6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMp
OwotICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3Njcm9sbFRvcCA9PT0gIm51bWJlciIpCi0gICAg
ICAgICAgICB0aGlzLl9jb250YWluZXJFbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMuX3Njcm9sbFRv
cDsKICAgICAgICAgdGhpcy5fcmVmcmVzaCgpOwogICAgICAgICBXZWJJbnNwZWN0b3IuZHJhd2Vy
LmN1cnJlbnRQYW5lbENvdW50ZXJzID0gdGhpcy5yZWNvcmRzQ291bnRlcjsKICAgICB9LApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzCmluZGV4IDE5MzI0NTkuLmQ2
ZWJmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmll
dy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMKQEAg
LTI4LDYgKzI4LDcgQEAgV2ViSW5zcGVjdG9yLlZpZXcgPSBmdW5jdGlvbihlbGVtZW50KQogewog
ICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CiAgICAgdGhpcy5fdmlzaWJsZSA9IGZhbHNlOworICAgIHRoaXMuX2NoaWxkcmVuID0gW107
CiB9CiAKIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsKQEAgLTQ3LDU4ICs0OCwxMjcg
QEAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5oaWRl
KCk7CiAgICAgfSwKIAorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0
aGlzLnJlc3RvcmVTY3JvbGxQb3NpdGlvbnMoKTsKKyAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9u
UmVzaXplID09PSAiZnVuY3Rpb24iKQorICAgICAgICAgICAgdGhpcy5vblJlc2l6ZSgpOworICAg
IH0sCisKKyAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5zdG9y
ZVNjcm9sbFBvc2l0aW9ucygpOworICAgIH0sCisKICAgICBfaW5uZXJTaG93OiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlzaWJsZSIpOwot
ICAgICAgICB0aGlzLnJlc3RvcmVTY3JvbGxQb3NpdGlvbnMoKTsKICAgICB9LAogCiAgICAgc2hv
dzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKICAgICB7CiAgICAgICAgIHRoaXMuX3Zpc2libGUg
PSB0cnVlOwogICAgICAgICBpZiAocGFyZW50RWxlbWVudCAmJiBwYXJlbnRFbGVtZW50ICE9PSB0
aGlzLmVsZW1lbnQucGFyZW50Tm9kZSkgewotICAgICAgICAgICAgdGhpcy5kZXRhY2goKTsKKyAg
ICAgICAgICAgIHRoaXMuX2RldGFjaCgpOwogICAgICAgICAgICAgcGFyZW50RWxlbWVudC5hcHBl
bmRDaGlsZCh0aGlzLmVsZW1lbnQpOwogICAgICAgICB9Ci0gICAgICAgIGlmICghdGhpcy5lbGVt
ZW50LnBhcmVudE5vZGUgJiYgdGhpcy5hdHRhY2gpCi0gICAgICAgICAgICB0aGlzLmF0dGFjaCgp
OworICAgICAgICBpZiAoIXRoaXMuZWxlbWVudC5wYXJlbnROb2RlKSB7CisgICAgICAgICAgICBp
ZiAodGhpcy5hdHRhY2gpCisgICAgICAgICAgICAgICAgdGhpcy5hdHRhY2goKTsKKyAgICAgICAg
ICAgIGVsc2UgaWYgKHRoaXMuX3BhcmVudCkgeworICAgICAgICAgICAgICAgIHRoaXMuX3BhcmVu
dC5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KICAgICAgICAgdGhpcy5faW5uZXJTaG93KCk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hU
b1NlbGZBbmRWaXNpYmxlQ2hpbGRyZW4oIndhc1Nob3duIik7CiAgICAgfSwKIAogICAgIF9pbm5l
ckhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuc3RvcmVTY3JvbGxQb3NpdGlv
bnMoKTsKICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInZpc2libGUiKTsK
ICAgICB9LAogCiAgICAgaGlkZTogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgdGhpcy5kaXNw
YXRjaFRvU2VsZkFuZFZpc2libGVDaGlsZHJlbigid2lsbEhpZGUiKTsKICAgICAgICAgdGhpcy5f
aW5uZXJIaWRlKCk7CiAgICAgICAgIHRoaXMuX3Zpc2libGUgPSBmYWxzZTsKICAgICB9LAogCi0g
ICAgZGV0YWNoOiBmdW5jdGlvbigpCisgICAgX2RldGFjaDogZnVuY3Rpb24oKQogICAgIHsKICAg
ICAgICAgaWYgKHRoaXMuZWxlbWVudC5wYXJlbnROb2RlKQogICAgICAgICAgICAgdGhpcy5lbGVt
ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KTsKICAgICB9LAogCi0gICAg
c3RvcmVTY3JvbGxQb3NpdGlvbnM6IGZ1bmN0aW9uKCkKKyAgICBlbGVtZW50c1RvUmVzdG9yZVNj
cm9sbFBvc2l0aW9uc0ZvcjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fc2Nyb2xs
TGVmdCA9IHRoaXMuc2Nyb2xsTGVmdDsKLSAgICAgICAgdGhpcy5fc2Nyb2xsVG9wID0gdGhpcy5z
Y3JvbGxUb3A7CisgICAgICAgIHJldHVybiBbdGhpcy5lbGVtZW50XTsKICAgICB9LAotICAgIAot
ICAgIGluaGVyaXRTY3JvbGxQb3NpdGlvbnNGcm9tVmlldzogZnVuY3Rpb24odmlldykKKworICAg
IHN0b3JlU2Nyb2xsUG9zaXRpb25zOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9z
Y3JvbGxMZWZ0ID0gdmlldy5fc2Nyb2xsTGVmdDsKLSAgICAgICAgdGhpcy5fc2Nyb2xsVG9wID0g
dmlldy5fc2Nyb2xsVG9wOworICAgICAgICB2YXIgZWxlbWVudHMgPSB0aGlzLmVsZW1lbnRzVG9S
ZXN0b3JlU2Nyb2xsUG9zaXRpb25zRm9yKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
ZWxlbWVudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBjb250YWluZXIgPSBlbGVt
ZW50c1tpXTsKKyAgICAgICAgICAgIGNvbnRhaW5lci5fc2Nyb2xsVG9wID0gY29udGFpbmVyLnNj
cm9sbFRvcDsKKyAgICAgICAgICAgIGNvbnRhaW5lci5fc2Nyb2xsTGVmdCA9IGNvbnRhaW5lci5z
Y3JvbGxMZWZ0OworICAgICAgICB9CiAgICAgfSwKIAogICAgIHJlc3RvcmVTY3JvbGxQb3NpdGlv
bnM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuc2Nyb2xsTGVmdCA9IHRoaXMuX3Nj
cm9sbExlZnQ7Ci0gICAgICAgIHRoaXMuc2Nyb2xsVG9wID0gdGhpcy5fc2Nyb2xsVG9wOworICAg
ICAgICB2YXIgZWxlbWVudHMgPSB0aGlzLmVsZW1lbnRzVG9SZXN0b3JlU2Nyb2xsUG9zaXRpb25z
Rm9yKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgICAgIHZhciBjb250YWluZXIgPSBlbGVtZW50c1tpXTsKKyAgICAgICAgICAg
IGlmIChjb250YWluZXIuX3Njcm9sbFRvcCkKKyAgICAgICAgICAgICAgICBjb250YWluZXIuc2Ny
b2xsVG9wID0gY29udGFpbmVyLl9zY3JvbGxUb3A7CisgICAgICAgICAgICBpZiAoY29udGFpbmVy
Ll9zY3JvbGxMZWZ0KQorICAgICAgICAgICAgICAgIGNvbnRhaW5lci5zY3JvbGxMZWZ0ID0gY29u
dGFpbmVyLl9zY3JvbGxMZWZ0OworICAgICAgICB9CisgICAgfSwKKworICAgIGFkZENoaWxkVmll
dzogZnVuY3Rpb24odmlldywgcGFyZW50RWxlbWVudCkKKyAgICB7CisgICAgICAgIGlmICh2aWV3
Ll9wYXJlbnQgPT09IHRoaXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmICh2aWV3
Ll9wYXJlbnQpCisgICAgICAgICAgICB2aWV3Ll9wYXJlbnQucmVtb3ZlQ2hpbGRWaWV3KHZpZXcp
OworICAgICAgICB0aGlzLl9jaGlsZHJlbi5wdXNoKHZpZXcpOworICAgICAgICB2aWV3Ll9wYXJl
bnQgPSB0aGlzOworICAgIH0sCisKKyAgICByZW1vdmVDaGlsZFZpZXc6IGZ1bmN0aW9uKHZpZXcp
CisgICAgeworICAgICAgICB2YXIgY2hpbGRJbmRleCA9IHRoaXMuX2NoaWxkcmVuLmluZGV4T2Yo
dmlldyk7CisgICAgICAgIGlmIChjaGlsZEluZGV4IDwgMCkgCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgdGhpcy5fY2hpbGRyZW4uc3BsaWNlKGNoaWxkSW5kZXgsIDEpOworICAgICAg
ICB2aWV3Ll9wYXJlbnQgPSBudWxsOworICAgICAgICB2aWV3Ll9kZXRhY2goKTsKKyAgICB9LAor
CisgICAgZG9SZXNpemU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hU
b1NlbGZBbmRWaXNpYmxlQ2hpbGRyZW4oIm9uUmVzaXplIik7CisgICAgfSwKKworICAgIGRpc3Bh
dGNoVG9TZWxmQW5kVmlzaWJsZUNoaWxkcmVuOiBmdW5jdGlvbihtZXRob2ROYW1lKQorICAgIHsK
KyAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IGlmICh0eXBlb2YgdGhpc1ttZXRob2ROYW1lXSA9PT0gImZ1bmN0aW9uIikKKyAgICAgICAgICAg
IHRoaXNbbWV0aG9kTmFtZV0uY2FsbCh0aGlzKTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaFRvVmlz
aWJsZUNoaWxkcmVuKG1ldGhvZE5hbWUpOworICAgIH0sCisKKyAgICBkaXNwYXRjaFRvVmlzaWJs
ZUNoaWxkcmVuOiBmdW5jdGlvbihtZXRob2ROYW1lKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlz
LnZpc2libGUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdGhpcy5fY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl9jaGlsZHJl
bltpXS5kaXNwYXRjaFRvU2VsZkFuZFZpc2libGVDaGlsZHJlbihtZXRob2ROYW1lKTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKaW5kZXggYzU0OTZhMi4uMDc2ODAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTYyNyw4ICs2MjcsOCBAQCBXZWJJbnNwZWN0
b3IuZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tlbmQgPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQog
V2ViSW5zcGVjdG9yLndpbmRvd1Jlc2l6ZSA9IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIGlmICh0
aGlzLmN1cnJlbnRQYW5lbCkKLSAgICAgICAgdGhpcy5jdXJyZW50UGFuZWwucmVzaXplKCk7Ci0g
ICAgdGhpcy5kcmF3ZXIucmVzaXplKCk7CisgICAgICAgIHRoaXMuY3VycmVudFBhbmVsLmRvUmVz
aXplKCk7CisgICAgdGhpcy5kcmF3ZXIuZG9SZXNpemUoKTsKICAgICB0aGlzLnRvb2xiYXIucmVz
aXplKCk7CiB9CiAK
</data>
<flag name="review"
          id="99782"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>