<?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>141279</bug_id>
          
          <creation_ts>2015-02-04 19:15:20 -0800</creation_ts>
          <short_desc>Web Inspector: ES6: Show Symbol properties on Objects</short_desc>
          <delta_ts>2015-04-08 17:31:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>141106</dependson>
    
    <dependson>143424</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>burg</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1067010</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-02-04 19:15:20 -0800</bug_when>
    <thetext>* SUMMARY
ES6: Show Symbol properties on Objects.

* TEST

    js&gt; var o = {}; o[Symbol(&quot;test&quot;)] = 1; o;
    ACTUAL =&gt; {}
    EXPECT =&gt; {Symbol(&quot;test&quot;): 1}

* NOTES
- Expecting we will require Object.getOwnPropertySymbols or something like it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067011</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-02-04 19:15:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/19725791&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070249</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-02-18 15:27:23 -0800</bug_when>
    <thetext>Waiting on: bug 141106</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082942</commentid>
    <comment_count>3</comment_count>
      <attachid>250168</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-05 14:27:31 -0700</bug_when>
    <thetext>Created attachment 250168
[PATCH] Proposed Fix

First version.

  - Symbol properties do not have custom Preview / ObjectTree look, just have stringified Symbol(foo) names.
  - Worked around a JSC issue that appears to be JIT related, can&apos;t really reduce it with Symbols disabled by default though...
  - Added context menu to Object Trees allowing developers to access the symbol itself</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082944</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-05 14:37:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created attachment 250168 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; First version.
&gt; 
&gt;   - Symbol properties do not have custom Preview / ObjectTree look, just
&gt; have stringified Symbol(foo) names.
&gt;   - Worked around a JSC issue that appears to be JIT related, can&apos;t really
&gt; reduce it with Symbols disabled by default though...
&gt;   - Added context menu to Object Trees allowing developers to access the
&gt; symbol itself

Maybe it&apos;s my fault.
When landing Symbol, I updated C++ StringConstructor to adapt symbols.
However, seeing DFG code, there&apos;s special inlining path for String constructor and it&apos;s not changed to adapt symbols.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082961</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-05 16:37:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Created attachment 250168 [details]
&gt; &gt; [PATCH] Proposed Fix
&gt; &gt; 
&gt; &gt; First version.
&gt; &gt; 
&gt; &gt;   - Symbol properties do not have custom Preview / ObjectTree look, just
&gt; &gt; have stringified Symbol(foo) names.
&gt; &gt;   - Worked around a JSC issue that appears to be JIT related, can&apos;t really
&gt; &gt; reduce it with Symbols disabled by default though...
&gt; &gt;   - Added context menu to Object Trees allowing developers to access the
&gt; &gt; symbol itself
&gt; 
&gt; Maybe it&apos;s my fault.
&gt; When landing Symbol, I updated C++ StringConstructor to adapt symbols.
&gt; However, seeing DFG code, there&apos;s special inlining path for String
&gt; constructor and it&apos;s not changed to adapt symbols.

Ooh, interesting. That sounds like exactly what I was seeing.

    function toString(o)
    {
        return String(o);
    }

It seemed like this was occasionally throwing a TypeError when seeing a Symbol after seeing a lot of Strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082965</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-05 16:46:01 -0700</bug_when>
    <thetext>Yep, seems related to DFGByteCodeParser&apos;s ByteCodeParser::handleConstantInternalFunction path for StringConstructor. If I comment out that code I don&apos;t hit the error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082969</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-05 16:56:24 -0700</bug_when>
    <thetext>Bug 143427 covers the issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083073</commentid>
    <comment_count>8</comment_count>
      <attachid>250168</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-06 05:54:50 -0700</bug_when>
    <thetext>Comment on attachment 250168
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Views/ObjectTreeBaseTreeElement.js:163
&gt; +        var text = WebInspector.UIString(&quot;Selected Symbol Property&quot;);

Selected Symbol Property Key? Selected Symbol Key?

Property alone says &quot;Value&quot; to me.

&gt; Source/WebInspectorUI/UserInterface/Views/ObjectTreeBaseTreeElement.js:192
&gt; +            contextMenu.appendItem(WebInspector.UIString(&quot;Log Symbol Property&quot;), this._logSymbolProperty.bind(this));

Log Symbol Key?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083141</commentid>
    <comment_count>9</comment_count>
      <attachid>250168</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-06 12:18:50 -0700</bug_when>
    <thetext>Comment on attachment 250168
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/inspector/InjectedScriptSource.js:673
&gt; +                var name = property.toString();

Landed! http://trac.webkit.org/changeset/182433
So we can use `toString(property)` :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083385</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-07 12:34:39 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 250168 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=250168&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/ObjectTreeBaseTreeElement.js:163
&gt; &gt; +        var text = WebInspector.UIString(&quot;Selected Symbol Property&quot;);
&gt; 
&gt; Selected Symbol Property Key? Selected Symbol Key?
&gt; 
&gt; Property alone says &quot;Value&quot; to me.
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/ObjectTreeBaseTreeElement.js:192
&gt; &gt; +            contextMenu.appendItem(WebInspector.UIString(&quot;Log Symbol Property&quot;), this._logSymbolProperty.bind(this));
&gt; 
&gt; Log Symbol Key?

Hmm, I think &quot;Key&quot; is misleading. Instead of a string property name it is a Symbol property name. &quot;Key&quot; sounds like something from a Map.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083390</commentid>
    <comment_count>11</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-07 13:12:43 -0700</bug_when>
    <thetext>Tell that to Object.keys(). ;)

I hear ya though. 

Maybe just &quot;Selected Symbol&quot; and &quot;Log Symbol&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083394</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-07 13:15:12 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Tell that to Object.keys(). ;)

Hah, good point!

&gt; I hear ya though. 
&gt; 
&gt; Maybe just &quot;Selected Symbol&quot; and &quot;Log Symbol&quot;.

That works for me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083431</commentid>
    <comment_count>13</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-07 14:30:11 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/182493</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083777</commentid>
    <comment_count>14</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-04-08 17:21:23 -0700</bug_when>
    <thetext>These tests all fail on Windows. Can someone take a look?

In general, it seems like the inspector protocol stuff on Windows is kind of unstable. It would be great if someone (Matt Baker!) could devote a little time to troubleshooting some of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083783</commentid>
    <comment_count>15</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-08 17:31:54 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; These tests all fail on Windows. Can someone take a look?

I thought these tests were skipped anyways. I run them manually.

&gt; In general, it seems like the inspector protocol stuff on Windows is kind of
&gt; unstable. It would be great if someone (Matt Baker!) could devote a little
&gt; time to troubleshooting some of this.

I&apos;ve been waiting until my next bot-watching week to investigate.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250168</attachid>
            <date>2015-04-05 14:27:31 -0700</date>
            <delta_ts>2015-04-06 05:54:50 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>version-1.patch</filename>
            <type>text/plain</type>
            <size>22547</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MjhhODEyLi5hYjlhYTRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDQt
MDUgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBFUzY6IFNob3cgU3ltYm9sIHByb3BlcnRpZXMgb24gT2JqZWN0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMjc5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvbW9k
ZWwvcmVtb3RlLW9iamVjdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL21vZGVs
L3JlbW90ZS1vYmplY3QtZ2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlu
c3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0LWdldC1wcm9wZXJ0aWVzLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QuaHRtbDoKKyAgICAgICAgVXBkYXRlIHRl
c3RzIHRvIGluY2x1ZGUgb2JqZWN0cyB3aXRoIFN5bWJvbCBwcm9wZXJ0aWVzLgorCiAyMDE1LTAz
LTMwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogUmVncmVzc2lvbjogUHJldmlldyBmb3IgW1tudWxsXV0gc2hvdWxkbid0IGJl
IFtdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVj
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVj
dC1leHBlY3RlZC50eHQKaW5kZXggZTcwMWU2NC4uZmI0YTc0OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0LWV4cGVjdGVkLnR4dApAQCAt
MjA0Nyw2ICsyMDQ3LDQ4IEBAIEVYUFJFU1NJT046IG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZm
ZXIoMTYpKQogfQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorRVhQUkVTU0lPTjogb2JqID0ge307IG9ialsncHJvcCddID0gMTsgb2JqW1N5
bWJvbCgpXSA9IDI7IG9ialtTeW1ib2woJ3N5bScpXSA9IDM7IG9ialtTeW1ib2woJ3N5bScpXSA9
IDQ7IG9ialtTeW1ib2wuaXRlcmF0b3JdID0gU3ltYm9sKCk7IG9iagoreworICAiX3R5cGUiOiAi
b2JqZWN0IiwKKyAgIl9vYmplY3RJZCI6ICI8ZmlsdGVyZWQ+IiwKKyAgIl9kZXNjcmlwdGlvbiI6
ICJPYmplY3QiLAorICAiX3ByZXZpZXciOiB7CisgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAg
Il9kZXNjcmlwdGlvbiI6ICJPYmplY3QiLAorICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAgICJf
b3ZlcmZsb3ciOiBmYWxzZSwKKyAgICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICB7CisgICAgICAg
ICJfbmFtZSI6ICJwcm9wIiwKKyAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICJf
dmFsdWUiOiAiMSIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJTeW1ib2wo
KSIsCisgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAgICAiX3ZhbHVlIjogIjIiCisg
ICAgICB9LAorICAgICAgeworICAgICAgICAiX25hbWUiOiAiU3ltYm9sKHN5bSkiLAorICAgICAg
ICAiX3R5cGUiOiAibnVtYmVyIiwKKyAgICAgICAgIl92YWx1ZSI6ICIzIgorICAgICAgfSwKKyAg
ICAgIHsKKyAgICAgICAgIl9uYW1lIjogIlN5bWJvbChzeW0pIiwKKyAgICAgICAgIl90eXBlIjog
Im51bWJlciIsCisgICAgICAgICJfdmFsdWUiOiAiNCIKKyAgICAgIH0sCisgICAgICB7CisgICAg
ICAgICJfbmFtZSI6ICJTeW1ib2woU3ltYm9sLml0ZXJhdG9yKSIsCisgICAgICAgICJfdHlwZSI6
ICJzeW1ib2wiLAorICAgICAgICAiX3ZhbHVlIjogIlN5bWJvbCgpIgorICAgICAgfQorICAgIF0s
CisgICAgIl9lbnRyaWVzIjogbnVsbAorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBFWFBSRVNTSU9OOiBkb2N1bWVudC5ib2R5
CiB7CiAgICJfdHlwZSI6ICJvYmplY3QiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL21vZGVsL3JlbW90ZS1vYmplY3QtZ2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QtZ2V0LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0CmluZGV4IDdhOGE2OWYuLmJjNWY1OTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0LWdldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1nZXQtcHJv
cGVydGllcy1leHBlY3RlZC50eHQKQEAgLTI2NSw1ICsyNjUsNDkgQEAgQUxMIFBST1BFUlRJRVM6
CiAgICAgYm91bmRUaGlzCiAgICAgYm91bmRBcmdzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRVhQUkVTU0lPTjogd2luZG93Lm9iamVjdFdp
dGhTeW1ib2xQcm9wZXJ0aWVzCit0eXBlOiBvYmplY3QKK2Rlc2NyaXB0aW9uOiBPYmplY3QKKwor
T1dOIFBST1BFUlRJRVM6CisgICAgcHJvcAorICAgIHByb3AyCisgICAgU3ltYm9sKCkKKyAgICBT
eW1ib2woc3ltKQorICAgIFN5bWJvbChzeW0pCisgICAgU3ltYm9sKCkKKyAgICBfX3Byb3RvX18K
KworRElTUExBWUFCTEUgUFJPUEVSVElFUzoKKyAgICBwcm9wCisgICAgcHJvcDIKKyAgICBTeW1i
b2woKQorICAgIFN5bWJvbChzeW0pCisgICAgU3ltYm9sKHN5bSkKKyAgICBTeW1ib2woKQorICAg
IF9fcHJvdG9fXworCitBTEwgUFJPUEVSVElFUzoKKyAgICBwcm9wCisgICAgcHJvcDIKKyAgICBT
eW1ib2woKQorICAgIFN5bWJvbChzeW0pCisgICAgU3ltYm9sKHN5bSkKKyAgICBTeW1ib2woKQor
ICAgIHRvU3RyaW5nCisgICAgdG9Mb2NhbGVTdHJpbmcKKyAgICB2YWx1ZU9mCisgICAgaGFzT3du
UHJvcGVydHkKKyAgICBwcm9wZXJ0eUlzRW51bWVyYWJsZQorICAgIGlzUHJvdG90eXBlT2YKKyAg
ICBfX2RlZmluZUdldHRlcl9fCisgICAgX19kZWZpbmVTZXR0ZXJfXworICAgIF9fbG9va3VwR2V0
dGVyX18KKyAgICBfX2xvb2t1cFNldHRlcl9fCisgICAgY29uc3RydWN0b3IKKyAgICBfX3Byb3Rv
X18KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiBET05FCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUt
b2JqZWN0LWdldC1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwv
cmVtb3RlLW9iamVjdC1nZXQtcHJvcGVydGllcy5odG1sCmluZGV4IGVjNzg1YWQuLmE0NTQ2ZGMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0LWdl
dC1wcm9wZXJ0aWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3JlbW90
ZS1vYmplY3QtZ2V0LXByb3BlcnRpZXMuaHRtbApAQCAtNDMsNiArNDMsNyBAQCB2YXIgY29tcGxl
eE9iamVjdCA9IG5ldyBTdXBlckZvbzsKIHZhciBiYWRHZXR0ZXJPYmplY3QgPSBuZXcgQ2xhc3NX
aXRoQmFkR2V0dGVyOwogdmFyIHVuYm91bmRGdW5jdGlvbiA9IGZ1bmN0aW9uKCkgeyBjb25zb2xl
LmxvZyhhcmd1bWVudHMpOyB9CiB2YXIgYm91bmRGdW5jdGlvbiA9IHVuYm91bmRGdW5jdGlvbi5i
aW5kKGRvY3VtZW50LmJvZHksIDEsIDIsIDMpOwordmFyIG9iamVjdFdpdGhTeW1ib2xQcm9wZXJ0
aWVzID0ge3Byb3A6MSwgW1N5bWJvbCgpXToyLCBbU3ltYm9sKCdzeW0nKV06MywgW1N5bWJvbCgn
c3ltJyldOjQsIFtTeW1ib2woKV06IFN5bWJvbCgpLCBwcm9wMjogNX07CiAKIAogLy8gLS0tLS0t
LS0KQEAgLTU5LDYgKzYwLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHtleHByZXNzaW9u
OiAid2luZG93LmJhZEdldHRlck9iamVjdCJ9LAogICAgICAgICB7ZXhwcmVzc2lvbjogIndpbmRv
dy51bmJvdW5kRnVuY3Rpb24ifSwKICAgICAgICAge2V4cHJlc3Npb246ICJ3aW5kb3cuYm91bmRG
dW5jdGlvbiJ9LAorICAgICAgICB7ZXhwcmVzc2lvbjogIndpbmRvdy5vYmplY3RXaXRoU3ltYm9s
UHJvcGVydGllcyJ9LAogICAgIF0KIAogICAgIGZ1bmN0aW9uIHJ1bk5leHRTdGVwKCkgewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0Lmh0bWwKaW5kZXggNGJk
OGY4Zi4uMzg0YzVhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3Jl
bW90ZS1vYmplY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3Rl
LW9iamVjdC5odG1sCkBAIC0xMDMsNiArMTAzLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
IHtleHByZXNzaW9uOiAid2luZG93LmxvYWRFdmVudCJ9LCAvLyB3aW5kb3cubG9hZEV2ZW50IGlz
IHNldCBpbnNpZGUgb2YgPGJvZHkgb25sb2FkPSIuLi4iPiBiZWxvdy4KICAgICAgICAge2V4cHJl
c3Npb246ICJuZXcgQXJyYXlCdWZmZXIoMTYpIn0sCiAgICAgICAgIHtleHByZXNzaW9uOiAibmV3
IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigxNikpIn0sCisgICAgICAgIHtleHByZXNzaW9uOiAi
b2JqID0ge307IG9ialsncHJvcCddID0gMTsgb2JqW1N5bWJvbCgpXSA9IDI7IG9ialtTeW1ib2wo
J3N5bScpXSA9IDM7IG9ialtTeW1ib2woJ3N5bScpXSA9IDQ7IG9ialtTeW1ib2wuaXRlcmF0b3Jd
ID0gU3ltYm9sKCk7IG9iaiJ9LCAvLyBTeW1ib2wgcHJvcGVydGllcwogCiAgICAgICAgIC8vIE5v
ZGUKICAgICAgICAge2V4cHJlc3Npb246ICJkb2N1bWVudC5ib2R5In0sCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA3MWZhM2U3Li44MTU5ZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNC0wNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVTNjogU2hvdyBTeW1ib2wgcHJv
cGVydGllcyBvbiBPYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDEyNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9SdW50aW1lLmpzb246CisgICAgICAgIEdp
dmUgUHJvcGVydHlEZXNjcmlwdG9yIGEgcmVmZXJlbmNlIHRvIHRoZSBTeW1ib2wgUmVtb3RlT2Jq
ZWN0CisgICAgICAgIGlmIHRoZSBwcm9wZXJ0eSBpcyBhIHN5bWJvbCBwcm9wZXJ0eS4KKworICAg
ICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgRW51bWVy
YXRlIHN5bWJvbCBwcm9wZXJ0aWVzIG9uIG9iamVjdHMuCisKIDIwMTUtMDMtMzAgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZWdyZXNzaW9uOiBQcmV2aWV3IGZvciBbW251bGxdXSBzaG91bGRuJ3QgYmUgW10KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNl
LmpzCmluZGV4IDg0MjVjN2IuLmJkMmEwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxNC0yMDE1IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTIzOSw2ICsyMzksOCBA
QCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgZGVzY3JpcHRv
ci5jb25maWd1cmFibGUgPSBmYWxzZTsKICAgICAgICAgICAgIGlmICghKCJlbnVtZXJhYmxlIiBp
biBkZXNjcmlwdG9yKSkKICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBm
YWxzZTsKKyAgICAgICAgICAgIGlmICgic3ltYm9sIiBpbiBkZXNjcmlwdG9yKQorICAgICAgICAg
ICAgICAgIGRlc2NyaXB0b3Iuc3ltYm9sID0gdGhpcy5fd3JhcE9iamVjdChkZXNjcmlwdG9yLnN5
bWJvbCwgb2JqZWN0R3JvdXBOYW1lKTsKICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBkZXNj
cmlwdG9yczsKQEAgLTYwNywyMCArNjA5LDI1IEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9
IHsKICAgICBfcHJvcGVydHlEZXNjcmlwdG9yczogZnVuY3Rpb24ob2JqZWN0LCBjb2xsZWN0aW9u
TW9kZSkKICAgICB7CiAgICAgICAgIHZhciBkZXNjcmlwdG9ycyA9IFtdOwotICAgICAgICB2YXIg
bmFtZVByb2Nlc3NlZCA9IHt9OwotICAgICAgICBuYW1lUHJvY2Vzc2VkWyJfX3Byb3RvX18iXSA9
IG51bGw7CisgICAgICAgIHZhciBuYW1lUHJvY2Vzc2VkID0gbmV3IFNldDsKIAotICAgICAgICBm
dW5jdGlvbiBjcmVhdGVGYWtlVmFsdWVEZXNjcmlwdG9yKG5hbWUsIGRlc2NyaXB0b3IsIGlzT3du
UHJvcGVydHksIHBvc3NpYmxlTmF0aXZlQmluZGluZ0dldHRlcikKKyAgICAgICAgZnVuY3Rpb24g
Y3JlYXRlRmFrZVZhbHVlRGVzY3JpcHRvcihuYW1lLCBzeW1ib2wsIGRlc2NyaXB0b3IsIGlzT3du
UHJvcGVydHksIHBvc3NpYmxlTmF0aXZlQmluZGluZ0dldHRlcikKICAgICAgICAgewogICAgICAg
ICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRvciA9IHtuYW1lLCB2YWx1
ZTogb2JqZWN0W25hbWVdLCB3cml0YWJsZTogZGVzY3JpcHRvci53cml0YWJsZSB8fCBmYWxzZSwg
Y29uZmlndXJhYmxlOiBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSB8fCBmYWxzZSwgZW51bWVyYWJs
ZTogZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlfTsKICAgICAgICAgICAgICAgICBpZiAo
cG9zc2libGVOYXRpdmVCaW5kaW5nR2V0dGVyKQogICAgICAgICAgICAgICAgICAgICBkZXNjcmlw
dG9yLm5hdGl2ZUdldHRlciA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKGlzT3duUHJvcGVy
dHkpCisgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IuaXNPd24gPSB0cnVlOworICAgICAg
ICAgICAgICAgIGlmIChzeW1ib2wpCisgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3Iuc3lt
Ym9sID0gc3ltYm9sOwogICAgICAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdG9yOwogICAgICAg
ICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgIHZhciBlcnJvckRlc2NyaXB0b3Ig
PSB7bmFtZSwgdmFsdWU6IGUsIHdhc1Rocm93bjogdHJ1ZX07CiAgICAgICAgICAgICAgICAgaWYg
KGlzT3duUHJvcGVydHkpCiAgICAgICAgICAgICAgICAgICAgIGVycm9yRGVzY3JpcHRvci5pc093
biA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKHN5bWJvbCkKKyAgICAgICAgICAgICAgICAg
ICAgZXJyb3JEZXNjcmlwdG9yLnN5bWJvbCA9IHN5bWJvbDsKICAgICAgICAgICAgICAgICByZXR1
cm4gZXJyb3JEZXNjcmlwdG9yOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC02NTIsMjAg
KzY1OSwyNCBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBwcm9jZXNzUHJvcGVydHlOYW1lcyhvLCBuYW1l
cywgaXNPd25Qcm9wZXJ0eSkKKyAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc1Byb3BlcnRpZXMobywg
cHJvcGVydGllcywgaXNPd25Qcm9wZXJ0eSkKICAgICAgICAgewotICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBu
YW1lID0gbmFtZXNbaV07Ci0gICAgICAgICAgICAgICAgaWYgKG5hbWVQcm9jZXNzZWRbbmFtZV0g
fHwgbmFtZSA9PT0gIl9fcHJvdG9fXyIpCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHByb3BlcnRpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHkg
PSBwcm9wZXJ0aWVzW2ldOworICAgICAgICAgICAgICAgIGlmIChuYW1lUHJvY2Vzc2VkLmhhcyhw
cm9wZXJ0eSkgfHwgcHJvcGVydHkgPT09ICJfX3Byb3RvX18iKQogICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICAgICAgICAgIG5hbWVQcm9jZXNzZWRbbmFtZV0gPSB0cnVl
OworICAgICAgICAgICAgICAgIG5hbWVQcm9jZXNzZWQuYWRkKHByb3BlcnR5KTsKIAotICAgICAg
ICAgICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihvLCBuYW1lKTsKKyAgICAgICAgICAgICAgICB2YXIgc3ltYm9sID0gaXNTeW1ib2wocHJvcGVy
dHkpID8gcHJvcGVydHkgOiBudWxsOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQganVzdCBiZSBhYmxlIHRvIGRvIHRvU3RyaW5nKHByb3BlcnR5KSBoZXJlLgorICAgICAgICAg
ICAgICAgIHZhciBuYW1lID0gcHJvcGVydHkudG9TdHJpbmcoKTsKKworICAgICAgICAgICAgICAg
IHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCBwcm9w
ZXJ0eSk7CiAgICAgICAgICAgICAgICAgaWYgKCFkZXNjcmlwdG9yKSB7CiAgICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBCYWQgZGVzY3JpcHRvci4gQ2FuIHdlIGdldCBoZXJlPwogICAgICAg
ICAgICAgICAgICAgICAvLyBGYWxsIGJhY2sgdG8gdmVyeSByZXN0cmljdGl2ZSBzZXR0aW5ncy4K
LSAgICAgICAgICAgICAgICAgICAgdmFyIGZha2VEZXNjcmlwdG9yID0gY3JlYXRlRmFrZVZhbHVl
RGVzY3JpcHRvcihuYW1lLCB7d3JpdGFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNlLCBl
bnVtZXJhYmxlOiBmYWxzZX0sIGlzT3duUHJvcGVydHkpOworICAgICAgICAgICAgICAgICAgICB2
YXIgZmFrZURlc2NyaXB0b3IgPSBjcmVhdGVGYWtlVmFsdWVEZXNjcmlwdG9yKG5hbWUsIHN5bWJv
bCwge3dyaXRhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogZmFs
c2V9LCBpc093blByb3BlcnR5KTsKICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0Rlc2NyaXB0
b3IoZmFrZURlc2NyaXB0b3IsIGlzT3duUHJvcGVydHkpOwogICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgICAgICB9CkBAIC02NzQsNyArNjg1LDcgQEAgSW5qZWN0ZWRT
Y3JpcHQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE0MDU3NT4gV2ViIEluc3BlY3RvcjogTmF0aXZlIEJpbmRpbmdzIERl
c2NyaXB0b3JzIGFyZSBJbmNvbXBsZXRlCiAgICAgICAgICAgICAgICAgICAgIC8vIERldmVsb3Bl
cnMgbWF5IGNyZWF0ZSBzdWNoIGEgZGVzY3JpcHRvcnMsIHNvIHdlIHNob3VsZCBiZSByZXNpbGll
bnQ6CiAgICAgICAgICAgICAgICAgICAgIC8vIHZhciB4ID0ge307IE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eSh4LCAicCIsIHtnZXQ6dW5kZWZpbmVkfSk7IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoeCwgInAiKQotICAgICAgICAgICAgICAgICAgICB2YXIgZmFrZURlc2NyaXB0b3IgPSBj
cmVhdGVGYWtlVmFsdWVEZXNjcmlwdG9yKG5hbWUsIGRlc2NyaXB0b3IsIGlzT3duUHJvcGVydHks
IHRydWUpOworICAgICAgICAgICAgICAgICAgICB2YXIgZmFrZURlc2NyaXB0b3IgPSBjcmVhdGVG
YWtlVmFsdWVEZXNjcmlwdG9yKG5hbWUsIHN5bWJvbCwgZGVzY3JpcHRvciwgaXNPd25Qcm9wZXJ0
eSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEZXNjcmlwdG9yKGZha2VEZXNj
cmlwdG9yLCBpc093blByb3BlcnR5LCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICAgICAgfQpAQCAtNjgyLDYgKzY5Myw4IEBAIEluamVjdGVkU2NyaXB0
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLm5hbWUgPSBuYW1lOwog
ICAgICAgICAgICAgICAgIGlmIChpc093blByb3BlcnR5KQogICAgICAgICAgICAgICAgICAgICBk
ZXNjcmlwdG9yLmlzT3duID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoc3ltYm9sKQorICAg
ICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLnN5bWJvbCA9IHN5bWJvbDsKICAgICAgICAgICAg
ICAgICBwcm9jZXNzRGVzY3JpcHRvcihkZXNjcmlwdG9yLCBpc093blByb3BlcnR5KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQpAQCAtNjg5LDcgKzcwMiw5IEBAIEluamVjdGVkU2NyaXB0LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgLy8gSXRlcmF0ZSBwcm90b3R5cGUgY2hhaW4uCiAgICAgICAg
IGZvciAodmFyIG8gPSBvYmplY3Q7IHRoaXMuX2lzRGVmaW5lZChvKTsgbyA9IG8uX19wcm90b19f
KSB7CiAgICAgICAgICAgICB2YXIgaXNPd25Qcm9wZXJ0eSA9IG8gPT09IG9iamVjdDsKLSAgICAg
ICAgICAgIHByb2Nlc3NQcm9wZXJ0eU5hbWVzKG8sIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVz
KG8pLCBpc093blByb3BlcnR5KTsKKyAgICAgICAgICAgIHByb2Nlc3NQcm9wZXJ0aWVzKG8sIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG8pLCBpc093blByb3BlcnR5KTsKKyAgICAgICAgICAg
IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKQorICAgICAgICAgICAgICAgIHByb2Nl
c3NQcm9wZXJ0aWVzKG8sIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobyksIGlzT3duUHJv
cGVydHkpOwogICAgICAgICAgICAgaWYgKGNvbGxlY3Rpb25Nb2RlID09PSBJbmplY3RlZFNjcmlw
dC5Db2xsZWN0aW9uTW9kZS5Pd25Qcm9wZXJ0aWVzKQogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3By
b3RvY29sL1J1bnRpbWUuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJv
dG9jb2wvUnVudGltZS5qc29uCmluZGV4IGE3ZGZiN2UuLjczYjY1MjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUnVudGltZS5qc29uCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUnVudGltZS5qc29uCkBA
IC03MSw3ICs3MSw3IEBACiAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIk9iamVjdCBwcm9wZXJ0eSBkZXNjcmlwdG9yLiIsCiAgICAgICAg
ICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hbWUiLCAi
dHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUHJvcGVydHkgbmFtZS4iIH0sCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIlByb3BlcnR5IG5hbWUgb3Igc3ltYm9sIGRlc2NyaXB0aW9uLiIgfSwKICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInZhbHVlIiwgIiRyZWYiOiAiUmVtb3RlT2JqZWN0IiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhl
IHByb3BlcnR5LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndyaXRhYmxlIiwgInR5
cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUcnVlIGlm
IHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHByb3BlcnR5IG1heSBiZSBjaGFuZ2VkIChk
YXRhIGRlc2NyaXB0b3JzIG9ubHkpLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImdl
dCIsICIkcmVmIjogIlJlbW90ZU9iamVjdCIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlv
biI6ICJBIGZ1bmN0aW9uIHdoaWNoIHNlcnZlcyBhcyBhIGdldHRlciBmb3IgdGhlIHByb3BlcnR5
LCBvciA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IGlmIHRoZXJlIGlzIG5vIGdldHRlciAoYWNjZXNz
b3IgZGVzY3JpcHRvcnMgb25seSkuIiB9LApAQCAtODAsNiArODAsNyBAQAogICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiZW51bWVyYWJsZSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRp
b24iOiAiVHJ1ZSBpZiB0aGlzIHByb3BlcnR5IHNob3dzIHVwIGR1cmluZyBlbnVtZXJhdGlvbiBv
ZiB0aGUgcHJvcGVydGllcyBvbiB0aGUgY29ycmVzcG9uZGluZyBvYmplY3QuIiB9LAogICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAid2FzVGhyb3duIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUcnVlIGlmIHRoZSByZXN1bHQgd2FzIHRocm93
biBkdXJpbmcgdGhlIGV2YWx1YXRpb24uIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
aXNPd24iLCAib3B0aW9uYWwiOiB0cnVlLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9u
IjogIlRydWUgaWYgdGhlIHByb3BlcnR5IGlzIG93bmVkIGZvciB0aGUgb2JqZWN0LiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInN5bWJvbCIsICJvcHRpb25hbCI6IHRydWUsICIkcmVm
IjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiwgImRlc2NyaXB0aW9uIjogIlByb3BlcnR5IHN5bWJv
bCBvYmplY3QsIGlmIHRoZSBwcm9wZXJ0eSBpcyBhIHN5bWJvbC4iIH0sCiAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJuYXRpdmVHZXR0ZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAidHlwZSI6ICJi
b29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYgdGhlIHByb3BlcnR5IHZhbHVlIGNhbWUg
ZnJvbSBhIG5hdGl2ZSBnZXR0ZXIuIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZwppbmRleCAwZmUyY2RjLi4zZGVmN2ZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxNS0wNC0wNSAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVTNjogU2hvdyBT
eW1ib2wgcHJvcGVydGllcyBvbiBPYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEyNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9Qcm9wZXJ0eURlc2NyaXB0
b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvcGVydHlEZXNjcmlwdG9yLmdldCBzeW1i
b2wpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LndyYXBwZWRDYWxsYmFjayk6Cisg
ICAgICAgIFVwZGF0ZSBuZXcgUHJvcGVydHlEZXNjcmlwdG9yIGNhbGwgc2l0ZS4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvT2JqZWN0VHJlZUJhc2VUcmVlRWxlbWVudC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3RUcmVlQmFzZVRyZWVFbGVtZW50Ll9sb2dTeW1ib2xQ
cm9wZXJ0eSk6CisgICAgICAgIFByb3ZpZGUgYSBjb250ZXh0IG1lbnUgZm9yIHJvd3Mgd2l0aCBT
eW1ib2wgcHJvcGVydGllcyB0byBsb2cKKyAgICAgICAgdGhlIFN5bWJvbCBwcm9wZXJ0eSwgYW5k
IHRoZXJlZm9yZSBnZXQgYSByZWZlcmVuY2UgdG8gaXQuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL09iamVjdFRyZWVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVj
dFRyZWVWaWV3LmNvbXBhcmVQcm9wZXJ0eURlc2NyaXB0b3JzKToKKyAgICAgICAgQmV0dGVyIGhh
bmRsZSBzeW1ib2wgcHJvcGVydGllcyBpbiBzb3J0aW5nLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9UeXBlUHJvcGVydGllc1NlY3Rpb24uanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVHlwZVByb3BlcnRpZXNTZWN0aW9uLlByb3BlcnR5Q29tcGFyYXRvcik6CisgICAgICAgIFJl
dHVybiBiZXR0ZXIgdmFsdWUgd2hlbiB2YWx1ZXMgYXJlIGVxdWFsLgorCiAyMDE1LTAzLTMwICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogUmVncmVzc2lvbjogbnVsbCBzaG91bGRuJ3QgYmUgZXhwYW5kYWJsZSBpbiBvYmplY3Qg
b3V0bGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2Nh
bGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggOWYyZTIwYmZmYzgz
NThkZWIwYzU1OGE5MGU0NzJhOWU3NWE3NGQxYS4uMjRmNGU2MjcxMGQxYTkxNjJhMzRhMDM0MWE4
OTlhYmM4NmUwZDM4ZiAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA5OQp6Y21jYX5mJSgt
WDxfKXtNeHF9JWg4RkNxdDgxZmwlQ2lqQGgzO09fQj0/bkBDJGx7MDBZJlVRMiZNYHorSlVNIWcK
VDVRLVIzO3BGKnlnZmAzWEhQIXxJQyFyciQKCmRlbHRhIDIzCmZjbWFFTGlUVG42PF8pe01IezE1
NDcqM0FnJEZ0ZGFwU21eeG00NkVeCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb3BlcnR5RGVzY3JpcHRvci5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Qcm9wZXJ0eURlc2NyaXB0b3IuanMKaW5k
ZXggZGZmZDU5ZC4uY2I2OWNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL1Byb3BlcnR5RGVzY3JpcHRvci5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvcGVydHlEZXNjcmlwdG9yLmpzCkBA
IC0yNSw3ICsyNSw3IEBACiAKIFdlYkluc3BlY3Rvci5Qcm9wZXJ0eURlc2NyaXB0b3IgPSBjbGFz
cyBQcm9wZXJ0eURlc2NyaXB0b3IgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiB7Ci0gICAg
Y29uc3RydWN0b3IoZGVzY3JpcHRvciwgaXNPd25Qcm9wZXJ0eSwgd2FzVGhyb3duLCBuYXRpdmVH
ZXR0ZXIsIGlzSW50ZXJuYWxQcm9wZXJ0eSkKKyAgICBjb25zdHJ1Y3RvcihkZXNjcmlwdG9yLCBz
eW1ib2wsIGlzT3duUHJvcGVydHksIHdhc1Rocm93biwgbmF0aXZlR2V0dGVyLCBpc0ludGVybmFs
UHJvcGVydHkpCiAgICAgewogICAgICAgICBzdXBlcigpOwogCkBAIC0zNCwxMiArMzQsMTQgQEAg
V2ViSW5zcGVjdG9yLlByb3BlcnR5RGVzY3JpcHRvciA9IGNsYXNzIFByb3BlcnR5RGVzY3JpcHRv
ciBleHRlbmRzIFdlYkluc3BlY3Rvci4KICAgICAgICAgY29uc29sZS5hc3NlcnQoIWRlc2NyaXB0
b3IudmFsdWUgfHwgZGVzY3JpcHRvci52YWx1ZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5SZW1v
dGVPYmplY3QpOwogICAgICAgICBjb25zb2xlLmFzc2VydCghZGVzY3JpcHRvci5nZXQgfHwgZGVz
Y3JpcHRvci5nZXQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0KTsKICAgICAg
ICAgY29uc29sZS5hc3NlcnQoIWRlc2NyaXB0b3Iuc2V0IHx8IGRlc2NyaXB0b3Iuc2V0IGluc3Rh
bmNlb2YgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCFzeW1ib2wgfHwgc3ltYm9sIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk7
CiAKICAgICAgICAgdGhpcy5fbmFtZSA9IGRlc2NyaXB0b3IubmFtZTsKICAgICAgICAgdGhpcy5f
dmFsdWUgPSBkZXNjcmlwdG9yLnZhbHVlOwogICAgICAgICB0aGlzLl9oYXNWYWx1ZSA9ICJ2YWx1
ZSIgaW4gZGVzY3JpcHRvcjsKICAgICAgICAgdGhpcy5fZ2V0ID0gZGVzY3JpcHRvci5nZXQ7CiAg
ICAgICAgIHRoaXMuX3NldCA9IGRlc2NyaXB0b3Iuc2V0OworICAgICAgICB0aGlzLl9zeW1ib2wg
PSBzeW1ib2w7CiAKICAgICAgICAgdGhpcy5fd3JpdGFibGUgPSBkZXNjcmlwdG9yLndyaXRhYmxl
IHx8IGZhbHNlOwogICAgICAgICB0aGlzLl9jb25maWd1cmFibGUgPSBkZXNjcmlwdG9yLmNvbmZp
Z3VyYWJsZSB8fCBmYWxzZTsKQEAgLTYzLDEzICs2NSwxNiBAQCBXZWJJbnNwZWN0b3IuUHJvcGVy
dHlEZXNjcmlwdG9yID0gY2xhc3MgUHJvcGVydHlEZXNjcmlwdG9yIGV4dGVuZHMgV2ViSW5zcGVj
dG9yLgogICAgICAgICBpZiAocGF5bG9hZC5zZXQpCiAgICAgICAgICAgICBwYXlsb2FkLnNldCA9
IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocGF5bG9hZC5zZXQpOwogCisg
ICAgICAgIGlmIChwYXlsb2FkLnN5bWJvbCkKKyAgICAgICAgICAgIHBheWxvYWQuc3ltYm9sID0g
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChwYXlsb2FkLnN5bWJvbCk7CisK
ICAgICAgICAgaWYgKGludGVybmFsKSB7CiAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChwYXls
b2FkLnZhbHVlKTsKICAgICAgICAgICAgIHBheWxvYWQud3JpdGFibGUgPSBwYXlsb2FkLmNvbmZp
Z3VyYWJsZSA9IHBheWxvYWQuZW51bWVyYWJsZSA9IGZhbHNlOwogICAgICAgICAgICAgcGF5bG9h
ZC5pc093biA9IHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4gbmV3IFdlYkluc3Bl
Y3Rvci5Qcm9wZXJ0eURlc2NyaXB0b3IocGF5bG9hZCwgcGF5bG9hZC5pc093biwgcGF5bG9hZC53
YXNUaHJvd24sIHBheWxvYWQubmF0aXZlR2V0dGVyLCBpbnRlcm5hbCk7CisgICAgICAgIHJldHVy
biBuZXcgV2ViSW5zcGVjdG9yLlByb3BlcnR5RGVzY3JpcHRvcihwYXlsb2FkLCBwYXlsb2FkLnN5
bWJvbCwgcGF5bG9hZC5pc093biwgcGF5bG9hZC53YXNUaHJvd24sIHBheWxvYWQubmF0aXZlR2V0
dGVyLCBpbnRlcm5hbCk7CiAgICAgfQogCiAgICAgLy8gUHVibGljCkBAIC0xMDksNiArMTE0LDEx
IEBAIFdlYkluc3BlY3Rvci5Qcm9wZXJ0eURlc2NyaXB0b3IgPSBjbGFzcyBQcm9wZXJ0eURlc2Ny
aXB0b3IgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuCiAgICAgICAgIHJldHVybiB0aGlzLl9lbnVtZXJh
YmxlOwogICAgIH0KIAorICAgIGdldCBzeW1ib2woKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuX3N5bWJvbDsKKyAgICB9CisKICAgICBnZXQgaXNPd25Qcm9wZXJ0eSgpCiAgICAgewogICAg
ICAgICByZXR1cm4gdGhpcy5fb3duOwpAQCAtMTQ4LDQgKzE1OCw5IEBAIFdlYkluc3BlY3Rvci5Q
cm9wZXJ0eURlc2NyaXB0b3IgPSBjbGFzcyBQcm9wZXJ0eURlc2NyaXB0b3IgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuCiAgICAgewogICAgICAgICByZXR1cm4gIWlzTmFOKE51bWJlcih0aGlzLl9uYW1l
KSk7CiAgICAgfQorCisgICAgaXNTeW1ib2xQcm9wZXJ0eSgpCisgICAgeworICAgICAgICByZXR1
cm4gISF0aGlzLl9zeW1ib2w7CisgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcwppbmRl
eCAxZGQ2ZTIzLi5lZTMwNjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCkBAIC00MzYsNyAr
NDM2LDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCA9IGNsYXNzIFJlbW90ZU9iamVjdAog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB2YXIgZmFrZURlc2NyaXB0b3IgPSB7bmFtZTog
cHJvcGVydHlOYW1lLCB2YWx1ZTogcmVzdWx0LCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxl
OiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZX07Ci0gICAgICAgICAgICB2YXIgZmFrZVByb3BlcnR5
RGVzY3JpcHRvciA9IG5ldyBXZWJJbnNwZWN0b3IuUHJvcGVydHlEZXNjcmlwdG9yKGZha2VEZXNj
cmlwdG9yLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgIHZhciBmYWtl
UHJvcGVydHlEZXNjcmlwdG9yID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9wZXJ0eURlc2NyaXB0b3Io
ZmFrZURlc2NyaXB0b3IsIG51bGwsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwogICAgICAg
ICAgICAgY2FsbGJhY2soZmFrZVByb3BlcnR5RGVzY3JpcHRvcik7CiAgICAgICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT2JqZWN0
VHJlZUJhc2VUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL09iamVjdFRyZWVCYXNlVHJlZUVsZW1lbnQuanMKaW5kZXggYzJmNmQ0ZC4uZDU1
NTE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvT2JqZWN0VHJlZUJhc2VUcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9PYmplY3RUcmVlQmFzZVRyZWVFbGVtZW50LmpzCkBAIC0x
NTQsNiArMTU0LDE2IEBAIFdlYkluc3BlY3Rvci5PYmplY3RUcmVlQmFzZVRyZWVFbGVtZW50ID0g
Y2xhc3MgT2JqZWN0VHJlZUJhc2VUcmVlRWxlbWVudCBleHRlbmRzCiAKICAgICAvLyBQcml2YXRl
CiAKKyAgICBfbG9nU3ltYm9sUHJvcGVydHkoKQorICAgIHsKKyAgICAgICAgdmFyIHN5bWJvbCA9
IHRoaXMuX3Byb3BlcnR5LnN5bWJvbDsKKyAgICAgICAgaWYgKCFzeW1ib2wpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgdmFyIHRleHQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNl
bGVjdGVkIFN5bWJvbCBQcm9wZXJ0eSIpOworICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZUxv
Z1ZpZXdDb250cm9sbGVyLmFwcGVuZEltbWVkaWF0ZUV4ZWN1dGlvbldpdGhSZXN1bHQodGV4dCwg
c3ltYm9sKTsKKyAgICB9CisKICAgICBfbG9nVmFsdWUodmFsdWUpCiAgICAgewogICAgICAgICB2
YXIgcmVzb2x2ZWRWYWx1ZSA9IHZhbHVlIHx8IHRoaXMucmVzb2x2ZWRWYWx1ZSgpOwpAQCAtMTc3
LDYgKzE4NywxMCBAQCBXZWJJbnNwZWN0b3IuT2JqZWN0VHJlZUJhc2VUcmVlRWxlbWVudCA9IGNs
YXNzIE9iamVjdFRyZWVCYXNlVHJlZUVsZW1lbnQgZXh0ZW5kcwogICAgICAgICAgICAgcmV0dXJu
OwogCiAgICAgICAgIHZhciBjb250ZXh0TWVudSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29udGV4dE1l
bnUoZXZlbnQpOworCisgICAgICAgIGlmICh0aGlzLl9wcm9wZXJ0eSAmJiB0aGlzLl9wcm9wZXJ0
eS5zeW1ib2wpCisgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiTG9nIFN5bWJvbCBQcm9wZXJ0eSIpLCB0aGlzLl9sb2dTeW1ib2xQcm9wZXJ0
eS5iaW5kKHRoaXMpKTsKKwogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiTG9nIFZhbHVlIiksIHRoaXMuX2xvZ1ZhbHVlLmJpbmQodGhpcykpOwog
CiAgICAgICAgIHZhciBwcm9wZXJ0eVBhdGggPSB0aGlzLnJlc29sdmVkVmFsdWVQcm9wZXJ0eVBh
dGgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL09iamVjdFRyZWVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvT2JqZWN0VHJlZVZpZXcuanMKaW5kZXggMDIwOTA2ZC4uY2RhMmJkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT2JqZWN0VHJl
ZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
T2JqZWN0VHJlZVZpZXcuanMKQEAgLTEwNCwxNSArMTA0LDIxIEBAIFdlYkluc3BlY3Rvci5PYmpl
Y3RUcmVlVmlldyA9IGNsYXNzIE9iamVjdFRyZWVWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9i
amVjdAogICAgICAgICBpZiAoYiA9PT0gIl9fcHJvdG9fXyIpCiAgICAgICAgICAgICByZXR1cm4g
LTE7CiAKLSAgICAgICAgLy8gUHV0IGludGVybmFsIHByb3BlcnRpZXMgYXQgdGhlIHRvcC4KLSAg
ICAgICAgaWYgKGEuaXNJbnRlcm5hbFByb3BlcnR5ICYmICFiLmlzSW50ZXJuYWxQcm9wZXJ0eSkK
KyAgICAgICAgLy8gUHV0IEludGVybmFsIHByb3BlcnRpZXMgYXQgdGhlIHRvcC4KKyAgICAgICAg
aWYgKHByb3BlcnR5QS5pc0ludGVybmFsUHJvcGVydHkgJiYgIXByb3BlcnR5Qi5pc0ludGVybmFs
UHJvcGVydHkpCiAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIGlmIChiLmlzSW50ZXJu
YWxQcm9wZXJ0eSAmJiAhYS5pc0ludGVybmFsUHJvcGVydHkpCisgICAgICAgIGlmIChwcm9wZXJ0
eUIuaXNJbnRlcm5hbFByb3BlcnR5ICYmICFwcm9wZXJ0eUEuaXNJbnRlcm5hbFByb3BlcnR5KQog
ICAgICAgICAgICAgcmV0dXJuIDE7CiAKLSAgICAgICAgLy8gaWYgdXNlZCBlbHNld2hlcmUgbWFr
ZSBzdXJlIHRvCi0gICAgICAgIC8vICAtIGNvbnZlcnQgYSBhbmQgYiB0byBzdHJpbmdzIChub3Qg
bmVlZGVkIGhlcmUsIHByb3BlcnRpZXMgYXJlIGFsbCBzdHJpbmdzKQotICAgICAgICAvLyAgLSBj
aGVjayBpZiBhID09IGIgKG5vdCBuZWVkZWQgaGVyZSwgbm8gdHdvIHByb3BlcnRpZXMgY2FuIGJl
IHRoZSBzYW1lKQorICAgICAgICAvLyBQdXQgU3ltYm9sIHByb3BlcnRpZXMgYXQgdGhlIGJvdHRv
bS4KKyAgICAgICAgaWYgKHByb3BlcnR5QS5zeW1ib2wgJiYgIXByb3BlcnR5Qi5zeW1ib2wpCisg
ICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgaWYgKHByb3BlcnR5Qi5zeW1ib2wgJiYgIXBy
b3BlcnR5QS5zeW1ib2wpCisgICAgICAgICAgICByZXR1cm4gLTE7CisKKyAgICAgICAgLy8gU3lt
Ym9sIHByb3BlcnRpZXMgbWF5IGhhdmUgdGhlIHNhbWUgZGVzY3JpcHRpb24gc3RyaW5nIGJ1dCBi
ZSBkaWZmZXJlbnQgb2JqZWN0cy4KKyAgICAgICAgaWYgKGEgPT09IGIpCisgICAgICAgICAgICBy
ZXR1cm4gMDsKIAogICAgICAgICB2YXIgZGlmZiA9IDA7CiAgICAgICAgIHZhciBjaHVuayA9IC9e
XGQrfF5cRCsvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvVHlwZVByb3BlcnRpZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVHlwZVByb3BlcnRpZXNTZWN0aW9uLmpzCmluZGV4IDllMjhk
NTIuLjAyYWY0ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1R5cGVQcm9wZXJ0aWVzU2VjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UeXBlUHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTkw
LDcgKzkwLDcgQEAgV2ViSW5zcGVjdG9yLlR5cGVQcm9wZXJ0aWVzU2VjdGlvbi5Qcm9wZXJ0eUNv
bXBhcmF0b3IgPSBmdW5jdGlvbihwcm9wZXJ0eUEsIHByb3AKICAgICBpZiAoYi5pbmRleE9mKCJf
X3Byb3RvX18iKSAhPT0gLTEpCiAgICAgICAgIHJldHVybiAtMTsKICAgICBpZiAoYSA9PT0gYikK
LSAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIHJldHVybiAwOwogCiAgICAgdmFyIGRpZmYgPSAw
OwogICAgIHZhciBjaHVuayA9IC9eXGQrfF5cRCsvOwo=
</data>
<flag name="review"
          id="274989"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>