<?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>205294</bug_id>
          
          <creation_ts>2019-12-16 12:30:09 -0800</creation_ts>
          <short_desc>import.meta.url: baseURL for a module script should be response URL, not request URL</short_desc>
          <delta_ts>2020-04-15 08:48:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>Safari 13</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=158420</see_also>
          <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>
          
          <blocked>210490</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Fagnani">justin</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>dino</cc>
    
    <cc>mark.lam</cc>
    
    <cc>tomac</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1599027</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fagnani">justin</who>
    <bug_when>2019-12-16 12:30:09 -0800</bug_when>
    <thetext>According to: https://html.spec.whatwg.org/multipage/webappapis.html#fetching-scripts:creating-a-module-script-2

The base URL for a module script should be the response URL, post any redirects. Currently Webkit is using the request URL.

This causes significant problems (and incompatibility with Firefox and Chrome) when there are redirects in the response for a module.

Imagine you are using something like `new URL(&apos;./foo.jpg&apos;, import.meta.url).href` to get the URL for an image relative to the main module of an NPM package. A CDN like unpkg.com will perform a redirect from `unpkg.com/foo` to the main module, ie: `unpkg.com/foo/index.js`. This causes there to be a difference in the image&apos;s URL depending on whether `import.meta.url` uses response or request URL. Response URL will give `unpkg.com/foo/foo.jpg` while request URL will give `unpkg.com/foo.jpg`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599064</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-16 13:24:53 -0800</bug_when>
    <thetext>&lt;rdar://problem/57982755&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641180</commentid>
    <comment_count>2</comment_count>
      <attachid>396359</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-13 17:02:37 -0700</bug_when>
    <thetext>Created attachment 396359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641182</commentid>
    <comment_count>3</comment_count>
      <attachid>396360</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-13 17:05:01 -0700</bug_when>
    <thetext>Created attachment 396360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641196</commentid>
    <comment_count>4</comment_count>
      <attachid>396364</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-13 17:44:08 -0700</bug_when>
    <thetext>Created attachment 396364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641204</commentid>
    <comment_count>5</comment_count>
      <attachid>396367</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-13 18:18:19 -0700</bug_when>
    <thetext>Created attachment 396367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641216</commentid>
    <comment_count>6</comment_count>
      <attachid>396370</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-13 18:52:54 -0700</bug_when>
    <thetext>Created attachment 396370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641218</commentid>
    <comment_count>7</comment_count>
      <attachid>396371</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-13 19:12:54 -0700</bug_when>
    <thetext>Created attachment 396371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641276</commentid>
    <comment_count>8</comment_count>
      <attachid>396371</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-14 00:55:07 -0700</bug_when>
    <thetext>Comment on attachment 396371
Patch

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

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:276
&gt; +        URL moduleRequestURL(URL(), asString(moduleKeyValue)-&gt;value(jsGlobalObject));

We parse the URL each time we query the map.
Does it make sense to have m_requestURLToResponseURLMap be a HashMap&lt;String, URL&gt;?

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:334
&gt; +    // FIXME: We should track fragments though redirections.

s/though/through/

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:338
&gt; +            responseURL.setFragmentIdentifier(sourceURL.fragmentIdentifier());

In case of a response coming from a service worker, we should probably leave responseURL untouched.
Might be good to add a test.

&gt; LayoutTests/ChangeLog:14
&gt; +        * http/tests/misc/resources/import-meta-url-expose.js: Added.

Should they be WPT tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641307</commentid>
    <comment_count>9</comment_count>
      <attachid>396371</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-14 04:04:07 -0700</bug_when>
    <thetext>Comment on attachment 396371
Patch

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

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:276
&gt;&gt; +        URL moduleRequestURL(URL(), asString(moduleKeyValue)-&gt;value(jsGlobalObject));
&gt; 
&gt; We parse the URL each time we query the map.
&gt; Does it make sense to have m_requestURLToResponseURLMap be a HashMap&lt;String, URL&gt;?

I think it makes sense. Nice, fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:334
&gt;&gt; +    // FIXME: We should track fragments though redirections.
&gt; 
&gt; s/though/through/

Fixed, thanks!

&gt;&gt; LayoutTests/ChangeLog:14
&gt;&gt; +        * http/tests/misc/resources/import-meta-url-expose.js: Added.
&gt; 
&gt; Should they be WPT tests?

Sounds nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641308</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-14 04:05:23 -0700</bug_when>
    <thetext>Looks like, AppleWin networking implementation has different level of support of redirections, and causing failure, I&apos;ll check the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641309</commentid>
    <comment_count>11</comment_count>
      <attachid>396371</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-14 04:18:15 -0700</bug_when>
    <thetext>Comment on attachment 396371
Patch

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

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:338
&gt;&gt; +            responseURL.setFragmentIdentifier(sourceURL.fragmentIdentifier());
&gt; 
&gt; In case of a response coming from a service worker, we should probably leave responseURL untouched.
&gt; Might be good to add a test.

Currently, module-loader is not supported in worker environment. (e.g. ES6 modules cannot be usable in workers.), so I think we do not take this case.
It would be nice to have FIXME here about service worker. Added :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641310</commentid>
    <comment_count>12</comment_count>
      <attachid>396371</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-14 04:18:44 -0700</bug_when>
    <thetext>Comment on attachment 396371
Patch

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

&gt;&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:338
&gt;&gt;&gt; +            responseURL.setFragmentIdentifier(sourceURL.fragmentIdentifier());
&gt;&gt; 
&gt;&gt; In case of a response coming from a service worker, we should probably leave responseURL untouched.
&gt;&gt; Might be good to add a test.
&gt; 
&gt; Currently, module-loader is not supported in worker environment. (e.g. ES6 modules cannot be usable in workers.), so I think we do not take this case.
&gt; It would be nice to have FIXME here about service worker. Added :)

Ah, no. Yeah, service worker can interrupt it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641326</commentid>
    <comment_count>13</comment_count>
      <attachid>396402</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-14 05:17:29 -0700</bug_when>
    <thetext>Created attachment 396402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641334</commentid>
    <comment_count>14</comment_count>
      <attachid>396405</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-14 05:57:09 -0700</bug_when>
    <thetext>Created attachment 396405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641337</commentid>
    <comment_count>15</comment_count>
      <attachid>396405</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-14 06:03:19 -0700</bug_when>
    <thetext>Comment on attachment 396405
Patch

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

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:342
&gt; +    if (!cachedScript.hasRedirections() &amp;&amp; cachedScript.response().source() != ResourceResponse::Source::ServiceWorker) {

@Youenn For service-worker thing, can you show me a pointer to an existing WPT SW test which is using SW results? I&apos;m new to SW, and I would like to create a test based on that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641339</commentid>
    <comment_count>16</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-14 06:08:22 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #15)
&gt; Comment on attachment 396405 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396405&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:342
&gt; &gt; +    if (!cachedScript.hasRedirections() &amp;&amp; cachedScript.response().source() != ResourceResponse::Source::ServiceWorker) {
&gt; 
&gt; @Youenn For service-worker thing, can you show me a pointer to an existing
&gt; WPT SW test which is using SW results? I&apos;m new to SW, and I would like to
&gt; create a test based on that.

Sure, you can look at existing LayoutTests like LayoutTests/http/wpt/service-workers/navigation-redirect.https.html.
Typically, a test will:
- register a service worker
- wait for it to be activated
- load an iframe that matches the scope of the service worker so that all loads of the iframe go through the service worker
- trigger a module script load that the service worker will intercept based on the fetch event handler.

WPT tests are also available at imported/w3c/web-platform-tests/service-workers.
Ping me and I can help writing the test if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641340</commentid>
    <comment_count>17</comment_count>
      <attachid>396405</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-14 06:10:15 -0700</bug_when>
    <thetext>Comment on attachment 396405
Patch

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

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:289
&gt; +    ASSERT(responseURL.isValid());

If we would move the if check in responseURLFromRequestURL, we could do an early return.
That might improve readability.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:340
&gt; +    // FIXME: We should track fragments through redirections.

Let&apos;s file a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641344</commentid>
    <comment_count>18</comment_count>
      <attachid>396405</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-14 06:27:36 -0700</bug_when>
    <thetext>Comment on attachment 396405
Patch

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

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:289
&gt;&gt; +    ASSERT(responseURL.isValid());
&gt; 
&gt; If we would move the if check in responseURLFromRequestURL, we could do an early return.
&gt; That might improve readability.

Because of the difference between `m_document.url()` / `m_document.baseURL()`, I&apos;ve left `if` in the caller side.
But seems like always using `baseURL` is correct: https://html.spec.whatwg.org/multipage/webappapis.html#hostgetimportmetaproperties
Will fix, thanks :)

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:340
&gt;&gt; +    // FIXME: We should track fragments through redirections.
&gt; 
&gt; Let&apos;s file a bug.

While this issue is tracked by https://bugs.webkit.org/show_bug.cgi?id=158420, I&apos;ve filed another bug to ensure this behavior particularly in module-loader in https://bugs.webkit.org/show_bug.cgi?id=210490

&gt;&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:342
&gt;&gt;&gt; +    if (!cachedScript.hasRedirections() &amp;&amp; cachedScript.response().source() != ResourceResponse::Source::ServiceWorker) {
&gt;&gt; 
&gt;&gt; @Youenn For service-worker thing, can you show me a pointer to an existing WPT SW test which is using SW results? I&apos;m new to SW, and I would like to create a test based on that.
&gt; 
&gt; Sure, you can look at existing LayoutTests like LayoutTests/http/wpt/service-workers/navigation-redirect.https.html.
&gt; Typically, a test will:
&gt; - register a service worker
&gt; - wait for it to be activated
&gt; - load an iframe that matches the scope of the service worker so that all loads of the iframe go through the service worker
&gt; - trigger a module script load that the service worker will intercept based on the fetch event handler.
&gt; 
&gt; WPT tests are also available at imported/w3c/web-platform-tests/service-workers.
&gt; Ping me and I can help writing the test if needed.

Nice, I&apos;ll try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641363</commentid>
    <comment_count>19</comment_count>
      <attachid>396415</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-14 07:29:05 -0700</bug_when>
    <thetext>Created attachment 396415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641364</commentid>
    <comment_count>20</comment_count>
      <attachid>396416</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-14 07:32:04 -0700</bug_when>
    <thetext>Created attachment 396416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641780</commentid>
    <comment_count>21</comment_count>
      <attachid>396416</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-15 07:12:46 -0700</bug_when>
    <thetext>Comment on attachment 396416
Patch

LGTM!
Some nits below.

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

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:109
&gt; +    ASSERT(baseURL.isValid());

Maybe ASSERT that the url is valid in ScriptModuleLoader::responseURLFromRequestURL or in resolveModuleSpecifier

&gt; LayoutTests/http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect.html:11
&gt; +let basename = `http://${document.location.host}/WebKit/html/semantics/scripting-1/the-script-element/module`;

Could use const here and elsewhere.

&gt; LayoutTests/http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect.html:13
&gt; +    return new Promise(function (resolve, reject) {

You use (resolve, reject) =&gt; elsewhere.
It is apparently good style to limit the code executed in the function(resolve, reject) as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641803</commentid>
    <comment_count>22</comment_count>
      <attachid>396416</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-15 08:27:53 -0700</bug_when>
    <thetext>Comment on attachment 396416
Patch

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

Thanks!

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:109
&gt;&gt; +    ASSERT(baseURL.isValid());
&gt; 
&gt; Maybe ASSERT that the url is valid in ScriptModuleLoader::responseURLFromRequestURL or in resolveModuleSpecifier

Fixed.

&gt;&gt; LayoutTests/http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect.html:11
&gt;&gt; +let basename = `http://${document.location.host}/WebKit/html/semantics/scripting-1/the-script-element/module`;
&gt; 
&gt; Could use const here and elsewhere.

Fixed.

&gt;&gt; LayoutTests/http/wpt/html/semantics/scripting-1/the-script-element/module/module-meta-url-redirect.html:13
&gt;&gt; +    return new Promise(function (resolve, reject) {
&gt; 
&gt; You use (resolve, reject) =&gt; elsewhere.
&gt; It is apparently good style to limit the code executed in the function(resolve, reject) as well.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641817</commentid>
    <comment_count>23</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-15 08:48:20 -0700</bug_when>
    <thetext>Committed r260131: &lt;https://trac.webkit.org/changeset/260131&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396359</attachid>
            <date>2020-04-13 17:02:37 -0700</date>
            <delta_ts>2020-04-13 17:05:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205294-20200413170237.patch</filename>
            <type>text/plain</type>
            <size>12599</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2MDJkOWI4YWZmZDlm
YTdhNDJjZjVhYzI3Zjc1MGJhZTU4NDMzOC4uZWIwMTBkYzk3YzhlYzhjM2EyMzViYjZlNGE0ODVh
OGE2NTc2NjI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA0LTEzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgaW1wb3J0Lm1ldGEudXJs
OiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQgc2hvdWxkIGJlIHJlc3BvbnNlIFVSTCwgbm90
IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0czogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRo
LWhhc2guaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1l
dGEtdXJsLXdpdGgtaGFzaC5odG1sCisKKyAgICAgICAgVGhlIG1vZHVsZSBzaG91bGQgZXhwb3Nl
IHJlc3BvbnNlIFVSTCBhcyBgaW1wb3J0Lm1ldGEudXJsYCBpbnN0ZWFkIG9mIHJlcXVlc3QgVVJM
LgorICAgICAgICBJZiByZWRpcmVjdGlvbiBoYXBwZW5zLCB0aGlzIFVSTCBzaG91bGQgYmUgcmVk
aXJlY3RlZCBvbmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpjcmVhdGVJbXBvcnRN
ZXRhUHJvcGVydGllcyk6CisKIDIwMjAtMDQtMTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KIAogICAgICAgICBtb2R1bGUncyBkZWZhdWx0IGNyb3NzLW9yaWdpbiB2YWx1ZSBz
aG91bGQgYmUgImFub255bW91cyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDhlNDg4NGQyNDY3NjQ4YjhhOWFmMjUxZGYwYTUw
OGY2OTU1MWM2MWMuLjIyM2Y1NTBlOGNjZTA0ODhjN2E0MDM5Njg2Y2ZmNzI4N2I4NzFlNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cApAQCAtMjcxLDcgKzI3MSwxMSBAQCBKU0M6OkpTT2JqZWN0KiBTY3JpcHRNb2R1bGVMb2FkZXI6
OmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplYwogICAgIGF1dG8q
IG1ldGFQcm9wZXJ0aWVzID0gSlNDOjpjb25zdHJ1Y3RFbXB0eU9iamVjdCh2bSwganNHbG9iYWxP
YmplY3QtPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKLSAgICBtZXRhUHJvcGVydGllcy0+cHV0RGlyZWN0
KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ1cmwiKSwgSlNDOjpqc1N0cmlu
Zyh2bSwgc291cmNlVVJMLnN0cmluZygpKSk7CisgICAgYXV0byBpdGVyYXRvciA9IG1fcmVxdWVz
dFVSTFRvUmVzcG9uc2VVUkxNYXAuZmluZChzb3VyY2VVUkwpOworICAgIEFTU0VSVF9XSVRIX01F
U1NBR0UoaXRlcmF0b3IgIT0gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcC5lbmQoKSwgIk1v
ZHVsZSByZWZlcnJlciBtdXN0IHJlZ2lzdGVyIGl0c2VsZiB0byB0aGUgbWFwIGJlZm9yZSBtYXRl
cmlhbGl6aW5nIG1ldGEudXJsLiIpOworICAgIGF1dG8gcmVzcG9uc2VVUkwgPSBpdGVyYXRvci0+
dmFsdWU7CisKKyAgICBtZXRhUHJvcGVydGllcy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sICJ1cmwiKSwgSlNDOjpqc1N0cmluZyh2bSwgcmVzcG9uc2VVUkwu
c3RyaW5nKCkpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAog
ICAgIHJldHVybiBtZXRhUHJvcGVydGllczsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMzRjYmM4MDU4YjA1NTBiYjhmMmZh
M2MwN2ExYzQwMTIzNGZiNTU3Li40NzI4OGZmYmIzYWM3YjRkMTA3ZTBmNmMwMmI4ODhiMjM1Njdm
ZTFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDQtMTMgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBpbXBvcnQubWV0YS51cmw6IGJhc2VVUkwgZm9y
IGEgbW9kdWxlIHNjcmlwdCBzaG91bGQgYmUgcmVzcG9uc2UgVVJMLCBub3QgcmVxdWVzdCBVUkwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTI5NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90
ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1o
YXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL21vZHVs
ZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWhhc2guaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXdpdGgtaGFzaC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0
aC1oYXNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMv
aW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qczogQWRkZWQuCisKIDIwMjAtMDQtMTMgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBtb2R1bGUncyBkZWZhdWx0IGNy
b3NzLW9yaWdpbiB2YWx1ZSBzaG91bGQgYmUgImFub255bW91cyIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVj
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQ4MDE5MGY0ZTU1NjE5M2Y3MmZlZWUxMTNkNGM0
MzJlOTFmMDQxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIGltcG9ydC5tZXRhLnVybCBzaG91bGQgYmUgcmVkaXJlY3RlZCB1cmwgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJl
Y3Qtd2l0aC1oYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9t
b2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1oYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iYzQ1YWVjMDMyMzdmN2FiMzlhMmU4YjE5YjA2NTI3ZGVhNjgyM2E3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVj
dC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIGltcG9ydC5t
ZXRhLnVybCBzaG91bGQgYmUgcmVkaXJlY3RlZCB1cmwgd2l0aCBoYXNoIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdp
dGgtaGFzaC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC13aXRoLWhhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTg3ZmRiNDM4M2YxNjA2ZTE3
OTYzNWQxM2ZlOTQ4MDExNWEyYjZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWhhc2guaHRtbApAQCAt
MCwwICsxLDY4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+aW1w
b3J0Lm1ldGEudXJsIHNob3VsZCBiZSByZWRpcmVjdGVkIHVybCB3aXRoIGhhc2g8L3RpdGxlPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2dsb2JhbFRoaXMubWV0YVVSTHMg
PSBbXTsKKworZnVuY3Rpb24gcmVkaXJlY3RUZXN0KHRhcmdldFVSTCwgZXhwZWN0ZWQpCit7Cisg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAg
ICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgICAg
ICBzY3JpcHQudHlwZSA9ICdtb2R1bGUnOworICAgICAgICBzY3JpcHQuc3JjID0gdGFyZ2V0VVJM
OworICAgICAgICBzY3JpcHQub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhnbG9iYWxUaGlzLm1ldGFVUkxzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBs
ZXQgdXJsID0gZ2xvYmFsVGhpcy5tZXRhVVJMcy5zaGlmdCgpOworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyh1cmwsIGV4cGVjdGVkKTsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
fTsKKyAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSByZWplY3Q7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICB9KTsKK30KKworcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL3Jlc291cmNlcy9yZWRpcmVj
dC5waHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9t
aXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3QxIiksIGBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0
ZXN0MWApOworICAgICAgICB9KQorICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyAr
IGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2Vz
L2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMiKSArICIjdGVzdDIiLCBgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDJgKTsK
KyAgICAgICAgfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIHJlZGlyZWN0VGVzdCgnL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBlbmNvZGVV
UklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQt
bWV0YS11cmwtZXhwb3NlLmpzI3Rlc3Q0IikgKyAiI3Rlc3QzIiwgYGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3Q0YCk7Cisg
ICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVy
biByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5jb2RlVVJJ
Q29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91
cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVz
b3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEEiKSksIGBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QWAp
OworICAgICAgICB9KQorICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAv
LyBGSVhNRTogVGhpcyB0ZXN0IHBhc3Mgb25jZSB0aGUgZm9sbG93aW5nIGlzc3VlIGlzIGZpeGVk
LgorICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1ODQyMAorICAgICAgICAgICAgLy8gcmV0dXJuIHJlZGlyZWN0VGVzdCgnL3Jlc291cmNlcy9y
ZWRpcmVjdC5waHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KCJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9z
ZS5qcyIpICsgIiN0ZXN0QiIpLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2Vz
L2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEJgKTsKKyAgICAgICAgfSkKKyAgICAgICAg
LnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL3Jl
c291cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0iICsgZW5jb2RlVVJJQ29t
cG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEt
dXJsLWV4cG9zZS5qcyIpKSArICIjdGVzdEMiLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2Mv
cmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdENgKTsKKyAgICAgICAgfSkK
KyAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
dGVzdCBwYXNzIG9uY2UgdGhlIGZvbGxvd2luZyBpc3N1ZSBpcyBmaXhlZC4KKyAgICAgICAgICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKyAgICAg
ICAgICAgIC8vIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3Vy
bD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocD91cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAu
MTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMiKSArICIjdGVz
dEFBIikgKyAiI3Rlc3RCQiIsIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMv
aW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QUFgKTsKKyAgICAgICAgfSkKKyAgICAgICAg
LnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL3Jl
c291cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0iICsgZW5jb2RlVVJJQ29t
cG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEt
dXJsLWV4cG9zZS5qcyN0ZXN0Q0MiKSkgKyAiI3Rlc3RERCIsIGBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0Q0NgKTsKKyAg
ICAgICAgfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJu
IHJlZGlyZWN0VGVzdCgnL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBlbmNvZGVVUklD
b21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3Vy
bD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNv
dXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0RUUiKSArICIjdGVzdEZGIiksIGBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9z
ZS5qcyN0ZXN0RUVgKTsKKyAgICAgICAgfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/
dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJj
ZXMvcmVkaXJlY3QucGhwP3VybD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0R0dH
IikgKyAiI3Rlc3RISEgiKSArICIjdGVzdElJSSIsIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlz
Yy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0R0dHYCk7CisgICAgICAg
IH0pCit9LCAnaW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSByZWRpcmVjdGVkIHVybCB3aXRoIGhh
c2gnKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM4NWM5YTFjM2JlZDdjMmY0MGFlOTNhNWZjM2RkM2ViMzkyZmFlNDEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJl
ZGlyZWN0Lmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHRpdGxlPmltcG9ydC5tZXRhLnVybCBzaG91bGQgYmUgcmVkaXJlY3RlZCB1cmw8L3Rp
dGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2dsb2JhbFRoaXMubWV0
YVVSTHMgPSBbXTsKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNl
KGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgdmFyIHNjcmlwdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgICAgICBzY3JpcHQudHlwZSA9ICdtb2R1
bGUnOworICAgICAgICBzY3JpcHQuc3JjID0gJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0n
ICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJj
ZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyIpOworICAgICAgICBzY3JpcHQub25sb2FkID0g
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhnbG9iYWxUaGlzLm1ldGFV
UkxzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbFRoaXMubWV0
YVVSTHNbMF0sIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1l
dGEtdXJsLWV4cG9zZS5qc2ApOworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9Owor
ICAgICAgICBzY3JpcHQub25lcnJvciA9IHJlamVjdDsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChzY3JpcHQpOworICAgIH0pOworfSwgJ2ltcG9ydC5tZXRhLnVybCBzaG91bGQg
YmUgcmVkaXJlY3RlZCB1cmwnKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC13aXRoLWhh
c2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRh
LXVybC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZDA5Zjc0Zjc0ZTJkZDc5
YjAyZGQzMzFjNDZkZjJmMzk3OTVlMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXdpdGgtaGFzaC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgaW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSBoYXZlIGEgaGFz
aCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRh
LXVybC13aXRoLWhhc2guaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUt
bWV0YS11cmwtd2l0aC1oYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIzMjliYzRlOTAxMDYwMGM5N2Qy
MjE5MDkzNGQyOWI1NzA5NWQ2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLmh0bWwKQEAgLTAsMCArMSwyOSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPmltcG9ydC5tZXRhLnVy
bCBzaG91bGQgaGF2ZSBhIGhhc2g8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK2dsb2JhbFRoaXMubWV0YVVSTHMgPSBbXTsKKworcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7Cisg
ICAgICAgIHNjcmlwdC50eXBlID0gJ21vZHVsZSc7CisgICAgICAgIHNjcmlwdC5zcmMgPSBgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2Uu
anMjdGVzdGA7CisgICAgICAgIHNjcmlwdC5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbFRoaXMubWV0YVVSTHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGxldCB1cmwgPSBnbG9iYWxUaGlzLm1ldGFVUkxzLnNoaWZ0KCk7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHVybCwgYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNl
cy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RgKTsKKyAgICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgfTsKKyAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSByZWplY3Q7CisgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICB9KTsKK30sICdpbXBvcnQu
bWV0YS51cmwgc2hvdWxkIGJlIGhhdmUgYSBoYXNoJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMv
aW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9y
ZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTNhNjIxMzFh
NTc1ZGI1ODU0MjFjZDIxZTViN2M3Y2VlZGYyMTI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpz
CkBAIC0wLDAgKzEgQEAKK2dsb2JhbFRoaXMubWV0YVVSTHMucHVzaChpbXBvcnQubWV0YS51cmwp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396360</attachid>
            <date>2020-04-13 17:05:01 -0700</date>
            <delta_ts>2020-04-13 17:44:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205294-20200413170501.patch</filename>
            <type>text/plain</type>
            <size>12567</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2MDJkOWI4YWZmZDlm
YTdhNDJjZjVhYzI3Zjc1MGJhZTU4NDMzOC4uZWIwMTBkYzk3YzhlYzhjM2EyMzViYjZlNGE0ODVh
OGE2NTc2NjI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA0LTEzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgaW1wb3J0Lm1ldGEudXJs
OiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQgc2hvdWxkIGJlIHJlc3BvbnNlIFVSTCwgbm90
IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0czogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRo
LWhhc2guaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1l
dGEtdXJsLXdpdGgtaGFzaC5odG1sCisKKyAgICAgICAgVGhlIG1vZHVsZSBzaG91bGQgZXhwb3Nl
IHJlc3BvbnNlIFVSTCBhcyBgaW1wb3J0Lm1ldGEudXJsYCBpbnN0ZWFkIG9mIHJlcXVlc3QgVVJM
LgorICAgICAgICBJZiByZWRpcmVjdGlvbiBoYXBwZW5zLCB0aGlzIFVSTCBzaG91bGQgYmUgcmVk
aXJlY3RlZCBvbmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpjcmVhdGVJbXBvcnRN
ZXRhUHJvcGVydGllcyk6CisKIDIwMjAtMDQtMTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KIAogICAgICAgICBtb2R1bGUncyBkZWZhdWx0IGNyb3NzLW9yaWdpbiB2YWx1ZSBz
aG91bGQgYmUgImFub255bW91cyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDhlNDg4NGQyNDY3NjQ4YjhhOWFmMjUxZGYwYTUw
OGY2OTU1MWM2MWMuLjJhM2QwMmFhYWQyMTA0MjYyMzcyMjFhMzExMjE3NmZjODgzMWFkMWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cApAQCAtMjcxLDcgKzI3MSwxMSBAQCBKU0M6OkpTT2JqZWN0KiBTY3JpcHRNb2R1bGVMb2FkZXI6
OmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplYwogICAgIGF1dG8q
IG1ldGFQcm9wZXJ0aWVzID0gSlNDOjpjb25zdHJ1Y3RFbXB0eU9iamVjdCh2bSwganNHbG9iYWxP
YmplY3QtPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKLSAgICBtZXRhUHJvcGVydGllcy0+cHV0RGlyZWN0
KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ1cmwiKSwgSlNDOjpqc1N0cmlu
Zyh2bSwgc291cmNlVVJMLnN0cmluZygpKSk7CisgICAgYXV0byBpdGVyYXRvciA9IG1fcmVxdWVz
dFVSTFRvUmVzcG9uc2VVUkxNYXAuZmluZChzb3VyY2VVUkwpOworICAgIEFTU0VSVF9XSVRIX01F
U1NBR0UoaXRlcmF0b3IgIT0gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcC5lbmQoKSwgIk1v
ZHVsZSBtdXN0IHJlZ2lzdGVyIHJlcXVlc3QgPC0+IHJlc3BvbnNlIFVSTC4iKTsKKyAgICBhdXRv
IHJlc3BvbnNlVVJMID0gaXRlcmF0b3ItPnZhbHVlOworCisgICAgbWV0YVByb3BlcnRpZXMtPnB1
dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidXJsIiksIEpTQzo6
anNTdHJpbmcodm0sIHJlc3BvbnNlVVJMLnN0cmluZygpKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICByZXR1cm4gbWV0YVByb3BlcnRpZXM7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMjM0Y2JjODA1OGIwNTUwYmI4ZjJmYTNjMDdhMWM0MDEyMzRmYjU1Ny4uNDcyODhmZmJiM2Fj
N2I0ZDEwN2UwZjZjMDJiODg4YjIzNTY3ZmUxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIw
LTA0LTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgaW1w
b3J0Lm1ldGEudXJsOiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQgc2hvdWxkIGJlIHJlc3Bv
bnNlIFVSTCwgbm90IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJl
Y3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvbW9kdWxl
LW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1oYXNoLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVk
aXJlY3QuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRh
LXVybC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L21pc2MvbW9kdWxlLW1ldGEtdXJsLXdpdGgtaGFzaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanM6IEFkZGVk
LgorCiAyMDIwLTA0LTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgbW9kdWxlJ3MgZGVmYXVsdCBjcm9zcy1vcmlnaW4gdmFsdWUgc2hvdWxkIGJlICJhbm9u
eW1vdXMiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1l
dGEtdXJsLXJlZGlyZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkODAx
OTBmNGU1NTYxOTNmNzJmZWVlMTEzZDRjNDMyZTkxZjA0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBpbXBvcnQubWV0YS51cmwgc2hvdWxkIGJl
IHJlZGlyZWN0ZWQgdXJsIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFzaC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFz
aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM0NWFlYzAzMjM3ZjdhYjM5YTJlOGIxOWIwNjUy
N2RlYTY4MjNhNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1oYXNoLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBpbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJs
IHdpdGggaGFzaCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21v
ZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWhhc2guaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1oYXNoLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODE4N2ZkYjQzODNmMTYwNmUxNzk2MzVkMTNmZTk0ODAxMTVhMmI2YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVk
aXJlY3Qtd2l0aC1oYXNoLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHRpdGxlPmltcG9ydC5tZXRhLnVybCBzaG91bGQgYmUgcmVkaXJlY3Rl
ZCB1cmwgd2l0aCBoYXNoPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitnbG9iYWxUaGlzLm1ldGFVUkxzID0gW107CisKK2Z1bmN0aW9uIHJlZGlyZWN0VGVzdCh0
YXJnZXRVUkwsIGV4cGVjdGVkKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAo
cmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzY3JpcHQnKTsKKyAgICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJzsKKyAgICAg
ICAgc2NyaXB0LnNyYyA9IHRhcmdldFVSTDsKKyAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZ2xvYmFsVGhpcy5tZXRhVVJMcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgbGV0IHVybCA9IGdsb2JhbFRoaXMubWV0YVVSTHMuc2hp
ZnQoKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModXJsLCBleHBlY3RlZCk7CisgICAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgIH07CisgICAgICAgIHNjcmlwdC5vbmVycm9yID0gcmVq
ZWN0OworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7CisgICAgfSk7
Cit9CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgp
CisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZWRpcmVj
dFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50
KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4
cG9zZS5qcyN0ZXN0MSIpLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2lt
cG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDFgKTsKKyAgICAgICAgfSkKKyAgICAgICAgLnRo
ZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL3Jlc291
cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzIikgKyAi
I3Rlc3QyIiwgYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0
YS11cmwtZXhwb3NlLmpzI3Rlc3QyYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVk
aXJlY3QucGhwP3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0NCIpICsgIiN0
ZXN0MyIsIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEt
dXJsLWV4cG9zZS5qcyN0ZXN0NGApOworICAgICAgICB9KQorICAgICAgICAudGhlbihmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvcmVzb3VyY2VzL3JlZGly
ZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPSIgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpz
I3Rlc3RBIikpLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1t
ZXRhLXVybC1leHBvc2UuanMjdGVzdEFgKTsKKyAgICAgICAgfSkKKyAgICAgICAgLnRoZW4oZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdGVzdCBwYXNzIG9uY2UgdGhl
IGZvbGxvd2luZyBpc3N1ZSBpcyBmaXhlZC4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKyAgICAgICAgICAgIC8vIHJldHVybiBy
ZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5jb2RlVVJJQ29t
cG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9
IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3Vy
Y2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMiKSArICIjdGVzdEIiKSwgYGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RC
YCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5j
b2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGlyZWN0
LnBocD91cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21p
c2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMiKSkgKyAiI3Rlc3RDIiwgYGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3Nl
LmpzI3Rlc3RDYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRlc3QgcGFzcyBvbmNlIHRoZSBmb2xsb3dpbmcgaXNz
dWUgaXMgZml4ZWQuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU4NDIwCisgICAgICAgICAgICAvLyByZXR1cm4gcmVkaXJlY3RUZXN0KCcv
cmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPSIgKyBlbmNvZGVVUklD
b21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0
YS11cmwtZXhwb3NlLmpzIikgKyAiI3Rlc3RBQSIpICsgIiN0ZXN0QkIiLCBgaHR0cDovLzEyNy4w
LjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEFB
YCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5j
b2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGlyZWN0
LnBocD91cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21p
c2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdENDIikpICsgIiN0ZXN0
REQiLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVy
bC1leHBvc2UuanMjdGVzdENDYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwP3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMj
dGVzdEVFIikgKyAiI3Rlc3RGRiIpLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3Vy
Y2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEVFYCk7CisgICAgICAgIH0pCisgICAg
ICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3Qo
Jy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9IiArIGVuY29kZVVS
SUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1t
ZXRhLXVybC1leHBvc2UuanMjdGVzdEdHRyIpICsgIiN0ZXN0SEhIIikgKyAiI3Rlc3RJSUkiLCBg
aHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBv
c2UuanMjdGVzdEdHR2ApOworICAgICAgICB9KQorfSwgJ2ltcG9ydC5tZXRhLnVybCBzaG91bGQg
YmUgcmVkaXJlY3RlZCB1cmwgd2l0aCBoYXNoJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11
cmwtcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0
YS11cmwtcmVkaXJlY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODVjOWExYzNiZWQ3YzJmNDBhZTkzYTVm
YzNkZDNlYjM5MmZhZTQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5pbXBvcnQubWV0YS51cmwgc2hv
dWxkIGJlIHJlZGlyZWN0ZWQgdXJsPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CitnbG9iYWxUaGlzLm1ldGFVUkxzID0gW107Citwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKKyAg
ICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJzsKKyAgICAgICAgc2NyaXB0LnNyYyA9ICcvcmVz
b3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMiKTsK
KyAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZ2xvYmFsVGhpcy5tZXRhVVJMcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhnbG9iYWxUaGlzLm1ldGFVUkxzWzBdLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAw
L21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanNgKTsKKyAgICAgICAgICAg
IHJlc29sdmUoKTsKKyAgICAgICAgfTsKKyAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSByZWplY3Q7
CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICB9KTsKK30s
ICdpbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJsJyk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44MWQwOWY3NGY3NGUyZGQ3OWIwMmRkMzMxYzQ2ZGYyZjM5Nzk1ZTA5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC13
aXRoLWhhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIGltcG9ydC5tZXRh
LnVybCBzaG91bGQgYmUgaGF2ZSBhIGhhc2ggCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXdpdGgtaGFzaC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJiMzI5YmM0ZTkwMTA2MDBjOTdkMjIxOTA5MzRkMjliNTcwOTVkNjcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXdpdGgt
aGFzaC5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzx0aXRsZT5pbXBvcnQubWV0YS51cmwgc2hvdWxkIGhhdmUgYSBoYXNoPC90aXRsZT4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitnbG9iYWxUaGlzLm1ldGFVUkxzID0g
W107CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0
aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgICAgICBzY3JpcHQudHlwZSA9ICdtb2R1bGUnOwor
ICAgICAgICBzY3JpcHQuc3JjID0gYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNl
cy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RgOworICAgICAgICBzY3JpcHQub25sb2Fk
ID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhnbG9iYWxUaGlzLm1l
dGFVUkxzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBsZXQgdXJsID0gZ2xvYmFsVGhpcy5tZXRh
VVJMcy5zaGlmdCgpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh1cmwsIGBodHRwOi8vMTI3
LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0
YCk7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07CisgICAgICAgIHNjcmlwdC5v
bmVycm9yID0gcmVqZWN0OworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlw
dCk7CisgICAgfSk7Cit9LCAnaW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSBoYXZlIGEgaGFzaCcp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2Uu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTUzYTYyMTMxYTU3NWRiNTg1NDIxY2QyMWU1YjdjN2NlZWRmMjEyNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMv
aW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcwpAQCAtMCwwICsxIEBACitnbG9iYWxUaGlzLm1ldGFV
UkxzLnB1c2goaW1wb3J0Lm1ldGEudXJsKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396364</attachid>
            <date>2020-04-13 17:44:08 -0700</date>
            <delta_ts>2020-04-13 18:18:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205294-20200413174407.patch</filename>
            <type>text/plain</type>
            <size>13038</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2MDJkOWI4YWZmZDlm
YTdhNDJjZjVhYzI3Zjc1MGJhZTU4NDMzOC4uZWIwMTBkYzk3YzhlYzhjM2EyMzViYjZlNGE0ODVh
OGE2NTc2NjI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA0LTEzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgaW1wb3J0Lm1ldGEudXJs
OiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQgc2hvdWxkIGJlIHJlc3BvbnNlIFVSTCwgbm90
IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0czogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRo
LWhhc2guaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1l
dGEtdXJsLXdpdGgtaGFzaC5odG1sCisKKyAgICAgICAgVGhlIG1vZHVsZSBzaG91bGQgZXhwb3Nl
IHJlc3BvbnNlIFVSTCBhcyBgaW1wb3J0Lm1ldGEudXJsYCBpbnN0ZWFkIG9mIHJlcXVlc3QgVVJM
LgorICAgICAgICBJZiByZWRpcmVjdGlvbiBoYXBwZW5zLCB0aGlzIFVSTCBzaG91bGQgYmUgcmVk
aXJlY3RlZCBvbmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpjcmVhdGVJbXBvcnRN
ZXRhUHJvcGVydGllcyk6CisKIDIwMjAtMDQtMTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KIAogICAgICAgICBtb2R1bGUncyBkZWZhdWx0IGNyb3NzLW9yaWdpbiB2YWx1ZSBz
aG91bGQgYmUgImFub255bW91cyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDhlNDg4NGQyNDY3NjQ4YjhhOWFmMjUxZGYwYTUw
OGY2OTU1MWM2MWMuLjcxYjY1M2IyNmMzYWJjZGUwNTQ4MzIxYTg4ZTQxYTUxNGM5MDQ3YTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cApAQCAtMjY1LDEzICsyNjUsMjQgQEAgSlNDOjpKU09iamVjdCogU2NyaXB0TW9kdWxlTG9hZGVy
OjpjcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWMKICAgICBhdXRv
JiB2bSA9IGpzR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAotICAgIFVSTCBzb3VyY2VVUkwgPSBtb2R1bGVVUkwoKmpzR2xvYmFs
T2JqZWN0LCBtb2R1bGVLZXlWYWx1ZSk7Ci0gICAgQVNTRVJUKHNvdXJjZVVSTC5pc1ZhbGlkKCkp
OwotCiAgICAgYXV0byogbWV0YVByb3BlcnRpZXMgPSBKU0M6OmNvbnN0cnVjdEVtcHR5T2JqZWN0
KHZtLCBqc0dsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVyZSgpKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAotICAgIG1ldGFQcm9wZXJ0
aWVzLT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInVybCIp
LCBKU0M6OmpzU3RyaW5nKHZtLCBzb3VyY2VVUkwuc3RyaW5nKCkpKTsKKyAgICBVUkwgcmVzcG9u
c2VVUkw7CisgICAgaWYgKGlzUm9vdE1vZHVsZShtb2R1bGVLZXlWYWx1ZSkpCisgICAgICAgIHJl
c3BvbnNlVVJMID0gbV9kb2N1bWVudC51cmwoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJU
KG1vZHVsZUtleVZhbHVlLmlzU3RyaW5nKCkpOworICAgICAgICBVUkwgbW9kdWxlUmVxdWVzdFVS
TChVUkwoKSwgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZShqc0dsb2JhbE9iamVjdCkp
OworICAgICAgICBBU1NFUlQobW9kdWxlUmVxdWVzdFVSTC5pc1ZhbGlkKCkpOworCisgICAgICAg
IGF1dG8gaXRlcmF0b3IgPSBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmZpbmQobW9kdWxl
UmVxdWVzdFVSTCk7CisgICAgICAgIEFTU0VSVChpdGVyYXRvciAhPSBtX3JlcXVlc3RVUkxUb1Jl
c3BvbnNlVVJMTWFwLmVuZCgpKTsKKyAgICAgICAgcmVzcG9uc2VVUkwgPSBpdGVyYXRvci0+dmFs
dWU7CisgICAgfQorICAgIEFTU0VSVChyZXNwb25zZVVSTC5pc1ZhbGlkKCkpOworCisgICAgbWV0
YVByb3BlcnRpZXMtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAidXJsIiksIEpTQzo6anNTdHJpbmcodm0sIHJlc3BvbnNlVVJMLnN0cmluZygpKSk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICByZXR1cm4gbWV0YVBy
b3BlcnRpZXM7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMjM0Y2JjODA1OGIwNTUwYmI4ZjJmYTNjMDdhMWM0MDEyMzRmYjU1
Ny4uNDcyODhmZmJiM2FjN2I0ZDEwN2UwZjZjMDJiODg4YjIzNTY3ZmUxYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDIwLTA0LTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CisKKyAgICAgICAgaW1wb3J0Lm1ldGEudXJsOiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQg
c2hvdWxkIGJlIHJlc3BvbnNlIFVSTCwgbm90IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1bGUt
bWV0YS11cmwtcmVkaXJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFzaC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJl
Y3Qtd2l0aC1oYXNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1
bGUtbWV0YS11cmwtcmVkaXJlY3QuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9t
aXNjL21vZHVsZS1tZXRhLXVybC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXdpdGgtaGFzaC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1l
eHBvc2UuanM6IEFkZGVkLgorCiAyMDIwLTA0LTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgbW9kdWxlJ3MgZGVmYXVsdCBjcm9zcy1vcmlnaW4gdmFsdWUg
c2hvdWxkIGJlICJhbm9ueW1vdXMiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhkODAxOTBmNGU1NTYxOTNmNzJmZWVlMTEzZDRjNDMyZTkxZjA0MTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJs
LXJlZGlyZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBpbXBvcnQubWV0
YS51cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJsIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFzaC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJl
ZGlyZWN0LXdpdGgtaGFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM0NWFlYzAzMjM3Zjdh
YjM5YTJlOGIxOWIwNjUyN2RlYTY4MjNhNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1oYXNoLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBpbXBvcnQubWV0YS51cmwgc2hvdWxkIGJl
IHJlZGlyZWN0ZWQgdXJsIHdpdGggaGFzaCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWhhc2guaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1o
YXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODE4N2ZkYjQzODNmMTYwNmUxNzk2MzVkMTNmZTk0ODAxMTVh
MmI2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1
bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1oYXNoLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPmltcG9ydC5tZXRhLnVybCBzaG91
bGQgYmUgcmVkaXJlY3RlZCB1cmwgd2l0aCBoYXNoPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CitnbG9iYWxUaGlzLm1ldGFVUkxzID0gW107CisKK2Z1bmN0aW9u
IHJlZGlyZWN0VGVzdCh0YXJnZXRVUkwsIGV4cGVjdGVkKQoreworICAgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgIHZhciBzY3JpcHQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKKyAgICAgICAgc2NyaXB0LnR5cGUgPSAn
bW9kdWxlJzsKKyAgICAgICAgc2NyaXB0LnNyYyA9IHRhcmdldFVSTDsKKyAgICAgICAgc2NyaXB0
Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZ2xvYmFs
VGhpcy5tZXRhVVJMcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgbGV0IHVybCA9IGdsb2JhbFRo
aXMubWV0YVVSTHMuc2hpZnQoKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModXJsLCBleHBl
Y3RlZCk7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07CisgICAgICAgIHNjcmlw
dC5vbmVycm9yID0gcmVqZWN0OworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNj
cmlwdCk7CisgICAgfSk7Cit9CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIFBy
b21pc2UucmVzb2x2ZSgpCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5j
b2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1w
b3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MSIpLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21p
c2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDFgKTsKKyAgICAgICAg
fSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHJlZGly
ZWN0VGVzdCgnL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25l
bnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwt
ZXhwb3NlLmpzIikgKyAiI3Rlc3QyIiwgYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291
cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3QyYCk7CisgICAgICAgIH0pCisgICAg
ICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3Qo
Jy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5q
cyN0ZXN0NCIpICsgIiN0ZXN0MyIsIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJj
ZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0NGApOworICAgICAgICB9KQorICAgICAg
ICAudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcv
cmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPSIgKyBlbmNvZGVVUklD
b21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0
YS11cmwtZXhwb3NlLmpzI3Rlc3RBIikpLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVz
b3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEFgKTsKKyAgICAgICAgfSkKKyAg
ICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdGVz
dCBwYXNzIG9uY2UgdGhlIGZvbGxvd2luZyBpc3N1ZSBpcyBmaXhlZC4KKyAgICAgICAgICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKyAgICAgICAg
ICAgIC8vIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0n
ICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3Jl
ZGlyZWN0LnBocD91cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMiKSArICIjdGVzdEIi
KSwgYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwt
ZXhwb3NlLmpzI3Rlc3RCYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3Qu
cGhwP3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVz
b3VyY2VzL3JlZGlyZWN0LnBocD91cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMiKSkg
KyAiI3Rlc3RDIiwgYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQt
bWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RDYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRlc3QgcGFzcyBvbmNlIHRo
ZSBmb2xsb3dpbmcgaXNzdWUgaXMgZml4ZWQuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCisgICAgICAgICAgICAvLyByZXR1cm4g
cmVkaXJlY3RUZXN0KCcvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNv
bXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJs
PSIgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291
cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzIikgKyAiI3Rlc3RBQSIpICsgIiN0ZXN0QkIi
LCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1l
eHBvc2UuanMjdGVzdEFBYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3Qu
cGhwP3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVz
b3VyY2VzL3JlZGlyZWN0LnBocD91cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVz
dENDIikpICsgIiN0ZXN0REQiLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2Vz
L2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdENDYCk7CisgICAgICAgIH0pCisgICAgICAg
IC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9y
ZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9IiArIGVuY29kZVVSSUNv
bXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRh
LXVybC1leHBvc2UuanMjdGVzdEVFIikgKyAiI3Rlc3RGRiIpLCBgaHR0cDovLzEyNy4wLjAuMTo4
MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEVFYCk7Cisg
ICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVy
biByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5jb2RlVVJJ
Q29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91
cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVz
b3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEdHRyIpICsgIiN0ZXN0SEhIIikg
KyAiI3Rlc3RJSUkiLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9y
dC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEdHR2ApOworICAgICAgICB9KQorfSwgJ2ltcG9ydC5t
ZXRhLnVybCBzaG91bGQgYmUgcmVkaXJlY3RlZCB1cmwgd2l0aCBoYXNoJyk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODVjOWExYzNi
ZWQ3YzJmNDBhZTkzYTVmYzNkZDNlYjM5MmZhZTQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5odG1sCkBAIC0w
LDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5pbXBv
cnQubWV0YS51cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJsPC90aXRsZT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitnbG9iYWxUaGlzLm1ldGFVUkxzID0gW107Citwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzY3JpcHQnKTsKKyAgICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJzsKKyAgICAgICAgc2Ny
aXB0LnNyYyA9ICcvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBv
bmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVy
bC1leHBvc2UuanMiKTsKKyAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZ2xvYmFsVGhpcy5tZXRhVVJMcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhnbG9iYWxUaGlzLm1ldGFVUkxzWzBdLCBgaHR0cDov
LzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanNg
KTsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfTsKKyAgICAgICAgc2NyaXB0Lm9u
ZXJyb3IgPSByZWplY3Q7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0
KTsKKyAgICB9KTsKK30sICdpbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJs
Jyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWQwOWY3NGY3NGUyZGQ3OWIwMmRkMzMxYzQ2ZGYyZjM5
Nzk1ZTA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21v
ZHVsZS1tZXRhLXVybC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIGltcG9ydC5tZXRhLnVybCBzaG91bGQgYmUgaGF2ZSBhIGhhc2ggCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXdpdGgtaGFz
aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJiMzI5YmM0ZTkwMTA2MDBjOTdkMjIxOTA5MzRkMjliNTcwOTVk
NjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxl
LW1ldGEtdXJsLXdpdGgtaGFzaC5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5pbXBvcnQubWV0YS51cmwgc2hvdWxkIGhhdmUgYSBo
YXNoPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitnbG9iYWxU
aGlzLm1ldGFVUkxzID0gW107CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5l
dyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgdmFyIHNjcmlw
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgICAgICBzY3JpcHQudHlw
ZSA9ICdtb2R1bGUnOworICAgICAgICBzY3JpcHQuc3JjID0gYGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RgOworICAgICAg
ICBzY3JpcHQub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhnbG9iYWxUaGlzLm1ldGFVUkxzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBsZXQgdXJsID0g
Z2xvYmFsVGhpcy5tZXRhVVJMcy5zaGlmdCgpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh1
cmwsIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJs
LWV4cG9zZS5qcyN0ZXN0YCk7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07Cisg
ICAgICAgIHNjcmlwdC5vbmVycm9yID0gcmVqZWN0OworICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKHNjcmlwdCk7CisgICAgfSk7Cit9LCAnaW1wb3J0Lm1ldGEudXJsIHNob3VsZCBi
ZSBoYXZlIGEgaGFzaCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1l
eHBvc2UuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1t
ZXRhLXVybC1leHBvc2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTUzYTYyMTMxYTU3NWRiNTg1NDIxY2QyMWU1
YjdjN2NlZWRmMjEyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcwpAQCAtMCwwICsxIEBACitn
bG9iYWxUaGlzLm1ldGFVUkxzLnB1c2goaW1wb3J0Lm1ldGEudXJsKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396367</attachid>
            <date>2020-04-13 18:18:19 -0700</date>
            <delta_ts>2020-04-13 18:52:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205294-20200413181818.patch</filename>
            <type>text/plain</type>
            <size>13890</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2MDJkOWI4YWZmZDlm
YTdhNDJjZjVhYzI3Zjc1MGJhZTU4NDMzOC4uZDY2OGIyMmM0YmNlMzAyNDMxOWRlMDFmYjRiZDI4
OTEyM2NlZDUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA0LTEzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgaW1wb3J0Lm1ldGEudXJs
OiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQgc2hvdWxkIGJlIHJlc3BvbnNlIFVSTCwgbm90
IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0czogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRo
LWhhc2guaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1l
dGEtdXJsLXdpdGgtaGFzaC5odG1sCisKKyAgICAgICAgVGhlIG1vZHVsZSBzaG91bGQgZXhwb3Nl
IHJlc3BvbnNlIFVSTCBhcyBgaW1wb3J0Lm1ldGEudXJsYCBpbnN0ZWFkIG9mIHJlcXVlc3QgVVJM
LgorICAgICAgICBJZiByZWRpcmVjdGlvbiBoYXBwZW5zLCB0aGlzIFVSTCBzaG91bGQgYmUgcmVk
aXJlY3RlZCBvbmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpjcmVhdGVJbXBvcnRN
ZXRhUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKToKKwogMjAyMC0wNC0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgogCiAgICAgICAgIG1vZHVsZSdzIGRlZmF1bHQgY3Jvc3Mtb3JpZ2luIHZhbHVlIHNo
b3VsZCBiZSAiYW5vbnltb3VzIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdE1vZHVsZUxvYWRlci5jcHAKaW5kZXggOGU0ODg0ZDI0Njc2NDhiOGE5YWYyNTFkZjBhNTA4
ZjY5NTUxYzYxYy4uNmI5NDdkMTE0OGIyNjJhNzdmODM5YmI5MGVkYWEzNjg2NDlmNzkwZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3Bw
CkBAIC0yNjUsMTMgKzI2NSwyNCBAQCBKU0M6OkpTT2JqZWN0KiBTY3JpcHRNb2R1bGVMb2FkZXI6
OmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplYwogICAgIGF1dG8m
IHZtID0ganNHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCi0gICAgVVJMIHNvdXJjZVVSTCA9IG1vZHVsZVVSTCgqanNHbG9iYWxP
YmplY3QsIG1vZHVsZUtleVZhbHVlKTsKLSAgICBBU1NFUlQoc291cmNlVVJMLmlzVmFsaWQoKSk7
Ci0KICAgICBhdXRvKiBtZXRhUHJvcGVydGllcyA9IEpTQzo6Y29uc3RydWN0RW1wdHlPYmplY3Qo
dm0sIGpzR2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCi0gICAgbWV0YVByb3BlcnRp
ZXMtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidXJsIiks
IEpTQzo6anNTdHJpbmcodm0sIHNvdXJjZVVSTC5zdHJpbmcoKSkpOworICAgIFVSTCByZXNwb25z
ZVVSTDsKKyAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkKKyAgICAgICAgcmVz
cG9uc2VVUkwgPSBtX2RvY3VtZW50LnVybCgpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQo
bW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CisgICAgICAgIFVSTCBtb2R1bGVSZXF1ZXN0VVJM
KFVSTCgpLCBhc1N0cmluZyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKGpzR2xvYmFsT2JqZWN0KSk7
CisgICAgICAgIEFTU0VSVChtb2R1bGVSZXF1ZXN0VVJMLmlzVmFsaWQoKSk7CisKKyAgICAgICAg
YXV0byBpdGVyYXRvciA9IG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuZmluZChtb2R1bGVS
ZXF1ZXN0VVJMKTsKKyAgICAgICAgQVNTRVJUKGl0ZXJhdG9yICE9IG1fcmVxdWVzdFVSTFRvUmVz
cG9uc2VVUkxNYXAuZW5kKCkpOworICAgICAgICByZXNwb25zZVVSTCA9IGl0ZXJhdG9yLT52YWx1
ZTsKKyAgICB9CisgICAgQVNTRVJUKHJlc3BvbnNlVVJMLmlzVmFsaWQoKSk7CisKKyAgICBtZXRh
UHJvcGVydGllcy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJ1cmwiKSwgSlNDOjpqc1N0cmluZyh2bSwgcmVzcG9uc2VVUkwuc3RyaW5nKCkpKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAgIHJldHVybiBtZXRhUHJv
cGVydGllczsKQEAgLTMxOCw3ICszMjksMTEgQEAgdm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciYgbG9hZGVyLCBSZWZQdHIKICAg
ICAgICAgfQogICAgIH0KIAotICAgIG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuYWRkKFdU
Rk1vdmUoc291cmNlVVJMKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCkpOworICAgIFVS
TCByZXNwb25zZVVSTCA9IGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpOworICAgIGlmIChz
b3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkgJiYgIXJlc3BvbnNlVVJMLmhhc0ZyYWdt
ZW50SWRlbnRpZmllcigpKQorICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZp
ZXIoc291cmNlVVJMLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKworICAgIG1fcmVxdWVzdFVSTFRv
UmVzcG9uc2VVUkxNYXAuYWRkKFdURk1vdmUoc291cmNlVVJMKSwgV1RGTW92ZShyZXNwb25zZVVS
TCkpOwogICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9i
amVjdCYganNHbG9iYWxPYmplY3QpIHsKICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2Rl
OjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKICAgICAgICAgICAgIEpTQzo6U291cmNlQ29k
ZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyAmY2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2Rl
KCkgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMjM0Y2JjODA1OGIwNTUwYmI4ZjJmYTNjMDdhMWM0MDEyMzRmYjU1Ny4u
NDcyODhmZmJiM2FjN2I0ZDEwN2UwZjZjMDJiODg4YjIzNTY3ZmUxYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDIwLTA0LTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisK
KyAgICAgICAgaW1wb3J0Lm1ldGEudXJsOiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQgc2hv
dWxkIGJlIHJlc3BvbnNlIFVSTCwgbm90IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0
YS11cmwtcmVkaXJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFzaC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qt
d2l0aC1oYXNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1bGUt
bWV0YS11cmwtcmVkaXJlY3QuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNj
L21vZHVsZS1tZXRhLXVybC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXdpdGgtaGFzaC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBv
c2UuanM6IEFkZGVkLgorCiAyMDIwLTA0LTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CiAKICAgICAgICAgbW9kdWxlJ3MgZGVmYXVsdCBjcm9zcy1vcmlnaW4gdmFsdWUgc2hv
dWxkIGJlICJhbm9ueW1vdXMiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhkODAxOTBmNGU1NTYxOTNmNzJmZWVlMTEzZDRjNDMyZTkxZjA0MTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJl
ZGlyZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBpbXBvcnQubWV0YS51
cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJsIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFzaC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGly
ZWN0LXdpdGgtaGFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM0NWFlYzAzMjM3ZjdhYjM5
YTJlOGIxOWIwNjUyN2RlYTY4MjNhNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1oYXNoLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBpbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIHJl
ZGlyZWN0ZWQgdXJsIHdpdGggaGFzaCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWhhc2guaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1oYXNo
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODE4N2ZkYjQzODNmMTYwNmUxNzk2MzVkMTNmZTk0ODAxMTVhMmI2
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUt
bWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1oYXNoLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPmltcG9ydC5tZXRhLnVybCBzaG91bGQg
YmUgcmVkaXJlY3RlZCB1cmwgd2l0aCBoYXNoPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitnbG9iYWxUaGlzLm1ldGFVUkxzID0gW107CisKK2Z1bmN0aW9uIHJl
ZGlyZWN0VGVzdCh0YXJnZXRVUkwsIGV4cGVjdGVkKQoreworICAgIHJldHVybiBuZXcgUHJvbWlz
ZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKKyAgICAgICAgc2NyaXB0LnR5cGUgPSAnbW9k
dWxlJzsKKyAgICAgICAgc2NyaXB0LnNyYyA9IHRhcmdldFVSTDsKKyAgICAgICAgc2NyaXB0Lm9u
bG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZ2xvYmFsVGhp
cy5tZXRhVVJMcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgbGV0IHVybCA9IGdsb2JhbFRoaXMu
bWV0YVVSTHMuc2hpZnQoKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModXJsLCBleHBlY3Rl
ZCk7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07CisgICAgICAgIHNjcmlwdC5v
bmVycm9yID0gcmVqZWN0OworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlw
dCk7CisgICAgfSk7Cit9CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIFByb21p
c2UucmVzb2x2ZSgpCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJl
dHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5jb2Rl
VVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0
LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MSIpLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2Mv
cmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDFgKTsKKyAgICAgICAgfSkK
KyAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHJlZGlyZWN0
VGVzdCgnL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQo
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhw
b3NlLmpzIikgKyAiI3Rlc3QyIiwgYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNl
cy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3QyYCk7CisgICAgICAgIH0pCisgICAgICAg
IC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9y
ZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0
ZXN0NCIpICsgIiN0ZXN0MyIsIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMv
aW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0NGApOworICAgICAgICB9KQorICAgICAgICAu
dGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvcmVz
b3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPSIgKyBlbmNvZGVVUklDb21w
b25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11
cmwtZXhwb3NlLmpzI3Rlc3RBIikpLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3Vy
Y2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEFgKTsKKyAgICAgICAgfSkKKyAgICAg
ICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdGVzdCBw
YXNzIG9uY2UgdGhlIGZvbGxvd2luZyBpc3N1ZSBpcyBmaXhlZC4KKyAgICAgICAgICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKyAgICAgICAgICAg
IC8vIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsg
ZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGly
ZWN0LnBocD91cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMiKSArICIjdGVzdEIiKSwg
YGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhw
b3NlLmpzI3Rlc3RCYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhw
P3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3Vy
Y2VzL3JlZGlyZWN0LnBocD91cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMiKSkgKyAi
I3Rlc3RDIiwgYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0
YS11cmwtZXhwb3NlLmpzI3Rlc3RDYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRlc3QgcGFzcyBvbmNlIHRoZSBm
b2xsb3dpbmcgaXNzdWUgaXMgZml4ZWQuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCisgICAgICAgICAgICAvLyByZXR1cm4gcmVk
aXJlY3RUZXN0KCcvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBv
bmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPSIg
KyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNl
cy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzIikgKyAiI3Rlc3RBQSIpICsgIiN0ZXN0QkIiLCBg
aHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBv
c2UuanMjdGVzdEFBYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhw
P3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3Vy
Y2VzL3JlZGlyZWN0LnBocD91cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEND
IikpICsgIiN0ZXN0REQiLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2lt
cG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdENDYCk7CisgICAgICAgIH0pCisgICAgICAgIC50
aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNv
dXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9IiArIGVuY29kZVVSSUNvbXBv
bmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVy
bC1leHBvc2UuanMjdGVzdEVFIikgKyAiI3Rlc3RGRiIpLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAw
L21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEVFYCk7CisgICAg
ICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBy
ZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0nICsgZW5jb2RlVVJJQ29t
cG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9
IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3Vy
Y2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEdHRyIpICsgIiN0ZXN0SEhIIikgKyAi
I3Rlc3RJSUkiLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1t
ZXRhLXVybC1leHBvc2UuanMjdGVzdEdHR2ApOworICAgICAgICB9KQorfSwgJ2ltcG9ydC5tZXRh
LnVybCBzaG91bGQgYmUgcmVkaXJlY3RlZCB1cmwgd2l0aCBoYXNoJyk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9t
b2R1bGUtbWV0YS11cmwtcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODVjOWExYzNiZWQ3
YzJmNDBhZTkzYTVmYzNkZDNlYjM5MmZhZTQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5odG1sCkBAIC0wLDAg
KzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5pbXBvcnQu
bWV0YS51cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJsPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitnbG9iYWxUaGlzLm1ldGFVUkxzID0gW107Citwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
Y3JpcHQnKTsKKyAgICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJzsKKyAgICAgICAgc2NyaXB0
LnNyYyA9ICcvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVu
dCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1l
eHBvc2UuanMiKTsKKyAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZ2xvYmFsVGhpcy5tZXRhVVJMcy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhnbG9iYWxUaGlzLm1ldGFVUkxzWzBdLCBgaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanNgKTsK
KyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfTsKKyAgICAgICAgc2NyaXB0Lm9uZXJy
b3IgPSByZWplY3Q7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsK
KyAgICB9KTsKK30sICdpbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJsJyk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44MWQwOWY3NGY3NGUyZGQ3OWIwMmRkMzMxYzQ2ZGYyZjM5Nzk1
ZTA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVs
ZS1tZXRhLXVybC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IGltcG9ydC5tZXRhLnVybCBzaG91bGQgYmUgaGF2ZSBhIGhhc2ggCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXdpdGgtaGFzaC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJiMzI5YmM0ZTkwMTA2MDBjOTdkMjIxOTA5MzRkMjliNTcwOTVkNjcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1l
dGEtdXJsLXdpdGgtaGFzaC5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5pbXBvcnQubWV0YS51cmwgc2hvdWxkIGhhdmUgYSBoYXNo
PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitnbG9iYWxUaGlz
Lm1ldGFVUkxzID0gW107CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgdmFyIHNjcmlwdCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgICAgICBzY3JpcHQudHlwZSA9
ICdtb2R1bGUnOworICAgICAgICBzY3JpcHQuc3JjID0gYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9t
aXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RgOworICAgICAgICBz
Y3JpcHQub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhn
bG9iYWxUaGlzLm1ldGFVUkxzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBsZXQgdXJsID0gZ2xv
YmFsVGhpcy5tZXRhVVJMcy5zaGlmdCgpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh1cmws
IGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4
cG9zZS5qcyN0ZXN0YCk7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07CisgICAg
ICAgIHNjcmlwdC5vbmVycm9yID0gcmVqZWN0OworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKHNjcmlwdCk7CisgICAgfSk7Cit9LCAnaW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSBo
YXZlIGEgaGFzaCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBv
c2UuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRh
LXVybC1leHBvc2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTUzYTYyMTMxYTU3NWRiNTg1NDIxY2QyMWU1Yjdj
N2NlZWRmMjEyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcwpAQCAtMCwwICsxIEBACitnbG9i
YWxUaGlzLm1ldGFVUkxzLnB1c2goaW1wb3J0Lm1ldGEudXJsKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396370</attachid>
            <date>2020-04-13 18:52:54 -0700</date>
            <delta_ts>2020-04-13 19:12:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205294-20200413185253.patch</filename>
            <type>text/plain</type>
            <size>14203</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2MDJkOWI4YWZmZDlm
YTdhNDJjZjVhYzI3Zjc1MGJhZTU4NDMzOC4uZDY2OGIyMmM0YmNlMzAyNDMxOWRlMDFmYjRiZDI4
OTEyM2NlZDUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA0LTEzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgaW1wb3J0Lm1ldGEudXJs
OiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQgc2hvdWxkIGJlIHJlc3BvbnNlIFVSTCwgbm90
IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0czogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRo
LWhhc2guaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1l
dGEtdXJsLXdpdGgtaGFzaC5odG1sCisKKyAgICAgICAgVGhlIG1vZHVsZSBzaG91bGQgZXhwb3Nl
IHJlc3BvbnNlIFVSTCBhcyBgaW1wb3J0Lm1ldGEudXJsYCBpbnN0ZWFkIG9mIHJlcXVlc3QgVVJM
LgorICAgICAgICBJZiByZWRpcmVjdGlvbiBoYXBwZW5zLCB0aGlzIFVSTCBzaG91bGQgYmUgcmVk
aXJlY3RlZCBvbmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpjcmVhdGVJbXBvcnRN
ZXRhUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKToKKwogMjAyMC0wNC0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgogCiAgICAgICAgIG1vZHVsZSdzIGRlZmF1bHQgY3Jvc3Mtb3JpZ2luIHZhbHVlIHNo
b3VsZCBiZSAiYW5vbnltb3VzIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdE1vZHVsZUxvYWRlci5jcHAKaW5kZXggOGU0ODg0ZDI0Njc2NDhiOGE5YWYyNTFkZjBhNTA4
ZjY5NTUxYzYxYy4uNWQ2YThiM2MxMjZjNzBjNjE4ZDk1NWQxNzUxYTViMmFlMDRlNTVlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3Bw
CkBAIC0yNjUsMTMgKzI2NSwyNCBAQCBKU0M6OkpTT2JqZWN0KiBTY3JpcHRNb2R1bGVMb2FkZXI6
OmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplYwogICAgIGF1dG8m
IHZtID0ganNHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCi0gICAgVVJMIHNvdXJjZVVSTCA9IG1vZHVsZVVSTCgqanNHbG9iYWxP
YmplY3QsIG1vZHVsZUtleVZhbHVlKTsKLSAgICBBU1NFUlQoc291cmNlVVJMLmlzVmFsaWQoKSk7
Ci0KICAgICBhdXRvKiBtZXRhUHJvcGVydGllcyA9IEpTQzo6Y29uc3RydWN0RW1wdHlPYmplY3Qo
dm0sIGpzR2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCi0gICAgbWV0YVByb3BlcnRp
ZXMtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidXJsIiks
IEpTQzo6anNTdHJpbmcodm0sIHNvdXJjZVVSTC5zdHJpbmcoKSkpOworICAgIFVSTCByZXNwb25z
ZVVSTDsKKyAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkKKyAgICAgICAgcmVz
cG9uc2VVUkwgPSBtX2RvY3VtZW50LnVybCgpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQo
bW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CisgICAgICAgIFVSTCBtb2R1bGVSZXF1ZXN0VVJM
KFVSTCgpLCBhc1N0cmluZyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKGpzR2xvYmFsT2JqZWN0KSk7
CisgICAgICAgIEFTU0VSVChtb2R1bGVSZXF1ZXN0VVJMLmlzVmFsaWQoKSk7CisKKyAgICAgICAg
YXV0byBpdGVyYXRvciA9IG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuZmluZChtb2R1bGVS
ZXF1ZXN0VVJMKTsKKyAgICAgICAgQVNTRVJUKGl0ZXJhdG9yICE9IG1fcmVxdWVzdFVSTFRvUmVz
cG9uc2VVUkxNYXAuZW5kKCkpOworICAgICAgICByZXNwb25zZVVSTCA9IGl0ZXJhdG9yLT52YWx1
ZTsKKyAgICB9CisgICAgQVNTRVJUKHJlc3BvbnNlVVJMLmlzVmFsaWQoKSk7CisKKyAgICBtZXRh
UHJvcGVydGllcy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJ1cmwiKSwgSlNDOjpqc1N0cmluZyh2bSwgcmVzcG9uc2VVUkwuc3RyaW5nKCkpKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAgIHJldHVybiBtZXRhUHJv
cGVydGllczsKQEAgLTMxOCw3ICszMjksMTYgQEAgdm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciYgbG9hZGVyLCBSZWZQdHIKICAg
ICAgICAgfQogICAgIH0KIAotICAgIG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuYWRkKFdU
Rk1vdmUoc291cmNlVVJMKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCkpOworICAgIFVS
TCByZXNwb25zZVVSTCA9IGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpOworICAgIC8vIElm
IHdlIGRvIG5vdCBoYXZlIHJlZGlyZWN0aW9uLCB3ZSBtdXN0IHJlc2VydmUgdGhlIHNvdXJjZSBV
UkwncyBmcmFnbWVudCBleHBsaWNpdGx5IGhlcmUgc2luY2UgUmVzb3VyY2VSZXNwb25zZTo6dXJs
KCkgaXMgdGhlIG9uZSB3aGVuIHdlIGZpcnN0IGNhY2hlIGl0IHRvIE1lbW9yeUNhY2hlLgorICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgdHJhY2sgZnJhZ21lbnRzIHRob3VnaCByZWRpcmVjdGlvbnMu
CisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODQyMAor
ICAgIGlmICghY2FjaGVkU2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpKSB7CisgICAgICAgIGlmIChz
b3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICByZXNwb25zZVVS
TC5zZXRGcmFnbWVudElkZW50aWZpZXIoc291cmNlVVJMLmZyYWdtZW50SWRlbnRpZmllcigpKTsK
KyAgICB9CisKKyAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChXVEZNb3ZlKHNv
dXJjZVVSTCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsKICAgICBwcm9taXNlLT5yZXNvbHZlV2l0
aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7CiAgICAg
ICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCks
CiAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hl
ZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNj
cmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIzNGNiYzgwNThiMDU1
MGJiOGYyZmEzYzA3YTFjNDAxMjM0ZmI1NTcuLjQ3Mjg4ZmZiYjNhYzdiNGQxMDdlMGY2YzAyYjg4
OGIyMzU2N2ZlMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wNC0xMyAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIGltcG9ydC5tZXRhLnVybDogYmFz
ZVVSTCBmb3IgYSBtb2R1bGUgc2NyaXB0IHNob3VsZCBiZSByZXNwb25zZSBVUkwsIG5vdCByZXF1
ZXN0IFVSTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1Mjk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVj
dC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21p
c2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFzaC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRh
LXVybC13aXRoLWhhc2guaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3Jl
c291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzOiBBZGRlZC4KKwogMjAyMC0wNC0xMyAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIG1vZHVsZSdzIGRl
ZmF1bHQgY3Jvc3Mtb3JpZ2luIHZhbHVlIHNob3VsZCBiZSAiYW5vbnltb3VzIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJs
LXJlZGlyZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDgwMTkwZjRlNTU2MTkzZjcyZmVl
ZTExM2Q0YzQzMmU5MWYwNDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgaW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSByZWRpcmVjdGVkIHVybCAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJjNDVhZWMwMzIzN2Y3YWIzOWEyZThiMTliMDY1MjdkZWE2ODIzYTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJs
LXJlZGlyZWN0LXdpdGgtaGFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
aW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSByZWRpcmVjdGVkIHVybCB3aXRoIGhhc2ggCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVk
aXJlY3Qtd2l0aC1oYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxl
LW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxODdmZGI0Mzgz
ZjE2MDZlMTc5NjM1ZDEzZmU5NDgwMTE1YTJiNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFzaC5o
dG1sCkBAIC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0
aXRsZT5pbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJsIHdpdGggaGFzaDwv
dGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZ2xvYmFsVGhpcy5t
ZXRhVVJMcyA9IFtdOworCitmdW5jdGlvbiByZWRpcmVjdFRlc3QodGFyZ2V0VVJMLCBleHBlY3Rl
ZCkKK3sKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7
CisgICAgICAgIHNjcmlwdC50eXBlID0gJ21vZHVsZSc7CisgICAgICAgIHNjcmlwdC5zcmMgPSB0
YXJnZXRVUkw7CisgICAgICAgIHNjcmlwdC5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbFRoaXMubWV0YVVSTHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGxldCB1cmwgPSBnbG9iYWxUaGlzLm1ldGFVUkxzLnNoaWZ0KCk7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHVybCwgZXhwZWN0ZWQpOworICAgICAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgICB9OworICAgICAgICBzY3JpcHQub25lcnJvciA9IHJlamVjdDsKKyAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOworICAgIH0pOworfQorCitwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKQorICAgICAgICAudGhlbihm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAu
MTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDEiKSwg
YGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhw
b3NlLmpzI3Rlc3QxYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhw
P3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9y
ZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyIpICsgIiN0ZXN0MiIsIGBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0
ZXN0MmApOworICAgICAgICB9KQorICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyAr
IGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2Vz
L2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDQiKSArICIjdGVzdDMiLCBgaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVz
dDRgKTsKKyAgICAgICAgfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBl
bmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwP3VybD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
bWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QSIpKSwgYGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpz
I3Rlc3RBYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIHRlc3QgcGFzcyBvbmNlIHRoZSBmb2xsb3dpbmcgaXNzdWUg
aXMgZml4ZWQuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU4NDIwCisgICAgICAgICAgICAvLyByZXR1cm4gcmVkaXJlY3RUZXN0KCcvcmVz
b3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPSIgKyBlbmNvZGVVUklDb21w
b25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11
cmwtZXhwb3NlLmpzIikgKyAiI3Rlc3RCIiksIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9y
ZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QmApOworICAgICAgICB9KQor
ICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVkaXJlY3RU
ZXN0KCcvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPSIgKyBlbmNv
ZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBv
cnQtbWV0YS11cmwtZXhwb3NlLmpzIikpICsgIiN0ZXN0QyIsIGBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0Q2ApOworICAg
ICAgICB9KQorICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAvLyBGSVhN
RTogVGhpcyB0ZXN0IHBhc3Mgb25jZSB0aGUgZm9sbG93aW5nIGlzc3VlIGlzIGZpeGVkLgorICAg
ICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODQy
MAorICAgICAgICAgICAgLy8gcmV0dXJuIHJlZGlyZWN0VGVzdCgnL3Jlc291cmNlcy9yZWRpcmVj
dC5waHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9y
ZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyIp
ICsgIiN0ZXN0QUEiKSArICIjdGVzdEJCIiwgYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jl
c291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RBQWApOworICAgICAgICB9KQor
ICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVkaXJlY3RU
ZXN0KCcvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPSIgKyBlbmNv
ZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBv
cnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RDQyIpKSArICIjdGVzdEREIiwgYGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RD
Q2ApOworICAgICAgICB9KQorICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVu
Y29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVj
dC5waHA/dXJsPSIgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9t
aXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RFRSIpICsgIiN0ZXN0
RkYiKSwgYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11
cmwtZXhwb3NlLmpzI3Rlc3RFRWApOworICAgICAgICB9KQorICAgICAgICAudGhlbihmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvcmVzb3VyY2VzL3JlZGly
ZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPSIgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpz
I3Rlc3RHR0ciKSArICIjdGVzdEhISCIpICsgIiN0ZXN0SUlJIiwgYGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RHR0dgKTsK
KyAgICAgICAgfSkKK30sICdpbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJs
IHdpdGggaGFzaCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzg1YzlhMWMzYmVkN2MyZjQwYWU5M2E1ZmMzZGQzZWIzOTJmYWU0MQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0
YS11cmwtcmVkaXJlY3QuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8dGl0bGU+aW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSByZWRpcmVjdGVk
IHVybDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZ2xvYmFs
VGhpcy5tZXRhVVJMcyA9IFtdOworcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3
IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICB2YXIgc2NyaXB0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CisgICAgICAgIHNjcmlwdC50eXBl
ID0gJ21vZHVsZSc7CisgICAgICAgIHNjcmlwdC5zcmMgPSAnL3Jlc291cmNlcy9yZWRpcmVjdC5w
aHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNj
L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzIik7CisgICAgICAgIHNjcmlwdC5v
bmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbFRo
aXMubWV0YVVSTHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZ2xvYmFs
VGhpcy5tZXRhVVJMc1swXSwgYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9p
bXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzYCk7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAg
ICAgIH07CisgICAgICAgIHNjcmlwdC5vbmVycm9yID0gcmVqZWN0OworICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7CisgICAgfSk7Cit9LCAnaW1wb3J0Lm1ldGEudXJs
IHNob3VsZCBiZSByZWRpcmVjdGVkIHVybCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJs
LXdpdGgtaGFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9k
dWxlLW1ldGEtdXJsLXdpdGgtaGFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODFkMDlmNzRm
NzRlMmRkNzliMDJkZDMzMWM0NmRmMmYzOTc5NWUwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBpbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIGhh
dmUgYSBoYXNoIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9k
dWxlLW1ldGEtdXJsLXdpdGgtaGFzaC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L21vZHVsZS1tZXRhLXVybC13aXRoLWhhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjMyOWJjNGU5MDEw
NjAwYzk3ZDIyMTkwOTM0ZDI5YjU3MDk1ZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC13aXRoLWhhc2guaHRtbApAQCAtMCww
ICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+aW1wb3J0
Lm1ldGEudXJsIHNob3VsZCBoYXZlIGEgaGFzaDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorZ2xvYmFsVGhpcy5tZXRhVVJMcyA9IFtdOworCitwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVq
ZWN0KSB7CisgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3Jp
cHQnKTsKKyAgICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJzsKKyAgICAgICAgc2NyaXB0LnNy
YyA9IGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJs
LWV4cG9zZS5qcyN0ZXN0YDsKKyAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZ2xvYmFsVGhpcy5tZXRhVVJMcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgbGV0IHVybCA9IGdsb2JhbFRoaXMubWV0YVVSTHMuc2hpZnQoKTsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHModXJsLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2Mv
cmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdGApOworICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICB9OworICAgICAgICBzY3JpcHQub25lcnJvciA9IHJlamVjdDsK
KyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOworICAgIH0pOworfSwg
J2ltcG9ydC5tZXRhLnVybCBzaG91bGQgYmUgaGF2ZSBhIGhhc2gnKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jl
c291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1
M2E2MjEzMWE1NzVkYjU4NTQyMWNkMjFlNWI3YzdjZWVkZjIxMjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1l
eHBvc2UuanMKQEAgLTAsMCArMSBAQAorZ2xvYmFsVGhpcy5tZXRhVVJMcy5wdXNoKGltcG9ydC5t
ZXRhLnVybCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396371</attachid>
            <date>2020-04-13 19:12:54 -0700</date>
            <delta_ts>2020-04-14 05:17:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205294-20200413191253.patch</filename>
            <type>text/plain</type>
            <size>14888</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2MDJkOWI4YWZmZDlm
YTdhNDJjZjVhYzI3Zjc1MGJhZTU4NDMzOC4uZDY2OGIyMmM0YmNlMzAyNDMxOWRlMDFmYjRiZDI4
OTEyM2NlZDUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA0LTEzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgaW1wb3J0Lm1ldGEudXJs
OiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQgc2hvdWxkIGJlIHJlc3BvbnNlIFVSTCwgbm90
IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0czogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRo
LWhhc2guaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1l
dGEtdXJsLXdpdGgtaGFzaC5odG1sCisKKyAgICAgICAgVGhlIG1vZHVsZSBzaG91bGQgZXhwb3Nl
IHJlc3BvbnNlIFVSTCBhcyBgaW1wb3J0Lm1ldGEudXJsYCBpbnN0ZWFkIG9mIHJlcXVlc3QgVVJM
LgorICAgICAgICBJZiByZWRpcmVjdGlvbiBoYXBwZW5zLCB0aGlzIFVSTCBzaG91bGQgYmUgcmVk
aXJlY3RlZCBvbmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpjcmVhdGVJbXBvcnRN
ZXRhUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKToKKwogMjAyMC0wNC0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgogCiAgICAgICAgIG1vZHVsZSdzIGRlZmF1bHQgY3Jvc3Mtb3JpZ2luIHZhbHVlIHNo
b3VsZCBiZSAiYW5vbnltb3VzIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdE1vZHVsZUxvYWRlci5jcHAKaW5kZXggOGU0ODg0ZDI0Njc2NDhiOGE5YWYyNTFkZjBhNTA4
ZjY5NTUxYzYxYy4uNWQ2YThiM2MxMjZjNzBjNjE4ZDk1NWQxNzUxYTViMmFlMDRlNTVlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3Bw
CkBAIC0yNjUsMTMgKzI2NSwyNCBAQCBKU0M6OkpTT2JqZWN0KiBTY3JpcHRNb2R1bGVMb2FkZXI6
OmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplYwogICAgIGF1dG8m
IHZtID0ganNHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCi0gICAgVVJMIHNvdXJjZVVSTCA9IG1vZHVsZVVSTCgqanNHbG9iYWxP
YmplY3QsIG1vZHVsZUtleVZhbHVlKTsKLSAgICBBU1NFUlQoc291cmNlVVJMLmlzVmFsaWQoKSk7
Ci0KICAgICBhdXRvKiBtZXRhUHJvcGVydGllcyA9IEpTQzo6Y29uc3RydWN0RW1wdHlPYmplY3Qo
dm0sIGpzR2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCi0gICAgbWV0YVByb3BlcnRp
ZXMtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidXJsIiks
IEpTQzo6anNTdHJpbmcodm0sIHNvdXJjZVVSTC5zdHJpbmcoKSkpOworICAgIFVSTCByZXNwb25z
ZVVSTDsKKyAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkKKyAgICAgICAgcmVz
cG9uc2VVUkwgPSBtX2RvY3VtZW50LnVybCgpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQo
bW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CisgICAgICAgIFVSTCBtb2R1bGVSZXF1ZXN0VVJM
KFVSTCgpLCBhc1N0cmluZyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKGpzR2xvYmFsT2JqZWN0KSk7
CisgICAgICAgIEFTU0VSVChtb2R1bGVSZXF1ZXN0VVJMLmlzVmFsaWQoKSk7CisKKyAgICAgICAg
YXV0byBpdGVyYXRvciA9IG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuZmluZChtb2R1bGVS
ZXF1ZXN0VVJMKTsKKyAgICAgICAgQVNTRVJUKGl0ZXJhdG9yICE9IG1fcmVxdWVzdFVSTFRvUmVz
cG9uc2VVUkxNYXAuZW5kKCkpOworICAgICAgICByZXNwb25zZVVSTCA9IGl0ZXJhdG9yLT52YWx1
ZTsKKyAgICB9CisgICAgQVNTRVJUKHJlc3BvbnNlVVJMLmlzVmFsaWQoKSk7CisKKyAgICBtZXRh
UHJvcGVydGllcy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJ1cmwiKSwgSlNDOjpqc1N0cmluZyh2bSwgcmVzcG9uc2VVUkwuc3RyaW5nKCkpKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAgIHJldHVybiBtZXRhUHJv
cGVydGllczsKQEAgLTMxOCw3ICszMjksMTYgQEAgdm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciYgbG9hZGVyLCBSZWZQdHIKICAg
ICAgICAgfQogICAgIH0KIAotICAgIG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuYWRkKFdU
Rk1vdmUoc291cmNlVVJMKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCkpOworICAgIFVS
TCByZXNwb25zZVVSTCA9IGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpOworICAgIC8vIElm
IHdlIGRvIG5vdCBoYXZlIHJlZGlyZWN0aW9uLCB3ZSBtdXN0IHJlc2VydmUgdGhlIHNvdXJjZSBV
UkwncyBmcmFnbWVudCBleHBsaWNpdGx5IGhlcmUgc2luY2UgUmVzb3VyY2VSZXNwb25zZTo6dXJs
KCkgaXMgdGhlIG9uZSB3aGVuIHdlIGZpcnN0IGNhY2hlIGl0IHRvIE1lbW9yeUNhY2hlLgorICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgdHJhY2sgZnJhZ21lbnRzIHRob3VnaCByZWRpcmVjdGlvbnMu
CisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODQyMAor
ICAgIGlmICghY2FjaGVkU2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpKSB7CisgICAgICAgIGlmIChz
b3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICByZXNwb25zZVVS
TC5zZXRGcmFnbWVudElkZW50aWZpZXIoc291cmNlVVJMLmZyYWdtZW50SWRlbnRpZmllcigpKTsK
KyAgICB9CisKKyAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChXVEZNb3ZlKHNv
dXJjZVVSTCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsKICAgICBwcm9taXNlLT5yZXNvbHZlV2l0
aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7CiAgICAg
ICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCks
CiAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hl
ZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNj
cmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIzNGNiYzgwNThiMDU1
MGJiOGYyZmEzYzA3YTFjNDAxMjM0ZmI1NTcuLjQ3Mjg4ZmZiYjNhYzdiNGQxMDdlMGY2YzAyYjg4
OGIyMzU2N2ZlMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wNC0xMyAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIGltcG9ydC5tZXRhLnVybDogYmFz
ZVVSTCBmb3IgYSBtb2R1bGUgc2NyaXB0IHNob3VsZCBiZSByZXNwb25zZSBVUkwsIG5vdCByZXF1
ZXN0IFVSTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1Mjk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVj
dC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21p
c2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFzaC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRh
LXVybC13aXRoLWhhc2guaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3Jl
c291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzOiBBZGRlZC4KKwogMjAyMC0wNC0xMyAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIG1vZHVsZSdzIGRl
ZmF1bHQgY3Jvc3Mtb3JpZ2luIHZhbHVlIHNob3VsZCBiZSAiYW5vbnltb3VzIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJs
LXJlZGlyZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDgwMTkwZjRlNTU2MTkzZjcyZmVl
ZTExM2Q0YzQzMmU5MWYwNDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgaW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSByZWRpcmVjdGVkIHVybCAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJjNDVhZWMwMzIzN2Y3YWIzOWEyZThiMTliMDY1MjdkZWE2ODIzYTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJs
LXJlZGlyZWN0LXdpdGgtaGFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
aW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSByZWRpcmVjdGVkIHVybCB3aXRoIGhhc2ggCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtcmVk
aXJlY3Qtd2l0aC1oYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxl
LW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3OTgwZWZjMmIw
YmI5ZjllZmE0NWI5YTBjZDVmMjU1ZTFiZTNmZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtaGFzaC5o
dG1sCkBAIC0wLDAgKzEsNzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0
aXRsZT5pbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJsIHdpdGggaGFzaDwv
dGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZ2xvYmFsVGhpcy5t
ZXRhVVJMcyA9IFtdOworCitmdW5jdGlvbiByZWRpcmVjdFRlc3QodGFyZ2V0VVJMLCBleHBlY3Rl
ZCkKK3sKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7
CisgICAgICAgIHNjcmlwdC50eXBlID0gJ21vZHVsZSc7CisgICAgICAgIHNjcmlwdC5zcmMgPSB0
YXJnZXRVUkw7CisgICAgICAgIHNjcmlwdC5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbFRoaXMubWV0YVVSTHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGxldCB1cmwgPSBnbG9iYWxUaGlzLm1ldGFVUkxzLnNoaWZ0KCk7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHVybCwgZXhwZWN0ZWQpOworICAgICAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgICB9OworICAgICAgICBzY3JpcHQub25lcnJvciA9IHJlamVjdDsKKyAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOworICAgIH0pOworfQorCitwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKQorICAgICAgICAudGhlbihm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAu
MTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDEiKSwg
YGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhw
b3NlLmpzI3Rlc3QxYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhw
P3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9y
ZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyIpICsgIiN0ZXN0MiIsIGBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0
ZXN0MmApOworICAgICAgICB9KQorICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyAr
IGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2Vz
L2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDQiKSArICIjdGVzdDMiLCBgaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVz
dDRgKTsKKyAgICAgICAgfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBl
bmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwP3VybD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
bWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QSIpKSwgYGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpz
I3Rlc3RBYCk7CisgICAgICAgIH0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIHRlc3QgcGFzcyBvbmNlIHRoZSBmb2xsb3dpbmcgaXNzdWUg
aXMgZml4ZWQuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU4NDIwCisgICAgICAgICAgICAvLyByZXR1cm4gcmVkaXJlY3RUZXN0KCcvcmVz
b3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPSIgKyBlbmNvZGVVUklDb21w
b25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11
cmwtZXhwb3NlLmpzIikgKyAiI3Rlc3RCIiksIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9y
ZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QmApOworICAgICAgICB9KQor
ICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVkaXJlY3RU
ZXN0KCcvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCgi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPSIgKyBlbmNv
ZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9pbXBv
cnQtbWV0YS11cmwtZXhwb3NlLmpzIikpLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVz
b3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanNgKTsKKyAgICAgICAgfSkKKyAgICAgICAg
LnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL3Jl
c291cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0iICsgZW5jb2RlVVJJQ29t
cG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEt
dXJsLWV4cG9zZS5qcyIpKSArICIjdGVzdEMiLCBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2Mv
cmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdENgKTsKKyAgICAgICAgfSkK
KyAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHJlZGlyZWN0
VGVzdCgnL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQo
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0iICsgZW5j
b2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1w
b3J0LW1ldGEtdXJsLWV4cG9zZS5qcyIpKSArICIjdGVzdEQiLCBgaHR0cDovLzEyNy4wLjAuMTo4
MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdERgKTsKKyAg
ICAgICAgfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgLy8gRklY
TUU6IFRoaXMgdGVzdCBwYXNzIG9uY2UgdGhlIGZvbGxvd2luZyBpc3N1ZSBpcyBmaXhlZC4KKyAg
ICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0
MjAKKyAgICAgICAgICAgIC8vIHJldHVybiByZWRpcmVjdFRlc3QoJy9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwP3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9IiArIGVuY29kZVVSSUNvbXBvbmVudCgiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMi
KSArICIjdGVzdEFBIikgKyAiI3Rlc3RCQiIsIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9y
ZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QUFgKTsKKyAgICAgICAgfSkK
KyAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHJlZGlyZWN0
VGVzdCgnL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQo
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0iICsgZW5j
b2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1w
b3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0Q0MiKSkgKyAiI3Rlc3RERCIsIGBodHRwOi8vMTI3
LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0
Q0NgKTsKKyAgICAgICAgfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPScgKyBl
bmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwP3VybD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
bWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0RUUiKSArICIjdGVz
dEZGIiksIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEt
dXJsLWV4cG9zZS5qcyN0ZXN0RUVgKTsKKyAgICAgICAgfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL3Jlc291cmNlcy9yZWRp
cmVjdC5waHA/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5q
cyN0ZXN0R0dHIikgKyAiI3Rlc3RISEgiKSArICIjdGVzdElJSSIsIGBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0R0dHYCk7
CisgICAgICAgIH0pCit9LCAnaW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSByZWRpcmVjdGVkIHVy
bCB3aXRoIGhhc2gnKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM4NWM5YTFjM2JlZDdjMmY0MGFlOTNhNWZjM2RkM2ViMzkyZmFlNDEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1l
dGEtdXJsLXJlZGlyZWN0Lmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHRpdGxlPmltcG9ydC5tZXRhLnVybCBzaG91bGQgYmUgcmVkaXJlY3Rl
ZCB1cmw8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2dsb2Jh
bFRoaXMubWV0YVVSTHMgPSBbXTsKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5l
dyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgdmFyIHNjcmlw
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgICAgICBzY3JpcHQudHlw
ZSA9ICdtb2R1bGUnOworICAgICAgICBzY3JpcHQuc3JjID0gJy9yZXNvdXJjZXMvcmVkaXJlY3Qu
cGhwP3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlz
Yy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyIpOworICAgICAgICBzY3JpcHQu
b25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhnbG9iYWxU
aGlzLm1ldGFVUkxzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGdsb2Jh
bFRoaXMubWV0YVVSTHNbMF0sIGBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMv
aW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qc2ApOworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICB9OworICAgICAgICBzY3JpcHQub25lcnJvciA9IHJlamVjdDsKKyAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOworICAgIH0pOworfSwgJ2ltcG9ydC5tZXRhLnVy
bCBzaG91bGQgYmUgcmVkaXJlY3RlZCB1cmwnKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVy
bC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21v
ZHVsZS1tZXRhLXVybC13aXRoLWhhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZDA5Zjc0
Zjc0ZTJkZDc5YjAyZGQzMzFjNDZkZjJmMzk3OTVlMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1ldGEtdXJsLXdpdGgtaGFzaC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgaW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSBo
YXZlIGEgaGFzaCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL21v
ZHVsZS1tZXRhLXVybC13aXRoLWhhc2guaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIzMjliYzRlOTAx
MDYwMGM5N2QyMjE5MDkzNGQyOWI1NzA5NWQ2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9tb2R1bGUtbWV0YS11cmwtd2l0aC1oYXNoLmh0bWwKQEAgLTAs
MCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPmltcG9y
dC5tZXRhLnVybCBzaG91bGQgaGF2ZSBhIGhhc2g8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK2dsb2JhbFRoaXMubWV0YVVSTHMgPSBbXTsKKworcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJl
amVjdCkgeworICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2Ny
aXB0Jyk7CisgICAgICAgIHNjcmlwdC50eXBlID0gJ21vZHVsZSc7CisgICAgICAgIHNjcmlwdC5z
cmMgPSBgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVy
bC1leHBvc2UuanMjdGVzdGA7CisgICAgICAgIHNjcmlwdC5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbFRoaXMubWV0YVVSTHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGxldCB1cmwgPSBnbG9iYWxUaGlzLm1ldGFVUkxzLnNoaWZ0KCk7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVybCwgYGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNj
L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RgKTsKKyAgICAgICAgICAg
IHJlc29sdmUoKTsKKyAgICAgICAgfTsKKyAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSByZWplY3Q7
CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICB9KTsKK30s
ICdpbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIGhhdmUgYSBoYXNoJyk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9y
ZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
NTNhNjIxMzFhNTc1ZGI1ODU0MjFjZDIxZTViN2M3Y2VlZGYyMTI1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwt
ZXhwb3NlLmpzCkBAIC0wLDAgKzEgQEAKK2dsb2JhbFRoaXMubWV0YVVSTHMucHVzaChpbXBvcnQu
bWV0YS51cmwpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396402</attachid>
            <date>2020-04-14 05:17:29 -0700</date>
            <delta_ts>2020-04-14 05:57:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205294-20200414051728.patch</filename>
            <type>text/plain</type>
            <size>20537</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2MDJkOWI4YWZmZDlm
YTdhNDJjZjVhYzI3Zjc1MGJhZTU4NDMzOC4uYWIxODI2Zjk1ZDI5OTE5MmE5ZTc2NjNhYjM3OWNk
MTE0ZjUzYjdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA0LTE0ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgaW1wb3J0Lm1ldGEudXJs
OiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQgc2hvdWxkIGJlIHJlc3BvbnNlIFVSTCwgbm90
IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0czogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRo
LWhhc2guaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1l
dGEtdXJsLXdpdGgtaGFzaC5odG1sCisKKyAgICAgICAgVGhlIG1vZHVsZSBzaG91bGQgZXhwb3Nl
IHJlc3BvbnNlIFVSTCBhcyBgaW1wb3J0Lm1ldGEudXJsYCBpbnN0ZWFkIG9mIHJlcXVlc3QgVVJM
LgorICAgICAgICBJZiByZWRpcmVjdGlvbiBoYXBwZW5zLCB0aGlzIFVSTCBzaG91bGQgYmUgcmVk
aXJlY3RlZCBvbmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNvbHZlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9tUmVxdWVz
dFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmNyZWF0ZUltcG9y
dE1ldGFQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6
bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5oOgorCiAyMDIwLTA0LTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAK
ICAgICAgICAgbW9kdWxlJ3MgZGVmYXVsdCBjcm9zcy1vcmlnaW4gdmFsdWUgc2hvdWxkIGJlICJh
bm9ueW1vdXMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRN
b2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxl
TG9hZGVyLmNwcAppbmRleCA4ZTQ4ODRkMjQ2NzY0OGI4YTlhZjI1MWRmMGE1MDhmNjk1NTFjNjFj
Li42MzBjM2E4YmFiMzA5MGI3OTdhYWY1ZmU0ZDI1NDNkZjM3NDhmNGYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTEwOCwx
NCArMTA4LDEwIEBAIEpTQzo6SWRlbnRpZmllciBTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUo
SlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsCiAgICAgaWYgKGlzUm9vdE1vZHVs
ZShpbXBvcnRlck1vZHVsZUtleSkpCiAgICAgICAgIGJhc2VVUkwgPSBtX2RvY3VtZW50LmJhc2VV
UkwoKTsKICAgICBlbHNlIHsKLSAgICAgICAgQVNTRVJUKGltcG9ydGVyTW9kdWxlS2V5LmlzU3Ry
aW5nKCkpOwotICAgICAgICBVUkwgaW1wb3J0ZXJNb2R1bGVSZXF1ZXN0VVJMKFVSTCgpLCBhc1N0
cmluZyhpbXBvcnRlck1vZHVsZUtleSktPnZhbHVlKGpzR2xvYmFsT2JqZWN0KSk7Ci0gICAgICAg
IEFTU0VSVF9XSVRIX01FU1NBR0UoaW1wb3J0ZXJNb2R1bGVSZXF1ZXN0VVJMLmlzVmFsaWQoKSwg
IkludmFsaWQgbW9kdWxlIHJlZmVycmVyIG5ldmVyIHN0YXJ0cyBpbXBvcnRpbmcgZGVwZW5kZW50
IG1vZHVsZXMuIik7Ci0KLSAgICAgICAgYXV0byBpdGVyYXRvciA9IG1fcmVxdWVzdFVSTFRvUmVz
cG9uc2VVUkxNYXAuZmluZChpbXBvcnRlck1vZHVsZVJlcXVlc3RVUkwpOwotICAgICAgICBBU1NF
UlRfV0lUSF9NRVNTQUdFKGl0ZXJhdG9yICE9IG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAu
ZW5kKCksICJNb2R1bGUgcmVmZXJyZXIgbXVzdCByZWdpc3RlciBpdHNlbGYgdG8gdGhlIG1hcCBi
ZWZvcmUgc3RhcnRpbmcgaW1wb3J0aW5nIGRlcGVuZGVudCBtb2R1bGVzLiIpOwotICAgICAgICBi
YXNlVVJMID0gaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBiYXNlVVJMID0gcmVzcG9uc2VVUkxG
cm9tUmVxdWVzdFVSTCgqanNHbG9iYWxPYmplY3QsIGltcG9ydGVyTW9kdWxlS2V5KTsKKyAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICB9CisgICAgQVNTRVJUKGJh
c2VVUkwuaXNWYWxpZCgpKTsKIAogICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNp
ZmllcihtX2RvY3VtZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOwogICAgIGlmICghcmVzdWx0KSB7
CkBAIC0xOTIsNiArMTg4LDIxIEBAIFVSTCBTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVSTChK
U0M6OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU1ZhCiAgICAgcmV0dXJu
IFVSTChVUkwoKSwgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZSgmanNHbG9iYWxPYmpl
Y3QpKTsKIH0KIAorVVJMIFNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9tUmVxdWVz
dFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIG1v
ZHVsZUtleVZhbHVlKQoreworICAgIEpTQzo6Vk0mIHZtID0ganNHbG9iYWxPYmplY3Qudm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgQVNTRVJUKCFp
c1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKTsKKyAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUu
aXNTdHJpbmcoKSk7CisgICAgU3RyaW5nIHJlcXVlc3RVUkwgPSBhc1N0cmluZyhtb2R1bGVLZXlW
YWx1ZSktPnZhbHVlKCZqc0dsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKFVSTChVUkwoKSwgcmVxdWVzdFVS
TCkuaXNWYWxpZCgpLCAiSW52YWxpZCBtb2R1bGUgcmVmZXJyZXIgbmV2ZXIgc3RhcnRzIGltcG9y
dGluZyBkZXBlbmRlbnQgbW9kdWxlcy4iKTsKKworICAgIGF1dG8gaXRlcmF0b3IgPSBtX3JlcXVl
c3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmZpbmQocmVxdWVzdFVSTCk7CisgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShpdGVyYXRvciAhPSBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmVuZCgpLCAi
TW9kdWxlIHJlZmVycmVyIG11c3QgcmVnaXN0ZXIgaXRzZWxmIHRvIHRoZSBtYXAgYmVmb3JlIHN0
YXJ0aW5nIGltcG9ydGluZyBkZXBlbmRlbnQgbW9kdWxlcy4iKTsKKyAgICByZXR1cm4gaXRlcmF0
b3ItPnZhbHVlOworfQorCiBKU0M6OkpTVmFsdWUgU2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29y
ZFZhbHVlLCBKU0M6OkpTVmFsdWUpCiB7CiAgICAgSlNDOjpWTSYgdm0gPSBqc0dsb2JhbE9iamVj
dC0+dm0oKTsKQEAgLTI2NSwxMyArMjc2LDE5IEBAIEpTQzo6SlNPYmplY3QqIFNjcmlwdE1vZHVs
ZUxvYWRlcjo6Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjCiAg
ICAgYXV0byYgdm0gPSBqc0dsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBVUkwgc291cmNlVVJMID0gbW9kdWxlVVJMKCpq
c0dsb2JhbE9iamVjdCwgbW9kdWxlS2V5VmFsdWUpOwotICAgIEFTU0VSVChzb3VyY2VVUkwuaXNW
YWxpZCgpKTsKLQogICAgIGF1dG8qIG1ldGFQcm9wZXJ0aWVzID0gSlNDOjpjb25zdHJ1Y3RFbXB0
eU9iamVjdCh2bSwganNHbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUo
KSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKLSAgICBtZXRh
UHJvcGVydGllcy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJ1cmwiKSwgSlNDOjpqc1N0cmluZyh2bSwgc291cmNlVVJMLnN0cmluZygpKSk7CisgICAgVVJM
IHJlc3BvbnNlVVJMOworICAgIGlmIChpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKQorICAg
ICAgICByZXNwb25zZVVSTCA9IG1fZG9jdW1lbnQudXJsKCk7CisgICAgZWxzZSB7CisgICAgICAg
IHJlc3BvbnNlVVJMID0gcmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTCgqanNHbG9iYWxPYmplY3Qs
IG1vZHVsZUtleVZhbHVlKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVs
bHB0cik7CisgICAgfQorICAgIEFTU0VSVChyZXNwb25zZVVSTC5pc1ZhbGlkKCkpOworCisgICAg
bWV0YVByb3BlcnRpZXMtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAidXJsIiksIEpTQzo6anNTdHJpbmcodm0sIHJlc3BvbnNlVVJMLnN0cmluZygpKSk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICByZXR1cm4gbWV0
YVByb3BlcnRpZXM7CkBAIC0zMTgsNyArMzM1LDE2IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVy
Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImIGxvYWRlciwgUmVmUHRy
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFk
ZChXVEZNb3ZlKHNvdXJjZVVSTCksIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpKTsKKyAg
ICBVUkwgcmVzcG9uc2VVUkwgPSBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKTsKKyAgICAv
LyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3Vy
Y2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6
OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4K
KyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNrIGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0
aW9ucy4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4
NDIwCisgICAgaWYgKCFjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCkgJiYgY2FjaGVkU2Ny
aXB0LnJlc3BvbnNlKCkuc291cmNlKCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2
aWNlV29ya2VyKSB7CisgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVy
KCkpCisgICAgICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIoc291cmNl
VVJMLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICB9CisKKyAgICBtX3JlcXVlc3RVUkxUb1Jl
c3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwp
KTsKICAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmpl
Y3QmIGpzR2xvYmFsT2JqZWN0KSB7CiAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6
Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUg
eyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNv
dXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgp
IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxl
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
aAppbmRleCA0MGMzYmQxNmM1NzI4ZWU1NzBiMDYxZjFkMmZhNDdhN2Q1YmEzNmExLi5kZTI5ZDJm
NGJmMDk2YjYwYzM2OTk4MDMxNmMxNDg2YjI4MmFiZjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaApAQCAtNjUsOSArNjUsMTAgQEAgY2xh
c3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXJDbGllbnQgewogcHJpdmF0ZToKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlciYsIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+KSBmaW5hbDsKICAgICBV
UkwgbW9kdWxlVVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpTVmFsdWUpOworICAgIFVS
TCByZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpT
VmFsdWUpOwogCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7Ci0gICAgSGFzaE1hcDxVUkwsIFVS
TD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKKyAgICBIYXNoTWFwPFN0cmluZywgVVJM
PiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOwogICAgIEhhc2hTZXQ8UmVmPENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9hZGVyczsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMzRjYmM4MDU4YjA1
NTBiYjhmMmZhM2MwN2ExYzQwMTIzNGZiNTU3Li5jY2I3NjljODdjYzIwZjg2YmZmMjQwYWJkOGFj
ZTBiYzI4ZTY0M2E5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDQtMTQgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBpbXBvcnQubWV0YS51cmw6IGJh
c2VVUkwgZm9yIGEgbW9kdWxlIHNjcmlwdCBzaG91bGQgYmUgcmVzcG9uc2UgVVJMLCBub3QgcmVx
dWVzdCBVUkwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTI5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWZyYWdtZW50LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qt
d2l0aC1mcmFnbWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC13
aXRoLWZyYWdtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUt
bWV0YS11cmwtd2l0aC1mcmFnbWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL3Jlc291
cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dw
dC9yZXNvdXJjZXMvcmVkaXJlY3QucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6CisKIDIwMjAt
MDQtMTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBtb2R1
bGUncyBkZWZhdWx0IGNyb3NzLW9yaWdpbiB2YWx1ZSBzaG91bGQgYmUgImFub255bW91cyIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZDgwMTkwZjRlNTU2MTkzZjcyZmVlZTExM2Q0YzQzMmU5MWYw
NDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwt
cmVkaXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIGltcG9ydC5tZXRh
LnVybCBzaG91bGQgYmUgcmVkaXJlY3RlZCB1cmwgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtZnJhZ21lbnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1mcmFnbWVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTEwMTllN2MzZGVjNzU3MzAzMGJhMjQzZjg1MTI2
ZmU2ODMyMDczNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1l
dGEtdXJsLXJlZGlyZWN0LXdpdGgtZnJhZ21lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIg
QEAKKworUEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3QxIAorUEFTUyBpbXBvcnQt
bWV0YS11cmwtZXhwb3NlLmpzI3Rlc3QyIAorUEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpz
I3Rlc3Q0IAorUEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RBIAorUEFTUyBpbXBv
cnQtbWV0YS11cmwtZXhwb3NlLmpzIAorUEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rl
c3RDIAorUEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3REIAorUEFTUyBpbXBvcnQt
bWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RDQyAKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5q
cyN0ZXN0RUUgCitQQVNTIGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEdHRyAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1m
cmFnbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qt
d2l0aC1mcmFnbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMDRiYmViYWQ3NGUyZjIzNGY1MzkwZDdj
NjM0ODcyNjc3ZDQxYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVs
ZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWZyYWdtZW50Lmh0bWwKQEAgLTAsMCArMSw4OSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPmltcG9ydC5tZXRhLnVybCBz
aG91bGQgYmUgcmVkaXJlY3RlZCB1cmwgd2l0aCBmcmFnbWVudDwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2dsb2JhbFRoaXMubWV0YVVSTHMgPSBbXTsKKworZnVuY3Rpb24gcmVkaXJlY3RUZXN0
KHRhcmdldFVSTCwgZXhwZWN0ZWQpCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u
IChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgICAgICBzY3JpcHQudHlwZSA9ICdtb2R1bGUnOworICAg
ICAgICBzY3JpcHQuc3JjID0gdGFyZ2V0VVJMOworICAgICAgICBzY3JpcHQub25sb2FkID0gZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGdsb2JhbFRoaXMubWV0YVVSTHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBsZXQg
dXJsID0gZ2xvYmFsVGhpcy5tZXRhVVJMcy5zaGlmdCgpOworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHModXJsLCBleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICByZWplY3QoZXJyb3Ip
OworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBzY3JpcHQub25lcnJvciA9IHJl
amVjdDsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOworICAgIH0p
OworfQorCitsZXQgcm9vdCA9IGBodHRwOi8vJHtkb2N1bWVudC5sb2NhdGlvbi5ob3N0fS9XZWJL
aXRgOworbGV0IGJhc2VuYW1lID0gYGh0dHA6Ly8ke2RvY3VtZW50LmxvY2F0aW9uLmhvc3R9L1dl
YktpdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
YDsKKworcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvV2Vi
S2l0L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50
KGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MWAp
LCBgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDFg
KTsKK30sIGBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3QxYCk7CisKK3Byb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL1dlYktpdC9yZXNvdXJjZXMvcmVk
aXJlY3QucHk/bG9jYXRpb249JyArIGVuY29kZVVSSUNvbXBvbmVudChgJHtiYXNlbmFtZX0vcmVz
b3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanNgKSArICIjdGVzdDIiLCBgJHtiYXNlbmFt
ZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDJgKTsKK30sIGBpbXBv
cnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3QyYCk7CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL1dlYktpdC9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9j
YXRpb249JyArIGVuY29kZVVSSUNvbXBvbmVudChgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9y
dC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDRgKSArICIjdGVzdDMiLCBgJHtiYXNlbmFtZX0vcmVz
b3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDRgKTsKK30sIGBpbXBvcnQtbWV0
YS11cmwtZXhwb3NlLmpzI3Rlc3Q0YCk7CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0
dXJuIHJlZGlyZWN0VGVzdCgnL1dlYktpdC9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249
JyArIGVuY29kZVVSSUNvbXBvbmVudChgJHtyb290fS9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9j
YXRpb249YCArIGVuY29kZVVSSUNvbXBvbmVudChgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9y
dC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEFgKSksIGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1w
b3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QWApOworfSwgYGltcG9ydC1tZXRhLXVybC1leHBv
c2UuanMjdGVzdEFgKTsKKworLy8gRklYTUU6IFRoaXMgdGVzdCBwYXNzIG9uY2UgdGhlIGZvbGxv
d2luZyBpc3N1ZSBpcyBmaXhlZC4KKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTg0MjAKKy8vIHByb21pc2VfdGVzdCgoKSA9PiB7CisvLyAgICAgcmV0dXJuIHJl
ZGlyZWN0VGVzdCgnL1dlYktpdC9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249JyArIGVu
Y29kZVVSSUNvbXBvbmVudChgJHtyb290fS9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249
YCArIGVuY29kZVVSSUNvbXBvbmVudChgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRh
LXVybC1leHBvc2UuanNgKSArICIjdGVzdEIiKSwgYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBv
cnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RCYCk7CisvLyB9LCBgaW1wb3J0LW1ldGEtdXJsLWV4
cG9zZS5qcyN0ZXN0QmApOworCitwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiByZWRp
cmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNv
ZGVVUklDb21wb25lbnQoYCR7cm9vdH0vcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWAg
KyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11
cmwtZXhwb3NlLmpzYCkpLCBgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1l
eHBvc2UuanNgKTsKK30sIGBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzYCk7CisKK3Byb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL1dlYktpdC9yZXNvdXJjZXMv
cmVkaXJlY3QucHk/bG9jYXRpb249JyArIGVuY29kZVVSSUNvbXBvbmVudChgJHtyb290fS9yZXNv
dXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249YCArIGVuY29kZVVSSUNvbXBvbmVudChgJHtiYXNl
bmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanNgKSkgKyAiI3Rlc3RDIiwg
YCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RDYCk7
Cit9LCBgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0Q2ApOworCitwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGly
ZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7cm9vdH0vcmVzb3VyY2Vz
L3JlZGlyZWN0LnB5P2xvY2F0aW9uPWAgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9
L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzYCkpICsgIiN0ZXN0RCIsIGAke2Jh
c2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0RGApOworfSwg
YGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdERgKTsKKworLy8gRklYTUU6IFRoaXMgdGVz
dCBwYXNzIG9uY2UgdGhlIGZvbGxvd2luZyBpc3N1ZSBpcyBmaXhlZC4KKy8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKy8vIHByb21pc2VfdGVzdCgoKSA9
PiB7CisvLyAgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL1dlYktpdC9yZXNvdXJjZXMvcmVkaXJl
Y3QucHk/bG9jYXRpb249JyArIGVuY29kZVVSSUNvbXBvbmVudChgJHtyb290fS9yZXNvdXJjZXMv
cmVkaXJlY3QucHk/bG9jYXRpb249YCArIGVuY29kZVVSSUNvbXBvbmVudChgJHtiYXNlbmFtZX0v
cmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanNgKSArICIjdGVzdEFBIikgKyAiI3Rl
c3RCQiIsIGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0
ZXN0QUFgKTsKKy8vIH0sIGBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RBQWApOworCitw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVz
b3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7cm9v
dH0vcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWAgKyBlbmNvZGVVUklDb21wb25lbnQo
YCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RDQ2Ap
KSArICIjdGVzdEREIiwgYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhw
b3NlLmpzI3Rlc3RDQ2ApOworfSwgYGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdENDYCk7
CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL1dlYktp
dC9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249JyArIGVuY29kZVVSSUNvbXBvbmVudChg
JHtyb290fS9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249YCArIGVuY29kZVVSSUNvbXBv
bmVudChgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVz
dEVFYCkgKyAiI3Rlc3RGRiIpLCBgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVy
bC1leHBvc2UuanMjdGVzdEVFYCk7Cit9LCBgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0
RUVgKTsKKworcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcv
V2ViS2l0L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj0nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KGAke3Jvb3R9L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1gICsgZW5jb2RlVVJJ
Q29tcG9uZW50KGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5q
cyN0ZXN0R0dHYCkgKyAiI3Rlc3RISEgiKSArICIjdGVzdElJSSIsIGAke2Jhc2VuYW1lfS9yZXNv
dXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0R0dHYCk7Cit9LCBgaW1wb3J0LW1l
dGEtdXJsLWV4cG9zZS5qcyN0ZXN0R0dHYCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE3NzJjMjBiOTlhMThhOTNjYTZmMmE5NGMwM2ZhM2QzZTY3MmU5OTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5odG1s
CkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRs
ZT5pbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJsPC90aXRsZT4KKzxzY3Jp
cHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorZ2xvYmFsVGhpcy5tZXRhVVJMcyA9IFtdOworbGV0IGJhc2VuYW1lID0gYGh0
dHA6Ly8ke2RvY3VtZW50LmxvY2F0aW9uLmhvc3R9L1dlYktpdC9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlYDsKK3Byb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAg
ICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAg
ICAgICBzY3JpcHQudHlwZSA9ICdtb2R1bGUnOworICAgICAgICBzY3JpcHQuc3JjID0gJy9XZWJL
aXQvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQo
YCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzYCk7CisgICAg
ICAgIHNjcmlwdC5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0cnkgeworICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZ2xvYmFsVGhpcy5tZXRhVVJMcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZ2xvYmFsVGhpcy5tZXRhVVJMc1swXSwg
YCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzYCk7CisgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAg
c2NyaXB0Lm9uZXJyb3IgPSByZWplY3Q7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoc2NyaXB0KTsKKyAgICB9KTsKK30sICdpbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIHJlZGly
ZWN0ZWQgdXJsJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXdpdGgtZnJhZ21lbnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtd2l0aC1mcmFnbWVudC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWNiOTc1NWViMWIxMTQwNGViZjA1MDBjZDk4NDEzZDFhOTgzZDNl
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXdp
dGgtZnJhZ21lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIGltcG9ydC5t
ZXRhLnVybCBzaG91bGQgYmUgaGF2ZSBhIGZyYWdtZW50IAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC13aXRoLWZyYWdtZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL21vZHVsZS1tZXRhLXVybC13aXRoLWZyYWdtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhh
NTc5NmE2NWEwMTY5YTQ0MGQ3MGM5YmU4NTc5YWM0ZTlmNjY5ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3Jp
cHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXdpdGgtZnJhZ21lbnQuaHRtbApAQCAt
MCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+aW1w
b3J0Lm1ldGEudXJsIHNob3VsZCBoYXZlIGEgZnJhZ21lbnQ8L3RpdGxlPgorPHNjcmlwdCBzcmM9
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitnbG9iYWxUaGlzLm1ldGFVUkxzID0gW107CitsZXQgYmFzZW5hbWUgPSBgaHR0cDovLyR7
ZG9jdW1lbnQubG9jYXRpb24uaG9zdH0vV2ViS2l0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGVgOworcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICB2
YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CisgICAgICAgIHNj
cmlwdC50eXBlID0gJ21vZHVsZSc7CisgICAgICAgIHNjcmlwdC5zcmMgPSBgJHtiYXNlbmFtZX0v
cmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdGA7CisgICAgICAgIHNjcmlw
dC5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZ2xvYmFsVGhpcy5tZXRhVVJMcy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgICAgIGxldCB1cmwgPSBnbG9iYWxUaGlzLm1ldGFVUkxzLnNoaWZ0KCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyh1cmwsIGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0
LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0YCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIHJlamVjdChlKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSByZWplY3Q7
CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICB9KTsKK30s
ICdpbXBvcnQubWV0YS51cmwgc2hvdWxkIGJlIGhhdmUgYSBmcmFnbWVudCcpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1s
L3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL3Jlc291cmNl
cy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9yZXNvdXJjZXMv
aW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTNhNjIxMzFhNTc1ZGI1ODU0
MjFjZDIxZTViN2M3Y2VlZGYyMTI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcwpAQCAtMCwwICsxIEBACitnbG9i
YWxUaGlzLm1ldGFVUkxzLnB1c2goaW1wb3J0Lm1ldGEudXJsKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3Jlc291cmNlcy9yZWRpcmVjdC5weSBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3Jlc291cmNlcy9yZWRpcmVjdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDA2YzlkNDFkOWJkY2JlZGUy
YmMyMzEwOTMwMWExYjczZTdiZTEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvcmVzb3VyY2VzL3JlZGlyZWN0LnB5CkBAIC0wLDAgKzEsNSBAQAorZGVmIG1haW4ocmVx
dWVzdCwgcmVzcG9uc2UpOgorICAgIGhlYWRlcnMgPSBbKCJDYWNoZS1Db250cm9sIiwgIm5vLWNh
Y2hlIiksCisgICAgICAgICAgICAgICAoIlByYWdtYSIsICJuby1jYWNoZSIpLAorICAgICAgICAg
ICAgICAgKCJMb2NhdGlvbiIsIHJlcXVlc3QuR0VUWydsb2NhdGlvbiddKV0KKyAgICByZXR1cm4g
MzAyLCBoZWFkZXJzLCAiIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396405</attachid>
            <date>2020-04-14 05:57:09 -0700</date>
            <delta_ts>2020-04-14 07:29:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205294-20200414055708.patch</filename>
            <type>text/plain</type>
            <size>22728</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2MDJkOWI4YWZmZDlm
YTdhNDJjZjVhYzI3Zjc1MGJhZTU4NDMzOC4uYWIxODI2Zjk1ZDI5OTE5MmE5ZTc2NjNhYjM3OWNk
MTE0ZjUzYjdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA0LTE0ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgaW1wb3J0Lm1ldGEudXJs
OiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQgc2hvdWxkIGJlIHJlc3BvbnNlIFVSTCwgbm90
IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0czogaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRo
LWhhc2guaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL21pc2MvbW9kdWxlLW1l
dGEtdXJsLXdpdGgtaGFzaC5odG1sCisKKyAgICAgICAgVGhlIG1vZHVsZSBzaG91bGQgZXhwb3Nl
IHJlc3BvbnNlIFVSTCBhcyBgaW1wb3J0Lm1ldGEudXJsYCBpbnN0ZWFkIG9mIHJlcXVlc3QgVVJM
LgorICAgICAgICBJZiByZWRpcmVjdGlvbiBoYXBwZW5zLCB0aGlzIFVSTCBzaG91bGQgYmUgcmVk
aXJlY3RlZCBvbmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNvbHZlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9tUmVxdWVz
dFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmNyZWF0ZUltcG9y
dE1ldGFQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6
bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5oOgorCiAyMDIwLTA0LTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAK
ICAgICAgICAgbW9kdWxlJ3MgZGVmYXVsdCBjcm9zcy1vcmlnaW4gdmFsdWUgc2hvdWxkIGJlICJh
bm9ueW1vdXMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRN
b2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxl
TG9hZGVyLmNwcAppbmRleCA4ZTQ4ODRkMjQ2NzY0OGI4YTlhZjI1MWRmMGE1MDhmNjk1NTFjNjFj
Li42MzBjM2E4YmFiMzA5MGI3OTdhYWY1ZmU0ZDI1NDNkZjM3NDhmNGYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTEwOCwx
NCArMTA4LDEwIEBAIEpTQzo6SWRlbnRpZmllciBTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUo
SlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsCiAgICAgaWYgKGlzUm9vdE1vZHVs
ZShpbXBvcnRlck1vZHVsZUtleSkpCiAgICAgICAgIGJhc2VVUkwgPSBtX2RvY3VtZW50LmJhc2VV
UkwoKTsKICAgICBlbHNlIHsKLSAgICAgICAgQVNTRVJUKGltcG9ydGVyTW9kdWxlS2V5LmlzU3Ry
aW5nKCkpOwotICAgICAgICBVUkwgaW1wb3J0ZXJNb2R1bGVSZXF1ZXN0VVJMKFVSTCgpLCBhc1N0
cmluZyhpbXBvcnRlck1vZHVsZUtleSktPnZhbHVlKGpzR2xvYmFsT2JqZWN0KSk7Ci0gICAgICAg
IEFTU0VSVF9XSVRIX01FU1NBR0UoaW1wb3J0ZXJNb2R1bGVSZXF1ZXN0VVJMLmlzVmFsaWQoKSwg
IkludmFsaWQgbW9kdWxlIHJlZmVycmVyIG5ldmVyIHN0YXJ0cyBpbXBvcnRpbmcgZGVwZW5kZW50
IG1vZHVsZXMuIik7Ci0KLSAgICAgICAgYXV0byBpdGVyYXRvciA9IG1fcmVxdWVzdFVSTFRvUmVz
cG9uc2VVUkxNYXAuZmluZChpbXBvcnRlck1vZHVsZVJlcXVlc3RVUkwpOwotICAgICAgICBBU1NF
UlRfV0lUSF9NRVNTQUdFKGl0ZXJhdG9yICE9IG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAu
ZW5kKCksICJNb2R1bGUgcmVmZXJyZXIgbXVzdCByZWdpc3RlciBpdHNlbGYgdG8gdGhlIG1hcCBi
ZWZvcmUgc3RhcnRpbmcgaW1wb3J0aW5nIGRlcGVuZGVudCBtb2R1bGVzLiIpOwotICAgICAgICBi
YXNlVVJMID0gaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBiYXNlVVJMID0gcmVzcG9uc2VVUkxG
cm9tUmVxdWVzdFVSTCgqanNHbG9iYWxPYmplY3QsIGltcG9ydGVyTW9kdWxlS2V5KTsKKyAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICB9CisgICAgQVNTRVJUKGJh
c2VVUkwuaXNWYWxpZCgpKTsKIAogICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNp
ZmllcihtX2RvY3VtZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOwogICAgIGlmICghcmVzdWx0KSB7
CkBAIC0xOTIsNiArMTg4LDIxIEBAIFVSTCBTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVSTChK
U0M6OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU1ZhCiAgICAgcmV0dXJu
IFVSTChVUkwoKSwgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZSgmanNHbG9iYWxPYmpl
Y3QpKTsKIH0KIAorVVJMIFNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9tUmVxdWVz
dFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIG1v
ZHVsZUtleVZhbHVlKQoreworICAgIEpTQzo6Vk0mIHZtID0ganNHbG9iYWxPYmplY3Qudm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgQVNTRVJUKCFp
c1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKTsKKyAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUu
aXNTdHJpbmcoKSk7CisgICAgU3RyaW5nIHJlcXVlc3RVUkwgPSBhc1N0cmluZyhtb2R1bGVLZXlW
YWx1ZSktPnZhbHVlKCZqc0dsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKFVSTChVUkwoKSwgcmVxdWVzdFVS
TCkuaXNWYWxpZCgpLCAiSW52YWxpZCBtb2R1bGUgcmVmZXJyZXIgbmV2ZXIgc3RhcnRzIGltcG9y
dGluZyBkZXBlbmRlbnQgbW9kdWxlcy4iKTsKKworICAgIGF1dG8gaXRlcmF0b3IgPSBtX3JlcXVl
c3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmZpbmQocmVxdWVzdFVSTCk7CisgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShpdGVyYXRvciAhPSBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmVuZCgpLCAi
TW9kdWxlIHJlZmVycmVyIG11c3QgcmVnaXN0ZXIgaXRzZWxmIHRvIHRoZSBtYXAgYmVmb3JlIHN0
YXJ0aW5nIGltcG9ydGluZyBkZXBlbmRlbnQgbW9kdWxlcy4iKTsKKyAgICByZXR1cm4gaXRlcmF0
b3ItPnZhbHVlOworfQorCiBKU0M6OkpTVmFsdWUgU2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29y
ZFZhbHVlLCBKU0M6OkpTVmFsdWUpCiB7CiAgICAgSlNDOjpWTSYgdm0gPSBqc0dsb2JhbE9iamVj
dC0+dm0oKTsKQEAgLTI2NSwxMyArMjc2LDE5IEBAIEpTQzo6SlNPYmplY3QqIFNjcmlwdE1vZHVs
ZUxvYWRlcjo6Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjCiAg
ICAgYXV0byYgdm0gPSBqc0dsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBVUkwgc291cmNlVVJMID0gbW9kdWxlVVJMKCpq
c0dsb2JhbE9iamVjdCwgbW9kdWxlS2V5VmFsdWUpOwotICAgIEFTU0VSVChzb3VyY2VVUkwuaXNW
YWxpZCgpKTsKLQogICAgIGF1dG8qIG1ldGFQcm9wZXJ0aWVzID0gSlNDOjpjb25zdHJ1Y3RFbXB0
eU9iamVjdCh2bSwganNHbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUo
KSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKLSAgICBtZXRh
UHJvcGVydGllcy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJ1cmwiKSwgSlNDOjpqc1N0cmluZyh2bSwgc291cmNlVVJMLnN0cmluZygpKSk7CisgICAgVVJM
IHJlc3BvbnNlVVJMOworICAgIGlmIChpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKQorICAg
ICAgICByZXNwb25zZVVSTCA9IG1fZG9jdW1lbnQudXJsKCk7CisgICAgZWxzZSB7CisgICAgICAg
IHJlc3BvbnNlVVJMID0gcmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTCgqanNHbG9iYWxPYmplY3Qs
IG1vZHVsZUtleVZhbHVlKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVs
bHB0cik7CisgICAgfQorICAgIEFTU0VSVChyZXNwb25zZVVSTC5pc1ZhbGlkKCkpOworCisgICAg
bWV0YVByb3BlcnRpZXMtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAidXJsIiksIEpTQzo6anNTdHJpbmcodm0sIHJlc3BvbnNlVVJMLnN0cmluZygpKSk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICByZXR1cm4gbWV0
YVByb3BlcnRpZXM7CkBAIC0zMTgsNyArMzM1LDE2IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVy
Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImIGxvYWRlciwgUmVmUHRy
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFk
ZChXVEZNb3ZlKHNvdXJjZVVSTCksIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpKTsKKyAg
ICBVUkwgcmVzcG9uc2VVUkwgPSBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKTsKKyAgICAv
LyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3Vy
Y2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6
OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4K
KyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNrIGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0
aW9ucy4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4
NDIwCisgICAgaWYgKCFjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCkgJiYgY2FjaGVkU2Ny
aXB0LnJlc3BvbnNlKCkuc291cmNlKCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2
aWNlV29ya2VyKSB7CisgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVy
KCkpCisgICAgICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIoc291cmNl
VVJMLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICB9CisKKyAgICBtX3JlcXVlc3RVUkxUb1Jl
c3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwp
KTsKICAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmpl
Y3QmIGpzR2xvYmFsT2JqZWN0KSB7CiAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6
Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUg
eyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNv
dXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgp
IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxl
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
aAppbmRleCA0MGMzYmQxNmM1NzI4ZWU1NzBiMDYxZjFkMmZhNDdhN2Q1YmEzNmExLi5kZTI5ZDJm
NGJmMDk2YjYwYzM2OTk4MDMxNmMxNDg2YjI4MmFiZjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaApAQCAtNjUsOSArNjUsMTAgQEAgY2xh
c3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXJDbGllbnQgewogcHJpdmF0ZToKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlciYsIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+KSBmaW5hbDsKICAgICBV
UkwgbW9kdWxlVVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpTVmFsdWUpOworICAgIFVS
TCByZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpT
VmFsdWUpOwogCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7Ci0gICAgSGFzaE1hcDxVUkwsIFVS
TD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKKyAgICBIYXNoTWFwPFN0cmluZywgVVJM
PiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOwogICAgIEhhc2hTZXQ8UmVmPENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9hZGVyczsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMzRjYmM4MDU4YjA1
NTBiYjhmMmZhM2MwN2ExYzQwMTIzNGZiNTU3Li4zMDE0ZDRjYWQxMmEyOTlhMTBjNzY3ZjhjNjdl
MmUzMjM0OGZjOTMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDQtMTQgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBpbXBvcnQubWV0YS51cmw6IGJh
c2VVUkwgZm9yIGEgbW9kdWxlIHNjcmlwdCBzaG91bGQgYmUgcmVzcG9uc2UgVVJMLCBub3QgcmVx
dWVzdCBVUkwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTI5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFwcGxlV2luIG5ldHdvcmtpbmcgZG9lcyBub3QgcHJvcGVybHkgcHJvcGFnYXRlIGZyYWdtZW50
IGlmIHJlZGlyZWN0IGxvY2F0aW9uIGNsZWFycyBpdC4gVGhpcyBpcyBhIGtub3duIGlzc3VlWzFd
LgorCisgICAgICAgIFsxXTogU2VlIGBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QtdG8t
ZnJhZ21lbnQyLmh0bWwgWyBGYWlsdXJlIF1gIGluIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zLgorCisgICAgICAgICogaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRo
LWZyYWdtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0
YS11cmwtcmVkaXJlY3Qtd2l0aC1mcmFnbWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dw
dC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21v
ZHVsZS1tZXRhLXVybC13aXRoLWZyYWdtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtd2l0aC1mcmFnbWVudC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3dwdC9yZXNvdXJjZXMvcmVkaXJlY3QucHk6IEFkZGVkLgorICAgICAgICAo
bWFpbik6CisgICAgICAgICogcGxhdGZvcm0vd2luL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGly
ZWN0LXdpdGgtZnJhZ21lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAyMC0wNC0xMyAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIG1vZHVsZSdzIGRlZmF1
bHQgY3Jvc3Mtb3JpZ2luIHZhbHVlIHNob3VsZCBiZSAiYW5vbnltb3VzIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhkODAxOTBmNGU1NTYxOTNmNzJmZWVlMTEzZDRjNDMyZTkxZjA0MTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgaW1wb3J0Lm1ldGEudXJsIHNob3Vs
ZCBiZSByZWRpcmVjdGVkIHVybCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1
bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1mcmFnbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWZyYWdtZW50LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMTAxOWU3YzNkZWM3NTczMDMwYmEyNDNmODUxMjZmZTY4MzIwNzM3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVk
aXJlY3Qtd2l0aC1mcmFnbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitQQVNT
IGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDEgCitQQVNTIGltcG9ydC1tZXRhLXVybC1l
eHBvc2UuanMjdGVzdDIgCitQQVNTIGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDQgCitQ
QVNTIGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEEgCitQQVNTIGltcG9ydC1tZXRhLXVy
bC1leHBvc2UuanMgCitQQVNTIGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEMgCitQQVNT
IGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEQgCitQQVNTIGltcG9ydC1tZXRhLXVybC1l
eHBvc2UuanMjdGVzdENDIAorUEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RFRSAK
K1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0R0dHIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWZyYWdtZW50Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWZyYWdt
ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzEwNGJiZWJhZDc0ZTJmMjM0ZjUzOTBkN2M2MzQ4NzI2Nzdk
NDFhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJs
LXJlZGlyZWN0LXdpdGgtZnJhZ21lbnQuaHRtbApAQCAtMCwwICsxLDg5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+aW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSBy
ZWRpcmVjdGVkIHVybCB3aXRoIGZyYWdtZW50PC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZ2xv
YmFsVGhpcy5tZXRhVVJMcyA9IFtdOworCitmdW5jdGlvbiByZWRpcmVjdFRlc3QodGFyZ2V0VVJM
LCBleHBlY3RlZCkKK3sKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c2NyaXB0Jyk7CisgICAgICAgIHNjcmlwdC50eXBlID0gJ21vZHVsZSc7CisgICAgICAgIHNjcmlw
dC5zcmMgPSB0YXJnZXRVUkw7CisgICAgICAgIHNjcmlwdC5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZ2xvYmFs
VGhpcy5tZXRhVVJMcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGxldCB1cmwgPSBnbG9i
YWxUaGlzLm1ldGFVUkxzLnNoaWZ0KCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh1
cmwsIGV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9
IGNhdGNoIChlcnJvcikgeworICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7CisgICAgICAg
ICAgICB9CisgICAgICAgIH07CisgICAgICAgIHNjcmlwdC5vbmVycm9yID0gcmVqZWN0OworICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7CisgICAgfSk7Cit9CisKK2xl
dCByb290ID0gYGh0dHA6Ly8ke2RvY3VtZW50LmxvY2F0aW9uLmhvc3R9L1dlYktpdGA7CitsZXQg
YmFzZW5hbWUgPSBgaHR0cDovLyR7ZG9jdW1lbnQubG9jYXRpb24uaG9zdH0vV2ViS2l0L2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGVgOworCitwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVzb3Vy
Y2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5h
bWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3QxYCksIGAke2Jhc2Vu
YW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MWApOworfSwgYGlt
cG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDFgKTsKKworcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvV2ViS2l0L3Jlc291cmNlcy9yZWRpcmVjdC5weT9s
b2NhdGlvbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1w
b3J0LW1ldGEtdXJsLWV4cG9zZS5qc2ApICsgIiN0ZXN0MiIsIGAke2Jhc2VuYW1lfS9yZXNvdXJj
ZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MmApOworfSwgYGltcG9ydC1tZXRhLXVy
bC1leHBvc2UuanMjdGVzdDJgKTsKKworcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4g
cmVkaXJlY3RUZXN0KCcvV2ViS2l0L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj0nICsg
ZW5jb2RlVVJJQ29tcG9uZW50KGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJs
LWV4cG9zZS5qcyN0ZXN0NGApICsgIiN0ZXN0MyIsIGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1w
b3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0NGApOworfSwgYGltcG9ydC1tZXRhLXVybC1leHBv
c2UuanMjdGVzdDRgKTsKKworcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gcmVkaXJl
Y3RUZXN0KCcvV2ViS2l0L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj0nICsgZW5jb2Rl
VVJJQ29tcG9uZW50KGAke3Jvb3R9L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1gICsg
ZW5jb2RlVVJJQ29tcG9uZW50KGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJs
LWV4cG9zZS5qcyN0ZXN0QWApKSwgYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11
cmwtZXhwb3NlLmpzI3Rlc3RBYCk7Cit9LCBgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0
QWApOworCisvLyBGSVhNRTogVGhpcyB0ZXN0IHBhc3Mgb25jZSB0aGUgZm9sbG93aW5nIGlzc3Vl
IGlzIGZpeGVkLgorLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
ODQyMAorLy8gcHJvbWlzZV90ZXN0KCgpID0+IHsKKy8vICAgICByZXR1cm4gcmVkaXJlY3RUZXN0
KCcvV2ViS2l0L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj0nICsgZW5jb2RlVVJJQ29t
cG9uZW50KGAke3Jvb3R9L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1gICsgZW5jb2Rl
VVJJQ29tcG9uZW50KGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9z
ZS5qc2ApICsgIiN0ZXN0QiIpLCBgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVy
bC1leHBvc2UuanMjdGVzdEJgKTsKKy8vIH0sIGBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rl
c3RCYCk7CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgn
L1dlYktpdC9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249JyArIGVuY29kZVVSSUNvbXBv
bmVudChgJHtyb290fS9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249YCArIGVuY29kZVVS
SUNvbXBvbmVudChgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2Uu
anNgKSksIGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qc2Ap
OworfSwgYGltcG9ydC1tZXRhLXVybC1leHBvc2UuanNgKTsKKworcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvV2ViS2l0L3Jlc291cmNlcy9yZWRpcmVjdC5w
eT9sb2NhdGlvbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke3Jvb3R9L3Jlc291cmNlcy9yZWRp
cmVjdC5weT9sb2NhdGlvbj1gICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke2Jhc2VuYW1lfS9yZXNv
dXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qc2ApKSArICIjdGVzdEMiLCBgJHtiYXNlbmFt
ZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdENgKTsKK30sIGBpbXBv
cnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RDYCk7CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL1dlYktpdC9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9j
YXRpb249JyArIGVuY29kZVVSSUNvbXBvbmVudChgJHtyb290fS9yZXNvdXJjZXMvcmVkaXJlY3Qu
cHk/bG9jYXRpb249YCArIGVuY29kZVVSSUNvbXBvbmVudChgJHtiYXNlbmFtZX0vcmVzb3VyY2Vz
L2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanNgKSkgKyAiI3Rlc3REIiwgYCR7YmFzZW5hbWV9L3Jl
c291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3REYCk7Cit9LCBgaW1wb3J0LW1l
dGEtdXJsLWV4cG9zZS5qcyN0ZXN0RGApOworCisvLyBGSVhNRTogVGhpcyB0ZXN0IHBhc3Mgb25j
ZSB0aGUgZm9sbG93aW5nIGlzc3VlIGlzIGZpeGVkLgorLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1ODQyMAorLy8gcHJvbWlzZV90ZXN0KCgpID0+IHsKKy8vICAg
ICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvV2ViS2l0L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2Nh
dGlvbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke3Jvb3R9L3Jlc291cmNlcy9yZWRpcmVjdC5w
eT9sb2NhdGlvbj1gICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMv
aW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qc2ApICsgIiN0ZXN0QUEiKSArICIjdGVzdEJCIiwgYCR7
YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RBQWApOwor
Ly8gfSwgYGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEFBYCk7CisKK3Byb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL1dlYktpdC9yZXNvdXJjZXMvcmVk
aXJlY3QucHk/bG9jYXRpb249JyArIGVuY29kZVVSSUNvbXBvbmVudChgJHtyb290fS9yZXNvdXJj
ZXMvcmVkaXJlY3QucHk/bG9jYXRpb249YCArIGVuY29kZVVSSUNvbXBvbmVudChgJHtiYXNlbmFt
ZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdENDYCkpICsgIiN0ZXN0
REQiLCBgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVz
dENDYCk7Cit9LCBgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0Q0NgKTsKKworcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvV2ViS2l0L3Jlc291cmNl
cy9yZWRpcmVjdC5weT9sb2NhdGlvbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke3Jvb3R9L3Jl
c291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1gICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke2Jh
c2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0RUVgKSArICIj
dGVzdEZGIiksIGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5q
cyN0ZXN0RUVgKTsKK30sIGBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RFRWApOworCitw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVz
b3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7cm9v
dH0vcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWAgKyBlbmNvZGVVUklDb21wb25lbnQo
YCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RHR0dg
KSArICIjdGVzdEhISCIpICsgIiN0ZXN0SUlJIiwgYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBv
cnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RHR0dgKTsKK30sIGBpbXBvcnQtbWV0YS11cmwtZXhw
b3NlLmpzI3Rlc3RHR0dgKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc3
MmMyMGI5OWExOGE5M2NhNmYyYTk0YzAzZmEzZDNlNjcyZTk5NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3Jp
cHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0Lmh0bWwKQEAgLTAsMCAr
MSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPmltcG9ydC5t
ZXRhLnVybCBzaG91bGQgYmUgcmVkaXJlY3RlZCB1cmw8L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitnbG9iYWxUaGlzLm1ldGFVUkxzID0gW107CitsZXQgYmFzZW5hbWUgPSBgaHR0cDovLyR7ZG9j
dW1lbnQubG9jYXRpb24uaG9zdH0vV2ViS2l0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb2R1bGVgOworcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1
cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICB2YXIg
c2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CisgICAgICAgIHNjcmlw
dC50eXBlID0gJ21vZHVsZSc7CisgICAgICAgIHNjcmlwdC5zcmMgPSAnL1dlYktpdC9yZXNvdXJj
ZXMvcmVkaXJlY3QucHk/bG9jYXRpb249JyArIGVuY29kZVVSSUNvbXBvbmVudChgJHtiYXNlbmFt
ZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanNgKTsKKyAgICAgICAgc2NyaXB0
Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhnbG9iYWxUaGlzLm1ldGFVUkxzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhnbG9iYWxUaGlzLm1ldGFVUkxzWzBdLCBgJHtiYXNlbmFt
ZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanNgKTsKKyAgICAgICAgICAgICAg
ICByZXNvbHZlKCk7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAg
cmVqZWN0KGUpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBzY3JpcHQub25l
cnJvciA9IHJlamVjdDsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQp
OworICAgIH0pOworfSwgJ2ltcG9ydC5tZXRhLnVybCBzaG91bGQgYmUgcmVkaXJlY3RlZCB1cmwn
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
ZHVsZS9tb2R1bGUtbWV0YS11cmwtd2l0aC1mcmFnbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC13aXRoLWZyYWdtZW50LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45Y2I5NzU1ZWIxYjExNDA0ZWJmMDUwMGNkOTg0MTNkMWE5ODNkM2U2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtd2l0aC1mcmFnbWVu
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgaW1wb3J0Lm1ldGEudXJsIHNo
b3VsZCBiZSBoYXZlIGEgZnJhZ21lbnQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUv
bW9kdWxlLW1ldGEtdXJsLXdpdGgtZnJhZ21lbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9k
dWxlLW1ldGEtdXJsLXdpdGgtZnJhZ21lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGE1Nzk2YTY1YTAx
NjlhNDQwZDcwYzliZTg1NzlhYzRlOWY2NjllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtd2l0aC1mcmFnbWVudC5odG1sCkBAIC0wLDAgKzEsMzMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5pbXBvcnQubWV0YS51
cmwgc2hvdWxkIGhhdmUgYSBmcmFnbWVudDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2dsb2Jh
bFRoaXMubWV0YVVSTHMgPSBbXTsKK2xldCBiYXNlbmFtZSA9IGBodHRwOi8vJHtkb2N1bWVudC5s
b2NhdGlvbi5ob3N0fS9XZWJLaXQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZWA7Citwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcg
UHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgIHZhciBzY3JpcHQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKKyAgICAgICAgc2NyaXB0LnR5cGUg
PSAnbW9kdWxlJzsKKyAgICAgICAgc2NyaXB0LnNyYyA9IGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMv
aW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0YDsKKyAgICAgICAgc2NyaXB0Lm9ubG9hZCA9
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhnbG9iYWxUaGlzLm1ldGFVUkxzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAg
bGV0IHVybCA9IGdsb2JhbFRoaXMubWV0YVVSTHMuc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHVybCwgYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwt
ZXhwb3NlLmpzI3Rlc3RgKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICAgICAg
fQorICAgICAgICB9OworICAgICAgICBzY3JpcHQub25lcnJvciA9IHJlamVjdDsKKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOworICAgIH0pOworfSwgJ2ltcG9ydC5t
ZXRhLnVybCBzaG91bGQgYmUgaGF2ZSBhIGZyYWdtZW50Jyk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvcmVzb3VyY2VzL2ltcG9ydC1t
ZXRhLXVybC1leHBvc2UuanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL3Jlc291cmNlcy9pbXBvcnQtbWV0
YS11cmwtZXhwb3NlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1M2E2MjEzMWE1NzVkYjU4NTQyMWNkMjFlNWI3
YzdjZWVkZjIxMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1s
L3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL3Jlc291cmNl
cy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzCkBAIC0wLDAgKzEgQEAKK2dsb2JhbFRoaXMubWV0
YVVSTHMucHVzaChpbXBvcnQubWV0YS51cmwpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvcmVzb3VyY2VzL3JlZGlyZWN0LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvcmVzb3Vy
Y2VzL3JlZGlyZWN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwMDZjOWQ0MWQ5YmRjYmVkZTJiYzIzMTA5MzAx
YTFiNzNlN2JlMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9yZXNv
dXJjZXMvcmVkaXJlY3QucHkKQEAgLTAsMCArMSw1IEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNw
b25zZSk6CisgICAgaGVhZGVycyA9IFsoIkNhY2hlLUNvbnRyb2wiLCAibm8tY2FjaGUiKSwKKyAg
ICAgICAgICAgICAgICgiUHJhZ21hIiwgIm5vLWNhY2hlIiksCisgICAgICAgICAgICAgICAoIkxv
Y2F0aW9uIiwgcmVxdWVzdC5HRVRbJ2xvY2F0aW9uJ10pXQorICAgIHJldHVybiAzMDIsIGhlYWRl
cnMsICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHR0cC93cHQvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUt
bWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1mcmFnbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1mcmFnbWVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODEwZDEyMWIwYzY0MjBiZmJlYzk2NzhiYzBkMzQ1
ZTNmZmFhZWVlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9o
dHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWZyYWdtZW50LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEyIEBACisKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MSAK
K0ZBSUwgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL1dlYktpdC9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwt
ZXhwb3NlLmpzI3Rlc3QyIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvV2ViS2l0L2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvcmVzb3Vy
Y2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMiCitQQVNTIGltcG9ydC1tZXRhLXVybC1leHBv
c2UuanMjdGVzdDQgCitQQVNTIGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEEgCitQQVNT
IGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMgCitGQUlMIGltcG9ydC1tZXRhLXVybC1leHBvc2Uu
anMjdGVzdEMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9X
ZWJLaXQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QyIgYnV0IGdvdCAiaHR0
cDovL2xvY2FsaG9zdDo4ODAwL1dlYktpdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpz
IgorRkFJTCBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3REIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvV2ViS2l0L2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVy
bC1leHBvc2UuanMjdGVzdEQiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9XZWJLaXQv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9yZXNv
dXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyIKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4
cG9zZS5qcyN0ZXN0Q0MgCitQQVNTIGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEVFIAor
UEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RHR0cgCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396415</attachid>
            <date>2020-04-14 07:29:05 -0700</date>
            <delta_ts>2020-04-14 07:32:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205294-20200414072905.patch</filename>
            <type>text/plain</type>
            <size>28114</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2MDJkOWI4YWZmZDlm
YTdhNDJjZjVhYzI3Zjc1MGJhZTU4NDMzOC4uYWIzMzIzNDcxNDRlNzBjN2ExYzFlNWY1NTdiZWJj
MzE0MTMxZDYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA0LTE0ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgaW1wb3J0Lm1ldGEudXJs
OiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQgc2hvdWxkIGJlIHJlc3BvbnNlIFVSTCwgbm90
IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgbW9kdWxlIHNob3VsZCBleHBvc2UgcmVzcG9uc2UgVVJMIGFzIGBpbXBvcnQubWV0
YS51cmxgIGluc3RlYWQgb2YgcmVxdWVzdCBVUkwuCisgICAgICAgIElmIHJlZGlyZWN0aW9uIGhh
cHBlbnMsIHRoaXMgVVJMIHNob3VsZCBiZSByZWRpcmVjdGVkIG9uZS4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxl
TG9hZGVyOjpyZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdE1vZHVsZUxvYWRlcjo6Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmg6CisKIDIwMjAtMDQtMTMgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBtb2R1bGUncyBkZWZhdWx0IGNy
b3NzLW9yaWdpbiB2YWx1ZSBzaG91bGQgYmUgImFub255bW91cyIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDhlNDg4NGQyNDY3
NjQ4YjhhOWFmMjUxZGYwYTUwOGY2OTU1MWM2MWMuLmZjOTIxZDk3YjgyZjNkZmVmM2ZkOWMxZWFi
MjE3NjkwYTE5OWMyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtMTA0LDE4ICsxMDQsOSBAQCBKU0M6OklkZW50aWZpZXIg
U2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFs
T2JqZWN0LAogICAgIFN0cmluZyBzcGVjaWZpZXIgPSBhc1N0cmluZyhtb2R1bGVOYW1lVmFsdWUp
LT52YWx1ZShqc0dsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKIAotICAgIFVSTCBiYXNlVVJMOwotICAgIGlmIChpc1Jvb3RNb2R1bGUoaW1wb3J0ZXJN
b2R1bGVLZXkpKQotICAgICAgICBiYXNlVVJMID0gbV9kb2N1bWVudC5iYXNlVVJMKCk7Ci0gICAg
ZWxzZSB7Ci0gICAgICAgIEFTU0VSVChpbXBvcnRlck1vZHVsZUtleS5pc1N0cmluZygpKTsKLSAg
ICAgICAgVVJMIGltcG9ydGVyTW9kdWxlUmVxdWVzdFVSTChVUkwoKSwgYXNTdHJpbmcoaW1wb3J0
ZXJNb2R1bGVLZXkpLT52YWx1ZShqc0dsb2JhbE9iamVjdCkpOwotICAgICAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKGltcG9ydGVyTW9kdWxlUmVxdWVzdFVSTC5pc1ZhbGlkKCksICJJbnZhbGlkIG1v
ZHVsZSByZWZlcnJlciBuZXZlciBzdGFydHMgaW1wb3J0aW5nIGRlcGVuZGVudCBtb2R1bGVzLiIp
OwotCi0gICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFw
LmZpbmQoaW1wb3J0ZXJNb2R1bGVSZXF1ZXN0VVJMKTsKLSAgICAgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRShpdGVyYXRvciAhPSBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmVuZCgpLCAiTW9k
dWxlIHJlZmVycmVyIG11c3QgcmVnaXN0ZXIgaXRzZWxmIHRvIHRoZSBtYXAgYmVmb3JlIHN0YXJ0
aW5nIGltcG9ydGluZyBkZXBlbmRlbnQgbW9kdWxlcy4iKTsKLSAgICAgICAgYmFzZVVSTCA9IGl0
ZXJhdG9yLT52YWx1ZTsKLSAgICB9CisgICAgVVJMIGJhc2VVUkwgPSByZXNwb25zZVVSTEZyb21S
ZXF1ZXN0VVJMKCpqc0dsb2JhbE9iamVjdCwgaW1wb3J0ZXJNb2R1bGVLZXkpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgQVNTRVJUKGJhc2VVUkwuaXNWYWxpZCgp
KTsKIAogICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2RvY3VtZW50
LCBzcGVjaWZpZXIsIGJhc2VVUkwpOwogICAgIGlmICghcmVzdWx0KSB7CkBAIC0xOTIsNiArMTgz
LDI1IEBAIFVSTCBTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVSTChKU0M6OkpTR2xvYmFsT2Jq
ZWN0JiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU1ZhCiAgICAgcmV0dXJuIFVSTChVUkwoKSwgYXNT
dHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZSgmanNHbG9iYWxPYmplY3QpKTsKIH0KIAorVVJM
IFNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTChKU0M6OkpTR2xv
YmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlKQor
eworICAgIEpTQzo6Vk0mIHZtID0ganNHbG9iYWxPYmplY3Qudm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBpZiAoaXNSb290TW9kdWxlKGltcG9y
dGVyTW9kdWxlS2V5KSkKKyAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQuYmFzZVVSTCgpOworCisg
ICAgQVNTRVJUKCFpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKTsKKyAgICBBU1NFUlQobW9k
dWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CisgICAgU3RyaW5nIHJlcXVlc3RVUkwgPSBhc1N0cmlu
Zyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKCZqc0dsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKFVSTChVUkwo
KSwgcmVxdWVzdFVSTCkuaXNWYWxpZCgpLCAiSW52YWxpZCBtb2R1bGUgcmVmZXJyZXIgbmV2ZXIg
c3RhcnRzIGltcG9ydGluZyBkZXBlbmRlbnQgbW9kdWxlcy4iKTsKKworICAgIGF1dG8gaXRlcmF0
b3IgPSBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmZpbmQocmVxdWVzdFVSTCk7CisgICAg
QVNTRVJUX1dJVEhfTUVTU0FHRShpdGVyYXRvciAhPSBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJM
TWFwLmVuZCgpLCAiTW9kdWxlIHJlZmVycmVyIG11c3QgcmVnaXN0ZXIgaXRzZWxmIHRvIHRoZSBt
YXAgYmVmb3JlIHN0YXJ0aW5nIGltcG9ydGluZyBkZXBlbmRlbnQgbW9kdWxlcy4iKTsKKyAgICBy
ZXR1cm4gaXRlcmF0b3ItPnZhbHVlOworfQorCiBKU0M6OkpTVmFsdWUgU2NyaXB0TW9kdWxlTG9h
ZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwgSlNDOjpK
U01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVl
IG1vZHVsZVJlY29yZFZhbHVlLCBKU0M6OkpTVmFsdWUpCiB7CiAgICAgSlNDOjpWTSYgdm0gPSBq
c0dsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI2NSwxMyArMjc1LDE0IEBAIEpTQzo6SlNPYmplY3Qq
IFNjcmlwdE1vZHVsZUxvYWRlcjo6Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0ds
b2JhbE9iamVjCiAgICAgYXV0byYgdm0gPSBqc0dsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBVUkwgc291cmNlVVJMID0g
bW9kdWxlVVJMKCpqc0dsb2JhbE9iamVjdCwgbW9kdWxlS2V5VmFsdWUpOwotICAgIEFTU0VSVChz
b3VyY2VVUkwuaXNWYWxpZCgpKTsKLQogICAgIGF1dG8qIG1ldGFQcm9wZXJ0aWVzID0gSlNDOjpj
b25zdHJ1Y3RFbXB0eU9iamVjdCh2bSwganNHbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVPYmpl
Y3RTdHJ1Y3R1cmUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7
CiAKLSAgICBtZXRhUHJvcGVydGllcy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJ1cmwiKSwgSlNDOjpqc1N0cmluZyh2bSwgc291cmNlVVJMLnN0cmluZygp
KSk7CisgICAgVVJMIHJlc3BvbnNlVVJMID0gcmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTCgqanNH
bG9iYWxPYmplY3QsIG1vZHVsZUtleVZhbHVlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBudWxscHRyKTsKKyAgICBBU1NFUlQocmVzcG9uc2VVUkwuaXNWYWxpZCgpKTsKKworICAg
IG1ldGFQcm9wZXJ0aWVzLT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgInVybCIpLCBKU0M6OmpzU3RyaW5nKHZtLCByZXNwb25zZVVSTC5zdHJpbmcoKSkpOwog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCiAgICAgcmV0dXJuIG1l
dGFQcm9wZXJ0aWVzOwpAQCAtMzE4LDcgKzMyOSwxNyBAQCB2b2lkIFNjcmlwdE1vZHVsZUxvYWRl
cjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiBsb2FkZXIsIFJlZlB0
cgogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcC5h
ZGQoV1RGTW92ZShzb3VyY2VVUkwpLCBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKSk7Cisg
ICAgVVJMIHJlc3BvbnNlVVJMID0gY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCk7CisgICAg
Ly8gSWYgd2UgZG8gbm90IGhhdmUgcmVkaXJlY3Rpb24sIHdlIG11c3QgcmVzZXJ2ZSB0aGUgc291
cmNlIFVSTCdzIGZyYWdtZW50IGV4cGxpY2l0bHkgaGVyZSBzaW5jZSBSZXNvdXJjZVJlc3BvbnNl
Ojp1cmwoKSBpcyB0aGUgb25lIHdoZW4gd2UgZmlyc3QgY2FjaGUgaXQgdG8gTWVtb3J5Q2FjaGUu
CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRpcmVj
dGlvbnMuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
ODQyMAorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0
OTAKKyAgICBpZiAoIWNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlvbnMoKSAmJiBjYWNoZWRTY3Jp
cHQucmVzcG9uc2UoKS5zb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZp
Y2VXb3JrZXIpIHsKKyAgICAgICAgaWYgKHNvdXJjZVVSTC5oYXNGcmFnbWVudElkZW50aWZpZXIo
KSkKKyAgICAgICAgICAgIHJlc3BvbnNlVVJMLnNldEZyYWdtZW50SWRlbnRpZmllcihzb3VyY2VV
UkwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgIH0KKworICAgIG1fcmVxdWVzdFVSTFRvUmVz
cG9uc2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwgV1RGTW92ZShyZXNwb25zZVVSTCkp
OwogICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVj
dCYganNHbG9iYWxPYmplY3QpIHsKICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpj
cmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKICAgICAgICAgICAgIEpTQzo6U291cmNlQ29kZSB7
IFNjcmlwdFNvdXJjZUNvZGUgeyAmY2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291
cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5o
CmluZGV4IDQwYzNiZDE2YzU3MjhlZTU3MGIwNjFmMWQyZmE0N2E3ZDViYTM2YTEuLmRlMjlkMmY0
YmYwOTZiNjBjMzY5OTgwMzE2YzE0ODZiMjgyYWJmMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCkBAIC02NSw5ICs2NSwxMCBAQCBjbGFz
cyBTY3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudCB7CiBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4pIGZpbmFsOwogICAgIFVS
TCBtb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CisgICAgVVJM
IHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNW
YWx1ZSk7CiAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKLSAgICBIYXNoTWFwPFVSTCwgVVJM
PiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOworICAgIEhhc2hNYXA8U3RyaW5nLCBVUkw+
IG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXA7CiAgICAgSGFzaFNldDxSZWY8Q2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyPj4gbV9sb2FkZXJzOwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIzNGNiYzgwNThiMDU1
MGJiOGYyZmEzYzA3YTFjNDAxMjM0ZmI1NTcuLmNmODg2YjNiNTQ4MzE1YWRmODViMDA0NTNkY2Jh
NmMwN2M2ZDJlNjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMC0wNC0xNCAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIGltcG9ydC5tZXRhLnVybDogYmFz
ZVVSTCBmb3IgYSBtb2R1bGUgc2NyaXB0IHNob3VsZCBiZSByZXNwb25zZSBVUkwsIG5vdCByZXF1
ZXN0IFVSTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1Mjk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QXBwbGVXaW4gbmV0d29ya2luZyBkb2VzIG5vdCBwcm9wZXJseSBwcm9wYWdhdGUgZnJhZ21lbnQg
aWYgcmVkaXJlY3QgbG9jYXRpb24gY2xlYXJzIGl0LiBUaGlzIGlzIGEga25vd24gaXNzdWVbMV0u
CisKKyAgICAgICAgWzFdOiBTZWUgYGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC10by1m
cmFnbWVudDIuaHRtbCBbIEZhaWx1cmUgXWAgaW4gcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMuCisKKyAgICAgICAgKiBodHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgt
ZnJhZ21lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9odG1sL3Nl
bWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRh
LXVybC1yZWRpcmVjdC13aXRoLWZyYWdtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
d3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUv
bW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9k
dWxlLW1ldGEtdXJsLXdpdGgtZnJhZ21lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL21vZHVsZS1tZXRhLXVybC13aXRoLWZyYWdtZW50Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb2R1bGUvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanM6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvd3B0L3Jlc291cmNlcy9yZWRpcmVjdC5weTogQWRkZWQuCisgICAgICAgICht
YWluKToKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbW9kdWxlLW1ldGEtdXJs
LWZyYWdtZW50LXdvcmtlci5qczogQWRkZWQuCisgICAgICAgIChhc3luYyBlKToKKyAgICAgICAg
KiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbW9kdWxlLW1ldGEtdXJsLWZyYWdtZW50Lmh0dHBz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L21vZHVsZS1tZXRhLXVybC1mcmFnbWVudC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL21vZHVsZS1tZXRhLXVybC1mcmFnbWVu
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vaHR0cC93cHQvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11
cmwtcmVkaXJlY3Qtd2l0aC1mcmFnbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDIwLTA0
LTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgbW9kdWxl
J3MgZGVmYXVsdCBjcm9zcy1vcmlnaW4gdmFsdWUgc2hvdWxkIGJlICJhbm9ueW1vdXMiCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGQ4MDE5MGY0ZTU1NjE5M2Y3MmZlZWUxMTNkNGM0MzJlOTFmMDQx
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJl
ZGlyZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBpbXBvcnQubWV0YS51
cmwgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJsIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWZyYWdtZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3Jp
cHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtZnJhZ21lbnQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxMDE5ZTdjM2RlYzc1NzMwMzBiYTI0M2Y4NTEyNmZl
NjgzMjA3MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3Nl
bWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRh
LXVybC1yZWRpcmVjdC13aXRoLWZyYWdtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBA
CisKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MSAKK1BBU1MgaW1wb3J0LW1l
dGEtdXJsLWV4cG9zZS5qcyN0ZXN0MiAKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0
ZXN0NCAKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QSAKK1BBU1MgaW1wb3J0
LW1ldGEtdXJsLWV4cG9zZS5qcyAKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0
QyAKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0RCAKK1BBU1MgaW1wb3J0LW1l
dGEtdXJsLWV4cG9zZS5qcyN0ZXN0Q0MgCitQQVNTIGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMj
dGVzdEVFIAorUEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RHR0cgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtZnJh
Z21lbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdp
dGgtZnJhZ21lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTA0YmJlYmFkNzRlMmYyMzRmNTM5MGQ3YzYz
NDg3MjY3N2Q0MWE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUt
bWV0YS11cmwtcmVkaXJlY3Qtd2l0aC1mcmFnbWVudC5odG1sCkBAIC0wLDAgKzEsODkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5pbXBvcnQubWV0YS51cmwgc2hv
dWxkIGJlIHJlZGlyZWN0ZWQgdXJsIHdpdGggZnJhZ21lbnQ8L3RpdGxlPgorPHNjcmlwdCBzcmM9
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitnbG9iYWxUaGlzLm1ldGFVUkxzID0gW107CisKK2Z1bmN0aW9uIHJlZGlyZWN0VGVzdCh0
YXJnZXRVUkwsIGV4cGVjdGVkKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAo
cmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzY3JpcHQnKTsKKyAgICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJzsKKyAgICAg
ICAgc2NyaXB0LnNyYyA9IHRhcmdldFVSTDsKKyAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhnbG9iYWxUaGlzLm1ldGFVUkxzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgbGV0IHVy
bCA9IGdsb2JhbFRoaXMubWV0YVVSTHMuc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHVybCwgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
ICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSByZWpl
Y3Q7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICB9KTsK
K30KKworbGV0IHJvb3QgPSBgaHR0cDovLyR7ZG9jdW1lbnQubG9jYXRpb24uaG9zdH0vV2ViS2l0
YDsKK2xldCBiYXNlbmFtZSA9IGBodHRwOi8vJHtkb2N1bWVudC5sb2NhdGlvbi5ob3N0fS9XZWJL
aXQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZWA7
CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL1dlYktp
dC9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249JyArIGVuY29kZVVSSUNvbXBvbmVudChg
JHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDFgKSwg
YCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3QxYCk7
Cit9LCBgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MWApOworCitwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGly
ZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9L3Jlc291
cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzYCkgKyAiI3Rlc3QyIiwgYCR7YmFzZW5hbWV9
L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3QyYCk7Cit9LCBgaW1wb3J0
LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MmApOworCitwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
IHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0
aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQt
bWV0YS11cmwtZXhwb3NlLmpzI3Rlc3Q0YCkgKyAiI3Rlc3QzIiwgYCR7YmFzZW5hbWV9L3Jlc291
cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3Q0YCk7Cit9LCBgaW1wb3J0LW1ldGEt
dXJsLWV4cG9zZS5qcyN0ZXN0NGApOworCitwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVy
biByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPScg
KyBlbmNvZGVVUklDb21wb25lbnQoYCR7cm9vdH0vcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0
aW9uPWAgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQt
bWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RBYCkpLCBgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9y
dC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEFgKTsKK30sIGBpbXBvcnQtbWV0YS11cmwtZXhwb3Nl
LmpzI3Rlc3RBYCk7CisKKy8vIEZJWE1FOiBUaGlzIHRlc3QgcGFzcyBvbmNlIHRoZSBmb2xsb3dp
bmcgaXNzdWUgaXMgZml4ZWQuCisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU4NDIwCisvLyBwcm9taXNlX3Rlc3QoKCkgPT4geworLy8gICAgIHJldHVybiByZWRp
cmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNv
ZGVVUklDb21wb25lbnQoYCR7cm9vdH0vcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWAg
KyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11
cmwtZXhwb3NlLmpzYCkgKyAiI3Rlc3RCIiksIGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0
LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QmApOworLy8gfSwgYGltcG9ydC1tZXRhLXVybC1leHBv
c2UuanMjdGVzdEJgKTsKKworcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gcmVkaXJl
Y3RUZXN0KCcvV2ViS2l0L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj0nICsgZW5jb2Rl
VVJJQ29tcG9uZW50KGAke3Jvb3R9L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1gICsg
ZW5jb2RlVVJJQ29tcG9uZW50KGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJs
LWV4cG9zZS5qc2ApKSwgYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhw
b3NlLmpzYCk7Cit9LCBgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qc2ApOworCitwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3Jl
ZGlyZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7cm9vdH0vcmVzb3Vy
Y2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWAgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5h
bWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzYCkpICsgIiN0ZXN0QyIsIGAk
e2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0Q2ApOwor
fSwgYGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdENgKTsKKworcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvV2ViS2l0L3Jlc291cmNlcy9yZWRpcmVj
dC5weT9sb2NhdGlvbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke3Jvb3R9L3Jlc291cmNlcy9y
ZWRpcmVjdC5weT9sb2NhdGlvbj1gICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke2Jhc2VuYW1lfS9y
ZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qc2ApKSArICIjdGVzdEQiLCBgJHtiYXNl
bmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdERgKTsKK30sIGBp
bXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3REYCk7CisKKy8vIEZJWE1FOiBUaGlzIHRlc3Qg
cGFzcyBvbmNlIHRoZSBmb2xsb3dpbmcgaXNzdWUgaXMgZml4ZWQuCisvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCisvLyBwcm9taXNlX3Rlc3QoKCkgPT4g
eworLy8gICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGlyZWN0
LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7cm9vdH0vcmVzb3VyY2VzL3Jl
ZGlyZWN0LnB5P2xvY2F0aW9uPWAgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9L3Jl
c291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzYCkgKyAiI3Rlc3RBQSIpICsgIiN0ZXN0
QkIiLCBgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVz
dEFBYCk7CisvLyB9LCBgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QUFgKTsKKworcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvV2ViS2l0L3Jlc291
cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke3Jvb3R9
L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1gICsgZW5jb2RlVVJJQ29tcG9uZW50KGAk
e2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0Q0NgKSkg
KyAiI3Rlc3RERCIsIGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9z
ZS5qcyN0ZXN0Q0NgKTsKK30sIGBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RDQ2ApOwor
Citwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQv
cmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7
cm9vdH0vcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWAgKyBlbmNvZGVVUklDb21wb25l
bnQoYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RF
RWApICsgIiN0ZXN0RkYiKSwgYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwt
ZXhwb3NlLmpzI3Rlc3RFRWApOworfSwgYGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEVF
YCk7CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL1dl
YktpdC9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249JyArIGVuY29kZVVSSUNvbXBvbmVu
dChgJHtyb290fS9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249YCArIGVuY29kZVVSSUNv
bXBvbmVudChgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMj
dGVzdEdHR2ApICsgIiN0ZXN0SEhIIikgKyAiI3Rlc3RJSUkiLCBgJHtiYXNlbmFtZX0vcmVzb3Vy
Y2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEdHR2ApOworfSwgYGltcG9ydC1tZXRh
LXVybC1leHBvc2UuanMjdGVzdEdHR2ApOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hNzcyYzIwYjk5YTE4YTkzY2E2ZjJhOTRjMDNmYTNkM2U2NzJlOTk2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QuaHRtbApA
QCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+
aW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSByZWRpcmVjdGVkIHVybDwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK2dsb2JhbFRoaXMubWV0YVVSTHMgPSBbXTsKK2xldCBiYXNlbmFtZSA9IGBodHRw
Oi8vJHtkb2N1bWVudC5sb2NhdGlvbi5ob3N0fS9XZWJLaXQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZWA7Citwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAg
ICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKKyAgICAg
ICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJzsKKyAgICAgICAgc2NyaXB0LnNyYyA9ICcvV2ViS2l0
L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGAk
e2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qc2ApOworICAgICAg
ICBzY3JpcHQub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbFRoaXMubWV0YVVSTHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbFRoaXMubWV0YVVSTHNbMF0sIGAk
e2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qc2ApOworICAgICAg
ICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ICAgICAgICByZWplY3QoZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHNj
cmlwdC5vbmVycm9yID0gcmVqZWN0OworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KHNjcmlwdCk7CisgICAgfSk7Cit9LCAnaW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSByZWRpcmVj
dGVkIHVybCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC13aXRoLWZyYWdtZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3Jp
cHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXdpdGgtZnJhZ21lbnQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjljYjk3NTVlYjFiMTE0MDRlYmYwNTAwY2Q5ODQxM2QxYTk4M2QzZTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC13aXRo
LWZyYWdtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBpbXBvcnQubWV0
YS51cmwgc2hvdWxkIGJlIGhhdmUgYSBmcmFnbWVudCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtd2l0aC1mcmFnbWVudC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
ZHVsZS9tb2R1bGUtbWV0YS11cmwtd2l0aC1mcmFnbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4YTU3
OTZhNjVhMDE2OWE0NDBkNzBjOWJlODU3OWFjNGU5ZjY2OWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC13aXRoLWZyYWdtZW50Lmh0bWwKQEAgLTAs
MCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPmltcG9y
dC5tZXRhLnVybCBzaG91bGQgaGF2ZSBhIGZyYWdtZW50PC90aXRsZT4KKzxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorZ2xvYmFsVGhpcy5tZXRhVVJMcyA9IFtdOworbGV0IGJhc2VuYW1lID0gYGh0dHA6Ly8ke2Rv
Y3VtZW50LmxvY2F0aW9uLmhvc3R9L1dlYktpdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlYDsKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgdmFy
IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgICAgICBzY3Jp
cHQudHlwZSA9ICdtb2R1bGUnOworICAgICAgICBzY3JpcHQuc3JjID0gYCR7YmFzZW5hbWV9L3Jl
c291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RgOworICAgICAgICBzY3JpcHQu
b25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGdsb2JhbFRoaXMubWV0YVVSTHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICBsZXQgdXJsID0gZ2xvYmFsVGhpcy5tZXRhVVJMcy5zaGlmdCgpOworICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHModXJsLCBgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1t
ZXRhLXVybC1leHBvc2UuanMjdGVzdGApOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAg
ICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICByZWplY3QoZSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHNjcmlwdC5vbmVycm9yID0gcmVqZWN0Owor
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7CisgICAgfSk7Cit9LCAn
aW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSBoYXZlIGEgZnJhZ21lbnQnKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9yZXNvdXJjZXMv
aW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvcmVzb3VyY2VzL2lt
cG9ydC1tZXRhLXVybC1leHBvc2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTUzYTYyMTMxYTU3NWRiNTg1NDIx
Y2QyMWU1YjdjN2NlZWRmMjEyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUv
cmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMKQEAgLTAsMCArMSBAQAorZ2xvYmFs
VGhpcy5tZXRhVVJMcy5wdXNoKGltcG9ydC5tZXRhLnVybCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9yZXNvdXJjZXMvcmVkaXJlY3QucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9yZXNvdXJjZXMvcmVkaXJlY3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDAwNmM5ZDQxZDliZGNiZWRlMmJj
MjMxMDkzMDFhMWI3M2U3YmUxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3Jlc291cmNlcy9yZWRpcmVjdC5weQpAQCAtMCwwICsxLDUgQEAKK2RlZiBtYWluKHJlcXVl
c3QsIHJlc3BvbnNlKToKKyAgICBoZWFkZXJzID0gWygiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNo
ZSIpLAorICAgICAgICAgICAgICAgKCJQcmFnbWEiLCAibm8tY2FjaGUiKSwKKyAgICAgICAgICAg
ICAgICgiTG9jYXRpb24iLCByZXF1ZXN0LkdFVFsnbG9jYXRpb24nXSldCisgICAgcmV0dXJuIDMw
MiwgaGVhZGVycywgIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9tb2R1bGUtbWV0YS11cmwtZnJhZ21lbnQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL21vZHVsZS1tZXRhLXVybC1mcmFnbWVudC13b3JrZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGU0MWVjMDJjYzY5YjY2NTg5MmExMjQ3NzVmM2MzOGFmMmZhOWE2YQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9t
b2R1bGUtbWV0YS11cmwtZnJhZ21lbnQtd29ya2VyLmpzCkBAIC0wLDAgKzEsMTEgQEAKK2FkZEV2
ZW50TGlzdGVuZXIoImZldGNoIiwgYXN5bmMgKGUpID0+IHsKKyAgICBpZiAoZS5yZXF1ZXN0LnVy
bC5pbmRleE9mKCJtb2R1bGUtbWV0YS11cmwuanMiKSAhPT0gLTEpIHsKKyAgICAgICAgbGV0IGJs
b2IgPSBuZXcgQmxvYihbYGdsb2JhbFRoaXMubWV0YVVSTHMucHVzaChpbXBvcnQubWV0YS51cmwp
O2BdLCB7CisgICAgICAgICAgICB0eXBlOiAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIKKyAgICAg
ICAgfSk7CisgICAgICAgIGUucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKGJsb2IsIHsKKyAgICAg
ICAgICAgIHN0YXR1czogMjAwLAorICAgICAgICB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9t
b2R1bGUtbWV0YS11cmwtZnJhZ21lbnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL21vZHVsZS1tZXRhLXVybC1mcmFnbWVudC5odHRwcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQyOWJhYTJkNTVjY2NiZjMwZTMyZWQ1ODVhMTgzYmFk
ZTY3NjNkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9tb2R1bGUtbWV0YS11cmwtZnJhZ21lbnQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorCitQQVNTIFNldHVwIHdvcmtlciAKK1BBU1MgRnJhbWUgdG8gYSByZWdpc3Rl
cmVkIHNjb3BlIAorUEFTUyBDbGVhbi11cCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL21vZHVsZS1tZXRhLXVybC1mcmFnbWVudC5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL21vZHVsZS1tZXRhLXVybC1m
cmFnbWVudC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2NDJjZTMyNWEzOTU3YTQ2ODI0YTEzNDJk
NGY3NmY5MzhlNjEyNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvbW9kdWxlLW1ldGEtdXJsLWZyYWdtZW50Lmh0dHBzLmh0bWwKQEAgLTAs
MCArMSw3NCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlciBGZXRjaCBN
b2R1bGVzIEZyYWdtZW50IG9mIGltcG9ydC5tZXRhLnVybDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+Cit2YXIgc2NvcGUgPSAicmVzb3VyY2VzL21vZHVsZS1tZXRhLXVybC1mcmFnbWVudC5o
dG1sIjsKK3ZhciByZWdpc3RyYXRpb247CisKK2Z1bmN0aW9uIHdpdGhGcmFtZSh1cmwpCit7Cisg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgbGV0
IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgICAgICAgIGxldCBj
b3VudGVyID0gMDsKKyAgICAgICAgZnVuY3Rpb24gbmV4dCgpIHsKKyAgICAgICAgICAgIGlmICgr
K2NvdW50ZXIgPT09IDIpCisgICAgICAgICAgICAgICAgcmVzb2x2ZShmcmFtZSk7CisgICAgICAg
IH0KKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihl
dikgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoZXYub3JpZ2luICE9
PSBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICBsZXQgbWV0YVVSTHMgPSBKU09OLnBhcnNlKGV2LmRhdGEpOworICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWV0YVVSTHMubGVuZ3RoLCA0KTsKKyAgICAgICAg
ICAgICAgICAvLyBXZSBhcmUgcmV1c2luZyBSZXNwb25zZSN1cmwgZnJvbSBTZXJ2aWNlV29ya2Vy
IGRpcmVjdGx5IHdpdGhvdXQgY29uc2lkZXJpbmcgZnJhZ21lbnQgcHJvcGFnYXRpb24uCisgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXRhVVJMc1swXSwgYGh0dHBzOi8vbG9jYWxob3N0
Ojk0NDMvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvbW9kdWxlLW1ldGEtdXJsLmpz
I2ZyYWdtZW50YCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXRhVVJMc1sxXSwg
YGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMv
bW9kdWxlLW1ldGEtdXJsLmpzI2ZyYWdtZW50YCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhtZXRhVVJMc1syXSwgYGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvV2ViS2l0L3NlcnZpY2Ut
d29ya2Vycy9yZXNvdXJjZXMvbW9kdWxlLW1ldGEtdXJsLmpzI2ZyYWdtZW50YCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXRhVVJMc1szXSwgYGh0dHBzOi8vbG9jYWxob3N0Ojk0
NDMvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvbW9kdWxlLW1ldGEtdXJsLmpzI2Zy
YWdtZW50YCk7CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfSBjYXRjaCAo
ZXJyb3IpIHsKKyAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpOworICAgICAgICAgICAgfQor
ICAgICAgICB9LCBmYWxzZSk7CisgICAgICAgIGZyYW1lLm9ubG9hZCA9ICgpID0+IHsgbmV4dCgp
OyB9OworICAgICAgICBmcmFtZS5zcmMgPSB1cmw7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZnJhbWUpOworICAgIH0pOworfQorCithc3luYyBmdW5jdGlvbiByZWdpc3RlclNl
cnZpY2VXb3JrZXIoc2NvcGUpCit7CisgICAgdmFyIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJtb2R1bGUtbWV0YS11cmwtZnJhZ21lbnQtd29y
a2VyLmpzIiwgeyBzY29wZSA6IHNjb3BlIH0pOworICAgIHZhciBhY3RpdmVXb3JrZXIgPSByZWdp
c3RyYXRpb24uYWN0aXZlOworICAgIGlmIChhY3RpdmVXb3JrZXIpCisgICAgICAgIHJldHVybjsK
KyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICByZXR1cm4g
bmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGFjdGl2ZVdvcmtlci5hZGRFdmVudExp
c3RlbmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKKyAgICAgICAgICAgIGlmIChhY3RpdmVXb3Jr
ZXIuc3RhdGUgPT09ICJhY3RpdmF0ZWQiKQorICAgICAgICAgICAgICAgIHJlc29sdmUocmVnaXN0
cmF0aW9uKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyAo
dGVzdCkgPT4geworICAgIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHJlZ2lzdGVyU2VydmljZVdvcmtl
cihzY29wZSk7Cit9LCAiU2V0dXAgd29ya2VyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVz
dCkgPT4geworICAgIHZhciBmcmFtZSA9IGF3YWl0IHdpdGhGcmFtZShzY29wZSk7CisgICAgYXNz
ZXJ0X3RydWUoZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250
cm9sbGVyICE9PSBudWxsKTsKKyAgICBmcmFtZS5yZW1vdmUoKTsKK30sICJGcmFtZSB0byBhIHJl
Z2lzdGVyZWQgc2NvcGUiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAg
cmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKK30sICJDbGVhbi11cCIpOworCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvbW9kdWxlLW1ldGEtdXJsLWZyYWdtZW50Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL21vZHVsZS1tZXRhLXVy
bC1mcmFnbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhZjA0NjY4MDM3NmJmZGZmZDI2NjNmYTQxZGYx
NWM4MDU3NzY5N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcmVzb3VyY2VzL21vZHVsZS1tZXRhLXVybC1mcmFnbWVudC5odG1sCkBAIC0w
LDAgKzEsMTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZ2xvYmFsVGhpcy5tZXRhVVJM
cyA9IFtdOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIuL21vZHVsZS1t
ZXRhLXVybC5qcyNmcmFnbWVudCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3Jj
PSIuL21vZHVsZS1tZXRhLXVybC5qcyMxIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxl
IiBzcmM9Ii4vbW9kdWxlLW1ldGEtdXJsLmpzIzIiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJt
b2R1bGUiIHNyYz0iLi9tb2R1bGUtbWV0YS11cmwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBl
PSJtb2R1bGUiPgord2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShnbG9i
YWxUaGlzLm1ldGFVUkxzKSwgIioiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtZnJhZ21l
bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2h0dHAvd3B0L2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1l
dGEtdXJsLXJlZGlyZWN0LXdpdGgtZnJhZ21lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgx
MGQxMjFiMGM2NDIwYmZiZWM5Njc4YmMwZDM0NWUzZmZhYWVlZTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qt
d2l0aC1mcmFnbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitQQVNTIGltcG9y
dC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDEgCitGQUlMIGltcG9ydC1tZXRhLXVybC1leHBvc2Uu
anMjdGVzdDIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9X
ZWJLaXQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MiIgYnV0IGdvdCAiaHR0
cDovL2xvY2FsaG9zdDo4ODAwL1dlYktpdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpz
IgorUEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3Q0IAorUEFTUyBpbXBvcnQtbWV0
YS11cmwtZXhwb3NlLmpzI3Rlc3RBIAorUEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzIAor
RkFJTCBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RDIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvV2ViS2l0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1l
eHBvc2UuanMjdGVzdEMiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9XZWJLaXQvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9yZXNvdXJj
ZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyIKK0ZBSUwgaW1wb3J0LW1ldGEtdXJsLWV4cG9z
ZS5qcyN0ZXN0RCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaHR0cDovL2xvY2FsaG9zdDo4ODAw
L1dlYktpdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3REIiBidXQgZ290ICJo
dHRwOi8vbG9jYWxob3N0Ojg4MDAvV2ViS2l0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2Uu
anMiCitQQVNTIGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdENDIAorUEFTUyBpbXBvcnQt
bWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RFRSAKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5q
cyN0ZXN0R0dHIAorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396416</attachid>
            <date>2020-04-14 07:32:04 -0700</date>
            <delta_ts>2020-04-15 07:12:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205294-20200414073204.patch</filename>
            <type>text/plain</type>
            <size>28111</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2MDJkOWI4YWZmZDlm
YTdhNDJjZjVhYzI3Zjc1MGJhZTU4NDMzOC4uYWIzMzIzNDcxNDRlNzBjN2ExYzFlNWY1NTdiZWJj
MzE0MTMxZDYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA0LTE0ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgaW1wb3J0Lm1ldGEudXJs
OiBiYXNlVVJMIGZvciBhIG1vZHVsZSBzY3JpcHQgc2hvdWxkIGJlIHJlc3BvbnNlIFVSTCwgbm90
IHJlcXVlc3QgVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgbW9kdWxlIHNob3VsZCBleHBvc2UgcmVzcG9uc2UgVVJMIGFzIGBpbXBvcnQubWV0
YS51cmxgIGluc3RlYWQgb2YgcmVxdWVzdCBVUkwuCisgICAgICAgIElmIHJlZGlyZWN0aW9uIGhh
cHBlbnMsIHRoaXMgVVJMIHNob3VsZCBiZSByZWRpcmVjdGVkIG9uZS4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxl
TG9hZGVyOjpyZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdE1vZHVsZUxvYWRlcjo6Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmg6CisKIDIwMjAtMDQtMTMgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBtb2R1bGUncyBkZWZhdWx0IGNy
b3NzLW9yaWdpbiB2YWx1ZSBzaG91bGQgYmUgImFub255bW91cyIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDhlNDg4NGQyNDY3
NjQ4YjhhOWFmMjUxZGYwYTUwOGY2OTU1MWM2MWMuLjI4NDdlODJlMzYwMWU5ZWFmYjU3ODk5ZjI1
ZTNhZDQ1MDZlMjVkNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtMTA0LDE4ICsxMDQsOSBAQCBKU0M6OklkZW50aWZpZXIg
U2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFs
T2JqZWN0LAogICAgIFN0cmluZyBzcGVjaWZpZXIgPSBhc1N0cmluZyhtb2R1bGVOYW1lVmFsdWUp
LT52YWx1ZShqc0dsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKIAotICAgIFVSTCBiYXNlVVJMOwotICAgIGlmIChpc1Jvb3RNb2R1bGUoaW1wb3J0ZXJN
b2R1bGVLZXkpKQotICAgICAgICBiYXNlVVJMID0gbV9kb2N1bWVudC5iYXNlVVJMKCk7Ci0gICAg
ZWxzZSB7Ci0gICAgICAgIEFTU0VSVChpbXBvcnRlck1vZHVsZUtleS5pc1N0cmluZygpKTsKLSAg
ICAgICAgVVJMIGltcG9ydGVyTW9kdWxlUmVxdWVzdFVSTChVUkwoKSwgYXNTdHJpbmcoaW1wb3J0
ZXJNb2R1bGVLZXkpLT52YWx1ZShqc0dsb2JhbE9iamVjdCkpOwotICAgICAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKGltcG9ydGVyTW9kdWxlUmVxdWVzdFVSTC5pc1ZhbGlkKCksICJJbnZhbGlkIG1v
ZHVsZSByZWZlcnJlciBuZXZlciBzdGFydHMgaW1wb3J0aW5nIGRlcGVuZGVudCBtb2R1bGVzLiIp
OwotCi0gICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFw
LmZpbmQoaW1wb3J0ZXJNb2R1bGVSZXF1ZXN0VVJMKTsKLSAgICAgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRShpdGVyYXRvciAhPSBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmVuZCgpLCAiTW9k
dWxlIHJlZmVycmVyIG11c3QgcmVnaXN0ZXIgaXRzZWxmIHRvIHRoZSBtYXAgYmVmb3JlIHN0YXJ0
aW5nIGltcG9ydGluZyBkZXBlbmRlbnQgbW9kdWxlcy4iKTsKLSAgICAgICAgYmFzZVVSTCA9IGl0
ZXJhdG9yLT52YWx1ZTsKLSAgICB9CisgICAgVVJMIGJhc2VVUkwgPSByZXNwb25zZVVSTEZyb21S
ZXF1ZXN0VVJMKCpqc0dsb2JhbE9iamVjdCwgaW1wb3J0ZXJNb2R1bGVLZXkpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgQVNTRVJUKGJhc2VVUkwuaXNWYWxpZCgp
KTsKIAogICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2RvY3VtZW50
LCBzcGVjaWZpZXIsIGJhc2VVUkwpOwogICAgIGlmICghcmVzdWx0KSB7CkBAIC0xOTIsNiArMTgz
LDI1IEBAIFVSTCBTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVSTChKU0M6OkpTR2xvYmFsT2Jq
ZWN0JiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU1ZhCiAgICAgcmV0dXJuIFVSTChVUkwoKSwgYXNT
dHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZSgmanNHbG9iYWxPYmplY3QpKTsKIH0KIAorVVJM
IFNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTChKU0M6OkpTR2xv
YmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlKQor
eworICAgIEpTQzo6Vk0mIHZtID0ganNHbG9iYWxPYmplY3Qudm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVs
ZUtleVZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQuYmFzZVVSTCgpOworCisgICAg
QVNTRVJUKCFpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKTsKKyAgICBBU1NFUlQobW9kdWxl
S2V5VmFsdWUuaXNTdHJpbmcoKSk7CisgICAgU3RyaW5nIHJlcXVlc3RVUkwgPSBhc1N0cmluZyht
b2R1bGVLZXlWYWx1ZSktPnZhbHVlKCZqc0dsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKFVSTChVUkwoKSwg
cmVxdWVzdFVSTCkuaXNWYWxpZCgpLCAiSW52YWxpZCBtb2R1bGUgcmVmZXJyZXIgbmV2ZXIgc3Rh
cnRzIGltcG9ydGluZyBkZXBlbmRlbnQgbW9kdWxlcy4iKTsKKworICAgIGF1dG8gaXRlcmF0b3Ig
PSBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmZpbmQocmVxdWVzdFVSTCk7CisgICAgQVNT
RVJUX1dJVEhfTUVTU0FHRShpdGVyYXRvciAhPSBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFw
LmVuZCgpLCAiTW9kdWxlIHJlZmVycmVyIG11c3QgcmVnaXN0ZXIgaXRzZWxmIHRvIHRoZSBtYXAg
YmVmb3JlIHN0YXJ0aW5nIGltcG9ydGluZyBkZXBlbmRlbnQgbW9kdWxlcy4iKTsKKyAgICByZXR1
cm4gaXRlcmF0b3ItPnZhbHVlOworfQorCiBKU0M6OkpTVmFsdWUgU2NyaXB0TW9kdWxlTG9hZGVy
OjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU01v
ZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVlIG1v
ZHVsZVJlY29yZFZhbHVlLCBKU0M6OkpTVmFsdWUpCiB7CiAgICAgSlNDOjpWTSYgdm0gPSBqc0ds
b2JhbE9iamVjdC0+dm0oKTsKQEAgLTI2NSwxMyArMjc1LDE0IEBAIEpTQzo6SlNPYmplY3QqIFNj
cmlwdE1vZHVsZUxvYWRlcjo6Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2Jh
bE9iamVjCiAgICAgYXV0byYgdm0gPSBqc0dsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBVUkwgc291cmNlVVJMID0gbW9k
dWxlVVJMKCpqc0dsb2JhbE9iamVjdCwgbW9kdWxlS2V5VmFsdWUpOwotICAgIEFTU0VSVChzb3Vy
Y2VVUkwuaXNWYWxpZCgpKTsKLQogICAgIGF1dG8qIG1ldGFQcm9wZXJ0aWVzID0gSlNDOjpjb25z
dHJ1Y3RFbXB0eU9iamVjdCh2bSwganNHbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVPYmplY3RT
dHJ1Y3R1cmUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAK
LSAgICBtZXRhUHJvcGVydGllcy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJ1cmwiKSwgSlNDOjpqc1N0cmluZyh2bSwgc291cmNlVVJMLnN0cmluZygpKSk7
CisgICAgVVJMIHJlc3BvbnNlVVJMID0gcmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTCgqanNHbG9i
YWxPYmplY3QsIG1vZHVsZUtleVZhbHVlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKKyAgICBBU1NFUlQocmVzcG9uc2VVUkwuaXNWYWxpZCgpKTsKKworICAgIG1l
dGFQcm9wZXJ0aWVzLT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgInVybCIpLCBKU0M6OmpzU3RyaW5nKHZtLCByZXNwb25zZVVSTC5zdHJpbmcoKSkpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCiAgICAgcmV0dXJuIG1ldGFQ
cm9wZXJ0aWVzOwpAQCAtMzE4LDcgKzMyOSwxNyBAQCB2b2lkIFNjcmlwdE1vZHVsZUxvYWRlcjo6
bm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiBsb2FkZXIsIFJlZlB0cgog
ICAgICAgICB9CiAgICAgfQogCi0gICAgbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcC5hZGQo
V1RGTW92ZShzb3VyY2VVUkwpLCBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKSk7CisgICAg
VVJMIHJlc3BvbnNlVVJMID0gY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCk7CisgICAgLy8g
SWYgd2UgZG8gbm90IGhhdmUgcmVkaXJlY3Rpb24sIHdlIG11c3QgcmVzZXJ2ZSB0aGUgc291cmNl
IFVSTCdzIGZyYWdtZW50IGV4cGxpY2l0bHkgaGVyZSBzaW5jZSBSZXNvdXJjZVJlc3BvbnNlOjp1
cmwoKSBpcyB0aGUgb25lIHdoZW4gd2UgZmlyc3QgY2FjaGUgaXQgdG8gTWVtb3J5Q2FjaGUuCisg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRpcmVjdGlv
bnMuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODQy
MAorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0OTAK
KyAgICBpZiAoIWNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlvbnMoKSAmJiBjYWNoZWRTY3JpcHQu
cmVzcG9uc2UoKS5zb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VX
b3JrZXIpIHsKKyAgICAgICAgaWYgKHNvdXJjZVVSTC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkK
KyAgICAgICAgICAgIHJlc3BvbnNlVVJMLnNldEZyYWdtZW50SWRlbnRpZmllcihzb3VyY2VVUkwu
ZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgIH0KKworICAgIG1fcmVxdWVzdFVSTFRvUmVzcG9u
c2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwgV1RGTW92ZShyZXNwb25zZVVSTCkpOwog
ICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYg
anNHbG9iYWxPYmplY3QpIHsKICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVh
dGUoanNHbG9iYWxPYmplY3Qudm0oKSwKICAgICAgICAgICAgIEpTQzo6U291cmNlQ29kZSB7IFNj
cmlwdFNvdXJjZUNvZGUgeyAmY2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNl
VHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCmlu
ZGV4IDQwYzNiZDE2YzU3MjhlZTU3MGIwNjFmMWQyZmE0N2E3ZDViYTM2YTEuLmRlMjlkMmY0YmYw
OTZiNjBjMzY5OTgwMzE2YzE0ODZiMjgyYWJmMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCkBAIC02NSw5ICs2NSwxMCBAQCBjbGFzcyBT
Y3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ckNsaWVudCB7CiBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4pIGZpbmFsOwogICAgIFVSTCBt
b2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CisgICAgVVJMIHJl
c3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1
ZSk7CiAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKLSAgICBIYXNoTWFwPFVSTCwgVVJMPiBt
X3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOworICAgIEhhc2hNYXA8U3RyaW5nLCBVUkw+IG1f
cmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXA7CiAgICAgSGFzaFNldDxSZWY8Q2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyPj4gbV9sb2FkZXJzOwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIzNGNiYzgwNThiMDU1MGJi
OGYyZmEzYzA3YTFjNDAxMjM0ZmI1NTcuLmNmODg2YjNiNTQ4MzE1YWRmODViMDA0NTNkY2JhNmMw
N2M2ZDJlNjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMC0wNC0xNCAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIGltcG9ydC5tZXRhLnVybDogYmFzZVVS
TCBmb3IgYSBtb2R1bGUgc2NyaXB0IHNob3VsZCBiZSByZXNwb25zZSBVUkwsIG5vdCByZXF1ZXN0
IFVSTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1
Mjk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXBw
bGVXaW4gbmV0d29ya2luZyBkb2VzIG5vdCBwcm9wZXJseSBwcm9wYWdhdGUgZnJhZ21lbnQgaWYg
cmVkaXJlY3QgbG9jYXRpb24gY2xlYXJzIGl0LiBUaGlzIGlzIGEga25vd24gaXNzdWVbMV0uCisK
KyAgICAgICAgWzFdOiBTZWUgYGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC10by1mcmFn
bWVudDIuaHRtbCBbIEZhaWx1cmUgXWAgaW4gcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMu
CisKKyAgICAgICAgKiBodHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtZnJh
Z21lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC13aXRoLWZyYWdtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9k
dWxlLW1ldGEtdXJsLXJlZGlyZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxl
LW1ldGEtdXJsLXdpdGgtZnJhZ21lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL21vZHVsZS1tZXRhLXVybC13aXRoLWZyYWdtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanM6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvd3B0L3Jlc291cmNlcy9yZWRpcmVjdC5weTogQWRkZWQuCisgICAgICAgIChtYWlu
KToKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbW9kdWxlLW1ldGEtdXJsLWZy
YWdtZW50LXdvcmtlci5qczogQWRkZWQuCisgICAgICAgIChhc3luYyBlKToKKyAgICAgICAgKiBo
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbW9kdWxlLW1ldGEtdXJsLWZyYWdtZW50Lmh0dHBzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL21v
ZHVsZS1tZXRhLXVybC1mcmFnbWVudC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL21vZHVsZS1tZXRhLXVybC1mcmFnbWVudC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vaHR0cC93cHQvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwt
cmVkaXJlY3Qtd2l0aC1mcmFnbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDIwLTA0LTEz
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgbW9kdWxlJ3Mg
ZGVmYXVsdCBjcm9zcy1vcmlnaW4gdmFsdWUgc2hvdWxkIGJlICJhbm9ueW1vdXMiCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGQ4MDE5MGY0ZTU1NjE5M2Y3MmZlZWUxMTNkNGM0MzJlOTFmMDQxOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGly
ZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBpbXBvcnQubWV0YS51cmwg
c2hvdWxkIGJlIHJlZGlyZWN0ZWQgdXJsIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC13aXRoLWZyYWdtZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtZnJhZ21lbnQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxMDE5ZTdjM2RlYzc1NzMwMzBiYTI0M2Y4NTEyNmZlNjgz
MjA3MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVy
bC1yZWRpcmVjdC13aXRoLWZyYWdtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACisK
K1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MSAKK1BBU1MgaW1wb3J0LW1ldGEt
dXJsLWV4cG9zZS5qcyN0ZXN0MiAKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0
NCAKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QSAKK1BBU1MgaW1wb3J0LW1l
dGEtdXJsLWV4cG9zZS5qcyAKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QyAK
K1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0RCAKK1BBU1MgaW1wb3J0LW1ldGEt
dXJsLWV4cG9zZS5qcyN0ZXN0Q0MgCitQQVNTIGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVz
dEVFIAorUEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RHR0cgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtZnJhZ21l
bnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgt
ZnJhZ21lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTA0YmJlYmFkNzRlMmYyMzRmNTM5MGQ3YzYzNDg3
MjY3N2Q0MWE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0
YS11cmwtcmVkaXJlY3Qtd2l0aC1mcmFnbWVudC5odG1sCkBAIC0wLDAgKzEsODkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5pbXBvcnQubWV0YS51cmwgc2hvdWxk
IGJlIHJlZGlyZWN0ZWQgdXJsIHdpdGggZnJhZ21lbnQ8L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitnbG9iYWxUaGlzLm1ldGFVUkxzID0gW107CisKK2Z1bmN0aW9uIHJlZGlyZWN0VGVzdCh0YXJn
ZXRVUkwsIGV4cGVjdGVkKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVz
b2x2ZSwgcmVqZWN0KSB7CisgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzY3JpcHQnKTsKKyAgICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJzsKKyAgICAgICAg
c2NyaXB0LnNyYyA9IHRhcmdldFVSTDsKKyAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhn
bG9iYWxUaGlzLm1ldGFVUkxzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgbGV0IHVybCA9
IGdsb2JhbFRoaXMubWV0YVVSTHMuc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHVybCwgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
ICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSByZWplY3Q7
CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICB9KTsKK30K
KworbGV0IHJvb3QgPSBgaHR0cDovLyR7ZG9jdW1lbnQubG9jYXRpb24uaG9zdH0vV2ViS2l0YDsK
K2xldCBiYXNlbmFtZSA9IGBodHRwOi8vJHtkb2N1bWVudC5sb2NhdGlvbi5ob3N0fS9XZWJLaXQv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZWA7CisK
K3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL1dlYktpdC9y
ZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249JyArIGVuY29kZVVSSUNvbXBvbmVudChgJHti
YXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdDFgKSwgYCR7
YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3QxYCk7Cit9
LCBgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MWApOworCitwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGlyZWN0
LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9L3Jlc291cmNl
cy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzYCkgKyAiI3Rlc3QyIiwgYCR7YmFzZW5hbWV9L3Jl
c291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3QyYCk7Cit9LCBgaW1wb3J0LW1l
dGEtdXJsLWV4cG9zZS5qcyN0ZXN0MmApOworCitwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJl
dHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9u
PScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0
YS11cmwtZXhwb3NlLmpzI3Rlc3Q0YCkgKyAiI3Rlc3QzIiwgYCR7YmFzZW5hbWV9L3Jlc291cmNl
cy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3Q0YCk7Cit9LCBgaW1wb3J0LW1ldGEtdXJs
LWV4cG9zZS5qcyN0ZXN0NGApOworCitwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBy
ZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPScgKyBl
bmNvZGVVUklDb21wb25lbnQoYCR7cm9vdH0vcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9u
PWAgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0
YS11cmwtZXhwb3NlLmpzI3Rlc3RBYCkpLCBgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1t
ZXRhLXVybC1leHBvc2UuanMjdGVzdEFgKTsKK30sIGBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpz
I3Rlc3RBYCk7CisKKy8vIEZJWE1FOiBUaGlzIHRlc3QgcGFzcyBvbmNlIHRoZSBmb2xsb3dpbmcg
aXNzdWUgaXMgZml4ZWQuCisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU4NDIwCisvLyBwcm9taXNlX3Rlc3QoKCkgPT4geworLy8gICAgIHJldHVybiByZWRpcmVj
dFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVV
UklDb21wb25lbnQoYCR7cm9vdH0vcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWAgKyBl
bmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwt
ZXhwb3NlLmpzYCkgKyAiI3Rlc3RCIiksIGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1l
dGEtdXJsLWV4cG9zZS5qcyN0ZXN0QmApOworLy8gfSwgYGltcG9ydC1tZXRhLXVybC1leHBvc2Uu
anMjdGVzdEJgKTsKKworcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gcmVkaXJlY3RU
ZXN0KCcvV2ViS2l0L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj0nICsgZW5jb2RlVVJJ
Q29tcG9uZW50KGAke3Jvb3R9L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1gICsgZW5j
b2RlVVJJQ29tcG9uZW50KGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4
cG9zZS5qc2ApKSwgYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3Nl
LmpzYCk7Cit9LCBgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qc2ApOworCitwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGly
ZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7cm9vdH0vcmVzb3VyY2Vz
L3JlZGlyZWN0LnB5P2xvY2F0aW9uPWAgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9
L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzYCkpICsgIiN0ZXN0QyIsIGAke2Jh
c2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0Q2ApOworfSwg
YGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdENgKTsKKworcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvV2ViS2l0L3Jlc291cmNlcy9yZWRpcmVjdC5w
eT9sb2NhdGlvbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke3Jvb3R9L3Jlc291cmNlcy9yZWRp
cmVjdC5weT9sb2NhdGlvbj1gICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke2Jhc2VuYW1lfS9yZXNv
dXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qc2ApKSArICIjdGVzdEQiLCBgJHtiYXNlbmFt
ZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdERgKTsKK30sIGBpbXBv
cnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3REYCk7CisKKy8vIEZJWE1FOiBUaGlzIHRlc3QgcGFz
cyBvbmNlIHRoZSBmb2xsb3dpbmcgaXNzdWUgaXMgZml4ZWQuCisvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCisvLyBwcm9taXNlX3Rlc3QoKCkgPT4gewor
Ly8gICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVzb3VyY2VzL3JlZGlyZWN0LnB5
P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7cm9vdH0vcmVzb3VyY2VzL3JlZGly
ZWN0LnB5P2xvY2F0aW9uPWAgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7YmFzZW5hbWV9L3Jlc291
cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzYCkgKyAiI3Rlc3RBQSIpICsgIiN0ZXN0QkIi
LCBgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEFB
YCk7CisvLyB9LCBgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0QUFgKTsKKworcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gcmVkaXJlY3RUZXN0KCcvV2ViS2l0L3Jlc291cmNl
cy9yZWRpcmVjdC5weT9sb2NhdGlvbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke3Jvb3R9L3Jl
c291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1gICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke2Jh
c2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0Q0NgKSkgKyAi
I3Rlc3RERCIsIGAke2Jhc2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5q
cyN0ZXN0Q0NgKTsKK30sIGBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RDQ2ApOworCitw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiByZWRpcmVjdFRlc3QoJy9XZWJLaXQvcmVz
b3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPScgKyBlbmNvZGVVUklDb21wb25lbnQoYCR7cm9v
dH0vcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWAgKyBlbmNvZGVVUklDb21wb25lbnQo
YCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RFRWAp
ICsgIiN0ZXN0RkYiKSwgYCR7YmFzZW5hbWV9L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhw
b3NlLmpzI3Rlc3RFRWApOworfSwgYGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEVFYCk7
CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIHJlZGlyZWN0VGVzdCgnL1dlYktp
dC9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249JyArIGVuY29kZVVSSUNvbXBvbmVudChg
JHtyb290fS9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249YCArIGVuY29kZVVSSUNvbXBv
bmVudChgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVz
dEdHR2ApICsgIiN0ZXN0SEhIIikgKyAiI3Rlc3RJSUkiLCBgJHtiYXNlbmFtZX0vcmVzb3VyY2Vz
L2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdEdHR2ApOworfSwgYGltcG9ydC1tZXRhLXVy
bC1leHBvc2UuanMjdGVzdEdHR2ApOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC1yZWRpcmVjdC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNzcyYzIwYjk5YTE4YTkzY2E2ZjJhOTRjMDNmYTNkM2U2NzJlOTk2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3QuaHRtbApAQCAt
MCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+aW1w
b3J0Lm1ldGEudXJsIHNob3VsZCBiZSByZWRpcmVjdGVkIHVybDwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2dsb2JhbFRoaXMubWV0YVVSTHMgPSBbXTsKK2xldCBiYXNlbmFtZSA9IGBodHRwOi8v
JHtkb2N1bWVudC5sb2NhdGlvbi5ob3N0fS9XZWJLaXQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZWA7Citwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAg
IHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKKyAgICAgICAg
c2NyaXB0LnR5cGUgPSAnbW9kdWxlJzsKKyAgICAgICAgc2NyaXB0LnNyYyA9ICcvV2ViS2l0L3Jl
c291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGAke2Jh
c2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qc2ApOworICAgICAgICBz
Y3JpcHQub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbFRoaXMubWV0YVVSTHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbFRoaXMubWV0YVVSTHNbMF0sIGAke2Jh
c2VuYW1lfS9yZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qc2ApOworICAgICAgICAg
ICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAg
ICAgICByZWplY3QoZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIHNjcmlw
dC5vbmVycm9yID0gcmVqZWN0OworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNj
cmlwdCk7CisgICAgfSk7Cit9LCAnaW1wb3J0Lm1ldGEudXJsIHNob3VsZCBiZSByZWRpcmVjdGVk
IHVybCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC13aXRoLWZyYWdtZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXdpdGgtZnJhZ21lbnQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjljYjk3NTVlYjFiMTE0MDRlYmYwNTAwY2Q5ODQxM2QxYTk4M2QzZTYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC13aXRoLWZy
YWdtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBpbXBvcnQubWV0YS51
cmwgc2hvdWxkIGJlIGhhdmUgYSBmcmFnbWVudCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
ZHVsZS9tb2R1bGUtbWV0YS11cmwtd2l0aC1mcmFnbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9tb2R1bGUtbWV0YS11cmwtd2l0aC1mcmFnbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4YTU3OTZh
NjVhMDE2OWE0NDBkNzBjOWJlODU3OWFjNGU5ZjY2OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvbW9kdWxlL21vZHVsZS1tZXRhLXVybC13aXRoLWZyYWdtZW50Lmh0bWwKQEAgLTAsMCAr
MSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPmltcG9ydC5t
ZXRhLnVybCBzaG91bGQgaGF2ZSBhIGZyYWdtZW50PC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
Z2xvYmFsVGhpcy5tZXRhVVJMcyA9IFtdOworbGV0IGJhc2VuYW1lID0gYGh0dHA6Ly8ke2RvY3Vt
ZW50LmxvY2F0aW9uLmhvc3R9L1dlYktpdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlYDsKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgdmFyIHNj
cmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgICAgICBzY3JpcHQu
dHlwZSA9ICdtb2R1bGUnOworICAgICAgICBzY3JpcHQuc3JjID0gYCR7YmFzZW5hbWV9L3Jlc291
cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RgOworICAgICAgICBzY3JpcHQub25s
b2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGdsb2JhbFRoaXMubWV0YVVSTHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBsZXQgdXJsID0gZ2xvYmFsVGhpcy5tZXRhVVJMcy5zaGlmdCgpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHModXJsLCBgJHtiYXNlbmFtZX0vcmVzb3VyY2VzL2ltcG9ydC1tZXRh
LXVybC1leHBvc2UuanMjdGVzdGApOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
ICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICByZWplY3QoZSk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH07CisgICAgICAgIHNjcmlwdC5vbmVycm9yID0gcmVqZWN0OworICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7CisgICAgfSk7Cit9LCAnaW1w
b3J0Lm1ldGEudXJsIHNob3VsZCBiZSBoYXZlIGEgZnJhZ21lbnQnKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9yZXNvdXJjZXMvaW1w
b3J0LW1ldGEtdXJsLWV4cG9zZS5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvcmVzb3VyY2VzL2ltcG9y
dC1tZXRhLXVybC1leHBvc2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTUzYTYyMTMxYTU3NWRiNTg1NDIxY2Qy
MWU1YjdjN2NlZWRmMjEyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvcmVz
b3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMKQEAgLTAsMCArMSBAQAorZ2xvYmFsVGhp
cy5tZXRhVVJMcy5wdXNoKGltcG9ydC5tZXRhLnVybCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC9yZXNvdXJjZXMvcmVkaXJlY3QucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9y
ZXNvdXJjZXMvcmVkaXJlY3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDAwNmM5ZDQxZDliZGNiZWRlMmJjMjMx
MDkzMDFhMWI3M2U3YmUxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3Jlc291cmNlcy9yZWRpcmVjdC5weQpAQCAtMCwwICsxLDUgQEAKK2RlZiBtYWluKHJlcXVlc3Qs
IHJlc3BvbnNlKToKKyAgICBoZWFkZXJzID0gWygiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNoZSIp
LAorICAgICAgICAgICAgICAgKCJQcmFnbWEiLCAibm8tY2FjaGUiKSwKKyAgICAgICAgICAgICAg
ICgiTG9jYXRpb24iLCByZXF1ZXN0LkdFVFsnbG9jYXRpb24nXSldCisgICAgcmV0dXJuIDMwMiwg
aGVhZGVycywgIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9tb2R1bGUtbWV0YS11cmwtZnJhZ21lbnQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL21vZHVsZS1tZXRhLXVybC1mcmFnbWVudC13b3JrZXIuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGU0MWVjMDJjYzY5YjY2NTg5MmExMjQ3NzVmM2MzOGFmMmZhOWE2YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9tb2R1
bGUtbWV0YS11cmwtZnJhZ21lbnQtd29ya2VyLmpzCkBAIC0wLDAgKzEsMTEgQEAKK2FkZEV2ZW50
TGlzdGVuZXIoImZldGNoIiwgYXN5bmMgKGUpID0+IHsKKyAgICBpZiAoZS5yZXF1ZXN0LnVybC5p
bmRleE9mKCJtb2R1bGUtbWV0YS11cmwuanMiKSAhPT0gLTEpIHsKKyAgICAgICAgbGV0IGJsb2Ig
PSBuZXcgQmxvYihbYGdsb2JhbFRoaXMubWV0YVVSTHMucHVzaChpbXBvcnQubWV0YS51cmwpO2Bd
LCB7CisgICAgICAgICAgICB0eXBlOiAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIKKyAgICAgICAg
fSk7CisgICAgICAgIGUucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKGJsb2IsIHsKKyAgICAgICAg
ICAgIHN0YXR1czogMjAwLAorICAgICAgICB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9tb2R1
bGUtbWV0YS11cmwtZnJhZ21lbnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL21vZHVsZS1tZXRhLXVybC1mcmFnbWVudC5odHRwcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQyOWJhYTJkNTVjY2NiZjMwZTMyZWQ1ODVhMTgzYmFkZTY3
NjNkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9tb2R1bGUtbWV0YS11cmwtZnJhZ21lbnQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorCitQQVNTIFNldHVwIHdvcmtlciAKK1BBU1MgRnJhbWUgdG8gYSByZWdpc3RlcmVk
IHNjb3BlIAorUEFTUyBDbGVhbi11cCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL21vZHVsZS1tZXRhLXVybC1mcmFnbWVudC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL21vZHVsZS1tZXRhLXVybC1mcmFn
bWVudC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2NDJjZTMyNWEzOTU3YTQ2ODI0YTEzNDJkNGY3
NmY5MzhlNjEyNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvbW9kdWxlLW1ldGEtdXJsLWZyYWdtZW50Lmh0dHBzLmh0bWwKQEAgLTAsMCAr
MSw3NCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlciBGZXRjaCBNb2R1
bGVzIEZyYWdtZW50IG9mIGltcG9ydC5tZXRhLnVybDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+Cit2YXIgc2NvcGUgPSAicmVzb3VyY2VzL21vZHVsZS1tZXRhLXVybC1mcmFnbWVudC5odG1s
IjsKK3ZhciByZWdpc3RyYXRpb247CisKK2Z1bmN0aW9uIHdpdGhGcmFtZSh1cmwpCit7CisgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgbGV0IGZy
YW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgICAgICAgIGxldCBjb3Vu
dGVyID0gMDsKKyAgICAgICAgZnVuY3Rpb24gbmV4dCgpIHsKKyAgICAgICAgICAgIGlmICgrK2Nv
dW50ZXIgPT09IDIpCisgICAgICAgICAgICAgICAgcmVzb2x2ZShmcmFtZSk7CisgICAgICAgIH0K
KyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldikg
eworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoZXYub3JpZ2luICE9PSBk
b2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICBsZXQgbWV0YVVSTHMgPSBKU09OLnBhcnNlKGV2LmRhdGEpOworICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobWV0YVVSTHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAg
ICAgICAvLyBXZSBhcmUgcmV1c2luZyBSZXNwb25zZSN1cmwgZnJvbSBTZXJ2aWNlV29ya2VyIGRp
cmVjdGx5IHdpdGhvdXQgY29uc2lkZXJpbmcgZnJhZ21lbnQgcHJvcGFnYXRpb24uCisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXRhVVJMc1swXSwgYGh0dHBzOi8vbG9jYWxob3N0Ojk0
NDMvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvbW9kdWxlLW1ldGEtdXJsLmpzI2Zy
YWdtZW50YCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXRhVVJMc1sxXSwgYGh0
dHBzOi8vbG9jYWxob3N0Ojk0NDMvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvbW9k
dWxlLW1ldGEtdXJsLmpzI2ZyYWdtZW50YCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhtZXRhVVJMc1syXSwgYGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvV2ViS2l0L3NlcnZpY2Utd29y
a2Vycy9yZXNvdXJjZXMvbW9kdWxlLW1ldGEtdXJsLmpzI2ZyYWdtZW50YCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhtZXRhVVJMc1szXSwgYGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMv
V2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvbW9kdWxlLW1ldGEtdXJsLmpzI2ZyYWdt
ZW50YCk7CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfSBjYXRjaCAoZXJy
b3IpIHsKKyAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpOworICAgICAgICAgICAgfQorICAg
ICAgICB9LCBmYWxzZSk7CisgICAgICAgIGZyYW1lLm9ubG9hZCA9ICgpID0+IHsgbmV4dCgpOyB9
OworICAgICAgICBmcmFtZS5zcmMgPSB1cmw7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZnJhbWUpOworICAgIH0pOworfQorCithc3luYyBmdW5jdGlvbiByZWdpc3RlclNlcnZp
Y2VXb3JrZXIoc2NvcGUpCit7CisgICAgdmFyIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJtb2R1bGUtbWV0YS11cmwtZnJhZ21lbnQtd29ya2Vy
LmpzIiwgeyBzY29wZSA6IHNjb3BlIH0pOworICAgIHZhciBhY3RpdmVXb3JrZXIgPSByZWdpc3Ry
YXRpb24uYWN0aXZlOworICAgIGlmIChhY3RpdmVXb3JrZXIpCisgICAgICAgIHJldHVybjsKKyAg
ICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICByZXR1cm4gbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGFjdGl2ZVdvcmtlci5hZGRFdmVudExpc3Rl
bmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKKyAgICAgICAgICAgIGlmIChhY3RpdmVXb3JrZXIu
c3RhdGUgPT09ICJhY3RpdmF0ZWQiKQorICAgICAgICAgICAgICAgIHJlc29sdmUocmVnaXN0cmF0
aW9uKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVz
dCkgPT4geworICAgIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IHJlZ2lzdGVyU2VydmljZVdvcmtlcihz
Y29wZSk7Cit9LCAiU2V0dXAgd29ya2VyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkg
PT4geworICAgIHZhciBmcmFtZSA9IGF3YWl0IHdpdGhGcmFtZShzY29wZSk7CisgICAgYXNzZXJ0
X3RydWUoZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9s
bGVyICE9PSBudWxsKTsKKyAgICBmcmFtZS5yZW1vdmUoKTsKK30sICJGcmFtZSB0byBhIHJlZ2lz
dGVyZWQgc2NvcGUiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgcmVn
aXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKK30sICJDbGVhbi11cCIpOworCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9yZXNvdXJjZXMvbW9kdWxlLW1ldGEtdXJsLWZyYWdtZW50Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL21vZHVsZS1tZXRhLXVybC1m
cmFnbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhZjA0NjY4MDM3NmJmZGZmZDI2NjNmYTQxZGYxNWM4
MDU3NzY5N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvcmVzb3VyY2VzL21vZHVsZS1tZXRhLXVybC1mcmFnbWVudC5odG1sCkBAIC0wLDAg
KzEsMTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZ2xvYmFsVGhpcy5tZXRhVVJMcyA9
IFtdOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIuL21vZHVsZS1tZXRh
LXVybC5qcyNmcmFnbWVudCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIu
L21vZHVsZS1tZXRhLXVybC5qcyMxIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBz
cmM9Ii4vbW9kdWxlLW1ldGEtdXJsLmpzIzIiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1
bGUiIHNyYz0iLi9tb2R1bGUtbWV0YS11cmwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJt
b2R1bGUiPgord2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShnbG9iYWxU
aGlzLm1ldGFVUkxzKSwgIioiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL2h0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3Jp
cHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEtdXJsLXJlZGlyZWN0LXdpdGgtZnJhZ21lbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2h0dHAvd3B0L2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvbW9kdWxlLW1ldGEt
dXJsLXJlZGlyZWN0LXdpdGgtZnJhZ21lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxMGQx
MjFiMGM2NDIwYmZiZWM5Njc4YmMwZDM0NWUzZmZhYWVlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHR0cC93cHQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9tb2R1bGUtbWV0YS11cmwtcmVkaXJlY3Qtd2l0
aC1mcmFnbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitQQVNTIGltcG9ydC1t
ZXRhLXVybC1leHBvc2UuanMjdGVzdDEgCitGQUlMIGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMj
dGVzdDIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9XZWJL
aXQvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9y
ZXNvdXJjZXMvaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0ZXN0MiIgYnV0IGdvdCAiaHR0cDov
L2xvY2FsaG9zdDo4ODAwL1dlYktpdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbW9kdWxlL3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzIgor
UEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3Q0IAorUEFTUyBpbXBvcnQtbWV0YS11
cmwtZXhwb3NlLmpzI3Rlc3RBIAorUEFTUyBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzIAorRkFJ
TCBpbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3RDIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvV2ViS2l0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBv
c2UuanMjdGVzdEMiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9XZWJLaXQvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9yZXNvdXJjZXMv
aW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyIKK0ZBSUwgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5q
cyN0ZXN0RCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL1dl
YktpdC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L3Jlc291cmNlcy9pbXBvcnQtbWV0YS11cmwtZXhwb3NlLmpzI3Rlc3REIiBidXQgZ290ICJodHRw
Oi8vbG9jYWxob3N0Ojg4MDAvV2ViS2l0L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb2R1bGUvcmVzb3VyY2VzL2ltcG9ydC1tZXRhLXVybC1leHBvc2UuanMi
CitQQVNTIGltcG9ydC1tZXRhLXVybC1leHBvc2UuanMjdGVzdENDIAorUEFTUyBpbXBvcnQtbWV0
YS11cmwtZXhwb3NlLmpzI3Rlc3RFRSAKK1BBU1MgaW1wb3J0LW1ldGEtdXJsLWV4cG9zZS5qcyN0
ZXN0R0dHIAorCg==
</data>
<flag name="review"
          id="411817"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
      

    </bug>

</bugzilla>