<?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>48226</bug_id>
          
          <creation_ts>2010-10-25 02:48:49 -0700</creation_ts>
          <short_desc>Web Inspector: display cookies associated with request</short_desc>
          <delta_ts>2010-10-25 10:18:23 -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>DUPLICATE</resolution>
          <dup_id>16531</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>ap</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>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>298766</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-25 02:48:49 -0700</bug_when>
    <thetext>Provide a tab in resource view with a list of cookies if Cookie/Set-Cookie headers are available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298768</commentid>
    <comment_count>1</comment_count>
      <attachid>71723</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-25 02:56:06 -0700</bug_when>
    <thetext>Created attachment 71723
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298770</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-25 02:59:54 -0700</bug_when>
    <thetext>Attachment 71723 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/inspector/front-end/ResourceCookiesView.js:1:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
WebCore/inspector/front-end/CookieItemsViewBase.js:1:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
Total errors found: 251 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298786</commentid>
    <comment_count>3</comment_count>
      <attachid>71731</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-25 04:31:06 -0700</bug_when>
    <thetext>Created attachment 71731
screenshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298787</commentid>
    <comment_count>4</comment_count>
      <attachid>71732</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-25 04:34:50 -0700</bug_when>
    <thetext>Created attachment 71732
patch

- Fixed &quot;disclosure&quot; flag on name column
- Fixed EOLs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298796</commentid>
    <comment_count>5</comment_count>
      <attachid>71735</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-25 05:09:20 -0700</bug_when>
    <thetext>Created attachment 71735
patch

- Fixed resize() not being called sometimes
- Fixed cookies being shown in Sources Panel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298835</commentid>
    <comment_count>6</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-10-25 07:20:49 -0700</bug_when>
    <thetext>This looks nice. But they why re some of the column dividers 1px off from the header dividers? Also should size have a &quot;B&quot; unit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298836</commentid>
    <comment_count>7</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-10-25 07:21:42 -0700</bug_when>
    <thetext>THE HTTP and Secure columns can be smaller.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298893</commentid>
    <comment_count>8</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-25 09:08:23 -0700</bug_when>
    <thetext>(In reply to comment #7)

&gt; This looks nice. But they why re some of the column dividers 1px off from the header dividers? 

My bad, that was a bug with DataGrid.updateWidths() not being called, fixed it since then.

&gt; Also should size have a &quot;B&quot; unit?

This was on purpose -- I thought that given cookies are supposed to be under few KB, it would be a good idea not to use bytesToString() -- first, to make large cookie stand out visually by having a large number in table, but also to reduce clutter due to &quot;B&quot; being everywhere. I realize we could be doing this for consistency with other places, though, so I&apos;ll bring bytesToString() back if you say so.

&gt; THE HTTP and Secure columns can be smaller.

As it transpired, DataGrid.autoSizeColumns() was only taking top-level rows into account. Fixed that and relaxed min/max width limits -- I think it looks better now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298896</commentid>
    <comment_count>9</comment_count>
      <attachid>71759</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-25 09:10:34 -0700</bug_when>
    <thetext>Created attachment 71759
updated screenshot

- Fixed table header/body width inconsistency
- Fixed autosize</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298902</commentid>
    <comment_count>10</comment_count>
      <attachid>71760</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-25 09:13:20 -0700</bug_when>
    <thetext>Created attachment 71760
patch

- Take children into consideration when computing table width</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298904</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-25 09:15:04 -0700</bug_when>
    <thetext>Attachment 71759 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
Total errors found: 0 in 0 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298905</commentid>
    <comment_count>12</comment_count>
      <attachid>71760</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-25 09:27:13 -0700</bug_when>
    <thetext>Comment on attachment 71760
patch

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

&gt; WebCore/ChangeLog:64
&gt; +2010-10-25  Andrey Kosyakov  &lt;caseq@chromium.org&gt;

Two changelogs.

&gt; WebCore/WebCore.gypi:4424
&gt; +            &apos;inspector/front-end/ResourceCookiesView.js&apos;,

This is a tab, not a view.

&gt; WebCore/inspector/front-end/CookieItemsViewBase.js:33
&gt; +WebInspector.CookieItemsViewBase = function()

This could simply reside in CookieItemsView in form of helper methods / component.

&gt; WebCore/inspector/front-end/CookieParser.js:57
&gt; +                this._addCookie(kv, &quot;request&quot;);

Could you use constants for these?

&gt; WebCore/inspector/front-end/DataGrid.js:320
&gt; +        var children = maxDescentLevel ? this._enumerateChildren(this, [], maxDescentLevel) : this.children;

So if I pass &quot;1&quot; as maxDescentLevel, the code will work as if it was &quot;1&quot;.

&gt; WebCore/inspector/front-end/DataGrid.js:404
&gt; +        if (!this._columnWidthsInitialized &amp;&amp; this.element.enclosingNodeOrSelfWithNodeName(&quot;body&quot;)) {

You could also check this.element.offsetWidth for === 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298927</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-25 09:59:40 -0700</bug_when>
    <thetext>&gt; Provide a tab in resource view with a list of cookies if Cookie/Set-Cookie headers are available.

How is this different from bug 16531?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298942</commentid>
    <comment_count>14</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-25 10:18:23 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 16531 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71723</attachid>
            <date>2010-10-25 02:56:06 -0700</date>
            <delta_ts>2010-10-25 04:34:50 -0700</delta_ts>
            <desc>patch</desc>
            <filename>cookies-ui.diff</filename>
            <type>text/plain</type>
            <size>31501</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTBiYmMxNS4uYmE5MDAxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMC0xMC0yNSAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgY29va2llcyBhc3NvY2lh
dGVkIHdpdGggcmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDgyMjYKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0Nvb2tpZUl0ZW1zVmlldy5qczogRmFjdG9yIG91dCBjb21tb24gY29va2llcyBncmlkIGxvZ2lj
IHRvIENvb2tpZUl0ZW1zVmlld0Jhc2UKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVJdGVt
c1ZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUu
X3BvcHVsYXRlRGF0YUdyaWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29va2ll
SXRlbXNWaWV3QmFzZS5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llSXRl
bXNWaWV3QmFzZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIu
anM6IFN0b3JlIGNvb2tpZSB0eXBlIChyZXF1ZXN0L3Jlc3BvbnNlKSB3aXRoaW4gYSBjb29raWUK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlLnBhcnNlQ29va2ll
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlLnBhcnNlU2V0
Q29va2llKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlLl9h
ZGRDb29raWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZSk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRh
R3JpZC5wcm90b3R5cGUudXBkYXRlV2lkdGhzKTogU2tpcCBhdHRlbXB0IHRvIGNhbGN1bGF0ZSBj
b2x1bW4gd2lkdGhzIGlmIGdyaWQgaXMgbm90IGF0dGFjaGVkIHRvIERPTSB0cmVlIHlldC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkZvbnRWaWV3LnByb3RvdHlwZS5yZXNpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VDb29raWVzVmlldyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZVZpZXcuanM6IEFkZGVkICJDb29raWVzIiB0YWIuIEFkanVzdGVkIHJlc2l6ZSBs
b2dpYyB0byBwYXNzIHJlc2l6ZSgpIGNhbGxzIHRvIENvb2tpZXMgdGFiLgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUucmVzaXplKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLl9zZWxlY3RUYWIpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUuX3NlbGVjdENvb2tpZXNUYWIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUuX2lubmVyU2VsZWN0Q29u
dGVudFRhYik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5f
cmVmcmVzaFJlcXVlc3RIZWFkZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVZp
ZXcucHJvdG90eXBlLl9yZWZyZXNoUmVzcG9uc2VIZWFkZXJzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLl9yZWZyZXNoSGVhZGVycyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5fcmVmcmVzaENvb2tpZXMpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZS5yZXNpemUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvV2ViS2l0LnFyYzoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5jc3M6CisgICAgICAgICgucmVzb3VyY2UtdmlldyAucmVzb3VyY2Utdmlldy1jb29r
aWVzKToKKyAgICAgICAgKC5yZXNvdXJjZS12aWV3LmhlYWRlcnMtdmlzaWJsZSAucmVzb3VyY2Ut
dmlldy1jb29raWVzKToKKyAgICAgICAgKC5yZXNvdXJjZS12aWV3LWNvb2tpZXMudGFibGUgLmRh
dGEtZ3JpZCk6CisgICAgICAgICgucmVzb3VyY2Utdmlldy1jb29raWVzIC5kYXRhLWdyaWQgLnJv
dy1ncm91cCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoK
KwogMjAxMC0xMC0yNCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEtpbHplci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2Q2NTY2OC4uMTY5YjEwMiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTQzNzEsNiArNDM3MSw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db250
ZXh0TWVudS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVt
c1ZpZXcuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNW
aWV3QmFzZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJz
ZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTQ29tcGxldGlvbnMu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcycs
CkBAIC00NDIwLDYgKzQ0MjEsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
UmVtb3RlT2JqZWN0LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ2F0ZWdv
cnkuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVz
Vmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZU1hbmFn
ZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VWaWV3LmpzJywK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGM3MDAwNzQuLjg5YWZmOWQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjM0OTQsNiArNjM0OTQs
MTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcQ29va2llSXRlbXNWaWV3QmFzZS5qcyINCisJCQkJ
CT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNw
ZWN0b3JcZnJvbnQtZW5kXENvb2tpZVBhcnNlci5qcyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0K
QEAgLTYzNzEwLDYgKzYzNzE0LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8Rmls
ZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFJlc291cmNlQ29v
a2llc1ZpZXcuanMiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJl
bGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxSZXNvdXJjZU1hbmFnZXIuanMiDQog
CQkJCQk+DQogCQkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29va2llSXRlbXNWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
b2tpZUl0ZW1zVmlldy5qcwppbmRleCAwYjA1ZjJhLi4zMTcxNjU5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMKQEAgLTI5LDEwICsyOSw5IEBA
CiAKIFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXcgPSBmdW5jdGlvbih0cmVlRWxlbWVudCwg
Y29va2llRG9tYWluKQogewotICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CisgICAg
V2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UuY2FsbCh0aGlzKTsKIAogICAgIHRoaXMu
ZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzdG9yYWdlLXZpZXciKTsKLSAgICB0aGlzLmVsZW1lbnQu
YWRkU3R5bGVDbGFzcygidGFibGUiKTsKIAogICAgIHRoaXMuZGVsZXRlQnV0dG9uID0gbmV3IFdl
Ykluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEZWxldGUi
KSwgImRlbGV0ZS1zdG9yYWdlLXN0YXR1cy1iYXItaXRlbSIpOwogICAgIHRoaXMuZGVsZXRlQnV0
dG9uLnZpc2libGUgPSBmYWxzZTsKQEAgLTE0MywxMDEgKzE0Miw5IEBAIFdlYkluc3BlY3Rvci5D
b29raWVJdGVtc1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAotICAgIF9j
cmVhdGVEYXRhR3JpZDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIGNvbHVtbnMgPSB7
IDA6IHt9LCAxOiB7fSwgMjoge30sIDM6IHt9LCA0OiB7fSwgNToge30sIDY6IHt9LCA3OiB7fSB9
OwotICAgICAgICBjb2x1bW5zWzBdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOYW1l
Iik7Ci0gICAgICAgIGNvbHVtbnNbMF0uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBjb2x1bW5z
WzFdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJWYWx1ZSIpOwotICAgICAgICBjb2x1
bW5zWzFdLnNvcnRhYmxlID0gdHJ1ZTsKLSAgICAgICAgY29sdW1uc1syXS50aXRsZSA9IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiRG9tYWluIik7Ci0gICAgICAgIGNvbHVtbnNbMl0uc29ydGFibGUg
PSB0cnVlOwotICAgICAgICBjb2x1bW5zWzNdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJQYXRoIik7Ci0gICAgICAgIGNvbHVtbnNbM10uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBj
b2x1bW5zWzRdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFeHBpcmVzIik7Ci0gICAg
ICAgIGNvbHVtbnNbNF0uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBjb2x1bW5zWzVdLnRpdGxl
ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaXplIik7Ci0gICAgICAgIGNvbHVtbnNbNV0uYWxp
Z25lZCA9ICJyaWdodCI7Ci0gICAgICAgIGNvbHVtbnNbNV0uc29ydGFibGUgPSB0cnVlOwotICAg
ICAgICBjb2x1bW5zWzZdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJIVFRQIik7Ci0g
ICAgICAgIGNvbHVtbnNbNl0uYWxpZ25lZCA9ICJjZW50ZXJlZCI7Ci0gICAgICAgIGNvbHVtbnNb
Nl0uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBjb2x1bW5zWzddLnRpdGxlID0gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJTZWN1cmUiKTsKLSAgICAgICAgY29sdW1uc1s3XS5hbGlnbmVkID0gImNl
bnRlcmVkIjsKLSAgICAgICAgY29sdW1uc1s3XS5zb3J0YWJsZSA9IHRydWU7Ci0KLSAgICAgICAg
dGhpcy5fZGF0YUdyaWQgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkKGNvbHVtbnMsIG51bGws
IHRoaXMuX2RlbGV0ZUNvb2tpZUNhbGxiYWNrLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9k
YXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKCJzb3J0aW5nIGNoYW5nZWQiLCB0aGlzLl9wb3B1bGF0
ZURhdGFHcmlkLCB0aGlzKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
X2RhdGFHcmlkLmVsZW1lbnQpOwotICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVXaWR0aHMo
KTsKLSAgICB9LAotCiAgICAgX3BvcHVsYXRlRGF0YUdyaWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0g
ICAgICAgIHZhciBzZWxlY3RlZENvb2tpZSA9IHRoaXMuX2RhdGFHcmlkLnNlbGVjdGVkTm9kZSA/
IHRoaXMuX2RhdGFHcmlkLnNlbGVjdGVkTm9kZS5jb29raWUgOiBudWxsOwotICAgICAgICB2YXIg
c29ydERpcmVjdGlvbiA9IHRoaXMuX2RhdGFHcmlkLnNvcnRPcmRlciA9PT0gImFzY2VuZGluZyIg
PyAxIDogLTE7Ci0KLSAgICAgICAgZnVuY3Rpb24gbG9jYWxlQ29tcGFyZShmaWVsZCwgY29va2ll
MSwgY29va2llMikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24g
KiAoY29va2llMVtmaWVsZF0gKyAiIikubG9jYWxlQ29tcGFyZShjb29raWUyW2ZpZWxkXSArICIi
KQotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gbnVtYmVyQ29tcGFyZShmaWVsZCwgY29v
a2llMSwgY29va2llMikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rp
b24gKiAoY29va2llMVtmaWVsZF0gLSBjb29raWUyW2ZpZWxkXSk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBmdW5jdGlvbiBleHBpcmVzQ29tcGFyZShjb29raWUxLCBjb29raWUyKQotICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoY29va2llMS5zZXNzaW9uICE9PSBjb29raWUyLnNlc3Npb24pCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMS5zZXNzaW9uID8g
MSA6IC0xKTsKLQotICAgICAgICAgICAgaWYgKGNvb2tpZTEuc2Vzc2lvbikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gMDsKLQotICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29v
a2llMS5leHBpcmVzIC0gY29va2llMi5leHBpcmVzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZh
ciBjb21wYXJhdG9yOwotICAgICAgICBzd2l0Y2ggKHBhcnNlSW50KHRoaXMuX2RhdGFHcmlkLnNv
cnRDb2x1bW5JZGVudGlmaWVyKSkgewotICAgICAgICAgICAgY2FzZSAwOiBjb21wYXJhdG9yID0g
bG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7IGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSAxOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJ2YWx1ZSIpOyBicmVh
azsKLSAgICAgICAgICAgIGNhc2UgMjogY29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0
aGlzLCAiZG9tYWluIik7IGJyZWFrOwotICAgICAgICAgICAgY2FzZSAzOiBjb21wYXJhdG9yID0g
bG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJwYXRoIik7IGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSA0OiBjb21wYXJhdG9yID0gZXhwaXJlc0NvbXBhcmU7IGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSA1OiBjb21wYXJhdG9yID0gbnVtYmVyQ29tcGFyZS5iaW5kKHRoaXMsICJzaXplIik7IGJyZWFr
OwotICAgICAgICAgICAgY2FzZSA2OiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRo
aXMsICJodHRwT25seSIpOyBicmVhazsKLSAgICAgICAgICAgIGNhc2UgNzogY29tcGFyYXRvciA9
IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAic2VjdXJlIik7IGJyZWFrOwotICAgICAgICAgICAg
ZGVmYXVsdDogbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7Ci0gICAgICAgIH0KLQot
ICAgICAgICB0aGlzLl9jb29raWVzLnNvcnQoY29tcGFyYXRvcik7Ci0KLSAgICAgICAgdGhpcy5f
ZGF0YUdyaWQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdmFyIG5vZGVUb1NlbGVjdDsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9jb29raWVzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICB2YXIgZGF0YSA9IHt9OwotICAgICAgICAgICAgdmFyIGNvb2tpZSA9IHRoaXMu
X2Nvb2tpZXNbaV07Ci0gICAgICAgICAgICBkYXRhWzBdID0gY29va2llLm5hbWU7Ci0gICAgICAg
ICAgICBkYXRhWzFdID0gY29va2llLnZhbHVlOwotICAgICAgICAgICAgZGF0YVsyXSA9IGNvb2tp
ZS5kb21haW47Ci0gICAgICAgICAgICBkYXRhWzNdID0gY29va2llLnBhdGg7Ci0gICAgICAgICAg
ICBkYXRhWzRdID0gKGNvb2tpZS5zZXNzaW9uID8gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZXNz
aW9uIikgOiBuZXcgRGF0ZShjb29raWUuZXhwaXJlcykudG9HTVRTdHJpbmcoKSk7Ci0gICAgICAg
ICAgICBkYXRhWzVdID0gTnVtYmVyLmJ5dGVzVG9TdHJpbmcoY29va2llLnNpemUsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZyk7Ci0gICAgICAgICAgICBkYXRhWzZdID0gKGNvb2tpZS5odHRwT25seSA/
ICJcdTI3MTMiIDogIiIpOyAvLyBDaGVja21hcmsKLSAgICAgICAgICAgIGRhdGFbN10gPSAoY29v
a2llLnNlY3VyZSA/ICJcdTI3MTMiIDogIiIpOyAvLyBDaGVja21hcmsKLQotICAgICAgICAgICAg
dmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhKTsKLSAgICAgICAg
ICAgIG5vZGUuY29va2llID0gY29va2llOwotICAgICAgICAgICAgbm9kZS5zZWxlY3RhYmxlID0g
dHJ1ZTsKLSAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFwcGVuZENoaWxkKG5vZGUpOwotICAg
ICAgICAgICAgaWYgKGNvb2tpZSA9PT0gc2VsZWN0ZWRDb29raWUpCi0gICAgICAgICAgICAgICAg
bm9kZVRvU2VsZWN0ID0gbm9kZTsKLSAgICAgICAgfQotICAgICAgICBpZiAobm9kZVRvU2VsZWN0
KQotICAgICAgICAgICAgbm9kZVRvU2VsZWN0LnNlbGVjdGVkID0gdHJ1ZTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuY2hpbGRyZW5bMF0uc2VsZWN0ZWQgPSB0cnVl
OworICAgICAgICB0aGlzLl9wb3B1bGF0ZUNvb2tpZXModGhpcy5fZGF0YUdyaWQsIHRoaXMuX2Nv
b2tpZXMpOwogICAgIH0sCiAKICAgICBfY3JlYXRlU2ltcGxlRGF0YUdyaWQ6IGZ1bmN0aW9uKCkK
QEAgLTI3MywxMiArMTgwLDYgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmNoaWxkcmVuWzBdLnNlbGVjdGVkID0gdHJ1
ZTsKICAgICB9LAogCi0gICAgcmVzaXplOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAo
dGhpcy5fZGF0YUdyaWQpCi0gICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVXaWR0aHMo
KTsKLSAgICB9LAotCiAgICAgX2RlbGV0ZUJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKGV2ZW50KQog
ICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3JpZCB8fCAhdGhpcy5fZGF0YUdyaWQuc2Vs
ZWN0ZWROb2RlKQpAQCAtMzAwLDQgKzIwMSw0IEBAIFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1Zp
ZXcucHJvdG90eXBlID0gewogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmll
dy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOworV2Vi
SW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlld0Jhc2UuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3QmFzZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAwMDAwMDAwLi45MjJlYzE3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlld0Jhc2UuanMKQEAgLTAsMCArMSwxNjAgQEAK
Ky8qDQorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuDQorICogQ29weXJpZ2h0IChDKSAyMDA5IEpvc2VwaCBQZWNvcmFybw0KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyAqDQorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0DQorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQ0KKyAqIG1ldDoNCisgKg0KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
DQorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLg0KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUNCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyDQorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQ0KKyAqIGRp
c3RyaWJ1dGlvbi4NCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzDQorICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20NCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KKyAqDQorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUw0KKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UDQorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwNCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZDQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQ0KKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
DQorICovDQorDQorV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UgPSBmdW5jdGlvbigp
DQorew0KKyAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOw0KKw0KKyAgICB0aGlzLmVs
ZW1lbnQuYWRkU3R5bGVDbGFzcygidGFibGUiKTsNCit9DQorDQorV2ViSW5zcGVjdG9yLkNvb2tp
ZUl0ZW1zVmlld0Jhc2UucHJvdG90eXBlID0gew0KKyAgICByZXNpemU6IGZ1bmN0aW9uKCkNCisg
ICAgew0KKyAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3JpZCkNCisgICAgICAgICAgICByZXR1cm47
DQorDQorICAgICAgICBpZiAodGhpcy5fYXV0b1NpemluZ0RvbmUpDQorICAgICAgICAgICAgdGhp
cy5fZGF0YUdyaWQudXBkYXRlV2lkdGhzKCk7DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAg
ICB0aGlzLl9hdXRvU2l6aW5nRG9uZSA9IHRydWU7DQorICAgICAgICAgICAgdGhpcy5fZGF0YUdy
aWQuYXV0b1NpemVDb2x1bW5zKDYsIDMzKTsNCisgICAgICAgIH0NCisgICAgfSwNCisNCisgICAg
X2NyZWF0ZURhdGFHcmlkOiBmdW5jdGlvbigpDQorICAgIHsNCisgICAgICAgIHZhciBjb2x1bW5z
ID0geyAwOiB7fSwgMToge30sIDI6IHt9LCAzOiB7fSwgNDoge30sIDU6IHt9LCA2OiB7fSwgNzog
e30gfTsNCisgICAgICAgIGNvbHVtbnNbMF0udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
Ik5hbWUiKTsNCisgICAgICAgIGNvbHVtbnNbMF0uc29ydGFibGUgPSB0cnVlOw0KKyAgICAgICAg
Y29sdW1uc1sxXS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVmFsdWUiKTsNCisgICAg
ICAgIGNvbHVtbnNbMV0uc29ydGFibGUgPSB0cnVlOw0KKyAgICAgICAgY29sdW1uc1syXS50aXRs
ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRG9tYWluIik7DQorICAgICAgICBjb2x1bW5zWzJd
LnNvcnRhYmxlID0gdHJ1ZTsNCisgICAgICAgIGNvbHVtbnNbM10udGl0bGUgPSBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlBhdGgiKTsNCisgICAgICAgIGNvbHVtbnNbM10uc29ydGFibGUgPSB0cnVl
Ow0KKyAgICAgICAgY29sdW1uc1s0XS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRXhw
aXJlcyIpOw0KKyAgICAgICAgY29sdW1uc1s0XS5zb3J0YWJsZSA9IHRydWU7DQorICAgICAgICBj
b2x1bW5zWzVdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaXplIik7DQorICAgICAg
ICBjb2x1bW5zWzVdLmFsaWduZWQgPSAicmlnaHQiOw0KKyAgICAgICAgY29sdW1uc1s1XS5zb3J0
YWJsZSA9IHRydWU7DQorICAgICAgICBjb2x1bW5zWzZdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJIVFRQIik7DQorICAgICAgICBjb2x1bW5zWzZdLmFsaWduZWQgPSAiY2VudGVyZWQi
Ow0KKyAgICAgICAgY29sdW1uc1s2XS5zb3J0YWJsZSA9IHRydWU7DQorICAgICAgICBjb2x1bW5z
WzddLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZWN1cmUiKTsNCisgICAgICAgIGNv
bHVtbnNbN10uYWxpZ25lZCA9ICJjZW50ZXJlZCI7DQorICAgICAgICBjb2x1bW5zWzddLnNvcnRh
YmxlID0gdHJ1ZTsNCisNCisgICAgICAgIHZhciBkZWxldGVDYWxsYmFjayA9IHRoaXMuX2RlbGV0
ZUNvb2tpZUNhbGxiYWNrID8gdGhpcy5fZGVsZXRlQ29va2llQ2FsbGJhY2suYmluZCh0aGlzKSA6
IG51bGw7DQorICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IG5ldyBXZWJJbnNwZWN0b3IuRGF0YUdy
aWQoY29sdW1ucywgbnVsbCwgZGVsZXRlQ2FsbGJhY2spOw0KKyAgICAgICAgdGhpcy5fZGF0YUdy
aWQuYWRkRXZlbnRMaXN0ZW5lcigic29ydGluZyBjaGFuZ2VkIiwgdGhpcy5fcG9wdWxhdGVEYXRh
R3JpZCwgdGhpcyk7DQorICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZGF0
YUdyaWQuZWxlbWVudCk7DQorICAgIH0sDQorDQorICAgIF9wb3B1bGF0ZUNvb2tpZXM6IGZ1bmN0
aW9uKHBhcmVudE5vZGUsIGNvb2tpZXMpDQorICAgIHsNCisgICAgICAgIHZhciBzZWxlY3RlZENv
b2tpZSA9IHRoaXMuX2RhdGFHcmlkLnNlbGVjdGVkTm9kZSA/IHRoaXMuX2RhdGFHcmlkLnNlbGVj
dGVkTm9kZS5jb29raWUgOiBudWxsOw0KKyAgICAgICAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZHJl
bigpOw0KKyAgICAgICAgaWYgKCFjb29raWVzKQ0KKyAgICAgICAgICAgIHJldHVybjsNCisgICAg
ICAgIHRoaXMuX3NvcnRDb29raWVzKGNvb2tpZXMpOw0KKyAgICAgICAgdmFyIHRvdGFsU2l6ZSA9
IDA7DQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvb2tpZXMubGVuZ3RoOyArK2kpIHsN
CisgICAgICAgICAgICB2YXIgY29va2llTm9kZSA9IHRoaXMuX2NyZWF0ZUdyaWROb2RlKGNvb2tp
ZXNbaV0pOw0KKyAgICAgICAgICAgIHBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoY29va2llTm9kZSk7
DQorICAgICAgICAgICAgaWYgKHNlbGVjdGVkQ29va2llID09PSBjb29raWVzW2ldKQ0KKyAgICAg
ICAgICAgICAgICBjb29raWVOb2RlLnNlbGVjdGVkID0gdHJ1ZTsNCisgICAgICAgIH0NCisgICAg
fSwNCisNCisgICAgX3NvcnRDb29raWVzOiBmdW5jdGlvbihjb29raWVzKQ0KKyAgICB7DQorICAg
ICAgICB2YXIgc29ydERpcmVjdGlvbiA9IHRoaXMuX2RhdGFHcmlkLnNvcnRPcmRlciA9PT0gImFz
Y2VuZGluZyIgPyAxIDogLTE7DQorDQorICAgICAgICBmdW5jdGlvbiBsb2NhbGVDb21wYXJlKGZp
ZWxkLCBjb29raWUxLCBjb29raWUyKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBz
b3J0RGlyZWN0aW9uICogKGNvb2tpZTFbZmllbGRdICsgIiIpLmxvY2FsZUNvbXBhcmUoY29va2ll
MltmaWVsZF0gKyAiIikNCisgICAgICAgIH0NCisNCisgICAgICAgIGZ1bmN0aW9uIG51bWJlckNv
bXBhcmUoZmllbGQsIGNvb2tpZTEsIGNvb2tpZTIpDQorICAgICAgICB7DQorICAgICAgICAgICAg
cmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMVtmaWVsZF0gLSBjb29raWUyW2ZpZWxkXSk7
DQorICAgICAgICB9DQorDQorICAgICAgICBmdW5jdGlvbiBleHBpcmVzQ29tcGFyZShjb29raWUx
LCBjb29raWUyKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIGlmIChjb29raWUxLnNlc3Npb24g
IT09IGNvb2tpZTIuc2Vzc2lvbikNCisgICAgICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rp
b24gKiAoY29va2llMS5zZXNzaW9uID8gMSA6IC0xKTsNCisNCisgICAgICAgICAgICBpZiAoY29v
a2llMS5zZXNzaW9uKQ0KKyAgICAgICAgICAgICAgICByZXR1cm4gMDsNCisNCisgICAgICAgICAg
ICByZXR1cm4gc29ydERpcmVjdGlvbiAqIChjb29raWUxLmV4cGlyZXMgLSBjb29raWUyLmV4cGly
ZXMpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgdmFyIGNvbXBhcmF0b3I7DQorICAgICAgICBz
d2l0Y2ggKHBhcnNlSW50KHRoaXMuX2RhdGFHcmlkLnNvcnRDb2x1bW5JZGVudGlmaWVyKSkgew0K
KyAgICAgICAgICAgIGNhc2UgMDogY29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlz
LCAibmFtZSIpOyBicmVhazsNCisgICAgICAgICAgICBjYXNlIDE6IGNvbXBhcmF0b3IgPSBsb2Nh
bGVDb21wYXJlLmJpbmQodGhpcywgInZhbHVlIik7IGJyZWFrOw0KKyAgICAgICAgICAgIGNhc2Ug
MjogY29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAiZG9tYWluIik7IGJyZWFr
Ow0KKyAgICAgICAgICAgIGNhc2UgMzogY29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0
aGlzLCAicGF0aCIpOyBicmVhazsNCisgICAgICAgICAgICBjYXNlIDQ6IGNvbXBhcmF0b3IgPSBl
eHBpcmVzQ29tcGFyZTsgYnJlYWs7DQorICAgICAgICAgICAgY2FzZSA1OiBjb21wYXJhdG9yID0g
bnVtYmVyQ29tcGFyZS5iaW5kKHRoaXMsICJzaXplIik7IGJyZWFrOw0KKyAgICAgICAgICAgIGNh
c2UgNjogY29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAiaHR0cE9ubHkiKTsg
YnJlYWs7DQorICAgICAgICAgICAgY2FzZSA3OiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5i
aW5kKHRoaXMsICJzZWN1cmUiKTsgYnJlYWs7DQorICAgICAgICAgICAgZGVmYXVsdDogbG9jYWxl
Q29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7DQorICAgICAgICB9DQorDQorICAgICAgICBjb29r
aWVzLnNvcnQoY29tcGFyYXRvcik7DQorICAgIH0sDQorDQorICAgIF9jcmVhdGVHcmlkTm9kZTog
ZnVuY3Rpb24oY29va2llKQ0KKyAgICB7DQorICAgICAgICB2YXIgZGF0YSA9IHt9Ow0KKyAgICAg
ICAgZGF0YVswXSA9IGNvb2tpZS5uYW1lOw0KKyAgICAgICAgZGF0YVsxXSA9IGNvb2tpZS52YWx1
ZTsNCisgICAgICAgIGRhdGFbMl0gPSBjb29raWUuZG9tYWluIHx8ICIiOw0KKyAgICAgICAgZGF0
YVszXSA9IGNvb2tpZS5wYXRoIHx8ICIiOw0KKyAgICAgICAgZGF0YVs0XSA9IGNvb2tpZS50eXBl
ID09PSAicmVxdWVzdCIgPyAiIiA6DQorICAgICAgICAgICAgKGNvb2tpZS5zZXNzaW9uID8gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJTZXNzaW9uIikgOiBuZXcgRGF0ZShjb29raWUuZXhwaXJlcyku
dG9HTVRTdHJpbmcoKSk7DQorICAgICAgICBkYXRhWzVdID0gY29va2llLnNpemU7DQorICAgICAg
ICBkYXRhWzZdID0gKGNvb2tpZS5odHRwT25seSA/ICJcdTI3MTMiIDogIiIpOyAvLyBDaGVja21h
cmsNCisgICAgICAgIGRhdGFbN10gPSAoY29va2llLnNlY3VyZSA/ICJcdTI3MTMiIDogIiIpOyAv
LyBDaGVja21hcmsNCisNCisgICAgICAgIHZhciBub2RlID0gbmV3IFdlYkluc3BlY3Rvci5EYXRh
R3JpZE5vZGUoZGF0YSk7DQorICAgICAgICBub2RlLmNvb2tpZSA9IGNvb2tpZTsNCisgICAgICAg
IG5vZGUuc2VsZWN0YWJsZSA9IHRydWU7DQorICAgICAgICByZXR1cm4gbm9kZTsNCisgICAgfQ0K
K307DQorDQorV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UucHJvdG90eXBlLl9fcHJv
dG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZTsNCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0Nvb2tpZVBhcnNlci5qcwppbmRleCAyYmU1ZGY3Li5jMmFlMWQwIDEwMDc1NQot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpzCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIuanMKQEAgLTU0LDcgKzU0LDcg
QEAgV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBp
ZiAoa3Yua2V5LmNoYXJBdCgwKSA9PT0gIiQiICYmIHRoaXMuX2xhc3RDb29raWUpCiAgICAgICAg
ICAgICAgICAgdGhpcy5fbGFzdENvb2tpZS5hZGRBdHRyaWJ1dGUoa3Yua2V5LnNsaWNlKDEpLCBr
di52YWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChrdi5rZXkudG9Mb3dlckNhc2UoKSAhPT0g
IiR2ZXJzaW9uIiAmJiB0eXBlb2Yga3YudmFsdWUgPT09ICJzdHJpbmciKQotICAgICAgICAgICAg
ICAgIHRoaXMuX2FkZENvb2tpZShrdik7CisgICAgICAgICAgICAgICAgdGhpcy5fYWRkQ29va2ll
KGt2LCAicmVxdWVzdCIpOwogICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUFuZENoZWNrQ29va2ll
RGVsaW1pdGVyKCk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fZmx1c2hDb29raWUoKTsKQEAg
LTY5LDcgKzY5LDcgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICBpZiAodGhpcy5fbGFzdENvb2tpZSkKICAgICAgICAgICAgICAgICB0aGlzLl9s
YXN0Q29va2llLmFkZEF0dHJpYnV0ZShrdi5rZXksIGt2LnZhbHVlKTsKICAgICAgICAgICAgIGVs
c2UgCi0gICAgICAgICAgICAgICAgdGhpcy5fYWRkQ29va2llKGt2KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9hZGRDb29raWUoa3YsICJyZXNwb25zZSIpOwogICAgICAgICAgICAgaWYgKHRoaXMu
X2FkdmFuY2VBbmRDaGVja0Nvb2tpZURlbGltaXRlcigpKQogICAgICAgICAgICAgICAgIHRoaXMu
X2ZsdXNoQ29va2llKCk7CiAgICAgICAgIH0KQEAgLTEyOCwxNCArMTI4LDE0IEBAIFdlYkluc3Bl
Y3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gbWF0Y2hbMF0u
bWF0Y2goIlxuIikgIT09IG51bGw7CiAgICAgfSwKIAotICAgIF9hZGRDb29raWU6IGZ1bmN0aW9u
KGtleVZhbHVlKQorICAgIF9hZGRDb29raWU6IGZ1bmN0aW9uKGtleVZhbHVlLCB0eXBlKQogICAg
IHsKICAgICAgICAgaWYgKHRoaXMuX2xhc3RDb29raWUpCiAgICAgICAgICAgICB0aGlzLl9sYXN0
Q29va2llLnNpemUgPSBrZXlWYWx1ZS5wb3NpdGlvbiAtIHRoaXMuX2xhc3RDb29raWVQb3NpdGlv
bjsKICAgICAgICAgLy8gTW96aWxsYSBidWcgMTY5MDkxOiBNb3ppbGxhLCBJRSBhbmQgQ2hyb21l
IHRyZWF0IHNpZ25sZSB0b2tlbiAody9vICI9IikgYXMKICAgICAgICAgLy8gc3BlY2lmeWluZyBh
IHZhbHVlIGZvciBhIGNvb2tpZSB3aXRoIGVtcHR5IG5hbWUuCi0gICAgICAgIHRoaXMuX2xhc3RD
b29raWUgPSBrZXlWYWx1ZS52YWx1ZSA/IG5ldyBXZWJJbnNwZWN0b3IuQ29va2llKGtleVZhbHVl
LmtleSwga2V5VmFsdWUudmFsdWUpIDoKLSAgICAgICAgICAgIG5ldyBXZWJJbnNwZWN0b3IuQ29v
a2llKCIiLCBrZXlWYWx1ZS5rZXkpOworICAgICAgICB0aGlzLl9sYXN0Q29va2llID0ga2V5VmFs
dWUudmFsdWUgPyBuZXcgV2ViSW5zcGVjdG9yLkNvb2tpZShrZXlWYWx1ZS5rZXksIGtleVZhbHVl
LnZhbHVlLCB0eXBlKSA6CisgICAgICAgICAgICBuZXcgV2ViSW5zcGVjdG9yLkNvb2tpZSgiIiwg
a2V5VmFsdWUua2V5LCB0eXBlKTsKICAgICAgICAgdGhpcy5fbGFzdENvb2tpZVBvc2l0aW9uID0g
a2V5VmFsdWUucG9zaXRpb247CiAgICAgICAgIHRoaXMuX2Nvb2tpZXMucHVzaCh0aGlzLl9sYXN0
Q29va2llKTsKICAgICB9CkBAIC0xNTEsMTAgKzE1MSwxMSBAQCBXZWJJbnNwZWN0b3IuQ29va2ll
UGFyc2VyLnBhcnNlU2V0Q29va2llID0gZnVuY3Rpb24oaGVhZGVyKQogICAgIHJldHVybiAobmV3
IFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIoKSkucGFyc2VTZXRDb29raWUoaGVhZGVyKTsKIH0K
IAotV2ViSW5zcGVjdG9yLkNvb2tpZSA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKQorV2ViSW5zcGVj
dG9yLkNvb2tpZSA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCB0eXBlKQogewogICAgIHRoaXMubmFt
ZSA9IG5hbWU7CiAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgIHRoaXMudHlwZSA9IHR5cGU7
CiAgICAgdGhpcy5fYXR0cmlidXRlcyA9IHt9OwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRGF0YUdyaWQuanMKaW5kZXggMzAwNzQ5Ny4uMWM4MDRlOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EYXRhR3JpZC5qcwpAQCAtMzg4LDcgKzM4OCw4IEBAIFdlYkluc3BlY3Rvci5E
YXRhR3JpZC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB0YWJsZVdpZHRoID0gdGhpcy5fZGF0
YVRhYmxlLm9mZnNldFdpZHRoOwogICAgICAgICB2YXIgbnVtQ29sdW1ucyA9IGhlYWRlclRhYmxl
Q29sdW1ucy5sZW5ndGg7CiAgICAgICAgIAotICAgICAgICBpZiAoIXRoaXMuX2NvbHVtbldpZHRo
c0luaXRpYWxpemVkKSB7CisgICAgICAgIC8vIERvIG5vdCBhdHRlbXB0IHRvIHVzZSBvZmZzZXRl
cyBpZiB3ZSdyZSBub3QgYXR0YWNoZWQgdG8gdGhlIGRvY3VtZW50IHRyZWUgeWV0LgorICAgICAg
ICBpZiAoIXRoaXMuX2NvbHVtbldpZHRoc0luaXRpYWxpemVkICYmIHRoaXMuZWxlbWVudC5lbmNs
b3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJib2R5IikpIHsKICAgICAgICAgICAgIC8vIEdp
dmUgYWxsIHRoZSBjb2x1bW5zIGluaXRpYWwgd2lkdGhzIG5vdyBzbyB0aGF0IGR1cmluZyBhIHJl
c2l6ZSwKICAgICAgICAgICAgIC8vIHdoZW4gdGhlIHR3byBjb2x1bW5zIHRoYXQgZ2V0IHJlc2l6
ZWQgZ2V0IGEgcGVyY2VudCB2YWx1ZSBmb3IKICAgICAgICAgICAgIC8vIHRoZWlyIHdpZHRocywg
YWxsIHRoZSBvdGhlciBjb2x1bW5zIGFscmVhZHkgaGF2ZSBwZXJjZW50IHZhbHVlcwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzCmluZGV4IGIwMTEyMDQuLjc4YTdlNzAgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Gb250Vmlldy5qcworKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRm9udFZpZXcuanMKQEAgLTY5LDYgKzY5LDcgQEAg
V2ViSW5zcGVjdG9yLkZvbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICByZXNpemU6IGZ1bmN0aW9u
KCkKICAgICB7CiAgICAgICAgIHRoaXMudXBkYXRlRm9udFByZXZpZXdTaXplKCk7CisgICAgICAg
IFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLnJlc2l6ZS5jYWxsKHRoaXMpOwog
ICAgIH0sCiAKICAgICB1cGRhdGVGb250UHJldmlld1NpemU6IGZ1bmN0aW9uKCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUNvb2tpZXNWaWV3LmpzIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ29va2llc1ZpZXcuanMKbmV3IGZp
bGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTU5NGViYwotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUNvb2tpZXNWaWV3LmpzCkBAIC0w
LDAgKzEsOTEgQEAKKy8qDQorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuDQorICoNCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlDQor
ICogbWV0Og0KKyAqDQorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXINCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlDQorICogZGlzdHJpYnV0aW9uLg0KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQ0KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uDQorICoNCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1INCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QN
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwNCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFDQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCisgKi8NCisNCisNCitXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VDb29raWVzVmlldyA9IGZ1bmN0aW9uKCkNCit7DQorICAgIFdlYkluc3BlY3Rvci5D
b29raWVJdGVtc1ZpZXdCYXNlLmNhbGwodGhpcyk7DQorICAgIHRoaXMuZWxlbWVudC5hZGRTdHls
ZUNsYXNzKCJyZXNvdXJjZS12aWV3LWNvb2tpZXMiKTsNCisgICAgdGhpcy5fcmVxdWVzdENvb2tp
ZXMgPSBbXTsNCisgICAgdGhpcy5fcmVzcG9uc2VDb29raWVzID0gW107DQorICAgIHRoaXMuX2Ny
ZWF0ZURhdGFHcmlkKHRydWUpOw0KKyAgICB0aGlzLl9yZXF1ZXN0Q29va2llc05vZGUgPSB0aGlz
Ll9jcmVhdGVGb2xkZXIoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXF1ZXN0IENvb2tpZXMiKSk7
DQorICAgIHRoaXMuX3Jlc3BvbnNlQ29va2llc05vZGUgPSB0aGlzLl9jcmVhdGVGb2xkZXIoV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJSZXNwb25zZSBDb29raWVzIikpOw0KK30NCisNCitXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VDb29raWVzVmlldy5wcm90b3R5cGUgPSB7DQorICAgIHNldCByZXF1ZXN0
Q29va2llcyhjb29raWVzKQ0KKyAgICB7DQorICAgICAgICBpZiAodGhpcy5fcmVxdWVzdENvb2tp
ZXMgPT09IGNvb2tpZXMpDQorICAgICAgICAgICAgcmV0dXJuOw0KKyAgICAgICAgdGhpcy5fcmVx
dWVzdENvb2tpZXMgPSBjb29raWVzOw0KKyAgICAgICAgdGhpcy5fcG9wdWxhdGVDb29raWVzKHRo
aXMuX3JlcXVlc3RDb29raWVzTm9kZSwgdGhpcy5fcmVxdWVzdENvb2tpZXMpOw0KKyAgICB9LA0K
Kw0KKyAgICBzZXQgcmVzcG9uc2VDb29raWVzKGNvb2tpZXMpDQorICAgIHsNCisgICAgICAgIGlm
ICh0aGlzLl9yZXNwb25zZUNvb2tpZXMgPT09IGNvb2tpZXMpDQorICAgICAgICAgICAgcmV0dXJu
Ow0KKyAgICAgICAgdGhpcy5fcmVzcG9uc2VDb29raWVzID0gY29va2llczsNCisgICAgICAgIHRo
aXMuX3BvcHVsYXRlQ29va2llcyh0aGlzLl9yZXNwb25zZUNvb2tpZXNOb2RlLCB0aGlzLl9yZXNw
b25zZUNvb2tpZXMpOw0KKyAgICB9LA0KKw0KKyAgICBfcG9wdWxhdGVEYXRhR3JpZDogZnVuY3Rp
b24oKQ0KKyAgICB7DQorICAgICAgICB0aGlzLl9wb3B1bGF0ZUNvb2tpZXModGhpcy5fcmVxdWVz
dENvb2tpZXNOb2RlLCB0aGlzLl9yZXF1ZXN0Q29va2llcyk7DQorICAgICAgICB0aGlzLl9wb3B1
bGF0ZUNvb2tpZXModGhpcy5fcmVzcG9uc2VDb29raWVzTm9kZSwgdGhpcy5fcmVzcG9uc2VDb29r
aWVzKTsNCisgICAgfSwNCisNCisgICAgX3BvcHVsYXRlQ29va2llczogZnVuY3Rpb24ocGFyZW50
Tm9kZSwgY29va2llcykNCisgICAgew0KKyAgICAgICAgV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1z
Vmlld0Jhc2UucHJvdG90eXBlLl9wb3B1bGF0ZUNvb2tpZXMuY2FsbCh0aGlzLCBwYXJlbnROb2Rl
LCBjb29raWVzKTsNCisgICAgICAgIHZhciB0b3RhbFNpemUgPSAwOw0KKyAgICAgICAgaWYgKGNv
b2tpZXMpIHsNCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvb2tpZXMubGVuZ3Ro
OyArK2kpDQorICAgICAgICAgICAgICAgIHRvdGFsU2l6ZSArPSBjb29raWVzW2ldLnNpemU7DQor
ICAgICAgICB9DQorICAgICAgICBwYXJlbnROb2RlLmV4cGFuZGVkID0gdHJ1ZTsNCisgICAgICAg
IHBhcmVudE5vZGUuZGF0YVs1XSA9IHRvdGFsU2l6ZTsNCisgICAgICAgIHBhcmVudE5vZGUucmVm
cmVzaCgpOw0KKyAgICB9LA0KKw0KKyAgICBfY3JlYXRlRm9sZGVyOiBmdW5jdGlvbihuYW1lKQ0K
KyAgICB7DQorICAgICAgICB2YXIgZGF0YSA9IFsgbmFtZSwgIiIsICIiLCAiIiwgIiIsIDAsICIi
LCAiIiBdOw0KKyAgICAgICAgdmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9k
ZShkYXRhKTsNCisgICAgICAgIG5vZGUuc2VsZWN0YWJsZSA9IHRydWU7DQorICAgICAgICBub2Rl
LmV4cGFuZGVkID0gdHJ1ZTsNCisgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFwcGVuZENoaWxkKG5v
ZGUpOw0KKyAgICAgICAgbm9kZS5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInJvdy1ncm91cCIpOw0K
KyAgICAgICAgcmV0dXJuIG5vZGU7DQorICAgIH0NCit9Ow0KKw0KK1dlYkluc3BlY3Rvci5SZXNv
dXJjZUNvb2tpZXNWaWV3LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQ29va2ll
SXRlbXNWaWV3QmFzZS5wcm90b3R5cGU7DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlVmlldy5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZVZpZXcuanMKaW5kZXggODYyNTY5Zi4uZWI0MDY4NyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVmlldy5qcworKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VWaWV3LmpzCkBAIC0xMzksMTQgKzEzOSwyMCBAQCBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fc2VsZWN0
VGFiKCk7CiAgICAgfSwKIAorICAgIHJlc2l6ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
aWYgKHRoaXMuX2Nvb2tpZXNWaWV3ICYmIHRoaXMuX2Nvb2tpZXNWaWV3LmVsZW1lbnQuaGFzU3R5
bGVDbGFzcygic2VsZWN0ZWQiKSkKKyAgICAgICAgICAgIHRoaXMuX2Nvb2tpZXNWaWV3LnJlc2l6
ZSgpOworICAgIH0sCisKICAgICBfc2VsZWN0VGFiOiBmdW5jdGlvbigpCiAgICAgewotICAgICAg
ICBpZiAodGhpcy5faGVhZGVyc1Zpc2libGUpIHsKLSAgICAgICAgICAgIGlmICghdGhpcy5oYXND
b250ZW50VGFiKCkgfHwgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGluZ3MucmVzb3VyY2VW
aWV3VGFiID09PSAiaGVhZGVycyIpCi0gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0SGVhZGVy
c1RhYigpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0Q29u
dGVudFRhYigpOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgdmFyIHByZWZlcnJlZFRhYiA9IFdl
Ykluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLnJlc291cmNlVmlld1RhYjsKKyAgICAgICAg
aWYgKHRoaXMuX2Nvb2tpZXNWaWV3ICYmIHByZWZlcnJlZFRhYiA9PT0gImNvb2tpZXMiKQorICAg
ICAgICAgICAgdGhpcy5fc2VsZWN0Q29va2llc1RhYigpOworICAgICAgICBlbHNlIGlmICh0aGlz
Ll9oZWFkZXJzVmlzaWJsZSAmJiAoIXRoaXMuaGFzQ29udGVudFRhYigpIHx8IHByZWZlcnJlZFRh
YiA9PT0gImhlYWRlcnMiKSkKKyAgICAgICAgICAgIHRoaXMuX3NlbGVjdEhlYWRlcnNUYWIoKTsK
KyAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhpcy5faW5uZXJTZWxlY3RDb250ZW50VGFiKCk7
CiAgICAgfSwKIApAQCAtMTcwLDExICsxNzYsMTggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmll
dy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9LAogCisgICAgX3Nl
bGVjdENvb2tpZXNUYWI6IGZ1bmN0aW9uKHVwZGF0ZVByZWZzKQorICAgIHsKKyAgICAgICAgaWYg
KHVwZGF0ZVByZWZzKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGlu
Z3MucmVzb3VyY2VWaWV3VGFiID0gImNvb2tpZXMiOworICAgICAgICB0aGlzLnRhYmJlZFBhbmUu
c2VsZWN0VGFiQnlJZCgiY29va2llcyIpOworICAgICAgICB0aGlzLl9jb29raWVzVmlldy5yZXNp
emUoKTsKKyAgICB9LAorCiAgICAgX2lubmVyU2VsZWN0Q29udGVudFRhYjogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgdGhpcy50YWJiZWRQYW5lLnNlbGVjdFRhYkJ5SWQoImNvbnRlbnQiKTsK
LSAgICAgICAgaWYgKCJyZXNpemUiIGluIHRoaXMpCi0gICAgICAgICAgICB0aGlzLnJlc2l6ZSgp
OworICAgICAgICB0aGlzLnJlc2l6ZSgpOwogICAgICAgICBpZiAodGhpcy5oYXNDb250ZW50VGFi
KCkpCiAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUYWJTZWxlY3RlZCgpOwogICAgIH0sCkBAIC0y
ODMsNiArMjk2LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICBhZGRpdGlvbmFsUm93ID0ge2hlYWRlcjogIihLZXkzKSIsIHZhbHVlOiB0aGlz
LnJlc291cmNlLndlYlNvY2tldFJlcXVlc3RLZXkzfTsKICAgICAgICAgdGhpcy5fcmVmcmVzaEhl
YWRlcnMoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXF1ZXN0IEhlYWRlcnMiKSwgdGhpcy5yZXNv
dXJjZS5zb3J0ZWRSZXF1ZXN0SGVhZGVycywgYWRkaXRpb25hbFJvdywgdGhpcy5yZXF1ZXN0SGVh
ZGVyc1RyZWVFbGVtZW50KTsKICAgICAgICAgdGhpcy5fcmVmcmVzaEZvcm1EYXRhKCk7CisgICAg
ICAgIHRoaXMuX3JlZnJlc2hDb29raWVzKCk7CiAgICAgfSwKIAogICAgIF9yZWZyZXNoUmVzcG9u
c2VIZWFkZXJzOiBmdW5jdGlvbigpCkBAIC0yOTEsNiArMzA1LDcgQEAgV2ViSW5zcGVjdG9yLlJl
c291cmNlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNvdXJj
ZS53ZWJTb2NrZXRDaGFsbGVuZ2VSZXNwb25zZSAhPT0gInVuZGVmaW5lZCIpCiAgICAgICAgICAg
ICBhZGRpdGlvbmFsUm93ID0ge2hlYWRlcjogIihDaGFsbGVuZ2UgUmVzcG9uc2UpIiwgdmFsdWU6
IHRoaXMucmVzb3VyY2Uud2ViU29ja2V0Q2hhbGxlbmdlUmVzcG9uc2V9OwogICAgICAgICB0aGlz
Ll9yZWZyZXNoSGVhZGVycyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlc3BvbnNlIEhlYWRlcnMi
KSwgdGhpcy5yZXNvdXJjZS5zb3J0ZWRSZXNwb25zZUhlYWRlcnMsIGFkZGl0aW9uYWxSb3csIHRo
aXMucmVzcG9uc2VIZWFkZXJzVHJlZUVsZW1lbnQpOworICAgICAgICB0aGlzLl9yZWZyZXNoQ29v
a2llcygpOwogICAgIH0sCiAKICAgICBfcmVmcmVzaEhUVFBJbmZvcm1hdGlvbjogZnVuY3Rpb24o
KQpAQCAtMzQ3LDYgKzM2MiwxOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIGhlYWRlclRyZWVFbGVtZW50LnNlbGVjdGFibGUgPSBmYWxzZTsK
ICAgICAgICAgICAgIGhlYWRlcnNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChoZWFkZXJUcmVlRWxl
bWVudCk7CiAgICAgICAgIH0KKyAgICB9LAorCisgICAgX3JlZnJlc2hDb29raWVzOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2Nvb2tpZXNWaWV3KSB7CisgICAgICAgICAg
ICBpZiAoIXRoaXMucmVzb3VyY2UucmVxdWVzdENvb2tpZXMgJiYgIXRoaXMucmVzb3VyY2UucmVz
cG9uc2VDb29raWVzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHRoaXMu
X2Nvb2tpZXNWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3KCk7Cisg
ICAgICAgICAgICB0aGlzLnRhYmJlZFBhbmUuYXBwZW5kVGFiKCJjb29raWVzIiwgV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJDb29raWVzIiksIHRoaXMuX2Nvb2tpZXNWaWV3LmVsZW1lbnQsIHRoaXMu
X3NlbGVjdENvb2tpZXNUYWIuYmluZCh0aGlzLCB0cnVlKSk7CisgICAgICAgIH0KKyAgICAgICAg
dGhpcy5fY29va2llc1ZpZXcucmVxdWVzdENvb2tpZXMgPSB0aGlzLnJlc291cmNlLnJlcXVlc3RD
b29raWVzOworICAgICAgICB0aGlzLl9jb29raWVzVmlldy5yZXNwb25zZUNvb2tpZXMgPSB0aGlz
LnJlc291cmNlLnJlc3BvbnNlQ29va2llczsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMKaW5kZXggODA5MjUwNS4uYTY3MmY1MiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMKQEAgLTczLDYgKzczLDcgQEAgV2Vi
SW5zcGVjdG9yLlNvdXJjZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5zb3Vy
Y2VGcmFtZS5yZXNpemUoKTsKICAgICAgICAgaWYgKHRoaXMubG9jYWxTb3VyY2VGcmFtZSkKICAg
ICAgICAgICAgIHRoaXMubG9jYWxTb3VyY2VGcmFtZS5yZXNpemUoKTsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUucmVzaXplLmNhbGwodGhpcyk7CiAgICAgfSwK
IAogICAgIHNldHVwU291cmNlRnJhbWVJZk5lZWRlZDogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvV2ViS2l0LnFyYwppbmRleCA0ODFmOGIzLi5jMjM3ZWViIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAtMjAsNiArMjAsNyBAQAogICAgIDxmaWxl
PkNvbnNvbGVWaWV3LmpzPC9maWxlPgogICAgIDxmaWxlPkNvbnRleHRNZW51LmpzPC9maWxlPgog
ICAgIDxmaWxlPkNvb2tpZUl0ZW1zVmlldy5qczwvZmlsZT4KKyAgICA8ZmlsZT5Db29raWVJdGVt
c1ZpZXdCYXNlLmpzPC9maWxlPgogICAgIDxmaWxlPkNvb2tpZVBhcnNlci5qczwvZmlsZT4KICAg
ICA8ZmlsZT5DU1NDb21wbGV0aW9ucy5qczwvZmlsZT4KICAgICA8ZmlsZT5DU1NTdHlsZU1vZGVs
LmpzPC9maWxlPgpAQCAtNjksNiArNzAsNyBAQAogICAgIDxmaWxlPlJlbW90ZU9iamVjdC5qczwv
ZmlsZT4KICAgICA8ZmlsZT5SZXNvdXJjZS5qczwvZmlsZT4KICAgICA8ZmlsZT5SZXNvdXJjZUNh
dGVnb3J5LmpzPC9maWxlPgorICAgIDxmaWxlPlJlc291cmNlQ29va2llc1ZpZXcuanM8L2ZpbGU+
CiAgICAgPGZpbGU+UmVzb3VyY2VNYW5hZ2VyLmpzPC9maWxlPgogICAgIDxmaWxlPlJlc291cmNl
c1BhbmVsLmpzPC9maWxlPgogICAgIDxmaWxlPlJlc291cmNlVmlldy5qczwvZmlsZT4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKaW5kZXggZGIyOWE2YS4uMzVmNzZj
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MK
KysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTg5OCw2
ICs4OTgsMjkgQEAgYm9keS5wbGF0Zm9ybS1saW51eCAubW9ub3NwYWNlLCBib2R5LnBsYXRmb3Jt
LWxpbnV4IC5zb3VyY2UtY29kZSB7CiAgICAgdG9wOiAyMHB4OwogfQogCisucmVzb3VyY2Utdmll
dyAucmVzb3VyY2Utdmlldy1jb29raWVzIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
dG9wOiAwOworICAgIHJpZ2h0OiAwOworICAgIGxlZnQ6IDA7CisgICAgYm90dG9tOiAwOworICAg
IG92ZXJmbG93OiBhdXRvOworICAgIHBhZGRpbmc6IDEycHg7Cit9CisKKy5yZXNvdXJjZS12aWV3
LmhlYWRlcnMtdmlzaWJsZSAucmVzb3VyY2Utdmlldy1jb29raWVzIHsKKyAgICB0b3A6IDIwcHg7
Cit9CisKKy5yZXNvdXJjZS12aWV3LWNvb2tpZXMudGFibGUgLmRhdGEtZ3JpZCB7CisgICAgaGVp
Z2h0OiAxMDAlOworfQorCisucmVzb3VyY2Utdmlldy1jb29raWVzIC5kYXRhLWdyaWQgLnJvdy1n
cm91cCB7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgZm9udC1zaXplOiAxMXB4OworfQor
CiAud2Via2l0LWxpbmUtZ3V0dGVyLWJhY2tkcm9wIHsKICAgICAvKiBLZWVwIHRoaXMgaW4gc3lu
YyB3aXRoIHZpZXctc291cmNlLmNzcyAoLndlYmtpdC1saW5lLWd1dHRlci1iYWNrZHJvcCkgKi8K
ICAgICB3aWR0aDogMzFweDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuaHRtbCBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
aHRtbAppbmRleCA5NmQwY2ZlLi5jODAwYTcxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5odG1sCkBAIC02Nyw2ICs2Nyw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRE9NU3RvcmFnZS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRE9NU3RvcmFnZUl0ZW1zVmll
dy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
RGF0YUdyaWQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9IkNvb2tpZUl0ZW1zVmlld0Jhc2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvb2tpZUl0ZW1zVmlldy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQXBwbGljYXRpb25DYWNoZUl0
ZW1zVmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iU2NyaXB0LmpzIj48L3NjcmlwdD4KQEAgLTExMiw2ICsxMTMsNyBAQCBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkF1ZGl0UnVsZXMuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkF1ZGl0Q2F0
ZWdvcmllcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iQXVkaXRGb3JtYXR0ZXJzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJSZXNvdXJjZUNvb2tpZXNWaWV3LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJSZXNvdXJjZVZpZXcuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNvdXJjZUZy
YW1lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJET01TeW50YXhIaWdobGlnaHRlci5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>71731</attachid>
            <date>2010-10-25 04:31:06 -0700</date>
            <delta_ts>2010-10-25 09:10:34 -0700</delta_ts>
            <desc>screenshot</desc>
            <filename>cookies-ui.png</filename>
            <type>image/png</type>
            <size>23067</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71732</attachid>
            <date>2010-10-25 04:34:50 -0700</date>
            <delta_ts>2010-10-25 05:09:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>cookies-ui.diff</filename>
            <type>text/plain</type>
            <size>31305</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTBiYmMxNS4uYmE5MDAxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMC0xMC0yNSAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgY29va2llcyBhc3NvY2lh
dGVkIHdpdGggcmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDgyMjYKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0Nvb2tpZUl0ZW1zVmlldy5qczogRmFjdG9yIG91dCBjb21tb24gY29va2llcyBncmlkIGxvZ2lj
IHRvIENvb2tpZUl0ZW1zVmlld0Jhc2UKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVJdGVt
c1ZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUu
X3BvcHVsYXRlRGF0YUdyaWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29va2ll
SXRlbXNWaWV3QmFzZS5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llSXRl
bXNWaWV3QmFzZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIu
anM6IFN0b3JlIGNvb2tpZSB0eXBlIChyZXF1ZXN0L3Jlc3BvbnNlKSB3aXRoaW4gYSBjb29raWUK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlLnBhcnNlQ29va2ll
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlLnBhcnNlU2V0
Q29va2llKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlLl9h
ZGRDb29raWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZSk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRh
R3JpZC5wcm90b3R5cGUudXBkYXRlV2lkdGhzKTogU2tpcCBhdHRlbXB0IHRvIGNhbGN1bGF0ZSBj
b2x1bW4gd2lkdGhzIGlmIGdyaWQgaXMgbm90IGF0dGFjaGVkIHRvIERPTSB0cmVlIHlldC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkZvbnRWaWV3LnByb3RvdHlwZS5yZXNpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VDb29raWVzVmlldyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZVZpZXcuanM6IEFkZGVkICJDb29raWVzIiB0YWIuIEFkanVzdGVkIHJlc2l6ZSBs
b2dpYyB0byBwYXNzIHJlc2l6ZSgpIGNhbGxzIHRvIENvb2tpZXMgdGFiLgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUucmVzaXplKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLl9zZWxlY3RUYWIpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUuX3NlbGVjdENvb2tpZXNUYWIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUuX2lubmVyU2VsZWN0Q29u
dGVudFRhYik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5f
cmVmcmVzaFJlcXVlc3RIZWFkZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVZp
ZXcucHJvdG90eXBlLl9yZWZyZXNoUmVzcG9uc2VIZWFkZXJzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLl9yZWZyZXNoSGVhZGVycyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5fcmVmcmVzaENvb2tpZXMpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZS5yZXNpemUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvV2ViS2l0LnFyYzoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5jc3M6CisgICAgICAgICgucmVzb3VyY2UtdmlldyAucmVzb3VyY2Utdmlldy1jb29r
aWVzKToKKyAgICAgICAgKC5yZXNvdXJjZS12aWV3LmhlYWRlcnMtdmlzaWJsZSAucmVzb3VyY2Ut
dmlldy1jb29raWVzKToKKyAgICAgICAgKC5yZXNvdXJjZS12aWV3LWNvb2tpZXMudGFibGUgLmRh
dGEtZ3JpZCk6CisgICAgICAgICgucmVzb3VyY2Utdmlldy1jb29raWVzIC5kYXRhLWdyaWQgLnJv
dy1ncm91cCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoK
KwogMjAxMC0xMC0yNCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEtpbHplci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2Q2NTY2OC4uMTY5YjEwMiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTQzNzEsNiArNDM3MSw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db250
ZXh0TWVudS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVt
c1ZpZXcuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNW
aWV3QmFzZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJz
ZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTQ29tcGxldGlvbnMu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcycs
CkBAIC00NDIwLDYgKzQ0MjEsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
UmVtb3RlT2JqZWN0LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ2F0ZWdv
cnkuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVz
Vmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZU1hbmFn
ZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VWaWV3LmpzJywK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGM3MDAwNzQuLjg5YWZmOWQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjM0OTQsNiArNjM0OTQs
MTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcQ29va2llSXRlbXNWaWV3QmFzZS5qcyINCisJCQkJ
CT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNw
ZWN0b3JcZnJvbnQtZW5kXENvb2tpZVBhcnNlci5qcyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0K
QEAgLTYzNzEwLDYgKzYzNzE0LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8Rmls
ZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFJlc291cmNlQ29v
a2llc1ZpZXcuanMiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJl
bGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxSZXNvdXJjZU1hbmFnZXIuanMiDQog
CQkJCQk+DQogCQkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29va2llSXRlbXNWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
b2tpZUl0ZW1zVmlldy5qcwppbmRleCAwYjA1ZjJhLi4zMTcxNjU5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMKQEAgLTI5LDEwICsyOSw5IEBA
CiAKIFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXcgPSBmdW5jdGlvbih0cmVlRWxlbWVudCwg
Y29va2llRG9tYWluKQogewotICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CisgICAg
V2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UuY2FsbCh0aGlzKTsKIAogICAgIHRoaXMu
ZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzdG9yYWdlLXZpZXciKTsKLSAgICB0aGlzLmVsZW1lbnQu
YWRkU3R5bGVDbGFzcygidGFibGUiKTsKIAogICAgIHRoaXMuZGVsZXRlQnV0dG9uID0gbmV3IFdl
Ykluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEZWxldGUi
KSwgImRlbGV0ZS1zdG9yYWdlLXN0YXR1cy1iYXItaXRlbSIpOwogICAgIHRoaXMuZGVsZXRlQnV0
dG9uLnZpc2libGUgPSBmYWxzZTsKQEAgLTE0MywxMDEgKzE0Miw5IEBAIFdlYkluc3BlY3Rvci5D
b29raWVJdGVtc1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAotICAgIF9j
cmVhdGVEYXRhR3JpZDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIGNvbHVtbnMgPSB7
IDA6IHt9LCAxOiB7fSwgMjoge30sIDM6IHt9LCA0OiB7fSwgNToge30sIDY6IHt9LCA3OiB7fSB9
OwotICAgICAgICBjb2x1bW5zWzBdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOYW1l
Iik7Ci0gICAgICAgIGNvbHVtbnNbMF0uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBjb2x1bW5z
WzFdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJWYWx1ZSIpOwotICAgICAgICBjb2x1
bW5zWzFdLnNvcnRhYmxlID0gdHJ1ZTsKLSAgICAgICAgY29sdW1uc1syXS50aXRsZSA9IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiRG9tYWluIik7Ci0gICAgICAgIGNvbHVtbnNbMl0uc29ydGFibGUg
PSB0cnVlOwotICAgICAgICBjb2x1bW5zWzNdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJQYXRoIik7Ci0gICAgICAgIGNvbHVtbnNbM10uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBj
b2x1bW5zWzRdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFeHBpcmVzIik7Ci0gICAg
ICAgIGNvbHVtbnNbNF0uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBjb2x1bW5zWzVdLnRpdGxl
ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaXplIik7Ci0gICAgICAgIGNvbHVtbnNbNV0uYWxp
Z25lZCA9ICJyaWdodCI7Ci0gICAgICAgIGNvbHVtbnNbNV0uc29ydGFibGUgPSB0cnVlOwotICAg
ICAgICBjb2x1bW5zWzZdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJIVFRQIik7Ci0g
ICAgICAgIGNvbHVtbnNbNl0uYWxpZ25lZCA9ICJjZW50ZXJlZCI7Ci0gICAgICAgIGNvbHVtbnNb
Nl0uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBjb2x1bW5zWzddLnRpdGxlID0gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJTZWN1cmUiKTsKLSAgICAgICAgY29sdW1uc1s3XS5hbGlnbmVkID0gImNl
bnRlcmVkIjsKLSAgICAgICAgY29sdW1uc1s3XS5zb3J0YWJsZSA9IHRydWU7Ci0KLSAgICAgICAg
dGhpcy5fZGF0YUdyaWQgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkKGNvbHVtbnMsIG51bGws
IHRoaXMuX2RlbGV0ZUNvb2tpZUNhbGxiYWNrLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9k
YXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKCJzb3J0aW5nIGNoYW5nZWQiLCB0aGlzLl9wb3B1bGF0
ZURhdGFHcmlkLCB0aGlzKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
X2RhdGFHcmlkLmVsZW1lbnQpOwotICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVXaWR0aHMo
KTsKLSAgICB9LAotCiAgICAgX3BvcHVsYXRlRGF0YUdyaWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0g
ICAgICAgIHZhciBzZWxlY3RlZENvb2tpZSA9IHRoaXMuX2RhdGFHcmlkLnNlbGVjdGVkTm9kZSA/
IHRoaXMuX2RhdGFHcmlkLnNlbGVjdGVkTm9kZS5jb29raWUgOiBudWxsOwotICAgICAgICB2YXIg
c29ydERpcmVjdGlvbiA9IHRoaXMuX2RhdGFHcmlkLnNvcnRPcmRlciA9PT0gImFzY2VuZGluZyIg
PyAxIDogLTE7Ci0KLSAgICAgICAgZnVuY3Rpb24gbG9jYWxlQ29tcGFyZShmaWVsZCwgY29va2ll
MSwgY29va2llMikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24g
KiAoY29va2llMVtmaWVsZF0gKyAiIikubG9jYWxlQ29tcGFyZShjb29raWUyW2ZpZWxkXSArICIi
KQotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gbnVtYmVyQ29tcGFyZShmaWVsZCwgY29v
a2llMSwgY29va2llMikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rp
b24gKiAoY29va2llMVtmaWVsZF0gLSBjb29raWUyW2ZpZWxkXSk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBmdW5jdGlvbiBleHBpcmVzQ29tcGFyZShjb29raWUxLCBjb29raWUyKQotICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoY29va2llMS5zZXNzaW9uICE9PSBjb29raWUyLnNlc3Npb24pCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMS5zZXNzaW9uID8g
MSA6IC0xKTsKLQotICAgICAgICAgICAgaWYgKGNvb2tpZTEuc2Vzc2lvbikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gMDsKLQotICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29v
a2llMS5leHBpcmVzIC0gY29va2llMi5leHBpcmVzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZh
ciBjb21wYXJhdG9yOwotICAgICAgICBzd2l0Y2ggKHBhcnNlSW50KHRoaXMuX2RhdGFHcmlkLnNv
cnRDb2x1bW5JZGVudGlmaWVyKSkgewotICAgICAgICAgICAgY2FzZSAwOiBjb21wYXJhdG9yID0g
bG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7IGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSAxOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJ2YWx1ZSIpOyBicmVh
azsKLSAgICAgICAgICAgIGNhc2UgMjogY29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0
aGlzLCAiZG9tYWluIik7IGJyZWFrOwotICAgICAgICAgICAgY2FzZSAzOiBjb21wYXJhdG9yID0g
bG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJwYXRoIik7IGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSA0OiBjb21wYXJhdG9yID0gZXhwaXJlc0NvbXBhcmU7IGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSA1OiBjb21wYXJhdG9yID0gbnVtYmVyQ29tcGFyZS5iaW5kKHRoaXMsICJzaXplIik7IGJyZWFr
OwotICAgICAgICAgICAgY2FzZSA2OiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRo
aXMsICJodHRwT25seSIpOyBicmVhazsKLSAgICAgICAgICAgIGNhc2UgNzogY29tcGFyYXRvciA9
IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAic2VjdXJlIik7IGJyZWFrOwotICAgICAgICAgICAg
ZGVmYXVsdDogbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7Ci0gICAgICAgIH0KLQot
ICAgICAgICB0aGlzLl9jb29raWVzLnNvcnQoY29tcGFyYXRvcik7Ci0KLSAgICAgICAgdGhpcy5f
ZGF0YUdyaWQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdmFyIG5vZGVUb1NlbGVjdDsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9jb29raWVzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICB2YXIgZGF0YSA9IHt9OwotICAgICAgICAgICAgdmFyIGNvb2tpZSA9IHRoaXMu
X2Nvb2tpZXNbaV07Ci0gICAgICAgICAgICBkYXRhWzBdID0gY29va2llLm5hbWU7Ci0gICAgICAg
ICAgICBkYXRhWzFdID0gY29va2llLnZhbHVlOwotICAgICAgICAgICAgZGF0YVsyXSA9IGNvb2tp
ZS5kb21haW47Ci0gICAgICAgICAgICBkYXRhWzNdID0gY29va2llLnBhdGg7Ci0gICAgICAgICAg
ICBkYXRhWzRdID0gKGNvb2tpZS5zZXNzaW9uID8gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZXNz
aW9uIikgOiBuZXcgRGF0ZShjb29raWUuZXhwaXJlcykudG9HTVRTdHJpbmcoKSk7Ci0gICAgICAg
ICAgICBkYXRhWzVdID0gTnVtYmVyLmJ5dGVzVG9TdHJpbmcoY29va2llLnNpemUsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZyk7Ci0gICAgICAgICAgICBkYXRhWzZdID0gKGNvb2tpZS5odHRwT25seSA/
ICJcdTI3MTMiIDogIiIpOyAvLyBDaGVja21hcmsKLSAgICAgICAgICAgIGRhdGFbN10gPSAoY29v
a2llLnNlY3VyZSA/ICJcdTI3MTMiIDogIiIpOyAvLyBDaGVja21hcmsKLQotICAgICAgICAgICAg
dmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhKTsKLSAgICAgICAg
ICAgIG5vZGUuY29va2llID0gY29va2llOwotICAgICAgICAgICAgbm9kZS5zZWxlY3RhYmxlID0g
dHJ1ZTsKLSAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFwcGVuZENoaWxkKG5vZGUpOwotICAg
ICAgICAgICAgaWYgKGNvb2tpZSA9PT0gc2VsZWN0ZWRDb29raWUpCi0gICAgICAgICAgICAgICAg
bm9kZVRvU2VsZWN0ID0gbm9kZTsKLSAgICAgICAgfQotICAgICAgICBpZiAobm9kZVRvU2VsZWN0
KQotICAgICAgICAgICAgbm9kZVRvU2VsZWN0LnNlbGVjdGVkID0gdHJ1ZTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuY2hpbGRyZW5bMF0uc2VsZWN0ZWQgPSB0cnVl
OworICAgICAgICB0aGlzLl9wb3B1bGF0ZUNvb2tpZXModGhpcy5fZGF0YUdyaWQsIHRoaXMuX2Nv
b2tpZXMpOwogICAgIH0sCiAKICAgICBfY3JlYXRlU2ltcGxlRGF0YUdyaWQ6IGZ1bmN0aW9uKCkK
QEAgLTI3MywxMiArMTgwLDYgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmNoaWxkcmVuWzBdLnNlbGVjdGVkID0gdHJ1
ZTsKICAgICB9LAogCi0gICAgcmVzaXplOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAo
dGhpcy5fZGF0YUdyaWQpCi0gICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVXaWR0aHMo
KTsKLSAgICB9LAotCiAgICAgX2RlbGV0ZUJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKGV2ZW50KQog
ICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3JpZCB8fCAhdGhpcy5fZGF0YUdyaWQuc2Vs
ZWN0ZWROb2RlKQpAQCAtMzAwLDQgKzIwMSw0IEBAIFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1Zp
ZXcucHJvdG90eXBlID0gewogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmll
dy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOworV2Vi
SW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlld0Jhc2UuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3QmFzZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAwMDAwMDAwLi4yNTYwYzIzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlld0Jhc2UuanMKQEAgLTAsMCArMSwxNjEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBKb3NlcGggUGVjb3Jhcm8KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5Db29raWVJ
dGVtc1ZpZXdCYXNlID0gZnVuY3Rpb24oKQoreworICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwo
dGhpcyk7CisKKyAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidGFibGUiKTsKK30KKwor
V2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UucHJvdG90eXBlID0geworICAgIHJlc2l6
ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3JpZCkKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAodGhpcy5fYXV0b1NpemluZ0RvbmUpCisgICAg
ICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVXaWR0aHMoKTsKKyAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICB0aGlzLl9hdXRvU2l6aW5nRG9uZSA9IHRydWU7CisgICAgICAgICAgICB0aGlz
Ll9kYXRhR3JpZC5hdXRvU2l6ZUNvbHVtbnMoNiwgMzMpOworICAgICAgICB9CisgICAgfSwKKwor
ICAgIF9jcmVhdGVEYXRhR3JpZDogZnVuY3Rpb24oZXhwYW5kYWJsZSkKKyAgICB7CisgICAgICAg
IHZhciBjb2x1bW5zID0geyAwOiB7fSwgMToge30sIDI6IHt9LCAzOiB7fSwgNDoge30sIDU6IHt9
LCA2OiB7fSwgNzoge30gfTsKKyAgICAgICAgY29sdW1uc1swXS50aXRsZSA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiTmFtZSIpOworICAgICAgICBjb2x1bW5zWzBdLnNvcnRhYmxlID0gdHJ1ZTsK
KyAgICAgICAgY29sdW1uc1swXS5kaXNjbG9zdXJlID0gZXhwYW5kYWJsZTsKKyAgICAgICAgY29s
dW1uc1sxXS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVmFsdWUiKTsKKyAgICAgICAg
Y29sdW1uc1sxXS5zb3J0YWJsZSA9IHRydWU7CisgICAgICAgIGNvbHVtbnNbMl0udGl0bGUgPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvbWFpbiIpOworICAgICAgICBjb2x1bW5zWzJdLnNvcnRh
YmxlID0gdHJ1ZTsKKyAgICAgICAgY29sdW1uc1szXS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiUGF0aCIpOworICAgICAgICBjb2x1bW5zWzNdLnNvcnRhYmxlID0gdHJ1ZTsKKyAgICAg
ICAgY29sdW1uc1s0XS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRXhwaXJlcyIpOwor
ICAgICAgICBjb2x1bW5zWzRdLnNvcnRhYmxlID0gdHJ1ZTsKKyAgICAgICAgY29sdW1uc1s1XS50
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2l6ZSIpOworICAgICAgICBjb2x1bW5zWzVd
LmFsaWduZWQgPSAicmlnaHQiOworICAgICAgICBjb2x1bW5zWzVdLnNvcnRhYmxlID0gdHJ1ZTsK
KyAgICAgICAgY29sdW1uc1s2XS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiSFRUUCIp
OworICAgICAgICBjb2x1bW5zWzZdLmFsaWduZWQgPSAiY2VudGVyZWQiOworICAgICAgICBjb2x1
bW5zWzZdLnNvcnRhYmxlID0gdHJ1ZTsKKyAgICAgICAgY29sdW1uc1s3XS50aXRsZSA9IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiU2VjdXJlIik7CisgICAgICAgIGNvbHVtbnNbN10uYWxpZ25lZCA9
ICJjZW50ZXJlZCI7CisgICAgICAgIGNvbHVtbnNbN10uc29ydGFibGUgPSB0cnVlOworCisgICAg
ICAgIHZhciBkZWxldGVDYWxsYmFjayA9IHRoaXMuX2RlbGV0ZUNvb2tpZUNhbGxiYWNrID8gdGhp
cy5fZGVsZXRlQ29va2llQ2FsbGJhY2suYmluZCh0aGlzKSA6IG51bGw7CisgICAgICAgIHRoaXMu
X2RhdGFHcmlkID0gbmV3IFdlYkluc3BlY3Rvci5EYXRhR3JpZChjb2x1bW5zLCBudWxsLCBkZWxl
dGVDYWxsYmFjayk7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZEV2ZW50TGlzdGVuZXIoInNv
cnRpbmcgY2hhbmdlZCIsIHRoaXMuX3BvcHVsYXRlRGF0YUdyaWQsIHRoaXMpOworICAgICAgICB0
aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZGF0YUdyaWQuZWxlbWVudCk7CisgICAgfSwK
KworICAgIF9wb3B1bGF0ZUNvb2tpZXM6IGZ1bmN0aW9uKHBhcmVudE5vZGUsIGNvb2tpZXMpCisg
ICAgeworICAgICAgICB2YXIgc2VsZWN0ZWRDb29raWUgPSB0aGlzLl9kYXRhR3JpZC5zZWxlY3Rl
ZE5vZGUgPyB0aGlzLl9kYXRhR3JpZC5zZWxlY3RlZE5vZGUuY29va2llIDogbnVsbDsKKyAgICAg
ICAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICBpZiAoIWNvb2tpZXMpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuX3NvcnRDb29raWVzKGNvb2tpZXMpOwor
ICAgICAgICB2YXIgdG90YWxTaXplID0gMDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBj
b29raWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgY29va2llTm9kZSA9IHRoaXMu
X2NyZWF0ZUdyaWROb2RlKGNvb2tpZXNbaV0pOworICAgICAgICAgICAgcGFyZW50Tm9kZS5hcHBl
bmRDaGlsZChjb29raWVOb2RlKTsKKyAgICAgICAgICAgIGlmIChzZWxlY3RlZENvb2tpZSA9PT0g
Y29va2llc1tpXSkKKyAgICAgICAgICAgICAgICBjb29raWVOb2RlLnNlbGVjdGVkID0gdHJ1ZTsK
KyAgICAgICAgfQorICAgIH0sCisKKyAgICBfc29ydENvb2tpZXM6IGZ1bmN0aW9uKGNvb2tpZXMp
CisgICAgeworICAgICAgICB2YXIgc29ydERpcmVjdGlvbiA9IHRoaXMuX2RhdGFHcmlkLnNvcnRP
cmRlciA9PT0gImFzY2VuZGluZyIgPyAxIDogLTE7CisKKyAgICAgICAgZnVuY3Rpb24gbG9jYWxl
Q29tcGFyZShmaWVsZCwgY29va2llMSwgY29va2llMikKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMVtmaWVsZF0gKyAiIikubG9jYWxlQ29tcGFy
ZShjb29raWUyW2ZpZWxkXSArICIiKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbnVt
YmVyQ29tcGFyZShmaWVsZCwgY29va2llMSwgY29va2llMikKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMVtmaWVsZF0gLSBjb29raWUyW2ZpZWxk
XSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBleHBpcmVzQ29tcGFyZShjb29raWUx
LCBjb29raWUyKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoY29va2llMS5zZXNzaW9uICE9
PSBjb29raWUyLnNlc3Npb24pCisgICAgICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24g
KiAoY29va2llMS5zZXNzaW9uID8gMSA6IC0xKTsKKworICAgICAgICAgICAgaWYgKGNvb2tpZTEu
c2Vzc2lvbikKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICAgICAgcmV0dXJu
IHNvcnREaXJlY3Rpb24gKiAoY29va2llMS5leHBpcmVzIC0gY29va2llMi5leHBpcmVzKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBjb21wYXJhdG9yOworICAgICAgICBzd2l0Y2ggKHBhcnNl
SW50KHRoaXMuX2RhdGFHcmlkLnNvcnRDb2x1bW5JZGVudGlmaWVyKSkgeworICAgICAgICAgICAg
Y2FzZSAwOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7IGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAxOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5k
KHRoaXMsICJ2YWx1ZSIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjogY29tcGFyYXRvciA9
IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAiZG9tYWluIik7IGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAzOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJwYXRoIik7IGJy
ZWFrOworICAgICAgICAgICAgY2FzZSA0OiBjb21wYXJhdG9yID0gZXhwaXJlc0NvbXBhcmU7IGJy
ZWFrOworICAgICAgICAgICAgY2FzZSA1OiBjb21wYXJhdG9yID0gbnVtYmVyQ29tcGFyZS5iaW5k
KHRoaXMsICJzaXplIik7IGJyZWFrOworICAgICAgICAgICAgY2FzZSA2OiBjb21wYXJhdG9yID0g
bG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJodHRwT25seSIpOyBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgNzogY29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAic2VjdXJlIik7
IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJu
YW1lIik7CisgICAgICAgIH0KKworICAgICAgICBjb29raWVzLnNvcnQoY29tcGFyYXRvcik7Cisg
ICAgfSwKKworICAgIF9jcmVhdGVHcmlkTm9kZTogZnVuY3Rpb24oY29va2llKQorICAgIHsKKyAg
ICAgICAgdmFyIGRhdGEgPSB7fTsKKyAgICAgICAgZGF0YVswXSA9IGNvb2tpZS5uYW1lOworICAg
ICAgICBkYXRhWzFdID0gY29va2llLnZhbHVlOworICAgICAgICBkYXRhWzJdID0gY29va2llLmRv
bWFpbiB8fCAiIjsKKyAgICAgICAgZGF0YVszXSA9IGNvb2tpZS5wYXRoIHx8ICIiOworICAgICAg
ICBkYXRhWzRdID0gY29va2llLnR5cGUgPT09ICJyZXF1ZXN0IiA/ICIiIDoKKyAgICAgICAgICAg
IChjb29raWUuc2Vzc2lvbiA/IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2Vzc2lvbiIpIDogbmV3
IERhdGUoY29va2llLmV4cGlyZXMpLnRvR01UU3RyaW5nKCkpOworICAgICAgICBkYXRhWzVdID0g
Y29va2llLnNpemU7CisgICAgICAgIGRhdGFbNl0gPSAoY29va2llLmh0dHBPbmx5ID8gIlx1Mjcx
MyIgOiAiIik7IC8vIENoZWNrbWFyaworICAgICAgICBkYXRhWzddID0gKGNvb2tpZS5zZWN1cmUg
PyAiXHUyNzEzIiA6ICIiKTsgLy8gQ2hlY2ttYXJrCisKKyAgICAgICAgdmFyIG5vZGUgPSBuZXcg
V2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhKTsKKyAgICAgICAgbm9kZS5jb29raWUgPSBj
b29raWU7CisgICAgICAgIG5vZGUuc2VsZWN0YWJsZSA9IHRydWU7CisgICAgICAgIHJldHVybiBu
b2RlOworICAgIH0KK307CisKK1dlYkluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXdCYXNlLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpzIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZVBhcnNlci5qcwppbmRleCAyYmU1ZGY3Li5jMmFlMWQw
IDEwMDc1NQotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpz
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIuanMKQEAgLTU0
LDcgKzU0LDcgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlci5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBpZiAoa3Yua2V5LmNoYXJBdCgwKSA9PT0gIiQiICYmIHRoaXMuX2xhc3RDb29raWUp
CiAgICAgICAgICAgICAgICAgdGhpcy5fbGFzdENvb2tpZS5hZGRBdHRyaWJ1dGUoa3Yua2V5LnNs
aWNlKDEpLCBrdi52YWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChrdi5rZXkudG9Mb3dlckNh
c2UoKSAhPT0gIiR2ZXJzaW9uIiAmJiB0eXBlb2Yga3YudmFsdWUgPT09ICJzdHJpbmciKQotICAg
ICAgICAgICAgICAgIHRoaXMuX2FkZENvb2tpZShrdik7CisgICAgICAgICAgICAgICAgdGhpcy5f
YWRkQ29va2llKGt2LCAicmVxdWVzdCIpOwogICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUFuZENo
ZWNrQ29va2llRGVsaW1pdGVyKCk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fZmx1c2hDb29r
aWUoKTsKQEAgLTY5LDcgKzY5LDcgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlci5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICBpZiAodGhpcy5fbGFzdENvb2tpZSkKICAgICAgICAgICAgICAg
ICB0aGlzLl9sYXN0Q29va2llLmFkZEF0dHJpYnV0ZShrdi5rZXksIGt2LnZhbHVlKTsKICAgICAg
ICAgICAgIGVsc2UgCi0gICAgICAgICAgICAgICAgdGhpcy5fYWRkQ29va2llKGt2KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9hZGRDb29raWUoa3YsICJyZXNwb25zZSIpOwogICAgICAgICAgICAg
aWYgKHRoaXMuX2FkdmFuY2VBbmRDaGVja0Nvb2tpZURlbGltaXRlcigpKQogICAgICAgICAgICAg
ICAgIHRoaXMuX2ZsdXNoQ29va2llKCk7CiAgICAgICAgIH0KQEAgLTEyOCwxNCArMTI4LDE0IEBA
IFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4g
bWF0Y2hbMF0ubWF0Y2goIlxuIikgIT09IG51bGw7CiAgICAgfSwKIAotICAgIF9hZGRDb29raWU6
IGZ1bmN0aW9uKGtleVZhbHVlKQorICAgIF9hZGRDb29raWU6IGZ1bmN0aW9uKGtleVZhbHVlLCB0
eXBlKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2xhc3RDb29raWUpCiAgICAgICAgICAgICB0
aGlzLl9sYXN0Q29va2llLnNpemUgPSBrZXlWYWx1ZS5wb3NpdGlvbiAtIHRoaXMuX2xhc3RDb29r
aWVQb3NpdGlvbjsKICAgICAgICAgLy8gTW96aWxsYSBidWcgMTY5MDkxOiBNb3ppbGxhLCBJRSBh
bmQgQ2hyb21lIHRyZWF0IHNpZ25sZSB0b2tlbiAody9vICI9IikgYXMKICAgICAgICAgLy8gc3Bl
Y2lmeWluZyBhIHZhbHVlIGZvciBhIGNvb2tpZSB3aXRoIGVtcHR5IG5hbWUuCi0gICAgICAgIHRo
aXMuX2xhc3RDb29raWUgPSBrZXlWYWx1ZS52YWx1ZSA/IG5ldyBXZWJJbnNwZWN0b3IuQ29va2ll
KGtleVZhbHVlLmtleSwga2V5VmFsdWUudmFsdWUpIDoKLSAgICAgICAgICAgIG5ldyBXZWJJbnNw
ZWN0b3IuQ29va2llKCIiLCBrZXlWYWx1ZS5rZXkpOworICAgICAgICB0aGlzLl9sYXN0Q29va2ll
ID0ga2V5VmFsdWUudmFsdWUgPyBuZXcgV2ViSW5zcGVjdG9yLkNvb2tpZShrZXlWYWx1ZS5rZXks
IGtleVZhbHVlLnZhbHVlLCB0eXBlKSA6CisgICAgICAgICAgICBuZXcgV2ViSW5zcGVjdG9yLkNv
b2tpZSgiIiwga2V5VmFsdWUua2V5LCB0eXBlKTsKICAgICAgICAgdGhpcy5fbGFzdENvb2tpZVBv
c2l0aW9uID0ga2V5VmFsdWUucG9zaXRpb247CiAgICAgICAgIHRoaXMuX2Nvb2tpZXMucHVzaCh0
aGlzLl9sYXN0Q29va2llKTsKICAgICB9CkBAIC0xNTEsMTAgKzE1MSwxMSBAQCBXZWJJbnNwZWN0
b3IuQ29va2llUGFyc2VyLnBhcnNlU2V0Q29va2llID0gZnVuY3Rpb24oaGVhZGVyKQogICAgIHJl
dHVybiAobmV3IFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIoKSkucGFyc2VTZXRDb29raWUoaGVh
ZGVyKTsKIH0KIAotV2ViSW5zcGVjdG9yLkNvb2tpZSA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKQor
V2ViSW5zcGVjdG9yLkNvb2tpZSA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCB0eXBlKQogewogICAg
IHRoaXMubmFtZSA9IG5hbWU7CiAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgIHRoaXMudHlw
ZSA9IHR5cGU7CiAgICAgdGhpcy5fYXR0cmlidXRlcyA9IHt9OwogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGF0YUdyaWQuanMKaW5kZXggMzAwNzQ5Ny4uMWM4MDRlOCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcwpAQCAtMzg4LDcgKzM4OCw4IEBAIFdlYklu
c3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB0YWJsZVdpZHRoID0g
dGhpcy5fZGF0YVRhYmxlLm9mZnNldFdpZHRoOwogICAgICAgICB2YXIgbnVtQ29sdW1ucyA9IGhl
YWRlclRhYmxlQ29sdW1ucy5sZW5ndGg7CiAgICAgICAgIAotICAgICAgICBpZiAoIXRoaXMuX2Nv
bHVtbldpZHRoc0luaXRpYWxpemVkKSB7CisgICAgICAgIC8vIERvIG5vdCBhdHRlbXB0IHRvIHVz
ZSBvZmZzZXRlcyBpZiB3ZSdyZSBub3QgYXR0YWNoZWQgdG8gdGhlIGRvY3VtZW50IHRyZWUgeWV0
LgorICAgICAgICBpZiAoIXRoaXMuX2NvbHVtbldpZHRoc0luaXRpYWxpemVkICYmIHRoaXMuZWxl
bWVudC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJib2R5IikpIHsKICAgICAgICAg
ICAgIC8vIEdpdmUgYWxsIHRoZSBjb2x1bW5zIGluaXRpYWwgd2lkdGhzIG5vdyBzbyB0aGF0IGR1
cmluZyBhIHJlc2l6ZSwKICAgICAgICAgICAgIC8vIHdoZW4gdGhlIHR3byBjb2x1bW5zIHRoYXQg
Z2V0IHJlc2l6ZWQgZ2V0IGEgcGVyY2VudCB2YWx1ZSBmb3IKICAgICAgICAgICAgIC8vIHRoZWly
IHdpZHRocywgYWxsIHRoZSBvdGhlciBjb2x1bW5zIGFscmVhZHkgaGF2ZSBwZXJjZW50IHZhbHVl
cwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzCmluZGV4IGIwMTEyMDQuLjc4
YTdlNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Gb250Vmlldy5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRm9udFZpZXcuanMKQEAgLTY5LDYg
KzY5LDcgQEAgV2ViSW5zcGVjdG9yLkZvbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICByZXNpemU6
IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMudXBkYXRlRm9udFByZXZpZXdTaXplKCk7
CisgICAgICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLnJlc2l6ZS5jYWxs
KHRoaXMpOwogICAgIH0sCiAKICAgICB1cGRhdGVGb250UHJldmlld1NpemU6IGZ1bmN0aW9uKCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUNvb2tpZXNW
aWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ29va2llc1ZpZXcu
anMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTNhMmY5NQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUNvb2tpZXNWaWV3
LmpzCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisKK1dlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3ID0g
ZnVuY3Rpb24oKQoreworICAgIFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXdCYXNlLmNhbGwo
dGhpcyk7CisgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInJlc291cmNlLXZpZXctY29v
a2llcyIpOworICAgIHRoaXMuX3JlcXVlc3RDb29raWVzID0gW107CisgICAgdGhpcy5fcmVzcG9u
c2VDb29raWVzID0gW107CisgICAgdGhpcy5fY3JlYXRlRGF0YUdyaWQodHJ1ZSk7CisgICAgdGhp
cy5fcmVxdWVzdENvb2tpZXNOb2RlID0gdGhpcy5fY3JlYXRlRm9sZGVyKFdlYkluc3BlY3Rvci5V
SVN0cmluZygiUmVxdWVzdCBDb29raWVzIikpOworICAgIHRoaXMuX3Jlc3BvbnNlQ29va2llc05v
ZGUgPSB0aGlzLl9jcmVhdGVGb2xkZXIoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXNwb25zZSBD
b29raWVzIikpOworfQorCitXZWJJbnNwZWN0b3IuUmVzb3VyY2VDb29raWVzVmlldy5wcm90b3R5
cGUgPSB7CisgICAgc2V0IHJlcXVlc3RDb29raWVzKGNvb2tpZXMpCisgICAgeworICAgICAgICBp
ZiAodGhpcy5fcmVxdWVzdENvb2tpZXMgPT09IGNvb2tpZXMpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIHRoaXMuX3JlcXVlc3RDb29raWVzID0gY29va2llczsKKyAgICAgICAgdGhpcy5f
cG9wdWxhdGVDb29raWVzKHRoaXMuX3JlcXVlc3RDb29raWVzTm9kZSwgdGhpcy5fcmVxdWVzdENv
b2tpZXMpOworICAgIH0sCisKKyAgICBzZXQgcmVzcG9uc2VDb29raWVzKGNvb2tpZXMpCisgICAg
eworICAgICAgICBpZiAodGhpcy5fcmVzcG9uc2VDb29raWVzID09PSBjb29raWVzKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLl9yZXNwb25zZUNvb2tpZXMgPSBjb29raWVzOwor
ICAgICAgICB0aGlzLl9wb3B1bGF0ZUNvb2tpZXModGhpcy5fcmVzcG9uc2VDb29raWVzTm9kZSwg
dGhpcy5fcmVzcG9uc2VDb29raWVzKTsKKyAgICB9LAorCisgICAgX3BvcHVsYXRlRGF0YUdyaWQ6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BvcHVsYXRlQ29va2llcyh0aGlzLl9y
ZXF1ZXN0Q29va2llc05vZGUsIHRoaXMuX3JlcXVlc3RDb29raWVzKTsKKyAgICAgICAgdGhpcy5f
cG9wdWxhdGVDb29raWVzKHRoaXMuX3Jlc3BvbnNlQ29va2llc05vZGUsIHRoaXMuX3Jlc3BvbnNl
Q29va2llcyk7CisgICAgfSwKKworICAgIF9wb3B1bGF0ZUNvb2tpZXM6IGZ1bmN0aW9uKHBhcmVu
dE5vZGUsIGNvb2tpZXMpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuQ29va2llSXRlbXNW
aWV3QmFzZS5wcm90b3R5cGUuX3BvcHVsYXRlQ29va2llcy5jYWxsKHRoaXMsIHBhcmVudE5vZGUs
IGNvb2tpZXMpOworICAgICAgICB2YXIgdG90YWxTaXplID0gMDsKKyAgICAgICAgaWYgKGNvb2tp
ZXMpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29va2llcy5sZW5ndGg7ICsr
aSkKKyAgICAgICAgICAgICAgICB0b3RhbFNpemUgKz0gY29va2llc1tpXS5zaXplOworICAgICAg
ICB9CisgICAgICAgIHBhcmVudE5vZGUuZXhwYW5kZWQgPSB0cnVlOworICAgICAgICBwYXJlbnRO
b2RlLmRhdGFbNV0gPSB0b3RhbFNpemU7CisgICAgICAgIHBhcmVudE5vZGUucmVmcmVzaCgpOwor
ICAgIH0sCisKKyAgICBfY3JlYXRlRm9sZGVyOiBmdW5jdGlvbihuYW1lKQorICAgIHsKKyAgICAg
ICAgdmFyIGRhdGEgPSBbIG5hbWUsICIiLCAiIiwgIiIsICIiLCAwLCAiIiwgIiIgXTsKKyAgICAg
ICAgdmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhKTsKKyAgICAg
ICAgbm9kZS5zZWxlY3RhYmxlID0gdHJ1ZTsKKyAgICAgICAgbm9kZS5leHBhbmRlZCA9IHRydWU7
CisgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFwcGVuZENoaWxkKG5vZGUpOworICAgICAgICBub2Rl
LmVsZW1lbnQuYWRkU3R5bGVDbGFzcygicm93LWdyb3VwIik7CisgICAgICAgIHJldHVybiBub2Rl
OworICAgIH0KK307CisKK1dlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3LnByb3RvdHlw
ZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQ29va2llSXRlbXNWaWV3QmFzZS5wcm90b3R5cGU7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VWaWV3Lmpz
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVmlldy5qcwppbmRleCA4NjI1
NjlmLi5lYjQwNjg3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VWaWV3LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVZp
ZXcuanMKQEAgLTEzOSwxNCArMTM5LDIwIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJv
dG90eXBlID0gewogICAgICAgICB0aGlzLl9zZWxlY3RUYWIoKTsKICAgICB9LAogCisgICAgcmVz
aXplOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fY29va2llc1ZpZXcgJiYg
dGhpcy5fY29va2llc1ZpZXcuZWxlbWVudC5oYXNTdHlsZUNsYXNzKCJzZWxlY3RlZCIpKQorICAg
ICAgICAgICAgdGhpcy5fY29va2llc1ZpZXcucmVzaXplKCk7CisgICAgfSwKKwogICAgIF9zZWxl
Y3RUYWI6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9oZWFkZXJzVmlzaWJs
ZSkgewotICAgICAgICAgICAgaWYgKCF0aGlzLmhhc0NvbnRlbnRUYWIoKSB8fCBXZWJJbnNwZWN0
b3IuYXBwbGljYXRpb25TZXR0aW5ncy5yZXNvdXJjZVZpZXdUYWIgPT09ICJoZWFkZXJzIikKLSAg
ICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RIZWFkZXJzVGFiKCk7Ci0gICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RDb250ZW50VGFiKCk7Ci0gICAgICAgIH0gZWxz
ZQorICAgICAgICB2YXIgcHJlZmVycmVkVGFiID0gV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0
dGluZ3MucmVzb3VyY2VWaWV3VGFiOworICAgICAgICBpZiAodGhpcy5fY29va2llc1ZpZXcgJiYg
cHJlZmVycmVkVGFiID09PSAiY29va2llcyIpCisgICAgICAgICAgICB0aGlzLl9zZWxlY3RDb29r
aWVzVGFiKCk7CisgICAgICAgIGVsc2UgaWYgKHRoaXMuX2hlYWRlcnNWaXNpYmxlICYmICghdGhp
cy5oYXNDb250ZW50VGFiKCkgfHwgcHJlZmVycmVkVGFiID09PSAiaGVhZGVycyIpKQorICAgICAg
ICAgICAgdGhpcy5fc2VsZWN0SGVhZGVyc1RhYigpOworICAgICAgICBlbHNlCiAgICAgICAgICAg
ICB0aGlzLl9pbm5lclNlbGVjdENvbnRlbnRUYWIoKTsKICAgICB9LAogCkBAIC0xNzAsMTEgKzE3
NiwxOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0sCiAKKyAgICBfc2VsZWN0Q29va2llc1RhYjogZnVuY3Rpb24o
dXBkYXRlUHJlZnMpCisgICAgeworICAgICAgICBpZiAodXBkYXRlUHJlZnMpCisgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5yZXNvdXJjZVZpZXdUYWIgPSAiY29v
a2llcyI7CisgICAgICAgIHRoaXMudGFiYmVkUGFuZS5zZWxlY3RUYWJCeUlkKCJjb29raWVzIik7
CisgICAgICAgIHRoaXMuX2Nvb2tpZXNWaWV3LnJlc2l6ZSgpOworICAgIH0sCisKICAgICBfaW5u
ZXJTZWxlY3RDb250ZW50VGFiOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLnRhYmJl
ZFBhbmUuc2VsZWN0VGFiQnlJZCgiY29udGVudCIpOwotICAgICAgICBpZiAoInJlc2l6ZSIgaW4g
dGhpcykKLSAgICAgICAgICAgIHRoaXMucmVzaXplKCk7CisgICAgICAgIHRoaXMucmVzaXplKCk7
CiAgICAgICAgIGlmICh0aGlzLmhhc0NvbnRlbnRUYWIoKSkKICAgICAgICAgICAgIHRoaXMuY29u
dGVudFRhYlNlbGVjdGVkKCk7CiAgICAgfSwKQEAgLTI4Myw2ICsyOTYsNyBAQCBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGFkZGl0aW9uYWxSb3cg
PSB7aGVhZGVyOiAiKEtleTMpIiwgdmFsdWU6IHRoaXMucmVzb3VyY2Uud2ViU29ja2V0UmVxdWVz
dEtleTN9OwogICAgICAgICB0aGlzLl9yZWZyZXNoSGVhZGVycyhXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlJlcXVlc3QgSGVhZGVycyIpLCB0aGlzLnJlc291cmNlLnNvcnRlZFJlcXVlc3RIZWFkZXJz
LCBhZGRpdGlvbmFsUm93LCB0aGlzLnJlcXVlc3RIZWFkZXJzVHJlZUVsZW1lbnQpOwogICAgICAg
ICB0aGlzLl9yZWZyZXNoRm9ybURhdGEoKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaENvb2tpZXMo
KTsKICAgICB9LAogCiAgICAgX3JlZnJlc2hSZXNwb25zZUhlYWRlcnM6IGZ1bmN0aW9uKCkKQEAg
LTI5MSw2ICszMDUsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc291cmNlLndlYlNvY2tldENoYWxsZW5nZVJlc3Bv
bnNlICE9PSAidW5kZWZpbmVkIikKICAgICAgICAgICAgIGFkZGl0aW9uYWxSb3cgPSB7aGVhZGVy
OiAiKENoYWxsZW5nZSBSZXNwb25zZSkiLCB2YWx1ZTogdGhpcy5yZXNvdXJjZS53ZWJTb2NrZXRD
aGFsbGVuZ2VSZXNwb25zZX07CiAgICAgICAgIHRoaXMuX3JlZnJlc2hIZWFkZXJzKFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUmVzcG9uc2UgSGVhZGVycyIpLCB0aGlzLnJlc291cmNlLnNvcnRlZFJl
c3BvbnNlSGVhZGVycywgYWRkaXRpb25hbFJvdywgdGhpcy5yZXNwb25zZUhlYWRlcnNUcmVlRWxl
bWVudCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hDb29raWVzKCk7CiAgICAgfSwKIAogICAgIF9y
ZWZyZXNoSFRUUEluZm9ybWF0aW9uOiBmdW5jdGlvbigpCkBAIC0zNDcsNiArMzYyLDE4IEBAIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgaGVhZGVy
VHJlZUVsZW1lbnQuc2VsZWN0YWJsZSA9IGZhbHNlOwogICAgICAgICAgICAgaGVhZGVyc1RyZWVF
bGVtZW50LmFwcGVuZENoaWxkKGhlYWRlclRyZWVFbGVtZW50KTsKICAgICAgICAgfQorICAgIH0s
CisKKyAgICBfcmVmcmVzaENvb2tpZXM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICgh
dGhpcy5fY29va2llc1ZpZXcpIHsKKyAgICAgICAgICAgIGlmICghdGhpcy5yZXNvdXJjZS5yZXF1
ZXN0Q29va2llcyAmJiAhdGhpcy5yZXNvdXJjZS5yZXNwb25zZUNvb2tpZXMpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgdGhpcy5fY29va2llc1ZpZXcgPSBuZXcgV2ViSW5z
cGVjdG9yLlJlc291cmNlQ29va2llc1ZpZXcoKTsKKyAgICAgICAgICAgIHRoaXMudGFiYmVkUGFu
ZS5hcHBlbmRUYWIoImNvb2tpZXMiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvb2tpZXMiKSwg
dGhpcy5fY29va2llc1ZpZXcuZWxlbWVudCwgdGhpcy5fc2VsZWN0Q29va2llc1RhYi5iaW5kKHRo
aXMsIHRydWUpKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl9jb29raWVzVmlldy5yZXF1ZXN0
Q29va2llcyA9IHRoaXMucmVzb3VyY2UucmVxdWVzdENvb2tpZXM7CisgICAgICAgIHRoaXMuX2Nv
b2tpZXNWaWV3LnJlc3BvbnNlQ29va2llcyA9IHRoaXMucmVzb3VyY2UucmVzcG9uc2VDb29raWVz
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nv
dXJjZVZpZXcuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcwpp
bmRleCA4MDkyNTA1Li5hNjcyZjUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlVmlldy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlVmlldy5qcwpAQCAtNzMsNiArNzMsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLnNvdXJjZUZyYW1lLnJlc2l6ZSgpOwogICAgICAg
ICBpZiAodGhpcy5sb2NhbFNvdXJjZUZyYW1lKQogICAgICAgICAgICAgdGhpcy5sb2NhbFNvdXJj
ZUZyYW1lLnJlc2l6ZSgpOworICAgICAgICBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3Rv
dHlwZS5yZXNpemUuY2FsbCh0aGlzKTsKICAgICB9LAogCiAgICAgc2V0dXBTb3VyY2VGcmFtZUlm
TmVlZGVkOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvV2ViS2l0LnFyYyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCmlu
ZGV4IDQ4MWY4YjMuLmMyMzdlZWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9XZWJLaXQucXJjCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQu
cXJjCkBAIC0yMCw2ICsyMCw3IEBACiAgICAgPGZpbGU+Q29uc29sZVZpZXcuanM8L2ZpbGU+CiAg
ICAgPGZpbGU+Q29udGV4dE1lbnUuanM8L2ZpbGU+CiAgICAgPGZpbGU+Q29va2llSXRlbXNWaWV3
LmpzPC9maWxlPgorICAgIDxmaWxlPkNvb2tpZUl0ZW1zVmlld0Jhc2UuanM8L2ZpbGU+CiAgICAg
PGZpbGU+Q29va2llUGFyc2VyLmpzPC9maWxlPgogICAgIDxmaWxlPkNTU0NvbXBsZXRpb25zLmpz
PC9maWxlPgogICAgIDxmaWxlPkNTU1N0eWxlTW9kZWwuanM8L2ZpbGU+CkBAIC02OSw2ICs3MCw3
IEBACiAgICAgPGZpbGU+UmVtb3RlT2JqZWN0LmpzPC9maWxlPgogICAgIDxmaWxlPlJlc291cmNl
LmpzPC9maWxlPgogICAgIDxmaWxlPlJlc291cmNlQ2F0ZWdvcnkuanM8L2ZpbGU+CisgICAgPGZp
bGU+UmVzb3VyY2VDb29raWVzVmlldy5qczwvZmlsZT4KICAgICA8ZmlsZT5SZXNvdXJjZU1hbmFn
ZXIuanM8L2ZpbGU+CiAgICAgPGZpbGU+UmVzb3VyY2VzUGFuZWwuanM8L2ZpbGU+CiAgICAgPGZp
bGU+UmVzb3VyY2VWaWV3LmpzPC9maWxlPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmNzcwppbmRleCBkYjI5YTZhLi4zNWY3NmM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmNzcwpAQCAtODk4LDYgKzg5OCwyOSBAQCBib2R5LnBsYXRmb3Jt
LWxpbnV4IC5tb25vc3BhY2UsIGJvZHkucGxhdGZvcm0tbGludXggLnNvdXJjZS1jb2RlIHsKICAg
ICB0b3A6IDIwcHg7CiB9CiAKKy5yZXNvdXJjZS12aWV3IC5yZXNvdXJjZS12aWV3LWNvb2tpZXMg
eworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgcmlnaHQ6IDA7Cisg
ICAgbGVmdDogMDsKKyAgICBib3R0b206IDA7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgcGFk
ZGluZzogMTJweDsKK30KKworLnJlc291cmNlLXZpZXcuaGVhZGVycy12aXNpYmxlIC5yZXNvdXJj
ZS12aWV3LWNvb2tpZXMgeworICAgIHRvcDogMjBweDsKK30KKworLnJlc291cmNlLXZpZXctY29v
a2llcy50YWJsZSAuZGF0YS1ncmlkIHsKKyAgICBoZWlnaHQ6IDEwMCU7Cit9CisKKy5yZXNvdXJj
ZS12aWV3LWNvb2tpZXMgLmRhdGEtZ3JpZCAucm93LWdyb3VwIHsKKyAgICBmb250LXdlaWdodDog
Ym9sZDsKKyAgICBmb250LXNpemU6IDExcHg7Cit9CisKIC53ZWJraXQtbGluZS1ndXR0ZXItYmFj
a2Ryb3AgewogICAgIC8qIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdmlldy1zb3VyY2UuY3NzICgu
d2Via2l0LWxpbmUtZ3V0dGVyLWJhY2tkcm9wKSAqLwogICAgIHdpZHRoOiAzMXB4OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCmluZGV4IDk2ZDBjZmUuLmM4MDBh
NzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRt
bAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKQEAgLTY3
LDYgKzY3LDcgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJET01TdG9yYWdlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJET01TdG9yYWdlSXRlbXNWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJEYXRhR3JpZC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29va2llSXRlbXNWaWV3QmFz
ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Q29va2llSXRlbXNWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJBcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTY3JpcHQuanMiPjwvc2NyaXB0
PgpAQCAtMTEyLDYgKzExMyw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iQXVkaXRSdWxlcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQXVkaXRDYXRlZ29yaWVzLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJBdWRpdEZvcm1hdHRlcnMuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlJlc291
cmNlQ29va2llc1ZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IlJlc291cmNlVmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU291cmNlRnJhbWUuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRPTVN5bnRheEhpZ2hsaWdodGVyLmpz
Ij48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71735</attachid>
            <date>2010-10-25 05:09:20 -0700</date>
            <delta_ts>2010-10-25 09:13:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>cookies-ui.diff</filename>
            <type>text/plain</type>
            <size>31328</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTBiYmMxNS4uYmE5MDAxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMC0xMC0yNSAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgY29va2llcyBhc3NvY2lh
dGVkIHdpdGggcmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDgyMjYKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0Nvb2tpZUl0ZW1zVmlldy5qczogRmFjdG9yIG91dCBjb21tb24gY29va2llcyBncmlkIGxvZ2lj
IHRvIENvb2tpZUl0ZW1zVmlld0Jhc2UKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVJdGVt
c1ZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUu
X3BvcHVsYXRlRGF0YUdyaWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29va2ll
SXRlbXNWaWV3QmFzZS5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llSXRl
bXNWaWV3QmFzZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIu
anM6IFN0b3JlIGNvb2tpZSB0eXBlIChyZXF1ZXN0L3Jlc3BvbnNlKSB3aXRoaW4gYSBjb29raWUK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlLnBhcnNlQ29va2ll
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlLnBhcnNlU2V0
Q29va2llKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlLl9h
ZGRDb29raWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZSk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRh
R3JpZC5wcm90b3R5cGUudXBkYXRlV2lkdGhzKTogU2tpcCBhdHRlbXB0IHRvIGNhbGN1bGF0ZSBj
b2x1bW4gd2lkdGhzIGlmIGdyaWQgaXMgbm90IGF0dGFjaGVkIHRvIERPTSB0cmVlIHlldC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkZvbnRWaWV3LnByb3RvdHlwZS5yZXNpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VDb29raWVzVmlldyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZVZpZXcuanM6IEFkZGVkICJDb29raWVzIiB0YWIuIEFkanVzdGVkIHJlc2l6ZSBs
b2dpYyB0byBwYXNzIHJlc2l6ZSgpIGNhbGxzIHRvIENvb2tpZXMgdGFiLgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUucmVzaXplKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLl9zZWxlY3RUYWIpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUuX3NlbGVjdENvb2tpZXNUYWIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUuX2lubmVyU2VsZWN0Q29u
dGVudFRhYik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5f
cmVmcmVzaFJlcXVlc3RIZWFkZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVZp
ZXcucHJvdG90eXBlLl9yZWZyZXNoUmVzcG9uc2VIZWFkZXJzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLl9yZWZyZXNoSGVhZGVycyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5fcmVmcmVzaENvb2tpZXMpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZS5yZXNpemUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvV2ViS2l0LnFyYzoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5jc3M6CisgICAgICAgICgucmVzb3VyY2UtdmlldyAucmVzb3VyY2Utdmlldy1jb29r
aWVzKToKKyAgICAgICAgKC5yZXNvdXJjZS12aWV3LmhlYWRlcnMtdmlzaWJsZSAucmVzb3VyY2Ut
dmlldy1jb29raWVzKToKKyAgICAgICAgKC5yZXNvdXJjZS12aWV3LWNvb2tpZXMudGFibGUgLmRh
dGEtZ3JpZCk6CisgICAgICAgICgucmVzb3VyY2Utdmlldy1jb29raWVzIC5kYXRhLWdyaWQgLnJv
dy1ncm91cCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoK
KwogMjAxMC0xMC0yNCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEtpbHplci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2Q2NTY2OC4uMTY5YjEwMiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTQzNzEsNiArNDM3MSw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db250
ZXh0TWVudS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVt
c1ZpZXcuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNW
aWV3QmFzZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJz
ZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTQ29tcGxldGlvbnMu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcycs
CkBAIC00NDIwLDYgKzQ0MjEsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
UmVtb3RlT2JqZWN0LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ2F0ZWdv
cnkuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVz
Vmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZU1hbmFn
ZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VWaWV3LmpzJywK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGM3MDAwNzQuLjg5YWZmOWQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjM0OTQsNiArNjM0OTQs
MTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcQ29va2llSXRlbXNWaWV3QmFzZS5qcyINCisJCQkJ
CT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNw
ZWN0b3JcZnJvbnQtZW5kXENvb2tpZVBhcnNlci5qcyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0K
QEAgLTYzNzEwLDYgKzYzNzE0LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8Rmls
ZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFJlc291cmNlQ29v
a2llc1ZpZXcuanMiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJl
bGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxSZXNvdXJjZU1hbmFnZXIuanMiDQog
CQkJCQk+DQogCQkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29va2llSXRlbXNWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
b2tpZUl0ZW1zVmlldy5qcwppbmRleCAwYjA1ZjJhLi4zMTcxNjU5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMKQEAgLTI5LDEwICsyOSw5IEBA
CiAKIFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXcgPSBmdW5jdGlvbih0cmVlRWxlbWVudCwg
Y29va2llRG9tYWluKQogewotICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CisgICAg
V2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UuY2FsbCh0aGlzKTsKIAogICAgIHRoaXMu
ZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzdG9yYWdlLXZpZXciKTsKLSAgICB0aGlzLmVsZW1lbnQu
YWRkU3R5bGVDbGFzcygidGFibGUiKTsKIAogICAgIHRoaXMuZGVsZXRlQnV0dG9uID0gbmV3IFdl
Ykluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEZWxldGUi
KSwgImRlbGV0ZS1zdG9yYWdlLXN0YXR1cy1iYXItaXRlbSIpOwogICAgIHRoaXMuZGVsZXRlQnV0
dG9uLnZpc2libGUgPSBmYWxzZTsKQEAgLTE0MywxMDEgKzE0Miw5IEBAIFdlYkluc3BlY3Rvci5D
b29raWVJdGVtc1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAotICAgIF9j
cmVhdGVEYXRhR3JpZDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIGNvbHVtbnMgPSB7
IDA6IHt9LCAxOiB7fSwgMjoge30sIDM6IHt9LCA0OiB7fSwgNToge30sIDY6IHt9LCA3OiB7fSB9
OwotICAgICAgICBjb2x1bW5zWzBdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOYW1l
Iik7Ci0gICAgICAgIGNvbHVtbnNbMF0uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBjb2x1bW5z
WzFdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJWYWx1ZSIpOwotICAgICAgICBjb2x1
bW5zWzFdLnNvcnRhYmxlID0gdHJ1ZTsKLSAgICAgICAgY29sdW1uc1syXS50aXRsZSA9IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiRG9tYWluIik7Ci0gICAgICAgIGNvbHVtbnNbMl0uc29ydGFibGUg
PSB0cnVlOwotICAgICAgICBjb2x1bW5zWzNdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJQYXRoIik7Ci0gICAgICAgIGNvbHVtbnNbM10uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBj
b2x1bW5zWzRdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFeHBpcmVzIik7Ci0gICAg
ICAgIGNvbHVtbnNbNF0uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBjb2x1bW5zWzVdLnRpdGxl
ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaXplIik7Ci0gICAgICAgIGNvbHVtbnNbNV0uYWxp
Z25lZCA9ICJyaWdodCI7Ci0gICAgICAgIGNvbHVtbnNbNV0uc29ydGFibGUgPSB0cnVlOwotICAg
ICAgICBjb2x1bW5zWzZdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJIVFRQIik7Ci0g
ICAgICAgIGNvbHVtbnNbNl0uYWxpZ25lZCA9ICJjZW50ZXJlZCI7Ci0gICAgICAgIGNvbHVtbnNb
Nl0uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBjb2x1bW5zWzddLnRpdGxlID0gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJTZWN1cmUiKTsKLSAgICAgICAgY29sdW1uc1s3XS5hbGlnbmVkID0gImNl
bnRlcmVkIjsKLSAgICAgICAgY29sdW1uc1s3XS5zb3J0YWJsZSA9IHRydWU7Ci0KLSAgICAgICAg
dGhpcy5fZGF0YUdyaWQgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkKGNvbHVtbnMsIG51bGws
IHRoaXMuX2RlbGV0ZUNvb2tpZUNhbGxiYWNrLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9k
YXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKCJzb3J0aW5nIGNoYW5nZWQiLCB0aGlzLl9wb3B1bGF0
ZURhdGFHcmlkLCB0aGlzKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
X2RhdGFHcmlkLmVsZW1lbnQpOwotICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVXaWR0aHMo
KTsKLSAgICB9LAotCiAgICAgX3BvcHVsYXRlRGF0YUdyaWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0g
ICAgICAgIHZhciBzZWxlY3RlZENvb2tpZSA9IHRoaXMuX2RhdGFHcmlkLnNlbGVjdGVkTm9kZSA/
IHRoaXMuX2RhdGFHcmlkLnNlbGVjdGVkTm9kZS5jb29raWUgOiBudWxsOwotICAgICAgICB2YXIg
c29ydERpcmVjdGlvbiA9IHRoaXMuX2RhdGFHcmlkLnNvcnRPcmRlciA9PT0gImFzY2VuZGluZyIg
PyAxIDogLTE7Ci0KLSAgICAgICAgZnVuY3Rpb24gbG9jYWxlQ29tcGFyZShmaWVsZCwgY29va2ll
MSwgY29va2llMikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24g
KiAoY29va2llMVtmaWVsZF0gKyAiIikubG9jYWxlQ29tcGFyZShjb29raWUyW2ZpZWxkXSArICIi
KQotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gbnVtYmVyQ29tcGFyZShmaWVsZCwgY29v
a2llMSwgY29va2llMikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rp
b24gKiAoY29va2llMVtmaWVsZF0gLSBjb29raWUyW2ZpZWxkXSk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBmdW5jdGlvbiBleHBpcmVzQ29tcGFyZShjb29raWUxLCBjb29raWUyKQotICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoY29va2llMS5zZXNzaW9uICE9PSBjb29raWUyLnNlc3Npb24pCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMS5zZXNzaW9uID8g
MSA6IC0xKTsKLQotICAgICAgICAgICAgaWYgKGNvb2tpZTEuc2Vzc2lvbikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gMDsKLQotICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29v
a2llMS5leHBpcmVzIC0gY29va2llMi5leHBpcmVzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZh
ciBjb21wYXJhdG9yOwotICAgICAgICBzd2l0Y2ggKHBhcnNlSW50KHRoaXMuX2RhdGFHcmlkLnNv
cnRDb2x1bW5JZGVudGlmaWVyKSkgewotICAgICAgICAgICAgY2FzZSAwOiBjb21wYXJhdG9yID0g
bG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7IGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSAxOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJ2YWx1ZSIpOyBicmVh
azsKLSAgICAgICAgICAgIGNhc2UgMjogY29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0
aGlzLCAiZG9tYWluIik7IGJyZWFrOwotICAgICAgICAgICAgY2FzZSAzOiBjb21wYXJhdG9yID0g
bG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJwYXRoIik7IGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSA0OiBjb21wYXJhdG9yID0gZXhwaXJlc0NvbXBhcmU7IGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSA1OiBjb21wYXJhdG9yID0gbnVtYmVyQ29tcGFyZS5iaW5kKHRoaXMsICJzaXplIik7IGJyZWFr
OwotICAgICAgICAgICAgY2FzZSA2OiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRo
aXMsICJodHRwT25seSIpOyBicmVhazsKLSAgICAgICAgICAgIGNhc2UgNzogY29tcGFyYXRvciA9
IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAic2VjdXJlIik7IGJyZWFrOwotICAgICAgICAgICAg
ZGVmYXVsdDogbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7Ci0gICAgICAgIH0KLQot
ICAgICAgICB0aGlzLl9jb29raWVzLnNvcnQoY29tcGFyYXRvcik7Ci0KLSAgICAgICAgdGhpcy5f
ZGF0YUdyaWQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdmFyIG5vZGVUb1NlbGVjdDsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9jb29raWVzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICB2YXIgZGF0YSA9IHt9OwotICAgICAgICAgICAgdmFyIGNvb2tpZSA9IHRoaXMu
X2Nvb2tpZXNbaV07Ci0gICAgICAgICAgICBkYXRhWzBdID0gY29va2llLm5hbWU7Ci0gICAgICAg
ICAgICBkYXRhWzFdID0gY29va2llLnZhbHVlOwotICAgICAgICAgICAgZGF0YVsyXSA9IGNvb2tp
ZS5kb21haW47Ci0gICAgICAgICAgICBkYXRhWzNdID0gY29va2llLnBhdGg7Ci0gICAgICAgICAg
ICBkYXRhWzRdID0gKGNvb2tpZS5zZXNzaW9uID8gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZXNz
aW9uIikgOiBuZXcgRGF0ZShjb29raWUuZXhwaXJlcykudG9HTVRTdHJpbmcoKSk7Ci0gICAgICAg
ICAgICBkYXRhWzVdID0gTnVtYmVyLmJ5dGVzVG9TdHJpbmcoY29va2llLnNpemUsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZyk7Ci0gICAgICAgICAgICBkYXRhWzZdID0gKGNvb2tpZS5odHRwT25seSA/
ICJcdTI3MTMiIDogIiIpOyAvLyBDaGVja21hcmsKLSAgICAgICAgICAgIGRhdGFbN10gPSAoY29v
a2llLnNlY3VyZSA/ICJcdTI3MTMiIDogIiIpOyAvLyBDaGVja21hcmsKLQotICAgICAgICAgICAg
dmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhKTsKLSAgICAgICAg
ICAgIG5vZGUuY29va2llID0gY29va2llOwotICAgICAgICAgICAgbm9kZS5zZWxlY3RhYmxlID0g
dHJ1ZTsKLSAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFwcGVuZENoaWxkKG5vZGUpOwotICAg
ICAgICAgICAgaWYgKGNvb2tpZSA9PT0gc2VsZWN0ZWRDb29raWUpCi0gICAgICAgICAgICAgICAg
bm9kZVRvU2VsZWN0ID0gbm9kZTsKLSAgICAgICAgfQotICAgICAgICBpZiAobm9kZVRvU2VsZWN0
KQotICAgICAgICAgICAgbm9kZVRvU2VsZWN0LnNlbGVjdGVkID0gdHJ1ZTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuY2hpbGRyZW5bMF0uc2VsZWN0ZWQgPSB0cnVl
OworICAgICAgICB0aGlzLl9wb3B1bGF0ZUNvb2tpZXModGhpcy5fZGF0YUdyaWQsIHRoaXMuX2Nv
b2tpZXMpOwogICAgIH0sCiAKICAgICBfY3JlYXRlU2ltcGxlRGF0YUdyaWQ6IGZ1bmN0aW9uKCkK
QEAgLTI3MywxMiArMTgwLDYgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmNoaWxkcmVuWzBdLnNlbGVjdGVkID0gdHJ1
ZTsKICAgICB9LAogCi0gICAgcmVzaXplOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAo
dGhpcy5fZGF0YUdyaWQpCi0gICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVXaWR0aHMo
KTsKLSAgICB9LAotCiAgICAgX2RlbGV0ZUJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKGV2ZW50KQog
ICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3JpZCB8fCAhdGhpcy5fZGF0YUdyaWQuc2Vs
ZWN0ZWROb2RlKQpAQCAtMzAwLDQgKzIwMSw0IEBAIFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1Zp
ZXcucHJvdG90eXBlID0gewogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmll
dy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOworV2Vi
SW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlld0Jhc2UuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3QmFzZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAwMDAwMDAwLi4yNTYwYzIzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlld0Jhc2UuanMKQEAgLTAsMCArMSwxNjEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBKb3NlcGggUGVjb3Jhcm8KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5Db29raWVJ
dGVtc1ZpZXdCYXNlID0gZnVuY3Rpb24oKQoreworICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwo
dGhpcyk7CisKKyAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidGFibGUiKTsKK30KKwor
V2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UucHJvdG90eXBlID0geworICAgIHJlc2l6
ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3JpZCkKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAodGhpcy5fYXV0b1NpemluZ0RvbmUpCisgICAg
ICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVXaWR0aHMoKTsKKyAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICB0aGlzLl9hdXRvU2l6aW5nRG9uZSA9IHRydWU7CisgICAgICAgICAgICB0aGlz
Ll9kYXRhR3JpZC5hdXRvU2l6ZUNvbHVtbnMoNiwgMzMpOworICAgICAgICB9CisgICAgfSwKKwor
ICAgIF9jcmVhdGVEYXRhR3JpZDogZnVuY3Rpb24oZXhwYW5kYWJsZSkKKyAgICB7CisgICAgICAg
IHZhciBjb2x1bW5zID0geyAwOiB7fSwgMToge30sIDI6IHt9LCAzOiB7fSwgNDoge30sIDU6IHt9
LCA2OiB7fSwgNzoge30gfTsKKyAgICAgICAgY29sdW1uc1swXS50aXRsZSA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiTmFtZSIpOworICAgICAgICBjb2x1bW5zWzBdLnNvcnRhYmxlID0gdHJ1ZTsK
KyAgICAgICAgY29sdW1uc1swXS5kaXNjbG9zdXJlID0gZXhwYW5kYWJsZTsKKyAgICAgICAgY29s
dW1uc1sxXS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVmFsdWUiKTsKKyAgICAgICAg
Y29sdW1uc1sxXS5zb3J0YWJsZSA9IHRydWU7CisgICAgICAgIGNvbHVtbnNbMl0udGl0bGUgPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvbWFpbiIpOworICAgICAgICBjb2x1bW5zWzJdLnNvcnRh
YmxlID0gdHJ1ZTsKKyAgICAgICAgY29sdW1uc1szXS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiUGF0aCIpOworICAgICAgICBjb2x1bW5zWzNdLnNvcnRhYmxlID0gdHJ1ZTsKKyAgICAg
ICAgY29sdW1uc1s0XS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRXhwaXJlcyIpOwor
ICAgICAgICBjb2x1bW5zWzRdLnNvcnRhYmxlID0gdHJ1ZTsKKyAgICAgICAgY29sdW1uc1s1XS50
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2l6ZSIpOworICAgICAgICBjb2x1bW5zWzVd
LmFsaWduZWQgPSAicmlnaHQiOworICAgICAgICBjb2x1bW5zWzVdLnNvcnRhYmxlID0gdHJ1ZTsK
KyAgICAgICAgY29sdW1uc1s2XS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiSFRUUCIp
OworICAgICAgICBjb2x1bW5zWzZdLmFsaWduZWQgPSAiY2VudGVyZWQiOworICAgICAgICBjb2x1
bW5zWzZdLnNvcnRhYmxlID0gdHJ1ZTsKKyAgICAgICAgY29sdW1uc1s3XS50aXRsZSA9IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiU2VjdXJlIik7CisgICAgICAgIGNvbHVtbnNbN10uYWxpZ25lZCA9
ICJjZW50ZXJlZCI7CisgICAgICAgIGNvbHVtbnNbN10uc29ydGFibGUgPSB0cnVlOworCisgICAg
ICAgIHZhciBkZWxldGVDYWxsYmFjayA9IHRoaXMuX2RlbGV0ZUNvb2tpZUNhbGxiYWNrID8gdGhp
cy5fZGVsZXRlQ29va2llQ2FsbGJhY2suYmluZCh0aGlzKSA6IG51bGw7CisgICAgICAgIHRoaXMu
X2RhdGFHcmlkID0gbmV3IFdlYkluc3BlY3Rvci5EYXRhR3JpZChjb2x1bW5zLCBudWxsLCBkZWxl
dGVDYWxsYmFjayk7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZEV2ZW50TGlzdGVuZXIoInNv
cnRpbmcgY2hhbmdlZCIsIHRoaXMuX3BvcHVsYXRlRGF0YUdyaWQsIHRoaXMpOworICAgICAgICB0
aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZGF0YUdyaWQuZWxlbWVudCk7CisgICAgfSwK
KworICAgIF9wb3B1bGF0ZUNvb2tpZXM6IGZ1bmN0aW9uKHBhcmVudE5vZGUsIGNvb2tpZXMpCisg
ICAgeworICAgICAgICB2YXIgc2VsZWN0ZWRDb29raWUgPSB0aGlzLl9kYXRhR3JpZC5zZWxlY3Rl
ZE5vZGUgPyB0aGlzLl9kYXRhR3JpZC5zZWxlY3RlZE5vZGUuY29va2llIDogbnVsbDsKKyAgICAg
ICAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICBpZiAoIWNvb2tpZXMpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuX3NvcnRDb29raWVzKGNvb2tpZXMpOwor
ICAgICAgICB2YXIgdG90YWxTaXplID0gMDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBj
b29raWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgY29va2llTm9kZSA9IHRoaXMu
X2NyZWF0ZUdyaWROb2RlKGNvb2tpZXNbaV0pOworICAgICAgICAgICAgcGFyZW50Tm9kZS5hcHBl
bmRDaGlsZChjb29raWVOb2RlKTsKKyAgICAgICAgICAgIGlmIChzZWxlY3RlZENvb2tpZSA9PT0g
Y29va2llc1tpXSkKKyAgICAgICAgICAgICAgICBjb29raWVOb2RlLnNlbGVjdGVkID0gdHJ1ZTsK
KyAgICAgICAgfQorICAgIH0sCisKKyAgICBfc29ydENvb2tpZXM6IGZ1bmN0aW9uKGNvb2tpZXMp
CisgICAgeworICAgICAgICB2YXIgc29ydERpcmVjdGlvbiA9IHRoaXMuX2RhdGFHcmlkLnNvcnRP
cmRlciA9PT0gImFzY2VuZGluZyIgPyAxIDogLTE7CisKKyAgICAgICAgZnVuY3Rpb24gbG9jYWxl
Q29tcGFyZShmaWVsZCwgY29va2llMSwgY29va2llMikKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMVtmaWVsZF0gKyAiIikubG9jYWxlQ29tcGFy
ZShjb29raWUyW2ZpZWxkXSArICIiKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbnVt
YmVyQ29tcGFyZShmaWVsZCwgY29va2llMSwgY29va2llMikKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMVtmaWVsZF0gLSBjb29raWUyW2ZpZWxk
XSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBleHBpcmVzQ29tcGFyZShjb29raWUx
LCBjb29raWUyKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoY29va2llMS5zZXNzaW9uICE9
PSBjb29raWUyLnNlc3Npb24pCisgICAgICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24g
KiAoY29va2llMS5zZXNzaW9uID8gMSA6IC0xKTsKKworICAgICAgICAgICAgaWYgKGNvb2tpZTEu
c2Vzc2lvbikKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICAgICAgcmV0dXJu
IHNvcnREaXJlY3Rpb24gKiAoY29va2llMS5leHBpcmVzIC0gY29va2llMi5leHBpcmVzKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBjb21wYXJhdG9yOworICAgICAgICBzd2l0Y2ggKHBhcnNl
SW50KHRoaXMuX2RhdGFHcmlkLnNvcnRDb2x1bW5JZGVudGlmaWVyKSkgeworICAgICAgICAgICAg
Y2FzZSAwOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7IGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAxOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5k
KHRoaXMsICJ2YWx1ZSIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjogY29tcGFyYXRvciA9
IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAiZG9tYWluIik7IGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAzOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJwYXRoIik7IGJy
ZWFrOworICAgICAgICAgICAgY2FzZSA0OiBjb21wYXJhdG9yID0gZXhwaXJlc0NvbXBhcmU7IGJy
ZWFrOworICAgICAgICAgICAgY2FzZSA1OiBjb21wYXJhdG9yID0gbnVtYmVyQ29tcGFyZS5iaW5k
KHRoaXMsICJzaXplIik7IGJyZWFrOworICAgICAgICAgICAgY2FzZSA2OiBjb21wYXJhdG9yID0g
bG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJodHRwT25seSIpOyBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgNzogY29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAic2VjdXJlIik7
IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJu
YW1lIik7CisgICAgICAgIH0KKworICAgICAgICBjb29raWVzLnNvcnQoY29tcGFyYXRvcik7Cisg
ICAgfSwKKworICAgIF9jcmVhdGVHcmlkTm9kZTogZnVuY3Rpb24oY29va2llKQorICAgIHsKKyAg
ICAgICAgdmFyIGRhdGEgPSB7fTsKKyAgICAgICAgZGF0YVswXSA9IGNvb2tpZS5uYW1lOworICAg
ICAgICBkYXRhWzFdID0gY29va2llLnZhbHVlOworICAgICAgICBkYXRhWzJdID0gY29va2llLmRv
bWFpbiB8fCAiIjsKKyAgICAgICAgZGF0YVszXSA9IGNvb2tpZS5wYXRoIHx8ICIiOworICAgICAg
ICBkYXRhWzRdID0gY29va2llLnR5cGUgPT09ICJyZXF1ZXN0IiA/ICIiIDoKKyAgICAgICAgICAg
IChjb29raWUuc2Vzc2lvbiA/IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2Vzc2lvbiIpIDogbmV3
IERhdGUoY29va2llLmV4cGlyZXMpLnRvR01UU3RyaW5nKCkpOworICAgICAgICBkYXRhWzVdID0g
Y29va2llLnNpemU7CisgICAgICAgIGRhdGFbNl0gPSAoY29va2llLmh0dHBPbmx5ID8gIlx1Mjcx
MyIgOiAiIik7IC8vIENoZWNrbWFyaworICAgICAgICBkYXRhWzddID0gKGNvb2tpZS5zZWN1cmUg
PyAiXHUyNzEzIiA6ICIiKTsgLy8gQ2hlY2ttYXJrCisKKyAgICAgICAgdmFyIG5vZGUgPSBuZXcg
V2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhKTsKKyAgICAgICAgbm9kZS5jb29raWUgPSBj
b29raWU7CisgICAgICAgIG5vZGUuc2VsZWN0YWJsZSA9IHRydWU7CisgICAgICAgIHJldHVybiBu
b2RlOworICAgIH0KK307CisKK1dlYkluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXdCYXNlLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpzIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZVBhcnNlci5qcwppbmRleCAyYmU1ZGY3Li5jMmFlMWQw
IDEwMDc1NQotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpz
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIuanMKQEAgLTU0
LDcgKzU0LDcgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlci5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBpZiAoa3Yua2V5LmNoYXJBdCgwKSA9PT0gIiQiICYmIHRoaXMuX2xhc3RDb29raWUp
CiAgICAgICAgICAgICAgICAgdGhpcy5fbGFzdENvb2tpZS5hZGRBdHRyaWJ1dGUoa3Yua2V5LnNs
aWNlKDEpLCBrdi52YWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChrdi5rZXkudG9Mb3dlckNh
c2UoKSAhPT0gIiR2ZXJzaW9uIiAmJiB0eXBlb2Yga3YudmFsdWUgPT09ICJzdHJpbmciKQotICAg
ICAgICAgICAgICAgIHRoaXMuX2FkZENvb2tpZShrdik7CisgICAgICAgICAgICAgICAgdGhpcy5f
YWRkQ29va2llKGt2LCAicmVxdWVzdCIpOwogICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUFuZENo
ZWNrQ29va2llRGVsaW1pdGVyKCk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fZmx1c2hDb29r
aWUoKTsKQEAgLTY5LDcgKzY5LDcgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlci5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICBpZiAodGhpcy5fbGFzdENvb2tpZSkKICAgICAgICAgICAgICAg
ICB0aGlzLl9sYXN0Q29va2llLmFkZEF0dHJpYnV0ZShrdi5rZXksIGt2LnZhbHVlKTsKICAgICAg
ICAgICAgIGVsc2UgCi0gICAgICAgICAgICAgICAgdGhpcy5fYWRkQ29va2llKGt2KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9hZGRDb29raWUoa3YsICJyZXNwb25zZSIpOwogICAgICAgICAgICAg
aWYgKHRoaXMuX2FkdmFuY2VBbmRDaGVja0Nvb2tpZURlbGltaXRlcigpKQogICAgICAgICAgICAg
ICAgIHRoaXMuX2ZsdXNoQ29va2llKCk7CiAgICAgICAgIH0KQEAgLTEyOCwxNCArMTI4LDE0IEBA
IFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4g
bWF0Y2hbMF0ubWF0Y2goIlxuIikgIT09IG51bGw7CiAgICAgfSwKIAotICAgIF9hZGRDb29raWU6
IGZ1bmN0aW9uKGtleVZhbHVlKQorICAgIF9hZGRDb29raWU6IGZ1bmN0aW9uKGtleVZhbHVlLCB0
eXBlKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2xhc3RDb29raWUpCiAgICAgICAgICAgICB0
aGlzLl9sYXN0Q29va2llLnNpemUgPSBrZXlWYWx1ZS5wb3NpdGlvbiAtIHRoaXMuX2xhc3RDb29r
aWVQb3NpdGlvbjsKICAgICAgICAgLy8gTW96aWxsYSBidWcgMTY5MDkxOiBNb3ppbGxhLCBJRSBh
bmQgQ2hyb21lIHRyZWF0IHNpZ25sZSB0b2tlbiAody9vICI9IikgYXMKICAgICAgICAgLy8gc3Bl
Y2lmeWluZyBhIHZhbHVlIGZvciBhIGNvb2tpZSB3aXRoIGVtcHR5IG5hbWUuCi0gICAgICAgIHRo
aXMuX2xhc3RDb29raWUgPSBrZXlWYWx1ZS52YWx1ZSA/IG5ldyBXZWJJbnNwZWN0b3IuQ29va2ll
KGtleVZhbHVlLmtleSwga2V5VmFsdWUudmFsdWUpIDoKLSAgICAgICAgICAgIG5ldyBXZWJJbnNw
ZWN0b3IuQ29va2llKCIiLCBrZXlWYWx1ZS5rZXkpOworICAgICAgICB0aGlzLl9sYXN0Q29va2ll
ID0ga2V5VmFsdWUudmFsdWUgPyBuZXcgV2ViSW5zcGVjdG9yLkNvb2tpZShrZXlWYWx1ZS5rZXks
IGtleVZhbHVlLnZhbHVlLCB0eXBlKSA6CisgICAgICAgICAgICBuZXcgV2ViSW5zcGVjdG9yLkNv
b2tpZSgiIiwga2V5VmFsdWUua2V5LCB0eXBlKTsKICAgICAgICAgdGhpcy5fbGFzdENvb2tpZVBv
c2l0aW9uID0ga2V5VmFsdWUucG9zaXRpb247CiAgICAgICAgIHRoaXMuX2Nvb2tpZXMucHVzaCh0
aGlzLl9sYXN0Q29va2llKTsKICAgICB9CkBAIC0xNTEsMTAgKzE1MSwxMSBAQCBXZWJJbnNwZWN0
b3IuQ29va2llUGFyc2VyLnBhcnNlU2V0Q29va2llID0gZnVuY3Rpb24oaGVhZGVyKQogICAgIHJl
dHVybiAobmV3IFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIoKSkucGFyc2VTZXRDb29raWUoaGVh
ZGVyKTsKIH0KIAotV2ViSW5zcGVjdG9yLkNvb2tpZSA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKQor
V2ViSW5zcGVjdG9yLkNvb2tpZSA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCB0eXBlKQogewogICAg
IHRoaXMubmFtZSA9IG5hbWU7CiAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgIHRoaXMudHlw
ZSA9IHR5cGU7CiAgICAgdGhpcy5fYXR0cmlidXRlcyA9IHt9OwogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGF0YUdyaWQuanMKaW5kZXggMzAwNzQ5Ny4uMWM4MDRlOCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcwpAQCAtMzg4LDcgKzM4OCw4IEBAIFdlYklu
c3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB0YWJsZVdpZHRoID0g
dGhpcy5fZGF0YVRhYmxlLm9mZnNldFdpZHRoOwogICAgICAgICB2YXIgbnVtQ29sdW1ucyA9IGhl
YWRlclRhYmxlQ29sdW1ucy5sZW5ndGg7CiAgICAgICAgIAotICAgICAgICBpZiAoIXRoaXMuX2Nv
bHVtbldpZHRoc0luaXRpYWxpemVkKSB7CisgICAgICAgIC8vIERvIG5vdCBhdHRlbXB0IHRvIHVz
ZSBvZmZzZXRlcyBpZiB3ZSdyZSBub3QgYXR0YWNoZWQgdG8gdGhlIGRvY3VtZW50IHRyZWUgeWV0
LgorICAgICAgICBpZiAoIXRoaXMuX2NvbHVtbldpZHRoc0luaXRpYWxpemVkICYmIHRoaXMuZWxl
bWVudC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJib2R5IikpIHsKICAgICAgICAg
ICAgIC8vIEdpdmUgYWxsIHRoZSBjb2x1bW5zIGluaXRpYWwgd2lkdGhzIG5vdyBzbyB0aGF0IGR1
cmluZyBhIHJlc2l6ZSwKICAgICAgICAgICAgIC8vIHdoZW4gdGhlIHR3byBjb2x1bW5zIHRoYXQg
Z2V0IHJlc2l6ZWQgZ2V0IGEgcGVyY2VudCB2YWx1ZSBmb3IKICAgICAgICAgICAgIC8vIHRoZWly
IHdpZHRocywgYWxsIHRoZSBvdGhlciBjb2x1bW5zIGFscmVhZHkgaGF2ZSBwZXJjZW50IHZhbHVl
cwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzCmluZGV4IGIwMTEyMDQuLjc4
YTdlNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Gb250Vmlldy5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRm9udFZpZXcuanMKQEAgLTY5LDYg
KzY5LDcgQEAgV2ViSW5zcGVjdG9yLkZvbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICByZXNpemU6
IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMudXBkYXRlRm9udFByZXZpZXdTaXplKCk7
CisgICAgICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLnJlc2l6ZS5jYWxs
KHRoaXMpOwogICAgIH0sCiAKICAgICB1cGRhdGVGb250UHJldmlld1NpemU6IGZ1bmN0aW9uKCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUNvb2tpZXNW
aWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ29va2llc1ZpZXcu
anMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTNhMmY5NQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUNvb2tpZXNWaWV3
LmpzCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisKK1dlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3ID0g
ZnVuY3Rpb24oKQoreworICAgIFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXdCYXNlLmNhbGwo
dGhpcyk7CisgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInJlc291cmNlLXZpZXctY29v
a2llcyIpOworICAgIHRoaXMuX3JlcXVlc3RDb29raWVzID0gW107CisgICAgdGhpcy5fcmVzcG9u
c2VDb29raWVzID0gW107CisgICAgdGhpcy5fY3JlYXRlRGF0YUdyaWQodHJ1ZSk7CisgICAgdGhp
cy5fcmVxdWVzdENvb2tpZXNOb2RlID0gdGhpcy5fY3JlYXRlRm9sZGVyKFdlYkluc3BlY3Rvci5V
SVN0cmluZygiUmVxdWVzdCBDb29raWVzIikpOworICAgIHRoaXMuX3Jlc3BvbnNlQ29va2llc05v
ZGUgPSB0aGlzLl9jcmVhdGVGb2xkZXIoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXNwb25zZSBD
b29raWVzIikpOworfQorCitXZWJJbnNwZWN0b3IuUmVzb3VyY2VDb29raWVzVmlldy5wcm90b3R5
cGUgPSB7CisgICAgc2V0IHJlcXVlc3RDb29raWVzKGNvb2tpZXMpCisgICAgeworICAgICAgICBp
ZiAodGhpcy5fcmVxdWVzdENvb2tpZXMgPT09IGNvb2tpZXMpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIHRoaXMuX3JlcXVlc3RDb29raWVzID0gY29va2llczsKKyAgICAgICAgdGhpcy5f
cG9wdWxhdGVDb29raWVzKHRoaXMuX3JlcXVlc3RDb29raWVzTm9kZSwgdGhpcy5fcmVxdWVzdENv
b2tpZXMpOworICAgIH0sCisKKyAgICBzZXQgcmVzcG9uc2VDb29raWVzKGNvb2tpZXMpCisgICAg
eworICAgICAgICBpZiAodGhpcy5fcmVzcG9uc2VDb29raWVzID09PSBjb29raWVzKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLl9yZXNwb25zZUNvb2tpZXMgPSBjb29raWVzOwor
ICAgICAgICB0aGlzLl9wb3B1bGF0ZUNvb2tpZXModGhpcy5fcmVzcG9uc2VDb29raWVzTm9kZSwg
dGhpcy5fcmVzcG9uc2VDb29raWVzKTsKKyAgICB9LAorCisgICAgX3BvcHVsYXRlRGF0YUdyaWQ6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BvcHVsYXRlQ29va2llcyh0aGlzLl9y
ZXF1ZXN0Q29va2llc05vZGUsIHRoaXMuX3JlcXVlc3RDb29raWVzKTsKKyAgICAgICAgdGhpcy5f
cG9wdWxhdGVDb29raWVzKHRoaXMuX3Jlc3BvbnNlQ29va2llc05vZGUsIHRoaXMuX3Jlc3BvbnNl
Q29va2llcyk7CisgICAgfSwKKworICAgIF9wb3B1bGF0ZUNvb2tpZXM6IGZ1bmN0aW9uKHBhcmVu
dE5vZGUsIGNvb2tpZXMpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuQ29va2llSXRlbXNW
aWV3QmFzZS5wcm90b3R5cGUuX3BvcHVsYXRlQ29va2llcy5jYWxsKHRoaXMsIHBhcmVudE5vZGUs
IGNvb2tpZXMpOworICAgICAgICB2YXIgdG90YWxTaXplID0gMDsKKyAgICAgICAgaWYgKGNvb2tp
ZXMpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29va2llcy5sZW5ndGg7ICsr
aSkKKyAgICAgICAgICAgICAgICB0b3RhbFNpemUgKz0gY29va2llc1tpXS5zaXplOworICAgICAg
ICB9CisgICAgICAgIHBhcmVudE5vZGUuZXhwYW5kZWQgPSB0cnVlOworICAgICAgICBwYXJlbnRO
b2RlLmRhdGFbNV0gPSB0b3RhbFNpemU7CisgICAgICAgIHBhcmVudE5vZGUucmVmcmVzaCgpOwor
ICAgIH0sCisKKyAgICBfY3JlYXRlRm9sZGVyOiBmdW5jdGlvbihuYW1lKQorICAgIHsKKyAgICAg
ICAgdmFyIGRhdGEgPSBbIG5hbWUsICIiLCAiIiwgIiIsICIiLCAwLCAiIiwgIiIgXTsKKyAgICAg
ICAgdmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhKTsKKyAgICAg
ICAgbm9kZS5zZWxlY3RhYmxlID0gdHJ1ZTsKKyAgICAgICAgbm9kZS5leHBhbmRlZCA9IHRydWU7
CisgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFwcGVuZENoaWxkKG5vZGUpOworICAgICAgICBub2Rl
LmVsZW1lbnQuYWRkU3R5bGVDbGFzcygicm93LWdyb3VwIik7CisgICAgICAgIHJldHVybiBub2Rl
OworICAgIH0KK307CisKK1dlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3LnByb3RvdHlw
ZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQ29va2llSXRlbXNWaWV3QmFzZS5wcm90b3R5cGU7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VWaWV3Lmpz
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVmlldy5qcwppbmRleCA4NjI1
NjlmLi4xMGIzYzgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VWaWV3LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVZp
ZXcuanMKQEAgLTEzOSwxNCArMTM5LDIwIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJv
dG90eXBlID0gewogICAgICAgICB0aGlzLl9zZWxlY3RUYWIoKTsKICAgICB9LAogCisgICAgcmVz
aXplOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fY29va2llc1ZpZXcgJiYg
IXRoaXMuX2Nvb2tpZXNWaWV3LmVsZW1lbnQuaGFzU3R5bGVDbGFzcygiaGlkZGVuIikpCisgICAg
ICAgICAgICB0aGlzLl9jb29raWVzVmlldy5yZXNpemUoKTsKKyAgICB9LAorCiAgICAgX3NlbGVj
dFRhYjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2hlYWRlcnNWaXNpYmxl
KSB7Ci0gICAgICAgICAgICBpZiAoIXRoaXMuaGFzQ29udGVudFRhYigpIHx8IFdlYkluc3BlY3Rv
ci5hcHBsaWNhdGlvblNldHRpbmdzLnJlc291cmNlVmlld1RhYiA9PT0gImhlYWRlcnMiKQotICAg
ICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEhlYWRlcnNUYWIoKTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdENvbnRlbnRUYWIoKTsKLSAgICAgICAgfSBlbHNl
CisgICAgICAgIHZhciBwcmVmZXJyZWRUYWIgPSBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0
aW5ncy5yZXNvdXJjZVZpZXdUYWI7CisgICAgICAgIGlmICh0aGlzLl9oZWFkZXJzVmlzaWJsZSAm
JiB0aGlzLl9jb29raWVzVmlldyAmJiBwcmVmZXJyZWRUYWIgPT09ICJjb29raWVzIikKKyAgICAg
ICAgICAgIHRoaXMuX3NlbGVjdENvb2tpZXNUYWIoKTsKKyAgICAgICAgZWxzZSBpZiAodGhpcy5f
aGVhZGVyc1Zpc2libGUgJiYgKCF0aGlzLmhhc0NvbnRlbnRUYWIoKSB8fCBwcmVmZXJyZWRUYWIg
PT09ICJoZWFkZXJzIikpCisgICAgICAgICAgICB0aGlzLl9zZWxlY3RIZWFkZXJzVGFiKCk7Cisg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuX2lubmVyU2VsZWN0Q29udGVudFRhYigpOwog
ICAgIH0sCiAKQEAgLTE3MCwxMSArMTc2LDE4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSwKIAorICAgIF9zZWxl
Y3RDb29raWVzVGFiOiBmdW5jdGlvbih1cGRhdGVQcmVmcykKKyAgICB7CisgICAgICAgIGlmICh1
cGRhdGVQcmVmcykKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdz
LnJlc291cmNlVmlld1RhYiA9ICJjb29raWVzIjsKKyAgICAgICAgdGhpcy50YWJiZWRQYW5lLnNl
bGVjdFRhYkJ5SWQoImNvb2tpZXMiKTsKKyAgICAgICAgdGhpcy5fY29va2llc1ZpZXcucmVzaXpl
KCk7CisgICAgfSwKKwogICAgIF9pbm5lclNlbGVjdENvbnRlbnRUYWI6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIHRoaXMudGFiYmVkUGFuZS5zZWxlY3RUYWJCeUlkKCJjb250ZW50Iik7Ci0g
ICAgICAgIGlmICgicmVzaXplIiBpbiB0aGlzKQotICAgICAgICAgICAgdGhpcy5yZXNpemUoKTsK
KyAgICAgICAgdGhpcy5yZXNpemUoKTsKICAgICAgICAgaWYgKHRoaXMuaGFzQ29udGVudFRhYigp
KQogICAgICAgICAgICAgdGhpcy5jb250ZW50VGFiU2VsZWN0ZWQoKTsKICAgICB9LApAQCAtMjgz
LDYgKzI5Niw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgYWRkaXRpb25hbFJvdyA9IHtoZWFkZXI6ICIoS2V5MykiLCB2YWx1ZTogdGhpcy5y
ZXNvdXJjZS53ZWJTb2NrZXRSZXF1ZXN0S2V5M307CiAgICAgICAgIHRoaXMuX3JlZnJlc2hIZWFk
ZXJzKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVxdWVzdCBIZWFkZXJzIiksIHRoaXMucmVzb3Vy
Y2Uuc29ydGVkUmVxdWVzdEhlYWRlcnMsIGFkZGl0aW9uYWxSb3csIHRoaXMucmVxdWVzdEhlYWRl
cnNUcmVlRWxlbWVudCk7CiAgICAgICAgIHRoaXMuX3JlZnJlc2hGb3JtRGF0YSgpOworICAgICAg
ICB0aGlzLl9yZWZyZXNoQ29va2llcygpOwogICAgIH0sCiAKICAgICBfcmVmcmVzaFJlc3BvbnNl
SGVhZGVyczogZnVuY3Rpb24oKQpAQCAtMjkxLDYgKzMwNSw3IEBAIFdlYkluc3BlY3Rvci5SZXNv
dXJjZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzb3VyY2Uu
d2ViU29ja2V0Q2hhbGxlbmdlUmVzcG9uc2UgIT09ICJ1bmRlZmluZWQiKQogICAgICAgICAgICAg
YWRkaXRpb25hbFJvdyA9IHtoZWFkZXI6ICIoQ2hhbGxlbmdlIFJlc3BvbnNlKSIsIHZhbHVlOiB0
aGlzLnJlc291cmNlLndlYlNvY2tldENoYWxsZW5nZVJlc3BvbnNlfTsKICAgICAgICAgdGhpcy5f
cmVmcmVzaEhlYWRlcnMoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXNwb25zZSBIZWFkZXJzIiks
IHRoaXMucmVzb3VyY2Uuc29ydGVkUmVzcG9uc2VIZWFkZXJzLCBhZGRpdGlvbmFsUm93LCB0aGlz
LnJlc3BvbnNlSGVhZGVyc1RyZWVFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaENvb2tp
ZXMoKTsKICAgICB9LAogCiAgICAgX3JlZnJlc2hIVFRQSW5mb3JtYXRpb246IGZ1bmN0aW9uKCkK
QEAgLTM0Nyw2ICszNjIsMTggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBoZWFkZXJUcmVlRWxlbWVudC5zZWxlY3RhYmxlID0gZmFsc2U7CiAg
ICAgICAgICAgICBoZWFkZXJzVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQoaGVhZGVyVHJlZUVsZW1l
bnQpOwogICAgICAgICB9CisgICAgfSwKKworICAgIF9yZWZyZXNoQ29va2llczogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9jb29raWVzVmlldykgeworICAgICAgICAgICAg
aWYgKCF0aGlzLnJlc291cmNlLnJlcXVlc3RDb29raWVzICYmICF0aGlzLnJlc291cmNlLnJlc3Bv
bnNlQ29va2llcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB0aGlzLl9j
b29raWVzVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDb29raWVzVmlldygpOworICAg
ICAgICAgICAgdGhpcy50YWJiZWRQYW5lLmFwcGVuZFRhYigiY29va2llcyIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiQ29va2llcyIpLCB0aGlzLl9jb29raWVzVmlldy5lbGVtZW50LCB0aGlzLl9z
ZWxlY3RDb29raWVzVGFiLmJpbmQodGhpcywgdHJ1ZSkpOworICAgICAgICB9CisgICAgICAgIHRo
aXMuX2Nvb2tpZXNWaWV3LnJlcXVlc3RDb29raWVzID0gdGhpcy5yZXNvdXJjZS5yZXF1ZXN0Q29v
a2llczsKKyAgICAgICAgdGhpcy5fY29va2llc1ZpZXcucmVzcG9uc2VDb29raWVzID0gdGhpcy5y
ZXNvdXJjZS5yZXNwb25zZUNvb2tpZXM7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VWaWV3LmpzCmluZGV4IDgwOTI1MDUuLmE2NzJmNTIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzCkBAIC03Myw2ICs3Myw3IEBAIFdlYklu
c3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuc291cmNl
RnJhbWUucmVzaXplKCk7CiAgICAgICAgIGlmICh0aGlzLmxvY2FsU291cmNlRnJhbWUpCiAgICAg
ICAgICAgICB0aGlzLmxvY2FsU291cmNlRnJhbWUucmVzaXplKCk7CisgICAgICAgIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLnJlc2l6ZS5jYWxsKHRoaXMpOwogICAgIH0sCiAK
ICAgICBzZXR1cFNvdXJjZUZyYW1lSWZOZWVkZWQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5kZXggNDgxZjhiMy4uYzIzN2VlYiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTIwLDYgKzIwLDcgQEAKICAgICA8ZmlsZT5D
b25zb2xlVmlldy5qczwvZmlsZT4KICAgICA8ZmlsZT5Db250ZXh0TWVudS5qczwvZmlsZT4KICAg
ICA8ZmlsZT5Db29raWVJdGVtc1ZpZXcuanM8L2ZpbGU+CisgICAgPGZpbGU+Q29va2llSXRlbXNW
aWV3QmFzZS5qczwvZmlsZT4KICAgICA8ZmlsZT5Db29raWVQYXJzZXIuanM8L2ZpbGU+CiAgICAg
PGZpbGU+Q1NTQ29tcGxldGlvbnMuanM8L2ZpbGU+CiAgICAgPGZpbGU+Q1NTU3R5bGVNb2RlbC5q
czwvZmlsZT4KQEAgLTY5LDYgKzcwLDcgQEAKICAgICA8ZmlsZT5SZW1vdGVPYmplY3QuanM8L2Zp
bGU+CiAgICAgPGZpbGU+UmVzb3VyY2UuanM8L2ZpbGU+CiAgICAgPGZpbGU+UmVzb3VyY2VDYXRl
Z29yeS5qczwvZmlsZT4KKyAgICA8ZmlsZT5SZXNvdXJjZUNvb2tpZXNWaWV3LmpzPC9maWxlPgog
ICAgIDxmaWxlPlJlc291cmNlTWFuYWdlci5qczwvZmlsZT4KICAgICA8ZmlsZT5SZXNvdXJjZXNQ
YW5lbC5qczwvZmlsZT4KICAgICA8ZmlsZT5SZXNvdXJjZVZpZXcuanM8L2ZpbGU+CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4IGRiMjlhNmEuLjM1Zjc2Yzkg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC04OTgsNiAr
ODk4LDI5IEBAIGJvZHkucGxhdGZvcm0tbGludXggLm1vbm9zcGFjZSwgYm9keS5wbGF0Zm9ybS1s
aW51eCAuc291cmNlLWNvZGUgewogICAgIHRvcDogMjBweDsKIH0KIAorLnJlc291cmNlLXZpZXcg
LnJlc291cmNlLXZpZXctY29va2llcyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRv
cDogMDsKKyAgICByaWdodDogMDsKKyAgICBsZWZ0OiAwOworICAgIGJvdHRvbTogMDsKKyAgICBv
dmVyZmxvdzogYXV0bzsKKyAgICBwYWRkaW5nOiAxMnB4OworfQorCisucmVzb3VyY2Utdmlldy5o
ZWFkZXJzLXZpc2libGUgLnJlc291cmNlLXZpZXctY29va2llcyB7CisgICAgdG9wOiAyMHB4Owor
fQorCisucmVzb3VyY2Utdmlldy1jb29raWVzLnRhYmxlIC5kYXRhLWdyaWQgeworICAgIGhlaWdo
dDogMTAwJTsKK30KKworLnJlc291cmNlLXZpZXctY29va2llcyAuZGF0YS1ncmlkIC5yb3ctZ3Jv
dXAgeworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgIGZvbnQtc2l6ZTogMTFweDsKK30KKwog
LndlYmtpdC1saW5lLWd1dHRlci1iYWNrZHJvcCB7CiAgICAgLyogS2VlcCB0aGlzIGluIHN5bmMg
d2l0aCB2aWV3LXNvdXJjZS5jc3MgKC53ZWJraXQtbGluZS1ndXR0ZXItYmFja2Ryb3ApICovCiAg
ICAgd2lkdGg6IDMxcHg7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmh0bWwgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0
bWwKaW5kZXggOTZkMGNmZS4uYzgwMGE3MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuaHRtbApAQCAtNjcsNiArNjcsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRPTVN0b3JhZ2UuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRPTVN0b3JhZ2VJdGVtc1ZpZXcu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRh
dGFHcmlkLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJDb29raWVJdGVtc1ZpZXdCYXNlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJDb29raWVJdGVtc1ZpZXcuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkFwcGxpY2F0aW9uQ2FjaGVJdGVt
c1ZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9IlNjcmlwdC5qcyI+PC9zY3JpcHQ+CkBAIC0xMTIsNiArMTEzLDcgQEAgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJBdWRpdFJ1bGVzLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJBdWRpdENhdGVn
b3JpZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9IkF1ZGl0Rm9ybWF0dGVycy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iUmVzb3VyY2VDb29raWVzVmlldy5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iUmVzb3VyY2VWaWV3LmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTb3VyY2VGcmFt
ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
RE9NU3ludGF4SGlnaGxpZ2h0ZXIuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>71759</attachid>
            <date>2010-10-25 09:10:34 -0700</date>
            <delta_ts>2010-10-25 09:10:52 -0700</delta_ts>
            <desc>updated screenshot</desc>
            <filename>cookies-ui.png</filename>
            <type>image/png</type>
            <size>17701</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAA6UAAAExCAIAAAALK5NtAABE7ElEQVR42u2dCZQURZ7/s0VHEdjR
2fEc3swA3aCIgzIIAqIignYrHjjjjheIq93YyCkIQnN1N2cDAsrV4irq6HqjCO3I6SioiOcoz5UW
d/ftzDr+V0UBGZXjH1VZlZWVlRWd1WR35q/q85n3nKyoyIjvLyKI+FZUVHZe+ebPbjrViPC3t24a
+sZ2w7hy3NBJxp86v56/bVgblfzqwns3dhs66Rdv3TTPmPYvX/WPpwMAAABkB/+98rGrH/nSvG5/
042PXHV85OqtP/125ifq//MuKIqan0/Lr1nzfORl2yte+cQYF3dHc875pXln3ErlGW3veeaSnn+z
3v36kdE1xqjrY47LzGm7UXmtkf997rPqpbPGyFsjXonkyWsVzWCTGjFs5xhWnrxWba8wvmylajG0
qlzicqkla1i+fHlFRUWe8rsXbH2s/393tQKu/uWNj3SpvWnoV8WRRlFd+2are+NtN8qYMHRHX/Xy
VNVzj372L7GGBgAAAAAIGwm/qz5t1P3pwfogkvKZAAAAAAAghNxv+t3PPvssaCUAAAAAAP5Tjd8F
AAAAgCxm6fLllfhdAAAAAMhWFuN3AQAAACCLWYTfBQAAAIAs5t7ly6cpv/vII48ErQQAAAAAwH/e
/fjjyP7u3//+96CVAAAAAAD4z8yFC/G7AAAAAJC1zMLvAgAAAEAWo/zuNPwuAAAAAGQrs9nfBQAA
AIAsZs7ChRX4XQAAAADIVubo93fff//9Rx99tKqqypfKbr755r/+9a9LlizJz89/7733xowZU1pa
evXVV9fW1qqLk046yfWxaEVFRT/++OPatWvtiZ9++unSpUtVIer6rLPOGjx4cJs2bTzKcC2wIcJX
VTz88MOff/650jZw4MBu3bo5yvSuBAAAAADqx1y93/XXkC1YsODFF18cMmTIVVddVV1d/dRTT51/
/vkTJ05cuXLlokWLLr/88uHDh3vUYFrn++67r0WLFoMGDVJeWTlLjzK8B3U44b/++uuTJ08uLCws
KyubPn26CnzOnDkdO3a0l4nfBQAAAGhoEn7X9F4DBgx49tln1RulpaX33HOPSjHzKU+mDJx6y9xS
7du3b//+/b1vqZps3bp1woQJZ5999uzZs++4447/+I//OOWUU5RPveuuu959991p06a1b99e+eBX
X31VZe7Ro8fgwYObN29uCrvmmmtU7covmlu511577ddff71s2bL8/PymTZsePHhw3759e/bsUdZZ
FdisWbNLLrnkxhtvVLerxHnz5r322mvKE0+ZMkXda7lMRVVVlYpl9OjRKpujalWFPfxMW1bZ+k8+
+eSJJ5742c9+9uWXX15//fVK/Icffmgv01Tyu9/97qWXXjLbvE+fPqlKrEZo27btoUOHFi9eHPSw
AQAAABCD0+9WVla2bNnylltuOfbYY19++eULLrhAJW7ZsmXv3r2mxXz66afV9aBBg5R7U7Y1o8qU
JVUuef/+/cqSqipUCW+//faSJUuGDh2qEl944YUVK1Y888wzDz30kMqsMijPOmrUKFOYcsNNmjQZ
N26cuSW8evXq+fPnq2ymrz355JPVtfK1NTU16l1lClUgyiIrs1heXq68oyrz1ltvbdWqlTKLZoHK
ZCuzq67Hjh37/fffL1261FG1KscefqYta9aybt06JSYvL6+wsPDoo492NKkV2i9+8QuzzZ977rlU
JVYj3HvvvcrfH3nkkUEPGwAAAAAxOP3uhg0blD+79NJLzR1Q+xfud99997Zt29TFeeed17lz5759
+x511FGZ1qes7ccff3z22We/++67TzzxxA033NCtWzflR9u1a3ffffeZltqe39KghBlRd2vqUZ5P
pSi7/Oc//3nPnj0DBw5UrtfMuXHjRiO6A638pbKPZuL69eutbWAzxSx/2LBh/fr1Uxeaqut33sBx
r/Uy9TyDo801SlQUKoSAhgoAAACASJx+13Gu1J54zDHHfPDBB8pfvvLKK59//vnJJ5/s+vMyPcrj
Ll++XF306tVrwoQJd9xxh7K/6uUf/vCHf/3XfzWr27Jli5Xf2gRNPfCqLG+TJk2+++67yy+/fP/+
/alWUgl+9tlnUz2rmXLZZZdt3rxZmWDz4G+dVWfKuHHjzN3r/Px88wd5nTp1mjlzZrpwHG3uoxIA
AACAXMaT333uueeaN29unrJ94IEHTj311H79+p144okrVqzItL4PP/xw5MiRRnxj9cUXX1ywYIF6
OW3atC5duixcuHDVqlW33357x44dhwwZcuaZZ5pHDpQGlagc9uTJk5VRHj9+vPl7taVLlxrRk7In
nXSSEmPernSqxNmzZ5seevr06Rs3bjRPTdjPMyjjrvJYPyPTVG2Gn2mk27Ztu/vuu83TFxUVFao6
VcXpp59uL9O1zTVK8LsAAAAAmTJH73eVS5s/f/7u3btLS0svv/xyZRA3bdqkMpx99tnKsLZs2TLT
+o444gjzi/vHHnvshBNO+Oyzz4qLi1X6hg0bDhw48MMPPzz88MPm/rFyiuPGjTvqqKOsH3U9/fTT
ql6V+LOf/ex//ud/lC9U/tsuRt2ufK2ysMpKXnbZZQMGDPjJT36i7jVln3LKKcr7qmxWdObv5woL
C0eNGuVatT38q6++OqNImzRp8tZbby1fvnzHjh35+fm33XZb586dDx48aC/z/vvvT21zTSPgdwEA
AAAypcryu82aNTOiX52r/1rXRx55pLKMeXl533///f79+48++mjzx1KmN63fWVKz8O++++7QoUPK
/jZt2tSqV6GqU05RpavqVKVWfuX2lO1T9apE80Yzp0OMqVBlULerRLNMM1FlUPeq/1rRqduPOeYY
VbKZM7VqR/iZRqpKU7erAlWlqgql01GmEpba5ppGqMfP5gAAAABynFkLF07j76sBAAAAQLYyQ//3
JgAAAAAARFOxgP1dAAAAAMheJs9ZOL0SvwsAAAAAWcrdM/C7AAAAAJC9jC5fOHMafhcAAAAAspQR
k/C7AAAAAJC93DF+4czpFXn1+MvAAAAAAADhZ+WG7RG/u2vXrkOHDuXl5Vlv5EX5xz/+8ac//amw
sDBonQAAAAAA9aF49JwZ0yvr8LuXXnpp0DoBAAAAAOpDyZh5de/vXnLJJUHrhBiqO4KWUE8YRQAA
ABAIpePmz6jT7/bt2zdonRDj5ZdfvvHGG4NWkTGPPvooowgAAAACYVjZwhnT6vK7ffr0CVonxFi7
dq1Qv8soAgAAgEC4c+q9dfvdiy++OGidEGPdunVC/S6jCAAAAAJh/Mz7In9fbffu3UccccTBgwcP
HDhgvmH3u7179w5aJ8RYv369UL/LKAIAAIBAmDJvUcTv7t2799xzz33jjTcsy2v3uxdddFE9ir7i
iit+/PHHmpoax/XhlNNorFu3bu3atX/5y1+aNWvWrVu3G2644aSTTvJ++wcffPDYY4/NnDkzo0q9
3LVhw4Z0fnfVqlUrV658++23mzdvrrps8ODBp556qvfaO3furNr5/fffrzOxHii/W79RBAAAAHCY
TL938bSKirxf/vKXys+1bdu2urratLx2v9urV696FH3llVcqq7RmzRrH9eGU0zisX79+7ty5nTp1
qqysfPfddydMmNCxY8cZM2Y0tGYvd23cuNHV7yqzW1ZW1qVLl3nz5m3btm3EiBHq+v777/deu1/W
1hXld+s3igAAAAAOk6olSyqV3y0sLDzrrLP++Z//+Ycffhg+fPjBKJbfvfDCC+tR9FVXXaX80+rV
q+3Xe/bseeCBBzZv3qwSu3XrdttttzVv3nznzp3Tpk37/PPPmzVrVlJS0rt3b5WivNoHH3ygbnzx
xRf379+f7l6z5Pz8fJW4YMGCN95444UXXjBN28UXX6wcZOvWrTNVrgzue++9V1FRoSzvkUceeeyx
xyoB3333nRKgbOUf//hHldKnT5/rrrvOEnDDDTesXLlS3av033vvvSrFLEovW3NXOm2bNm1y9buq
2K1bt86fP99hK3fv3v3YY48tWbLErFRV1KJFC9dEy++qGCdOnHjFFVeUl5dbieoW9Rlg3bp1qsyL
LrpozJgx6hYlRrWGqteIbsMrYe3atXOVrfxu/UYRAAAAwGFyz9KlEb+rDNnxxx/ftGnTY445Zt++
fRdccIFyeJbfVS/rUfTVV19tGTgT5VyXL1+uHJ6qzohaNGVJhw0bNnLkyCFDhrRt21Z5JiXg3//9
32fMmKEMojLBSsbkyZM195q13HPPPcryKsHKcu3ateuJJ55QLlPlOfPMM1Uh9VP+9NNPKzH29IUL
F7788svjx49X19OnT1dO8dZbbzUzT506tWXLlqpGZYXXrFmjLLtK/POf//ztt99qZGvuSqftlVde
cfW7pjF97bXXlA21p0+ZMuW5556rrKxU12VlZTfddNPo0aNdE80SVKJldg3bpu+cOXMeeeSRJ598
UiX+4Q9/UB8kVCHKW3/11VdKuWptlagyp9tRVn63fqMIAAAA4DBZuGxZxO/u3bvXnurY3z3//PPr
UXT//v1N96auTSe3atUqZa2UH7VnU4nKLSkjpUzVzp07zRTzXvvZ33T3mjmV5TKPHSsT9vbbbxvR
nVRlv/r06WN/6ERGypV1O/nkk1PTX3rpJXXdr1+/o48++vHHH7ekqhYzd20tVepC5dTI1tyVDtWe
Gr+r2uEXv/hFarq54a2ulYNXnliTaN41duzY66+/3n67aW3tJavE4uLiN99804ju+KqcqqccbttC
+d36jSIAAACAw+S+6uqI39U/j6xnz571KPqaa65RVumFF16wX5sXr7zyipXtm2++GTx48N/+9rd5
8+Ypm2XP5uVee05Fs2bNPvroo1ejfP755yeddFJGZ1hNlGl+5513zOOwmoiU333sscc0Uu2JGtmu
d6VDxZXReYZM/e6VV16ppKpmNI8RWznTne5Vny42RFE9qKx2usPHyu/WbxQBAAAAHCaL77+/br97
3nnn1aPo3/3ud8ohPf/88/brZcuWKUt06623dujQ4c477zzjjDMqKirMdxcsWDBq1KgDBw6obMr7
KtelsjVv3lx5OFWC/l6zFsWkSZOUJ1uyZEnLli2vvvrqE044YenSpZkq37Jly6xZs3r06DFkyBBl
IpWwE088sbq62hQwYsQIlUep+v3vf6+sp2uY5oVyw8o41inb9a502pQx1fxe7eKLL1ZmfdOmTRMn
Tjz11FNVvZmeZ1CtZ777wAMPdI5iT7zrrrtUynXXXffb3/5WfZAw93effPJJVdeFF16oPl1o/G79
RhEAAADAYbJk+fK6/a5yfvUoWtlBZZXM32NZ1wcPHlR+7tVXX/373/+uDJCyWepd5ZlmzJihvNqG
DRtUBpVNiVGm8J133rF+r5buXnstJsorm4cozjrrrNLSUmVVM1X+k5/85N13333qqafee+899VLV
NWDAAFWOErB8+XJl6ZQLv/TSS5Xta9KkiWuYKqJ77713z549yuYWFRXpZbvedfnll7tq27x5c7rn
kSmbq2zlW2+9pa579ep1++23t2vXbvfu3XPmzFGFt2jR4sorrxw8eLD5e7XURMvabty4UXl69WlB
eVz779XUJwdzH1cVrnrHLGfy5Mnr1683ojvByg1rfq9Wv1EEAAAAcJgsfeCBuv1u9+7d61H0cccd
p0r4+uuv7dfqv8ccc4wylEccccQPP/zw3XffqXrVy2bNmn3//fdHH320ymxmUylHHXWUEqASNffa
azFlH3vssSqPulZGbd++fdZf0MgIVbWqV/1XXau6lAzzGW1NmzZV6apepVYlOgRY10qAkqGulUh1
u162612qfFdhW7ZsEfr3Juo3igAAAAAOk6X/9m91+91u3boFrRNivP7660L9LqMIAAAAAmHpgw/W
7XfPPffcoHVCjDfeeEOo32UUAQAAQCAseeihuv1u165dg9YJMd58802hfpdRBAAAAIFw34oVdfvd
oEVCEkL9btASAAAAIEfZ/P7H0yrr8rsSDRYAAAAAgOKWoXfjdwEAAAAga/nDLUOnT5+G3wUAAACA
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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71760</attachid>
            <date>2010-10-25 09:13:20 -0700</date>
            <delta_ts>2010-10-25 09:27:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>cookies-ui.diff</filename>
            <type>text/plain</type>
            <size>36331</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTBiYmMxNS4uNzRlM2VjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTIgQEAKKzIwMTAtMTAtMjUgIEFuZHJleSBLb3N5
YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDb29raWVzIHRhYiB0byByZXNvdXJjZSB2aWV3Lgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgY29va2llcyBhc3NvY2lhdGVkIHdpdGgg
cmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDgyMjYKKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tp
ZUl0ZW1zVmlldy5wcm90b3R5cGUuX3BvcHVsYXRlRGF0YUdyaWQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3QmFzZS5qczogQWRkZWQuCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29va2llSXRlbXNWaWV3QmFzZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q29va2llSXRlbXNWaWV3QmFzZS5wcm90b3R5cGUucmVzaXplKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db29raWVJdGVtc1ZpZXdCYXNlLnByb3RvdHlwZS5fY3JlYXRlRGF0YUdyaWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UucHJvdG90eXBlLl9wb3B1bGF0
ZUNvb2tpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UucHJv
dG90eXBlLl9zb3J0Q29va2llcy5sb2NhbGVDb21wYXJlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db29raWVJdGVtc1ZpZXdCYXNlLnByb3RvdHlwZS5fc29ydENvb2tpZXMubnVtYmVyQ29tcGFy
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llSXRlbXNWaWV3QmFzZS5wcm90b3R5cGUu
X3NvcnRDb29raWVzLmV4cGlyZXNDb21wYXJlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29r
aWVJdGVtc1ZpZXdCYXNlLnByb3RvdHlwZS5fc29ydENvb2tpZXMpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UucHJvdG90eXBlLl9jcmVhdGVHcmlkTm9kZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29va2llUGFyc2VyLnByb3RvdHlwZS5wYXJzZUNvb2tpZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29va2llUGFyc2VyLnByb3RvdHlwZS5wYXJzZVNldENvb2tpZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llUGFyc2VyLnByb3RvdHlwZS5fYWRkQ29va2llKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRGF0YUdyaWQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90
eXBlLmF1dG9TaXplQ29sdW1ucyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJv
dG90eXBlLl9lbnVtZXJhdGVDaGlsZHJlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdy
aWQucHJvdG90eXBlLnVwZGF0ZVdpZHRocyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9Gb250Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb250Vmlldy5wcm90b3R5cGUu
cmVzaXplKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ29va2llc1Zp
ZXcuanM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlQ29va2llc1ZpZXcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlQ29va2llc1ZpZXcucHJvdG90eXBlLnNl
dCByZXF1ZXN0Q29va2llcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VDb29raWVz
Vmlldy5wcm90b3R5cGUuc2V0IHJlc3BvbnNlQ29va2llcyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VDb29raWVzVmlldy5wcm90b3R5cGUuX3BvcHVsYXRlRGF0YUdyaWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlQ29va2llc1ZpZXcucHJvdG90eXBlLl9wb3B1bGF0
ZUNvb2tpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlQ29va2llc1ZpZXcucHJv
dG90eXBlLl9jcmVhdGVGb2xkZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5
cGUucmVzaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBl
Ll9zZWxlY3RUYWIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5
cGUuX3NlbGVjdENvb2tpZXNUYWIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVmll
dy5wcm90b3R5cGUuX2lubmVyU2VsZWN0Q29udGVudFRhYik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFJlcXVlc3RIZWFkZXJzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLl9yZWZyZXNoUmVzcG9uc2VI
ZWFkZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLl9y
ZWZyZXNoSGVhZGVycyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3Rv
dHlwZS5fcmVmcmVzaENvb2tpZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZS5y
ZXNpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYzoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3M6CisgICAgICAgICgucmVzb3Vy
Y2UtdmlldyAucmVzb3VyY2Utdmlldy1jb29raWVzKToKKyAgICAgICAgKC5yZXNvdXJjZS12aWV3
LmhlYWRlcnMtdmlzaWJsZSAucmVzb3VyY2Utdmlldy1jb29raWVzKToKKyAgICAgICAgKC5yZXNv
dXJjZS12aWV3LWNvb2tpZXMudGFibGUgLmRhdGEtZ3JpZCk6CisgICAgICAgICgucmVzb3VyY2Ut
dmlldy1jb29raWVzIC5kYXRhLWdyaWQgLnJvdy1ncm91cCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKworMjAxMC0xMC0yNSAgQW5kcmV5IEtvc3lha292
ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgY29va2llcyBhc3NvY2lhdGVk
IHdpdGggcmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDgyMjYKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
b2tpZUl0ZW1zVmlldy5qczogRmFjdG9yIG91dCBjb21tb24gY29va2llcyBncmlkIGxvZ2ljIHRv
IENvb2tpZUl0ZW1zVmlld0Jhc2UKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1Zp
ZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUuX3Bv
cHVsYXRlRGF0YUdyaWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRl
bXNWaWV3QmFzZS5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llSXRlbXNW
aWV3QmFzZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIuanM6
IFN0b3JlIGNvb2tpZSB0eXBlIChyZXF1ZXN0L3Jlc3BvbnNlKSB3aXRoaW4gYSBjb29raWUKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlLnBhcnNlQ29va2llKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlLnBhcnNlU2V0Q29v
a2llKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlLl9hZGRD
b29raWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZSk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhR3Jp
ZC5wcm90b3R5cGUuYXV0b1NpemVDb2x1bW5zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRh
R3JpZC5wcm90b3R5cGUuX2VudW1lcmF0ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EYXRhR3JpZC5wcm90b3R5cGUudXBkYXRlV2lkdGhzKTogU2tpcCBhdHRlbXB0IHRvIGNhbGN1
bGF0ZSBjb2x1bW4gd2lkdGhzIGlmIGdyaWQgaXMgbm90IGF0dGFjaGVkIHRvIERPTSB0cmVlIHll
dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkZvbnRWaWV3LnByb3RvdHlwZS5yZXNpemUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qczogQWRkZWQuCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VDb29raWVzVmlldyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZVZpZXcuanM6IEFkZGVkICJDb29raWVzIiB0YWIuIEFkanVzdGVkIHJl
c2l6ZSBsb2dpYyB0byBwYXNzIHJlc2l6ZSgpIGNhbGxzIHRvIENvb2tpZXMgdGFiLgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUucmVzaXplKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLl9zZWxlY3RUYWIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUuX3NlbGVjdENvb2tpZXNUYWIp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUuX2lubmVyU2Vs
ZWN0Q29udGVudFRhYik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3Rv
dHlwZS5fcmVmcmVzaFJlcXVlc3RIZWFkZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVZpZXcucHJvdG90eXBlLl9yZWZyZXNoUmVzcG9uc2VIZWFkZXJzKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLl9yZWZyZXNoSGVhZGVycyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5fcmVmcmVzaENvb2tpZXMp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZS5yZXNpemUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYzoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5jc3M6CisgICAgICAgICgucmVzb3VyY2UtdmlldyAucmVzb3VyY2Utdmll
dy1jb29raWVzKToKKyAgICAgICAgKC5yZXNvdXJjZS12aWV3LmhlYWRlcnMtdmlzaWJsZSAucmVz
b3VyY2Utdmlldy1jb29raWVzKToKKyAgICAgICAgKC5yZXNvdXJjZS12aWV3LWNvb2tpZXMudGFi
bGUgLmRhdGEtZ3JpZCk6CisgICAgICAgICgucmVzb3VyY2Utdmlldy1jb29raWVzIC5kYXRhLWdy
aWQgLnJvdy1ncm91cCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
aHRtbDoKKwogMjAxMC0xMC0yNCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEtpbHplci4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2Q2NTY2OC4uMTY5
YjEwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTQzNzEsNiArNDM3MSw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db250ZXh0TWVudS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db29r
aWVJdGVtc1ZpZXcuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2ll
SXRlbXNWaWV3QmFzZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Db29r
aWVQYXJzZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTQ29tcGxl
dGlvbnMuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2Rl
bC5qcycsCkBAIC00NDIwLDYgKzQ0MjEsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVtb3RlT2JqZWN0LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
Q2F0ZWdvcnkuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VD
b29raWVzVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZU1hbmFnZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Vz
UGFuZWwuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VWaWV3
LmpzJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGM3MDAwNzQuLjg5
YWZmOWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjM0OTQsNiAr
NjM0OTQsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcQ29va2llSXRlbXNWaWV3QmFzZS5qcyIN
CisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxpbnNwZWN0b3JcZnJvbnQtZW5kXENvb2tpZVBhcnNlci5qcyINCiAJCQkJCT4NCiAJCQkJPC9G
aWxlPg0KQEAgLTYzNzEwLDYgKzYzNzE0LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJ
CQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFJlc291
cmNlQ29va2llc1ZpZXcuanMiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxSZXNvdXJjZU1hbmFnZXIu
anMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcwppbmRleCAwYjA1ZjJhLi4zMTcxNjU5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMKQEAgLTI5LDEwICsy
OSw5IEBACiAKIFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXcgPSBmdW5jdGlvbih0cmVlRWxl
bWVudCwgY29va2llRG9tYWluKQogewotICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7
CisgICAgV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UuY2FsbCh0aGlzKTsKIAogICAg
IHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzdG9yYWdlLXZpZXciKTsKLSAgICB0aGlzLmVs
ZW1lbnQuYWRkU3R5bGVDbGFzcygidGFibGUiKTsKIAogICAgIHRoaXMuZGVsZXRlQnV0dG9uID0g
bmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJE
ZWxldGUiKSwgImRlbGV0ZS1zdG9yYWdlLXN0YXR1cy1iYXItaXRlbSIpOwogICAgIHRoaXMuZGVs
ZXRlQnV0dG9uLnZpc2libGUgPSBmYWxzZTsKQEAgLTE0MywxMDEgKzE0Miw5IEBAIFdlYkluc3Bl
Y3Rvci5Db29raWVJdGVtc1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAot
ICAgIF9jcmVhdGVEYXRhR3JpZDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIGNvbHVt
bnMgPSB7IDA6IHt9LCAxOiB7fSwgMjoge30sIDM6IHt9LCA0OiB7fSwgNToge30sIDY6IHt9LCA3
OiB7fSB9OwotICAgICAgICBjb2x1bW5zWzBdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJOYW1lIik7Ci0gICAgICAgIGNvbHVtbnNbMF0uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBj
b2x1bW5zWzFdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJWYWx1ZSIpOwotICAgICAg
ICBjb2x1bW5zWzFdLnNvcnRhYmxlID0gdHJ1ZTsKLSAgICAgICAgY29sdW1uc1syXS50aXRsZSA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRG9tYWluIik7Ci0gICAgICAgIGNvbHVtbnNbMl0uc29y
dGFibGUgPSB0cnVlOwotICAgICAgICBjb2x1bW5zWzNdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJQYXRoIik7Ci0gICAgICAgIGNvbHVtbnNbM10uc29ydGFibGUgPSB0cnVlOwotICAg
ICAgICBjb2x1bW5zWzRdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFeHBpcmVzIik7
Ci0gICAgICAgIGNvbHVtbnNbNF0uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBjb2x1bW5zWzVd
LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaXplIik7Ci0gICAgICAgIGNvbHVtbnNb
NV0uYWxpZ25lZCA9ICJyaWdodCI7Ci0gICAgICAgIGNvbHVtbnNbNV0uc29ydGFibGUgPSB0cnVl
OwotICAgICAgICBjb2x1bW5zWzZdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJIVFRQ
Iik7Ci0gICAgICAgIGNvbHVtbnNbNl0uYWxpZ25lZCA9ICJjZW50ZXJlZCI7Ci0gICAgICAgIGNv
bHVtbnNbNl0uc29ydGFibGUgPSB0cnVlOwotICAgICAgICBjb2x1bW5zWzddLnRpdGxlID0gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJTZWN1cmUiKTsKLSAgICAgICAgY29sdW1uc1s3XS5hbGlnbmVk
ID0gImNlbnRlcmVkIjsKLSAgICAgICAgY29sdW1uc1s3XS5zb3J0YWJsZSA9IHRydWU7Ci0KLSAg
ICAgICAgdGhpcy5fZGF0YUdyaWQgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkKGNvbHVtbnMs
IG51bGwsIHRoaXMuX2RlbGV0ZUNvb2tpZUNhbGxiYWNrLmJpbmQodGhpcykpOwotICAgICAgICB0
aGlzLl9kYXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKCJzb3J0aW5nIGNoYW5nZWQiLCB0aGlzLl9w
b3B1bGF0ZURhdGFHcmlkLCB0aGlzKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX2RhdGFHcmlkLmVsZW1lbnQpOwotICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVX
aWR0aHMoKTsKLSAgICB9LAotCiAgICAgX3BvcHVsYXRlRGF0YUdyaWQ6IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIHZhciBzZWxlY3RlZENvb2tpZSA9IHRoaXMuX2RhdGFHcmlkLnNlbGVjdGVk
Tm9kZSA/IHRoaXMuX2RhdGFHcmlkLnNlbGVjdGVkTm9kZS5jb29raWUgOiBudWxsOwotICAgICAg
ICB2YXIgc29ydERpcmVjdGlvbiA9IHRoaXMuX2RhdGFHcmlkLnNvcnRPcmRlciA9PT0gImFzY2Vu
ZGluZyIgPyAxIDogLTE7Ci0KLSAgICAgICAgZnVuY3Rpb24gbG9jYWxlQ29tcGFyZShmaWVsZCwg
Y29va2llMSwgY29va2llMikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJl
Y3Rpb24gKiAoY29va2llMVtmaWVsZF0gKyAiIikubG9jYWxlQ29tcGFyZShjb29raWUyW2ZpZWxk
XSArICIiKQotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gbnVtYmVyQ29tcGFyZShmaWVs
ZCwgY29va2llMSwgY29va2llMikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHNvcnRE
aXJlY3Rpb24gKiAoY29va2llMVtmaWVsZF0gLSBjb29raWUyW2ZpZWxkXSk7Ci0gICAgICAgIH0K
LQotICAgICAgICBmdW5jdGlvbiBleHBpcmVzQ29tcGFyZShjb29raWUxLCBjb29raWUyKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAoY29va2llMS5zZXNzaW9uICE9PSBjb29raWUyLnNlc3Np
b24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMS5zZXNz
aW9uID8gMSA6IC0xKTsKLQotICAgICAgICAgICAgaWYgKGNvb2tpZTEuc2Vzc2lvbikKLSAgICAg
ICAgICAgICAgICByZXR1cm4gMDsKLQotICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24g
KiAoY29va2llMS5leHBpcmVzIC0gY29va2llMi5leHBpcmVzKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHZhciBjb21wYXJhdG9yOwotICAgICAgICBzd2l0Y2ggKHBhcnNlSW50KHRoaXMuX2RhdGFH
cmlkLnNvcnRDb2x1bW5JZGVudGlmaWVyKSkgewotICAgICAgICAgICAgY2FzZSAwOiBjb21wYXJh
dG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7IGJyZWFrOwotICAgICAgICAg
ICAgY2FzZSAxOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJ2YWx1ZSIp
OyBicmVhazsKLSAgICAgICAgICAgIGNhc2UgMjogY29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUu
YmluZCh0aGlzLCAiZG9tYWluIik7IGJyZWFrOwotICAgICAgICAgICAgY2FzZSAzOiBjb21wYXJh
dG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJwYXRoIik7IGJyZWFrOwotICAgICAgICAg
ICAgY2FzZSA0OiBjb21wYXJhdG9yID0gZXhwaXJlc0NvbXBhcmU7IGJyZWFrOwotICAgICAgICAg
ICAgY2FzZSA1OiBjb21wYXJhdG9yID0gbnVtYmVyQ29tcGFyZS5iaW5kKHRoaXMsICJzaXplIik7
IGJyZWFrOwotICAgICAgICAgICAgY2FzZSA2OiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5i
aW5kKHRoaXMsICJodHRwT25seSIpOyBicmVhazsKLSAgICAgICAgICAgIGNhc2UgNzogY29tcGFy
YXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAic2VjdXJlIik7IGJyZWFrOwotICAgICAg
ICAgICAgZGVmYXVsdDogbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7Ci0gICAgICAg
IH0KLQotICAgICAgICB0aGlzLl9jb29raWVzLnNvcnQoY29tcGFyYXRvcik7Ci0KLSAgICAgICAg
dGhpcy5fZGF0YUdyaWQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdmFyIG5vZGVUb1NlbGVj
dDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9jb29raWVzLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgICAgICB2YXIgZGF0YSA9IHt9OwotICAgICAgICAgICAgdmFyIGNvb2tpZSA9
IHRoaXMuX2Nvb2tpZXNbaV07Ci0gICAgICAgICAgICBkYXRhWzBdID0gY29va2llLm5hbWU7Ci0g
ICAgICAgICAgICBkYXRhWzFdID0gY29va2llLnZhbHVlOwotICAgICAgICAgICAgZGF0YVsyXSA9
IGNvb2tpZS5kb21haW47Ci0gICAgICAgICAgICBkYXRhWzNdID0gY29va2llLnBhdGg7Ci0gICAg
ICAgICAgICBkYXRhWzRdID0gKGNvb2tpZS5zZXNzaW9uID8gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJTZXNzaW9uIikgOiBuZXcgRGF0ZShjb29raWUuZXhwaXJlcykudG9HTVRTdHJpbmcoKSk7Ci0g
ICAgICAgICAgICBkYXRhWzVdID0gTnVtYmVyLmJ5dGVzVG9TdHJpbmcoY29va2llLnNpemUsIFdl
Ykluc3BlY3Rvci5VSVN0cmluZyk7Ci0gICAgICAgICAgICBkYXRhWzZdID0gKGNvb2tpZS5odHRw
T25seSA/ICJcdTI3MTMiIDogIiIpOyAvLyBDaGVja21hcmsKLSAgICAgICAgICAgIGRhdGFbN10g
PSAoY29va2llLnNlY3VyZSA/ICJcdTI3MTMiIDogIiIpOyAvLyBDaGVja21hcmsKLQotICAgICAg
ICAgICAgdmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhKTsKLSAg
ICAgICAgICAgIG5vZGUuY29va2llID0gY29va2llOwotICAgICAgICAgICAgbm9kZS5zZWxlY3Rh
YmxlID0gdHJ1ZTsKLSAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFwcGVuZENoaWxkKG5vZGUp
OwotICAgICAgICAgICAgaWYgKGNvb2tpZSA9PT0gc2VsZWN0ZWRDb29raWUpCi0gICAgICAgICAg
ICAgICAgbm9kZVRvU2VsZWN0ID0gbm9kZTsKLSAgICAgICAgfQotICAgICAgICBpZiAobm9kZVRv
U2VsZWN0KQotICAgICAgICAgICAgbm9kZVRvU2VsZWN0LnNlbGVjdGVkID0gdHJ1ZTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuY2hpbGRyZW5bMF0uc2VsZWN0ZWQg
PSB0cnVlOworICAgICAgICB0aGlzLl9wb3B1bGF0ZUNvb2tpZXModGhpcy5fZGF0YUdyaWQsIHRo
aXMuX2Nvb2tpZXMpOwogICAgIH0sCiAKICAgICBfY3JlYXRlU2ltcGxlRGF0YUdyaWQ6IGZ1bmN0
aW9uKCkKQEAgLTI3MywxMiArMTgwLDYgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmNoaWxkcmVuWzBdLnNlbGVjdGVk
ID0gdHJ1ZTsKICAgICB9LAogCi0gICAgcmVzaXplOiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICBpZiAodGhpcy5fZGF0YUdyaWQpCi0gICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVX
aWR0aHMoKTsKLSAgICB9LAotCiAgICAgX2RlbGV0ZUJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKGV2
ZW50KQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3JpZCB8fCAhdGhpcy5fZGF0YUdy
aWQuc2VsZWN0ZWROb2RlKQpAQCAtMzAwLDQgKzIwMSw0IEBAIFdlYkluc3BlY3Rvci5Db29raWVJ
dGVtc1ZpZXcucHJvdG90eXBlID0gewogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkNvb2tpZUl0
ZW1zVmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBl
OworV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2Vi
SW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlld0Jhc2UuanMgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3QmFzZS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNmEzYjFhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlld0Jhc2UuanMKQEAgLTAsMCArMSwx
NjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBKb3NlcGggUGVjb3Jhcm8KKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5D
b29raWVJdGVtc1ZpZXdCYXNlID0gZnVuY3Rpb24oKQoreworICAgIFdlYkluc3BlY3Rvci5WaWV3
LmNhbGwodGhpcyk7CisKKyAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidGFibGUiKTsK
K30KKworV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UucHJvdG90eXBlID0geworICAg
IHJlc2l6ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3JpZCkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAodGhpcy5fYXV0b1NpemluZ0RvbmUp
CisgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVXaWR0aHMoKTsKKyAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICB0aGlzLl9hdXRvU2l6aW5nRG9uZSA9IHRydWU7CisgICAgICAgICAg
ICB0aGlzLl9kYXRhR3JpZC5hdXRvU2l6ZUNvbHVtbnMoNCwgNDUsIDIpOworICAgICAgICB9Cisg
ICAgfSwKKworICAgIF9jcmVhdGVEYXRhR3JpZDogZnVuY3Rpb24oZXhwYW5kYWJsZSkKKyAgICB7
CisgICAgICAgIHZhciBjb2x1bW5zID0geyAwOiB7fSwgMToge30sIDI6IHt9LCAzOiB7fSwgNDog
e30sIDU6IHt9LCA2OiB7fSwgNzoge30gfTsKKyAgICAgICAgY29sdW1uc1swXS50aXRsZSA9IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiTmFtZSIpOworICAgICAgICBjb2x1bW5zWzBdLnNvcnRhYmxl
ID0gdHJ1ZTsKKyAgICAgICAgY29sdW1uc1swXS5kaXNjbG9zdXJlID0gZXhwYW5kYWJsZTsKKyAg
ICAgICAgY29sdW1uc1sxXS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVmFsdWUiKTsK
KyAgICAgICAgY29sdW1uc1sxXS5zb3J0YWJsZSA9IHRydWU7CisgICAgICAgIGNvbHVtbnNbMl0u
dGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvbWFpbiIpOworICAgICAgICBjb2x1bW5z
WzJdLnNvcnRhYmxlID0gdHJ1ZTsKKyAgICAgICAgY29sdW1uc1szXS50aXRsZSA9IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUGF0aCIpOworICAgICAgICBjb2x1bW5zWzNdLnNvcnRhYmxlID0gdHJ1
ZTsKKyAgICAgICAgY29sdW1uc1s0XS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRXhw
aXJlcyIpOworICAgICAgICBjb2x1bW5zWzRdLnNvcnRhYmxlID0gdHJ1ZTsKKyAgICAgICAgY29s
dW1uc1s1XS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2l6ZSIpOworICAgICAgICBj
b2x1bW5zWzVdLmFsaWduZWQgPSAicmlnaHQiOworICAgICAgICBjb2x1bW5zWzVdLnNvcnRhYmxl
ID0gdHJ1ZTsKKyAgICAgICAgY29sdW1uc1s2XS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiSFRUUCIpOworICAgICAgICBjb2x1bW5zWzZdLmFsaWduZWQgPSAiY2VudGVyZWQiOworICAg
ICAgICBjb2x1bW5zWzZdLnNvcnRhYmxlID0gdHJ1ZTsKKyAgICAgICAgY29sdW1uc1s3XS50aXRs
ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2VjdXJlIik7CisgICAgICAgIGNvbHVtbnNbN10u
YWxpZ25lZCA9ICJjZW50ZXJlZCI7CisgICAgICAgIGNvbHVtbnNbN10uc29ydGFibGUgPSB0cnVl
OworCisgICAgICAgIHZhciBkZWxldGVDYWxsYmFjayA9IHRoaXMuX2RlbGV0ZUNvb2tpZUNhbGxi
YWNrID8gdGhpcy5fZGVsZXRlQ29va2llQ2FsbGJhY2suYmluZCh0aGlzKSA6IG51bGw7CisgICAg
ICAgIHRoaXMuX2RhdGFHcmlkID0gbmV3IFdlYkluc3BlY3Rvci5EYXRhR3JpZChjb2x1bW5zLCBu
dWxsLCBkZWxldGVDYWxsYmFjayk7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZEV2ZW50TGlz
dGVuZXIoInNvcnRpbmcgY2hhbmdlZCIsIHRoaXMuX3BvcHVsYXRlRGF0YUdyaWQsIHRoaXMpOwor
ICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZGF0YUdyaWQuZWxlbWVudCk7
CisgICAgfSwKKworICAgIF9wb3B1bGF0ZUNvb2tpZXM6IGZ1bmN0aW9uKHBhcmVudE5vZGUsIGNv
b2tpZXMpCisgICAgeworICAgICAgICB2YXIgc2VsZWN0ZWRDb29raWUgPSB0aGlzLl9kYXRhR3Jp
ZC5zZWxlY3RlZE5vZGUgPyB0aGlzLl9kYXRhR3JpZC5zZWxlY3RlZE5vZGUuY29va2llIDogbnVs
bDsKKyAgICAgICAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICBpZiAoIWNv
b2tpZXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuX3NvcnRDb29raWVzKGNv
b2tpZXMpOworICAgICAgICB2YXIgdG90YWxTaXplID0gMDsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjb29raWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgY29va2llTm9k
ZSA9IHRoaXMuX2NyZWF0ZUdyaWROb2RlKGNvb2tpZXNbaV0pOworICAgICAgICAgICAgcGFyZW50
Tm9kZS5hcHBlbmRDaGlsZChjb29raWVOb2RlKTsKKyAgICAgICAgICAgIGlmIChzZWxlY3RlZENv
b2tpZSA9PT0gY29va2llc1tpXSkKKyAgICAgICAgICAgICAgICBjb29raWVOb2RlLnNlbGVjdGVk
ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfc29ydENvb2tpZXM6IGZ1bmN0aW9u
KGNvb2tpZXMpCisgICAgeworICAgICAgICB2YXIgc29ydERpcmVjdGlvbiA9IHRoaXMuX2RhdGFH
cmlkLnNvcnRPcmRlciA9PT0gImFzY2VuZGluZyIgPyAxIDogLTE7CisKKyAgICAgICAgZnVuY3Rp
b24gbG9jYWxlQ29tcGFyZShmaWVsZCwgY29va2llMSwgY29va2llMikKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMVtmaWVsZF0gKyAiIikubG9j
YWxlQ29tcGFyZShjb29raWUyW2ZpZWxkXSArICIiKQorICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gbnVtYmVyQ29tcGFyZShmaWVsZCwgY29va2llMSwgY29va2llMikKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMVtmaWVsZF0gLSBjb29r
aWUyW2ZpZWxkXSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBleHBpcmVzQ29tcGFy
ZShjb29raWUxLCBjb29raWUyKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoY29va2llMS5z
ZXNzaW9uICE9PSBjb29raWUyLnNlc3Npb24pCisgICAgICAgICAgICAgICAgcmV0dXJuIHNvcnRE
aXJlY3Rpb24gKiAoY29va2llMS5zZXNzaW9uID8gMSA6IC0xKTsKKworICAgICAgICAgICAgaWYg
KGNvb2tpZTEuc2Vzc2lvbikKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICAg
ICAgcmV0dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMS5leHBpcmVzIC0gY29va2llMi5leHBp
cmVzKTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBjb21wYXJhdG9yOworICAgICAgICBzd2l0
Y2ggKHBhcnNlSW50KHRoaXMuX2RhdGFHcmlkLnNvcnRDb2x1bW5JZGVudGlmaWVyKSkgeworICAg
ICAgICAgICAgY2FzZSAwOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJu
YW1lIik7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOiBjb21wYXJhdG9yID0gbG9jYWxlQ29t
cGFyZS5iaW5kKHRoaXMsICJ2YWx1ZSIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjogY29t
cGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAiZG9tYWluIik7IGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAzOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJw
YXRoIik7IGJyZWFrOworICAgICAgICAgICAgY2FzZSA0OiBjb21wYXJhdG9yID0gZXhwaXJlc0Nv
bXBhcmU7IGJyZWFrOworICAgICAgICAgICAgY2FzZSA1OiBjb21wYXJhdG9yID0gbnVtYmVyQ29t
cGFyZS5iaW5kKHRoaXMsICJzaXplIik7IGJyZWFrOworICAgICAgICAgICAgY2FzZSA2OiBjb21w
YXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJodHRwT25seSIpOyBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgNzogY29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAi
c2VjdXJlIik7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogbG9jYWxlQ29tcGFyZS5iaW5k
KHRoaXMsICJuYW1lIik7CisgICAgICAgIH0KKworICAgICAgICBjb29raWVzLnNvcnQoY29tcGFy
YXRvcik7CisgICAgfSwKKworICAgIF9jcmVhdGVHcmlkTm9kZTogZnVuY3Rpb24oY29va2llKQor
ICAgIHsKKyAgICAgICAgdmFyIGRhdGEgPSB7fTsKKyAgICAgICAgZGF0YVswXSA9IGNvb2tpZS5u
YW1lOworICAgICAgICBkYXRhWzFdID0gY29va2llLnZhbHVlOworICAgICAgICBkYXRhWzJdID0g
Y29va2llLmRvbWFpbiB8fCAiIjsKKyAgICAgICAgZGF0YVszXSA9IGNvb2tpZS5wYXRoIHx8ICIi
OworICAgICAgICBkYXRhWzRdID0gY29va2llLnR5cGUgPT09ICJyZXF1ZXN0IiA/ICIiIDoKKyAg
ICAgICAgICAgIChjb29raWUuc2Vzc2lvbiA/IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2Vzc2lv
biIpIDogbmV3IERhdGUoY29va2llLmV4cGlyZXMpLnRvR01UU3RyaW5nKCkpOworICAgICAgICBk
YXRhWzVdID0gY29va2llLnNpemU7CisgICAgICAgIGRhdGFbNl0gPSAoY29va2llLmh0dHBPbmx5
ID8gIlx1MjcxMyIgOiAiIik7IC8vIENoZWNrbWFyaworICAgICAgICBkYXRhWzddID0gKGNvb2tp
ZS5zZWN1cmUgPyAiXHUyNzEzIiA6ICIiKTsgLy8gQ2hlY2ttYXJrCisKKyAgICAgICAgdmFyIG5v
ZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhKTsKKyAgICAgICAgbm9kZS5j
b29raWUgPSBjb29raWU7CisgICAgICAgIG5vZGUuc2VsZWN0YWJsZSA9IHRydWU7CisgICAgICAg
IHJldHVybiBub2RlOworICAgIH0KK307CisKK1dlYkluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXdC
YXNlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpzIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZVBhcnNlci5qcwppbmRleCAyYmU1ZGY3
Li5jMmFlMWQwIDEwMDc1NQotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2ll
UGFyc2VyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIu
anMKQEAgLTU0LDcgKzU0LDcgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlci5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBpZiAoa3Yua2V5LmNoYXJBdCgwKSA9PT0gIiQiICYmIHRoaXMuX2xh
c3RDb29raWUpCiAgICAgICAgICAgICAgICAgdGhpcy5fbGFzdENvb2tpZS5hZGRBdHRyaWJ1dGUo
a3Yua2V5LnNsaWNlKDEpLCBrdi52YWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChrdi5rZXku
dG9Mb3dlckNhc2UoKSAhPT0gIiR2ZXJzaW9uIiAmJiB0eXBlb2Yga3YudmFsdWUgPT09ICJzdHJp
bmciKQotICAgICAgICAgICAgICAgIHRoaXMuX2FkZENvb2tpZShrdik7CisgICAgICAgICAgICAg
ICAgdGhpcy5fYWRkQ29va2llKGt2LCAicmVxdWVzdCIpOwogICAgICAgICAgICAgdGhpcy5fYWR2
YW5jZUFuZENoZWNrQ29va2llRGVsaW1pdGVyKCk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5f
Zmx1c2hDb29raWUoKTsKQEAgLTY5LDcgKzY5LDcgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNl
ci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAodGhpcy5fbGFzdENvb2tpZSkKICAgICAg
ICAgICAgICAgICB0aGlzLl9sYXN0Q29va2llLmFkZEF0dHJpYnV0ZShrdi5rZXksIGt2LnZhbHVl
KTsKICAgICAgICAgICAgIGVsc2UgCi0gICAgICAgICAgICAgICAgdGhpcy5fYWRkQ29va2llKGt2
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9hZGRDb29raWUoa3YsICJyZXNwb25zZSIpOwogICAg
ICAgICAgICAgaWYgKHRoaXMuX2FkdmFuY2VBbmRDaGVja0Nvb2tpZURlbGltaXRlcigpKQogICAg
ICAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29va2llKCk7CiAgICAgICAgIH0KQEAgLTEyOCwxNCAr
MTI4LDE0IEBAIFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlID0gewogICAgICAg
ICByZXR1cm4gbWF0Y2hbMF0ubWF0Y2goIlxuIikgIT09IG51bGw7CiAgICAgfSwKIAotICAgIF9h
ZGRDb29raWU6IGZ1bmN0aW9uKGtleVZhbHVlKQorICAgIF9hZGRDb29raWU6IGZ1bmN0aW9uKGtl
eVZhbHVlLCB0eXBlKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2xhc3RDb29raWUpCiAgICAg
ICAgICAgICB0aGlzLl9sYXN0Q29va2llLnNpemUgPSBrZXlWYWx1ZS5wb3NpdGlvbiAtIHRoaXMu
X2xhc3RDb29raWVQb3NpdGlvbjsKICAgICAgICAgLy8gTW96aWxsYSBidWcgMTY5MDkxOiBNb3pp
bGxhLCBJRSBhbmQgQ2hyb21lIHRyZWF0IHNpZ25sZSB0b2tlbiAody9vICI9IikgYXMKICAgICAg
ICAgLy8gc3BlY2lmeWluZyBhIHZhbHVlIGZvciBhIGNvb2tpZSB3aXRoIGVtcHR5IG5hbWUuCi0g
ICAgICAgIHRoaXMuX2xhc3RDb29raWUgPSBrZXlWYWx1ZS52YWx1ZSA/IG5ldyBXZWJJbnNwZWN0
b3IuQ29va2llKGtleVZhbHVlLmtleSwga2V5VmFsdWUudmFsdWUpIDoKLSAgICAgICAgICAgIG5l
dyBXZWJJbnNwZWN0b3IuQ29va2llKCIiLCBrZXlWYWx1ZS5rZXkpOworICAgICAgICB0aGlzLl9s
YXN0Q29va2llID0ga2V5VmFsdWUudmFsdWUgPyBuZXcgV2ViSW5zcGVjdG9yLkNvb2tpZShrZXlW
YWx1ZS5rZXksIGtleVZhbHVlLnZhbHVlLCB0eXBlKSA6CisgICAgICAgICAgICBuZXcgV2ViSW5z
cGVjdG9yLkNvb2tpZSgiIiwga2V5VmFsdWUua2V5LCB0eXBlKTsKICAgICAgICAgdGhpcy5fbGFz
dENvb2tpZVBvc2l0aW9uID0ga2V5VmFsdWUucG9zaXRpb247CiAgICAgICAgIHRoaXMuX2Nvb2tp
ZXMucHVzaCh0aGlzLl9sYXN0Q29va2llKTsKICAgICB9CkBAIC0xNTEsMTAgKzE1MSwxMSBAQCBX
ZWJJbnNwZWN0b3IuQ29va2llUGFyc2VyLnBhcnNlU2V0Q29va2llID0gZnVuY3Rpb24oaGVhZGVy
KQogICAgIHJldHVybiAobmV3IFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIoKSkucGFyc2VTZXRD
b29raWUoaGVhZGVyKTsKIH0KIAotV2ViSW5zcGVjdG9yLkNvb2tpZSA9IGZ1bmN0aW9uKG5hbWUs
IHZhbHVlKQorV2ViSW5zcGVjdG9yLkNvb2tpZSA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCB0eXBl
KQogewogICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAg
IHRoaXMudHlwZSA9IHR5cGU7CiAgICAgdGhpcy5fYXR0cmlidXRlcyA9IHt9OwogfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMKaW5kZXggMzAwNzQ5Ny4uM2UyNzViZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcwpAQCAtMzA4LDcgKzMwOCw3
IEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0
aGlzLl9kYXRhVGFibGVCb2R5OwogICAgIH0sCiAKLSAgICBhdXRvU2l6ZUNvbHVtbnM6IGZ1bmN0
aW9uKG1pblBlcmNlbnQsIG1heFBlcmNlbnQpCisgICAgYXV0b1NpemVDb2x1bW5zOiBmdW5jdGlv
bihtaW5QZXJjZW50LCBtYXhQZXJjZW50LCBtYXhEZXNjZW50TGV2ZWwpCiAgICAgewogICAgICAg
ICBpZiAobWluUGVyY2VudCkKICAgICAgICAgICAgIG1pblBlcmNlbnQgPSBNYXRoLm1pbihtaW5Q
ZXJjZW50LCBNYXRoLmZsb29yKDEwMCAvIHRoaXMuX2NvbHVtbkNvdW50KSk7CkBAIC0zMTcsOCAr
MzE3LDkgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkLnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9y
ICh2YXIgY29sdW1uSWRlbnRpZmllciBpbiBjb2x1bW5zKQogICAgICAgICAgICAgd2lkdGhzW2Nv
bHVtbklkZW50aWZpZXJdID0gKGNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl0udGl0bGUgfHwgIiIp
Lmxlbmd0aDsKIAotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBub2RlID0gdGhpcy5jaGlsZHJlbltpXTsKKyAg
ICAgICAgdmFyIGNoaWxkcmVuID0gbWF4RGVzY2VudExldmVsID8gdGhpcy5fZW51bWVyYXRlQ2hp
bGRyZW4odGhpcywgW10sIG1heERlc2NlbnRMZXZlbCkgOiB0aGlzLmNoaWxkcmVuOworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAg
ICB2YXIgbm9kZSA9IGNoaWxkcmVuW2ldOwogICAgICAgICAgICAgZm9yICh2YXIgY29sdW1uSWRl
bnRpZmllciBpbiBjb2x1bW5zKSB7CiAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBub2RlLmRh
dGFbY29sdW1uSWRlbnRpZmllcl0gfHwgIiI7CiAgICAgICAgICAgICAgICAgaWYgKHRleHQubGVu
Z3RoID4gd2lkdGhzW2NvbHVtbklkZW50aWZpZXJdKQpAQCAtMzcxLDYgKzM3MiwxNyBAQCBXZWJJ
bnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnVwZGF0ZVdpZHRo
cygpOwogICAgIH0sCiAKKyAgICBfZW51bWVyYXRlQ2hpbGRyZW46IGZ1bmN0aW9uKHJvb3ROb2Rl
LCByZXN1bHQsIG1heExldmVsKQorICAgIHsKKyAgICAgICAgaWYgKCFyb290Tm9kZS5yb290KQor
ICAgICAgICAgICAgcmVzdWx0LnB1c2gocm9vdE5vZGUpOworICAgICAgICBpZiAoIW1heExldmVs
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvb3RO
b2RlLmNoaWxkcmVuLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy5fZW51bWVyYXRlQ2hp
bGRyZW4ocm9vdE5vZGUuY2hpbGRyZW5baV0sIHJlc3VsdCwgbWF4TGV2ZWwgLSAxKTsKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9LAorCiAgICAgLy8gVXBkYXRlcyB0aGUgd2lkdGhzIG9m
IHRoZSB0YWJsZSwgaW5jbHVkaW5nIHRoZSBwb3NpdGlvbnMgb2YgdGhlIGNvbHVtbgogICAgIC8v
IHJlc2l6ZXJzLgogICAgIC8vCkBAIC0zODgsNyArNDAwLDggQEAgV2ViSW5zcGVjdG9yLkRhdGFH
cmlkLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHRhYmxlV2lkdGggPSB0aGlzLl9kYXRhVGFi
bGUub2Zmc2V0V2lkdGg7CiAgICAgICAgIHZhciBudW1Db2x1bW5zID0gaGVhZGVyVGFibGVDb2x1
bW5zLmxlbmd0aDsKICAgICAgICAgCi0gICAgICAgIGlmICghdGhpcy5fY29sdW1uV2lkdGhzSW5p
dGlhbGl6ZWQpIHsKKyAgICAgICAgLy8gRG8gbm90IGF0dGVtcHQgdG8gdXNlIG9mZnNldGVzIGlm
IHdlJ3JlIG5vdCBhdHRhY2hlZCB0byB0aGUgZG9jdW1lbnQgdHJlZSB5ZXQuCisgICAgICAgIGlm
ICghdGhpcy5fY29sdW1uV2lkdGhzSW5pdGlhbGl6ZWQgJiYgdGhpcy5lbGVtZW50LmVuY2xvc2lu
Z05vZGVPclNlbGZXaXRoTm9kZU5hbWUoImJvZHkiKSkgewogICAgICAgICAgICAgLy8gR2l2ZSBh
bGwgdGhlIGNvbHVtbnMgaW5pdGlhbCB3aWR0aHMgbm93IHNvIHRoYXQgZHVyaW5nIGEgcmVzaXpl
LAogICAgICAgICAgICAgLy8gd2hlbiB0aGUgdHdvIGNvbHVtbnMgdGhhdCBnZXQgcmVzaXplZCBn
ZXQgYSBwZXJjZW50IHZhbHVlIGZvcgogICAgICAgICAgICAgLy8gdGhlaXIgd2lkdGhzLCBhbGwg
dGhlIG90aGVyIGNvbHVtbnMgYWxyZWFkeSBoYXZlIHBlcmNlbnQgdmFsdWVzCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRm9udFZpZXcuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRm9udFZpZXcuanMKaW5kZXggYjAxMTIwNC4uNzhhN2U3MCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Gb250Vmlldy5qcwpAQCAtNjksNiArNjksNyBAQCBXZWJJ
bnNwZWN0b3IuRm9udFZpZXcucHJvdG90eXBlID0gewogICAgIHJlc2l6ZTogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgdGhpcy51cGRhdGVGb250UHJldmlld1NpemUoKTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUucmVzaXplLmNhbGwodGhpcyk7CiAgICAg
fSwKIAogICAgIHVwZGF0ZUZvbnRQcmV2aWV3U2l6ZTogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ29va2llc1ZpZXcuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41M2EyZjk1Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ29va2llc1ZpZXcuanMKQEAgLTAsMCAr
MSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKworV2ViSW5zcGVjdG9yLlJlc291cmNlQ29va2llc1ZpZXcgPSBmdW5jdGlvbigpCit7
CisgICAgV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlld0Jhc2UuY2FsbCh0aGlzKTsKKyAgICB0
aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygicmVzb3VyY2Utdmlldy1jb29raWVzIik7CisgICAg
dGhpcy5fcmVxdWVzdENvb2tpZXMgPSBbXTsKKyAgICB0aGlzLl9yZXNwb25zZUNvb2tpZXMgPSBb
XTsKKyAgICB0aGlzLl9jcmVhdGVEYXRhR3JpZCh0cnVlKTsKKyAgICB0aGlzLl9yZXF1ZXN0Q29v
a2llc05vZGUgPSB0aGlzLl9jcmVhdGVGb2xkZXIoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXF1
ZXN0IENvb2tpZXMiKSk7CisgICAgdGhpcy5fcmVzcG9uc2VDb29raWVzTm9kZSA9IHRoaXMuX2Ny
ZWF0ZUZvbGRlcihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlc3BvbnNlIENvb2tpZXMiKSk7Cit9
CisKK1dlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3LnByb3RvdHlwZSA9IHsKKyAgICBz
ZXQgcmVxdWVzdENvb2tpZXMoY29va2llcykKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9yZXF1
ZXN0Q29va2llcyA9PT0gY29va2llcykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhp
cy5fcmVxdWVzdENvb2tpZXMgPSBjb29raWVzOworICAgICAgICB0aGlzLl9wb3B1bGF0ZUNvb2tp
ZXModGhpcy5fcmVxdWVzdENvb2tpZXNOb2RlLCB0aGlzLl9yZXF1ZXN0Q29va2llcyk7CisgICAg
fSwKKworICAgIHNldCByZXNwb25zZUNvb2tpZXMoY29va2llcykKKyAgICB7CisgICAgICAgIGlm
ICh0aGlzLl9yZXNwb25zZUNvb2tpZXMgPT09IGNvb2tpZXMpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIHRoaXMuX3Jlc3BvbnNlQ29va2llcyA9IGNvb2tpZXM7CisgICAgICAgIHRoaXMu
X3BvcHVsYXRlQ29va2llcyh0aGlzLl9yZXNwb25zZUNvb2tpZXNOb2RlLCB0aGlzLl9yZXNwb25z
ZUNvb2tpZXMpOworICAgIH0sCisKKyAgICBfcG9wdWxhdGVEYXRhR3JpZDogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fcG9wdWxhdGVDb29raWVzKHRoaXMuX3JlcXVlc3RDb29raWVz
Tm9kZSwgdGhpcy5fcmVxdWVzdENvb2tpZXMpOworICAgICAgICB0aGlzLl9wb3B1bGF0ZUNvb2tp
ZXModGhpcy5fcmVzcG9uc2VDb29raWVzTm9kZSwgdGhpcy5fcmVzcG9uc2VDb29raWVzKTsKKyAg
ICB9LAorCisgICAgX3BvcHVsYXRlQ29va2llczogZnVuY3Rpb24ocGFyZW50Tm9kZSwgY29va2ll
cykKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXdCYXNlLnByb3Rv
dHlwZS5fcG9wdWxhdGVDb29raWVzLmNhbGwodGhpcywgcGFyZW50Tm9kZSwgY29va2llcyk7Cisg
ICAgICAgIHZhciB0b3RhbFNpemUgPSAwOworICAgICAgICBpZiAoY29va2llcykgeworICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb29raWVzLmxlbmd0aDsgKytpKQorICAgICAgICAg
ICAgICAgIHRvdGFsU2l6ZSArPSBjb29raWVzW2ldLnNpemU7CisgICAgICAgIH0KKyAgICAgICAg
cGFyZW50Tm9kZS5leHBhbmRlZCA9IHRydWU7CisgICAgICAgIHBhcmVudE5vZGUuZGF0YVs1XSA9
IHRvdGFsU2l6ZTsKKyAgICAgICAgcGFyZW50Tm9kZS5yZWZyZXNoKCk7CisgICAgfSwKKworICAg
IF9jcmVhdGVGb2xkZXI6IGZ1bmN0aW9uKG5hbWUpCisgICAgeworICAgICAgICB2YXIgZGF0YSA9
IFsgbmFtZSwgIiIsICIiLCAiIiwgIiIsIDAsICIiLCAiIiBdOworICAgICAgICB2YXIgbm9kZSA9
IG5ldyBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlKGRhdGEpOworICAgICAgICBub2RlLnNlbGVj
dGFibGUgPSB0cnVlOworICAgICAgICBub2RlLmV4cGFuZGVkID0gdHJ1ZTsKKyAgICAgICAgdGhp
cy5fZGF0YUdyaWQuYXBwZW5kQ2hpbGQobm9kZSk7CisgICAgICAgIG5vZGUuZWxlbWVudC5hZGRT
dHlsZUNsYXNzKCJyb3ctZ3JvdXAiKTsKKyAgICAgICAgcmV0dXJuIG5vZGU7CisgICAgfQorfTsK
KworV2ViSW5zcGVjdG9yLlJlc291cmNlQ29va2llc1ZpZXcucHJvdG90eXBlLl9fcHJvdG9fXyA9
IFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXdCYXNlLnByb3RvdHlwZTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVZpZXcuanMgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VWaWV3LmpzCmluZGV4IDg2MjU2OWYuLjEwYjNjODIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVZpZXcuanMK
KysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVmlldy5qcwpAQCAtMTM5
LDE0ICsxMzksMjAgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuX3NlbGVjdFRhYigpOwogICAgIH0sCiAKKyAgICByZXNpemU6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9jb29raWVzVmlldyAmJiAhdGhpcy5fY29va2ll
c1ZpZXcuZWxlbWVudC5oYXNTdHlsZUNsYXNzKCJoaWRkZW4iKSkKKyAgICAgICAgICAgIHRoaXMu
X2Nvb2tpZXNWaWV3LnJlc2l6ZSgpOworICAgIH0sCisKICAgICBfc2VsZWN0VGFiOiBmdW5jdGlv
bigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faGVhZGVyc1Zpc2libGUpIHsKLSAgICAgICAg
ICAgIGlmICghdGhpcy5oYXNDb250ZW50VGFiKCkgfHwgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9u
U2V0dGluZ3MucmVzb3VyY2VWaWV3VGFiID09PSAiaGVhZGVycyIpCi0gICAgICAgICAgICAgICAg
dGhpcy5fc2VsZWN0SGVhZGVyc1RhYigpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHRoaXMuc2VsZWN0Q29udGVudFRhYigpOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgdmFy
IHByZWZlcnJlZFRhYiA9IFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLnJlc291cmNl
Vmlld1RhYjsKKyAgICAgICAgaWYgKHRoaXMuX2hlYWRlcnNWaXNpYmxlICYmIHRoaXMuX2Nvb2tp
ZXNWaWV3ICYmIHByZWZlcnJlZFRhYiA9PT0gImNvb2tpZXMiKQorICAgICAgICAgICAgdGhpcy5f
c2VsZWN0Q29va2llc1RhYigpOworICAgICAgICBlbHNlIGlmICh0aGlzLl9oZWFkZXJzVmlzaWJs
ZSAmJiAoIXRoaXMuaGFzQ29udGVudFRhYigpIHx8IHByZWZlcnJlZFRhYiA9PT0gImhlYWRlcnMi
KSkKKyAgICAgICAgICAgIHRoaXMuX3NlbGVjdEhlYWRlcnNUYWIoKTsKKyAgICAgICAgZWxzZQog
ICAgICAgICAgICAgdGhpcy5faW5uZXJTZWxlY3RDb250ZW50VGFiKCk7CiAgICAgfSwKIApAQCAt
MTcwLDExICsxNzYsMTggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9LAogCisgICAgX3NlbGVjdENvb2tpZXNUYWI6
IGZ1bmN0aW9uKHVwZGF0ZVByZWZzKQorICAgIHsKKyAgICAgICAgaWYgKHVwZGF0ZVByZWZzKQor
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGluZ3MucmVzb3VyY2VWaWV3
VGFiID0gImNvb2tpZXMiOworICAgICAgICB0aGlzLnRhYmJlZFBhbmUuc2VsZWN0VGFiQnlJZCgi
Y29va2llcyIpOworICAgICAgICB0aGlzLl9jb29raWVzVmlldy5yZXNpemUoKTsKKyAgICB9LAor
CiAgICAgX2lubmVyU2VsZWN0Q29udGVudFRhYjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
dGhpcy50YWJiZWRQYW5lLnNlbGVjdFRhYkJ5SWQoImNvbnRlbnQiKTsKLSAgICAgICAgaWYgKCJy
ZXNpemUiIGluIHRoaXMpCi0gICAgICAgICAgICB0aGlzLnJlc2l6ZSgpOworICAgICAgICB0aGlz
LnJlc2l6ZSgpOwogICAgICAgICBpZiAodGhpcy5oYXNDb250ZW50VGFiKCkpCiAgICAgICAgICAg
ICB0aGlzLmNvbnRlbnRUYWJTZWxlY3RlZCgpOwogICAgIH0sCkBAIC0yODMsNiArMjk2LDcgQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBhZGRp
dGlvbmFsUm93ID0ge2hlYWRlcjogIihLZXkzKSIsIHZhbHVlOiB0aGlzLnJlc291cmNlLndlYlNv
Y2tldFJlcXVlc3RLZXkzfTsKICAgICAgICAgdGhpcy5fcmVmcmVzaEhlYWRlcnMoV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJSZXF1ZXN0IEhlYWRlcnMiKSwgdGhpcy5yZXNvdXJjZS5zb3J0ZWRSZXF1
ZXN0SGVhZGVycywgYWRkaXRpb25hbFJvdywgdGhpcy5yZXF1ZXN0SGVhZGVyc1RyZWVFbGVtZW50
KTsKICAgICAgICAgdGhpcy5fcmVmcmVzaEZvcm1EYXRhKCk7CisgICAgICAgIHRoaXMuX3JlZnJl
c2hDb29raWVzKCk7CiAgICAgfSwKIAogICAgIF9yZWZyZXNoUmVzcG9uc2VIZWFkZXJzOiBmdW5j
dGlvbigpCkBAIC0yOTEsNiArMzA1LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNvdXJjZS53ZWJTb2NrZXRDaGFs
bGVuZ2VSZXNwb25zZSAhPT0gInVuZGVmaW5lZCIpCiAgICAgICAgICAgICBhZGRpdGlvbmFsUm93
ID0ge2hlYWRlcjogIihDaGFsbGVuZ2UgUmVzcG9uc2UpIiwgdmFsdWU6IHRoaXMucmVzb3VyY2Uu
d2ViU29ja2V0Q2hhbGxlbmdlUmVzcG9uc2V9OwogICAgICAgICB0aGlzLl9yZWZyZXNoSGVhZGVy
cyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlc3BvbnNlIEhlYWRlcnMiKSwgdGhpcy5yZXNvdXJj
ZS5zb3J0ZWRSZXNwb25zZUhlYWRlcnMsIGFkZGl0aW9uYWxSb3csIHRoaXMucmVzcG9uc2VIZWFk
ZXJzVHJlZUVsZW1lbnQpOworICAgICAgICB0aGlzLl9yZWZyZXNoQ29va2llcygpOwogICAgIH0s
CiAKICAgICBfcmVmcmVzaEhUVFBJbmZvcm1hdGlvbjogZnVuY3Rpb24oKQpAQCAtMzQ3LDYgKzM2
MiwxOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIGhlYWRlclRyZWVFbGVtZW50LnNlbGVjdGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgIGhl
YWRlcnNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChoZWFkZXJUcmVlRWxlbWVudCk7CiAgICAgICAg
IH0KKyAgICB9LAorCisgICAgX3JlZnJlc2hDb29raWVzOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICBpZiAoIXRoaXMuX2Nvb2tpZXNWaWV3KSB7CisgICAgICAgICAgICBpZiAoIXRoaXMucmVz
b3VyY2UucmVxdWVzdENvb2tpZXMgJiYgIXRoaXMucmVzb3VyY2UucmVzcG9uc2VDb29raWVzKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHRoaXMuX2Nvb2tpZXNWaWV3ID0g
bmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3KCk7CisgICAgICAgICAgICB0aGlz
LnRhYmJlZFBhbmUuYXBwZW5kVGFiKCJjb29raWVzIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJD
b29raWVzIiksIHRoaXMuX2Nvb2tpZXNWaWV3LmVsZW1lbnQsIHRoaXMuX3NlbGVjdENvb2tpZXNU
YWIuYmluZCh0aGlzLCB0cnVlKSk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fY29va2llc1Zp
ZXcucmVxdWVzdENvb2tpZXMgPSB0aGlzLnJlc291cmNlLnJlcXVlc3RDb29raWVzOworICAgICAg
ICB0aGlzLl9jb29raWVzVmlldy5yZXNwb25zZUNvb2tpZXMgPSB0aGlzLnJlc291cmNlLnJlc3Bv
bnNlQ29va2llczsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJj
ZVZpZXcuanMKaW5kZXggODA5MjUwNS4uYTY3MmY1MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZVZpZXcuanMKQEAgLTczLDYgKzczLDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJj
ZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5zb3VyY2VGcmFtZS5yZXNpemUo
KTsKICAgICAgICAgaWYgKHRoaXMubG9jYWxTb3VyY2VGcmFtZSkKICAgICAgICAgICAgIHRoaXMu
bG9jYWxTb3VyY2VGcmFtZS5yZXNpemUoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNl
Vmlldy5wcm90b3R5cGUucmVzaXplLmNhbGwodGhpcyk7CiAgICAgfSwKIAogICAgIHNldHVwU291
cmNlRnJhbWVJZk5lZWRlZDogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2Vi
S2l0LnFyYwppbmRleCA0ODFmOGIzLi5jMjM3ZWViIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvV2ViS2l0LnFyYwpAQCAtMjAsNiArMjAsNyBAQAogICAgIDxmaWxlPkNvbnNvbGVWaWV3Lmpz
PC9maWxlPgogICAgIDxmaWxlPkNvbnRleHRNZW51LmpzPC9maWxlPgogICAgIDxmaWxlPkNvb2tp
ZUl0ZW1zVmlldy5qczwvZmlsZT4KKyAgICA8ZmlsZT5Db29raWVJdGVtc1ZpZXdCYXNlLmpzPC9m
aWxlPgogICAgIDxmaWxlPkNvb2tpZVBhcnNlci5qczwvZmlsZT4KICAgICA8ZmlsZT5DU1NDb21w
bGV0aW9ucy5qczwvZmlsZT4KICAgICA8ZmlsZT5DU1NTdHlsZU1vZGVsLmpzPC9maWxlPgpAQCAt
NjksNiArNzAsNyBAQAogICAgIDxmaWxlPlJlbW90ZU9iamVjdC5qczwvZmlsZT4KICAgICA8Zmls
ZT5SZXNvdXJjZS5qczwvZmlsZT4KICAgICA8ZmlsZT5SZXNvdXJjZUNhdGVnb3J5LmpzPC9maWxl
PgorICAgIDxmaWxlPlJlc291cmNlQ29va2llc1ZpZXcuanM8L2ZpbGU+CiAgICAgPGZpbGU+UmVz
b3VyY2VNYW5hZ2VyLmpzPC9maWxlPgogICAgIDxmaWxlPlJlc291cmNlc1BhbmVsLmpzPC9maWxl
PgogICAgIDxmaWxlPlJlc291cmNlVmlldy5qczwvZmlsZT4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5jc3MKaW5kZXggZGIyOWE2YS4uMzVmNzZjOSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTg5OCw2ICs4OTgsMjkgQEAgYm9k
eS5wbGF0Zm9ybS1saW51eCAubW9ub3NwYWNlLCBib2R5LnBsYXRmb3JtLWxpbnV4IC5zb3VyY2Ut
Y29kZSB7CiAgICAgdG9wOiAyMHB4OwogfQogCisucmVzb3VyY2UtdmlldyAucmVzb3VyY2Utdmll
dy1jb29raWVzIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIHJp
Z2h0OiAwOworICAgIGxlZnQ6IDA7CisgICAgYm90dG9tOiAwOworICAgIG92ZXJmbG93OiBhdXRv
OworICAgIHBhZGRpbmc6IDEycHg7Cit9CisKKy5yZXNvdXJjZS12aWV3LmhlYWRlcnMtdmlzaWJs
ZSAucmVzb3VyY2Utdmlldy1jb29raWVzIHsKKyAgICB0b3A6IDIwcHg7Cit9CisKKy5yZXNvdXJj
ZS12aWV3LWNvb2tpZXMudGFibGUgLmRhdGEtZ3JpZCB7CisgICAgaGVpZ2h0OiAxMDAlOworfQor
CisucmVzb3VyY2Utdmlldy1jb29raWVzIC5kYXRhLWdyaWQgLnJvdy1ncm91cCB7CisgICAgZm9u
dC13ZWlnaHQ6IGJvbGQ7CisgICAgZm9udC1zaXplOiAxMXB4OworfQorCiAud2Via2l0LWxpbmUt
Z3V0dGVyLWJhY2tkcm9wIHsKICAgICAvKiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHZpZXctc291
cmNlLmNzcyAoLndlYmtpdC1saW5lLWd1dHRlci1iYWNrZHJvcCkgKi8KICAgICB3aWR0aDogMzFw
eDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRt
bCBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCA5NmQw
Y2ZlLi5jODAwYTcxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmh0bWwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5o
dG1sCkBAIC02Nyw2ICs2Nyw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iRE9NU3RvcmFnZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRE9NU3RvcmFnZUl0ZW1zVmlldy5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRGF0YUdyaWQuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvb2tpZUl0
ZW1zVmlld0Jhc2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9IkNvb2tpZUl0ZW1zVmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU2NyaXB0Lmpz
Ij48L3NjcmlwdD4KQEAgLTExMiw2ICsxMTMsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkF1ZGl0UnVsZXMuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkF1ZGl0Q2F0ZWdvcmllcy5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQXVkaXRGb3Jt
YXR0ZXJzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJSZXNvdXJjZUNvb2tpZXNWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJSZXNvdXJjZVZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNvdXJjZUZyYW1lLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJET01TeW50YXhIaWdo
bGlnaHRlci5qcyI+PC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="61874"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>