<?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>202375</bug_id>
          
          <creation_ts>2019-09-30 15:34:57 -0700</creation_ts>
          <short_desc>Web Inspector: Local Resource Overrides: allow substitution based on a url pattern</short_desc>
          <delta_ts>2019-11-18 17:31:00 -0800</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>WebKit 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>201262</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1575341</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-30 15:34:57 -0700</bug_when>
    <thetext>Often, websites will load content with a timestamp-based URL query parameter for cache-busting or logging purposes.  If a developer is trying to override these resources (or is trying to have an existing override also match these resources), they&apos;d need to edit the local resource override&apos;s URL to match in addition to editing the resource that loads it (e.g. changing the &lt;script&gt; in an HTML file), which can sometimes be tricky of the content is dynamically loaded (e.g. an XHR with a non-hardcoded URL).  We should support pattern-based local resource overrides to make this easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585810</commentid>
    <comment_count>1</comment_count>
      <attachid>382434</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-31 00:20:04 -0700</bug_when>
    <thetext>Created attachment 382434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585811</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-10-31 00:21:04 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585814</commentid>
    <comment_count>3</comment_count>
      <attachid>382436</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-31 00:27:03 -0700</bug_when>
    <thetext>Created attachment 382436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586486</commentid>
    <comment_count>4</comment_count>
      <attachid>382436</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-11-01 12:01:13 -0700</bug_when>
    <thetext>Comment on attachment 382436
Patch

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

I have questions about fragment identifier behavior.

&gt; Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp:846
&gt; +bool InspectorNetworkAgent::hasIntercept(URL url)

::shouldIntercept ?

&gt; Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp:848
&gt; +    url.removeFragmentIdentifier();

I wonder if users find it surprising that fragments are silently dropped. Are they also stripped from the displayed URL in the overrides UI?

&gt; Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp:1044
&gt; +    if (!m_intercepts.appendIfNotContains(Intercept { url, isRegex &amp;&amp; *isRegex }))

Nice.

&gt; Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp:1045
&gt; +        errorString = &quot;Intercept for given url and given isRegex already exists&quot;_s;

&quot;Intercept URL or pattern already registered&quot;

&gt; Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp:-1028
&gt; -void InspectorNetworkAgent::removeInterception(ErrorString&amp; errorString, const String&amp; url, const String* networkStageString)

Ugh, someday I&apos;ll fix the argument types here.

&gt; Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp:1061
&gt; +        errorString = &quot;Missing intercept for given url and given isRegex&quot;_s;

Ditto as above.

&gt; Source/WebInspectorUI/UserInterface/Controllers/NetworkManager.js:170
&gt; +                        target.NetworkAgent.addInterception.invoke(commandArguments);

Nice.

&gt; Source/WebInspectorUI/UserInterface/Models/LocalResourceOverride.js:49
&gt; +                url: isRegex ? url : WI.urlWithoutFragment(url),

I see, we had already stripped any fragment in the provided intercept URL prior to saving it.

&gt; Source/WebInspectorUI/UserInterface/Models/LocalResourceOverride.js:70
&gt; +        return new WI.LocalResourceOverride(WI.LocalResource.fromJSON(localResource), {isRegex, disabled});

Nice, this should just fallback on older JSONs without any work.

&gt; Source/WebInspectorUI/UserInterface/Models/LocalResourceOverride.js:125
&gt; +            let regex = new RegExp(this.url, &quot;i&quot;);

Does the user know their regex will always run case-insensitively? Maybe worth mentioning in a tips and tricks article.

&gt; Source/WebInspectorUI/UserInterface/Views/LocalResourceOverridePopover.js:153
&gt; +            this._urlCodeMirror.setOption(&quot;mode&quot;, isRegex ? &quot;text/x-regex&quot; : &quot;text/x-local-override-url&quot;);

I don&apos;t think this will work because you&apos;ve captured isRegex instead of checking the value of the checkbox (either via the event or by updating the model directly).

I would expect the &apos;change&apos; event listener to set LocalResourceOverride.isRegex, then an event listener for WI.LocalResourceOverride.Event.IsRegexChanged will update CodeMirror mode.

&gt; Source/WebInspectorUI/UserInterface/Views/LocalResourceOverrideTreeElement.js:46
&gt; +            return &quot;/&quot; + this.resource.url + &quot;/&quot;;

Nit: template literal?

&gt; LayoutTests/http/tests/inspector/network/local-resource-override-basic.html:172
&gt; +            url: &quot;http://127.0.0.1:8000/inspector/network/resources/override.txt?t=*&quot;,

so... is this a glob or a real regex? I wouldn&apos;t have expected this to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587185</commentid>
    <comment_count>5</comment_count>
      <attachid>382436</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-11-04 15:16:02 -0800</bug_when>
    <thetext>Comment on attachment 382436
Patch

Clearing r? since there are open issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587980</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-06 16:17:58 -0800</bug_when>
    <thetext>&lt;rdar://problem/56963810&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588952</commentid>
    <comment_count>7</comment_count>
      <attachid>382436</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-08 19:18:33 -0800</bug_when>
    <thetext>Comment on attachment 382436
Patch

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

&gt;&gt; Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp:848
&gt;&gt; +    url.removeFragmentIdentifier();
&gt; 
&gt; I wonder if users find it surprising that fragments are silently dropped. Are they also stripped from the displayed URL in the overrides UI?

Yeah, we strip it in the frontend.  Additionally, there&apos;s a special CodeMirror mode `text/x-local-override-url` that changes the text color of any invalid schemes and/or fragments to red so it&apos;s very visible.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/LocalResourceOverride.js:125
&gt;&gt; +            let regex = new RegExp(this.url, &quot;i&quot;);
&gt; 
&gt; Does the user know their regex will always run case-insensitively? Maybe worth mentioning in a tips and tricks article.

Actually, this is my mistake.  We should probably provide another option to match case sensitivity, in addition to regular expression.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/LocalResourceOverridePopover.js:153
&gt;&gt; +            this._urlCodeMirror.setOption(&quot;mode&quot;, isRegex ? &quot;text/x-regex&quot; : &quot;text/x-local-override-url&quot;);
&gt; 
&gt; I don&apos;t think this will work because you&apos;ve captured isRegex instead of checking the value of the checkbox (either via the event or by updating the model directly).
&gt; 
&gt; I would expect the &apos;change&apos; event listener to set LocalResourceOverride.isRegex, then an event listener for WI.LocalResourceOverride.Event.IsRegexChanged will update CodeMirror mode.

Good catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588955</commentid>
    <comment_count>8</comment_count>
      <attachid>383198</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-08 19:20:43 -0800</bug_when>
    <thetext>Created attachment 383198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591288</commentid>
    <comment_count>9</comment_count>
      <attachid>383198</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-11-18 15:47:28 -0800</bug_when>
    <thetext>Comment on attachment 383198
Patch

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Views/LocalResourceOverrideTreeElement.js:49
&gt; +                text += &quot;i&quot;;

Good attention to detail. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591355</commentid>
    <comment_count>10</comment_count>
      <attachid>383198</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-18 17:30:58 -0800</bug_when>
    <thetext>Comment on attachment 383198
Patch

Clearing flags on attachment: 383198

Committed r252614: &lt;https://trac.webkit.org/changeset/252614&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591356</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-18 17:31:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382434</attachid>
            <date>2019-10-31 00:20:04 -0700</date>
            <delta_ts>2019-10-31 00:27:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202375-20191031002003.patch</filename>
            <type>text/plain</type>
            <size>39951</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDFhYmUzZTI2YzYwMGI4MGZjMGU3MTVmMmE5ODMy
MmZjMGIzYWI0YjcuLjY2YjU4OTg1YWYzOTE0ZDU3MGNlNmZmMzkzNGEwNTA1NzEwODRkYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTEwLTMxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBM
b2NhbCBSZXNvdXJjZSBPdmVycmlkZXM6IGFsbG93IHN1YnN0aXR1dGlvbiBiYXNlZCBvbiBhIHVy
bCBwYXR0ZXJuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDIzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPZnRlbiwgd2Vic2l0ZXMgd2lsbCBsb2FkIGNvbnRlbnQgd2l0aCBhIHRpbWVzdGFtcC1iYXNl
ZCBVUkwgcXVlcnkgcGFyYW1ldGVyIGZvcgorICAgICAgICBjYWNoZS1idXN0aW5nIG9yIGxvZ2dp
bmcgcHVycG9zZXMuIElmIGEgZGV2ZWxvcGVyIGlzIHRyeWluZyB0byBvdmVycmlkZSB0aGVzZSBy
ZXNvdXJjZXMgKG9yCisgICAgICAgIGlzIHRyeWluZyB0byBoYXZlIGFuIGV4aXN0aW5nIG92ZXJy
aWRlIGFsc28gbWF0Y2ggdGhlc2UgcmVzb3VyY2VzKSwgdGhleSdkIG5lZWQgdG8gZWRpdCB0aGUK
KyAgICAgICAgbG9jYWwgb3ZlcnJpZGUncyBVUkwgdG8gbWF0Y2ggaW4gYWRkaXRpb24gdG8gZWRp
dGluZyB0aGUgcmVzb3VyY2UgdGhhdCBsb2FkcyBpdCAoZS5nLiBjaGFuZ2UKKyAgICAgICAgdGhl
IDxzY3JpcHQ+IGluIGFuIEhUTUwgZmlsZSksIHdoaWNoIGNhbiBzb21ldGltZXMgYmUgdHJpY2t5
IG9mIHRoZSBjb250ZW50IGlzIGR5bmFtaWNhbGx5CisgICAgICAgIGxvYWRlZCAoZS5nLiBhbiBY
SFIgd2l0aCBhIG5vbi1oYXJkY29kZWQgVVJMKS4KKworICAgICAgICBBbGxvd2luZyBmb3IgbG9j
YWwgb3ZlcnJpZGVzIHRvIGJlIHNldCB1c2luZyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJu
IHdvdWxkIGhlbHAgcmVzb2x2ZQorICAgICAgICB0aGlzIGxpbWl0YXRpb24uCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uOgorICAgICAgICBBZGQgYGlzUmVnZXhg
IHBhcmFtZXRlciB0byBgTmV0d29yay5hZGRJbnRlcmNlcHRpb25gIGFuZCBgTmV0d29yay5yZW1v
dmVJbnRlcmNlcHRpb25gLgorCiAyMDE5LTEwLTI0ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbSlNDXSBHZXQgMzItYml0IHBvcnRzIGJhY2sgaW50byBi
dWlsZGluZyBvcmRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhmNTBjNDY4MjhkMjE4MjUwOGIxODdlNzI2M2Vj
NmFhYmU5MzlmOTcuLjIwNzZlOWNiMzYxNGUyNmM3NDFmNWRjNWZkMjljYTAwM2Q2ZmVhYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxOS0xMC0zMSAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTG9jYWwgUmVzb3VyY2Ug
T3ZlcnJpZGVzOiBhbGxvdyBzdWJzdGl0dXRpb24gYmFzZWQgb24gYSB1cmwgcGF0dGVybgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMzc1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1pc1JlZ2V4Lmh0
bWwKKworICAgICAgICBPZnRlbiwgd2Vic2l0ZXMgd2lsbCBsb2FkIGNvbnRlbnQgd2l0aCBhIHRp
bWVzdGFtcC1iYXNlZCBVUkwgcXVlcnkgcGFyYW1ldGVyIGZvcgorICAgICAgICBjYWNoZS1idXN0
aW5nIG9yIGxvZ2dpbmcgcHVycG9zZXMuIElmIGEgZGV2ZWxvcGVyIGlzIHRyeWluZyB0byBvdmVy
cmlkZSB0aGVzZSByZXNvdXJjZXMgKG9yCisgICAgICAgIGlzIHRyeWluZyB0byBoYXZlIGFuIGV4
aXN0aW5nIG92ZXJyaWRlIGFsc28gbWF0Y2ggdGhlc2UgcmVzb3VyY2VzKSwgdGhleSdkIG5lZWQg
dG8gZWRpdCB0aGUKKyAgICAgICAgbG9jYWwgb3ZlcnJpZGUncyBVUkwgdG8gbWF0Y2ggaW4gYWRk
aXRpb24gdG8gZWRpdGluZyB0aGUgcmVzb3VyY2UgdGhhdCBsb2FkcyBpdCAoZS5nLiBjaGFuZ2UK
KyAgICAgICAgdGhlIDxzY3JpcHQ+IGluIGFuIEhUTUwgZmlsZSksIHdoaWNoIGNhbiBzb21ldGlt
ZXMgYmUgdHJpY2t5IG9mIHRoZSBjb250ZW50IGlzIGR5bmFtaWNhbGx5CisgICAgICAgIGxvYWRl
ZCAoZS5nLiBhbiBYSFIgd2l0aCBhIG5vbi1oYXJkY29kZWQgVVJMKS4KKworICAgICAgICBBbGxv
d2luZyBmb3IgbG9jYWwgb3ZlcnJpZGVzIHRvIGJlIHNldCB1c2luZyBhIHJlZ3VsYXIgZXhwcmVz
c2lvbiBwYXR0ZXJuIHdvdWxkIGhlbHAgcmVzb2x2ZQorICAgICAgICB0aGlzIGxpbWl0YXRpb24u
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0FnZW50OjpJbnRlcmNlcHQ6Om9wZXJh
dG9yPT0gY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ck5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JOZXR3b3JrQWdl
bnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0FnZW50Ojpo
YXNJbnRlcmNlcHQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdvcmtB
Z2VudDo6YWRkSW50ZXJjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdv
cmtBZ2VudDo6cmVtb3ZlSW50ZXJjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ck5ldHdvcmtBZ2VudDo6d2lsbEludGVyY2VwdFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yTmV0d29ya0FnZW50OjpzaG91bGRJbnRlcmNlcHRSZXNwb25zZSk6CisKIDIwMTkt
MTAtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBdWRpb0Nv
bnRleHQgc2hvdWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDZkMTQ3NGU3MTJkNzk1MDZmYWMyNDA5Mzg3NDIw
MDU4MzRiNDBiMzEuLjgwOGI5Y2M1Y2MxMzZkNDcyNmNlMGNmMjA2ZTBlZmFmNzg3MTY4ZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE5LTEwLTMxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBM
b2NhbCBSZXNvdXJjZSBPdmVycmlkZXM6IGFsbG93IHN1YnN0aXR1dGlvbiBiYXNlZCBvbiBhIHVy
bCBwYXR0ZXJuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDIzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPZnRlbiwgd2Vic2l0ZXMgd2lsbCBsb2FkIGNvbnRlbnQgd2l0aCBhIHRpbWVzdGFtcC1iYXNl
ZCBVUkwgcXVlcnkgcGFyYW1ldGVyIGZvcgorICAgICAgICBjYWNoZS1idXN0aW5nIG9yIGxvZ2dp
bmcgcHVycG9zZXMuIElmIGEgZGV2ZWxvcGVyIGlzIHRyeWluZyB0byBvdmVycmlkZSB0aGVzZSBy
ZXNvdXJjZXMgKG9yCisgICAgICAgIGlzIHRyeWluZyB0byBoYXZlIGFuIGV4aXN0aW5nIG92ZXJy
aWRlIGFsc28gbWF0Y2ggdGhlc2UgcmVzb3VyY2VzKSwgdGhleSdkIG5lZWQgdG8gZWRpdCB0aGUK
KyAgICAgICAgbG9jYWwgb3ZlcnJpZGUncyBVUkwgdG8gbWF0Y2ggaW4gYWRkaXRpb24gdG8gZWRp
dGluZyB0aGUgcmVzb3VyY2UgdGhhdCBsb2FkcyBpdCAoZS5nLiBjaGFuZ2UKKyAgICAgICAgdGhl
IDxzY3JpcHQ+IGluIGFuIEhUTUwgZmlsZSksIHdoaWNoIGNhbiBzb21ldGltZXMgYmUgdHJpY2t5
IG9mIHRoZSBjb250ZW50IGlzIGR5bmFtaWNhbGx5CisgICAgICAgIGxvYWRlZCAoZS5nLiBhbiBY
SFIgd2l0aCBhIG5vbi1oYXJkY29kZWQgVVJMKS4KKworICAgICAgICBBbGxvd2luZyBmb3IgbG9j
YWwgb3ZlcnJpZGVzIHRvIGJlIHNldCB1c2luZyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJu
IHdvdWxkIGhlbHAgcmVzb2x2ZQorICAgICAgICB0aGlzIGxpbWl0YXRpb24uCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9Mb2NhbFJlc291cmNlT3ZlcnJpZGUuanM6CisgICAgICAg
IChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUpOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92
ZXJyaWRlLmNyZWF0ZSk6CisgICAgICAgIChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuZnJvbUpT
T04pOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLnByb3RvdHlwZS50b0pTT04p
OgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLnByb3RvdHlwZS5nZXQgaXNSZWdl
eCk6IEFkZGVkLgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLnByb3RvdHlwZS5z
ZXQgaXNSZWdleCk6IEFkZGVkLgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLnBy
b3RvdHlwZS5tYXRjaGVzKTogQWRkZWQuCisgICAgICAgIChXSS5Mb2NhbFJlc291cmNlT3ZlcnJp
ZGUucHJvdG90eXBlLnNhdmVJZGVudGl0eVRvQ29va2llKToKKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIuanM6CisgICAgICAgIChXSS5OZXR3b3Jr
TWFuYWdlcik6CisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5wcm90b3R5cGUuaW5pdGlhbGl6
ZVRhcmdldCk6CisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5wcm90b3R5cGUuZ2V0IGxvY2Fs
UmVzb3VyY2VPdmVycmlkZXMpOgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBl
LmFkZExvY2FsUmVzb3VyY2VPdmVycmlkZSk6CisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5w
cm90b3R5cGUucmVtb3ZlTG9jYWxSZXNvdXJjZU92ZXJyaWRlKToKKyAgICAgICAgKFdJLk5ldHdv
cmtNYW5hZ2VyLnByb3RvdHlwZS5sb2NhbFJlc291cmNlT3ZlcnJpZGVGb3JVUkwpOgorICAgICAg
ICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLnJlc3BvbnNlSW50ZXJjZXB0ZWQpOgorICAg
ICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLl9oYW5kbGVSZXNvdXJjZU92ZXJyaWRl
U3RhdGVDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5wcm90b3R5
cGUuX2hhbmRsZVJlc291cmNlT3ZlcnJpZGVEaXNhYmxlZENoYW5nZWQpOiBEZWxldGVkLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVy
LmpzOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlcik6CisgICAgICAg
IChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyLnByb3RvdHlwZS5nZXQgc2VyaWFsaXpl
ZERhdGEpOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5wcm90b3R5
cGUuc2hvdyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VP
dmVycmlkZVRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRl
VHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBtYWluVGl0bGVUZXh0KTogQWRkZWQuCisgICAgICAg
IChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gp
OgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQucHJvdG90eXBl
Lm9uZGV0YWNoKToKKyAgICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50
LnByb3RvdHlwZS5wb3B1bGF0ZUNvbnRleHRNZW51KToKKyAgICAgICAgKFdJLkxvY2FsUmVzb3Vy
Y2VPdmVycmlkZVRyZWVFbGVtZW50LnByb3RvdHlwZS53aWxsRGlzbWlzc1BvcG92ZXIpOgorICAg
ICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQucHJvdG90eXBlLl9oYW5k
bGVMb2NhbFJlc291cmNlT3ZlcnJpZGVJc1JlZ2V4Q2hhbmdlZCk6IEFkZGVkLgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanM6Cisg
ICAgICAgIChXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3dpbGxE
aXNtaXNzTG9jYWxPdmVycmlkZVBvcG92ZXIpOgorCiAyMDE5LTEwLTIzICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEg
d2F5IHRvIGluamVjdCAiYm9vdHN0cmFwIiBKYXZhU2NyaXB0IGludG8gdGhlIHBhZ2UgYXMgdGhl
IGZpcnN0IHNjcmlwdCBleGVjdXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbgppbmRleCA1NDZiYmZkMzJiZTA2YTI5NzA2
YjE3ZTEwNjAxYTViODgwNGVmMzcwLi5hOTNmMGZkYTg2ZmYxZTA1OWRjYWE1ZjRmMzdlYTFkZjZk
OGJiMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL05ldHdvcmsuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3By
b3RvY29sL05ldHdvcmsuanNvbgpAQCAtMjM5LDYgKzIzOSw3IEBACiAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiQWRkIGFuIGludGVyY2VwdGlvbi4iLAogICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmci
IH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpc1JlZ2V4IiwgInR5cGUiOiAiYm9vbGVh
biIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZiB0cnVlLCB0cmVhdHMgYHVy
bGAgcGFyYW1ldGVyIGFzIGEgcmVndWxhciBleHByZXNzaW9uLiIgfSwKICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInN0YWdlIiwgIiRyZWYiOiAiTmV0d29ya1N0YWdlIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIG5vdCBwcmVzZW50IHRoaXMgYXBwbGllcyB0byBhbGwg
bmV0d29yayBzdGFnZXMuIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCkBAIC0yNDcsNiAr
MjQ4LDcgQEAKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgYW4gaW50ZXJjZXB0
aW9uLiIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImlzUmVnZXgiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIklmIHRydWUsIHRyZWF0cyBgdXJsYCBwYXJhbWV0ZXIgYXMgYSByZWd1bGFyIGV4
cHJlc3Npb24uIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhZ2UiLCAiJHJlZiI6
ICJOZXR3b3JrU3RhZ2UiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgbm90
IHByZXNlbnQgdGhpcyBhcHBsaWVzIHRvIGFsbCBuZXR3b3JrIHN0YWdlcy4iIH0KICAgICAgICAg
ICAgIF0KICAgICAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRleCA5ZGIzNmRhMGEwNzEwNThk
NDk1NDA0M2VlMzM2Yjg3YjU3NjU3YWI4Li5mNDA1MjFkNTllMjU2NGU3NTFmMjhlMWY0N2M2YmMy
NjMxMmFiZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC04MCw2ICs4MCw4IEBACiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxT
dGFja0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTg3LDYgKzg5LDcgQEAKICNpbmNsdWRl
IDx3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudEVuY29kZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9CYXNlNjQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIHR5cGVkZWYgSW5zcGVjdG9yOjpOZXR3b3JrQmFj
a2VuZERpc3BhdGNoZXJIYW5kbGVyOjpMb2FkUmVzb3VyY2VDYWxsYmFjayBMb2FkUmVzb3VyY2VD
YWxsYmFjazsKIApAQCAtODMwLDcgKzgzMyw3IEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50
OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKIHsKICAgICBtX2VuYWJsZWQgPSBmYWxzZTsKICAgICBt
X2ludGVyY2VwdGlvbkVuYWJsZWQgPSBmYWxzZTsKLSAgICBtX2ludGVyY2VwdFJlc3BvbnNlVVJM
cy5jbGVhcigpOworICAgIG1faW50ZXJjZXB0cy5jbGVhcigpOwogICAgIG1faW5zdHJ1bWVudGlu
Z0FnZW50cy5zZXRJbnNwZWN0b3JOZXR3b3JrQWdlbnQobnVsbHB0cik7CiAgICAgbV9yZXNvdXJj
ZXNEYXRhLT5jbGVhcigpOwogICAgIG1fZXh0cmFSZXF1ZXN0SGVhZGVycy5jbGVhcigpOwpAQCAt
ODQwLDYgKzg0MywyMyBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlzYWJsZShFcnJv
clN0cmluZyYpCiAgICAgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoZmFsc2UpOwogfQogCiti
b29sIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6aGFzSW50ZXJjZXB0KFVSTCB1cmwpCit7CisgICAg
dXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOworCisgICAgU3RyaW5nIHVybFN0cmluZyA9
IHVybC5zdHJpbmcoKTsKKyAgICBpZiAodXJsU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgZm9yIChhdXRvJiBpbnRlcmNlcHQgOiBtX2ludGVyY2VwdHMpIHsK
KyAgICAgICAgYXV0byByZWdleCA9IENvbnRlbnRTZWFyY2hVdGlsaXRpZXM6OmNyZWF0ZVNlYXJj
aFJlZ2V4KGludGVyY2VwdC51cmwsIGZhbHNlLCBpbnRlcmNlcHQuaXNSZWdleCk7CisgICAgICAg
IGlmIChyZWdleC5tYXRjaCh1cmxTdHJpbmcpICE9IC0xKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIEluc3BlY3Rvck5ldHdv
cmtBZ2VudDo6Y29udGludWVQZW5kaW5nUmVzcG9uc2VzKCkKIHsKICAgICBmb3IgKGF1dG8mIHBl
bmRpbmdJbnRlcmNlcHRSZXNwb25zZSA6IG1fcGVuZGluZ0ludGVyY2VwdFJlc3BvbnNlcy52YWx1
ZXMoKSkKQEAgLTEwMDksNyArMTAyOSw3IEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50Ojpz
ZXRJbnRlcmNlcHRpb25FbmFibGVkKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgYm9vCiAgICAg
ICAgIGNvbnRpbnVlUGVuZGluZ1Jlc3BvbnNlcygpOwogfQogCi12b2lkIEluc3BlY3Rvck5ldHdv
cmtBZ2VudDo6YWRkSW50ZXJjZXB0aW9uKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyogbmV0d29ya1N0YWdlU3RyaW5nKQordm9pZCBJbnNw
ZWN0b3JOZXR3b3JrQWdlbnQ6OmFkZEludGVyY2VwdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJp
bmcsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBib29sKiBpc1JlZ2V4LCBjb25zdCBTdHJpbmcq
IG5ldHdvcmtTdGFnZVN0cmluZykKIHsKICAgICBpZiAobmV0d29ya1N0YWdlU3RyaW5nKSB7CiAg
ICAgICAgIGF1dG8gbmV0d29ya1N0YWdlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6SW5zcGVjdG9y
SGVscGVyczo6cGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5l
dHdvcms6Ok5ldHdvcmtTdGFnZT4oKm5ldHdvcmtTdGFnZVN0cmluZyk7CkBAIC0xMDIxLDExICsx
MDQxLDExIEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50OjphZGRJbnRlcmNlcHRpb24oRXJy
b3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpCiAKICAgICAvLyBGSVhNRTogU3VwcG9y
dCBpbnRlcmNlcHRpbmcgcmVxdWVzdHMuCiAKLSAgICBpZiAoIW1faW50ZXJjZXB0UmVzcG9uc2VV
UkxzLmFkZCh1cmwpLmlzTmV3RW50cnkpCi0gICAgICAgIGVycm9yU3RyaW5nID0gIkludGVyY2Vw
dCBmb3IgZ2l2ZW4gdXJsIGFscmVhZHkgZXhpc3RzIl9zOworICAgIGlmICghbV9pbnRlcmNlcHRz
LmFwcGVuZElmTm90Q29udGFpbnMoSW50ZXJjZXB0IHsgdXJsLCBpc1JlZ2V4ICYmICppc1JlZ2V4
IH0pKQorICAgICAgICBlcnJvclN0cmluZyA9ICJJbnRlcmNlcHQgZm9yIGdpdmVuIHVybCBhbmQg
Z2l2ZW4gaXNSZWdleCBhbHJlYWR5IGV4aXN0cyJfczsKIH0KIAotdm9pZCBJbnNwZWN0b3JOZXR3
b3JrQWdlbnQ6OnJlbW92ZUludGVyY2VwdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcqIG5ldHdvcmtTdGFnZVN0cmluZykKK3ZvaWQg
SW5zcGVjdG9yTmV0d29ya0FnZW50OjpyZW1vdmVJbnRlcmNlcHRpb24oRXJyb3JTdHJpbmcmIGVy
cm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCogaXNSZWdleCwgY29uc3Qg
U3RyaW5nKiBuZXR3b3JrU3RhZ2VTdHJpbmcpCiB7CiAgICAgaWYgKG5ldHdvcmtTdGFnZVN0cmlu
ZykgewogICAgICAgICBhdXRvIG5ldHdvcmtTdGFnZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6Oklu
c3BlY3RvckhlbHBlcnM6OnBhcnNlRW51bVZhbHVlRnJvbVN0cmluZzxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpOZXR3b3JrOjpOZXR3b3JrU3RhZ2U+KCpuZXR3b3JrU3RhZ2VTdHJpbmcpOwpAQCAtMTAz
Nyw4ICsxMDU3LDggQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OnJlbW92ZUludGVyY2Vw
dGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFMKIAogICAgIC8vIEZJWE1FOiBT
dXBwb3J0IGludGVyY2VwdGluZyByZXF1ZXN0cy4KIAotICAgIGlmICghbV9pbnRlcmNlcHRSZXNw
b25zZVVSTHMucmVtb3ZlKHVybCkpCi0gICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3NpbmcgaW50
ZXJjZXB0IGZvciBnaXZlbiB1cmwiX3M7CisgICAgaWYgKCFtX2ludGVyY2VwdHMucmVtb3ZlQWxs
KEludGVyY2VwdCB7IHVybCwgaXNSZWdleCAmJiAqaXNSZWdleCB9KSkKKyAgICAgICAgZXJyb3JT
dHJpbmcgPSAiTWlzc2luZyBpbnRlcmNlcHQgZm9yIGdpdmVuIHVybCBhbmQgZ2l2ZW4gaXNSZWdl
eCJfczsKIH0KIAogYm9vbCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OndpbGxJbnRlcmNlcHRSZXF1
ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKQEAgLTEwNDYsMTQgKzEwNjYsNyBA
QCBib29sIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6d2lsbEludGVyY2VwdFJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIGlmICghbV9pbnRlcmNlcHRpb25FbmFibGVk
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3Qu
dXJsKCk7Ci0gICAgcmVxdWVzdFVSTC5yZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsKLQotICAg
IFN0cmluZyB1cmwgPSByZXF1ZXN0VVJMLnN0cmluZygpOwotICAgIGlmICh1cmwuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9pbnRlcmNlcHRSZXNwb25z
ZVVSTHMuY29udGFpbnModXJsKTsKKyAgICByZXR1cm4gaGFzSW50ZXJjZXB0KHJlcXVlc3QudXJs
KCkpOwogfQogCiBib29sIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6c2hvdWxkSW50ZXJjZXB0UmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCkBAIC0xMDYxLDE0ICsxMDc0
LDcgQEAgYm9vbCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OnNob3VsZEludGVyY2VwdFJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3AKICAgICBpZiAoIW1faW50ZXJjZXB0aW9uRW5h
YmxlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgVVJMIHJlc3BvbnNlVVJMID0gcmVz
cG9uc2UudXJsKCk7Ci0gICAgcmVzcG9uc2VVUkwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7
Ci0KLSAgICBTdHJpbmcgdXJsID0gcmVzcG9uc2VVUkwuc3RyaW5nKCk7Ci0gICAgaWYgKHVybC5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX2ludGVyY2Vw
dFJlc3BvbnNlVVJMcy5jb250YWlucyh1cmwpOworICAgIHJldHVybiBoYXNJbnRlcmNlcHQocmVz
cG9uc2UudXJsKCkpOwogfQogCiB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6aW50ZXJjZXB0
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4pPiYmIGhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaAppbmRleCAz
MWVmNWUzNDJkZmNmMjdkYjQyZDdmMzI2MGNmNzFjYzM5NDEwODI1Li5mMjIxOGY4N2MwNjU4OGQ1
NjM4N2QwN2FhZDBiYzE5YjM1ODkzMWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmgKQEAgLTM3LDkgKzM3LDgg
QEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJz
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVndWxhckV4cHJlc3Npb24uaD4KLSNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0pTT05WYWx1ZXMuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CkBAIC04OSw4
ICs4OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFNlcmlhbGl6ZWRDZXJ0aWZpY2F0ZShFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBTdHJpbmcqIHNlcmlhbGl6ZWRDZXJ0
aWZpY2F0ZSkgZmluYWw7CiAgICAgdm9pZCByZXNvbHZlV2ViU29ja2V0KEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0
cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JikgZmluYWw7CiAg
ICAgdm9pZCBzZXRJbnRlcmNlcHRpb25FbmFibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBlbmFibGVk
KSBmaW5hbDsKLSAgICB2b2lkIGFkZEludGVyY2VwdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcqIG5ldHdvcmtTdGFnZVN0cmluZykgZmluYWw7Ci0gICAg
dm9pZCByZW1vdmVJbnRlcmNlcHRpb24oRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgU3RyaW5nKiBuZXR3b3JrU3RhZ2VTdHJpbmcpIGZpbmFsOworICAgIHZvaWQgYWRkSW50
ZXJjZXB0aW9uKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IGJvb2wqIGlz
UmVnZXgsIGNvbnN0IFN0cmluZyogbmV0d29ya1N0YWdlU3RyaW5nKSBmaW5hbDsKKyAgICB2b2lk
IHJlbW92ZUludGVyY2VwdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25z
dCBib29sKiBpc1JlZ2V4LCBjb25zdCBTdHJpbmcqIG5ldHdvcmtTdGFnZVN0cmluZykgZmluYWw7
CiAgICAgdm9pZCBpbnRlcmNlcHRDb250aW51ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYg
cmVxdWVzdElkKSBmaW5hbDsKICAgICB2b2lkIGludGVyY2VwdFdpdGhSZXNwb25zZShFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGJv
b2wgYmFzZTY0RW5jb2RlZCwgY29uc3QgU3RyaW5nKiBtaW1lVHlwZSwgY29uc3QgaW50KiBzdGF0
dXMsIGNvbnN0IFN0cmluZyogc3RhdHVzVGV4dCwgY29uc3QgSlNPTjo6T2JqZWN0KiBoZWFkZXJz
KSBmaW5hbDsKIApAQCAtMTQxLDYgKzE0MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHdpbGxT
ZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgUmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwg
SW5zcGVjdG9yUGFnZUFnZW50OjpSZXNvdXJjZVR5cGUpOwogCisgICAgYm9vbCBoYXNJbnRlcmNl
cHQoVVJMKTsKICAgICB2b2lkIGNvbnRpbnVlUGVuZGluZ1Jlc3BvbnNlcygpOwogCiAgICAgV2Vi
U29ja2V0KiB3ZWJTb2NrZXRGb3JSZXF1ZXN0SWQoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpOwpA
QCAtMjAwLDcgKzIwMCwxNiBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
IG1fZXh0cmFSZXF1ZXN0SGVhZGVyczsKICAgICBIYXNoU2V0PHVuc2lnbmVkIGxvbmc+IG1faGlk
ZGVuUmVxdWVzdElkZW50aWZpZXJzOwogCi0gICAgSGFzaFNldDxTdHJpbmc+IG1faW50ZXJjZXB0
UmVzcG9uc2VVUkxzOworICAgIHN0cnVjdCBJbnRlcmNlcHQgeworICAgICAgICBTdHJpbmcgdXJs
OworICAgICAgICBib29sIGlzUmVnZXg7CisKKyAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBJbnRlcmNlcHQmIG90aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gdXJsID09IG90aGVyLnVybCAmJiBpc1JlZ2V4ID09IG90aGVyLmlzUmVnZXg7CisgICAg
ICAgIH0KKyAgICB9OworICAgIFZlY3RvcjxJbnRlcmNlcHQ+IG1faW50ZXJjZXB0czsKICAgICBI
YXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdJbnRlcmNlcHRSZXNwb25zZT4+
IG1fcGVuZGluZ0ludGVyY2VwdFJlc3BvbnNlczsKIAogICAgIC8vIEZJWE1FOiBJbnNwZWN0b3JO
ZXR3b3JrQWdlbnQgc2hvdWxkIG5vdCBiZSBhd2FyZSBvZiBzdHlsZSByZWNhbGN1bGF0aW9uLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvTmV0d29ya01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9OZXR3b3JrTWFuYWdlci5qcwppbmRleCA4NTQwYmQyZDBmOWRmNmQ3Njkx
ODllODhiODI1NmQwMmJlZjQwMzgxLi42YzAwMTAxYjJlOGFkZDU2OTNiODk4YzA4YjJmMzdjMmJj
ZDAwNWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9OZXR3b3JrTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9OZXR3b3JrTWFuYWdlci5qcwpAQCAtNDMsNyArNDMs
NyBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0ku
T2JqZWN0CiAgICAgICAgIHRoaXMuX3NvdXJjZU1hcFVSTE1hcCA9IG5ldyBNYXA7CiAgICAgICAg
IHRoaXMuX2Rvd25sb2FkaW5nU291cmNlTWFwcyA9IG5ldyBTZXQ7CiAKLSAgICAgICAgdGhpcy5f
bG9jYWxSZXNvdXJjZU92ZXJyaWRlTWFwID0gbmV3IE1hcDsKKyAgICAgICAgdGhpcy5fbG9jYWxS
ZXNvdXJjZU92ZXJyaWRlcyA9IG5ldyBTZXQ7CiAgICAgICAgIHRoaXMuX2hhckltcG9ydExvY2Fs
UmVzb3VyY2VNYXAgPSBuZXcgU2V0OwogCiAgICAgICAgIHRoaXMuX3BlbmRpbmdMb2NhbFJlc291
cmNlT3ZlcnJpZGVTYXZlcyA9IG51bGw7CkBAIC01Nyw3ICs1Nyw4IEBAIFdJLk5ldHdvcmtNYW5h
Z2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgICAgICBp
ZiAoTmV0d29ya01hbmFnZXIuc3VwcG9ydHNMb2NhbFJlc291cmNlT3ZlcnJpZGVzKCkpIHsKICAg
ICAgICAgICAgIFdJLlJlc291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV0kuU291cmNlQ29kZS5FdmVu
dC5Db250ZW50RGlkQ2hhbmdlLCB0aGlzLl9oYW5kbGVSZXNvdXJjZUNvbnRlbnREaWRDaGFuZ2Us
IHRoaXMpOwotICAgICAgICAgICAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmFkZEV2ZW50TGlz
dGVuZXIoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLkV2ZW50LkRpc2FibGVkQ2hhbmdlZCwgdGhp
cy5faGFuZGxlUmVzb3VyY2VPdmVycmlkZURpc2FibGVkQ2hhbmdlZCwgdGhpcyk7CisgICAgICAg
ICAgICBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuYWRkRXZlbnRMaXN0ZW5lcihXSS5Mb2NhbFJl
c291cmNlT3ZlcnJpZGUuRXZlbnQuSXNSZWdleENoYW5nZWQsIHRoaXMuX2hhbmRsZVJlc291cmNl
T3ZlcnJpZGVTdGF0ZUNoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAgV0kuTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlLmFkZEV2ZW50TGlzdGVuZXIoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLkV2ZW50
LkRpc2FibGVkQ2hhbmdlZCwgdGhpcy5faGFuZGxlUmVzb3VyY2VPdmVycmlkZVN0YXRlQ2hhbmdl
ZCwgdGhpcyk7CiAKICAgICAgICAgICAgIFdJLlRhcmdldC5yZWdpc3RlckluaXRpYWxpemF0aW9u
UHJvbWlzZSgoYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgICAgIGxldCBzZXJpYWxpemVkTG9j
YWxSZXNvdXJjZU92ZXJyaWRlcyA9IGF3YWl0IFdJLm9iamVjdFN0b3Jlcy5sb2NhbFJlc291cmNl
T3ZlcnJpZGVzLmdldEFsbCgpOwpAQCAtMTU4LDkgKzE1OSwxNiBAQCBXSS5OZXR3b3JrTWFuYWdl
ciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAg
ICAgaWYgKHRoaXMuX2ludGVyY2VwdGlvbkVuYWJsZWQpCiAgICAgICAgICAgICAgICAgICAgIHRh
cmdldC5OZXR3b3JrQWdlbnQuc2V0SW50ZXJjZXB0aW9uRW5hYmxlZCh0aGlzLl9pbnRlcmNlcHRp
b25FbmFibGVkKTsKIAotICAgICAgICAgICAgICAgIGZvciAobGV0IFt1cmwsIGxvY2FsUmVzb3Vy
Y2VPdmVycmlkZV0gb2YgdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRlTWFwKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICghbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmRpc2FibGVkKQotICAgICAg
ICAgICAgICAgICAgICAgICAgdGFyZ2V0Lk5ldHdvcmtBZ2VudC5hZGRJbnRlcmNlcHRpb24obG9j
YWxSZXNvdXJjZU92ZXJyaWRlLnVybCwgSW5zcGVjdG9yQmFja2VuZC5FbnVtLk5ldHdvcmsuTmV0
d29ya1N0YWdlLlJlc3BvbnNlKTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBsb2NhbFJlc291
cmNlT3ZlcnJpZGUgb2YgdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRlcykgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoIWxvY2FsUmVzb3VyY2VPdmVycmlkZS5kaXNhYmxlZCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGNvbW1hbmRBcmd1bWVudHMgPSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdXJsOiBsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlzUmVnZXg6IGxvY2FsUmVzb3VyY2VPdmVycmlkZS5pc1JlZ2V4
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtTdGFnZTogSW5zcGVjdG9yQmFj
a2VuZC5FbnVtLk5ldHdvcmsuTmV0d29ya1N0YWdlLlJlc3BvbnNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgfTsKKworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Lk5ldHdvcmtBZ2Vu
dC5hZGRJbnRlcmNlcHRpb24uaW52b2tlKGNvbW1hbmRBcmd1bWVudHMpOworICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBA
IC0xODcsNyArMTk1LDcgQEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFuYWdl
ciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgZ2V0IGxvY2FsUmVzb3VyY2VPdmVycmlkZXMoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJy
aWRlTWFwLnZhbHVlcygpKTsKKyAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fbG9jYWxS
ZXNvdXJjZU92ZXJyaWRlcyk7CiAgICAgfQogCiAgICAgZ2V0IGludGVyY2VwdGlvbkVuYWJsZWQo
KQpAQCAtMzM0LDE3ICszNDIsMjMgQEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3b3Jr
TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQo
bG9jYWxSZXNvdXJjZU92ZXJyaWRlIGluc3RhbmNlb2YgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRl
KTsKIAotICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRl
TWFwLmdldChsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsKSwgIkFscmVhZHkgaGFkIGFuIGV4aXN0
aW5nIGxvY2FsIHJlc291cmNlIG92ZXJyaWRlLiIpOwotICAgICAgICB0aGlzLl9sb2NhbFJlc291
cmNlT3ZlcnJpZGVNYXAuc2V0KGxvY2FsUmVzb3VyY2VPdmVycmlkZS51cmwsIGxvY2FsUmVzb3Vy
Y2VPdmVycmlkZSk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9sb2NhbFJlc291cmNl
T3ZlcnJpZGVzLmhhcyhsb2NhbFJlc291cmNlT3ZlcnJpZGUpLCAiQWxyZWFkeSBoYWQgYW4gZXhp
c3RpbmcgbG9jYWwgcmVzb3VyY2Ugb3ZlcnJpZGUuIik7CisgICAgICAgIHRoaXMuX2xvY2FsUmVz
b3VyY2VPdmVycmlkZXMuYWRkKGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CiAKICAgICAgICAgaWYg
KCF0aGlzLl9yZXN0b3JpbmdMb2NhbFJlc291cmNlT3ZlcnJpZGVzKQogICAgICAgICAgICAgV0ku
b2JqZWN0U3RvcmVzLmxvY2FsUmVzb3VyY2VPdmVycmlkZXMucHV0T2JqZWN0KGxvY2FsUmVzb3Vy
Y2VPdmVycmlkZSk7CiAKICAgICAgICAgaWYgKCFsb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlzYWJs
ZWQpIHsKKyAgICAgICAgICAgIGxldCBjb21tYW5kQXJndW1lbnRzID0geworICAgICAgICAgICAg
ICAgIHVybDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLnVybCwKKyAgICAgICAgICAgICAgICBpc1Jl
Z2V4OiBsb2NhbFJlc291cmNlT3ZlcnJpZGUuaXNSZWdleCwKKyAgICAgICAgICAgICAgICBuZXR3
b3JrU3RhZ2U6IEluc3BlY3RvckJhY2tlbmQuRW51bS5OZXR3b3JrLk5ldHdvcmtTdGFnZS5SZXNw
b25zZSwKKyAgICAgICAgICAgIH07CisKICAgICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlP
UyAxMy4wKTogTmV0d29yay5hZGRJbnRlcmNlcHRpb24gZGlkIG5vdCBleGlzdC4KICAgICAgICAg
ICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKSB7CiAgICAgICAgICAgICAgICAgaWYg
KHRhcmdldC5oYXNDb21tYW5kKCJOZXR3b3JrLmFkZEludGVyY2VwdGlvbiIpKQotICAgICAgICAg
ICAgICAgICAgICB0YXJnZXQuTmV0d29ya0FnZW50LmFkZEludGVyY2VwdGlvbihsb2NhbFJlc291
cmNlT3ZlcnJpZGUudXJsLCBJbnNwZWN0b3JCYWNrZW5kLkVudW0uTmV0d29yay5OZXR3b3JrU3Rh
Z2UuUmVzcG9uc2UpOworICAgICAgICAgICAgICAgICAgICB0YXJnZXQuTmV0d29ya0FnZW50LmFk
ZEludGVyY2VwdGlvbi5pbnZva2UoY29tbWFuZEFyZ3VtZW50cyk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIApAQCAtMzU1LDcgKzM2OSw3IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xhc3Mg
TmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICB7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGxvY2FsUmVzb3VyY2VPdmVycmlkZSBpbnN0YW5jZW9mIFdJLkxvY2FsUmVzb3VyY2VP
dmVycmlkZSk7CiAKLSAgICAgICAgaWYgKCF0aGlzLl9sb2NhbFJlc291cmNlT3ZlcnJpZGVNYXAu
ZGVsZXRlKGxvY2FsUmVzb3VyY2VPdmVycmlkZS51cmwpKSB7CisgICAgICAgIGlmICghdGhpcy5f
bG9jYWxSZXNvdXJjZU92ZXJyaWRlcy5kZWxldGUobG9jYWxSZXNvdXJjZU92ZXJyaWRlKSkgewog
ICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJBdHRlbXB0ZWQgdG8gcmVtb3ZlIGEg
bG9jYWwgcmVzb3VyY2Ugb3ZlcnJpZGUgdGhhdCB3YXMgbm90IGtub3duLiIpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0zNjcsMTAgKzM4MSwxNiBAQCBXSS5OZXR3b3JrTWFu
YWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAg
ICBXSS5vYmplY3RTdG9yZXMubG9jYWxSZXNvdXJjZU92ZXJyaWRlcy5kZWxldGVPYmplY3QobG9j
YWxSZXNvdXJjZU92ZXJyaWRlKTsKIAogICAgICAgICBpZiAoIWxvY2FsUmVzb3VyY2VPdmVycmlk
ZS5kaXNhYmxlZCkgeworICAgICAgICAgICAgbGV0IGNvbW1hbmRBcmd1bWVudHMgPSB7CisgICAg
ICAgICAgICAgICAgdXJsOiBsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsLAorICAgICAgICAgICAg
ICAgIGlzUmVnZXg6IGxvY2FsUmVzb3VyY2VPdmVycmlkZS5pc1JlZ2V4LAorICAgICAgICAgICAg
ICAgIG5ldHdvcmtTdGFnZTogSW5zcGVjdG9yQmFja2VuZC5FbnVtLk5ldHdvcmsuTmV0d29ya1N0
YWdlLlJlc3BvbnNlLAorICAgICAgICAgICAgfTsKKwogICAgICAgICAgICAgLy8gQ09NUEFUSUJJ
TElUWSAoaU9TIDEzLjApOiBOZXR3b3JrLnJlbW92ZUludGVyY2VwdGlvbiBkaWQgbm90IGV4aXN0
LgogICAgICAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMpIHsKICAgICAgICAg
ICAgICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIk5ldHdvcmsucmVtb3ZlSW50ZXJjZXB0aW9u
IikpCi0gICAgICAgICAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQucmVtb3ZlSW50ZXJj
ZXB0aW9uKGxvY2FsUmVzb3VyY2VPdmVycmlkZS51cmwsIEluc3BlY3RvckJhY2tlbmQuRW51bS5O
ZXR3b3JrLk5ldHdvcmtTdGFnZS5SZXNwb25zZSk7CisgICAgICAgICAgICAgICAgICAgIHRhcmdl
dC5OZXR3b3JrQWdlbnQucmVtb3ZlSW50ZXJjZXB0aW9uLmludm9rZShjb21tYW5kQXJndW1lbnRz
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0zNzksNyArMzk5LDExIEBAIFdJLk5l
dHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAog
ICAgIGxvY2FsUmVzb3VyY2VPdmVycmlkZUZvclVSTCh1cmwpCiAgICAgewotICAgICAgICByZXR1
cm4gdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRlTWFwLmdldCh1cmwpOworICAgICAgICBmb3Ig
KGxldCBsb2NhbFJlc291cmNlT3ZlcnJpZGUgb2YgdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRl
cykgeworICAgICAgICAgICAgaWYgKGxvY2FsUmVzb3VyY2VPdmVycmlkZS5tYXRjaGVzKHVybCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsUmVzb3VyY2VPdmVycmlkZTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CiAKICAgICBjYW5CZU92ZXJyaWRkZW4ocmVz
b3VyY2UpCkBAIC05MDcsNyArOTMxLDcgQEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3
b3JrTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgIHJlc3BvbnNlSW50ZXJjZXB0ZWQodGFy
Z2V0LCByZXF1ZXN0SWQsIHJlc3BvbnNlKQogICAgIHsKICAgICAgICAgbGV0IHVybCA9IFdJLnVy
bFdpdGhvdXRGcmFnbWVudChyZXNwb25zZS51cmwpOwotICAgICAgICBsZXQgbG9jYWxSZXNvdXJj
ZU92ZXJyaWRlID0gdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRlTWFwLmdldCh1cmwpOworICAg
ICAgICBsZXQgbG9jYWxSZXNvdXJjZU92ZXJyaWRlID0gdGhpcy5sb2NhbFJlc291cmNlT3ZlcnJp
ZGVGb3JVUkwodXJsKTsKICAgICAgICAgaWYgKCFsb2NhbFJlc291cmNlT3ZlcnJpZGUgfHwgbG9j
YWxSZXNvdXJjZU92ZXJyaWRlLmRpc2FibGVkKSB7CiAgICAgICAgICAgICB0YXJnZXQuTmV0d29y
a0FnZW50LmludGVyY2VwdENvbnRpbnVlKHJlcXVlc3RJZCk7CiAgICAgICAgICAgICByZXR1cm47
CkBAIC0xMzY0LDIwICsxMzg4LDI2IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29y
a01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5fc2F2ZUxvY2FsUmVzb3Vy
Y2VPdmVycmlkZXNEZWJvdW5jZXIuZGVsYXlGb3JUaW1lKDUwMCk7CiAgICAgfQogCi0gICAgX2hh
bmRsZVJlc291cmNlT3ZlcnJpZGVEaXNhYmxlZENoYW5nZWQoZXZlbnQpCisgICAgX2hhbmRsZVJl
c291cmNlT3ZlcnJpZGVTdGF0ZUNoYW5nZWQoZXZlbnQpCiAgICAgewogICAgICAgICBjb25zb2xl
LmFzc2VydChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c0xvY2FsUmVzb3VyY2VPdmVycmlkZXMo
KSk7CiAKICAgICAgICAgbGV0IGxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IGV2ZW50LnRhcmdldDsK
ICAgICAgICAgV0kub2JqZWN0U3RvcmVzLmxvY2FsUmVzb3VyY2VPdmVycmlkZXMucHV0T2JqZWN0
KGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CiAKKyAgICAgICAgbGV0IGNvbW1hbmRBcmd1bWVudHMg
PSB7CisgICAgICAgICAgICB1cmw6IGxvY2FsUmVzb3VyY2VPdmVycmlkZS51cmwsCisgICAgICAg
ICAgICBpc1JlZ2V4OiBsb2NhbFJlc291cmNlT3ZlcnJpZGUuaXNSZWdleCwKKyAgICAgICAgICAg
IG5ldHdvcmtTdGFnZTogSW5zcGVjdG9yQmFja2VuZC5FbnVtLk5ldHdvcmsuTmV0d29ya1N0YWdl
LlJlc3BvbnNlLAorICAgICAgICB9OworCiAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAx
My4wKTogTmV0d29yay5hZGRJbnRlcmNlcHRpb24gLyBOZXR3b3JrLnJlbW92ZUludGVyY2VwdGlv
biBkaWQgbm90IGV4aXN0LgogICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykg
ewogICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNEb21haW4oIk5ldHdvcmsiKSkgewogICAgICAg
ICAgICAgICAgIGlmIChsb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlzYWJsZWQpCi0gICAgICAgICAg
ICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQucmVtb3ZlSW50ZXJjZXB0aW9uKGxvY2FsUmVz
b3VyY2VPdmVycmlkZS51cmwsIEluc3BlY3RvckJhY2tlbmQuRW51bS5OZXR3b3JrLk5ldHdvcmtT
dGFnZS5SZXNwb25zZSk7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQu
cmVtb3ZlSW50ZXJjZXB0aW9uLmludm9rZShjb21tYW5kQXJndW1lbnRzKTsKICAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQuYWRkSW50
ZXJjZXB0aW9uKGxvY2FsUmVzb3VyY2VPdmVycmlkZS51cmwsIEluc3BlY3RvckJhY2tlbmQuRW51
bS5OZXR3b3JrLk5ldHdvcmtTdGFnZS5SZXNwb25zZSk7CisgICAgICAgICAgICAgICAgICAgIHRh
cmdldC5OZXR3b3JrQWdlbnQuYWRkSW50ZXJjZXB0aW9uLmludm9rZShjb21tYW5kQXJndW1lbnRz
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Mb2NhbFJlc291cmNlT3ZlcnJpZGUu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTG9jYWxSZXNv
dXJjZU92ZXJyaWRlLmpzCmluZGV4IDUxZmI0NTNjMTdhMzlmODY0Mzk2Y2UyMmQ1ZmUzZjA5NDJh
MTQ2YmUuLjczOTcyMjViMDZhZjFkYzdjNjM3MjgzZWM1NTc3OTg1ZDE4MGM0MTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Mb2NhbFJlc291
cmNlT3ZlcnJpZGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0xvY2FsUmVzb3VyY2VPdmVycmlkZS5qcwpAQCAtMjUsMjYgKzI1LDI4IEBACiAKIFdJ
LkxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZSBleHRl
bmRzIFdJLk9iamVjdAogewotICAgIGNvbnN0cnVjdG9yKGxvY2FsUmVzb3VyY2UsIHtkaXNhYmxl
ZH0gPSB7fSkKKyAgICBjb25zdHJ1Y3Rvcihsb2NhbFJlc291cmNlLCB7aXNSZWdleCwgZGlzYWJs
ZWR9ID0ge30pCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChsb2NhbFJlc291cmNlIGlu
c3RhbmNlb2YgV0kuTG9jYWxSZXNvdXJjZSk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGxvY2Fs
UmVzb3VyY2UuaXNMb2NhbFJlc291cmNlT3ZlcnJpZGUpOwogICAgICAgICBjb25zb2xlLmFzc2Vy
dChsb2NhbFJlc291cmNlLnVybCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFpc1JlZ2V4IHx8
IHR5cGVvZiBpc1JlZ2V4ID09PSAiYm9vbGVhbiIpOwogICAgICAgICBjb25zb2xlLmFzc2VydCgh
ZGlzYWJsZWQgfHwgdHlwZW9mIGRpc2FibGVkID09PSAiYm9vbGVhbiIpOwogCiAgICAgICAgIHN1
cGVyKCk7CiAKICAgICAgICAgdGhpcy5fbG9jYWxSZXNvdXJjZSA9IGxvY2FsUmVzb3VyY2U7Cisg
ICAgICAgIHRoaXMuX2lzUmVnZXggPSBpc1JlZ2V4IHx8IGZhbHNlOwogICAgICAgICB0aGlzLl9k
aXNhYmxlZCA9IGRpc2FibGVkIHx8IGZhbHNlOwogICAgIH0KIAogICAgIC8vIFN0YXRpYwogCi0g
ICAgc3RhdGljIGNyZWF0ZSh7dXJsLCBtaW1lVHlwZSwgY29udGVudCwgYmFzZTY0RW5jb2RlZCwg
c3RhdHVzQ29kZSwgc3RhdHVzVGV4dCwgaGVhZGVycywgZGlzYWJsZWR9KQorICAgIHN0YXRpYyBj
cmVhdGUoe3VybCwgbWltZVR5cGUsIGNvbnRlbnQsIGJhc2U2NEVuY29kZWQsIHN0YXR1c0NvZGUs
IHN0YXR1c1RleHQsIGhlYWRlcnMsIGlzUmVnZXgsIGRpc2FibGVkfSkKICAgICB7CiAgICAgICAg
IGxldCBsb2NhbFJlc291cmNlID0gbmV3IFdJLkxvY2FsUmVzb3VyY2UoewogICAgICAgICAgICAg
cmVxdWVzdDogewotICAgICAgICAgICAgICAgIHVybDogV0kudXJsV2l0aG91dEZyYWdtZW50KHVy
bCksCisgICAgICAgICAgICAgICAgdXJsOiBpc1JlZ2V4ID8gdXJsIDogV0kudXJsV2l0aG91dEZy
YWdtZW50KHVybCksCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgcmVzcG9uc2U6IHsKICAg
ICAgICAgICAgICAgICBoZWFkZXJzLApAQCAtNTcsMjEgKzU5LDIyIEBAIFdJLkxvY2FsUmVzb3Vy
Y2VPdmVycmlkZSA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZSBleHRlbmRzIFdJLk9iamVj
dAogICAgICAgICAgICAgaXNMb2NhbFJlc291cmNlT3ZlcnJpZGU6IHRydWUsCiAgICAgICAgIH0p
OwogCi0gICAgICAgIHJldHVybiBuZXcgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlKGxvY2FsUmVz
b3VyY2UsIHtkaXNhYmxlZH0pOworICAgICAgICByZXR1cm4gbmV3IFdJLkxvY2FsUmVzb3VyY2VP
dmVycmlkZShsb2NhbFJlc291cmNlLCB7aXNSZWdleCwgZGlzYWJsZWR9KTsKICAgICB9CiAKICAg
ICAvLyBJbXBvcnQgLyBFeHBvcnQKIAogICAgIHN0YXRpYyBmcm9tSlNPTihqc29uKQogICAgIHsK
LSAgICAgICAgbGV0IHtsb2NhbFJlc291cmNlLCBkaXNhYmxlZH0gPSBqc29uOwotICAgICAgICBy
ZXR1cm4gbmV3IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZShXSS5Mb2NhbFJlc291cmNlLmZyb21K
U09OKGxvY2FsUmVzb3VyY2UpLCB7ZGlzYWJsZWR9KTsKKyAgICAgICAgbGV0IHtsb2NhbFJlc291
cmNlLCBpc1JlZ2V4LCBkaXNhYmxlZH0gPSBqc29uOworICAgICAgICByZXR1cm4gbmV3IFdJLkxv
Y2FsUmVzb3VyY2VPdmVycmlkZShXSS5Mb2NhbFJlc291cmNlLmZyb21KU09OKGxvY2FsUmVzb3Vy
Y2UpLCB7aXNSZWdleCwgZGlzYWJsZWR9KTsKICAgICB9CiAKICAgICB0b0pTT04oa2V5KQogICAg
IHsKICAgICAgICAgbGV0IGpzb24gPSB7CiAgICAgICAgICAgICBsb2NhbFJlc291cmNlOiB0aGlz
Ll9sb2NhbFJlc291cmNlLnRvSlNPTihrZXkpLAorICAgICAgICAgICAgaXNSZWdleDogdGhpcy5f
aXNSZWdleCwKICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLl9kaXNhYmxlZCwKICAgICAgICAg
fTsKIApAQCAtODYsNiArODksMjEgQEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlID0gY2xhc3Mg
TG9jYWxSZXNvdXJjZU92ZXJyaWRlIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgZ2V0IHVybCgpIHsg
cmV0dXJuIHRoaXMuX2xvY2FsUmVzb3VyY2UudXJsOyB9CiAgICAgZ2V0IGxvY2FsUmVzb3VyY2Uo
KSB7IHJldHVybiB0aGlzLl9sb2NhbFJlc291cmNlOyB9CiAKKyAgICBnZXQgaXNSZWdleCgpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5faXNSZWdleDsKKyAgICB9CisKKyAgICBzZXQgaXNS
ZWdleChpc1JlZ2V4KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2lzUmVnZXggPT09IGlzUmVn
ZXgpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5faXNSZWdleCA9IGlzUmVn
ZXg7CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlLkV2ZW50LklzUmVnZXhDaGFuZ2VkKTsKKyAgICB9CisKICAgICBnZXQgZGlzYWJs
ZWQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOwpAQCAtMTAxLDExICsx
MTksMjIgQEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlID0gY2xhc3MgTG9jYWxSZXNvdXJjZU92
ZXJyaWRlIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5FdmVudC5EaXNhYmxlZENoYW5nZWQpOwog
ICAgIH0KIAorICAgIG1hdGNoZXModXJsKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2lzUmVn
ZXgpIHsKKyAgICAgICAgICAgIGxldCByZWdleCA9IG5ldyBSZWdFeHAodGhpcy51cmwsICJpIik7
CisgICAgICAgICAgICByZXR1cm4gcmVnZXgudGVzdCh1cmwpOworICAgICAgICB9CisKKyAgICAg
ICAgcmV0dXJuIHVybCA9PT0gdGhpcy51cmw7CisgICAgfQorCiAgICAgLy8gUHJvdGVjdGVkCiAK
ICAgICBzYXZlSWRlbnRpdHlUb0Nvb2tpZShjb29raWUpCiAgICAgewogICAgICAgICBjb29raWVb
ImxvY2FsLXJlc291cmNlLW92ZXJyaWRlLXVybCJdID0gdGhpcy5fbG9jYWxSZXNvdXJjZS51cmw7
CisgICAgICAgIGNvb2tpZVsibG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUtaXMtcmVnZXgiXSA9IHRo
aXMuX2lzUmVnZXg7CiAgICAgICAgIGNvb2tpZVsibG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUtZGlz
YWJsZWQiXSA9IHRoaXMuX2Rpc2FibGVkOwogICAgIH0KIH07CkBAIC0xMTMsNSArMTQyLDYgQEAg
V0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlID0gY2xhc3MgTG9jYWxSZXNvdXJjZU92ZXJyaWRlIGV4
dGVuZHMgV0kuT2JqZWN0CiBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuVHlwZUlkZW50aWZpZXIg
PSAibG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUiOwogCiBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUu
RXZlbnQgPSB7CisgICAgSXNSZWdleENoYW5nZWQ6ICJsb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1p
cy1yZWdleC1jaGFuZ2VkIiwKICAgICBEaXNhYmxlZENoYW5nZWQ6ICJsb2NhbC1yZXNvdXJjZS1v
dmVycmlkZS1kaXNhYmxlZC1zdGF0ZS1kaWQtY2hhbmdlIiwKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJp
ZGVQb3BvdmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
TG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5qcwppbmRleCBjNjEwMWU0ZDAxYWI1YWVmNGU1
NjAzYjI4MjhlNzFlYzdlYzkyNjYyLi5kYmY2ZDY2N2Q1YmU1ZjI3MDM4NTA4ZmQ4NjM1NTk3N2Ew
ODliMGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIu
anMKQEAgLTMwLDYgKzMwLDcgQEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3ZlciA9IGNs
YXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIgZXh0ZW5kcyBXSS4KICAgICAgICAgc3Vw
ZXIoZGVsZWdhdGUpOwogCiAgICAgICAgIHRoaXMuX3VybENvZGVNaXJyb3IgPSBudWxsOworICAg
ICAgICB0aGlzLl9pc1JlZ2V4Q2hlY2tib3ggPSBudWxsOwogICAgICAgICB0aGlzLl9taW1lVHlw
ZUNvZGVNaXJyb3IgPSBudWxsOwogICAgICAgICB0aGlzLl9zdGF0dXNDb2RlQ29kZU1pcnJvciA9
IG51bGw7CiAgICAgICAgIHRoaXMuX3N0YXR1c1RleHRDb2RlTWlycm9yID0gbnVsbDsKQEAgLTg1
LDYgKzg2LDcgQEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3ZlciA9IGNsYXNzIExvY2Fs
UmVzb3VyY2VPdmVycmlkZVBvcG92ZXIgZXh0ZW5kcyBXSS4KIAogICAgICAgICBsZXQgZGF0YSA9
IHsKICAgICAgICAgICAgIHVybCwKKyAgICAgICAgICAgIGlzUmVnZXg6IHRoaXMuX2lzUmVnZXhD
aGVja2JveCAmJiB0aGlzLl9pc1JlZ2V4Q2hlY2tib3guY2hlY2tlZCwKICAgICAgICAgICAgIG1p
bWVUeXBlLAogICAgICAgICAgICAgc3RhdHVzQ29kZSwKICAgICAgICAgICAgIHN0YXR1c1RleHQs
CkBAIC0xMDAsMTIgKzEwMiwxNSBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyID0g
Y2xhc3MgTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3ZlciBleHRlbmRzIFdJLgogICAgICAgICBy
ZXR1cm4gZGF0YTsKICAgICB9CiAKLSAgICBzaG93KGxvY2FsUmVzb3VyY2UsIHRhcmdldEVsZW1l
bnQsIHByZWZlcnJlZEVkZ2VzKQorICAgIHNob3cobG9jYWxSZXNvdXJjZU92ZXJyaWRlLCB0YXJn
ZXRFbGVtZW50LCBwcmVmZXJyZWRFZGdlcykKICAgICB7CiAgICAgICAgIHRoaXMuX3RhcmdldEVs
ZW1lbnQgPSB0YXJnZXRFbGVtZW50OwogICAgICAgICB0aGlzLl9wcmVmZXJyZWRFZGdlcyA9IHBy
ZWZlcnJlZEVkZ2VzOwogCisgICAgICAgIGxldCBsb2NhbFJlc291cmNlID0gbG9jYWxSZXNvdXJj
ZU92ZXJyaWRlID8gbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmxvY2FsUmVzb3VyY2UgOiBudWxsOwor
CiAgICAgICAgIGxldCB1cmwgPSBsb2NhbFJlc291cmNlID8gbG9jYWxSZXNvdXJjZS51cmwgOiAi
IjsKKyAgICAgICAgbGV0IGlzUmVnZXggPSBsb2NhbFJlc291cmNlT3ZlcnJpZGUgPyBsb2NhbFJl
c291cmNlT3ZlcnJpZGUuaXNSZWdleCA6IGZhbHNlOwogICAgICAgICBsZXQgbWltZVR5cGUgPSBs
b2NhbFJlc291cmNlID8gbG9jYWxSZXNvdXJjZS5taW1lVHlwZSA6ICIiOwogICAgICAgICBsZXQg
c3RhdHVzQ29kZSA9IGxvY2FsUmVzb3VyY2UgPyBTdHJpbmcobG9jYWxSZXNvdXJjZS5zdGF0dXND
b2RlKSA6ICIiOwogICAgICAgICBsZXQgc3RhdHVzVGV4dCA9IGxvY2FsUmVzb3VyY2UgPyBsb2Nh
bFJlc291cmNlLnN0YXR1c1RleHQgOiAiIjsKQEAgLTE0NCw5ICsxNDksMjcgQEAgV0kuTG9jYWxS
ZXNvdXJjZU92ZXJyaWRlUG9wb3ZlciA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92
ZXIgZXh0ZW5kcyBXSS4KICAgICAgICAgICAgIHJldHVybiB7Y29kZU1pcnJvciwgZGF0YUVsZW1l
bnR9OwogICAgICAgICB9OwogCisgICAgICAgIGxldCB1cGRhdGVVUkxDb2RlTWlycm9yTW9kZSA9
ICgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX3VybENvZGVNaXJyb3Iuc2V0T3B0aW9uKCJtb2Rl
IiwgaXNSZWdleCA/ICJ0ZXh0L3gtcmVnZXgiIDogInRleHQveC1sb2NhbC1vdmVycmlkZS11cmwi
KTsKKyAgICAgICAgfTsKKwogICAgICAgICBsZXQgdXJsUm93ID0gY3JlYXRlUm93KFdJLlVJU3Ry
aW5nKCJVUkwiKSwgInVybCIsIHVybCk7CiAgICAgICAgIHRoaXMuX3VybENvZGVNaXJyb3IgPSB1
cmxSb3cuY29kZU1pcnJvcjsKLSAgICAgICAgdGhpcy5fdXJsQ29kZU1pcnJvci5zZXRPcHRpb24o
Im1vZGUiLCAidGV4dC94LWxvY2FsLW92ZXJyaWRlLXVybCIpOworICAgICAgICB1cGRhdGVVUkxD
b2RlTWlycm9yTW9kZSgpOworCisgICAgICAgIGlmIChJbnNwZWN0b3JCYWNrZW5kLmhhc0NvbW1h
bmQoIk5ldHdvcmsuYWRkSW50ZXJjZXB0aW9uIiwgImlzUmVnZXgiKSkgeworICAgICAgICAgICAg
bGV0IGlzUmVnZXhMYWJlbCA9IHVybFJvdy5kYXRhRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpKTsKKworICAgICAgICAgICAgdGhpcy5faXNSZWdleENo
ZWNrYm94ID0gaXNSZWdleExhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlucHV0IikpOworICAgICAgICAgICAgdGhpcy5faXNSZWdleENoZWNrYm94LnR5cGUgPSAiY2hl
Y2tib3giOworICAgICAgICAgICAgdGhpcy5faXNSZWdleENoZWNrYm94LmNsYXNzTmFtZSA9ICJp
cy1yZWdleCI7CisgICAgICAgICAgICB0aGlzLl9pc1JlZ2V4Q2hlY2tib3guY2hlY2tlZCA9IGlz
UmVnZXg7CisgICAgICAgICAgICB0aGlzLl9pc1JlZ2V4Q2hlY2tib3guYWRkRXZlbnRMaXN0ZW5l
cigiY2hhbmdlIiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgdXBkYXRlVVJMQ29kZU1p
cnJvck1vZGUoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpc1JlZ2V4TGFiZWwu
YXBwZW5kKFdJLlVJU3RyaW5nKCJSZWd1bGFyIEV4cHJlc3Npb24iKSk7CisgICAgICAgIH0KIAog
ICAgICAgICBsZXQgbWltZVR5cGVSb3cgPSBjcmVhdGVSb3coV0kuVUlTdHJpbmcoIk1JTUUgVHlw
ZSIpLCAibWltZSIsIG1pbWVUeXBlKTsKICAgICAgICAgdGhpcy5fbWltZVR5cGVDb2RlTWlycm9y
ID0gbWltZVR5cGVSb3cuY29kZU1pcnJvcjsKQEAgLTI3OCw2ICszMDEsOSBAQCBXSS5Mb2NhbFJl
c291cmNlT3ZlcnJpZGVQb3BvdmVyID0gY2xhc3MgTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zl
ciBleHRlbmRzIFdJLgogCiAgICAgICAgIC8vIFVwZGF0ZSBtaW1lVHlwZSB3aGVuIFVSTCBnZXRz
IGEgZmlsZSBleHRlbnNpb24uCiAgICAgICAgIHRoaXMuX3VybENvZGVNaXJyb3Iub24oImNoYW5n
ZSIsIChjbSkgPT4geworICAgICAgICAgICAgaWYgKHRoaXMuX2lzUmVnZXhDaGVja2JveCAmJiB0
aGlzLl9pc1JlZ2V4Q2hlY2tib3guY2hlY2tlZCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
ICAgICAgICAgICAgIGxldCBleHRlbnNpb24gPSBXSS5maWxlRXh0ZW5zaW9uRm9yVVJMKGNtLmdl
dFZhbHVlKCkpOwogICAgICAgICAgICAgaWYgKCFleHRlbnNpb24pCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxl
bWVudC5qcwppbmRleCAyZjlkYmM3NjZlYzdmOTE4Njc0MDVlY2QyM2IyOTMxZGZkN2VlNTk0Li5k
OWJiN2UzY2I0MjkwZmU5NDNmYjQ3MmQ3Yjc0ZDg3YzVhMDEzNDMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJp
ZGVUcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudC5qcwpAQCAtNDAsMTAgKzQw
LDE4IEBAIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50ID0gY2xhc3MgTG9jYWxS
ZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQgZXh0CiAKICAgICAvLyBQcm90ZWN0ZWQKIAorICAg
IGdldCBtYWluVGl0bGVUZXh0KCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LmlzUmVnZXgpCisgICAgICAgICAgICByZXR1cm4gIi8iICsgdGhpcy5yZXNvdXJjZS51
cmwgKyAiLyI7CisgICAgICAgIHJldHVybiBzdXBlci5tYWluVGl0bGVUZXh0OworICAgIH0KKwog
ICAgIG9uYXR0YWNoKCkKICAgICB7CiAgICAgICAgIHN1cGVyLm9uYXR0YWNoKCk7CiAKKyAgICAg
ICAgdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmFkZEV2ZW50TGlzdGVuZXIoV0kuTG9jYWxS
ZXNvdXJjZU92ZXJyaWRlLkV2ZW50LklzUmVnZXhDaGFuZ2VkLCB0aGlzLl9oYW5kbGVMb2NhbFJl
c291cmNlT3ZlcnJpZGVJc1JlZ2V4Q2hhbmdlZCwgdGhpcyk7CiAgICAgICAgIHRoaXMuX2xvY2Fs
UmVzb3VyY2VPdmVycmlkZS5hZGRFdmVudExpc3RlbmVyKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlk
ZS5FdmVudC5EaXNhYmxlZENoYW5nZWQsIHRoaXMuX2hhbmRsZUxvY2FsUmVzb3VyY2VPdmVycmlk
ZURpc2FibGVkQ2hhbmdlZCwgdGhpcyk7CiAKICAgICAgICAgV0kuRnJhbWUuYWRkRXZlbnRMaXN0
ZW5lcihXSS5GcmFtZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZUZy
YW1lTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzKTsKQEAgLTUzLDYgKzYxLDcgQEAgV0kuTG9j
YWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQgPSBjbGFzcyBMb2NhbFJlc291cmNlT3ZlcnJp
ZGVUcmVlRWxlbWVudCBleHQKIAogICAgIG9uZGV0YWNoKCkKICAgICB7CisgICAgICAgIHRoaXMu
X2xvY2FsUmVzb3VyY2VPdmVycmlkZS5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkxvY2FsUmVzb3Vy
Y2VPdmVycmlkZS5FdmVudC5Jc1JlZ2V4Q2hhbmdlZCwgdGhpcy5faGFuZGxlTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlSXNSZWdleENoYW5nZWQsIHRoaXMpOwogICAgICAgICB0aGlzLl9sb2NhbFJlc291
cmNlT3ZlcnJpZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUu
RXZlbnQuRGlzYWJsZWRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVMb2NhbFJlc291cmNlT3ZlcnJpZGVE
aXNhYmxlZENoYW5nZWQsIHRoaXMpOwogCiAgICAgICAgIFdJLkZyYW1lLnJlbW92ZUV2ZW50TGlz
dGVuZXIoV0kuRnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzLl9oYW5kbGVG
cmFtZU1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcyk7CkBAIC04Niw3ICs5NSw3IEBAIFdJLkxv
Y2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50ID0gY2xhc3MgTG9jYWxSZXNvdXJjZU92ZXJy
aWRlVHJlZUVsZW1lbnQgZXh0CiAgICAgewogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVt
KFdJLlVJU3RyaW5nKCJFZGl0IExvY2FsIE92ZXJyaWRlXHUyMDI2IiksIChldmVudCkgPT4gewog
ICAgICAgICAgICAgbGV0IHBvcG92ZXIgPSBuZXcgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9w
b3Zlcih0aGlzKTsKLSAgICAgICAgICAgIHBvcG92ZXIuc2hvdyh0aGlzLl9sb2NhbFJlc291cmNl
T3ZlcnJpZGUubG9jYWxSZXNvdXJjZSwgdGhpcy5zdGF0dXMsIFtXSS5SZWN0RWRnZS5NQVhfWCwg
V0kuUmVjdEVkZ2UuTUlOX1hdKTsKKyAgICAgICAgICAgIHBvcG92ZXIuc2hvdyh0aGlzLl9sb2Nh
bFJlc291cmNlT3ZlcnJpZGUsIHRoaXMuc3RhdHVzLCBbV0kuUmVjdEVkZ2UuTUFYX1gsIFdJLlJl
Y3RFZGdlLk1JTl9YXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGxldCB0b2dnbGVFbmFibGVk
U3RyaW5nID0gdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmRpc2FibGVkID8gV0kuVUlTdHJp
bmcoIkVuYWJsZSBMb2NhbCBPdmVycmlkZSIpIDogV0kuVUlTdHJpbmcoIkRpc2FibGUgTG9jYWwg
T3ZlcnJpZGUiKTsKQEAgLTExNCw3ICsxMjMsNyBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVU
cmVlRWxlbWVudCA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50IGV4dAog
ICAgICAgICBpZiAoIXNlcmlhbGl6ZWREYXRhKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIGxldCB7dXJsLCBtaW1lVHlwZSwgc3RhdHVzQ29kZSwgc3RhdHVzVGV4dCwgaGVhZGVyc30g
PSBzZXJpYWxpemVkRGF0YTsKKyAgICAgICAgbGV0IHt1cmwsIGlzUmVnZXgsIG1pbWVUeXBlLCBz
dGF0dXNDb2RlLCBzdGF0dXNUZXh0LCBoZWFkZXJzfSA9IHNlcmlhbGl6ZWREYXRhOwogCiAgICAg
ICAgIC8vIERvIG5vdCBjb25mbGljdCB3aXRoIGFuIGV4aXN0aW5nIG92ZXJyaWRlIHVubGVzcyB3
ZSBhcmUgbW9kaWZ5aW5nIG91cnNlbHZlcy4KICAgICAgICAgbGV0IGV4aXN0aW5nT3ZlcnJpZGUg
PSBXSS5uZXR3b3JrTWFuYWdlci5sb2NhbFJlc291cmNlT3ZlcnJpZGVGb3JVUkwodXJsKTsKQEAg
LTEyOCw2ICsxMzcsNyBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudCA9IGNs
YXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50IGV4dAogICAgICAgICBsZXQgcmV2
aXNpb24gPSB0aGlzLl9sb2NhbFJlc291cmNlT3ZlcnJpZGUubG9jYWxSZXNvdXJjZS5jdXJyZW50
UmV2aXNpb247CiAgICAgICAgIGxldCBuZXdMb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBXSS5Mb2Nh
bFJlc291cmNlT3ZlcnJpZGUuY3JlYXRlKHsKICAgICAgICAgICAgIHVybCwKKyAgICAgICAgICAg
IGlzUmVnZXgsCiAgICAgICAgICAgICBtaW1lVHlwZSwKICAgICAgICAgICAgIHN0YXR1c0NvZGUs
CiAgICAgICAgICAgICBzdGF0dXNUZXh0LApAQCAtMTU4LDYgKzE2OCwxMSBAQCBXSS5Mb2NhbFJl
c291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudCA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZVRy
ZWVFbGVtZW50IGV4dAogICAgICAgICB9KTsKICAgICB9CiAKKyAgICBfaGFuZGxlTG9jYWxSZXNv
dXJjZU92ZXJyaWRlSXNSZWdleENoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl91
cGRhdGVUaXRsZXMoKTsKKyAgICB9CisKICAgICBfaGFuZGxlTG9jYWxSZXNvdXJjZU92ZXJyaWRl
RGlzYWJsZWRDaGFuZ2VkKGV2ZW50KQogICAgIHsKICAgICAgICAgdGhpcy5zdGF0dXMuY2hlY2tl
ZCA9ICF0aGlzLl9sb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlzYWJsZWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlv
blNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCmluZGV4IDkzNWIyMGRhNDMzNDVh
YWZkMmJiNDZjYmM1NTc4OTVhNzhmNmNhNzQuLjJhM2I5ZGI1NzU5NTAzMmI3MDU0ODQxM2JhN2M3
NjYwOTBlMzhkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJh
clBhbmVsLmpzCkBAIC02NjUsNyArNjY1LDcgQEAgV0kuU291cmNlc05hdmlnYXRpb25TaWRlYmFy
UGFuZWwgPSBjbGFzcyBTb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCBleHRlbmRzIFcKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGxldCB7dXJsLCBtaW1lVHlw
ZSwgc3RhdHVzQ29kZSwgc3RhdHVzVGV4dCwgaGVhZGVyc30gPSBzZXJpYWxpemVkRGF0YTsKKyAg
ICAgICAgbGV0IHt1cmwsIGlzUmVnZXgsIG1pbWVUeXBlLCBzdGF0dXNDb2RlLCBzdGF0dXNUZXh0
LCBoZWFkZXJzfSA9IHNlcmlhbGl6ZWREYXRhOwogCiAgICAgICAgIC8vIERvIG5vdCBjb25mbGlj
dCB3aXRoIGFuIGV4aXN0aW5nIG92ZXJyaWRlLgogICAgICAgICBsZXQgZXhpc3RpbmdPdmVycmlk
ZSA9IFdJLm5ldHdvcmtNYW5hZ2VyLmxvY2FsUmVzb3VyY2VPdmVycmlkZUZvclVSTCh1cmwpOwpA
QCAtNjc2LDYgKzY3Niw3IEBAIFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xh
c3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXCiAKICAgICAgICAgbGV0
IGxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5jcmVhdGUo
ewogICAgICAgICAgICAgdXJsLAorICAgICAgICAgICAgaXNSZWdleCwKICAgICAgICAgICAgIG1p
bWVUeXBlLAogICAgICAgICAgICAgc3RhdHVzQ29kZSwKICAgICAgICAgICAgIHN0YXR1c1RleHQs
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZWJkYTc0YTM1Zjk4NWIzODVmZjZjZmMzNGIyODQzYTM2NzM5Yzk2MC4uZjgyNjA5
NWZkYjVmMTE5MmJiOGExYTU4NjgzNDFkNzc4ZTUyYjdjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDE5LTEwLTMxICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBMb2NhbCBSZXNvdXJjZSBPdmVycmlkZXM6IGFsbG93IHN1YnN0aXR1
dGlvbiBiYXNlZCBvbiBhIHVybCBwYXR0ZXJuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbG9jYWwt
cmVzb3VyY2Utb3ZlcnJpZGUtYmFzaWMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNlLW92ZXJyaWRlLWJhc2ljLWV4cGVjdGVkLnR4dDoK
KwogMjAxOS0xMC0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEF1ZGlvQ29udGV4dCBzaG91bGQgbm90IHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2svZm9yd2Fy
ZCBjYWNoZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNlLW92ZXJyaWRl
LWJhc2ljLWV4cGVjdGVkLnR4dAppbmRleCBkODk3OGU5OGJjZGU2M2MwZjE1MzA3NzlkMmRhZGU3
M2NhYzJmY2NiLi5jNTY5ZDUxOGQxOTljOGVlOGJmZTg5NWMwMWFkODJhOTQwNGI5ZTU5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJl
c291cmNlLW92ZXJyaWRlLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNlLW92ZXJyaWRlLWJhc2ljLWV4
cGVjdGVkLnR4dApAQCAtODgsNiArODgsMTkgQEAgUmVzcG9uc2UgSGVhZGVyczoKICAgWC1FeHBl
Y3RlZDogUEFTUwogQ29udGVudDogUEFTUwogCistLSBSdW5uaW5nIHRlc3QgY2FzZTogTG9jYWxS
ZXNvdXJjZU92ZXJyaWRlLlVSTC5Jc1JlZ2V4CitDcmVhdGluZyBMb2NhbCBSZXNvdXJjZSBPdmVy
cmlkZSBmb3I6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZXMvb3ZlcnJpZGUudHh0P3Q9KgorVHJpZ2dlcmluZyBsb2FkLi4uCitSZXNvdXJjZSBMb2FkZWQ6
CitVUkw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMv
b3ZlcnJpZGUudHh0P3Q9MTIzNDU2Nzg5CitNSU1FIFR5cGU6IHRleHQvcGxhaW4KK1N0YXR1czog
MjAwIE9LCitSZXNwb25zZSBTb3VyY2U6IFN5bWJvbChpbnNwZWN0b3Itb3ZlcnJpZGUpCitSZXNw
b25zZSBIZWFkZXJzOgorICBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KKyAgWC1FeHBlY3RlZDog
UEFTUworQ29udGVudDogUEFTUworCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlLjQwNAogQ3JlYXRpbmcgTG9jYWwgUmVzb3VyY2UgT3ZlcnJpZGUgZm9yOiBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL292ZXJyaWRlLnR4
dAogVHJpZ2dlcmluZyBsb2FkLi4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNlLW92ZXJyaWRlLWJhc2ljLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNlLW92
ZXJyaWRlLWJhc2ljLmh0bWwKaW5kZXggNzA4ZTk5N2RiNTcwN2NmN2M4NmY0NjFjYzU3YTVlM2Jm
NmNhOTgyNS4uNzE1OTY5OTkzZmZmMTM2N2I2YmE2MGQxZWRkZTc3NGZlM2FmYWRlMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1yZXNv
dXJjZS1vdmVycmlkZS1iYXNpYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUtYmFzaWMuaHRtbApAQCAtMTY0
LDYgKzE2NCwyMiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgfV0KICAgICB9KTsKIAorICAg
IGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkxvY2FsUmVzb3VyY2VPdmVycmlkZS5VUkwu
SXNSZWdleCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBvdmVycmlkZSBmb3IgYSBsb2Fk
IHdpdGggYSBmcmFnbWVudC4iLAorICAgICAgICBleHByZXNzaW9uOiBgdHJpZ2dlck92ZXJyaWRl
TG9hZCgiP3Q9MTIzNDU2Nzg5IilgLAorICAgICAgICBvdmVycmlkZXM6IFt7CisgICAgICAgICAg
ICB1cmw6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Vz
L292ZXJyaWRlLnR4dD90PSoiLAorICAgICAgICAgICAgbWltZVR5cGU6ICJ0ZXh0L3BsYWluIiwK
KyAgICAgICAgICAgIGNvbnRlbnQ6ICJQQVNTIiwKKyAgICAgICAgICAgIGJhc2U2NEVuY29kZWQ6
IGZhbHNlLAorICAgICAgICAgICAgc3RhdHVzQ29kZTogMjAwLAorICAgICAgICAgICAgc3RhdHVz
VGV4dDogIk9LIiwKKyAgICAgICAgICAgIGhlYWRlcnM6IHsiWC1FeHBlY3RlZCI6ICJQQVNTIn0s
CisgICAgICAgICAgICBpc1JlZ2V4OiB0cnVlLAorICAgICAgICB9XQorICAgIH0pOworCiAgICAg
YWRkVGVzdENhc2UoewogICAgICAgICBuYW1lOiAiTG9jYWxSZXNvdXJjZU92ZXJyaWRlLjQwNCIs
CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBmb3IgYSA0MDQgb3ZlcnJpZGUuIiwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382436</attachid>
            <date>2019-10-31 00:27:03 -0700</date>
            <delta_ts>2019-11-08 19:20:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202375.patch</filename>
            <type>text/plain</type>
            <size>39961</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDFhYmUzZTI2YzYwMGI4MGZjMGU3MTVmMmE5ODMy
MmZjMGIzYWI0YjcuLjY2YjU4OTg1YWYzOTE0ZDU3MGNlNmZmMzkzNGEwNTA1NzEwODRkYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTEwLTMxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBM
b2NhbCBSZXNvdXJjZSBPdmVycmlkZXM6IGFsbG93IHN1YnN0aXR1dGlvbiBiYXNlZCBvbiBhIHVy
bCBwYXR0ZXJuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDIzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPZnRlbiwgd2Vic2l0ZXMgd2lsbCBsb2FkIGNvbnRlbnQgd2l0aCBhIHRpbWVzdGFtcC1iYXNl
ZCBVUkwgcXVlcnkgcGFyYW1ldGVyIGZvcgorICAgICAgICBjYWNoZS1idXN0aW5nIG9yIGxvZ2dp
bmcgcHVycG9zZXMuIElmIGEgZGV2ZWxvcGVyIGlzIHRyeWluZyB0byBvdmVycmlkZSB0aGVzZSBy
ZXNvdXJjZXMgKG9yCisgICAgICAgIGlzIHRyeWluZyB0byBoYXZlIGFuIGV4aXN0aW5nIG92ZXJy
aWRlIGFsc28gbWF0Y2ggdGhlc2UgcmVzb3VyY2VzKSwgdGhleSdkIG5lZWQgdG8gZWRpdCB0aGUK
KyAgICAgICAgbG9jYWwgb3ZlcnJpZGUncyBVUkwgdG8gbWF0Y2ggaW4gYWRkaXRpb24gdG8gZWRp
dGluZyB0aGUgcmVzb3VyY2UgdGhhdCBsb2FkcyBpdCAoZS5nLiBjaGFuZ2UKKyAgICAgICAgdGhl
IDxzY3JpcHQ+IGluIGFuIEhUTUwgZmlsZSksIHdoaWNoIGNhbiBzb21ldGltZXMgYmUgdHJpY2t5
IG9mIHRoZSBjb250ZW50IGlzIGR5bmFtaWNhbGx5CisgICAgICAgIGxvYWRlZCAoZS5nLiBhbiBY
SFIgd2l0aCBhIG5vbi1oYXJkY29kZWQgVVJMKS4KKworICAgICAgICBBbGxvd2luZyBmb3IgbG9j
YWwgb3ZlcnJpZGVzIHRvIGJlIHNldCB1c2luZyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJu
IHdvdWxkIGhlbHAgcmVzb2x2ZQorICAgICAgICB0aGlzIGxpbWl0YXRpb24uCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uOgorICAgICAgICBBZGQgYGlzUmVnZXhg
IHBhcmFtZXRlciB0byBgTmV0d29yay5hZGRJbnRlcmNlcHRpb25gIGFuZCBgTmV0d29yay5yZW1v
dmVJbnRlcmNlcHRpb25gLgorCiAyMDE5LTEwLTI0ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbSlNDXSBHZXQgMzItYml0IHBvcnRzIGJhY2sgaW50byBi
dWlsZGluZyBvcmRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhmNTBjNDY4MjhkMjE4MjUwOGIxODdlNzI2M2Vj
NmFhYmU5MzlmOTcuLjIwNzZlOWNiMzYxNGUyNmM3NDFmNWRjNWZkMjljYTAwM2Q2ZmVhYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxOS0xMC0zMSAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTG9jYWwgUmVzb3VyY2Ug
T3ZlcnJpZGVzOiBhbGxvdyBzdWJzdGl0dXRpb24gYmFzZWQgb24gYSB1cmwgcGF0dGVybgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMzc1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1pc1JlZ2V4Lmh0
bWwKKworICAgICAgICBPZnRlbiwgd2Vic2l0ZXMgd2lsbCBsb2FkIGNvbnRlbnQgd2l0aCBhIHRp
bWVzdGFtcC1iYXNlZCBVUkwgcXVlcnkgcGFyYW1ldGVyIGZvcgorICAgICAgICBjYWNoZS1idXN0
aW5nIG9yIGxvZ2dpbmcgcHVycG9zZXMuIElmIGEgZGV2ZWxvcGVyIGlzIHRyeWluZyB0byBvdmVy
cmlkZSB0aGVzZSByZXNvdXJjZXMgKG9yCisgICAgICAgIGlzIHRyeWluZyB0byBoYXZlIGFuIGV4
aXN0aW5nIG92ZXJyaWRlIGFsc28gbWF0Y2ggdGhlc2UgcmVzb3VyY2VzKSwgdGhleSdkIG5lZWQg
dG8gZWRpdCB0aGUKKyAgICAgICAgbG9jYWwgb3ZlcnJpZGUncyBVUkwgdG8gbWF0Y2ggaW4gYWRk
aXRpb24gdG8gZWRpdGluZyB0aGUgcmVzb3VyY2UgdGhhdCBsb2FkcyBpdCAoZS5nLiBjaGFuZ2UK
KyAgICAgICAgdGhlIDxzY3JpcHQ+IGluIGFuIEhUTUwgZmlsZSksIHdoaWNoIGNhbiBzb21ldGlt
ZXMgYmUgdHJpY2t5IG9mIHRoZSBjb250ZW50IGlzIGR5bmFtaWNhbGx5CisgICAgICAgIGxvYWRl
ZCAoZS5nLiBhbiBYSFIgd2l0aCBhIG5vbi1oYXJkY29kZWQgVVJMKS4KKworICAgICAgICBBbGxv
d2luZyBmb3IgbG9jYWwgb3ZlcnJpZGVzIHRvIGJlIHNldCB1c2luZyBhIHJlZ3VsYXIgZXhwcmVz
c2lvbiBwYXR0ZXJuIHdvdWxkIGhlbHAgcmVzb2x2ZQorICAgICAgICB0aGlzIGxpbWl0YXRpb24u
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0FnZW50OjpJbnRlcmNlcHQ6Om9wZXJh
dG9yPT0gY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ck5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JOZXR3b3JrQWdl
bnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0FnZW50Ojpo
YXNJbnRlcmNlcHQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdvcmtB
Z2VudDo6YWRkSW50ZXJjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdv
cmtBZ2VudDo6cmVtb3ZlSW50ZXJjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ck5ldHdvcmtBZ2VudDo6d2lsbEludGVyY2VwdFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yTmV0d29ya0FnZW50OjpzaG91bGRJbnRlcmNlcHRSZXNwb25zZSk6CisKIDIwMTkt
MTAtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBdWRpb0Nv
bnRleHQgc2hvdWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDZkMTQ3NGU3MTJkNzk1MDZmYWMyNDA5Mzg3NDIw
MDU4MzRiNDBiMzEuLjgwOGI5Y2M1Y2MxMzZkNDcyNmNlMGNmMjA2ZTBlZmFmNzg3MTY4ZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE5LTEwLTMxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBM
b2NhbCBSZXNvdXJjZSBPdmVycmlkZXM6IGFsbG93IHN1YnN0aXR1dGlvbiBiYXNlZCBvbiBhIHVy
bCBwYXR0ZXJuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDIzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPZnRlbiwgd2Vic2l0ZXMgd2lsbCBsb2FkIGNvbnRlbnQgd2l0aCBhIHRpbWVzdGFtcC1iYXNl
ZCBVUkwgcXVlcnkgcGFyYW1ldGVyIGZvcgorICAgICAgICBjYWNoZS1idXN0aW5nIG9yIGxvZ2dp
bmcgcHVycG9zZXMuIElmIGEgZGV2ZWxvcGVyIGlzIHRyeWluZyB0byBvdmVycmlkZSB0aGVzZSBy
ZXNvdXJjZXMgKG9yCisgICAgICAgIGlzIHRyeWluZyB0byBoYXZlIGFuIGV4aXN0aW5nIG92ZXJy
aWRlIGFsc28gbWF0Y2ggdGhlc2UgcmVzb3VyY2VzKSwgdGhleSdkIG5lZWQgdG8gZWRpdCB0aGUK
KyAgICAgICAgbG9jYWwgb3ZlcnJpZGUncyBVUkwgdG8gbWF0Y2ggaW4gYWRkaXRpb24gdG8gZWRp
dGluZyB0aGUgcmVzb3VyY2UgdGhhdCBsb2FkcyBpdCAoZS5nLiBjaGFuZ2UKKyAgICAgICAgdGhl
IDxzY3JpcHQ+IGluIGFuIEhUTUwgZmlsZSksIHdoaWNoIGNhbiBzb21ldGltZXMgYmUgdHJpY2t5
IG9mIHRoZSBjb250ZW50IGlzIGR5bmFtaWNhbGx5CisgICAgICAgIGxvYWRlZCAoZS5nLiBhbiBY
SFIgd2l0aCBhIG5vbi1oYXJkY29kZWQgVVJMKS4KKworICAgICAgICBBbGxvd2luZyBmb3IgbG9j
YWwgb3ZlcnJpZGVzIHRvIGJlIHNldCB1c2luZyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJu
IHdvdWxkIGhlbHAgcmVzb2x2ZQorICAgICAgICB0aGlzIGxpbWl0YXRpb24uCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9Mb2NhbFJlc291cmNlT3ZlcnJpZGUuanM6CisgICAgICAg
IChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUpOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92
ZXJyaWRlLmNyZWF0ZSk6CisgICAgICAgIChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuZnJvbUpT
T04pOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLnByb3RvdHlwZS50b0pTT04p
OgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLnByb3RvdHlwZS5nZXQgaXNSZWdl
eCk6IEFkZGVkLgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLnByb3RvdHlwZS5z
ZXQgaXNSZWdleCk6IEFkZGVkLgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLnBy
b3RvdHlwZS5tYXRjaGVzKTogQWRkZWQuCisgICAgICAgIChXSS5Mb2NhbFJlc291cmNlT3ZlcnJp
ZGUucHJvdG90eXBlLnNhdmVJZGVudGl0eVRvQ29va2llKToKKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIuanM6CisgICAgICAgIChXSS5OZXR3b3Jr
TWFuYWdlcik6CisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5wcm90b3R5cGUuaW5pdGlhbGl6
ZVRhcmdldCk6CisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5wcm90b3R5cGUuZ2V0IGxvY2Fs
UmVzb3VyY2VPdmVycmlkZXMpOgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBl
LmFkZExvY2FsUmVzb3VyY2VPdmVycmlkZSk6CisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5w
cm90b3R5cGUucmVtb3ZlTG9jYWxSZXNvdXJjZU92ZXJyaWRlKToKKyAgICAgICAgKFdJLk5ldHdv
cmtNYW5hZ2VyLnByb3RvdHlwZS5sb2NhbFJlc291cmNlT3ZlcnJpZGVGb3JVUkwpOgorICAgICAg
ICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLnJlc3BvbnNlSW50ZXJjZXB0ZWQpOgorICAg
ICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLl9oYW5kbGVSZXNvdXJjZU92ZXJyaWRl
U3RhdGVDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5wcm90b3R5
cGUuX2hhbmRsZVJlc291cmNlT3ZlcnJpZGVEaXNhYmxlZENoYW5nZWQpOiBEZWxldGVkLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVy
LmpzOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlcik6CisgICAgICAg
IChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyLnByb3RvdHlwZS5nZXQgc2VyaWFsaXpl
ZERhdGEpOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5wcm90b3R5
cGUuc2hvdyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VP
dmVycmlkZVRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRl
VHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBtYWluVGl0bGVUZXh0KTogQWRkZWQuCisgICAgICAg
IChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gp
OgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQucHJvdG90eXBl
Lm9uZGV0YWNoKToKKyAgICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50
LnByb3RvdHlwZS5wb3B1bGF0ZUNvbnRleHRNZW51KToKKyAgICAgICAgKFdJLkxvY2FsUmVzb3Vy
Y2VPdmVycmlkZVRyZWVFbGVtZW50LnByb3RvdHlwZS53aWxsRGlzbWlzc1BvcG92ZXIpOgorICAg
ICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQucHJvdG90eXBlLl9oYW5k
bGVMb2NhbFJlc291cmNlT3ZlcnJpZGVJc1JlZ2V4Q2hhbmdlZCk6IEFkZGVkLgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanM6Cisg
ICAgICAgIChXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3dpbGxE
aXNtaXNzTG9jYWxPdmVycmlkZVBvcG92ZXIpOgorCiAyMDE5LTEwLTIzICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEg
d2F5IHRvIGluamVjdCAiYm9vdHN0cmFwIiBKYXZhU2NyaXB0IGludG8gdGhlIHBhZ2UgYXMgdGhl
IGZpcnN0IHNjcmlwdCBleGVjdXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbgppbmRleCA1NDZiYmZkMzJiZTA2YTI5NzA2
YjE3ZTEwNjAxYTViODgwNGVmMzcwLi5hOTNmMGZkYTg2ZmYxZTA1OWRjYWE1ZjRmMzdlYTFkZjZk
OGJiMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL05ldHdvcmsuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3By
b3RvY29sL05ldHdvcmsuanNvbgpAQCAtMjM5LDYgKzIzOSw3IEBACiAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiQWRkIGFuIGludGVyY2VwdGlvbi4iLAogICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmci
IH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpc1JlZ2V4IiwgInR5cGUiOiAiYm9vbGVh
biIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZiB0cnVlLCB0cmVhdHMgYHVy
bGAgcGFyYW1ldGVyIGFzIGEgcmVndWxhciBleHByZXNzaW9uLiIgfSwKICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInN0YWdlIiwgIiRyZWYiOiAiTmV0d29ya1N0YWdlIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIG5vdCBwcmVzZW50IHRoaXMgYXBwbGllcyB0byBhbGwg
bmV0d29yayBzdGFnZXMuIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCkBAIC0yNDcsNiAr
MjQ4LDcgQEAKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgYW4gaW50ZXJjZXB0
aW9uLiIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImlzUmVnZXgiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIklmIHRydWUsIHRyZWF0cyBgdXJsYCBwYXJhbWV0ZXIgYXMgYSByZWd1bGFyIGV4
cHJlc3Npb24uIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhZ2UiLCAiJHJlZiI6
ICJOZXR3b3JrU3RhZ2UiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgbm90
IHByZXNlbnQgdGhpcyBhcHBsaWVzIHRvIGFsbCBuZXR3b3JrIHN0YWdlcy4iIH0KICAgICAgICAg
ICAgIF0KICAgICAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRleCA5ZGIzNmRhMGEwNzEwNThk
NDk1NDA0M2VlMzM2Yjg3YjU3NjU3YWI4Li5mNDA1MjFkNTllMjU2NGU3NTFmMjhlMWY0N2M2YmMy
NjMxMmFiZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC04MCw2ICs4MCw4IEBACiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxT
dGFja0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTg3LDYgKzg5LDcgQEAKICNpbmNsdWRl
IDx3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudEVuY29kZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9CYXNlNjQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIHR5cGVkZWYgSW5zcGVjdG9yOjpOZXR3b3JrQmFj
a2VuZERpc3BhdGNoZXJIYW5kbGVyOjpMb2FkUmVzb3VyY2VDYWxsYmFjayBMb2FkUmVzb3VyY2VD
YWxsYmFjazsKIApAQCAtODMwLDcgKzgzMyw3IEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50
OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKIHsKICAgICBtX2VuYWJsZWQgPSBmYWxzZTsKICAgICBt
X2ludGVyY2VwdGlvbkVuYWJsZWQgPSBmYWxzZTsKLSAgICBtX2ludGVyY2VwdFJlc3BvbnNlVVJM
cy5jbGVhcigpOworICAgIG1faW50ZXJjZXB0cy5jbGVhcigpOwogICAgIG1faW5zdHJ1bWVudGlu
Z0FnZW50cy5zZXRJbnNwZWN0b3JOZXR3b3JrQWdlbnQobnVsbHB0cik7CiAgICAgbV9yZXNvdXJj
ZXNEYXRhLT5jbGVhcigpOwogICAgIG1fZXh0cmFSZXF1ZXN0SGVhZGVycy5jbGVhcigpOwpAQCAt
ODQwLDYgKzg0MywyMyBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlzYWJsZShFcnJv
clN0cmluZyYpCiAgICAgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoZmFsc2UpOwogfQogCiti
b29sIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6aGFzSW50ZXJjZXB0KFVSTCB1cmwpCit7CisgICAg
dXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOworCisgICAgU3RyaW5nIHVybFN0cmluZyA9
IHVybC5zdHJpbmcoKTsKKyAgICBpZiAodXJsU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgZm9yIChhdXRvJiBpbnRlcmNlcHQgOiBtX2ludGVyY2VwdHMpIHsK
KyAgICAgICAgYXV0byByZWdleCA9IENvbnRlbnRTZWFyY2hVdGlsaXRpZXM6OmNyZWF0ZVNlYXJj
aFJlZ2V4KGludGVyY2VwdC51cmwsIGZhbHNlLCBpbnRlcmNlcHQuaXNSZWdleCk7CisgICAgICAg
IGlmIChyZWdleC5tYXRjaCh1cmxTdHJpbmcpICE9IC0xKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIEluc3BlY3Rvck5ldHdv
cmtBZ2VudDo6Y29udGludWVQZW5kaW5nUmVzcG9uc2VzKCkKIHsKICAgICBmb3IgKGF1dG8mIHBl
bmRpbmdJbnRlcmNlcHRSZXNwb25zZSA6IG1fcGVuZGluZ0ludGVyY2VwdFJlc3BvbnNlcy52YWx1
ZXMoKSkKQEAgLTEwMDksNyArMTAyOSw3IEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50Ojpz
ZXRJbnRlcmNlcHRpb25FbmFibGVkKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgYm9vCiAgICAg
ICAgIGNvbnRpbnVlUGVuZGluZ1Jlc3BvbnNlcygpOwogfQogCi12b2lkIEluc3BlY3Rvck5ldHdv
cmtBZ2VudDo6YWRkSW50ZXJjZXB0aW9uKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyogbmV0d29ya1N0YWdlU3RyaW5nKQordm9pZCBJbnNw
ZWN0b3JOZXR3b3JrQWdlbnQ6OmFkZEludGVyY2VwdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJp
bmcsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBib29sKiBpc1JlZ2V4LCBjb25zdCBTdHJpbmcq
IG5ldHdvcmtTdGFnZVN0cmluZykKIHsKICAgICBpZiAobmV0d29ya1N0YWdlU3RyaW5nKSB7CiAg
ICAgICAgIGF1dG8gbmV0d29ya1N0YWdlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6SW5zcGVjdG9y
SGVscGVyczo6cGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5l
dHdvcms6Ok5ldHdvcmtTdGFnZT4oKm5ldHdvcmtTdGFnZVN0cmluZyk7CkBAIC0xMDIxLDExICsx
MDQxLDExIEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50OjphZGRJbnRlcmNlcHRpb24oRXJy
b3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpCiAKICAgICAvLyBGSVhNRTogU3VwcG9y
dCBpbnRlcmNlcHRpbmcgcmVxdWVzdHMuCiAKLSAgICBpZiAoIW1faW50ZXJjZXB0UmVzcG9uc2VV
UkxzLmFkZCh1cmwpLmlzTmV3RW50cnkpCi0gICAgICAgIGVycm9yU3RyaW5nID0gIkludGVyY2Vw
dCBmb3IgZ2l2ZW4gdXJsIGFscmVhZHkgZXhpc3RzIl9zOworICAgIGlmICghbV9pbnRlcmNlcHRz
LmFwcGVuZElmTm90Q29udGFpbnMoSW50ZXJjZXB0IHsgdXJsLCBpc1JlZ2V4ICYmICppc1JlZ2V4
IH0pKQorICAgICAgICBlcnJvclN0cmluZyA9ICJJbnRlcmNlcHQgZm9yIGdpdmVuIHVybCBhbmQg
Z2l2ZW4gaXNSZWdleCBhbHJlYWR5IGV4aXN0cyJfczsKIH0KIAotdm9pZCBJbnNwZWN0b3JOZXR3
b3JrQWdlbnQ6OnJlbW92ZUludGVyY2VwdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcqIG5ldHdvcmtTdGFnZVN0cmluZykKK3ZvaWQg
SW5zcGVjdG9yTmV0d29ya0FnZW50OjpyZW1vdmVJbnRlcmNlcHRpb24oRXJyb3JTdHJpbmcmIGVy
cm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCogaXNSZWdleCwgY29uc3Qg
U3RyaW5nKiBuZXR3b3JrU3RhZ2VTdHJpbmcpCiB7CiAgICAgaWYgKG5ldHdvcmtTdGFnZVN0cmlu
ZykgewogICAgICAgICBhdXRvIG5ldHdvcmtTdGFnZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6Oklu
c3BlY3RvckhlbHBlcnM6OnBhcnNlRW51bVZhbHVlRnJvbVN0cmluZzxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpOZXR3b3JrOjpOZXR3b3JrU3RhZ2U+KCpuZXR3b3JrU3RhZ2VTdHJpbmcpOwpAQCAtMTAz
Nyw4ICsxMDU3LDggQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OnJlbW92ZUludGVyY2Vw
dGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFMKIAogICAgIC8vIEZJWE1FOiBT
dXBwb3J0IGludGVyY2VwdGluZyByZXF1ZXN0cy4KIAotICAgIGlmICghbV9pbnRlcmNlcHRSZXNw
b25zZVVSTHMucmVtb3ZlKHVybCkpCi0gICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3NpbmcgaW50
ZXJjZXB0IGZvciBnaXZlbiB1cmwiX3M7CisgICAgaWYgKCFtX2ludGVyY2VwdHMucmVtb3ZlQWxs
KEludGVyY2VwdCB7IHVybCwgaXNSZWdleCAmJiAqaXNSZWdleCB9KSkKKyAgICAgICAgZXJyb3JT
dHJpbmcgPSAiTWlzc2luZyBpbnRlcmNlcHQgZm9yIGdpdmVuIHVybCBhbmQgZ2l2ZW4gaXNSZWdl
eCJfczsKIH0KIAogYm9vbCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OndpbGxJbnRlcmNlcHRSZXF1
ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKQEAgLTEwNDYsMTQgKzEwNjYsNyBA
QCBib29sIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6d2lsbEludGVyY2VwdFJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIGlmICghbV9pbnRlcmNlcHRpb25FbmFibGVk
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3Qu
dXJsKCk7Ci0gICAgcmVxdWVzdFVSTC5yZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsKLQotICAg
IFN0cmluZyB1cmwgPSByZXF1ZXN0VVJMLnN0cmluZygpOwotICAgIGlmICh1cmwuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9pbnRlcmNlcHRSZXNwb25z
ZVVSTHMuY29udGFpbnModXJsKTsKKyAgICByZXR1cm4gaGFzSW50ZXJjZXB0KHJlcXVlc3QudXJs
KCkpOwogfQogCiBib29sIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6c2hvdWxkSW50ZXJjZXB0UmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCkBAIC0xMDYxLDE0ICsxMDc0
LDcgQEAgYm9vbCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OnNob3VsZEludGVyY2VwdFJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3AKICAgICBpZiAoIW1faW50ZXJjZXB0aW9uRW5h
YmxlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgVVJMIHJlc3BvbnNlVVJMID0gcmVz
cG9uc2UudXJsKCk7Ci0gICAgcmVzcG9uc2VVUkwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7
Ci0KLSAgICBTdHJpbmcgdXJsID0gcmVzcG9uc2VVUkwuc3RyaW5nKCk7Ci0gICAgaWYgKHVybC5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX2ludGVyY2Vw
dFJlc3BvbnNlVVJMcy5jb250YWlucyh1cmwpOworICAgIHJldHVybiBoYXNJbnRlcmNlcHQocmVz
cG9uc2UudXJsKCkpOwogfQogCiB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6aW50ZXJjZXB0
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4pPiYmIGhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaAppbmRleCAz
MWVmNWUzNDJkZmNmMjdkYjQyZDdmMzI2MGNmNzFjYzM5NDEwODI1Li5mMjIxOGY4N2MwNjU4OGQ1
NjM4N2QwN2FhZDBiYzE5YjM1ODkzMWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmgKQEAgLTM3LDkgKzM3LDgg
QEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJz
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVndWxhckV4cHJlc3Npb24uaD4KLSNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0pTT05WYWx1ZXMuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CkBAIC04OSw4
ICs4OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFNlcmlhbGl6ZWRDZXJ0aWZpY2F0ZShFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBTdHJpbmcqIHNlcmlhbGl6ZWRDZXJ0
aWZpY2F0ZSkgZmluYWw7CiAgICAgdm9pZCByZXNvbHZlV2ViU29ja2V0KEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0
cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JikgZmluYWw7CiAg
ICAgdm9pZCBzZXRJbnRlcmNlcHRpb25FbmFibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBlbmFibGVk
KSBmaW5hbDsKLSAgICB2b2lkIGFkZEludGVyY2VwdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcqIG5ldHdvcmtTdGFnZVN0cmluZykgZmluYWw7Ci0gICAg
dm9pZCByZW1vdmVJbnRlcmNlcHRpb24oRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgU3RyaW5nKiBuZXR3b3JrU3RhZ2VTdHJpbmcpIGZpbmFsOworICAgIHZvaWQgYWRkSW50
ZXJjZXB0aW9uKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IGJvb2wqIGlz
UmVnZXgsIGNvbnN0IFN0cmluZyogbmV0d29ya1N0YWdlU3RyaW5nKSBmaW5hbDsKKyAgICB2b2lk
IHJlbW92ZUludGVyY2VwdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25z
dCBib29sKiBpc1JlZ2V4LCBjb25zdCBTdHJpbmcqIG5ldHdvcmtTdGFnZVN0cmluZykgZmluYWw7
CiAgICAgdm9pZCBpbnRlcmNlcHRDb250aW51ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYg
cmVxdWVzdElkKSBmaW5hbDsKICAgICB2b2lkIGludGVyY2VwdFdpdGhSZXNwb25zZShFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGJv
b2wgYmFzZTY0RW5jb2RlZCwgY29uc3QgU3RyaW5nKiBtaW1lVHlwZSwgY29uc3QgaW50KiBzdGF0
dXMsIGNvbnN0IFN0cmluZyogc3RhdHVzVGV4dCwgY29uc3QgSlNPTjo6T2JqZWN0KiBoZWFkZXJz
KSBmaW5hbDsKIApAQCAtMTQxLDYgKzE0MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHdpbGxT
ZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgUmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwg
SW5zcGVjdG9yUGFnZUFnZW50OjpSZXNvdXJjZVR5cGUpOwogCisgICAgYm9vbCBoYXNJbnRlcmNl
cHQoVVJMKTsKICAgICB2b2lkIGNvbnRpbnVlUGVuZGluZ1Jlc3BvbnNlcygpOwogCiAgICAgV2Vi
U29ja2V0KiB3ZWJTb2NrZXRGb3JSZXF1ZXN0SWQoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpOwpA
QCAtMjAwLDcgKzIwMCwxNiBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
IG1fZXh0cmFSZXF1ZXN0SGVhZGVyczsKICAgICBIYXNoU2V0PHVuc2lnbmVkIGxvbmc+IG1faGlk
ZGVuUmVxdWVzdElkZW50aWZpZXJzOwogCi0gICAgSGFzaFNldDxTdHJpbmc+IG1faW50ZXJjZXB0
UmVzcG9uc2VVUkxzOworICAgIHN0cnVjdCBJbnRlcmNlcHQgeworICAgICAgICBTdHJpbmcgdXJs
OworICAgICAgICBib29sIGlzUmVnZXggeyBmYWxzZSB9OworCisgICAgICAgIGlubGluZSBib29s
IG9wZXJhdG9yPT0oY29uc3QgSW50ZXJjZXB0JiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIHVybCA9PSBvdGhlci51cmwgJiYgaXNSZWdleCA9PSBvdGhlci5pc1Jl
Z2V4OworICAgICAgICB9CisgICAgfTsKKyAgICBWZWN0b3I8SW50ZXJjZXB0PiBtX2ludGVyY2Vw
dHM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxQZW5kaW5nSW50ZXJjZXB0
UmVzcG9uc2U+PiBtX3BlbmRpbmdJbnRlcmNlcHRSZXNwb25zZXM7CiAKICAgICAvLyBGSVhNRTog
SW5zcGVjdG9yTmV0d29ya0FnZW50IHNob3VsZCBub3QgYmUgYXdhcmUgb2Ygc3R5bGUgcmVjYWxj
dWxhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIuanMKaW5kZXggODU0MGJkMmQw
ZjlkZjZkNzY5MTg5ZTg4YjgyNTZkMDJiZWY0MDM4MS4uNmMwMDEwMWIyZThhZGQ1NjkzYjg5OGMw
OGIyZjM3YzJiY2QwMDVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIuanMKQEAg
LTQzLDcgKzQzLDcgQEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFuYWdlciBl
eHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9zb3VyY2VNYXBVUkxNYXAgPSBuZXcgTWFw
OwogICAgICAgICB0aGlzLl9kb3dubG9hZGluZ1NvdXJjZU1hcHMgPSBuZXcgU2V0OwogCi0gICAg
ICAgIHRoaXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZU1hcCA9IG5ldyBNYXA7CisgICAgICAgIHRo
aXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZXMgPSBuZXcgU2V0OwogICAgICAgICB0aGlzLl9oYXJJ
bXBvcnRMb2NhbFJlc291cmNlTWFwID0gbmV3IFNldDsKIAogICAgICAgICB0aGlzLl9wZW5kaW5n
TG9jYWxSZXNvdXJjZU92ZXJyaWRlU2F2ZXMgPSBudWxsOwpAQCAtNTcsNyArNTcsOCBAQCBXSS5O
ZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAK
ICAgICAgICAgaWYgKE5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzTG9jYWxSZXNvdXJjZU92ZXJyaWRl
cygpKSB7CiAgICAgICAgICAgICBXSS5SZXNvdXJjZS5hZGRFdmVudExpc3RlbmVyKFdJLlNvdXJj
ZUNvZGUuRXZlbnQuQ29udGVudERpZENoYW5nZSwgdGhpcy5faGFuZGxlUmVzb3VyY2VDb250ZW50
RGlkQ2hhbmdlLCB0aGlzKTsKLSAgICAgICAgICAgIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5h
ZGRFdmVudExpc3RlbmVyKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5FdmVudC5EaXNhYmxlZENo
YW5nZWQsIHRoaXMuX2hhbmRsZVJlc291cmNlT3ZlcnJpZGVEaXNhYmxlZENoYW5nZWQsIHRoaXMp
OworICAgICAgICAgICAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmFkZEV2ZW50TGlzdGVuZXIo
V0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLkV2ZW50LklzUmVnZXhDaGFuZ2VkLCB0aGlzLl9oYW5k
bGVSZXNvdXJjZU92ZXJyaWRlU3RhdGVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgIFdJLkxv
Y2FsUmVzb3VyY2VPdmVycmlkZS5hZGRFdmVudExpc3RlbmVyKFdJLkxvY2FsUmVzb3VyY2VPdmVy
cmlkZS5FdmVudC5EaXNhYmxlZENoYW5nZWQsIHRoaXMuX2hhbmRsZVJlc291cmNlT3ZlcnJpZGVT
dGF0ZUNoYW5nZWQsIHRoaXMpOwogCiAgICAgICAgICAgICBXSS5UYXJnZXQucmVnaXN0ZXJJbml0
aWFsaXphdGlvblByb21pc2UoKGFzeW5jICgpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgc2Vy
aWFsaXplZExvY2FsUmVzb3VyY2VPdmVycmlkZXMgPSBhd2FpdCBXSS5vYmplY3RTdG9yZXMubG9j
YWxSZXNvdXJjZU92ZXJyaWRlcy5nZXRBbGwoKTsKQEAgLTE1OCw5ICsxNTksMTYgQEAgV0kuTmV0
d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICAgICAgICAgIGlmICh0aGlzLl9pbnRlcmNlcHRpb25FbmFibGVkKQogICAgICAgICAgICAg
ICAgICAgICB0YXJnZXQuTmV0d29ya0FnZW50LnNldEludGVyY2VwdGlvbkVuYWJsZWQodGhpcy5f
aW50ZXJjZXB0aW9uRW5hYmxlZCk7CiAKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBbdXJsLCBs
b2NhbFJlc291cmNlT3ZlcnJpZGVdIG9mIHRoaXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZU1hcCkg
ewotICAgICAgICAgICAgICAgICAgICBpZiAoIWxvY2FsUmVzb3VyY2VPdmVycmlkZS5kaXNhYmxl
ZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQuYWRkSW50ZXJj
ZXB0aW9uKGxvY2FsUmVzb3VyY2VPdmVycmlkZS51cmwsIEluc3BlY3RvckJhY2tlbmQuRW51bS5O
ZXR3b3JrLk5ldHdvcmtTdGFnZS5SZXNwb25zZSk7CisgICAgICAgICAgICAgICAgZm9yIChsZXQg
bG9jYWxSZXNvdXJjZU92ZXJyaWRlIG9mIHRoaXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZXMpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFsb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlzYWJsZWQp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb21tYW5kQXJndW1lbnRzID0geworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLnVybCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JlZ2V4OiBsb2NhbFJlc291cmNlT3ZlcnJp
ZGUuaXNSZWdleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrU3RhZ2U6IElu
c3BlY3RvckJhY2tlbmQuRW51bS5OZXR3b3JrLk5ldHdvcmtTdGFnZS5SZXNwb25zZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5O
ZXR3b3JrQWdlbnQuYWRkSW50ZXJjZXB0aW9uLmludm9rZShjb21tYW5kQXJndW1lbnRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpAQCAtMTg3LDcgKzE5NSw3IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0
d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGdldCBsb2NhbFJlc291cmNlT3Zl
cnJpZGVzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX2xvY2FsUmVz
b3VyY2VPdmVycmlkZU1hcC52YWx1ZXMoKSk7CisgICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRo
aXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZXMpOwogICAgIH0KIAogICAgIGdldCBpbnRlcmNlcHRp
b25FbmFibGVkKCkKQEAgLTMzNCwxNyArMzQyLDIzIEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xh
c3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICB7CiAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGxvY2FsUmVzb3VyY2VPdmVycmlkZSBpbnN0YW5jZW9mIFdJLkxvY2FsUmVzb3Vy
Y2VPdmVycmlkZSk7CiAKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2xvY2FsUmVzb3Vy
Y2VPdmVycmlkZU1hcC5nZXQobG9jYWxSZXNvdXJjZU92ZXJyaWRlLnVybCksICJBbHJlYWR5IGhh
ZCBhbiBleGlzdGluZyBsb2NhbCByZXNvdXJjZSBvdmVycmlkZS4iKTsKLSAgICAgICAgdGhpcy5f
bG9jYWxSZXNvdXJjZU92ZXJyaWRlTWFwLnNldChsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsLCBs
b2NhbFJlc291cmNlT3ZlcnJpZGUpOworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fbG9j
YWxSZXNvdXJjZU92ZXJyaWRlcy5oYXMobG9jYWxSZXNvdXJjZU92ZXJyaWRlKSwgIkFscmVhZHkg
aGFkIGFuIGV4aXN0aW5nIGxvY2FsIHJlc291cmNlIG92ZXJyaWRlLiIpOworICAgICAgICB0aGlz
Ll9sb2NhbFJlc291cmNlT3ZlcnJpZGVzLmFkZChsb2NhbFJlc291cmNlT3ZlcnJpZGUpOwogCiAg
ICAgICAgIGlmICghdGhpcy5fcmVzdG9yaW5nTG9jYWxSZXNvdXJjZU92ZXJyaWRlcykKICAgICAg
ICAgICAgIFdJLm9iamVjdFN0b3Jlcy5sb2NhbFJlc291cmNlT3ZlcnJpZGVzLnB1dE9iamVjdChs
b2NhbFJlc291cmNlT3ZlcnJpZGUpOwogCiAgICAgICAgIGlmICghbG9jYWxSZXNvdXJjZU92ZXJy
aWRlLmRpc2FibGVkKSB7CisgICAgICAgICAgICBsZXQgY29tbWFuZEFyZ3VtZW50cyA9IHsKKyAg
ICAgICAgICAgICAgICB1cmw6IGxvY2FsUmVzb3VyY2VPdmVycmlkZS51cmwsCisgICAgICAgICAg
ICAgICAgaXNSZWdleDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmlzUmVnZXgsCisgICAgICAgICAg
ICAgICAgbmV0d29ya1N0YWdlOiBJbnNwZWN0b3JCYWNrZW5kLkVudW0uTmV0d29yay5OZXR3b3Jr
U3RhZ2UuUmVzcG9uc2UsCisgICAgICAgICAgICB9OworCiAgICAgICAgICAgICAvLyBDT01QQVRJ
QklMSVRZIChpT1MgMTMuMCk6IE5ldHdvcmsuYWRkSW50ZXJjZXB0aW9uIGRpZCBub3QgZXhpc3Qu
CiAgICAgICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykgewogICAgICAgICAg
ICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiTmV0d29yay5hZGRJbnRlcmNlcHRpb24iKSkK
LSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Lk5ldHdvcmtBZ2VudC5hZGRJbnRlcmNlcHRpb24o
bG9jYWxSZXNvdXJjZU92ZXJyaWRlLnVybCwgSW5zcGVjdG9yQmFja2VuZC5FbnVtLk5ldHdvcmsu
TmV0d29ya1N0YWdlLlJlc3BvbnNlKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Lk5ldHdv
cmtBZ2VudC5hZGRJbnRlcmNlcHRpb24uaW52b2tlKGNvbW1hbmRBcmd1bWVudHMpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKQEAgLTM1NSw3ICszNjksNyBAQCBXSS5OZXR3b3JrTWFuYWdl
ciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgewogICAgICAg
ICBjb25zb2xlLmFzc2VydChsb2NhbFJlc291cmNlT3ZlcnJpZGUgaW5zdGFuY2VvZiBXSS5Mb2Nh
bFJlc291cmNlT3ZlcnJpZGUpOwogCi0gICAgICAgIGlmICghdGhpcy5fbG9jYWxSZXNvdXJjZU92
ZXJyaWRlTWFwLmRlbGV0ZShsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsKSkgeworICAgICAgICBp
ZiAoIXRoaXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZXMuZGVsZXRlKGxvY2FsUmVzb3VyY2VPdmVy
cmlkZSkpIHsKICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiQXR0ZW1wdGVkIHRv
IHJlbW92ZSBhIGxvY2FsIHJlc291cmNlIG92ZXJyaWRlIHRoYXQgd2FzIG5vdCBrbm93bi4iKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzY3LDEwICszODEsMTYgQEAgV0ku
TmV0d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAog
ICAgICAgICAgICAgV0kub2JqZWN0U3RvcmVzLmxvY2FsUmVzb3VyY2VPdmVycmlkZXMuZGVsZXRl
T2JqZWN0KGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CiAKICAgICAgICAgaWYgKCFsb2NhbFJlc291
cmNlT3ZlcnJpZGUuZGlzYWJsZWQpIHsKKyAgICAgICAgICAgIGxldCBjb21tYW5kQXJndW1lbnRz
ID0geworICAgICAgICAgICAgICAgIHVybDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLnVybCwKKyAg
ICAgICAgICAgICAgICBpc1JlZ2V4OiBsb2NhbFJlc291cmNlT3ZlcnJpZGUuaXNSZWdleCwKKyAg
ICAgICAgICAgICAgICBuZXR3b3JrU3RhZ2U6IEluc3BlY3RvckJhY2tlbmQuRW51bS5OZXR3b3Jr
Lk5ldHdvcmtTdGFnZS5SZXNwb25zZSwKKyAgICAgICAgICAgIH07CisKICAgICAgICAgICAgIC8v
IENPTVBBVElCSUxJVFkgKGlPUyAxMy4wKTogTmV0d29yay5yZW1vdmVJbnRlcmNlcHRpb24gZGlk
IG5vdCBleGlzdC4KICAgICAgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKSB7
CiAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNDb21tYW5kKCJOZXR3b3JrLnJlbW92ZUlu
dGVyY2VwdGlvbiIpKQotICAgICAgICAgICAgICAgICAgICB0YXJnZXQuTmV0d29ya0FnZW50LnJl
bW92ZUludGVyY2VwdGlvbihsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsLCBJbnNwZWN0b3JCYWNr
ZW5kLkVudW0uTmV0d29yay5OZXR3b3JrU3RhZ2UuUmVzcG9uc2UpOworICAgICAgICAgICAgICAg
ICAgICB0YXJnZXQuTmV0d29ya0FnZW50LnJlbW92ZUludGVyY2VwdGlvbi5pbnZva2UoY29tbWFu
ZEFyZ3VtZW50cyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMzc5LDcgKzM5OSwx
MSBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0ku
T2JqZWN0CiAKICAgICBsb2NhbFJlc291cmNlT3ZlcnJpZGVGb3JVUkwodXJsKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZU1hcC5nZXQodXJsKTsKKyAg
ICAgICAgZm9yIChsZXQgbG9jYWxSZXNvdXJjZU92ZXJyaWRlIG9mIHRoaXMuX2xvY2FsUmVzb3Vy
Y2VPdmVycmlkZXMpIHsKKyAgICAgICAgICAgIGlmIChsb2NhbFJlc291cmNlT3ZlcnJpZGUubWF0
Y2hlcyh1cmwpKQorICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbFJlc291cmNlT3ZlcnJpZGU7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQogCiAgICAgY2FuQmVPdmVy
cmlkZGVuKHJlc291cmNlKQpAQCAtOTA3LDcgKzkzMSw3IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0g
Y2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICByZXNwb25zZUludGVy
Y2VwdGVkKHRhcmdldCwgcmVxdWVzdElkLCByZXNwb25zZSkKICAgICB7CiAgICAgICAgIGxldCB1
cmwgPSBXSS51cmxXaXRob3V0RnJhZ21lbnQocmVzcG9uc2UudXJsKTsKLSAgICAgICAgbGV0IGxv
Y2FsUmVzb3VyY2VPdmVycmlkZSA9IHRoaXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZU1hcC5nZXQo
dXJsKTsKKyAgICAgICAgbGV0IGxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IHRoaXMubG9jYWxSZXNv
dXJjZU92ZXJyaWRlRm9yVVJMKHVybCk7CiAgICAgICAgIGlmICghbG9jYWxSZXNvdXJjZU92ZXJy
aWRlIHx8IGxvY2FsUmVzb3VyY2VPdmVycmlkZS5kaXNhYmxlZCkgewogICAgICAgICAgICAgdGFy
Z2V0Lk5ldHdvcmtBZ2VudC5pbnRlcmNlcHRDb250aW51ZShyZXF1ZXN0SWQpOwogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMTM2NCwyMCArMTM4OCwyNiBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNs
YXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX3NhdmVM
b2NhbFJlc291cmNlT3ZlcnJpZGVzRGVib3VuY2VyLmRlbGF5Rm9yVGltZSg1MDApOwogICAgIH0K
IAotICAgIF9oYW5kbGVSZXNvdXJjZU92ZXJyaWRlRGlzYWJsZWRDaGFuZ2VkKGV2ZW50KQorICAg
IF9oYW5kbGVSZXNvdXJjZU92ZXJyaWRlU3RhdGVDaGFuZ2VkKGV2ZW50KQogICAgIHsKICAgICAg
ICAgY29uc29sZS5hc3NlcnQoV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNMb2NhbFJlc291cmNl
T3ZlcnJpZGVzKCkpOwogCiAgICAgICAgIGxldCBsb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBldmVu
dC50YXJnZXQ7CiAgICAgICAgIFdJLm9iamVjdFN0b3Jlcy5sb2NhbFJlc291cmNlT3ZlcnJpZGVz
LnB1dE9iamVjdChsb2NhbFJlc291cmNlT3ZlcnJpZGUpOwogCisgICAgICAgIGxldCBjb21tYW5k
QXJndW1lbnRzID0geworICAgICAgICAgICAgdXJsOiBsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJs
LAorICAgICAgICAgICAgaXNSZWdleDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmlzUmVnZXgsCisg
ICAgICAgICAgICBuZXR3b3JrU3RhZ2U6IEluc3BlY3RvckJhY2tlbmQuRW51bS5OZXR3b3JrLk5l
dHdvcmtTdGFnZS5SZXNwb25zZSwKKyAgICAgICAgfTsKKwogICAgICAgICAvLyBDT01QQVRJQklM
SVRZIChpT1MgMTMuMCk6IE5ldHdvcmsuYWRkSW50ZXJjZXB0aW9uIC8gTmV0d29yay5yZW1vdmVJ
bnRlcmNlcHRpb24gZGlkIG5vdCBleGlzdC4KICAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJ
LnRhcmdldHMpIHsKICAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzRG9tYWluKCJOZXR3b3JrIikp
IHsKICAgICAgICAgICAgICAgICBpZiAobG9jYWxSZXNvdXJjZU92ZXJyaWRlLmRpc2FibGVkKQot
ICAgICAgICAgICAgICAgICAgICB0YXJnZXQuTmV0d29ya0FnZW50LnJlbW92ZUludGVyY2VwdGlv
bihsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsLCBJbnNwZWN0b3JCYWNrZW5kLkVudW0uTmV0d29y
ay5OZXR3b3JrU3RhZ2UuUmVzcG9uc2UpOworICAgICAgICAgICAgICAgICAgICB0YXJnZXQuTmV0
d29ya0FnZW50LnJlbW92ZUludGVyY2VwdGlvbi5pbnZva2UoY29tbWFuZEFyZ3VtZW50cyk7CiAg
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICB0YXJnZXQuTmV0d29ya0Fn
ZW50LmFkZEludGVyY2VwdGlvbihsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsLCBJbnNwZWN0b3JC
YWNrZW5kLkVudW0uTmV0d29yay5OZXR3b3JrU3RhZ2UuUmVzcG9uc2UpOworICAgICAgICAgICAg
ICAgICAgICB0YXJnZXQuTmV0d29ya0FnZW50LmFkZEludGVyY2VwdGlvbi5pbnZva2UoY29tbWFu
ZEFyZ3VtZW50cyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0xvY2FsUmVzb3VyY2VPdmVycmlkZS5qcwppbmRleCA1MWZiNDUzYzE3YTM5Zjg2NDM5NmNlMjJk
NWZlM2YwOTQyYTE0NmJlLi43Mzk3MjI1YjA2YWYxZGM3YzYzNzI4M2VjNTU3Nzk4NWQxODBjNDEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
TG9jYWxSZXNvdXJjZU92ZXJyaWRlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9Mb2NhbFJlc291cmNlT3ZlcnJpZGUuanMKQEAgLTI1LDI2ICsyNSwy
OCBAQAogCiBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBjbGFzcyBMb2NhbFJlc291cmNlT3Zl
cnJpZGUgZXh0ZW5kcyBXSS5PYmplY3QKIHsKLSAgICBjb25zdHJ1Y3Rvcihsb2NhbFJlc291cmNl
LCB7ZGlzYWJsZWR9ID0ge30pCisgICAgY29uc3RydWN0b3IobG9jYWxSZXNvdXJjZSwge2lzUmVn
ZXgsIGRpc2FibGVkfSA9IHt9KQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQobG9jYWxS
ZXNvdXJjZSBpbnN0YW5jZW9mIFdJLkxvY2FsUmVzb3VyY2UpOwogICAgICAgICBjb25zb2xlLmFz
c2VydChsb2NhbFJlc291cmNlLmlzTG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKICAgICAgICAgY29u
c29sZS5hc3NlcnQobG9jYWxSZXNvdXJjZS51cmwpOworICAgICAgICBjb25zb2xlLmFzc2VydCgh
aXNSZWdleCB8fCB0eXBlb2YgaXNSZWdleCA9PT0gImJvb2xlYW4iKTsKICAgICAgICAgY29uc29s
ZS5hc3NlcnQoIWRpc2FibGVkIHx8IHR5cGVvZiBkaXNhYmxlZCA9PT0gImJvb2xlYW4iKTsKIAog
ICAgICAgICBzdXBlcigpOwogCiAgICAgICAgIHRoaXMuX2xvY2FsUmVzb3VyY2UgPSBsb2NhbFJl
c291cmNlOworICAgICAgICB0aGlzLl9pc1JlZ2V4ID0gaXNSZWdleCB8fCBmYWxzZTsKICAgICAg
ICAgdGhpcy5fZGlzYWJsZWQgPSBkaXNhYmxlZCB8fCBmYWxzZTsKICAgICB9CiAKICAgICAvLyBT
dGF0aWMKIAotICAgIHN0YXRpYyBjcmVhdGUoe3VybCwgbWltZVR5cGUsIGNvbnRlbnQsIGJhc2U2
NEVuY29kZWQsIHN0YXR1c0NvZGUsIHN0YXR1c1RleHQsIGhlYWRlcnMsIGRpc2FibGVkfSkKKyAg
ICBzdGF0aWMgY3JlYXRlKHt1cmwsIG1pbWVUeXBlLCBjb250ZW50LCBiYXNlNjRFbmNvZGVkLCBz
dGF0dXNDb2RlLCBzdGF0dXNUZXh0LCBoZWFkZXJzLCBpc1JlZ2V4LCBkaXNhYmxlZH0pCiAgICAg
ewogICAgICAgICBsZXQgbG9jYWxSZXNvdXJjZSA9IG5ldyBXSS5Mb2NhbFJlc291cmNlKHsKICAg
ICAgICAgICAgIHJlcXVlc3Q6IHsKLSAgICAgICAgICAgICAgICB1cmw6IFdJLnVybFdpdGhvdXRG
cmFnbWVudCh1cmwpLAorICAgICAgICAgICAgICAgIHVybDogaXNSZWdleCA/IHVybCA6IFdJLnVy
bFdpdGhvdXRGcmFnbWVudCh1cmwpLAogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHJlc3Bv
bnNlOiB7CiAgICAgICAgICAgICAgICAgaGVhZGVycywKQEAgLTU3LDIxICs1OSwyMiBAQCBXSS5M
b2NhbFJlc291cmNlT3ZlcnJpZGUgPSBjbGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGUgZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgICAgIGlzTG9jYWxSZXNvdXJjZU92ZXJyaWRlOiB0cnVlLAog
ICAgICAgICB9KTsKIAotICAgICAgICByZXR1cm4gbmV3IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlk
ZShsb2NhbFJlc291cmNlLCB7ZGlzYWJsZWR9KTsKKyAgICAgICAgcmV0dXJuIG5ldyBXSS5Mb2Nh
bFJlc291cmNlT3ZlcnJpZGUobG9jYWxSZXNvdXJjZSwge2lzUmVnZXgsIGRpc2FibGVkfSk7CiAg
ICAgfQogCiAgICAgLy8gSW1wb3J0IC8gRXhwb3J0CiAKICAgICBzdGF0aWMgZnJvbUpTT04oanNv
bikKICAgICB7Ci0gICAgICAgIGxldCB7bG9jYWxSZXNvdXJjZSwgZGlzYWJsZWR9ID0ganNvbjsK
LSAgICAgICAgcmV0dXJuIG5ldyBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUoV0kuTG9jYWxSZXNv
dXJjZS5mcm9tSlNPTihsb2NhbFJlc291cmNlKSwge2Rpc2FibGVkfSk7CisgICAgICAgIGxldCB7
bG9jYWxSZXNvdXJjZSwgaXNSZWdleCwgZGlzYWJsZWR9ID0ganNvbjsKKyAgICAgICAgcmV0dXJu
IG5ldyBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUoV0kuTG9jYWxSZXNvdXJjZS5mcm9tSlNPTihs
b2NhbFJlc291cmNlKSwge2lzUmVnZXgsIGRpc2FibGVkfSk7CiAgICAgfQogCiAgICAgdG9KU09O
KGtleSkKICAgICB7CiAgICAgICAgIGxldCBqc29uID0gewogICAgICAgICAgICAgbG9jYWxSZXNv
dXJjZTogdGhpcy5fbG9jYWxSZXNvdXJjZS50b0pTT04oa2V5KSwKKyAgICAgICAgICAgIGlzUmVn
ZXg6IHRoaXMuX2lzUmVnZXgsCiAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5fZGlzYWJsZWQs
CiAgICAgICAgIH07CiAKQEAgLTg2LDYgKzg5LDIxIEBAIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlk
ZSA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZSBleHRlbmRzIFdJLk9iamVjdAogICAgIGdl
dCB1cmwoKSB7IHJldHVybiB0aGlzLl9sb2NhbFJlc291cmNlLnVybDsgfQogICAgIGdldCBsb2Nh
bFJlc291cmNlKCkgeyByZXR1cm4gdGhpcy5fbG9jYWxSZXNvdXJjZTsgfQogCisgICAgZ2V0IGlz
UmVnZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVnZXg7CisgICAgfQorCisg
ICAgc2V0IGlzUmVnZXgoaXNSZWdleCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9pc1JlZ2V4
ID09PSBpc1JlZ2V4KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2lzUmVn
ZXggPSBpc1JlZ2V4OworCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKExv
Y2FsUmVzb3VyY2VPdmVycmlkZS5FdmVudC5Jc1JlZ2V4Q2hhbmdlZCk7CisgICAgfQorCiAgICAg
Z2V0IGRpc2FibGVkKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDsKQEAg
LTEwMSwxMSArMTE5LDIyIEBAIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IGNsYXNzIExvY2Fs
UmVzb3VyY2VPdmVycmlkZSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuRXZlbnQuRGlzYWJsZWRD
aGFuZ2VkKTsKICAgICB9CiAKKyAgICBtYXRjaGVzKHVybCkKKyAgICB7CisgICAgICAgIGlmICh0
aGlzLl9pc1JlZ2V4KSB7CisgICAgICAgICAgICBsZXQgcmVnZXggPSBuZXcgUmVnRXhwKHRoaXMu
dXJsLCAiaSIpOworICAgICAgICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QodXJsKTsKKyAgICAgICAg
fQorCisgICAgICAgIHJldHVybiB1cmwgPT09IHRoaXMudXJsOworICAgIH0KKwogICAgIC8vIFBy
b3RlY3RlZAogCiAgICAgc2F2ZUlkZW50aXR5VG9Db29raWUoY29va2llKQogICAgIHsKICAgICAg
ICAgY29va2llWyJsb2NhbC1yZXNvdXJjZS1vdmVycmlkZS11cmwiXSA9IHRoaXMuX2xvY2FsUmVz
b3VyY2UudXJsOworICAgICAgICBjb29raWVbImxvY2FsLXJlc291cmNlLW92ZXJyaWRlLWlzLXJl
Z2V4Il0gPSB0aGlzLl9pc1JlZ2V4OwogICAgICAgICBjb29raWVbImxvY2FsLXJlc291cmNlLW92
ZXJyaWRlLWRpc2FibGVkIl0gPSB0aGlzLl9kaXNhYmxlZDsKICAgICB9CiB9OwpAQCAtMTEzLDUg
KzE0Miw2IEBAIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IGNsYXNzIExvY2FsUmVzb3VyY2VP
dmVycmlkZSBleHRlbmRzIFdJLk9iamVjdAogV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLlR5cGVJ
ZGVudGlmaWVyID0gImxvY2FsLXJlc291cmNlLW92ZXJyaWRlIjsKIAogV0kuTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlLkV2ZW50ID0geworICAgIElzUmVnZXhDaGFuZ2VkOiAibG9jYWwtcmVzb3VyY2Ut
b3ZlcnJpZGUtaXMtcmVnZXgtY2hhbmdlZCIsCiAgICAgRGlzYWJsZWRDaGFuZ2VkOiAibG9jYWwt
cmVzb3VyY2Utb3ZlcnJpZGUtZGlzYWJsZWQtc3RhdGUtZGlkLWNoYW5nZSIsCiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9jYWxSZXNv
dXJjZU92ZXJyaWRlUG9wb3Zlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIuanMKaW5kZXggYzYxMDFlNGQw
MWFiNWFlZjRlNTYwM2IyODI4ZTcxZWM3ZWM5MjY2Mi4uZGJmNmQ2NjdkNWJlNWYyNzAzODUwOGZk
ODYzNTU5NzdhMDg5YjBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJp
ZGVQb3BvdmVyLmpzCkBAIC0zMCw2ICszMCw3IEBAIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVBv
cG92ZXIgPSBjbGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyIGV4dGVuZHMgV0kuCiAg
ICAgICAgIHN1cGVyKGRlbGVnYXRlKTsKIAogICAgICAgICB0aGlzLl91cmxDb2RlTWlycm9yID0g
bnVsbDsKKyAgICAgICAgdGhpcy5faXNSZWdleENoZWNrYm94ID0gbnVsbDsKICAgICAgICAgdGhp
cy5fbWltZVR5cGVDb2RlTWlycm9yID0gbnVsbDsKICAgICAgICAgdGhpcy5fc3RhdHVzQ29kZUNv
ZGVNaXJyb3IgPSBudWxsOwogICAgICAgICB0aGlzLl9zdGF0dXNUZXh0Q29kZU1pcnJvciA9IG51
bGw7CkBAIC04NSw2ICs4Niw3IEBAIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIgPSBj
bGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyIGV4dGVuZHMgV0kuCiAKICAgICAgICAg
bGV0IGRhdGEgPSB7CiAgICAgICAgICAgICB1cmwsCisgICAgICAgICAgICBpc1JlZ2V4OiB0aGlz
Ll9pc1JlZ2V4Q2hlY2tib3ggJiYgdGhpcy5faXNSZWdleENoZWNrYm94LmNoZWNrZWQsCiAgICAg
ICAgICAgICBtaW1lVHlwZSwKICAgICAgICAgICAgIHN0YXR1c0NvZGUsCiAgICAgICAgICAgICBz
dGF0dXNUZXh0LApAQCAtMTAwLDEyICsxMDIsMTUgQEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRl
UG9wb3ZlciA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIgZXh0ZW5kcyBXSS4K
ICAgICAgICAgcmV0dXJuIGRhdGE7CiAgICAgfQogCi0gICAgc2hvdyhsb2NhbFJlc291cmNlLCB0
YXJnZXRFbGVtZW50LCBwcmVmZXJyZWRFZGdlcykKKyAgICBzaG93KGxvY2FsUmVzb3VyY2VPdmVy
cmlkZSwgdGFyZ2V0RWxlbWVudCwgcHJlZmVycmVkRWRnZXMpCiAgICAgewogICAgICAgICB0aGlz
Ll90YXJnZXRFbGVtZW50ID0gdGFyZ2V0RWxlbWVudDsKICAgICAgICAgdGhpcy5fcHJlZmVycmVk
RWRnZXMgPSBwcmVmZXJyZWRFZGdlczsKIAorICAgICAgICBsZXQgbG9jYWxSZXNvdXJjZSA9IGxv
Y2FsUmVzb3VyY2VPdmVycmlkZSA/IGxvY2FsUmVzb3VyY2VPdmVycmlkZS5sb2NhbFJlc291cmNl
IDogbnVsbDsKKwogICAgICAgICBsZXQgdXJsID0gbG9jYWxSZXNvdXJjZSA/IGxvY2FsUmVzb3Vy
Y2UudXJsIDogIiI7CisgICAgICAgIGxldCBpc1JlZ2V4ID0gbG9jYWxSZXNvdXJjZU92ZXJyaWRl
ID8gbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmlzUmVnZXggOiBmYWxzZTsKICAgICAgICAgbGV0IG1p
bWVUeXBlID0gbG9jYWxSZXNvdXJjZSA/IGxvY2FsUmVzb3VyY2UubWltZVR5cGUgOiAiIjsKICAg
ICAgICAgbGV0IHN0YXR1c0NvZGUgPSBsb2NhbFJlc291cmNlID8gU3RyaW5nKGxvY2FsUmVzb3Vy
Y2Uuc3RhdHVzQ29kZSkgOiAiIjsKICAgICAgICAgbGV0IHN0YXR1c1RleHQgPSBsb2NhbFJlc291
cmNlID8gbG9jYWxSZXNvdXJjZS5zdGF0dXNUZXh0IDogIiI7CkBAIC0xNDQsOSArMTQ5LDI3IEBA
IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIgPSBjbGFzcyBMb2NhbFJlc291cmNlT3Zl
cnJpZGVQb3BvdmVyIGV4dGVuZHMgV0kuCiAgICAgICAgICAgICByZXR1cm4ge2NvZGVNaXJyb3Is
IGRhdGFFbGVtZW50fTsKICAgICAgICAgfTsKIAorICAgICAgICBsZXQgdXBkYXRlVVJMQ29kZU1p
cnJvck1vZGUgPSAoKSA9PiB7CisgICAgICAgICAgICB0aGlzLl91cmxDb2RlTWlycm9yLnNldE9w
dGlvbigibW9kZSIsIGlzUmVnZXggPyAidGV4dC94LXJlZ2V4IiA6ICJ0ZXh0L3gtbG9jYWwtb3Zl
cnJpZGUtdXJsIik7CisgICAgICAgIH07CisKICAgICAgICAgbGV0IHVybFJvdyA9IGNyZWF0ZVJv
dyhXSS5VSVN0cmluZygiVVJMIiksICJ1cmwiLCB1cmwpOwogICAgICAgICB0aGlzLl91cmxDb2Rl
TWlycm9yID0gdXJsUm93LmNvZGVNaXJyb3I7Ci0gICAgICAgIHRoaXMuX3VybENvZGVNaXJyb3Iu
c2V0T3B0aW9uKCJtb2RlIiwgInRleHQveC1sb2NhbC1vdmVycmlkZS11cmwiKTsKKyAgICAgICAg
dXBkYXRlVVJMQ29kZU1pcnJvck1vZGUoKTsKKworICAgICAgICBpZiAoSW5zcGVjdG9yQmFja2Vu
ZC5oYXNDb21tYW5kKCJOZXR3b3JrLmFkZEludGVyY2VwdGlvbiIsICJpc1JlZ2V4IikpIHsKKyAg
ICAgICAgICAgIGxldCBpc1JlZ2V4TGFiZWwgPSB1cmxSb3cuZGF0YUVsZW1lbnQuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKSk7CisKKyAgICAgICAgICAgIHRoaXMu
X2lzUmVnZXhDaGVja2JveCA9IGlzUmVnZXhMYWJlbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbnB1dCIpKTsKKyAgICAgICAgICAgIHRoaXMuX2lzUmVnZXhDaGVja2JveC50
eXBlID0gImNoZWNrYm94IjsKKyAgICAgICAgICAgIHRoaXMuX2lzUmVnZXhDaGVja2JveC5jbGFz
c05hbWUgPSAiaXMtcmVnZXgiOworICAgICAgICAgICAgdGhpcy5faXNSZWdleENoZWNrYm94LmNo
ZWNrZWQgPSBpc1JlZ2V4OworICAgICAgICAgICAgdGhpcy5faXNSZWdleENoZWNrYm94LmFkZEV2
ZW50TGlzdGVuZXIoImNoYW5nZSIsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIHVwZGF0
ZVVSTENvZGVNaXJyb3JNb2RlKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgaXNS
ZWdleExhYmVsLmFwcGVuZChXSS5VSVN0cmluZygiUmVndWxhciBFeHByZXNzaW9uIikpOworICAg
ICAgICB9CiAKICAgICAgICAgbGV0IG1pbWVUeXBlUm93ID0gY3JlYXRlUm93KFdJLlVJU3RyaW5n
KCJNSU1FIFR5cGUiKSwgIm1pbWUiLCBtaW1lVHlwZSk7CiAgICAgICAgIHRoaXMuX21pbWVUeXBl
Q29kZU1pcnJvciA9IG1pbWVUeXBlUm93LmNvZGVNaXJyb3I7CkBAIC0yNzgsNiArMzAxLDkgQEAg
V0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3ZlciA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVy
cmlkZVBvcG92ZXIgZXh0ZW5kcyBXSS4KIAogICAgICAgICAvLyBVcGRhdGUgbWltZVR5cGUgd2hl
biBVUkwgZ2V0cyBhIGZpbGUgZXh0ZW5zaW9uLgogICAgICAgICB0aGlzLl91cmxDb2RlTWlycm9y
Lm9uKCJjaGFuZ2UiLCAoY20pID0+IHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9pc1JlZ2V4Q2hl
Y2tib3ggJiYgdGhpcy5faXNSZWdleENoZWNrYm94LmNoZWNrZWQpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworCiAgICAgICAgICAgICBsZXQgZXh0ZW5zaW9uID0gV0kuZmlsZUV4dGVuc2lvbkZv
clVSTChjbS5nZXRWYWx1ZSgpKTsKICAgICAgICAgICAgIGlmICghZXh0ZW5zaW9uKQogICAgICAg
ICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50LmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJy
aWRlVHJlZUVsZW1lbnQuanMKaW5kZXggMmY5ZGJjNzY2ZWM3ZjkxODY3NDA1ZWNkMjNiMjkzMWRm
ZDdlZTU5NC4uZDliYjdlM2NiNDI5MGZlOTQzZmI0NzJkN2I3NGQ4N2M1YTAxMzQzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9jYWxSZXNv
dXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQuanMKQEAg
LTQwLDEwICs0MCwxOCBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudCA9IGNs
YXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50IGV4dAogCiAgICAgLy8gUHJvdGVj
dGVkCiAKKyAgICBnZXQgbWFpblRpdGxlVGV4dCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5pc1JlZ2V4KQorICAgICAgICAgICAgcmV0dXJuICIvIiArIHRoaXMu
cmVzb3VyY2UudXJsICsgIi8iOworICAgICAgICByZXR1cm4gc3VwZXIubWFpblRpdGxlVGV4dDsK
KyAgICB9CisKICAgICBvbmF0dGFjaCgpCiAgICAgewogICAgICAgICBzdXBlci5vbmF0dGFjaCgp
OwogCisgICAgICAgIHRoaXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZS5hZGRFdmVudExpc3RlbmVy
KFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5FdmVudC5Jc1JlZ2V4Q2hhbmdlZCwgdGhpcy5faGFu
ZGxlTG9jYWxSZXNvdXJjZU92ZXJyaWRlSXNSZWdleENoYW5nZWQsIHRoaXMpOwogICAgICAgICB0
aGlzLl9sb2NhbFJlc291cmNlT3ZlcnJpZGUuYWRkRXZlbnRMaXN0ZW5lcihXSS5Mb2NhbFJlc291
cmNlT3ZlcnJpZGUuRXZlbnQuRGlzYWJsZWRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVMb2NhbFJlc291
cmNlT3ZlcnJpZGVEaXNhYmxlZENoYW5nZWQsIHRoaXMpOwogCiAgICAgICAgIFdJLkZyYW1lLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuRnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlz
Ll9oYW5kbGVGcmFtZU1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcyk7CkBAIC01Myw2ICs2MSw3
IEBAIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50ID0gY2xhc3MgTG9jYWxSZXNv
dXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQgZXh0CiAKICAgICBvbmRldGFjaCgpCiAgICAgeworICAg
ICAgICB0aGlzLl9sb2NhbFJlc291cmNlT3ZlcnJpZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5M
b2NhbFJlc291cmNlT3ZlcnJpZGUuRXZlbnQuSXNSZWdleENoYW5nZWQsIHRoaXMuX2hhbmRsZUxv
Y2FsUmVzb3VyY2VPdmVycmlkZUlzUmVnZXhDaGFuZ2VkLCB0aGlzKTsKICAgICAgICAgdGhpcy5f
bG9jYWxSZXNvdXJjZU92ZXJyaWRlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlLkV2ZW50LkRpc2FibGVkQ2hhbmdlZCwgdGhpcy5faGFuZGxlTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlRGlzYWJsZWRDaGFuZ2VkLCB0aGlzKTsKIAogICAgICAgICBXSS5GcmFtZS5yZW1v
dmVFdmVudExpc3RlbmVyKFdJLkZyYW1lLkV2ZW50Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhp
cy5faGFuZGxlRnJhbWVNYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMpOwpAQCAtODYsNyArOTUs
NyBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudCA9IGNsYXNzIExvY2FsUmVz
b3VyY2VPdmVycmlkZVRyZWVFbGVtZW50IGV4dAogICAgIHsKICAgICAgICAgY29udGV4dE1lbnUu
YXBwZW5kSXRlbShXSS5VSVN0cmluZygiRWRpdCBMb2NhbCBPdmVycmlkZVx1MjAyNiIpLCAoZXZl
bnQpID0+IHsKICAgICAgICAgICAgIGxldCBwb3BvdmVyID0gbmV3IFdJLkxvY2FsUmVzb3VyY2VP
dmVycmlkZVBvcG92ZXIodGhpcyk7Ci0gICAgICAgICAgICBwb3BvdmVyLnNob3codGhpcy5fbG9j
YWxSZXNvdXJjZU92ZXJyaWRlLmxvY2FsUmVzb3VyY2UsIHRoaXMuc3RhdHVzLCBbV0kuUmVjdEVk
Z2UuTUFYX1gsIFdJLlJlY3RFZGdlLk1JTl9YXSk7CisgICAgICAgICAgICBwb3BvdmVyLnNob3co
dGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRlLCB0aGlzLnN0YXR1cywgW1dJLlJlY3RFZGdlLk1B
WF9YLCBXSS5SZWN0RWRnZS5NSU5fWF0pOwogICAgICAgICB9KTsKIAogICAgICAgICBsZXQgdG9n
Z2xlRW5hYmxlZFN0cmluZyA9IHRoaXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZS5kaXNhYmxlZCA/
IFdJLlVJU3RyaW5nKCJFbmFibGUgTG9jYWwgT3ZlcnJpZGUiKSA6IFdJLlVJU3RyaW5nKCJEaXNh
YmxlIExvY2FsIE92ZXJyaWRlIik7CkBAIC0xMTQsNyArMTIzLDcgQEAgV0kuTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlVHJlZUVsZW1lbnQgPSBjbGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxl
bWVudCBleHQKICAgICAgICAgaWYgKCFzZXJpYWxpemVkRGF0YSkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBsZXQge3VybCwgbWltZVR5cGUsIHN0YXR1c0NvZGUsIHN0YXR1c1RleHQs
IGhlYWRlcnN9ID0gc2VyaWFsaXplZERhdGE7CisgICAgICAgIGxldCB7dXJsLCBpc1JlZ2V4LCBt
aW1lVHlwZSwgc3RhdHVzQ29kZSwgc3RhdHVzVGV4dCwgaGVhZGVyc30gPSBzZXJpYWxpemVkRGF0
YTsKIAogICAgICAgICAvLyBEbyBub3QgY29uZmxpY3Qgd2l0aCBhbiBleGlzdGluZyBvdmVycmlk
ZSB1bmxlc3Mgd2UgYXJlIG1vZGlmeWluZyBvdXJzZWx2ZXMuCiAgICAgICAgIGxldCBleGlzdGlu
Z092ZXJyaWRlID0gV0kubmV0d29ya01hbmFnZXIubG9jYWxSZXNvdXJjZU92ZXJyaWRlRm9yVVJM
KHVybCk7CkBAIC0xMjgsNiArMTM3LDcgQEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVs
ZW1lbnQgPSBjbGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudCBleHQKICAgICAg
ICAgbGV0IHJldmlzaW9uID0gdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmxvY2FsUmVzb3Vy
Y2UuY3VycmVudFJldmlzaW9uOwogICAgICAgICBsZXQgbmV3TG9jYWxSZXNvdXJjZU92ZXJyaWRl
ID0gV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmNyZWF0ZSh7CiAgICAgICAgICAgICB1cmwsCisg
ICAgICAgICAgICBpc1JlZ2V4LAogICAgICAgICAgICAgbWltZVR5cGUsCiAgICAgICAgICAgICBz
dGF0dXNDb2RlLAogICAgICAgICAgICAgc3RhdHVzVGV4dCwKQEAgLTE1OCw2ICsxNjgsMTEgQEAg
V0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQgPSBjbGFzcyBMb2NhbFJlc291cmNl
T3ZlcnJpZGVUcmVlRWxlbWVudCBleHQKICAgICAgICAgfSk7CiAgICAgfQogCisgICAgX2hhbmRs
ZUxvY2FsUmVzb3VyY2VPdmVycmlkZUlzUmVnZXhDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAg
ICAgdGhpcy5fdXBkYXRlVGl0bGVzKCk7CisgICAgfQorCiAgICAgX2hhbmRsZUxvY2FsUmVzb3Vy
Y2VPdmVycmlkZURpc2FibGVkQ2hhbmdlZChldmVudCkKICAgICB7CiAgICAgICAgIHRoaXMuc3Rh
dHVzLmNoZWNrZWQgPSAhdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmRpc2FibGVkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNl
c05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwppbmRleCA5MzVi
MjBkYTQzMzQ1YWFmZDJiYjQ2Y2JjNTU3ODk1YTc4ZjZjYTc0Li4yYTNiOWRiNTc1OTUwMzJiNzA1
NDg0MTNiYTdjNzY2MDkwZTM4ZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdh
dGlvblNpZGViYXJQYW5lbC5qcwpAQCAtNjY1LDcgKzY2NSw3IEBAIFdJLlNvdXJjZXNOYXZpZ2F0
aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0
ZW5kcyBXCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBsZXQge3Vy
bCwgbWltZVR5cGUsIHN0YXR1c0NvZGUsIHN0YXR1c1RleHQsIGhlYWRlcnN9ID0gc2VyaWFsaXpl
ZERhdGE7CisgICAgICAgIGxldCB7dXJsLCBpc1JlZ2V4LCBtaW1lVHlwZSwgc3RhdHVzQ29kZSwg
c3RhdHVzVGV4dCwgaGVhZGVyc30gPSBzZXJpYWxpemVkRGF0YTsKIAogICAgICAgICAvLyBEbyBu
b3QgY29uZmxpY3Qgd2l0aCBhbiBleGlzdGluZyBvdmVycmlkZS4KICAgICAgICAgbGV0IGV4aXN0
aW5nT3ZlcnJpZGUgPSBXSS5uZXR3b3JrTWFuYWdlci5sb2NhbFJlc291cmNlT3ZlcnJpZGVGb3JV
UkwodXJsKTsKQEAgLTY3Niw2ICs2NzYsNyBAQCBXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQ
YW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuZHMgVwogCiAg
ICAgICAgIGxldCBsb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBXSS5Mb2NhbFJlc291cmNlT3ZlcnJp
ZGUuY3JlYXRlKHsKICAgICAgICAgICAgIHVybCwKKyAgICAgICAgICAgIGlzUmVnZXgsCiAgICAg
ICAgICAgICBtaW1lVHlwZSwKICAgICAgICAgICAgIHN0YXR1c0NvZGUsCiAgICAgICAgICAgICBz
dGF0dXNUZXh0LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGViZGE3NGEzNWY5ODViMzg1ZmY2Y2ZjMzRiMjg0M2EzNjczOWM5
NjAuLmY4MjYwOTVmZGI1ZjExOTJiYjhhMWE1ODY4MzQxZDc3OGU1MmI3Y2EgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxOS0xMC0zMSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTG9jYWwgUmVzb3VyY2UgT3ZlcnJpZGVzOiBhbGxv
dyBzdWJzdGl0dXRpb24gYmFzZWQgb24gYSB1cmwgcGF0dGVybgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMzc1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL2xvY2FsLXJlc291cmNlLW92ZXJyaWRlLWJhc2ljLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1iYXNpYy1leHBl
Y3RlZC50eHQ6CisKIDIwMTktMTAtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBdWRpb0NvbnRleHQgc2hvdWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRoZSBi
YWNrL2ZvcndhcmQgY2FjaGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUtYmFzaWMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJj
ZS1vdmVycmlkZS1iYXNpYy1leHBlY3RlZC50eHQKaW5kZXggZDg5NzhlOThiY2RlNjNjMGYxNTMw
Nzc5ZDJkYWRlNzNjYWMyZmNjYi4uYzU2OWQ1MThkMTk5YzhlZThiZmU4OTVjMDFhZDgyYTk0MDRi
OWU1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1iYXNpYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlk
ZS1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTg4LDYgKzg4LDE5IEBAIFJlc3BvbnNlIEhlYWRlcnM6
CiAgIFgtRXhwZWN0ZWQ6IFBBU1MKIENvbnRlbnQ6IFBBU1MKIAorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IExvY2FsUmVzb3VyY2VPdmVycmlkZS5VUkwuSXNSZWdleAorQ3JlYXRpbmcgTG9jYWwgUmVz
b3VyY2UgT3ZlcnJpZGUgZm9yOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2VzL292ZXJyaWRlLnR4dD90PSoKK1RyaWdnZXJpbmcgbG9hZC4uLgorUmVzb3Vy
Y2UgTG9hZGVkOgorVVJMOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2VzL292ZXJyaWRlLnR4dD90PTEyMzQ1Njc4OQorTUlNRSBUeXBlOiB0ZXh0L3BsYWlu
CitTdGF0dXM6IDIwMCBPSworUmVzcG9uc2UgU291cmNlOiBTeW1ib2woaW5zcGVjdG9yLW92ZXJy
aWRlKQorUmVzcG9uc2UgSGVhZGVyczoKKyAgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCisgIFgt
RXhwZWN0ZWQ6IFBBU1MKK0NvbnRlbnQ6IFBBU1MKKwogLS0gUnVubmluZyB0ZXN0IGNhc2U6IExv
Y2FsUmVzb3VyY2VPdmVycmlkZS40MDQKIENyZWF0aW5nIExvY2FsIFJlc291cmNlIE92ZXJyaWRl
IGZvcjogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9v
dmVycmlkZS50eHQKIFRyaWdnZXJpbmcgbG9hZC4uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1iYXNp
Yy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1y
ZXNvdXJjZS1vdmVycmlkZS1iYXNpYy5odG1sCmluZGV4IDcwOGU5OTdkYjU3MDdjZjdjODZmNDYx
Y2M1N2E1ZTNiZjZjYTk4MjUuLjcxNTk2OTk5M2ZmZjEzNjdiNmJhNjBkMWVkZGU3NzRmZTNhZmFk
ZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
bG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUtYmFzaWMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNlLW92ZXJyaWRlLWJhc2ljLmh0
bWwKQEAgLTE2NCw2ICsxNjQsMjIgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIH1dCiAgICAg
fSk7CiAKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJMb2NhbFJlc291cmNlT3Zl
cnJpZGUuVVJMLklzUmVnZXgiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3Qgb3ZlcnJpZGUg
Zm9yIGEgbG9hZCB3aXRoIGEgZnJhZ21lbnQuIiwKKyAgICAgICAgZXhwcmVzc2lvbjogYHRyaWdn
ZXJPdmVycmlkZUxvYWQoIj90PTEyMzQ1Njc4OSIpYCwKKyAgICAgICAgb3ZlcnJpZGVzOiBbewor
ICAgICAgICAgICAgdXJsOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlcy9vdmVycmlkZS50eHQ/dD0qIiwKKyAgICAgICAgICAgIG1pbWVUeXBlOiAidGV4
dC9wbGFpbiIsCisgICAgICAgICAgICBjb250ZW50OiAiUEFTUyIsCisgICAgICAgICAgICBiYXNl
NjRFbmNvZGVkOiBmYWxzZSwKKyAgICAgICAgICAgIHN0YXR1c0NvZGU6IDIwMCwKKyAgICAgICAg
ICAgIHN0YXR1c1RleHQ6ICJPSyIsCisgICAgICAgICAgICBoZWFkZXJzOiB7IlgtRXhwZWN0ZWQi
OiAiUEFTUyJ9LAorICAgICAgICAgICAgaXNSZWdleDogdHJ1ZSwKKyAgICAgICAgfV0KKyAgICB9
KTsKKwogICAgIGFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIkxvY2FsUmVzb3VyY2VPdmVy
cmlkZS40MDQiLAogICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgZm9yIGEgNDA0IG92ZXJyaWRl
LiIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383198</attachid>
            <date>2019-11-08 19:20:43 -0800</date>
            <delta_ts>2019-11-18 17:30:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202375-20191108192040.patch</filename>
            <type>text/plain</type>
            <size>47642</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGZiYzRiZTk1YjE1M2RmYTc4ZmVkMzMzNTBiZjg5
ODlmMGYzOThlMTIuLjMzNjEyMjkxMGEwYzEzY2RmZTZhNzAxMDM4OWZhOGE2MDI3OGFjMWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTExLTA4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBM
b2NhbCBSZXNvdXJjZSBPdmVycmlkZXM6IGFsbG93IHN1YnN0aXR1dGlvbiBiYXNlZCBvbiBhIHVy
bCBwYXR0ZXJuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDIzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPZnRlbiwgd2Vic2l0ZXMgd2lsbCBsb2FkIGNvbnRlbnQgd2l0aCBhIHRpbWVzdGFtcC1iYXNl
ZCBVUkwgcXVlcnkgcGFyYW1ldGVyIGZvcgorICAgICAgICBjYWNoZS1idXN0aW5nIG9yIGxvZ2dp
bmcgcHVycG9zZXMuIElmIGEgZGV2ZWxvcGVyIGlzIHRyeWluZyB0byBvdmVycmlkZSB0aGVzZSBy
ZXNvdXJjZXMgKG9yCisgICAgICAgIGlzIHRyeWluZyB0byBoYXZlIGFuIGV4aXN0aW5nIG92ZXJy
aWRlIGFsc28gbWF0Y2ggdGhlc2UgcmVzb3VyY2VzKSwgdGhleSdkIG5lZWQgdG8gZWRpdCB0aGUK
KyAgICAgICAgbG9jYWwgb3ZlcnJpZGUncyBVUkwgdG8gbWF0Y2ggaW4gYWRkaXRpb24gdG8gZWRp
dGluZyB0aGUgcmVzb3VyY2UgdGhhdCBsb2FkcyBpdCAoZS5nLiBjaGFuZ2UKKyAgICAgICAgdGhl
IDxzY3JpcHQ+IGluIGFuIEhUTUwgZmlsZSksIHdoaWNoIGNhbiBzb21ldGltZXMgYmUgdHJpY2t5
IG9mIHRoZSBjb250ZW50IGlzIGR5bmFtaWNhbGx5CisgICAgICAgIGxvYWRlZCAoZS5nLiBhbiBY
SFIgd2l0aCBhIG5vbi1oYXJkY29kZWQgVVJMKS4KKworICAgICAgICBBbGxvd2luZyBmb3IgbG9j
YWwgb3ZlcnJpZGVzIHRvIGJlIHNldCB1c2luZyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJu
IHdvdWxkIGhlbHAgcmVzb2x2ZQorICAgICAgICB0aGlzIGxpbWl0YXRpb24uCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uOgorICAgICAgICBBZGQgYGlzUmVnZXhg
IHBhcmFtZXRlciB0byBgTmV0d29yay5hZGRJbnRlcmNlcHRpb25gIGFuZCBgTmV0d29yay5yZW1v
dmVJbnRlcmNlcHRpb25gLgorCiAyMDE5LTExLTA3ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9A
YXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBmZXdlciB2aXJ0dWFsIHJlZ2lzdGVycyBpbiBXYXNt
IExMSW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMWJkNDNkYjYxZGIwZjhhZGU4ZDYzNDNlZTc0NDU2MWYyYmUy
MmVjMi4uZDFkZTVkZDNmNjBjZGY1OTAyNjhkYmRhZThmN2E3NGZkODA5NzJhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTExLTA4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFw
cGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBMb2NhbCBSZXNvdXJjZSBPdmVycmlk
ZXM6IGFsbG93IHN1YnN0aXR1dGlvbiBiYXNlZCBvbiBhIHVybCBwYXR0ZXJuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIzNzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNlLW92ZXJyaWRlLWlzUmVnZXguaHRtbAorCisg
ICAgICAgIE9mdGVuLCB3ZWJzaXRlcyB3aWxsIGxvYWQgY29udGVudCB3aXRoIGEgdGltZXN0YW1w
LWJhc2VkIFVSTCBxdWVyeSBwYXJhbWV0ZXIgZm9yCisgICAgICAgIGNhY2hlLWJ1c3Rpbmcgb3Ig
bG9nZ2luZyBwdXJwb3Nlcy4gSWYgYSBkZXZlbG9wZXIgaXMgdHJ5aW5nIHRvIG92ZXJyaWRlIHRo
ZXNlIHJlc291cmNlcyAob3IKKyAgICAgICAgaXMgdHJ5aW5nIHRvIGhhdmUgYW4gZXhpc3Rpbmcg
b3ZlcnJpZGUgYWxzbyBtYXRjaCB0aGVzZSByZXNvdXJjZXMpLCB0aGV5J2QgbmVlZCB0byBlZGl0
IHRoZQorICAgICAgICBsb2NhbCBvdmVycmlkZSdzIFVSTCB0byBtYXRjaCBpbiBhZGRpdGlvbiB0
byBlZGl0aW5nIHRoZSByZXNvdXJjZSB0aGF0IGxvYWRzIGl0IChlLmcuIGNoYW5nZQorICAgICAg
ICB0aGUgPHNjcmlwdD4gaW4gYW4gSFRNTCBmaWxlKSwgd2hpY2ggY2FuIHNvbWV0aW1lcyBiZSB0
cmlja3kgb2YgdGhlIGNvbnRlbnQgaXMgZHluYW1pY2FsbHkKKyAgICAgICAgbG9hZGVkIChlLmcu
IGFuIFhIUiB3aXRoIGEgbm9uLWhhcmRjb2RlZCBVUkwpLgorCisgICAgICAgIEFsbG93aW5nIGZv
ciBsb2NhbCBvdmVycmlkZXMgdG8gYmUgc2V0IHVzaW5nIGEgcmVndWxhciBleHByZXNzaW9uIHBh
dHRlcm4gd291bGQgaGVscCByZXNvbHZlCisgICAgICAgIHRoaXMgbGltaXRhdGlvbi4KKworICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OkludGVyY2VwdCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0FnZW50OjpJbnRlcmNlcHQ6Om9wZXJhdG9y
PT0gY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5l
dHdvcmtBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6
OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0FnZW50OjpzaG91
bGRJbnRlcmNlcHQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdvcmtB
Z2VudDo6YWRkSW50ZXJjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdv
cmtBZ2VudDo6cmVtb3ZlSW50ZXJjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ck5ldHdvcmtBZ2VudDo6d2lsbEludGVyY2VwdFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yTmV0d29ya0FnZW50OjpzaG91bGRJbnRlcmNlcHRSZXNwb25zZSk6CisKIDIwMTkt
MTEtMDcgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBEZWZhdWx0IE5hbWVwYWNlVVJJIG11c3QgYmUgZ290dGVuIGZyb20gdGhlIHRvcG1vc3Qg
cGFyZW50IGJlZm9yZSB0aGUgU1ZHIDxmb3JlaWduT2JqZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VM
b2cKaW5kZXggMTc3M2Y0OWM0ZDE5ZjQwODc3ZWMxYzJkZmVhZGFmY2NjYmFmZDI3MC4uMWNmM2Jl
ZjFlNDhjZmUwZjVlYWUwYjZiY2ZkOWJmMjI4YWExN2NkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTktMTEtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IExvY2FsIFJlc291cmNlIE92ZXJy
aWRlczogYWxsb3cgc3Vic3RpdHV0aW9uIGJhc2VkIG9uIGEgdXJsIHBhdHRlcm4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjM3NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9mdGVuLCB3ZWJzaXRlcyB3
aWxsIGxvYWQgY29udGVudCB3aXRoIGEgdGltZXN0YW1wLWJhc2VkIFVSTCBxdWVyeSBwYXJhbWV0
ZXIgZm9yCisgICAgICAgIGNhY2hlLWJ1c3Rpbmcgb3IgbG9nZ2luZyBwdXJwb3Nlcy4gSWYgYSBk
ZXZlbG9wZXIgaXMgdHJ5aW5nIHRvIG92ZXJyaWRlIHRoZXNlIHJlc291cmNlcyAob3IKKyAgICAg
ICAgaXMgdHJ5aW5nIHRvIGhhdmUgYW4gZXhpc3Rpbmcgb3ZlcnJpZGUgYWxzbyBtYXRjaCB0aGVz
ZSByZXNvdXJjZXMpLCB0aGV5J2QgbmVlZCB0byBlZGl0IHRoZQorICAgICAgICBsb2NhbCBvdmVy
cmlkZSdzIFVSTCB0byBtYXRjaCBpbiBhZGRpdGlvbiB0byBlZGl0aW5nIHRoZSByZXNvdXJjZSB0
aGF0IGxvYWRzIGl0IChlLmcuIGNoYW5nZQorICAgICAgICB0aGUgPHNjcmlwdD4gaW4gYW4gSFRN
TCBmaWxlKSwgd2hpY2ggY2FuIHNvbWV0aW1lcyBiZSB0cmlja3kgb2YgdGhlIGNvbnRlbnQgaXMg
ZHluYW1pY2FsbHkKKyAgICAgICAgbG9hZGVkIChlLmcuIGFuIFhIUiB3aXRoIGEgbm9uLWhhcmRj
b2RlZCBVUkwpLgorCisgICAgICAgIEFsbG93aW5nIGZvciBsb2NhbCBvdmVycmlkZXMgdG8gYmUg
c2V0IHVzaW5nIGEgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gd291bGQgaGVscCByZXNvbHZl
CisgICAgICAgIHRoaXMgbGltaXRhdGlvbi4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9k
ZWxzL0xvY2FsUmVzb3VyY2VPdmVycmlkZS5qczoKKyAgICAgICAgKFdJLkxvY2FsUmVzb3VyY2VP
dmVycmlkZSk6CisgICAgICAgIChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuY3JlYXRlKToKKyAg
ICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5mcm9tSlNPTik6CisgICAgICAgIChXSS5M
b2NhbFJlc291cmNlT3ZlcnJpZGUucHJvdG90eXBlLnRvSlNPTik6CisgICAgICAgIChXSS5Mb2Nh
bFJlc291cmNlT3ZlcnJpZGUucHJvdG90eXBlLmdldCBpc0Nhc2VTZW5zaXRpdmUpOiBBZGRlZC4K
KyAgICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5wcm90b3R5cGUuZ2V0IGlzUmVnZXgp
OiBBZGRlZC4KKyAgICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5wcm90b3R5cGUubWF0
Y2hlcyk6IEFkZGVkLgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLnByb3RvdHlw
ZS5zYXZlSWRlbnRpdHlUb0Nvb2tpZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIpOgor
ICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLmluaXRpYWxpemVUYXJnZXQpOgor
ICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLmdldCBsb2NhbFJlc291cmNlT3Zl
cnJpZGVzKToKKyAgICAgICAgKFdJLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZS5hZGRMb2NhbFJl
c291cmNlT3ZlcnJpZGUpOgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLnJl
bW92ZUxvY2FsUmVzb3VyY2VPdmVycmlkZSk6CisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5w
cm90b3R5cGUubG9jYWxSZXNvdXJjZU92ZXJyaWRlRm9yVVJMKToKKyAgICAgICAgKFdJLk5ldHdv
cmtNYW5hZ2VyLnByb3RvdHlwZS5yZXNwb25zZUludGVyY2VwdGVkKToKKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5qczoKKyAgICAg
ICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIpOgorICAgICAgICAoV0kuTG9jYWxS
ZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5wcm90b3R5cGUuZ2V0IHNlcmlhbGl6ZWREYXRhKToKKyAg
ICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIucHJvdG90eXBlLnNob3cpOgor
ICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5wcm90b3R5cGUuX2NyZWF0
ZUVkaXRvcik6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VP
dmVycmlkZVRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRl
VHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBtYWluVGl0bGVUZXh0KTogQWRkZWQuCisgICAgICAg
IChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gp
OgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQucHJvdG90eXBl
Lm9uZGV0YWNoKToKKyAgICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50
LnByb3RvdHlwZS5wb3B1bGF0ZUNvbnRleHRNZW51KToKKyAgICAgICAgKFdJLkxvY2FsUmVzb3Vy
Y2VPdmVycmlkZVRyZWVFbGVtZW50LnByb3RvdHlwZS53aWxsRGlzbWlzc1BvcG92ZXIpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwu
anM6CisgICAgICAgIChXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUu
X3dpbGxEaXNtaXNzTG9jYWxPdmVycmlkZVBvcG92ZXIpOgorCiAyMDE5LTExLTA3ICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSRUdS
RVNTSU9OKHIyNTE5NTgpOiBjb25zb2xlIHByb21wdCBpcyBhdXRvbWF0aWNhbGx5IGZvY3VzZWQg
d2hlbiBwYWdlIGlzIHJlbG9hZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCmluZGV4IDU0NmJiZmQzMmJlMDZhMjk3MDZi
MTdlMTA2MDFhNWI4ODA0ZWYzNzAuLjY1OGYxNGY4YWY2ODA3M2I5OWEwMWRkNzMzMjYyODIyM2I2
N2ZjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9j
b2wvTmV0d29yay5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJv
dG9jb2wvTmV0d29yay5qc29uCkBAIC0yMzksNiArMjM5LDggQEAKICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJBZGQgYW4gaW50ZXJjZXB0aW9uLiIsCiAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIg
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNhc2VTZW5zaXRpdmUiLCAidHlwZSI6ICJi
b29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIGZhbHNlLCBpZ25v
cmVzIGxldHRlciBjYXNpbmcgb2YgYHVybGAgcGFyYW1ldGVyLiIgfSwKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImlzUmVnZXgiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1
ZSwgImRlc2NyaXB0aW9uIjogIklmIHRydWUsIHRyZWF0cyBgdXJsYCBwYXJhbWV0ZXIgYXMgYSBy
ZWd1bGFyIGV4cHJlc3Npb24uIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhZ2Ui
LCAiJHJlZiI6ICJOZXR3b3JrU3RhZ2UiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiSWYgbm90IHByZXNlbnQgdGhpcyBhcHBsaWVzIHRvIGFsbCBuZXR3b3JrIHN0YWdlcy4iIH0K
ICAgICAgICAgICAgIF0KICAgICAgICAgfSwKQEAgLTI0Nyw2ICsyNDksOCBAQAogICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBhbiBpbnRlcmNlcHRpb24uIiwKICAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUi
OiAic3RyaW5nIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FzZVNlbnNpdGl2ZSIs
ICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYg
ZmFsc2UsIGlnbm9yZXMgbGV0dGVyIGNhc2luZyBvZiBgdXJsYCBwYXJhbWV0ZXIuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNSZWdleCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdHJ1ZSwgdHJlYXRzIGB1cmxgIHBhcmFt
ZXRlciBhcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzdGFnZSIsICIkcmVmIjogIk5ldHdvcmtTdGFnZSIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJJZiBub3QgcHJlc2VudCB0aGlzIGFwcGxpZXMgdG8gYWxsIG5ldHdvcmsg
c3RhZ2VzLiIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmlu
ZGV4IDlkYjM2ZGEwYTA3MTA1OGQ0OTU0MDQzZWUzMzZiODdiNTc2NTdhYjguLjhlZWQ0MWRhZGI2
OTEzYTIzODM2ZGVmYjA2MDc1MjRlYjBjNzczM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTgw
LDYgKzgwLDggQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5o
PgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtODcs
NiArODksNyBAQAogI2luY2x1ZGUgPHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50RW5jb2Rlci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdHlwZWRlZiBJ
bnNwZWN0b3I6Ok5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXI6OkxvYWRSZXNvdXJjZUNh
bGxiYWNrIExvYWRSZXNvdXJjZUNhbGxiYWNrOwogCkBAIC04MzAsNyArODMzLDcgQEAgdm9pZCBJ
bnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQogewogICAgIG1fZW5h
YmxlZCA9IGZhbHNlOwogICAgIG1faW50ZXJjZXB0aW9uRW5hYmxlZCA9IGZhbHNlOwotICAgIG1f
aW50ZXJjZXB0UmVzcG9uc2VVUkxzLmNsZWFyKCk7CisgICAgbV9pbnRlcmNlcHRzLmNsZWFyKCk7
CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEluc3BlY3Rvck5ldHdvcmtBZ2VudChudWxs
cHRyKTsKICAgICBtX3Jlc291cmNlc0RhdGEtPmNsZWFyKCk7CiAgICAgbV9leHRyYVJlcXVlc3RI
ZWFkZXJzLmNsZWFyKCk7CkBAIC04NDAsNiArODQzLDIzIEBAIHZvaWQgSW5zcGVjdG9yTmV0d29y
a0FnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKICAgICBzZXRSZXNvdXJjZUNhY2hpbmdEaXNh
YmxlZChmYWxzZSk7CiB9CiAKK2Jvb2wgSW5zcGVjdG9yTmV0d29ya0FnZW50OjpzaG91bGRJbnRl
cmNlcHQoVVJMIHVybCkKK3sKKyAgICB1cmwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7CisK
KyAgICBTdHJpbmcgdXJsU3RyaW5nID0gdXJsLnN0cmluZygpOworICAgIGlmICh1cmxTdHJpbmcu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb3IgKGF1dG8mIGludGVy
Y2VwdCA6IG1faW50ZXJjZXB0cykgeworICAgICAgICBhdXRvIHJlZ2V4ID0gQ29udGVudFNlYXJj
aFV0aWxpdGllczo6Y3JlYXRlU2VhcmNoUmVnZXgoaW50ZXJjZXB0LnVybCwgaW50ZXJjZXB0LmNh
c2VTZW5zaXRpdmUsIGludGVyY2VwdC5pc1JlZ2V4KTsKKyAgICAgICAgaWYgKHJlZ2V4Lm1hdGNo
KHVybFN0cmluZykgIT0gLTEpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50Ojpjb250aW51
ZVBlbmRpbmdSZXNwb25zZXMoKQogewogICAgIGZvciAoYXV0byYgcGVuZGluZ0ludGVyY2VwdFJl
c3BvbnNlIDogbV9wZW5kaW5nSW50ZXJjZXB0UmVzcG9uc2VzLnZhbHVlcygpKQpAQCAtMTAwOSw3
ICsxMDI5LDcgQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OnNldEludGVyY2VwdGlvbkVu
YWJsZWQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBib28KICAgICAgICAgY29udGludWVQZW5k
aW5nUmVzcG9uc2VzKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50OjphZGRJbnRl
cmNlcHRpb24oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgU3RyaW5nKiBuZXR3b3JrU3RhZ2VTdHJpbmcpCit2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2Vu
dDo6YWRkSW50ZXJjZXB0aW9uKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IGJvb2wqIG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogb3B0
aW9uYWxJc1JlZ2V4LCBjb25zdCBTdHJpbmcqIG5ldHdvcmtTdGFnZVN0cmluZykKIHsKICAgICBp
ZiAobmV0d29ya1N0YWdlU3RyaW5nKSB7CiAgICAgICAgIGF1dG8gbmV0d29ya1N0YWdlID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6SW5zcGVjdG9ySGVscGVyczo6cGFyc2VFbnVtVmFsdWVGcm9tU3Ry
aW5nPEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6Ok5ldHdvcmtTdGFnZT4oKm5ldHdvcmtT
dGFnZVN0cmluZyk7CkBAIC0xMDE5LDEzICsxMDM5LDIwIEBAIHZvaWQgSW5zcGVjdG9yTmV0d29y
a0FnZW50OjphZGRJbnRlcmNlcHRpb24oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBT
dHJpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBJbnRlcmNlcHQgaW50ZXJjZXB0OworICAgIGlu
dGVyY2VwdC51cmwgPSB1cmw7CisgICAgaWYgKG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSkKKyAgICAg
ICAgaW50ZXJjZXB0LmNhc2VTZW5zaXRpdmUgPSAqb3B0aW9uYWxDYXNlU2Vuc2l0aXZlOworICAg
IGlmIChvcHRpb25hbElzUmVnZXgpCisgICAgICAgIGludGVyY2VwdC5pc1JlZ2V4ID0gKm9wdGlv
bmFsSXNSZWdleDsKKwogICAgIC8vIEZJWE1FOiBTdXBwb3J0IGludGVyY2VwdGluZyByZXF1ZXN0
cy4KIAotICAgIGlmICghbV9pbnRlcmNlcHRSZXNwb25zZVVSTHMuYWRkKHVybCkuaXNOZXdFbnRy
eSkKLSAgICAgICAgZXJyb3JTdHJpbmcgPSAiSW50ZXJjZXB0IGZvciBnaXZlbiB1cmwgYWxyZWFk
eSBleGlzdHMiX3M7CisgICAgaWYgKCFtX2ludGVyY2VwdHMuYXBwZW5kSWZOb3RDb250YWlucyhp
bnRlcmNlcHQpKQorICAgICAgICBlcnJvclN0cmluZyA9ICJJbnRlcmNlcHQgZm9yIGdpdmVuIHVy
bCBhbmQgZ2l2ZW4gaXNSZWdleCBhbHJlYWR5IGV4aXN0cyJfczsKIH0KIAotdm9pZCBJbnNwZWN0
b3JOZXR3b3JrQWdlbnQ6OnJlbW92ZUludGVyY2VwdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJp
bmcsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcqIG5ldHdvcmtTdGFnZVN0cmluZykK
K3ZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50OjpyZW1vdmVJbnRlcmNlcHRpb24oRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCogb3B0aW9uYWxD
YXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBvcHRpb25hbElzUmVnZXgsIGNvbnN0IFN0cmluZyog
bmV0d29ya1N0YWdlU3RyaW5nKQogewogICAgIGlmIChuZXR3b3JrU3RhZ2VTdHJpbmcpIHsKICAg
ICAgICAgYXV0byBuZXR3b3JrU3RhZ2UgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpJbnNwZWN0b3JI
ZWxwZXJzOjpwYXJzZUVudW1WYWx1ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6TmV0
d29yazo6TmV0d29ya1N0YWdlPigqbmV0d29ya1N0YWdlU3RyaW5nKTsKQEAgLTEwMzUsMTAgKzEw
NjIsMTcgQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OnJlbW92ZUludGVyY2VwdGlvbihF
cnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFMKICAgICAgICAgfQogICAgIH0KIAorICAg
IEludGVyY2VwdCBpbnRlcmNlcHQ7CisgICAgaW50ZXJjZXB0LnVybCA9IHVybDsKKyAgICBpZiAo
b3B0aW9uYWxDYXNlU2Vuc2l0aXZlKQorICAgICAgICBpbnRlcmNlcHQuY2FzZVNlbnNpdGl2ZSA9
ICpvcHRpb25hbENhc2VTZW5zaXRpdmU7CisgICAgaWYgKG9wdGlvbmFsSXNSZWdleCkKKyAgICAg
ICAgaW50ZXJjZXB0LmlzUmVnZXggPSAqb3B0aW9uYWxJc1JlZ2V4OworCiAgICAgLy8gRklYTUU6
IFN1cHBvcnQgaW50ZXJjZXB0aW5nIHJlcXVlc3RzLgogCi0gICAgaWYgKCFtX2ludGVyY2VwdFJl
c3BvbnNlVVJMcy5yZW1vdmUodXJsKSkKLSAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBp
bnRlcmNlcHQgZm9yIGdpdmVuIHVybCJfczsKKyAgICBpZiAoIW1faW50ZXJjZXB0cy5yZW1vdmVB
bGwoaW50ZXJjZXB0KSkKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBpbnRlcmNlcHQg
Zm9yIGdpdmVuIHVybCBhbmQgZ2l2ZW4gaXNSZWdleCJfczsKIH0KIAogYm9vbCBJbnNwZWN0b3JO
ZXR3b3JrQWdlbnQ6OndpbGxJbnRlcmNlcHRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKQEAgLTEwNDYsMTQgKzEwODAsNyBAQCBib29sIEluc3BlY3Rvck5ldHdvcmtBZ2Vu
dDo6d2lsbEludGVyY2VwdFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQog
ICAgIGlmICghbV9pbnRlcmNlcHRpb25FbmFibGVkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgcmVxdWVzdFVSTC5yZW1v
dmVGcmFnbWVudElkZW50aWZpZXIoKTsKLQotICAgIFN0cmluZyB1cmwgPSByZXF1ZXN0VVJMLnN0
cmluZygpOwotICAgIGlmICh1cmwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICByZXR1cm4gbV9pbnRlcmNlcHRSZXNwb25zZVVSTHMuY29udGFpbnModXJsKTsKKyAgICBy
ZXR1cm4gc2hvdWxkSW50ZXJjZXB0KHJlcXVlc3QudXJsKCkpOwogfQogCiBib29sIEluc3BlY3Rv
ck5ldHdvcmtBZ2VudDo6c2hvdWxkSW50ZXJjZXB0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCkBAIC0xMDYxLDE0ICsxMDg4LDcgQEAgYm9vbCBJbnNwZWN0b3JOZXR3
b3JrQWdlbnQ6OnNob3VsZEludGVyY2VwdFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3AKICAgICBpZiAoIW1faW50ZXJjZXB0aW9uRW5hYmxlZCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgVVJMIHJlc3BvbnNlVVJMID0gcmVzcG9uc2UudXJsKCk7Ci0gICAgcmVzcG9u
c2VVUkwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7Ci0KLSAgICBTdHJpbmcgdXJsID0gcmVz
cG9uc2VVUkwuc3RyaW5nKCk7Ci0gICAgaWYgKHVybC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIHJldHVybiBtX2ludGVyY2VwdFJlc3BvbnNlVVJMcy5jb250YWlucyh1
cmwpOworICAgIHJldHVybiBzaG91bGRJbnRlcmNlcHQocmVzcG9uc2UudXJsKCkpOwogfQogCiB2
b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6aW50ZXJjZXB0UmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4pPiYmIGhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaAppbmRleCAzMWVmNWUzNDJkZmNmMjdkYjQyZDdm
MzI2MGNmNzFjYzM5NDEwODI1Li5hNjhmODQ1MjA3MzY5NzdjOGI5MjE2NjE2YzVhMTc4ZmJmNTI3
NWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ck5ldHdvcmtBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTmV0d29ya0FnZW50LmgKQEAgLTM3LDkgKzM3LDggQEAKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvUmVndWxhckV4cHJlc3Npb24uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KLSNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiBj
bGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CkBAIC04OSw4ICs4OCw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGdldFNlcmlhbGl6ZWRDZXJ0aWZpY2F0ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgcmVxdWVzdElkLCBTdHJpbmcqIHNlcmlhbGl6ZWRDZXJ0aWZpY2F0ZSkgZmluYWw7CiAgICAg
dm9pZCByZXNvbHZlV2ViU29ja2V0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiByZXF1ZXN0
SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29s
OjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JikgZmluYWw7CiAgICAgdm9pZCBzZXRJbnRlcmNlcHRp
b25FbmFibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBlbmFibGVkKSBmaW5hbDsKLSAgICB2b2lkIGFk
ZEludGVyY2VwdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJp
bmcqIG5ldHdvcmtTdGFnZVN0cmluZykgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVJbnRlcmNlcHRp
b24oRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nKiBuZXR3b3Jr
U3RhZ2VTdHJpbmcpIGZpbmFsOworICAgIHZvaWQgYWRkSW50ZXJjZXB0aW9uKEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IGJvb2wqIGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJv
b2wqIGlzUmVnZXgsIGNvbnN0IFN0cmluZyogbmV0d29ya1N0YWdlU3RyaW5nKSBmaW5hbDsKKyAg
ICB2b2lkIHJlbW92ZUludGVyY2VwdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBib29sKiBjYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBpc1JlZ2V4LCBjb25zdCBT
dHJpbmcqIG5ldHdvcmtTdGFnZVN0cmluZykgZmluYWw7CiAgICAgdm9pZCBpbnRlcmNlcHRDb250
aW51ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKSBmaW5hbDsKICAgICB2
b2lkIGludGVyY2VwdFdpdGhSZXNwb25zZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcmVx
dWVzdElkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGJvb2wgYmFzZTY0RW5jb2RlZCwgY29uc3Qg
U3RyaW5nKiBtaW1lVHlwZSwgY29uc3QgaW50KiBzdGF0dXMsIGNvbnN0IFN0cmluZyogc3RhdHVz
VGV4dCwgY29uc3QgSlNPTjo6T2JqZWN0KiBoZWFkZXJzKSBmaW5hbDsKIApAQCAtMTQxLDYgKzE0
MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgSW5zcGVjdG9yUGFnZUFnZW50OjpSZXNv
dXJjZVR5cGUpOwogCisgICAgYm9vbCBzaG91bGRJbnRlcmNlcHQoVVJMKTsKICAgICB2b2lkIGNv
bnRpbnVlUGVuZGluZ1Jlc3BvbnNlcygpOwogCiAgICAgV2ViU29ja2V0KiB3ZWJTb2NrZXRGb3JS
ZXF1ZXN0SWQoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpOwpAQCAtMjAwLDcgKzIwMCwxOSBAQCBw
cml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fZXh0cmFSZXF1ZXN0SGVhZGVy
czsKICAgICBIYXNoU2V0PHVuc2lnbmVkIGxvbmc+IG1faGlkZGVuUmVxdWVzdElkZW50aWZpZXJz
OwogCi0gICAgSGFzaFNldDxTdHJpbmc+IG1faW50ZXJjZXB0UmVzcG9uc2VVUkxzOworICAgIHN0
cnVjdCBJbnRlcmNlcHQgeworICAgICAgICBTdHJpbmcgdXJsOworICAgICAgICBib29sIGNhc2VT
ZW5zaXRpdmUgeyB0cnVlIH07CisgICAgICAgIGJvb2wgaXNSZWdleCB7IGZhbHNlIH07CisKKyAg
ICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBJbnRlcmNlcHQmIG90aGVyKSBjb25z
dAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdXJsID09IG90aGVyLnVybAorICAgICAg
ICAgICAgICAgICYmIGNhc2VTZW5zaXRpdmUgPT0gb3RoZXIuY2FzZVNlbnNpdGl2ZQorICAgICAg
ICAgICAgICAgICYmIGlzUmVnZXggPT0gb3RoZXIuaXNSZWdleDsKKyAgICAgICAgfQorICAgIH07
CisgICAgVmVjdG9yPEludGVyY2VwdD4gbV9pbnRlcmNlcHRzOwogICAgIEhhc2hNYXA8U3RyaW5n
LCBzdGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0ludGVyY2VwdFJlc3BvbnNlPj4gbV9wZW5kaW5nSW50
ZXJjZXB0UmVzcG9uc2VzOwogCiAgICAgLy8gRklYTUU6IEluc3BlY3Rvck5ldHdvcmtBZ2VudCBz
aG91bGQgbm90IGJlIGF3YXJlIG9mIHN0eWxlIHJlY2FsY3VsYXRpb24uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJp
bmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcwppbmRleCBmZDY4ZjdhYzA3YzViOGZiYTQ1ZWU3ZTliYjBjODAwZjA3
ODBhZjg0Li42NDU4MjQzYjcxYWY5NmI1NjNhZWI3MjQ5Nzk2NzUzNjkxZTMyNmEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6
ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2Vu
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTQ2LDYgKzQ2LDcgQEAgbG9jYWxpemVkU3Ry
aW5nc1siJWRweCJdID0gIiVkcHgiOwogbG9jYWxpemVkU3RyaW5nc1siJWRweFx1MDBCMiJdID0g
IiVkcHhcdTAwQjIiOwogbG9jYWxpemVkU3RyaW5nc1siJXMgKCVzKSJdID0gIiVzICglcykiOwog
bG9jYWxpemVkU3RyaW5nc1siJXMgKCVzLCAlcykiXSA9ICIlcyAoJXMsICVzKSI7Citsb2NhbGl6
ZWRTdHJpbmdzWyIlcyAoQ2FzZSBJbnNlbnNpdGl2ZSkiXSA9ICIlcyAoQ2FzZSBJbnNlbnNpdGl2
ZSkiOwogbG9jYWxpemVkU3RyaW5nc1siJXMgKGRlZmF1bHQpIl0gPSAiJXMgKGRlZmF1bHQpIjsK
IGxvY2FsaXplZFN0cmluZ3NbIiVzIChoaWRkZW4pIl0gPSAiJXMgKGhpZGRlbikiOwogbG9jYWxp
emVkU3RyaW5nc1siJXMgQ2FsbGJhY2siXSA9ICIlcyBDYWxsYmFjayI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9OZXR3b3JrTWFu
YWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L05ldHdvcmtNYW5hZ2VyLmpzCmluZGV4IDIyNjU2ZGRkYjQ0YWI1ZGY0NzdmMmY5ZWNiMjdlZDM5
NDQyOTJmODkuLmQxMDE4YWRlNGZmZDc2MmUwYjQzZGYwNmI2ZmJmMzAyOTAwMTI5ZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL05l
dHdvcmtNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL05ldHdvcmtNYW5hZ2VyLmpzCkBAIC00Myw3ICs0Myw3IEBAIFdJLk5ldHdv
cmtNYW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAg
ICAgdGhpcy5fc291cmNlTWFwVVJMTWFwID0gbmV3IE1hcDsKICAgICAgICAgdGhpcy5fZG93bmxv
YWRpbmdTb3VyY2VNYXBzID0gbmV3IFNldDsKIAotICAgICAgICB0aGlzLl9sb2NhbFJlc291cmNl
T3ZlcnJpZGVNYXAgPSBuZXcgTWFwOworICAgICAgICB0aGlzLl9sb2NhbFJlc291cmNlT3ZlcnJp
ZGVzID0gbmV3IFNldDsKICAgICAgICAgdGhpcy5faGFySW1wb3J0TG9jYWxSZXNvdXJjZU1hcCA9
IG5ldyBTZXQ7CiAKICAgICAgICAgdGhpcy5fcGVuZGluZ0xvY2FsUmVzb3VyY2VPdmVycmlkZVNh
dmVzID0gbnVsbDsKQEAgLTE1OCw5ICsxNTgsMTUgQEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFz
cyBOZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgICAgIGlmICh0
aGlzLl9pbnRlcmNlcHRpb25FbmFibGVkKQogICAgICAgICAgICAgICAgICAgICB0YXJnZXQuTmV0
d29ya0FnZW50LnNldEludGVyY2VwdGlvbkVuYWJsZWQodGhpcy5faW50ZXJjZXB0aW9uRW5hYmxl
ZCk7CiAKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBbdXJsLCBsb2NhbFJlc291cmNlT3ZlcnJp
ZGVdIG9mIHRoaXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZU1hcCkgewotICAgICAgICAgICAgICAg
ICAgICBpZiAoIWxvY2FsUmVzb3VyY2VPdmVycmlkZS5kaXNhYmxlZCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQuYWRkSW50ZXJjZXB0aW9uKGxvY2FsUmVzb3Vy
Y2VPdmVycmlkZS51cmwsIEluc3BlY3RvckJhY2tlbmQuRW51bS5OZXR3b3JrLk5ldHdvcmtTdGFn
ZS5SZXNwb25zZSk7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgbG9jYWxSZXNvdXJjZU92ZXJy
aWRlIG9mIHRoaXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZXMpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCFsb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlzYWJsZWQpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQuYWRkSW50ZXJjZXB0aW9uLmludm9rZSh7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJs
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VTZW5zaXRpdmU6IGxvY2FsUmVzb3Vy
Y2VPdmVycmlkZS5pc0Nhc2VTZW5zaXRpdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aXNSZWdleDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmlzUmVnZXgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmV0d29ya1N0YWdlOiBJbnNwZWN0b3JCYWNrZW5kLkVudW0uTmV0d29yay5O
ZXR3b3JrU3RhZ2UuUmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtMTg3LDcgKzE5Myw3IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29y
a01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGdldCBsb2NhbFJlc291cmNlT3ZlcnJp
ZGVzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX2xvY2FsUmVzb3Vy
Y2VPdmVycmlkZU1hcC52YWx1ZXMoKSk7CisgICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMu
X2xvY2FsUmVzb3VyY2VPdmVycmlkZXMpOwogICAgIH0KIAogICAgIGdldCBpbnRlcmNlcHRpb25F
bmFibGVkKCkKQEAgLTM1MCwxNyArMzU2LDI0IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xhc3Mg
TmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICB7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGxvY2FsUmVzb3VyY2VPdmVycmlkZSBpbnN0YW5jZW9mIFdJLkxvY2FsUmVzb3VyY2VP
dmVycmlkZSk7CiAKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2xvY2FsUmVzb3VyY2VP
dmVycmlkZU1hcC5nZXQobG9jYWxSZXNvdXJjZU92ZXJyaWRlLnVybCksICJBbHJlYWR5IGhhZCBh
biBleGlzdGluZyBsb2NhbCByZXNvdXJjZSBvdmVycmlkZS4iKTsKLSAgICAgICAgdGhpcy5fbG9j
YWxSZXNvdXJjZU92ZXJyaWRlTWFwLnNldChsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsLCBsb2Nh
bFJlc291cmNlT3ZlcnJpZGUpOworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fbG9jYWxS
ZXNvdXJjZU92ZXJyaWRlcy5oYXMobG9jYWxSZXNvdXJjZU92ZXJyaWRlKSwgIkFscmVhZHkgaGFk
IGFuIGV4aXN0aW5nIGxvY2FsIHJlc291cmNlIG92ZXJyaWRlLiIpOworICAgICAgICB0aGlzLl9s
b2NhbFJlc291cmNlT3ZlcnJpZGVzLmFkZChsb2NhbFJlc291cmNlT3ZlcnJpZGUpOwogCiAgICAg
ICAgIGlmICghdGhpcy5fcmVzdG9yaW5nTG9jYWxSZXNvdXJjZU92ZXJyaWRlcykKICAgICAgICAg
ICAgIFdJLm9iamVjdFN0b3Jlcy5sb2NhbFJlc291cmNlT3ZlcnJpZGVzLnB1dE9iamVjdChsb2Nh
bFJlc291cmNlT3ZlcnJpZGUpOwogCiAgICAgICAgIGlmICghbG9jYWxSZXNvdXJjZU92ZXJyaWRl
LmRpc2FibGVkKSB7CisgICAgICAgICAgICBsZXQgY29tbWFuZEFyZ3VtZW50cyA9IHsKKyAgICAg
ICAgICAgICAgICB1cmw6IGxvY2FsUmVzb3VyY2VPdmVycmlkZS51cmwsCisgICAgICAgICAgICAg
ICAgY2FzZVNlbnNpdGl2ZTogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmlzQ2FzZVNlbnNpdGl2ZSwK
KyAgICAgICAgICAgICAgICBpc1JlZ2V4OiBsb2NhbFJlc291cmNlT3ZlcnJpZGUuaXNSZWdleCwK
KyAgICAgICAgICAgICAgICBuZXR3b3JrU3RhZ2U6IEluc3BlY3RvckJhY2tlbmQuRW51bS5OZXR3
b3JrLk5ldHdvcmtTdGFnZS5SZXNwb25zZSwKKyAgICAgICAgICAgIH07CisKICAgICAgICAgICAg
IC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4wKTogTmV0d29yay5hZGRJbnRlcmNlcHRpb24gZGlk
IG5vdCBleGlzdC4KICAgICAgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKSB7
CiAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNDb21tYW5kKCJOZXR3b3JrLmFkZEludGVy
Y2VwdGlvbiIpKQotICAgICAgICAgICAgICAgICAgICB0YXJnZXQuTmV0d29ya0FnZW50LmFkZElu
dGVyY2VwdGlvbihsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsLCBJbnNwZWN0b3JCYWNrZW5kLkVu
dW0uTmV0d29yay5OZXR3b3JrU3RhZ2UuUmVzcG9uc2UpOworICAgICAgICAgICAgICAgICAgICB0
YXJnZXQuTmV0d29ya0FnZW50LmFkZEludGVyY2VwdGlvbi5pbnZva2UoY29tbWFuZEFyZ3VtZW50
cyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMzcxLDcgKzM4NCw3IEBAIFdJLk5l
dHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGxvY2FsUmVzb3VyY2VPdmVycmlkZSBpbnN0YW5j
ZW9mIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CiAKLSAgICAgICAgaWYgKCF0aGlzLl9sb2Nh
bFJlc291cmNlT3ZlcnJpZGVNYXAuZGVsZXRlKGxvY2FsUmVzb3VyY2VPdmVycmlkZS51cmwpKSB7
CisgICAgICAgIGlmICghdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRlcy5kZWxldGUobG9jYWxS
ZXNvdXJjZU92ZXJyaWRlKSkgewogICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJB
dHRlbXB0ZWQgdG8gcmVtb3ZlIGEgbG9jYWwgcmVzb3VyY2Ugb3ZlcnJpZGUgdGhhdCB3YXMgbm90
IGtub3duLiIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0zODMsMTAgKzM5
NiwxNyBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMg
V0kuT2JqZWN0CiAgICAgICAgICAgICBXSS5vYmplY3RTdG9yZXMubG9jYWxSZXNvdXJjZU92ZXJy
aWRlcy5kZWxldGVPYmplY3QobG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKIAogICAgICAgICBpZiAo
IWxvY2FsUmVzb3VyY2VPdmVycmlkZS5kaXNhYmxlZCkgeworICAgICAgICAgICAgbGV0IGNvbW1h
bmRBcmd1bWVudHMgPSB7CisgICAgICAgICAgICAgICAgdXJsOiBsb2NhbFJlc291cmNlT3ZlcnJp
ZGUudXJsLAorICAgICAgICAgICAgICAgIGNhc2VTZW5zaXRpdmU6IGxvY2FsUmVzb3VyY2VPdmVy
cmlkZS5pc0Nhc2VTZW5zaXRpdmUsCisgICAgICAgICAgICAgICAgaXNSZWdleDogbG9jYWxSZXNv
dXJjZU92ZXJyaWRlLmlzUmVnZXgsCisgICAgICAgICAgICAgICAgbmV0d29ya1N0YWdlOiBJbnNw
ZWN0b3JCYWNrZW5kLkVudW0uTmV0d29yay5OZXR3b3JrU3RhZ2UuUmVzcG9uc2UsCisgICAgICAg
ICAgICB9OworCiAgICAgICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMCk6IE5ldHdv
cmsucmVtb3ZlSW50ZXJjZXB0aW9uIGRpZCBub3QgZXhpc3QuCiAgICAgICAgICAgICBmb3IgKGxl
dCB0YXJnZXQgb2YgV0kudGFyZ2V0cykgewogICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuaGFz
Q29tbWFuZCgiTmV0d29yay5yZW1vdmVJbnRlcmNlcHRpb24iKSkKLSAgICAgICAgICAgICAgICAg
ICAgdGFyZ2V0Lk5ldHdvcmtBZ2VudC5yZW1vdmVJbnRlcmNlcHRpb24obG9jYWxSZXNvdXJjZU92
ZXJyaWRlLnVybCwgSW5zcGVjdG9yQmFja2VuZC5FbnVtLk5ldHdvcmsuTmV0d29ya1N0YWdlLlJl
c3BvbnNlKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Lk5ldHdvcmtBZ2VudC5yZW1vdmVJ
bnRlcmNlcHRpb24uaW52b2tlKGNvbW1hbmRBcmd1bWVudHMpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAKQEAgLTM5NSw3ICs0MTUsMTEgQEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBO
ZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgbG9jYWxSZXNvdXJjZU92ZXJy
aWRlRm9yVVJMKHVybCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbFJlc291cmNl
T3ZlcnJpZGVNYXAuZ2V0KHVybCk7CisgICAgICAgIGZvciAobGV0IGxvY2FsUmVzb3VyY2VPdmVy
cmlkZSBvZiB0aGlzLl9sb2NhbFJlc291cmNlT3ZlcnJpZGVzKSB7CisgICAgICAgICAgICBpZiAo
bG9jYWxSZXNvdXJjZU92ZXJyaWRlLm1hdGNoZXModXJsKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gbG9jYWxSZXNvdXJjZU92ZXJyaWRlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxs
OwogICAgIH0KIAogICAgIGNhbkJlT3ZlcnJpZGRlbihyZXNvdXJjZSkKQEAgLTkyMyw3ICs5NDcs
NyBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0ku
T2JqZWN0CiAgICAgcmVzcG9uc2VJbnRlcmNlcHRlZCh0YXJnZXQsIHJlcXVlc3RJZCwgcmVzcG9u
c2UpCiAgICAgewogICAgICAgICBsZXQgdXJsID0gV0kudXJsV2l0aG91dEZyYWdtZW50KHJlc3Bv
bnNlLnVybCk7Ci0gICAgICAgIGxldCBsb2NhbFJlc291cmNlT3ZlcnJpZGUgPSB0aGlzLl9sb2Nh
bFJlc291cmNlT3ZlcnJpZGVNYXAuZ2V0KHVybCk7CisgICAgICAgIGxldCBsb2NhbFJlc291cmNl
T3ZlcnJpZGUgPSB0aGlzLmxvY2FsUmVzb3VyY2VPdmVycmlkZUZvclVSTCh1cmwpOwogICAgICAg
ICBpZiAoIWxvY2FsUmVzb3VyY2VPdmVycmlkZSB8fCBsb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlz
YWJsZWQpIHsKICAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQuaW50ZXJjZXB0Q29udGlu
dWUocmVxdWVzdElkKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEzODcsMTMgKzE0MTEsMjAg
QEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9i
amVjdAogICAgICAgICBsZXQgbG9jYWxSZXNvdXJjZU92ZXJyaWRlID0gZXZlbnQudGFyZ2V0Owog
ICAgICAgICBXSS5vYmplY3RTdG9yZXMubG9jYWxSZXNvdXJjZU92ZXJyaWRlcy5wdXRPYmplY3Qo
bG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKIAorICAgICAgICBsZXQgY29tbWFuZEFyZ3VtZW50cyA9
IHsKKyAgICAgICAgICAgIHVybDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLnVybCwKKyAgICAgICAg
ICAgIGNhc2VTZW5zaXRpdmU6IGxvY2FsUmVzb3VyY2VPdmVycmlkZS5pc0Nhc2VTZW5zaXRpdmUs
CisgICAgICAgICAgICBpc1JlZ2V4OiBsb2NhbFJlc291cmNlT3ZlcnJpZGUuaXNSZWdleCwKKyAg
ICAgICAgICAgIG5ldHdvcmtTdGFnZTogSW5zcGVjdG9yQmFja2VuZC5FbnVtLk5ldHdvcmsuTmV0
d29ya1N0YWdlLlJlc3BvbnNlLAorICAgICAgICB9OworCiAgICAgICAgIC8vIENPTVBBVElCSUxJ
VFkgKGlPUyAxMy4wKTogTmV0d29yay5hZGRJbnRlcmNlcHRpb24gLyBOZXR3b3JrLnJlbW92ZUlu
dGVyY2VwdGlvbiBkaWQgbm90IGV4aXN0LgogICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0ku
dGFyZ2V0cykgewogICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNEb21haW4oIk5ldHdvcmsiKSkg
ewogICAgICAgICAgICAgICAgIGlmIChsb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlzYWJsZWQpCi0g
ICAgICAgICAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQucmVtb3ZlSW50ZXJjZXB0aW9u
KGxvY2FsUmVzb3VyY2VPdmVycmlkZS51cmwsIEluc3BlY3RvckJhY2tlbmQuRW51bS5OZXR3b3Jr
Lk5ldHdvcmtTdGFnZS5SZXNwb25zZSk7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5OZXR3
b3JrQWdlbnQucmVtb3ZlSW50ZXJjZXB0aW9uLmludm9rZShjb21tYW5kQXJndW1lbnRzKTsKICAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdl
bnQuYWRkSW50ZXJjZXB0aW9uKGxvY2FsUmVzb3VyY2VPdmVycmlkZS51cmwsIEluc3BlY3RvckJh
Y2tlbmQuRW51bS5OZXR3b3JrLk5ldHdvcmtTdGFnZS5SZXNwb25zZSk7CisgICAgICAgICAgICAg
ICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQuYWRkSW50ZXJjZXB0aW9uLmludm9rZShjb21tYW5k
QXJndW1lbnRzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Mb2NhbFJlc291cmNl
T3ZlcnJpZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
TG9jYWxSZXNvdXJjZU92ZXJyaWRlLmpzCmluZGV4IDUxZmI0NTNjMTdhMzlmODY0Mzk2Y2UyMmQ1
ZmUzZjA5NDJhMTQ2YmUuLmEwMzhkMmE5YTkzNjcxNzk4MmU3M2QxOTkzZGU1Yjg0NDQxZWVhYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9M
b2NhbFJlc291cmNlT3ZlcnJpZGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0xvY2FsUmVzb3VyY2VPdmVycmlkZS5qcwpAQCAtMjUsMjYgKzI1LDMw
IEBACiAKIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVy
cmlkZSBleHRlbmRzIFdJLk9iamVjdAogewotICAgIGNvbnN0cnVjdG9yKGxvY2FsUmVzb3VyY2Us
IHtkaXNhYmxlZH0gPSB7fSkKKyAgICBjb25zdHJ1Y3Rvcihsb2NhbFJlc291cmNlLCB7aXNDYXNl
U2Vuc2l0aXZlLCBpc1JlZ2V4LCBkaXNhYmxlZH0gPSB7fSkKICAgICB7CiAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGxvY2FsUmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5Mb2NhbFJlc291cmNlKTsKICAg
ICAgICAgY29uc29sZS5hc3NlcnQobG9jYWxSZXNvdXJjZS5pc0xvY2FsUmVzb3VyY2VPdmVycmlk
ZSk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGxvY2FsUmVzb3VyY2UudXJsKTsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQoIWRpc2FibGVkIHx8IHR5cGVvZiBkaXNhYmxlZCA9PT0gImJvb2xlYW4i
KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoaXNDYXNlU2Vuc2l0aXZlID09PSB1bmRlZmluZWQg
fHwgdHlwZW9mIGlzQ2FzZVNlbnNpdGl2ZSA9PT0gImJvb2xlYW4iKTsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoaXNSZWdleCA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBpc1JlZ2V4ID09PSAiYm9v
bGVhbiIpOworICAgICAgICBjb25zb2xlLmFzc2VydChkaXNhYmxlZCA9PT0gdW5kZWZpbmVkIHx8
IHR5cGVvZiBkaXNhYmxlZCA9PT0gImJvb2xlYW4iKTsKIAogICAgICAgICBzdXBlcigpOwogCiAg
ICAgICAgIHRoaXMuX2xvY2FsUmVzb3VyY2UgPSBsb2NhbFJlc291cmNlOwotICAgICAgICB0aGlz
Ll9kaXNhYmxlZCA9IGRpc2FibGVkIHx8IGZhbHNlOworICAgICAgICB0aGlzLl9pc0Nhc2VTZW5z
aXRpdmUgPSBpc0Nhc2VTZW5zaXRpdmUgIT09IHVuZGVmaW5lZCA/IGlzQ2FzZVNlbnNpdGl2ZSA6
IHRydWU7CisgICAgICAgIHRoaXMuX2lzUmVnZXggPSBpc1JlZ2V4ICE9PSB1bmRlZmluZWQgPyBp
c1JlZ2V4IDogZmFsc2U7CisgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQgIT09IHVu
ZGVmaW5lZCA/IGRpc2FibGVkIDogZmFsc2U7CiAgICAgfQogCiAgICAgLy8gU3RhdGljCiAKLSAg
ICBzdGF0aWMgY3JlYXRlKHt1cmwsIG1pbWVUeXBlLCBjb250ZW50LCBiYXNlNjRFbmNvZGVkLCBz
dGF0dXNDb2RlLCBzdGF0dXNUZXh0LCBoZWFkZXJzLCBkaXNhYmxlZH0pCisgICAgc3RhdGljIGNy
ZWF0ZSh7dXJsLCBtaW1lVHlwZSwgY29udGVudCwgYmFzZTY0RW5jb2RlZCwgc3RhdHVzQ29kZSwg
c3RhdHVzVGV4dCwgaGVhZGVycywgaXNDYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBkaXNhYmxlZH0p
CiAgICAgewogICAgICAgICBsZXQgbG9jYWxSZXNvdXJjZSA9IG5ldyBXSS5Mb2NhbFJlc291cmNl
KHsKICAgICAgICAgICAgIHJlcXVlc3Q6IHsKLSAgICAgICAgICAgICAgICB1cmw6IFdJLnVybFdp
dGhvdXRGcmFnbWVudCh1cmwpLAorICAgICAgICAgICAgICAgIHVybDogaXNSZWdleCA/IHVybCA6
IFdJLnVybFdpdGhvdXRGcmFnbWVudCh1cmwpLAogICAgICAgICAgICAgfSwKICAgICAgICAgICAg
IHJlc3BvbnNlOiB7CiAgICAgICAgICAgICAgICAgaGVhZGVycywKQEAgLTU3LDIxICs2MSwyMyBA
QCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBjbGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGUg
ZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIGlzTG9jYWxSZXNvdXJjZU92ZXJyaWRlOiB0
cnVlLAogICAgICAgICB9KTsKIAotICAgICAgICByZXR1cm4gbmV3IFdJLkxvY2FsUmVzb3VyY2VP
dmVycmlkZShsb2NhbFJlc291cmNlLCB7ZGlzYWJsZWR9KTsKKyAgICAgICAgcmV0dXJuIG5ldyBX
SS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUobG9jYWxSZXNvdXJjZSwge2lzQ2FzZVNlbnNpdGl2ZSwg
aXNSZWdleCwgZGlzYWJsZWR9KTsKICAgICB9CiAKICAgICAvLyBJbXBvcnQgLyBFeHBvcnQKIAog
ICAgIHN0YXRpYyBmcm9tSlNPTihqc29uKQogICAgIHsKLSAgICAgICAgbGV0IHtsb2NhbFJlc291
cmNlLCBkaXNhYmxlZH0gPSBqc29uOwotICAgICAgICByZXR1cm4gbmV3IFdJLkxvY2FsUmVzb3Vy
Y2VPdmVycmlkZShXSS5Mb2NhbFJlc291cmNlLmZyb21KU09OKGxvY2FsUmVzb3VyY2UpLCB7ZGlz
YWJsZWR9KTsKKyAgICAgICAgbGV0IHtsb2NhbFJlc291cmNlLCBpc0Nhc2VTZW5zaXRpdmUsIGlz
UmVnZXgsIGRpc2FibGVkfSA9IGpzb247CisgICAgICAgIHJldHVybiBuZXcgV0kuTG9jYWxSZXNv
dXJjZU92ZXJyaWRlKFdJLkxvY2FsUmVzb3VyY2UuZnJvbUpTT04obG9jYWxSZXNvdXJjZSksIHtp
c0Nhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGRpc2FibGVkfSk7CiAgICAgfQogCiAgICAgdG9KU09O
KGtleSkKICAgICB7CiAgICAgICAgIGxldCBqc29uID0gewogICAgICAgICAgICAgbG9jYWxSZXNv
dXJjZTogdGhpcy5fbG9jYWxSZXNvdXJjZS50b0pTT04oa2V5KSwKKyAgICAgICAgICAgIGlzQ2Fz
ZVNlbnNpdGl2ZTogdGhpcy5faXNDYXNlU2Vuc2l0aXZlLAorICAgICAgICAgICAgaXNSZWdleDog
dGhpcy5faXNSZWdleCwKICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLl9kaXNhYmxlZCwKICAg
ICAgICAgfTsKIApAQCAtODUsNiArOTEsOCBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBj
bGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGUgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGdldCB1
cmwoKSB7IHJldHVybiB0aGlzLl9sb2NhbFJlc291cmNlLnVybDsgfQogICAgIGdldCBsb2NhbFJl
c291cmNlKCkgeyByZXR1cm4gdGhpcy5fbG9jYWxSZXNvdXJjZTsgfQorICAgIGdldCBpc0Nhc2VT
ZW5zaXRpdmUoKSB7IHJldHVybiB0aGlzLl9pc0Nhc2VTZW5zaXRpdmU7IH0KKyAgICBnZXQgaXNS
ZWdleCgpIHsgcmV0dXJuIHRoaXMuX2lzUmVnZXg7IH0KIAogICAgIGdldCBkaXNhYmxlZCgpCiAg
ICAgewpAQCAtMTAxLDExICsxMDksMjYgQEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlID0gY2xh
c3MgTG9jYWxSZXNvdXJjZU92ZXJyaWRlIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5FdmVudC5E
aXNhYmxlZENoYW5nZWQpOwogICAgIH0KIAorICAgIG1hdGNoZXModXJsKQorICAgIHsKKyAgICAg
ICAgaWYgKHRoaXMuX2lzUmVnZXgpIHsKKyAgICAgICAgICAgIGxldCByZWdleCA9IG5ldyBSZWdF
eHAodGhpcy51cmwsICF0aGlzLl9pc0Nhc2VTZW5zaXRpdmUgPyAiaSIgOiAiIik7CisgICAgICAg
ICAgICByZXR1cm4gcmVnZXgudGVzdCh1cmwpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCF0
aGlzLl9pc0Nhc2VTZW5zaXRpdmUpCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHVybCkudG9M
b3dlckNhc2UoKSA9PT0gdGhpcy51cmwudG9Mb3dlckNhc2UoKTsKKworICAgICAgICByZXR1cm4g
dXJsID09PSB0aGlzLnVybDsKKyAgICB9CisKICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIHNhdmVJ
ZGVudGl0eVRvQ29va2llKGNvb2tpZSkKICAgICB7CiAgICAgICAgIGNvb2tpZVsibG9jYWwtcmVz
b3VyY2Utb3ZlcnJpZGUtdXJsIl0gPSB0aGlzLl9sb2NhbFJlc291cmNlLnVybDsKKyAgICAgICAg
Y29va2llWyJsb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1pcy1jYXNlLXNlbnNpdGl2ZSJdID0gdGhp
cy5faXNDYXNlU2Vuc2l0aXZlOworICAgICAgICBjb29raWVbImxvY2FsLXJlc291cmNlLW92ZXJy
aWRlLWlzLXJlZ2V4Il0gPSB0aGlzLl9pc1JlZ2V4OwogICAgICAgICBjb29raWVbImxvY2FsLXJl
c291cmNlLW92ZXJyaWRlLWRpc2FibGVkIl0gPSB0aGlzLl9kaXNhYmxlZDsKICAgICB9CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9j
YWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyLmNzcwppbmRleCBm
ZWIzMDAxMTQ2MjYxMWQ0MGJhM2YzMWUxMzcwYThkY2U2NmFiOWJjLi4wNTRiZDBmMzc4ZWZjMTg1
MjY3YjQwMDA4MjVmZDZkNzllYjA4M2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyLmNzcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291
cmNlT3ZlcnJpZGVQb3BvdmVyLmNzcwpAQCAtNjksNiArNjksMTQgQEAKICAgICB3aWR0aDogMzI0
cHg7CiB9CiAKKy5wb3BvdmVyIC5sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1wb3BvdmVyLWNvbnRl
bnQgbGFiZWw6bWF0Y2hlcyguaXMtY2FzZS1zZW5zaXRpdmUsIC5pcy1yZWdleCkgeworICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKK30KKworLnBvcG92ZXIgLmxvY2FsLXJlc291cmNlLW92ZXJy
aWRlLXBvcG92ZXItY29udGVudCBsYWJlbC5pcy1jYXNlLXNlbnNpdGl2ZSB7CisgICAgLXdlYmtp
dC1tYXJnaW4tZW5kOiA4cHg7Cit9CisKIC5wb3BvdmVyIC5sb2NhbC1yZXNvdXJjZS1vdmVycmlk
ZS1wb3BvdmVyLWNvbnRlbnQgLmVkaXRvci5taW1lIHsKICAgICB3aWR0aDogMjQwcHg7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2Nh
bFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5qcwppbmRleCBjNjEw
MWU0ZDAxYWI1YWVmNGU1NjAzYjI4MjhlNzFlYzdlYzkyNjYyLi42ZjBkOGM3NWNkYmUxM2YzZWRl
NzQxODA0MzQ5ZGFkZGE2N2NlNDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VP
dmVycmlkZVBvcG92ZXIuanMKQEAgLTMwLDYgKzMwLDggQEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJy
aWRlUG9wb3ZlciA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIgZXh0ZW5kcyBX
SS4KICAgICAgICAgc3VwZXIoZGVsZWdhdGUpOwogCiAgICAgICAgIHRoaXMuX3VybENvZGVNaXJy
b3IgPSBudWxsOworICAgICAgICB0aGlzLl9pc0Nhc2VTZW5zaXRpdmVDaGVja2JveCA9IG51bGw7
CisgICAgICAgIHRoaXMuX2lzUmVnZXhDaGVja2JveCA9IG51bGw7CiAgICAgICAgIHRoaXMuX21p
bWVUeXBlQ29kZU1pcnJvciA9IG51bGw7CiAgICAgICAgIHRoaXMuX3N0YXR1c0NvZGVDb2RlTWly
cm9yID0gbnVsbDsKICAgICAgICAgdGhpcy5fc3RhdHVzVGV4dENvZGVNaXJyb3IgPSBudWxsOwpA
QCAtNTEsOSArNTMsMTIgQEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3ZlciA9IGNsYXNz
IExvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIgZXh0ZW5kcyBXSS4KICAgICAgICAgaWYgKCF1
cmwpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKIAotICAgICAgICBjb25zdCBzY2hlbWVzID0g
WyJodHRwOiIsICJodHRwczoiLCAiZmlsZToiXTsKLSAgICAgICAgaWYgKCFzY2hlbWVzLnNvbWUo
KHNjaGVtZSkgPT4gdXJsLnN0YXJ0c1dpdGgoc2NoZW1lKSkpCi0gICAgICAgICAgICByZXR1cm4g
bnVsbDsKKyAgICAgICAgbGV0IGlzUmVnZXggPSB0aGlzLl9pc1JlZ2V4Q2hlY2tib3ggJiYgdGhp
cy5faXNSZWdleENoZWNrYm94LmNoZWNrZWQ7CisgICAgICAgIGlmICghaXNSZWdleCkgeworICAg
ICAgICAgICAgY29uc3Qgc2NoZW1lcyA9IFsiaHR0cDoiLCAiaHR0cHM6IiwgImZpbGU6Il07Cisg
ICAgICAgICAgICBpZiAoIXNjaGVtZXMuc29tZSgoc2NoZW1lKSA9PiB1cmwudG9Mb3dlckNhc2Uo
KS5zdGFydHNXaXRoKHNjaGVtZSkpKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAg
ICAgICB9CiAKICAgICAgICAgLy8gTk9URTogV2UgY2FuIGFsbG93IGFuIGVtcHR5IG1pbWVUeXBl
IC8gc3RhdHVzQ29kZSAvIHN0YXR1c1RleHQgdG8gcGFzcwogICAgICAgICAvLyBuZXR3b3JrIHZh
bHVlcyB0aHJvdWdoLCBidXQgbGV0cyByZXF1aXJlIHRoZW0gZm9yIG92ZXJyaWRlcyBzbyB0aGF0
CkBAIC05MSw2ICs5NiwxMiBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyID0gY2xh
c3MgTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3ZlciBleHRlbmRzIFdJLgogICAgICAgICAgICAg
aGVhZGVycywKICAgICAgICAgfTsKIAorICAgICAgICBpZiAodGhpcy5faXNDYXNlU2Vuc2l0aXZl
Q2hlY2tib3gpCisgICAgICAgICAgICBkYXRhLmlzQ2FzZVNlbnNpdGl2ZSA9IHRoaXMuX2lzQ2Fz
ZVNlbnNpdGl2ZUNoZWNrYm94LmNoZWNrZWQ7CisKKyAgICAgICAgaWYgKHRoaXMuX2lzUmVnZXhD
aGVja2JveCkKKyAgICAgICAgICAgIGRhdGEuaXNSZWdleCA9IHRoaXMuX2lzUmVnZXhDaGVja2Jv
eC5jaGVja2VkOworCiAgICAgICAgIC8vIE5vIGNoYW5nZS4KICAgICAgICAgbGV0IG9sZFNlcmlh
bGl6ZWQgPSBKU09OLnN0cmluZ2lmeSh0aGlzLl9zZXJpYWxpemVkRGF0YVdoZW5TaG93bik7CiAg
ICAgICAgIGxldCBuZXdTZXJpYWxpemVkID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7CkBAIC0xMDAs
MTEgKzExMSwxMyBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyID0gY2xhc3MgTG9j
YWxSZXNvdXJjZU92ZXJyaWRlUG9wb3ZlciBleHRlbmRzIFdJLgogICAgICAgICByZXR1cm4gZGF0
YTsKICAgICB9CiAKLSAgICBzaG93KGxvY2FsUmVzb3VyY2UsIHRhcmdldEVsZW1lbnQsIHByZWZl
cnJlZEVkZ2VzKQorICAgIHNob3cobG9jYWxSZXNvdXJjZU92ZXJyaWRlLCB0YXJnZXRFbGVtZW50
LCBwcmVmZXJyZWRFZGdlcykKICAgICB7CiAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQgPSB0
YXJnZXRFbGVtZW50OwogICAgICAgICB0aGlzLl9wcmVmZXJyZWRFZGdlcyA9IHByZWZlcnJlZEVk
Z2VzOwogCisgICAgICAgIGxldCBsb2NhbFJlc291cmNlID0gbG9jYWxSZXNvdXJjZU92ZXJyaWRl
ID8gbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmxvY2FsUmVzb3VyY2UgOiBudWxsOworCiAgICAgICAg
IGxldCB1cmwgPSBsb2NhbFJlc291cmNlID8gbG9jYWxSZXNvdXJjZS51cmwgOiAiIjsKICAgICAg
ICAgbGV0IG1pbWVUeXBlID0gbG9jYWxSZXNvdXJjZSA/IGxvY2FsUmVzb3VyY2UubWltZVR5cGUg
OiAiIjsKICAgICAgICAgbGV0IHN0YXR1c0NvZGUgPSBsb2NhbFJlc291cmNlID8gU3RyaW5nKGxv
Y2FsUmVzb3VyY2Uuc3RhdHVzQ29kZSkgOiAiIjsKQEAgLTEyNSw3ICsxMzgsNyBAQCBXSS5Mb2Nh
bFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyID0gY2xhc3MgTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9w
b3ZlciBleHRlbmRzIFdJLgogCiAgICAgICAgIGxldCB0YWJsZSA9IHBvcG92ZXJDb250ZW50RWxl
bWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpKTsKIAotICAg
ICAgICBsZXQgY3JlYXRlUm93ID0gKGxhYmVsLCBpZCwgdGV4dCkgPT4geworICAgICAgICBsZXQg
Y3JlYXRlUm93ID0gKGxhYmVsLCBpZCwgdGV4dCwgcGxhY2Vob2xkZXIpID0+IHsKICAgICAgICAg
ICAgIGxldCByb3cgPSB0YWJsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0
ciIpKTsKICAgICAgICAgICAgIGxldCBoZWFkZXJFbGVtZW50ID0gcm93LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInRoIikpOwogICAgICAgICAgICAgbGV0IGRhdGFFbGVtZW50
ID0gcm93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIikpOwpAQCAtMTM2
LDcgKzE0OSw3IEBAIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIgPSBjbGFzcyBMb2Nh
bFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyIGV4dGVuZHMgV0kuCiAgICAgICAgICAgICBsZXQgZWRp
dG9yRWxlbWVudCA9IGRhdGFFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpKTsKICAgICAgICAgICAgIGVkaXRvckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZWRp
dG9yIiwgaWQpOwogCi0gICAgICAgICAgICBsZXQgY29kZU1pcnJvciA9IHRoaXMuX2NyZWF0ZUVk
aXRvcihlZGl0b3JFbGVtZW50LCB0ZXh0KTsKKyAgICAgICAgICAgIGxldCBjb2RlTWlycm9yID0g
dGhpcy5fY3JlYXRlRWRpdG9yKGVkaXRvckVsZW1lbnQsIHRleHQsIHBsYWNlaG9sZGVyKTsKICAg
ICAgICAgICAgIGxldCBpbnB1dEZpZWxkID0gY29kZU1pcnJvci5nZXRJbnB1dEZpZWxkKCk7CiAg
ICAgICAgICAgICBpbnB1dEZpZWxkLmlkID0gYGxvY2FsLXJlc291cmNlLW92ZXJyaWRlLXBvcG92
ZXItJHtpZH0taW5wdXQtZmllbGRgOwogICAgICAgICAgICAgbGFiZWxFbGVtZW50LnNldEF0dHJp
YnV0ZSgiZm9yIiwgaW5wdXRGaWVsZC5pZCk7CkBAIC0xNDQsMTkgKzE1Nyw1NiBAQCBXSS5Mb2Nh
bFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyID0gY2xhc3MgTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9w
b3ZlciBleHRlbmRzIFdJLgogICAgICAgICAgICAgcmV0dXJuIHtjb2RlTWlycm9yLCBkYXRhRWxl
bWVudH07CiAgICAgICAgIH07CiAKLSAgICAgICAgbGV0IHVybFJvdyA9IGNyZWF0ZVJvdyhXSS5V
SVN0cmluZygiVVJMIiksICJ1cmwiLCB1cmwpOworICAgICAgICBsZXQgdXJsUm93ID0gY3JlYXRl
Um93KFdJLlVJU3RyaW5nKCJVUkwiKSwgInVybCIsIHVybCwgdXJsIHx8ICJodHRwOi8vZXhhbXBs
ZS5jb20vaW5kZXguaHRtbCIpOwogICAgICAgICB0aGlzLl91cmxDb2RlTWlycm9yID0gdXJsUm93
LmNvZGVNaXJyb3I7Ci0gICAgICAgIHRoaXMuX3VybENvZGVNaXJyb3Iuc2V0T3B0aW9uKCJtb2Rl
IiwgInRleHQveC1sb2NhbC1vdmVycmlkZS11cmwiKTsKIAotICAgICAgICBsZXQgbWltZVR5cGVS
b3cgPSBjcmVhdGVSb3coV0kuVUlTdHJpbmcoIk1JTUUgVHlwZSIpLCAibWltZSIsIG1pbWVUeXBl
KTsKKyAgICAgICAgbGV0IHVwZGF0ZVVSTENvZGVNaXJyb3JNb2RlID0gKCkgPT4geworICAgICAg
ICAgICAgbGV0IGlzUmVnZXggPSB0aGlzLl9pc1JlZ2V4Q2hlY2tib3ggJiYgdGhpcy5faXNSZWdl
eENoZWNrYm94LmNoZWNrZWQ7CisKKyAgICAgICAgICAgIHRoaXMuX3VybENvZGVNaXJyb3Iuc2V0
T3B0aW9uKCJtb2RlIiwgaXNSZWdleCA/ICJ0ZXh0L3gtcmVnZXgiIDogInRleHQveC1sb2NhbC1v
dmVycmlkZS11cmwiKTsKKworICAgICAgICAgICAgaWYgKCFpc1JlZ2V4KSB7CisgICAgICAgICAg
ICAgICAgbGV0IHVybCA9IHRoaXMuX3VybENvZGVNaXJyb3IuZ2V0VmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICBjb25zdCBzY2hlbWVzID0gWyJodHRwOiIsICJodHRwczoiLCAiZmlsZToiXTsKKyAg
ICAgICAgICAgICAgICBpZiAoIXNjaGVtZXMuc29tZSgoc2NoZW1lKSA9PiB1cmwudG9Mb3dlckNh
c2UoKS5zdGFydHNXaXRoKHNjaGVtZSkpKQorICAgICAgICAgICAgICAgICAgICB0aGlzLl91cmxD
b2RlTWlycm9yLnNldFZhbHVlKCJodHRwOi8vIiArIHVybCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH07CisKKyAgICAgICAgaWYgKEluc3BlY3RvckJhY2tlbmQuaGFzQ29tbWFuZCgiTmV0d29y
ay5hZGRJbnRlcmNlcHRpb24iLCAiY2FzZVNlbnNpdGl2ZSIpKSB7CisgICAgICAgICAgICBsZXQg
aXNDYXNlU2Vuc2l0aXZlTGFiZWwgPSB1cmxSb3cuZGF0YUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKSk7CisgICAgICAgICAgICBpc0Nhc2VTZW5zaXRp
dmVMYWJlbC5jbGFzc05hbWUgPSAiaXMtY2FzZS1zZW5zaXRpdmUiOworCisgICAgICAgICAgICB0
aGlzLl9pc0Nhc2VTZW5zaXRpdmVDaGVja2JveCA9IGlzQ2FzZVNlbnNpdGl2ZUxhYmVsLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpOworICAgICAgICAgICAgdGhp
cy5faXNDYXNlU2Vuc2l0aXZlQ2hlY2tib3gudHlwZSA9ICJjaGVja2JveCI7CisgICAgICAgICAg
ICB0aGlzLl9pc0Nhc2VTZW5zaXRpdmVDaGVja2JveC5jaGVja2VkID0gbG9jYWxSZXNvdXJjZU92
ZXJyaWRlID8gbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmlzQ2FzZVNlbnNpdGl2ZSA6IHRydWU7CisK
KyAgICAgICAgICAgIGlzQ2FzZVNlbnNpdGl2ZUxhYmVsLmFwcGVuZChXSS5VSVN0cmluZygiQ2Fz
ZSBTZW5zaXRpdmUiKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoSW5zcGVjdG9yQmFja2Vu
ZC5oYXNDb21tYW5kKCJOZXR3b3JrLmFkZEludGVyY2VwdGlvbiIsICJpc1JlZ2V4IikpIHsKKyAg
ICAgICAgICAgIGxldCBpc1JlZ2V4TGFiZWwgPSB1cmxSb3cuZGF0YUVsZW1lbnQuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKSk7CisgICAgICAgICAgICBpc1JlZ2V4
TGFiZWwuY2xhc3NOYW1lID0gImlzLXJlZ2V4IjsKKworICAgICAgICAgICAgdGhpcy5faXNSZWdl
eENoZWNrYm94ID0gaXNSZWdleExhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlucHV0IikpOworICAgICAgICAgICAgdGhpcy5faXNSZWdleENoZWNrYm94LnR5cGUgPSAi
Y2hlY2tib3giOworICAgICAgICAgICAgdGhpcy5faXNSZWdleENoZWNrYm94LmNoZWNrZWQgPSBs
b2NhbFJlc291cmNlT3ZlcnJpZGUgPyBsb2NhbFJlc291cmNlT3ZlcnJpZGUuaXNSZWdleCA6IGZh
bHNlOworICAgICAgICAgICAgdGhpcy5faXNSZWdleENoZWNrYm94LmFkZEV2ZW50TGlzdGVuZXIo
ImNoYW5nZSIsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIHVwZGF0ZVVSTENvZGVNaXJy
b3JNb2RlKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgaXNSZWdleExhYmVsLmFw
cGVuZChXSS5VSVN0cmluZygiUmVndWxhciBFeHByZXNzaW9uIikpOworICAgICAgICB9CisKKyAg
ICAgICAgbGV0IG1pbWVUeXBlUm93ID0gY3JlYXRlUm93KFdJLlVJU3RyaW5nKCJNSU1FIFR5cGUi
KSwgIm1pbWUiLCBtaW1lVHlwZSwgbWltZVR5cGUgfHwgInRleHQvaHRtbCIpOwogICAgICAgICB0
aGlzLl9taW1lVHlwZUNvZGVNaXJyb3IgPSBtaW1lVHlwZVJvdy5jb2RlTWlycm9yOwogCi0gICAg
ICAgIGxldCBzdGF0dXNDb2RlUm93ID0gY3JlYXRlUm93KFdJLlVJU3RyaW5nKCJTdGF0dXMiKSwg
InN0YXR1cyIsIHN0YXR1c0NvZGUpOworICAgICAgICBsZXQgc3RhdHVzQ29kZVJvdyA9IGNyZWF0
ZVJvdyhXSS5VSVN0cmluZygiU3RhdHVzIiksICJzdGF0dXMiLCBzdGF0dXNDb2RlLCBzdGF0dXND
b2RlIHx8ICIyMDAiKTsKICAgICAgICAgdGhpcy5fc3RhdHVzQ29kZUNvZGVNaXJyb3IgPSBzdGF0
dXNDb2RlUm93LmNvZGVNaXJyb3I7CiAKICAgICAgICAgbGV0IHN0YXR1c1RleHRFZGl0b3JFbGVt
ZW50ID0gc3RhdHVzQ29kZVJvdy5kYXRhRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKSk7CiAgICAgICAgIHN0YXR1c1RleHRFZGl0b3JFbGVtZW50LmNsYXNz
TmFtZSA9ICJlZGl0b3Igc3RhdHVzLXRleHQiOwotICAgICAgICB0aGlzLl9zdGF0dXNUZXh0Q29k
ZU1pcnJvciA9IHRoaXMuX2NyZWF0ZUVkaXRvcihzdGF0dXNUZXh0RWRpdG9yRWxlbWVudCwgc3Rh
dHVzVGV4dCk7CisgICAgICAgIHRoaXMuX3N0YXR1c1RleHRDb2RlTWlycm9yID0gdGhpcy5fY3Jl
YXRlRWRpdG9yKHN0YXR1c1RleHRFZGl0b3JFbGVtZW50LCBzdGF0dXNUZXh0LCBzdGF0dXNUZXh0
IHx8ICJPSyIpOwogCiAgICAgICAgIGxldCBlZGl0Q2FsbGJhY2sgPSAoKSA9PiB7fTsKICAgICAg
ICAgbGV0IGRlbGV0ZUNhbGxiYWNrID0gKG5vZGUpID0+IHsKQEAgLTI3OCw2ICszMjgsOSBAQCBX
SS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyID0gY2xhc3MgTG9jYWxSZXNvdXJjZU92ZXJy
aWRlUG9wb3ZlciBleHRlbmRzIFdJLgogCiAgICAgICAgIC8vIFVwZGF0ZSBtaW1lVHlwZSB3aGVu
IFVSTCBnZXRzIGEgZmlsZSBleHRlbnNpb24uCiAgICAgICAgIHRoaXMuX3VybENvZGVNaXJyb3Iu
b24oImNoYW5nZSIsIChjbSkgPT4geworICAgICAgICAgICAgaWYgKHRoaXMuX2lzUmVnZXhDaGVj
a2JveCAmJiB0aGlzLl9pc1JlZ2V4Q2hlY2tib3guY2hlY2tlZCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisKICAgICAgICAgICAgIGxldCBleHRlbnNpb24gPSBXSS5maWxlRXh0ZW5zaW9uRm9y
VVJMKGNtLmdldFZhbHVlKCkpOwogICAgICAgICAgICAgaWYgKCFleHRlbnNpb24pCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwpAQCAtMjk2LDYgKzM0OSw4IEBAIFdJLkxvY2FsUmVzb3VyY2VPdmVy
cmlkZVBvcG92ZXIgPSBjbGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyIGV4dGVuZHMg
V0kuCiAgICAgICAgICAgICBjb250ZW50VHlwZURhdGFHcmlkTm9kZS5kYXRhID0ge25hbWU6ICJD
b250ZW50LVR5cGUiLCB2YWx1ZTogbWltZVR5cGV9OwogICAgICAgICB9KTsKIAorICAgICAgICB1
cGRhdGVVUkxDb2RlTWlycm9yTW9kZSgpOworCiAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZWREYXRh
V2hlblNob3duID0gdGhpcy5zZXJpYWxpemVkRGF0YTsKIAogICAgICAgICB0aGlzLmNvbnRlbnQg
PSBwb3BvdmVyQ29udGVudEVsZW1lbnQ7CkBAIC0zMTUsMTQgKzM3MCwxNCBAQCBXSS5Mb2NhbFJl
c291cmNlT3ZlcnJpZGVQb3BvdmVyID0gY2xhc3MgTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zl
ciBleHRlbmRzIFdJLgogCiAgICAgLy8gUHJpdmF0ZQogCi0gICAgX2NyZWF0ZUVkaXRvcihlbGVt
ZW50LCB2YWx1ZSkKKyAgICBfY3JlYXRlRWRpdG9yKGVsZW1lbnQsIHZhbHVlLCBwbGFjZWhvbGRl
cikKICAgICB7CiAgICAgICAgIGxldCBjb2RlTWlycm9yID0gV0kuQ29kZU1pcnJvckVkaXRvci5j
cmVhdGUoZWxlbWVudCwgewogICAgICAgICAgICAgZXh0cmFLZXlzOiB7IlRhYiI6IGZhbHNlLCAi
U2hpZnQtVGFiIjogZmFsc2V9LAogICAgICAgICAgICAgbGluZVdyYXBwaW5nOiBmYWxzZSwKICAg
ICAgICAgICAgIG1vZGU6ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgIG1hdGNoQnJhY2tldHM6
IHRydWUsCi0gICAgICAgICAgICBwbGFjZWhvbGRlcjogImh0dHA6Ly9leGFtcGxlLmNvbS9pbmRl
eC5odG1sIiwKKyAgICAgICAgICAgIHBsYWNlaG9sZGVyLAogICAgICAgICAgICAgc2Nyb2xsYmFy
U3R5bGU6IG51bGwsCiAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNl
T3ZlcnJpZGVUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50LmpzCmluZGV4IDJmOWRi
Yzc2NmVjN2Y5MTg2NzQwNWVjZDIzYjI5MzFkZmQ3ZWU1OTQuLmIwNTk2MzFiOTI2ZmVkYzM0ZDJj
MjlmNTg4ODUzYmVkZTcxMTEwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3Vy
Y2VPdmVycmlkZVRyZWVFbGVtZW50LmpzCkBAIC00MCw2ICs0MCwyMSBAQCBXSS5Mb2NhbFJlc291
cmNlT3ZlcnJpZGVUcmVlRWxlbWVudCA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVF
bGVtZW50IGV4dAogCiAgICAgLy8gUHJvdGVjdGVkCiAKKyAgICBnZXQgbWFpblRpdGxlVGV4dCgp
CisgICAgeworICAgICAgICBsZXQgdGV4dDsKKyAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRP
YmplY3QuaXNSZWdleCkgeworICAgICAgICAgICAgdGV4dCA9ICIvIiArIHRoaXMucmVzb3VyY2Uu
dXJsICsgIi8iOworICAgICAgICAgICAgaWYgKCF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlzQ2Fz
ZVNlbnNpdGl2ZSkKKyAgICAgICAgICAgICAgICB0ZXh0ICs9ICJpIjsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIHRleHQgPSBzdXBlci5tYWluVGl0bGVUZXh0OworICAgICAgICAgICAg
aWYgKCF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlzQ2FzZVNlbnNpdGl2ZSkKKyAgICAgICAgICAg
ICAgICB0ZXh0ID0gV0kuVUlTdHJpbmcoIiVzIChDYXNlIEluc2Vuc2l0aXZlKSIpLmZvcm1hdCh0
ZXh0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGV4dDsKKyAgICB9CisKICAgICBvbmF0
dGFjaCgpCiAgICAgewogICAgICAgICBzdXBlci5vbmF0dGFjaCgpOwpAQCAtODYsNyArMTAxLDcg
QEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQgPSBjbGFzcyBMb2NhbFJlc291
cmNlT3ZlcnJpZGVUcmVlRWxlbWVudCBleHQKICAgICB7CiAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZEl0ZW0oV0kuVUlTdHJpbmcoIkVkaXQgTG9jYWwgT3ZlcnJpZGVcdTIwMjYiKSwgKGV2ZW50
KSA9PiB7CiAgICAgICAgICAgICBsZXQgcG9wb3ZlciA9IG5ldyBXSS5Mb2NhbFJlc291cmNlT3Zl
cnJpZGVQb3BvdmVyKHRoaXMpOwotICAgICAgICAgICAgcG9wb3Zlci5zaG93KHRoaXMuX2xvY2Fs
UmVzb3VyY2VPdmVycmlkZS5sb2NhbFJlc291cmNlLCB0aGlzLnN0YXR1cywgW1dJLlJlY3RFZGdl
Lk1BWF9YLCBXSS5SZWN0RWRnZS5NSU5fWF0pOworICAgICAgICAgICAgcG9wb3Zlci5zaG93KHRo
aXMuX2xvY2FsUmVzb3VyY2VPdmVycmlkZSwgdGhpcy5zdGF0dXMsIFtXSS5SZWN0RWRnZS5NQVhf
WCwgV0kuUmVjdEVkZ2UuTUlOX1hdKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgbGV0IHRvZ2ds
ZUVuYWJsZWRTdHJpbmcgPSB0aGlzLl9sb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlzYWJsZWQgPyBX
SS5VSVN0cmluZygiRW5hYmxlIExvY2FsIE92ZXJyaWRlIikgOiBXSS5VSVN0cmluZygiRGlzYWJs
ZSBMb2NhbCBPdmVycmlkZSIpOwpAQCAtMTE0LDcgKzEyOSw3IEBAIFdJLkxvY2FsUmVzb3VyY2VP
dmVycmlkZVRyZWVFbGVtZW50ID0gY2xhc3MgTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1l
bnQgZXh0CiAgICAgICAgIGlmICghc2VyaWFsaXplZERhdGEpCiAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgbGV0IHt1cmwsIG1pbWVUeXBlLCBzdGF0dXNDb2RlLCBzdGF0dXNUZXh0LCBo
ZWFkZXJzfSA9IHNlcmlhbGl6ZWREYXRhOworICAgICAgICBsZXQge3VybCwgaXNDYXNlU2Vuc2l0
aXZlLCBpc1JlZ2V4LCBtaW1lVHlwZSwgc3RhdHVzQ29kZSwgc3RhdHVzVGV4dCwgaGVhZGVyc30g
PSBzZXJpYWxpemVkRGF0YTsKIAogICAgICAgICAvLyBEbyBub3QgY29uZmxpY3Qgd2l0aCBhbiBl
eGlzdGluZyBvdmVycmlkZSB1bmxlc3Mgd2UgYXJlIG1vZGlmeWluZyBvdXJzZWx2ZXMuCiAgICAg
ICAgIGxldCBleGlzdGluZ092ZXJyaWRlID0gV0kubmV0d29ya01hbmFnZXIubG9jYWxSZXNvdXJj
ZU92ZXJyaWRlRm9yVVJMKHVybCk7CkBAIC0xMjgsNiArMTQzLDggQEAgV0kuTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlVHJlZUVsZW1lbnQgPSBjbGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxl
bWVudCBleHQKICAgICAgICAgbGV0IHJldmlzaW9uID0gdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJy
aWRlLmxvY2FsUmVzb3VyY2UuY3VycmVudFJldmlzaW9uOwogICAgICAgICBsZXQgbmV3TG9jYWxS
ZXNvdXJjZU92ZXJyaWRlID0gV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmNyZWF0ZSh7CiAgICAg
ICAgICAgICB1cmwsCisgICAgICAgICAgICBpc0Nhc2VTZW5zaXRpdmUsCisgICAgICAgICAgICBp
c1JlZ2V4LAogICAgICAgICAgICAgbWltZVR5cGUsCiAgICAgICAgICAgICBzdGF0dXNDb2RlLAog
ICAgICAgICAgICAgc3RhdHVzVGV4dCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRp
b25TaWRlYmFyUGFuZWwuanMKaW5kZXggNjAwMWEwYWJjMmVjMzExYzNlZTE5ZTA5ZWNmODE1ODE0
OWIxNWQyZC4uYzJjMDZhYzcxNGQzOGUxMDMxYjdhMGM4NGM1MWQ0NGViMjJiNzE5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05h
dmlnYXRpb25TaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKQEAgLTY2NSw3
ICs2NjUsNyBAQCBXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJj
ZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuZHMgVwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKLSAgICAgICAgbGV0IHt1cmwsIG1pbWVUeXBlLCBzdGF0dXNDb2RlLCBzdGF0
dXNUZXh0LCBoZWFkZXJzfSA9IHNlcmlhbGl6ZWREYXRhOworICAgICAgICBsZXQge3VybCwgaXND
YXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBtaW1lVHlwZSwgc3RhdHVzQ29kZSwgc3RhdHVzVGV4dCwg
aGVhZGVyc30gPSBzZXJpYWxpemVkRGF0YTsKIAogICAgICAgICAvLyBEbyBub3QgY29uZmxpY3Qg
d2l0aCBhbiBleGlzdGluZyBvdmVycmlkZS4KICAgICAgICAgbGV0IGV4aXN0aW5nT3ZlcnJpZGUg
PSBXSS5uZXR3b3JrTWFuYWdlci5sb2NhbFJlc291cmNlT3ZlcnJpZGVGb3JVUkwodXJsKTsKQEAg
LTY3Niw2ICs2NzYsOCBAQCBXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IGNsYXNz
IFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuZHMgVwogCiAgICAgICAgIGxldCBs
b2NhbFJlc291cmNlT3ZlcnJpZGUgPSBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuY3JlYXRlKHsK
ICAgICAgICAgICAgIHVybCwKKyAgICAgICAgICAgIGlzQ2FzZVNlbnNpdGl2ZSwKKyAgICAgICAg
ICAgIGlzUmVnZXgsCiAgICAgICAgICAgICBtaW1lVHlwZSwKICAgICAgICAgICAgIHN0YXR1c0Nv
ZGUsCiAgICAgICAgICAgICBzdGF0dXNUZXh0LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkyNTE5ODMyOGIxZjkwMTQyOGM4
Y2IzNmFlZjU3NzY3ZjVkYjQwYjAuLmI3NTFjY2U1OWY2ODY2YTFlOGIwMjM4NTQxYjcwNDA1MTU3
MmE3MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMS0wOCAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTG9jYWwgUmVzb3Vy
Y2UgT3ZlcnJpZGVzOiBhbGxvdyBzdWJzdGl0dXRpb24gYmFzZWQgb24gYSB1cmwgcGF0dGVybgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMzc1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNlLW92ZXJyaWRlLWJhc2ljLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1v
dmVycmlkZS1iYXNpYy1leHBlY3RlZC50eHQ6CisKIDIwMTktMTEtMDcgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBEZWZhdWx0IE5hbWVwYWNl
VVJJIG11c3QgYmUgZ290dGVuIGZyb20gdGhlIHRvcG1vc3QgcGFyZW50IGJlZm9yZSB0aGUgU1ZH
IDxmb3JlaWduT2JqZWN0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1iYXNpYy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNl
LW92ZXJyaWRlLWJhc2ljLWV4cGVjdGVkLnR4dAppbmRleCBkODk3OGU5OGJjZGU2M2MwZjE1MzA3
NzlkMmRhZGU3M2NhYzJmY2NiLi4xYTllNjg3ZTU3YWE4ODAwMjc0NzQwMTg4ZDAwOGIzMjgxM2U5
NzA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L2xvY2FsLXJlc291cmNlLW92ZXJyaWRlLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNlLW92ZXJyaWRl
LWJhc2ljLWV4cGVjdGVkLnR4dApAQCAtODgsNiArODgsNDUgQEAgUmVzcG9uc2UgSGVhZGVyczoK
ICAgWC1FeHBlY3RlZDogUEFTUwogQ29udGVudDogUEFTUwogCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogTG9jYWxSZXNvdXJjZU92ZXJyaWRlLlVSTC5DYXNlU2Vuc2l0aXZlCitDcmVhdGluZyBMb2Nh
bCBSZXNvdXJjZSBPdmVycmlkZSBmb3I6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZXMvb3ZlcnJpZGUudHh0P2Nhc2U9c2Vuc2l0aXZlCitUcmlnZ2VyaW5n
IGxvYWQuLi4KK1Jlc291cmNlIExvYWRlZDoKK1VSTDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9vdmVycmlkZS50eHQ/Q2FTZT1TZU5zSXRJdkUKK01J
TUUgVHlwZTogdGV4dC9wbGFpbgorU3RhdHVzOiAyMDAgT0sKK1Jlc3BvbnNlIFNvdXJjZTogU3lt
Ym9sKGluc3BlY3Rvci1vdmVycmlkZSkKK1Jlc3BvbnNlIEhlYWRlcnM6CisgIENvbnRlbnQtVHlw
ZTogdGV4dC9wbGFpbgorICBYLUV4cGVjdGVkOiBQQVNTCitDb250ZW50OiBQQVNTCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBMb2NhbFJlc291cmNlT3ZlcnJpZGUuVVJMLklzUmVnZXgKK0NyZWF0
aW5nIExvY2FsIFJlc291cmNlIE92ZXJyaWRlIGZvcjogXC9vdmVycmlkZVwudHh0XD90PVxkKwor
VHJpZ2dlcmluZyBsb2FkLi4uCitSZXNvdXJjZSBMb2FkZWQ6CitVUkw6IGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvb3ZlcnJpZGUudHh0P3Q9MTIzNDU2
Nzg5CitNSU1FIFR5cGU6IHRleHQvcGxhaW4KK1N0YXR1czogMjAwIE9LCitSZXNwb25zZSBTb3Vy
Y2U6IFN5bWJvbChpbnNwZWN0b3Itb3ZlcnJpZGUpCitSZXNwb25zZSBIZWFkZXJzOgorICBDb250
ZW50LVR5cGU6IHRleHQvcGxhaW4KKyAgWC1FeHBlY3RlZDogUEFTUworQ29udGVudDogUEFTUwor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogTG9jYWxSZXNvdXJjZU92ZXJyaWRlLlVSTC5Jc0Nhc2VT
ZW5zaXRpdmVSZWdleAorQ3JlYXRpbmcgTG9jYWwgUmVzb3VyY2UgT3ZlcnJpZGUgZm9yOiBcL092
RXJSaURlXC5UeFRcP3Q9XGQrCitUcmlnZ2VyaW5nIGxvYWQuLi4KK1Jlc291cmNlIExvYWRlZDoK
K1VSTDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9v
dmVycmlkZS50eHQ/dD0xMjM0NTY3ODkKK01JTUUgVHlwZTogdGV4dC9wbGFpbgorU3RhdHVzOiAy
MDAgT0sKK1Jlc3BvbnNlIFNvdXJjZTogU3ltYm9sKGluc3BlY3Rvci1vdmVycmlkZSkKK1Jlc3Bv
bnNlIEhlYWRlcnM6CisgIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgorICBYLUV4cGVjdGVkOiBQ
QVNTCitDb250ZW50OiBQQVNTCisKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBMb2NhbFJlc291cmNl
T3ZlcnJpZGUuNDA0CiBDcmVhdGluZyBMb2NhbCBSZXNvdXJjZSBPdmVycmlkZSBmb3I6IGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvb3ZlcnJpZGUudHh0
CiBUcmlnZ2VyaW5nIGxvYWQuLi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUtYmFzaWMuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbG9jYWwtcmVzb3VyY2Utb3Zl
cnJpZGUtYmFzaWMuaHRtbAppbmRleCA3MDhlOTk3ZGI1NzA3Y2Y3Yzg2ZjQ2MWNjNTdhNWUzYmY2
Y2E5ODI1Li4wY2UwYzRiMDk3YjY3ZjI4Y2ZkNjBiMjdlZTkxM2I1MWQ0NjQxODNmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291
cmNlLW92ZXJyaWRlLWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1iYXNpYy5odG1sCkBAIC0xNjQs
NiArMTY0LDU1IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB9XQogICAgIH0pOwogCisgICAg
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiTG9jYWxSZXNvdXJjZU92ZXJyaWRlLlVSTC5D
YXNlU2Vuc2l0aXZlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IG92ZXJyaWRlIGZvciBh
IGxvYWQgd2l0aCBhIGZyYWdtZW50LiIsCisgICAgICAgIGV4cHJlc3Npb246IGB0cmlnZ2VyT3Zl
cnJpZGVMb2FkKCI/Q2FTZT1TZU5zSXRJdkUiKWAsCisgICAgICAgIG92ZXJyaWRlczogW3sKKyAg
ICAgICAgICAgIHVybDogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZXMvb3ZlcnJpZGUudHh0P2Nhc2U9c2Vuc2l0aXZlIiwKKyAgICAgICAgICAgIG1pbWVU
eXBlOiAidGV4dC9wbGFpbiIsCisgICAgICAgICAgICBjb250ZW50OiAiUEFTUyIsCisgICAgICAg
ICAgICBiYXNlNjRFbmNvZGVkOiBmYWxzZSwKKyAgICAgICAgICAgIHN0YXR1c0NvZGU6IDIwMCwK
KyAgICAgICAgICAgIHN0YXR1c1RleHQ6ICJPSyIsCisgICAgICAgICAgICBoZWFkZXJzOiB7Ilgt
RXhwZWN0ZWQiOiAiUEFTUyJ9LAorICAgICAgICAgICAgaXNDYXNlU2Vuc2l0aXZlOiBmYWxzZSwK
KyAgICAgICAgfV0KKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTog
IkxvY2FsUmVzb3VyY2VPdmVycmlkZS5VUkwuSXNSZWdleCIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiVGVzdCBvdmVycmlkZSBmb3IgYSBsb2FkIHdpdGggYSBmcmFnbWVudC4iLAorICAgICAgICBl
eHByZXNzaW9uOiBgdHJpZ2dlck92ZXJyaWRlTG9hZCgiP3Q9MTIzNDU2Nzg5IilgLAorICAgICAg
ICBvdmVycmlkZXM6IFt7CisgICAgICAgICAgICB1cmw6ICJcXC9vdmVycmlkZVxcLnR4dFxcP3Q9
XFxkKyIsCisgICAgICAgICAgICBtaW1lVHlwZTogInRleHQvcGxhaW4iLAorICAgICAgICAgICAg
Y29udGVudDogIlBBU1MiLAorICAgICAgICAgICAgYmFzZTY0RW5jb2RlZDogZmFsc2UsCisgICAg
ICAgICAgICBzdGF0dXNDb2RlOiAyMDAsCisgICAgICAgICAgICBzdGF0dXNUZXh0OiAiT0siLAor
ICAgICAgICAgICAgaGVhZGVyczogeyJYLUV4cGVjdGVkIjogIlBBU1MifSwKKyAgICAgICAgICAg
IGlzUmVnZXg6IHRydWUsCisgICAgICAgIH1dCisgICAgfSk7CisKKyAgICBhZGRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJMb2NhbFJlc291cmNlT3ZlcnJpZGUuVVJMLklzQ2FzZVNlbnNpdGl2
ZVJlZ2V4IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IG92ZXJyaWRlIGZvciBhIGxvYWQg
d2l0aCBhIGZyYWdtZW50LiIsCisgICAgICAgIGV4cHJlc3Npb246IGB0cmlnZ2VyT3ZlcnJpZGVM
b2FkKCI/dD0xMjM0NTY3ODkiKWAsCisgICAgICAgIG92ZXJyaWRlczogW3sKKyAgICAgICAgICAg
IHVybDogIlxcL092RXJSaURlXFwuVHhUXFw/dD1cXGQrIiwKKyAgICAgICAgICAgIG1pbWVUeXBl
OiAidGV4dC9wbGFpbiIsCisgICAgICAgICAgICBjb250ZW50OiAiUEFTUyIsCisgICAgICAgICAg
ICBiYXNlNjRFbmNvZGVkOiBmYWxzZSwKKyAgICAgICAgICAgIHN0YXR1c0NvZGU6IDIwMCwKKyAg
ICAgICAgICAgIHN0YXR1c1RleHQ6ICJPSyIsCisgICAgICAgICAgICBoZWFkZXJzOiB7IlgtRXhw
ZWN0ZWQiOiAiUEFTUyJ9LAorICAgICAgICAgICAgaXNDYXNlU2Vuc2l0aXZlOiBmYWxzZSwKKyAg
ICAgICAgICAgIGlzUmVnZXg6IHRydWUsCisgICAgICAgIH1dCisgICAgfSk7CisKICAgICBhZGRU
ZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJMb2NhbFJlc291cmNlT3ZlcnJpZGUuNDA0IiwKICAg
ICAgICAgZGVzY3JpcHRpb246ICJUZXN0IGZvciBhIDQwNCBvdmVycmlkZS4iLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>