<?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>224561</bug_id>
          
          <creation_ts>2021-04-14 10:34:49 -0700</creation_ts>
          <short_desc>[LayoutTests] Decouple http/tests/media/resources/create-id3-db.php from webserver</short_desc>
          <delta_ts>2021-05-10 17:42:00 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</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=224528</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Gambrell">cgambrell</reporter>
          <assigned_to name="Chris Gambrell">cgambrell</assigned_to>
          <cc>ap</cc>
    
    <cc>cgambrell</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1750200</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Gambrell">cgambrell</who>
    <bug_when>2021-04-14 10:34:49 -0700</bug_when>
    <thetext>WebKit is deprecating PHP support for layout tests, and contributors are not expected to have PHP configured to work on the project in the coming weeks. We should replace create-id3-db.php with a supported language, perhaps Python or Perl?

LayoutTests/media/content/metadata.db is being converted to and read in JSON as opposed to PHP serialized in https://bugs.webkit.org/show_bug.cgi?id=224528.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750201</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-14 10:36:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/76653054&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750565</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-15 04:13:43 -0700</bug_when>
    <thetext>This script was added as part of fixing bug 125926.
Eric Carlson&apos;s worry, IIUC, is that adding a binary file without anyway to regenerate it, was an issue.

Since the db is now in json format, I think this worry is less concerning perhaps? The create-id3-db script could be ported to Python still, but I&apos;d say it&apos;s not high priority.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750568</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-15 04:16:39 -0700</bug_when>
    <thetext>I&apos;ve checked http/tests/media/media-play-stream-chunked-icy.html still pass&apos;es as expected on GTK with the patch from bug 224528 applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756238</commentid>
    <comment_count>4</comment_count>
      <attachid>427576</attachid>
    <who name="Chris Gambrell">cgambrell</who>
    <bug_when>2021-05-03 11:00:34 -0700</bug_when>
    <thetext>Created attachment 427576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756240</commentid>
    <comment_count>5</comment_count>
      <attachid>427576</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-05-03 11:03:05 -0700</bug_when>
    <thetext>Comment on attachment 427576
Patch

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

&gt; LayoutTests/ChangeLog:3
&gt; +        [LayoutTests] Replace http/tests/media/resources/create-id3-db.php with supported language

Worth changing the title of this bug to &quot;Remove&quot;

&gt; LayoutTests/ChangeLog:8
&gt; +

Should probably include the rationale for removing, we can generally expect folks to be able to understand and modify JSON</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756241</commentid>
    <comment_count>6</comment_count>
      <attachid>427577</attachid>
    <who name="Chris Gambrell">cgambrell</who>
    <bug_when>2021-05-03 11:10:26 -0700</bug_when>
    <thetext>Created attachment 427577
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756242</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Gambrell">cgambrell</who>
    <bug_when>2021-05-03 11:11:14 -0700</bug_when>
    <thetext>&gt; &gt; LayoutTests/ChangeLog:8
&gt; &gt; +
&gt; 
&gt; Should probably include the rationale for removing, we can generally expect
&gt; folks to be able to understand and modify JSON

Addressed in comment 6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757148</commentid>
    <comment_count>8</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-05-05 16:02:41 -0700</bug_when>
    <thetext>The replacement for the the PHP database is LayoutTests/media/content/metadata.json, I&apos;d like someone more familiar with our media tests to verify that this is the right approach, the problem I see is that although the metadata.json is certainly easier to edit than it&apos;s PHP counterpart, the contents of the file still aren&apos;t trivial to regenerate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757158</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-05-05 16:33:03 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #8)
&gt; The replacement for the the PHP database is
&gt; LayoutTests/media/content/metadata.json, I&apos;d like someone more familiar with
&gt; our media tests to verify that this is the right approach, the problem I see
&gt; is that although the metadata.json is certainly easier to edit than it&apos;s PHP
&gt; counterpart, the contents of the file still aren&apos;t trivial to regenerate

The old database was generated by the php. If metadata.json is generated by the python we should be OK. If it isn&apos;t, why not?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758384</commentid>
    <comment_count>10</comment_count>
      <attachid>427577</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-09 15:45:38 -0700</bug_when>
    <thetext>Comment on attachment 427577
Patch

Oops, clearing the flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758385</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-09 15:46:24 -0700</bug_when>
    <thetext>I agree with Eric. We should replace these scripts with the new scripts to generate the checked-in JSON file. Not remove them with no replacement.

Sorry, I didn’t mean to clear the flags, but once I had set review+ and commit-queue+ that was the only way I knew to undo it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758483</commentid>
    <comment_count>12</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-05-10 07:44:50 -0700</bug_when>
    <thetext>Talking with Alexey and Chris about this, the plan is to change this script to a stand-alone PHP script so we can pull PHP out of our web servers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758503</commentid>
    <comment_count>13</comment_count>
      <attachid>428175</attachid>
    <who name="Chris Gambrell">cgambrell</who>
    <bug_when>2021-05-10 08:56:05 -0700</bug_when>
    <thetext>Created attachment 428175
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758505</commentid>
    <comment_count>14</comment_count>
      <attachid>428176</attachid>
    <who name="Chris Gambrell">cgambrell</who>
    <bug_when>2021-05-10 09:02:06 -0700</bug_when>
    <thetext>Created attachment 428176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758514</commentid>
    <comment_count>15</comment_count>
      <attachid>428176</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-05-10 09:18:32 -0700</bug_when>
    <thetext>Comment on attachment 428176
Patch

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

&gt; LayoutTests/media/content/create-id3-db.php:1
&gt; +#!/usr/bin/env php

We don&apos;t need the &quot;.php&quot; extension any more. It&apos;s actually undesirable since it risks counting this file as a test if things get moved around. Just drop the .php and make the file executable.

&gt; LayoutTests/media/content/create-id3-db.php:17
&gt;      // $ Tools/Scripts/run-webkit-httpd

Change the running instructions, this should no longer involve the httpd server.

&gt; LayoutTests/media/content/create-id3-db.php:31
&gt; +    if (!function_exists(&apos;sys_get_temp_dir&apos;)) {

I don&apos;t think we need this check, since we aren&apos;t importing the file any more.

&gt; LayoutTests/media/content/create-id3-db.php:51
&gt; +    if (!function_exists(&apos;file_put_contents&apos;)) {

I don&apos;t think we need this check, since we aren&apos;t importing the file any more.

&gt; LayoutTests/media/content/create-id3-db.php:65
&gt; +    if (!function_exists(&apos;stream_copy_to_stream&apos;)) {

I don&apos;t think we need this check, since we aren&apos;t importing the file any more.

&gt; LayoutTests/media/content/create-id3-db.php:80
&gt; +    if (!function_exists(&apos;scandir&apos;)) {

I don&apos;t think we need this check, since we aren&apos;t importing the file any more.

&gt; LayoutTests/media/content/create-id3-db.php:168
&gt; +    }

We only ported</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758545</commentid>
    <comment_count>16</comment_count>
      <attachid>428183</attachid>
    <who name="Chris Gambrell">cgambrell</who>
    <bug_when>2021-05-10 10:57:50 -0700</bug_when>
    <thetext>Created attachment 428183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758547</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Gambrell">cgambrell</who>
    <bug_when>2021-05-10 10:59:30 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #15)
&gt; Comment on attachment 428176 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=428176&amp;action=review
&gt; 
&gt; &gt; LayoutTests/media/content/create-id3-db.php:1
&gt; &gt; +#!/usr/bin/env php
&gt; 
&gt; We don&apos;t need the &quot;.php&quot; extension any more. It&apos;s actually undesirable since
&gt; it risks counting this file as a test if things get moved around. Just drop
&gt; the .php and make the file executable.
&gt; 
&gt; &gt; LayoutTests/media/content/create-id3-db.php:17
&gt; &gt;      // $ Tools/Scripts/run-webkit-httpd
&gt; 
&gt; Change the running instructions, this should no longer involve the httpd
&gt; server.
&gt; 
&gt; &gt; LayoutTests/media/content/create-id3-db.php:31
&gt; &gt; +    if (!function_exists(&apos;sys_get_temp_dir&apos;)) {
&gt; 
&gt; I don&apos;t think we need this check, since we aren&apos;t importing the file any
&gt; more.
&gt; 
&gt; &gt; LayoutTests/media/content/create-id3-db.php:51
&gt; &gt; +    if (!function_exists(&apos;file_put_contents&apos;)) {
&gt; 
&gt; I don&apos;t think we need this check, since we aren&apos;t importing the file any
&gt; more.
&gt; 
&gt; &gt; LayoutTests/media/content/create-id3-db.php:65
&gt; &gt; +    if (!function_exists(&apos;stream_copy_to_stream&apos;)) {
&gt; 
&gt; I don&apos;t think we need this check, since we aren&apos;t importing the file any
&gt; more.
&gt; 
&gt; &gt; LayoutTests/media/content/create-id3-db.php:80
&gt; &gt; +    if (!function_exists(&apos;scandir&apos;)) {
&gt; 
&gt; I don&apos;t think we need this check, since we aren&apos;t importing the file any
&gt; more.
&gt; 
&gt; &gt; LayoutTests/media/content/create-id3-db.php:168
&gt; &gt; +    }
&gt; 
&gt; We only ported

Fixed in comment 16</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758574</commentid>
    <comment_count>18</comment_count>
      <attachid>428183</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-05-10 11:37:40 -0700</bug_when>
    <thetext>Comment on attachment 428183
Patch

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

&gt; LayoutTests/ChangeLog:3
&gt; +        [LayoutTests] Replace http/tests/media/resources/create-id3-db.php result with JSON

We should change the title of this bug, something to the effect of &quot;decouple create-id3-db from webserver&quot;

&gt; LayoutTests/ChangeLog:9
&gt; +        Reviewed by NOBODY (OOPS!).

Reviewed by line needs to go above the change explanation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758578</commentid>
    <comment_count>19</comment_count>
      <attachid>428189</attachid>
    <who name="Chris Gambrell">cgambrell</who>
    <bug_when>2021-05-10 11:41:14 -0700</bug_when>
    <thetext>Created attachment 428189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758580</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Gambrell">cgambrell</who>
    <bug_when>2021-05-10 11:44:36 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #18)
&gt; Comment on attachment 428183 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=428183&amp;action=review
&gt; 
&gt; &gt; LayoutTests/ChangeLog:3
&gt; &gt; +        [LayoutTests] Replace http/tests/media/resources/create-id3-db.php result with JSON
&gt; 
&gt; We should change the title of this bug, something to the effect of &quot;decouple
&gt; create-id3-db from webserver&quot;
&gt; 
&gt; &gt; LayoutTests/ChangeLog:9
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; Reviewed by line needs to go above the change explanation

Fixed in comment 19</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758754</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-10 17:41:57 -0700</bug_when>
    <thetext>Committed r277311 (237571@main): &lt;https://commits.webkit.org/237571@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428189.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427576</attachid>
            <date>2021-05-03 11:00:34 -0700</date>
            <delta_ts>2021-05-03 11:10:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224561-20210503140033.patch</filename>
            <type>text/plain</type>
            <size>13355</size>
            <attacher name="Chris Gambrell">cgambrell</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI3NjkwOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA1LTAzICBDaHJpcyBHYW1icmVsbCAg
PGNnYW1icmVsbEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xheW91dFRlc3RzXSBSZXBsYWNlIGh0
dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwIHdpdGggc3VwcG9ydGVk
IGxhbmd1YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjQ1NjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2NjUzMDU0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9y
ZXNvdXJjZXMvY3JlYXRlLWlkMy1kYi5waHA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9tZWRpYS9yZXNvdXJjZXMvc2VydmVfdmlkZW8ucHk6CisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZXMvZGlyLWhlbHBlcnMucGhwOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VzL3BvcnRhYmlsaXR5TGF5ZXIucGhwOiBSZW1vdmVkLgorCiAyMDIxLTA1LTAzICBU
aW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlICJuby1wcmVmZXJl
bmNlIiB2YWx1ZSBmb3IgcHJlZmVycy1jb2xvci1zY2hlbWUgbWVkaWEgcXVlcnkKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL2NyZWF0
ZS1pZDMtZGIucGhwCShyZXZpc2lvbiAyNzY4OTkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL3Jlc291cmNlcy9jcmVhdGUtaWQzLWRiLnBocAkobm9uZXhpc3RlbnQpCkBAIC0xLDE3
NyArMCwwIEBACi08P3BocAotCi0gICAgLy8gVGhpcyBzY3JpcHQgaXMgYmFzZWQgb24gdGhlIHdv
cmsgZG9uZSBieSBnYWRnZXRndXJ1Ci0gICAgLy8gPGRhdmlkQHZ1aXN0YmlqbC5ubD4gYXQKLSAg
ICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2FkZ2V0Z3VydS9QSFAtU3RyZWFtaW5nLUF1ZGlvIGFu
ZCByZWxlYXNlZAotICAgIC8vIHVuZGVyIHRoZSBQdWJsaWMgRG9tYWluLgotCi0KLSAgICAvLyBU
aGlzIHNjcmlwdCBjcmVhdGVzLCBvdmVyd3JpdGluZyBpZiBuZWVkZWQsIHRoZSAibWV0YWRhdGEu
ZGIiCi0gICAgLy8gZmlsZSB1c2VkIGJ5IHNjcmlwdHMgc3VjaCBhcyAic2VydmUtdmlkZW8ucHki
LgotICAgIC8vCi0gICAgLy8gRm9yIGNyZWF0aW5nIG9yIHVwZGF0aW5nIGFuIGV4aXN0aW5nIGZp
bGUgeW91IGhhdmUgdG8gcnVuIHRoZQotICAgIC8vIGh0dHAgc2VydmVyIHVzZWQgYnkgdGhlIHRl
c3RzIHdpdGg6Ci0gICAgLy8KLSAgICAvLyAkIFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC1odHRw
ZAotICAgIC8vCi0gICAgLy8gVGhlbiB5b3Ugd2lsbCBqdXN0IGhhdmUgdG8gdXNlIGEgYnJvd3Nl
ciB0byBvcGVuIGFuIFVSTCBvZiB0aGUKLSAgICAvLyB0eXBlOgotICAgIC8vCi0gICAgLy8gaHR0
cDovLzEyNy4wLjAuMTo4MDAwL21lZGlhL3Jlc291cmNlcy9jcmVhdGUtaWQzLWRiLnBocD9uYW1l
PS4uLy4uLy4uLy4uL21lZGlhL2NvbnRlbnQvc2lsZW5jZS53YXYKLSAgICAvLwotICAgIC8vIFdp
dGggdGhpcywgYSBuZXcgIm1ldGFkYWJhLmRiIiBmaWxlIHdpbGwgYmUgY3JlYXRlIGluIHRoZQot
ICAgIC8vIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSByZWZlcnJlZCBmaWxlLiBJbiB0aGlzIGV4
YW1wbGUsIHRoZQotICAgIC8vIGRhdGFiYXNlIHdpbGwgYmUgY3JlYXRlZCBhdDoKLSAgICAvLwot
ICAgIC8vICQgTGF5b3V0VGVzdHMvbWVkaWEvY29udGVudC9tZXRhZGF0YS5kYgotCi0KLSAgICBy
ZXF1aXJlX29uY2UgJy4uLy4uL3Jlc291cmNlcy9wb3J0YWJpbGl0eUxheWVyLnBocCc7Ci0gICAg
cmVxdWlyZV9vbmNlICcuLi8uLi9yZXNvdXJjZXMvZGlyLWhlbHBlcnMucGhwJzsKLQotICAgIC8v
IDUwMCBvbiBlcnJvcnMKLSAgICAkaHR0cFN0YXR1cyA9ICI1MDAgSW50ZXJuYWwgU2VydmVyIEVy
cm9yIjsKLSAgICAkaHRtbE1lc3NhZ2UgPSAiIjsKLQotICAgIGlmICghYXJyYXlfa2V5X2V4aXN0
cygibmFtZSIsICRfR0VUKSkgewotICAgICAgICB0cmlnZ2VyX2Vycm9yKCJZb3UgaGF2ZSBub3Qg
c3BlY2lmaWVkIGEgJ25hbWUnIHBhcmFtZXRlci4iLCBFX1VTRVJfV0FSTklORyk7Ci0gICAgICAg
IGdvdG8gYW5zd2VyaW5nOwotICAgIH0KLSAgICAkbWVkaWFEaXJlY3RvcnkgPSBkaXJuYW1lKCRf
R0VUWyJuYW1lIl0pOwotCi0gICAgaWYgKCFpc19kaXIoJG1lZGlhRGlyZWN0b3J5KSkgewotICAg
ICAgICB0cmlnZ2VyX2Vycm9yKCJUaGUgcHJvdmlkZWQgZGlyZWN0b3J5IHBhdGggZG9lc24ndCBl
eGlzdC4iLCBFX1VTRVJfV0FSTklORyk7Ci0gICAgICAgIGdvdG8gYW5zd2VyaW5nOwotICAgIH0K
LSAgICAkZGF0YWJhc2VGaWxlID0gcmVhbHBhdGgoJG1lZGlhRGlyZWN0b3J5KSAuICIvbWV0YWRh
dGEuZGIiOwotCi0gICAgaWYgKGZpbGVfZXhpc3RzKCRkYXRhYmFzZUZpbGUpKSB7Ci0gICAgICAg
IHVubGluaygkZGF0YWJhc2VGaWxlKTsKLSAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNz
YWdlIC4gIjxwLz5EZWxldGVkIHByZXZpb3VzbHkgZXhpc3RpbmcgZGIgZmlsZSBhdDogJyIgLiAk
ZGF0YWJhc2VGaWxlIC4gIiciOwotICAgIH0KLQotICAgIC8vIFdlIGRvbid0IGhhdmUgZ2V0aWQz
IGluIFdlYktpdC4gSWYgbm90IGN1cnJlbnRseSBwcmVzZW50LCB3ZQotICAgIC8vIHdpbGwgdHJ5
IHRvIGRvd25sb2FkIGl0IG5vdyBiZWZvcmUgbWFraW5nIHVzZSBvZiBpdC4KLSAgICAvLwotICAg
IC8vIGdldGlkMyBpcyBhdmFpbGFibGUgYXQgaHR0cDovL2dldGlkMy5zb3VyY2Vmb3JnZS5uZXQK
LQotICAgICRnZXRJZDNEZXN0RGlyID0gImdldGlkMyI7Ci0gICAgaWYgKCFmaWxlX2V4aXN0cygk
Z2V0SWQzRGVzdERpcikpIHsKLQotICAgICAgICAkdG1wRGlyID0gdG1wZGlyKEZBTFNFLCAicGhw
Iik7Ci0gICAgICAgIGlmICghaXNfZGlyKCR0bXBEaXIpKSB7Ci0gICAgICAgICAgICB0cmlnZ2Vy
X2Vycm9yKCJJbXBvc3NpYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhbCBkaXJlY3RvcnkuIiwgRV9VU0VS
X1dBUk5JTkcpOwotICAgICAgICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgICAgIH0KLQotICAg
ICAgICAkaWQzRGVzdFBhdGggPSAkdG1wRGlyIC4gIi9nZXRpZDMuemlwIjsKLSAgICAgICAgJHBo
cFZlcnNpb24gPSBleHBsb2RlKCIuIiwgUEhQX1ZFUlNJT04pOwotICAgICAgICBpZiAoKCRwaHBW
ZXJzaW9uWzBdID4gNCkgJiYgKCRwaHBWZXJzaW9uWzFdID4gMCkpCi0gICAgICAgICAgICAkaWQz
VXJsID0gImh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvZ2V0aWQzL2ZpbGVzL2dldElE
MyUyOCUyOSUyMDEueC8xLjkuNy9nZXRJRDMtMS45LjcuemlwL2Rvd25sb2FkIjsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgJGlkM1VybCA9ICJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2pl
Y3RzL2dldGlkMy9maWxlcy9nZXRJRDMlMjglMjklMjAxLngvMS43LjEwL2dldGlkMy0xLjcuMTAt
MjAwOTA0MjYuemlwL2Rvd25sb2FkIjsKLSAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNz
YWdlIC4gIjxwLz5nZXRJZDMgbm90IGluIHRoZSBzeXN0ZW0uPHAvPkRvd25sb2FkaW5nIGZyb206
ICciIC4gJGlkM1VybCAuICInIjsKLQotICAgICAgICAkY3R4dE9wdHMgPSBhcnJheSgiaHR0cCIg
PT4KLSAgICAgICAgICAgIGFycmF5KAotICAgICAgICAgICAgICAgICJtZXRob2QiICA9PiAiR0VU
IiwKLSAgICAgICAgICAgICAgICAidGltZW91dCIgPT4gNjAsCi0gICAgICAgICAgICApCi0gICAg
ICAgICk7Ci0gICAgICAgICRjdHh0ID0gc3RyZWFtX2NvbnRleHRfY3JlYXRlKCRjdHh0T3B0cyk7
Ci0gICAgICAgICRzcmMgPSBmb3BlbigkaWQzVXJsLCAicmIiLCBmYWxzZSwgJGN0eHQpOwotICAg
ICAgICAkZGVzdCA9IGZvcGVuKCRpZDNEZXN0UGF0aCwgIndiIik7Ci0gICAgICAgICRjb3BpZWQg
PSBzdHJlYW1fY29weV90b19zdHJlYW0oJHNyYywgJGRlc3QpOwotICAgICAgICBmY2xvc2UoJHNy
Yyk7Ci0gICAgICAgIGZjbG9zZSgkZGVzdCk7Ci0gICAgICAgIGlmICgkY29waWVkID09IDApIHsK
LSAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoIkltcG9zc2libGUgdG8gY29weSB0aGUgbGF0ZXN0
IGdldGlkMyB6aXAgcmVsZWFzZSBmaWxlLiIsIEVfVVNFUl9XQVJOSU5HKTsKLSAgICAgICAgICAg
IGdvdG8gYW5zd2VyaW5nOwotICAgICAgICB9Ci0gICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1s
TWVzc2FnZSAuICI8cC8+Z2V0SWQzIGRvd25sb2FkZWQgdG86ICciIC4gJGlkM0Rlc3RQYXRoIC4g
IiciOwotCi0gICAgICAgIGlmICghZXhlYygidW56aXAgIiAuICRpZDNEZXN0UGF0aCAuICIgLWQg
IiAuICR0bXBEaXIpKSB7Ci0gICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRv
IGV4dHJhY3QgdGhlIGRvd25sb2FkZWQgemlwIGZpbGUuIiwgRV9VU0VSX1dBUk5JTkcpOwotICAg
ICAgICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgICAgIH0KLSAgICAgICAgJGh0bWxNZXNzYWdl
ID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5aaXAgZmlsZSBzdWNjZXNzZnVsbHkgZXh0cmFjdGVkLiI7
Ci0KLSAgICAgICAgJGdldElkM1NvdXJjZURpciA9IGZpcnN0X2RpcigkZ2V0SWQzRGVzdERpciwg
JHRtcERpcik7Ci0gICAgICAgIGlmICghJGdldElkM1NvdXJjZURpcikgewotICAgICAgICAgICAg
dHJpZ2dlcl9lcnJvcigiSW1wb3NzaWJsZSB0byBmaW5kIHRoZSBnZXRpZDMgZGlyZWN0b3J5IHdp
dGggdGhlIFBIUCBjb2RlIHRvIGNvcHkuIiwgRV9VU0VSX1dBUk5JTkcpOwotICAgICAgICAgICAg
Z290byBhbnN3ZXJpbmc7Ci0gICAgICAgIH0KLSAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxN
ZXNzYWdlIC4gIjxwLz5nZXRJZDMgZGlyZWN0b3J5IHRvIGNvcHkgZm91bmQgYXQ6ICciIC4gJGdl
dElkM1NvdXJjZURpciAuICInIjsKLQotCi0gICAgICAgIHJjb3B5KCRnZXRJZDNTb3VyY2VEaXIs
ICRnZXRJZDNEZXN0RGlyKTsKLSAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4g
IjxwLz5nZXRJZDMgZGlyZWN0b3J5IGNvcGllZCB0byBpdHMgZmluYWwgZGVzdGluYXRpb24gYXQ6
ICciIC4gcmVhbHBhdGgoJGdldElkM1NvdXJjZURpcikgLiAiJyI7Ci0KLSAgICAgICAgcnJtZGly
KCR0bXBEaXIpOwotICAgICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPkRl
bGV0ZWQgYWxsIHRlbXBvcmFsIGZpbGVzIGF0OiAnIiAuICR0bXBEaXIgLiAiJyI7Ci0gICAgfQot
Ci0KLSAgICAvLyBnZXRpZDMgZG93bmxvYWRlZC4gTGV0J3MgY3JlYXRlIHRoZSBkYXRhYmFzZSBm
aWxlLgotICAgIHJlcXVpcmVfb25jZSgiZ2V0aWQzL2dldGlkMy5waHAiKTsKLSAgICAkZ2V0SUQz
ID0gbmV3IGdldElEMzsKLQotICAgICRpZDNGaWxlTmFtZXMgPSBhcnJheV9kaWZmKHNjYW5kaXIo
JG1lZGlhRGlyZWN0b3J5KSwgYXJyYXkoIi4iLCAiLi4iKSk7Ci0KLSAgICBmb3JlYWNoICgkaWQz
RmlsZU5hbWVzIGFzICRpZDNGaWxlTmFtZSkgewotICAgICAgICAkaWQzID0gJGdldElEMy0+YW5h
bHl6ZSgkbWVkaWFEaXJlY3RvcnkgLiAiLyIgLiAkaWQzRmlsZU5hbWUpOwotICAgICAgICAkcGxh
eWZpbGUgPSBhcnJheSgKLSAgICAgICAgICAgICJmaWxlTmFtZSIgPT4gJGlkM1siZmlsZW5hbWUi
XSwKLSAgICAgICAgICAgICJmaWxlU2l6ZSIgPT4gJGlkM1siZmlsZXNpemUiXSwKLSAgICAgICAg
ICAgICJwbGF5VGltZSIgPT4gJGlkM1sicGxheXRpbWVfc2Vjb25kcyJdLAotICAgICAgICAgICAg
ImF1ZGlvU3RhcnQiID0+ICRpZDNbImF2ZGF0YW9mZnNldCJdLAotICAgICAgICAgICAgImF1ZGlv
RW5kIiA9PiAkaWQzWyJhdmRhdGFlbmQiXSwKLSAgICAgICAgICAgICJhdWRpb0xlbmd0aCIgPT4g
JGlkM1siYXZkYXRhZW5kIl0gLSAkaWQzWyJhdmRhdGFvZmZzZXQiXSwKLSAgICAgICAgICAgICJh
cnRpc3QiID0+ICRpZDNbInRhZ3MiXVsiaWQzdjIiXVsiYXJ0aXN0Il1bMF0sCi0gICAgICAgICAg
ICAidGl0bGUiID0+ICRpZDNbInRhZ3MiXVsiaWQzdjIiXVsidGl0bGUiXVswXSwKLSAgICAgICAg
ICAgICJiaXRSYXRlIiA9PiAkaWQzWyJhdWRpbyJdWyJiaXRyYXRlIl0sCi0gICAgICAgICAgICAi
bWltZVR5cGUiID0+ICRpZDNbIm1pbWVfdHlwZSJdLAotICAgICAgICAgICAgImZpbGVGb3JtYXQi
ID0+ICRpZDNbImZpbGVmb3JtYXQiXSwKLSAgICAgICAgKTsKLSAgICAgICAgaWYgKGVtcHR5KCRw
bGF5ZmlsZVsiYXJ0aXN0Il0pIHx8IGVtcHR5KCRwbGF5ZmlsZVsidGl0bGUiXSkpCi0gICAgICAg
ICAgICBsaXN0KCRwbGF5ZmlsZVsiYXJ0aXN0Il0sICRwbGF5ZmlsZVsidGl0bGUiXSkgPSBleHBs
b2RlKCIgLSAiLCBzdWJzdHIoJHBsYXlmaWxlWyJmaWxlTmFtZSJdLCAwICwgLTQpKTsKLSAgICAg
ICAgJHBsYXlGaWxlc1tdID0gJHBsYXlmaWxlOwotICAgIH0KLQotICAgIGlmICghZmlsZV9wdXRf
Y29udGVudHMoJGRhdGFiYXNlRmlsZSwgc2VyaWFsaXplKCRwbGF5RmlsZXMpKSkgewotICAgICAg
ICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIHdyaXRlIHRoZSBnZXRpZDMgZGIuIiwgRV9V
U0VSX1dBUk5JTkcpOwotICAgICAgICBnb3RvIGFuc3dlcmluZzsKLSAgICB9Ci0gICAgJGh0bWxN
ZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5Xcml0dGVuIG5ldyBkYXRhYmFzZSBmaWxlIGF0
OiAnIiAuICRkYXRhYmFzZUZpbGUgLiAiJyI7Ci0KLQotICAgIC8vIERhdGFiYXNlIGNyZWF0ZWQs
IGV2ZXJ5dGhpbmcgT0suCi0gICAgJGh0dHBTdGF0dXMgPSAiMjAwIE9LIjsKLQotCi1hbnN3ZXJp
bmc6Ci0KLSAgICBoZWFkZXIoIlN0YXR1czogIiAuICRodHRwU3RhdHVzKTsKLSAgICBoZWFkZXIo
IkhUVFAvMS4xICIgLiAkaHR0cFN0YXR1cyk7Ci0gICAgaGVhZGVyKCJDb25uZWN0aW9uOiBjbG9z
ZSIpOwotICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWwiKTsKLQotICAgICRodG1s
TWVzc2FnZSA9ICI8aHRtbD48Ym9keT48aDE+IiAuICRodHRwU3RhdHVzIC4gIjwvaDE+IiAuICRo
dG1sTWVzc2FnZTsKLQotICAgIGlmICgkaHR0cFN0YXR1cyA9PSAiNTAwIEludGVybmFsIFNlcnZl
ciBFcnJvciIpIHsKLSAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygiZXJyb3JfZ2V0X2xhc3Qi
KSkgewotICAgICAgICAgICAgJGVycm9yQXJyYXkgPSBlcnJvcl9nZXRfbGFzdCgpOwotICAgICAg
ICAgICAgaWYgKCRlcnJvckFycmF5KSB7Ci0gICAgICAgICAgICAgICAgJGh0bWxNZXNzYWdlID0g
c3ByaW50ZigiJXM8cC8+RXJyb3IgdHlwZTogJWQ8cC8+RXJyb3IgbWVzc2FnZTogJXM8cC8+Ii4K
LSAgICAgICAgICAgICAgICAgICAgIkVycm9yIGZpbGU6ICVzPHAvPkVycm9yIGxpbmU6ICVkIiwK
LSAgICAgICAgICAgICAgICAgICAgJGh0bWxNZXNzYWdlLCAkZXJyb3JBcnJheVsidHlwZSJdLCAk
ZXJyb3JBcnJheVsibWVzc2FnZSJdLAotICAgICAgICAgICAgICAgICAgICAkZXJyb3JBcnJheVsi
ZmlsZSJdLCAkZXJyb3JBcnJheVsibGluZSJdKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgIH0KLSAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPC9ib2R5PjxodG1sPiI7
Ci0KLSAgICBwcmludCgkaHRtbE1lc3NhZ2UpOwotICAgIGZsdXNoKCk7Ci0gICAgZXhpdDsKLT8+
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9zZXJ2ZV92aWRl
by5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNl
cy9zZXJ2ZV92aWRlby5weQkocmV2aXNpb24gMjc2ODk5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9yZXNvdXJjZXMvc2VydmVfdmlkZW8ucHkJKHdvcmtpbmcgY29weSkKQEAgLTE0
NCw5ICsxNDQsNiBAQCBpZiBzZXR0aW5nc1snc2V0SWN5RGF0YSddID09ICd5ZXMnOgogICAgIGlm
IG5vdCBvcy5wYXRoLmlzZmlsZShzZXR0aW5nc1snZGF0YWJhc2VGaWxlJ10pOgogICAgICAgICAj
IElmIHRoZSBtZXRhZGF0YSBkYXRhYmFzZSBmaWxlIGRvZXNuJ3QgZXhpc3QgaXQgaGFzIHRvCiAg
ICAgICAgICMgYmUgY3JlYXRlIHByZXZpb3VzbHkuCi0gICAgICAgICMKLSAgICAgICAgIyBDaGVj
ayB0aGUgaW5zdHJ1Y3Rpb25zIGFib3V0IGhvdyB0byBjcmVhdGUgaXQgZnJvbSB0aGUKLSAgICAg
ICAgIyBjcmVhdGUtaWQzLWRiLnBocCBzY3JpcHQgZmlsZSBpbiB0aGlzIHNhbWUgZGlyZWN0b3J5
LgogCiAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ1RoZSBtZXRhZGF0YSBkYXRhYmFzZSBkb2Vz
blwndCBleGlzdC4gVG8gY3JlYXRlIG9uZSwgY2hlY2sgdGhlIHNjcmlwdCBcJ2NyZWF0ZS1pZDMt
ZGIucGhwXCcuXG4nKQogICAgICAgICBhbnN3ZXJpbmcoKQpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZXMvZGlyLWhlbHBlcnMucGhwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2Rpci1oZWxwZXJzLnBocAkocmV2aXNpb24gMjc2ODk5
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvZGlyLWhlbHBlcnMucGhwCShu
b25leGlzdGVudCkKQEAgLTEsNzcgKzAsMCBAQAotPD9waHAKLXJlcXVpcmVfb25jZSAncG9ydGFi
aWxpdHlMYXllci5waHAnOwotCi1mdW5jdGlvbiB0bXBkaXIoJGRpcj1GQUxTRSwgJHByZWZpeD0n
cGhwJykKLXsKLSAgICBpZiAoJGRpcikgewotICAgICAgICAkdG1wRmlsZSA9IHRlbXBuYW0oJGRp
ciwgJHByZWZpeCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKCFzeXNfZ2V0X3RlbXBfZGly
KCkpCi0gICAgICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgICAgICR0bXBGaWxlID0gdGVtcG5h
bShzeXNfZ2V0X3RlbXBfZGlyKCksICRwcmVmaXgpOwotICAgIH0KLQotICAgIGlmICghZmlsZV9l
eGlzdHMoJHRtcEZpbGUpKQotICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgdW5saW5rKCR0bXBG
aWxlKTsKLSAgICBta2RpcigkdG1wRmlsZSk7Ci0gICAgaWYgKCFpc19kaXIoJHRtcEZpbGUpKQot
ICAgICAgICByZXR1cm4gRkFMU0U7Ci0KLSAgICByZXR1cm4gJHRtcEZpbGU7Ci19Ci0KLWZ1bmN0
aW9uIHJybWRpcigkZGlyKQotewotICAgIGlmIChpc19kaXIoJGRpcikpIHsKLSAgICAgICAgJG9i
amVjdHMgPSBhcnJheV9kaWZmKHNjYW5kaXIoJGRpciksIGFycmF5KCIuIiwgIi4uIikpOwotICAg
ICAgICBmb3JlYWNoICgkb2JqZWN0cyBhcyAkb2JqZWN0KQotICAgICAgICAgICAgKGlzX2Rpcigk
ZGlyIC4gIi8iIC4gJG9iamVjdCkpID8gcnJtZGlyKCRkaXIgLiAiLyIgLiAkb2JqZWN0KSA6IHVu
bGluaygkZGlyIC4gIi8iIC4gJG9iamVjdCk7Ci0gICAgICAgIHJlc2V0KCRvYmplY3RzKTsKLSAg
ICAgICAgcm1kaXIoJGRpcik7Ci0gICAgfQotfQotCi1mdW5jdGlvbiByY29weSgkc3JjLCAkZHN0
KQotewotICAgIGlmIChmaWxlX2V4aXN0cygkZHN0KSkKLSAgICAgICAgcnJtZGlyKCRkc3QpOwot
ICAgIGlmIChpc19kaXIoJHNyYykpIHsKLSAgICAgICAgbWtkaXIoJGRzdCk7Ci0gICAgICAgICRm
aWxlcyA9IGFycmF5X2RpZmYoc2NhbmRpcigkc3JjKSwgYXJyYXkoIi4iLCAiLi4iKSk7Ci0gICAg
ICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkKLSAgICAgICAgICByY29weSgiJHNyYy8kZmls
ZSIsICIkZHN0LyRmaWxlIik7Ci0gICAgfSBlbHNlIGlmIChmaWxlX2V4aXN0cygkc3JjKSkgewot
ICAgICAgICBjb3B5KCRzcmMsICRkc3QpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZmlyc3RfZGly
KCRuYW1lLCAkZGlyPUZBTFNFKQotewotICAgICRyZXN1bHQgPSBGQUxTRTsKLSAgICAkcm9vdCA9
ICRkaXIgPyAkZGlyIDogIi4vIjsKLSAgICAkcXVldWUgPSBhcnJheShyZWFscGF0aCgkcm9vdCkp
OwotCi0gICAgd2hpbGUgKHNpemVvZigkcXVldWUpKSB7Ci0gICAgICAgICR2ZXJ0ZXggPSBhcnJh
eV9wb3AoJHF1ZXVlKTsKLSAgICAgICAgJG9iamVjdHMgPSBhcnJheV9kaWZmKHNjYW5kaXIoJHZl
cnRleCksIGFycmF5KCIuIiwgIi4uIikpOwotICAgICAgICBmb3JlYWNoICgkb2JqZWN0cyBhcyAk
b2JqZWN0KSB7Ci0gICAgICAgICAgICAkZnVsbFBhdGggPSAkdmVydGV4IC4gIi8iIC4gJG9iamVj
dDsKLSAgICAgICAgICAgIGlmIChpc19kaXIoJGZ1bGxQYXRoKSkgewotICAgICAgICAgICAgICAg
IGlmICgkbmFtZSA9PSBiYXNlbmFtZSgkZnVsbFBhdGgpKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICRyZXN1bHQgPSAkZnVsbFBhdGg7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gY2xlYW51cDsK
LSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhcnJheV91bnNo
aWZ0KCRxdWV1ZSwgJGZ1bGxQYXRoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICB9Ci0KLQotY2xlYW51cDoKLQotICAgIHJldHVybiAkcmVzdWx0Owot
fQotPz4KLQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvcG9ydGFiaWxp
dHlMYXllci5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZXMvcG9ydGFiaWxpdHlMYXllci5waHAJKHJldmlzaW9uIDI3Njg5OSkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VzL3BvcnRhYmlsaXR5TGF5ZXIucGhwCShub25leGlzdGVudCkK
QEAgLTEsNjggKzAsMCBAQAotPD9waHAKLQotaWYgKCFmdW5jdGlvbl9leGlzdHMoJ3N5c19nZXRf
dGVtcF9kaXInKSkgewotICAgIC8vIEJhc2VkIG9uIGh0dHA6Ly93d3cucGhwaXQubmV0L2FydGlj
bGUvY3JlYXRpbmctemlwLXRhci1hcmNoaXZlcy1keW5hbWljYWxseS1waHAvMi8KLSAgICAvLyBJ
ZiB0aGUgYnVpbHRpbiBQSFAgc3lzX2dldF90ZW1wX2RpciBkb2Vzbid0IGV4aXN0LCB3ZSByZXBs
YWNlIGl0IHdpdGggb25lIHRoYXQgd2lsbAotICAgIC8vIHRyeSB0byBndWVzcyBmcm9tIHRoZSBl
bnZpcm9ubWVudC4gIFNpbmNlIHN5c19nZXRfdGVtcF9kaXIoKSBkb2Vzbid0IHJldHVybiBhIHRy
YWlsaW5nCi0gICAgLy8gc2xhc2ggb24gYWxsIHN5c3RlbSAoc2VlIGNvbW1lbnQgYXQgaHR0cDov
L3VzLnBocC5uZXQvc3lzX2dldF90ZW1wX2RpciksIHdlIGRvbid0Ci0gICAgLy8gYXBwZW5kIGEg
dHJhaWxpbmcgc2xhc2gsIGFuZCBleHBlY3QgY2FsbGVycyB0byBhcHBlbmQgb25lIHdoZW4gbmVl
ZGVkLgotICAgIGZ1bmN0aW9uIHN5c19nZXRfdGVtcF9kaXIoKQotICAgIHsKLSAgICAgICAgLy8g
VHJ5IHRvIGdldCBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlCi0gICAgICAgIGlmICghZW1wdHko
JF9FTlZbJ1RNUCddKSkKLSAgICAgICAgICAgIHJldHVybiByZWFscGF0aCgkX0VOVlsnVE1QJ10p
OwotICAgICAgICBpZiAoIWVtcHR5KCRfRU5WWydUTVBESVInXSkpCi0gICAgICAgICAgICByZXR1
cm4gcmVhbHBhdGgoJF9FTlZbJ1RNUERJUiddKTsKLSAgICAgICAgaWYgKCFlbXB0eSgkX0VOVlsn
VEVNUCddKSkKLSAgICAgICAgICAgIHJldHVybiByZWFscGF0aCggJF9FTlZbJ1RFTVAnXSk7Ci0g
ICAgICAgIHJldHVybiAiL3RtcCI7Ci0gICAgfQotfQotCi1pZiAoIWZ1bmN0aW9uX2V4aXN0cygn
ZmlsZV9wdXRfY29udGVudHMnKSkgewotICAgIGZ1bmN0aW9uIGZpbGVfcHV0X2NvbnRlbnRzKCRm
aWxlbmFtZSwgJGRhdGEpCi0gICAgewotICAgICAgICAkaGFuZGxlID0gZm9wZW4oJGZpbGVuYW1l
LCAidyIpOwotICAgICAgICBpZiAoISRoYW5kbGUpCi0gICAgICAgICAgICByZXR1cm4gRkFMU0U7
Ci0gICAgICAgICRieXRlc1dyaXR0ZW4gPSBmd3JpdGUoJGhhbmRsZSwgJGRhdGEpOwotICAgICAg
ICBpZiAoIWZjbG9zZSgkaGFuZGxlKSkKLSAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAg
ICAgcmV0dXJuICRieXRlc1dyaXR0ZW47Ci0gICAgfQotfQotCi1pZiAoIWZ1bmN0aW9uX2V4aXN0
cygnc3RyZWFtX2NvcHlfdG9fc3RyZWFtJykpIHsKLSAgICBmdW5jdGlvbiBzdHJlYW1fY29weV90
b19zdHJlYW0oJHNvdXJjZSwgJGRlc3QpCi0gICAgewotICAgICAgICAkcmVzdWx0ID0gMDsKLSAg
ICAgICAgd2hpbGUgKCFmZW9mKCRzb3VyY2UpKSB7Ci0gICAgICAgICAgICAkYnl0ZXNXcml0dGVu
ID0gZndyaXRlKCRkZXN0LCBmcmVhZCgkc291cmNlLCA4MTkyKSk7Ci0gICAgICAgICAgICBpZiAo
ISRieXRlc1dyaXR0ZW4pCi0gICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgICAgICAg
ICAgJHJlc3VsdCA9ICRyZXN1bHQgKyAkYnl0ZXNXcml0dGVuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgcmV0dXJuICRyZXN1bHQ7Ci0gICAgfQotfQotCi1pZiAoIWZ1bmN0aW9uX2V4aXN0cygnc2Nh
bmRpcicpKSB7Ci0gICAgZnVuY3Rpb24gc2NhbmRpcigkZGlyKQotICAgIHsKLSAgICAgICAgaWYg
KCFpc19kaXIoJGRpcikpCi0gICAgICAgICAgICByZXR1cm4gRkFMU0U7Ci0KLSAgICAgICAgJGRo
ID0gb3BlbmRpcigkZGlyKTsKLSAgICAgICAgd2hpbGUgKCRmaWxlbmFtZSA9IHJlYWRkaXIoJGRo
KSkgewotICAgICAgICAgICAgJGZpbGVzW10gPSAkZmlsZW5hbWU7Ci0gICAgICAgIH0KLQotICAg
ICAgICBjbG9zZWRpcigkZGgpOwotICAgICAgICBzb3J0KCRmaWxlcyk7Ci0KLSAgICAgICAgcmV0
dXJuICRmaWxlczsKLSAgICB9Ci19Ci0KLT8+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9wb3J0YWJpbGl0eUxheWVyLnBocApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkRlbGV0ZWQ6IHN2bjpleGVjdXRhYmxlCiMjIC0xICswLDAgIyMKLSoKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBwcm9wZXJ0eQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427577</attachid>
            <date>2021-05-03 11:10:26 -0700</date>
            <delta_ts>2021-05-10 08:56:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224561-20210503141024.patch</filename>
            <type>text/plain</type>
            <size>13498</size>
            <attacher name="Chris Gambrell">cgambrell</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI3NjkwOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTAzICBDaHJpcyBHYW1icmVsbCAg
PGNnYW1icmVsbEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xheW91dFRlc3RzXSBSZXBsYWNlIGh0
dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwIHdpdGggc3VwcG9ydGVk
IGxhbmd1YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjQ1NjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2NjUzMDU0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92aW5nIGh0dHAvdGVzdHMv
bWVkaWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwIGJlY2F1c2Ugbm93IHRoYXQgdGhlIGRi
IGlzIGluIEpTT04sIHdlIGRvIG5vdCBuZWVkIGEgc2NyaXB0IHRvIGNyZWF0ZSB0aGUgZGIuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9jcmVhdGUtaWQzLWRiLnBocDog
UmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9zZXJ2ZV92aWRl
by5weToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlcy9kaXItaGVscGVycy5waHA6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZXMvcG9ydGFiaWxpdHlMYXllci5w
aHA6IFJlbW92ZWQuCisKIDIwMjEtMDUtMDMgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgIm5vLXByZWZlcmVuY2UiIHZhbHVlIGZvciBwcmVmZXJzLWNvbG9y
LXNjaGVtZSBtZWRpYSBxdWVyeQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9y
ZXNvdXJjZXMvY3JlYXRlLWlkMy1kYi5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvY3JlYXRlLWlkMy1kYi5waHAJKHJldmlzaW9uIDI3Njg5
OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMt
ZGIucGhwCShub25leGlzdGVudCkKQEAgLTEsMTc3ICswLDAgQEAKLTw/cGhwCi0KLSAgICAvLyBU
aGlzIHNjcmlwdCBpcyBiYXNlZCBvbiB0aGUgd29yayBkb25lIGJ5IGdhZGdldGd1cnUKLSAgICAv
LyA8ZGF2aWRAdnVpc3RiaWpsLm5sPiBhdAotICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9nYWRn
ZXRndXJ1L1BIUC1TdHJlYW1pbmctQXVkaW8gYW5kIHJlbGVhc2VkCi0gICAgLy8gdW5kZXIgdGhl
IFB1YmxpYyBEb21haW4uCi0KLQotICAgIC8vIFRoaXMgc2NyaXB0IGNyZWF0ZXMsIG92ZXJ3cml0
aW5nIGlmIG5lZWRlZCwgdGhlICJtZXRhZGF0YS5kYiIKLSAgICAvLyBmaWxlIHVzZWQgYnkgc2Ny
aXB0cyBzdWNoIGFzICJzZXJ2ZS12aWRlby5weSIuCi0gICAgLy8KLSAgICAvLyBGb3IgY3JlYXRp
bmcgb3IgdXBkYXRpbmcgYW4gZXhpc3RpbmcgZmlsZSB5b3UgaGF2ZSB0byBydW4gdGhlCi0gICAg
Ly8gaHR0cCBzZXJ2ZXIgdXNlZCBieSB0aGUgdGVzdHMgd2l0aDoKLSAgICAvLwotICAgIC8vICQg
VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LWh0dHBkCi0gICAgLy8KLSAgICAvLyBUaGVuIHlvdSB3
aWxsIGp1c3QgaGF2ZSB0byB1c2UgYSBicm93c2VyIHRvIG9wZW4gYW4gVVJMIG9mIHRoZQotICAg
IC8vIHR5cGU6Ci0gICAgLy8KLSAgICAvLyBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWVkaWEvcmVz
b3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwP25hbWU9Li4vLi4vLi4vLi4vbWVkaWEvY29udGVudC9z
aWxlbmNlLndhdgotICAgIC8vCi0gICAgLy8gV2l0aCB0aGlzLCBhIG5ldyAibWV0YWRhYmEuZGIi
IGZpbGUgd2lsbCBiZSBjcmVhdGUgaW4gdGhlCi0gICAgLy8gZGlyZWN0b3J5IGNvbnRhaW5pbmcg
dGhlIHJlZmVycmVkIGZpbGUuIEluIHRoaXMgZXhhbXBsZSwgdGhlCi0gICAgLy8gZGF0YWJhc2Ug
d2lsbCBiZSBjcmVhdGVkIGF0OgotICAgIC8vCi0gICAgLy8gJCBMYXlvdXRUZXN0cy9tZWRpYS9j
b250ZW50L21ldGFkYXRhLmRiCi0KLQotICAgIHJlcXVpcmVfb25jZSAnLi4vLi4vcmVzb3VyY2Vz
L3BvcnRhYmlsaXR5TGF5ZXIucGhwJzsKLSAgICByZXF1aXJlX29uY2UgJy4uLy4uL3Jlc291cmNl
cy9kaXItaGVscGVycy5waHAnOwotCi0gICAgLy8gNTAwIG9uIGVycm9ycwotICAgICRodHRwU3Rh
dHVzID0gIjUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IiOwotICAgICRodG1sTWVzc2FnZSA9ICIi
OwotCi0gICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCJuYW1lIiwgJF9HRVQpKSB7Ci0gICAgICAg
IHRyaWdnZXJfZXJyb3IoIllvdSBoYXZlIG5vdCBzcGVjaWZpZWQgYSAnbmFtZScgcGFyYW1ldGVy
LiIsIEVfVVNFUl9XQVJOSU5HKTsKLSAgICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgfQotICAg
ICRtZWRpYURpcmVjdG9yeSA9IGRpcm5hbWUoJF9HRVRbIm5hbWUiXSk7Ci0KLSAgICBpZiAoIWlz
X2RpcigkbWVkaWFEaXJlY3RvcnkpKSB7Ci0gICAgICAgIHRyaWdnZXJfZXJyb3IoIlRoZSBwcm92
aWRlZCBkaXJlY3RvcnkgcGF0aCBkb2Vzbid0IGV4aXN0LiIsIEVfVVNFUl9XQVJOSU5HKTsKLSAg
ICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgfQotICAgICRkYXRhYmFzZUZpbGUgPSByZWFscGF0
aCgkbWVkaWFEaXJlY3RvcnkpIC4gIi9tZXRhZGF0YS5kYiI7Ci0KLSAgICBpZiAoZmlsZV9leGlz
dHMoJGRhdGFiYXNlRmlsZSkpIHsKLSAgICAgICAgdW5saW5rKCRkYXRhYmFzZUZpbGUpOwotICAg
ICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPkRlbGV0ZWQgcHJldmlvdXNs
eSBleGlzdGluZyBkYiBmaWxlIGF0OiAnIiAuICRkYXRhYmFzZUZpbGUgLiAiJyI7Ci0gICAgfQot
Ci0gICAgLy8gV2UgZG9uJ3QgaGF2ZSBnZXRpZDMgaW4gV2ViS2l0LiBJZiBub3QgY3VycmVudGx5
IHByZXNlbnQsIHdlCi0gICAgLy8gd2lsbCB0cnkgdG8gZG93bmxvYWQgaXQgbm93IGJlZm9yZSBt
YWtpbmcgdXNlIG9mIGl0LgotICAgIC8vCi0gICAgLy8gZ2V0aWQzIGlzIGF2YWlsYWJsZSBhdCBo
dHRwOi8vZ2V0aWQzLnNvdXJjZWZvcmdlLm5ldAotCi0gICAgJGdldElkM0Rlc3REaXIgPSAiZ2V0
aWQzIjsKLSAgICBpZiAoIWZpbGVfZXhpc3RzKCRnZXRJZDNEZXN0RGlyKSkgewotCi0gICAgICAg
ICR0bXBEaXIgPSB0bXBkaXIoRkFMU0UsICJwaHAiKTsKLSAgICAgICAgaWYgKCFpc19kaXIoJHRt
cERpcikpIHsKLSAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoIkltcG9zc2libGUgdG8gY3JlYXRl
IHRlbXBvcmFsIGRpcmVjdG9yeS4iLCBFX1VTRVJfV0FSTklORyk7Ci0gICAgICAgICAgICBnb3Rv
IGFuc3dlcmluZzsKLSAgICAgICAgfQotCi0gICAgICAgICRpZDNEZXN0UGF0aCA9ICR0bXBEaXIg
LiAiL2dldGlkMy56aXAiOwotICAgICAgICAkcGhwVmVyc2lvbiA9IGV4cGxvZGUoIi4iLCBQSFBf
VkVSU0lPTik7Ci0gICAgICAgIGlmICgoJHBocFZlcnNpb25bMF0gPiA0KSAmJiAoJHBocFZlcnNp
b25bMV0gPiAwKSkKLSAgICAgICAgICAgICRpZDNVcmwgPSAiaHR0cDovL3NvdXJjZWZvcmdlLm5l
dC9wcm9qZWN0cy9nZXRpZDMvZmlsZXMvZ2V0SUQzJTI4JTI5JTIwMS54LzEuOS43L2dldElEMy0x
LjkuNy56aXAvZG93bmxvYWQiOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICAkaWQzVXJsID0g
Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvZ2V0aWQzL2ZpbGVzL2dldElEMyUyOCUy
OSUyMDEueC8xLjcuMTAvZ2V0aWQzLTEuNy4xMC0yMDA5MDQyNi56aXAvZG93bmxvYWQiOwotICAg
ICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPmdldElkMyBub3QgaW4gdGhl
IHN5c3RlbS48cC8+RG93bmxvYWRpbmcgZnJvbTogJyIgLiAkaWQzVXJsIC4gIiciOwotCi0gICAg
ICAgICRjdHh0T3B0cyA9IGFycmF5KCJodHRwIiA9PgotICAgICAgICAgICAgYXJyYXkoCi0gICAg
ICAgICAgICAgICAgIm1ldGhvZCIgID0+ICJHRVQiLAotICAgICAgICAgICAgICAgICJ0aW1lb3V0
IiA9PiA2MCwKLSAgICAgICAgICAgICkKLSAgICAgICAgKTsKLSAgICAgICAgJGN0eHQgPSBzdHJl
YW1fY29udGV4dF9jcmVhdGUoJGN0eHRPcHRzKTsKLSAgICAgICAgJHNyYyA9IGZvcGVuKCRpZDNV
cmwsICJyYiIsIGZhbHNlLCAkY3R4dCk7Ci0gICAgICAgICRkZXN0ID0gZm9wZW4oJGlkM0Rlc3RQ
YXRoLCAid2IiKTsKLSAgICAgICAgJGNvcGllZCA9IHN0cmVhbV9jb3B5X3RvX3N0cmVhbSgkc3Jj
LCAkZGVzdCk7Ci0gICAgICAgIGZjbG9zZSgkc3JjKTsKLSAgICAgICAgZmNsb3NlKCRkZXN0KTsK
LSAgICAgICAgaWYgKCRjb3BpZWQgPT0gMCkgewotICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigi
SW1wb3NzaWJsZSB0byBjb3B5IHRoZSBsYXRlc3QgZ2V0aWQzIHppcCByZWxlYXNlIGZpbGUuIiwg
RV9VU0VSX1dBUk5JTkcpOwotICAgICAgICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgICAgIH0K
LSAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgZG93bmxv
YWRlZCB0bzogJyIgLiAkaWQzRGVzdFBhdGggLiAiJyI7Ci0KLSAgICAgICAgaWYgKCFleGVjKCJ1
bnppcCAiIC4gJGlkM0Rlc3RQYXRoIC4gIiAtZCAiIC4gJHRtcERpcikpIHsKLSAgICAgICAgICAg
IHRyaWdnZXJfZXJyb3IoIkltcG9zc2libGUgdG8gZXh0cmFjdCB0aGUgZG93bmxvYWRlZCB6aXAg
ZmlsZS4iLCBFX1VTRVJfV0FSTklORyk7Ci0gICAgICAgICAgICBnb3RvIGFuc3dlcmluZzsKLSAg
ICAgICAgfQotICAgICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPlppcCBm
aWxlIHN1Y2Nlc3NmdWxseSBleHRyYWN0ZWQuIjsKLQotICAgICAgICAkZ2V0SWQzU291cmNlRGly
ID0gZmlyc3RfZGlyKCRnZXRJZDNEZXN0RGlyLCAkdG1wRGlyKTsKLSAgICAgICAgaWYgKCEkZ2V0
SWQzU291cmNlRGlyKSB7Ci0gICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRv
IGZpbmQgdGhlIGdldGlkMyBkaXJlY3Rvcnkgd2l0aCB0aGUgUEhQIGNvZGUgdG8gY29weS4iLCBF
X1VTRVJfV0FSTklORyk7Ci0gICAgICAgICAgICBnb3RvIGFuc3dlcmluZzsKLSAgICAgICAgfQot
ICAgICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPmdldElkMyBkaXJlY3Rv
cnkgdG8gY29weSBmb3VuZCBhdDogJyIgLiAkZ2V0SWQzU291cmNlRGlyIC4gIiciOwotCi0KLSAg
ICAgICAgcmNvcHkoJGdldElkM1NvdXJjZURpciwgJGdldElkM0Rlc3REaXIpOwotICAgICAgICAk
aHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPmdldElkMyBkaXJlY3RvcnkgY29waWVk
IHRvIGl0cyBmaW5hbCBkZXN0aW5hdGlvbiBhdDogJyIgLiByZWFscGF0aCgkZ2V0SWQzU291cmNl
RGlyKSAuICInIjsKLQotICAgICAgICBycm1kaXIoJHRtcERpcik7Ci0gICAgICAgICRodG1sTWVz
c2FnZSA9ICRodG1sTWVzc2FnZSAuICI8cC8+RGVsZXRlZCBhbGwgdGVtcG9yYWwgZmlsZXMgYXQ6
ICciIC4gJHRtcERpciAuICInIjsKLSAgICB9Ci0KLQotICAgIC8vIGdldGlkMyBkb3dubG9hZGVk
LiBMZXQncyBjcmVhdGUgdGhlIGRhdGFiYXNlIGZpbGUuCi0gICAgcmVxdWlyZV9vbmNlKCJnZXRp
ZDMvZ2V0aWQzLnBocCIpOwotICAgICRnZXRJRDMgPSBuZXcgZ2V0SUQzOwotCi0gICAgJGlkM0Zp
bGVOYW1lcyA9IGFycmF5X2RpZmYoc2NhbmRpcigkbWVkaWFEaXJlY3RvcnkpLCBhcnJheSgiLiIs
ICIuLiIpKTsKLQotICAgIGZvcmVhY2ggKCRpZDNGaWxlTmFtZXMgYXMgJGlkM0ZpbGVOYW1lKSB7
Ci0gICAgICAgICRpZDMgPSAkZ2V0SUQzLT5hbmFseXplKCRtZWRpYURpcmVjdG9yeSAuICIvIiAu
ICRpZDNGaWxlTmFtZSk7Ci0gICAgICAgICRwbGF5ZmlsZSA9IGFycmF5KAotICAgICAgICAgICAg
ImZpbGVOYW1lIiA9PiAkaWQzWyJmaWxlbmFtZSJdLAotICAgICAgICAgICAgImZpbGVTaXplIiA9
PiAkaWQzWyJmaWxlc2l6ZSJdLAotICAgICAgICAgICAgInBsYXlUaW1lIiA9PiAkaWQzWyJwbGF5
dGltZV9zZWNvbmRzIl0sCi0gICAgICAgICAgICAiYXVkaW9TdGFydCIgPT4gJGlkM1siYXZkYXRh
b2Zmc2V0Il0sCi0gICAgICAgICAgICAiYXVkaW9FbmQiID0+ICRpZDNbImF2ZGF0YWVuZCJdLAot
ICAgICAgICAgICAgImF1ZGlvTGVuZ3RoIiA9PiAkaWQzWyJhdmRhdGFlbmQiXSAtICRpZDNbImF2
ZGF0YW9mZnNldCJdLAotICAgICAgICAgICAgImFydGlzdCIgPT4gJGlkM1sidGFncyJdWyJpZDN2
MiJdWyJhcnRpc3QiXVswXSwKLSAgICAgICAgICAgICJ0aXRsZSIgPT4gJGlkM1sidGFncyJdWyJp
ZDN2MiJdWyJ0aXRsZSJdWzBdLAotICAgICAgICAgICAgImJpdFJhdGUiID0+ICRpZDNbImF1ZGlv
Il1bImJpdHJhdGUiXSwKLSAgICAgICAgICAgICJtaW1lVHlwZSIgPT4gJGlkM1sibWltZV90eXBl
Il0sCi0gICAgICAgICAgICAiZmlsZUZvcm1hdCIgPT4gJGlkM1siZmlsZWZvcm1hdCJdLAotICAg
ICAgICApOwotICAgICAgICBpZiAoZW1wdHkoJHBsYXlmaWxlWyJhcnRpc3QiXSkgfHwgZW1wdHko
JHBsYXlmaWxlWyJ0aXRsZSJdKSkKLSAgICAgICAgICAgIGxpc3QoJHBsYXlmaWxlWyJhcnRpc3Qi
XSwgJHBsYXlmaWxlWyJ0aXRsZSJdKSA9IGV4cGxvZGUoIiAtICIsIHN1YnN0cigkcGxheWZpbGVb
ImZpbGVOYW1lIl0sIDAgLCAtNCkpOwotICAgICAgICAkcGxheUZpbGVzW10gPSAkcGxheWZpbGU7
Ci0gICAgfQotCi0gICAgaWYgKCFmaWxlX3B1dF9jb250ZW50cygkZGF0YWJhc2VGaWxlLCBzZXJp
YWxpemUoJHBsYXlGaWxlcykpKSB7Ci0gICAgICAgIHRyaWdnZXJfZXJyb3IoIkltcG9zc2libGUg
dG8gd3JpdGUgdGhlIGdldGlkMyBkYi4iLCBFX1VTRVJfV0FSTklORyk7Ci0gICAgICAgIGdvdG8g
YW5zd2VyaW5nOwotICAgIH0KLSAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAv
PldyaXR0ZW4gbmV3IGRhdGFiYXNlIGZpbGUgYXQ6ICciIC4gJGRhdGFiYXNlRmlsZSAuICInIjsK
LQotCi0gICAgLy8gRGF0YWJhc2UgY3JlYXRlZCwgZXZlcnl0aGluZyBPSy4KLSAgICAkaHR0cFN0
YXR1cyA9ICIyMDAgT0siOwotCi0KLWFuc3dlcmluZzoKLQotICAgIGhlYWRlcigiU3RhdHVzOiAi
IC4gJGh0dHBTdGF0dXMpOwotICAgIGhlYWRlcigiSFRUUC8xLjEgIiAuICRodHRwU3RhdHVzKTsK
LSAgICBoZWFkZXIoIkNvbm5lY3Rpb246IGNsb3NlIik7Ci0gICAgaGVhZGVyKCJDb250ZW50LVR5
cGU6IHRleHQvaHRtbCIpOwotCi0gICAgJGh0bWxNZXNzYWdlID0gIjxodG1sPjxib2R5PjxoMT4i
IC4gJGh0dHBTdGF0dXMgLiAiPC9oMT4iIC4gJGh0bWxNZXNzYWdlOwotCi0gICAgaWYgKCRodHRw
U3RhdHVzID09ICI1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yIikgewotICAgICAgICBpZiAoZnVu
Y3Rpb25fZXhpc3RzKCJlcnJvcl9nZXRfbGFzdCIpKSB7Ci0gICAgICAgICAgICAkZXJyb3JBcnJh
eSA9IGVycm9yX2dldF9sYXN0KCk7Ci0gICAgICAgICAgICBpZiAoJGVycm9yQXJyYXkpIHsKLSAg
ICAgICAgICAgICAgICAkaHRtbE1lc3NhZ2UgPSBzcHJpbnRmKCIlczxwLz5FcnJvciB0eXBlOiAl
ZDxwLz5FcnJvciBtZXNzYWdlOiAlczxwLz4iLgotICAgICAgICAgICAgICAgICAgICAiRXJyb3Ig
ZmlsZTogJXM8cC8+RXJyb3IgbGluZTogJWQiLAotICAgICAgICAgICAgICAgICAgICAkaHRtbE1l
c3NhZ2UsICRlcnJvckFycmF5WyJ0eXBlIl0sICRlcnJvckFycmF5WyJtZXNzYWdlIl0sCi0gICAg
ICAgICAgICAgICAgICAgICRlcnJvckFycmF5WyJmaWxlIl0sICRlcnJvckFycmF5WyJsaW5lIl0p
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgICRodG1sTWVzc2FnZSA9ICRo
dG1sTWVzc2FnZSAuICI8L2JvZHk+PGh0bWw+IjsKLQotICAgIHByaW50KCRodG1sTWVzc2FnZSk7
Ci0gICAgZmx1c2goKTsKLSAgICBleGl0OwotPz4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvcmVzb3VyY2VzL3NlcnZlX3ZpZGVvLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL3NlcnZlX3ZpZGVvLnB5CShyZXZpc2lvbiAy
NzY4OTkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9zZXJ2ZV92
aWRlby5weQkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDkgKzE0NCw2IEBAIGlmIHNldHRpbmdzWydz
ZXRJY3lEYXRhJ10gPT0gJ3llcyc6CiAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKHNldHRpbmdz
WydkYXRhYmFzZUZpbGUnXSk6CiAgICAgICAgICMgSWYgdGhlIG1ldGFkYXRhIGRhdGFiYXNlIGZp
bGUgZG9lc24ndCBleGlzdCBpdCBoYXMgdG8KICAgICAgICAgIyBiZSBjcmVhdGUgcHJldmlvdXNs
eS4KLSAgICAgICAgIwotICAgICAgICAjIENoZWNrIHRoZSBpbnN0cnVjdGlvbnMgYWJvdXQgaG93
IHRvIGNyZWF0ZSBpdCBmcm9tIHRoZQotICAgICAgICAjIGNyZWF0ZS1pZDMtZGIucGhwIHNjcmlw
dCBmaWxlIGluIHRoaXMgc2FtZSBkaXJlY3RvcnkuCiAKICAgICAgICAgc3lzLnN0ZGVyci53cml0
ZSgnVGhlIG1ldGFkYXRhIGRhdGFiYXNlIGRvZXNuXCd0IGV4aXN0LiBUbyBjcmVhdGUgb25lLCBj
aGVjayB0aGUgc2NyaXB0IFwnY3JlYXRlLWlkMy1kYi5waHBcJy5cbicpCiAgICAgICAgIGFuc3dl
cmluZygpCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9kaXItaGVscGVy
cy5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvZGly
LWhlbHBlcnMucGhwCShyZXZpc2lvbiAyNzY4OTkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlcy9kaXItaGVscGVycy5waHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw3NyArMCwwIEBA
Ci08P3BocAotcmVxdWlyZV9vbmNlICdwb3J0YWJpbGl0eUxheWVyLnBocCc7Ci0KLWZ1bmN0aW9u
IHRtcGRpcigkZGlyPUZBTFNFLCAkcHJlZml4PSdwaHAnKQotewotICAgIGlmICgkZGlyKSB7Ci0g
ICAgICAgICR0bXBGaWxlID0gdGVtcG5hbSgkZGlyLCAkcHJlZml4KTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICBpZiAoIXN5c19nZXRfdGVtcF9kaXIoKSkKLSAgICAgICAgICAgIHJldHVybiBGQUxT
RTsKLSAgICAgICAgJHRtcEZpbGUgPSB0ZW1wbmFtKHN5c19nZXRfdGVtcF9kaXIoKSwgJHByZWZp
eCk7Ci0gICAgfQotCi0gICAgaWYgKCFmaWxlX2V4aXN0cygkdG1wRmlsZSkpCi0gICAgICAgIHJl
dHVybiBGQUxTRTsKLSAgICB1bmxpbmsoJHRtcEZpbGUpOwotICAgIG1rZGlyKCR0bXBGaWxlKTsK
LSAgICBpZiAoIWlzX2RpcigkdG1wRmlsZSkpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLQotICAg
IHJldHVybiAkdG1wRmlsZTsKLX0KLQotZnVuY3Rpb24gcnJtZGlyKCRkaXIpCi17Ci0gICAgaWYg
KGlzX2RpcigkZGlyKSkgewotICAgICAgICAkb2JqZWN0cyA9IGFycmF5X2RpZmYoc2NhbmRpcigk
ZGlyKSwgYXJyYXkoIi4iLCAiLi4iKSk7Ci0gICAgICAgIGZvcmVhY2ggKCRvYmplY3RzIGFzICRv
YmplY3QpCi0gICAgICAgICAgICAoaXNfZGlyKCRkaXIgLiAiLyIgLiAkb2JqZWN0KSkgPyBycm1k
aXIoJGRpciAuICIvIiAuICRvYmplY3QpIDogdW5saW5rKCRkaXIgLiAiLyIgLiAkb2JqZWN0KTsK
LSAgICAgICAgcmVzZXQoJG9iamVjdHMpOwotICAgICAgICBybWRpcigkZGlyKTsKLSAgICB9Ci19
Ci0KLWZ1bmN0aW9uIHJjb3B5KCRzcmMsICRkc3QpCi17Ci0gICAgaWYgKGZpbGVfZXhpc3RzKCRk
c3QpKQotICAgICAgICBycm1kaXIoJGRzdCk7Ci0gICAgaWYgKGlzX2Rpcigkc3JjKSkgewotICAg
ICAgICBta2RpcigkZHN0KTsKLSAgICAgICAgJGZpbGVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRz
cmMpLCBhcnJheSgiLiIsICIuLiIpKTsKLSAgICAgICAgZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxl
KQotICAgICAgICAgIHJjb3B5KCIkc3JjLyRmaWxlIiwgIiRkc3QvJGZpbGUiKTsKLSAgICB9IGVs
c2UgaWYgKGZpbGVfZXhpc3RzKCRzcmMpKSB7Ci0gICAgICAgIGNvcHkoJHNyYywgJGRzdCk7Ci0g
ICAgfQotfQotCi1mdW5jdGlvbiBmaXJzdF9kaXIoJG5hbWUsICRkaXI9RkFMU0UpCi17Ci0gICAg
JHJlc3VsdCA9IEZBTFNFOwotICAgICRyb290ID0gJGRpciA/ICRkaXIgOiAiLi8iOwotICAgICRx
dWV1ZSA9IGFycmF5KHJlYWxwYXRoKCRyb290KSk7Ci0KLSAgICB3aGlsZSAoc2l6ZW9mKCRxdWV1
ZSkpIHsKLSAgICAgICAgJHZlcnRleCA9IGFycmF5X3BvcCgkcXVldWUpOwotICAgICAgICAkb2Jq
ZWN0cyA9IGFycmF5X2RpZmYoc2NhbmRpcigkdmVydGV4KSwgYXJyYXkoIi4iLCAiLi4iKSk7Ci0g
ICAgICAgIGZvcmVhY2ggKCRvYmplY3RzIGFzICRvYmplY3QpIHsKLSAgICAgICAgICAgICRmdWxs
UGF0aCA9ICR2ZXJ0ZXggLiAiLyIgLiAkb2JqZWN0OwotICAgICAgICAgICAgaWYgKGlzX2Rpcigk
ZnVsbFBhdGgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCRuYW1lID09IGJhc2VuYW1lKCRmdWxs
UGF0aCkpIHsKLSAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCA9ICRmdWxsUGF0aDsKLSAgICAg
ICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGFycmF5X3Vuc2hpZnQoJHF1ZXVlLCAkZnVsbFBhdGgpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotCi1jbGVh
bnVwOgotCi0gICAgcmV0dXJuICRyZXN1bHQ7Ci19Ci0/PgotCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlcy9wb3J0YWJpbGl0eUxheWVyLnBocAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9wb3J0YWJpbGl0eUxheWVyLnBocAkocmV2
aXNpb24gMjc2ODk5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvcG9ydGFi
aWxpdHlMYXllci5waHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw2OCArMCwwIEBACi08P3BocAotCi1p
ZiAoIWZ1bmN0aW9uX2V4aXN0cygnc3lzX2dldF90ZW1wX2RpcicpKSB7Ci0gICAgLy8gQmFzZWQg
b24gaHR0cDovL3d3dy5waHBpdC5uZXQvYXJ0aWNsZS9jcmVhdGluZy16aXAtdGFyLWFyY2hpdmVz
LWR5bmFtaWNhbGx5LXBocC8yLwotICAgIC8vIElmIHRoZSBidWlsdGluIFBIUCBzeXNfZ2V0X3Rl
bXBfZGlyIGRvZXNuJ3QgZXhpc3QsIHdlIHJlcGxhY2UgaXQgd2l0aCBvbmUgdGhhdCB3aWxsCi0g
ICAgLy8gdHJ5IHRvIGd1ZXNzIGZyb20gdGhlIGVudmlyb25tZW50LiAgU2luY2Ugc3lzX2dldF90
ZW1wX2RpcigpIGRvZXNuJ3QgcmV0dXJuIGEgdHJhaWxpbmcKLSAgICAvLyBzbGFzaCBvbiBhbGwg
c3lzdGVtIChzZWUgY29tbWVudCBhdCBodHRwOi8vdXMucGhwLm5ldC9zeXNfZ2V0X3RlbXBfZGly
KSwgd2UgZG9uJ3QKLSAgICAvLyBhcHBlbmQgYSB0cmFpbGluZyBzbGFzaCwgYW5kIGV4cGVjdCBj
YWxsZXJzIHRvIGFwcGVuZCBvbmUgd2hlbiBuZWVkZWQuCi0gICAgZnVuY3Rpb24gc3lzX2dldF90
ZW1wX2RpcigpCi0gICAgewotICAgICAgICAvLyBUcnkgdG8gZ2V0IGZyb20gZW52aXJvbm1lbnQg
dmFyaWFibGUKLSAgICAgICAgaWYgKCFlbXB0eSgkX0VOVlsnVE1QJ10pKQotICAgICAgICAgICAg
cmV0dXJuIHJlYWxwYXRoKCRfRU5WWydUTVAnXSk7Ci0gICAgICAgIGlmICghZW1wdHkoJF9FTlZb
J1RNUERJUiddKSkKLSAgICAgICAgICAgIHJldHVybiByZWFscGF0aCgkX0VOVlsnVE1QRElSJ10p
OwotICAgICAgICBpZiAoIWVtcHR5KCRfRU5WWydURU1QJ10pKQotICAgICAgICAgICAgcmV0dXJu
IHJlYWxwYXRoKCAkX0VOVlsnVEVNUCddKTsKLSAgICAgICAgcmV0dXJuICIvdG1wIjsKLSAgICB9
Ci19Ci0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdmaWxlX3B1dF9jb250ZW50cycpKSB7Ci0gICAg
ZnVuY3Rpb24gZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCAkZGF0YSkKLSAgICB7Ci0gICAg
ICAgICRoYW5kbGUgPSBmb3BlbigkZmlsZW5hbWUsICJ3Iik7Ci0gICAgICAgIGlmICghJGhhbmRs
ZSkKLSAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAgICAgJGJ5dGVzV3JpdHRlbiA9IGZ3
cml0ZSgkaGFuZGxlLCAkZGF0YSk7Ci0gICAgICAgIGlmICghZmNsb3NlKCRoYW5kbGUpKQotICAg
ICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgICAgICByZXR1cm4gJGJ5dGVzV3JpdHRlbjsKLSAg
ICB9Ci19Ci0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdzdHJlYW1fY29weV90b19zdHJlYW0nKSkg
ewotICAgIGZ1bmN0aW9uIHN0cmVhbV9jb3B5X3RvX3N0cmVhbSgkc291cmNlLCAkZGVzdCkKLSAg
ICB7Ci0gICAgICAgICRyZXN1bHQgPSAwOwotICAgICAgICB3aGlsZSAoIWZlb2YoJHNvdXJjZSkp
IHsKLSAgICAgICAgICAgICRieXRlc1dyaXR0ZW4gPSBmd3JpdGUoJGRlc3QsIGZyZWFkKCRzb3Vy
Y2UsIDgxOTIpKTsKLSAgICAgICAgICAgIGlmICghJGJ5dGVzV3JpdHRlbikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gRkFMU0U7Ci0gICAgICAgICAgICAkcmVzdWx0ID0gJHJlc3VsdCArICRieXRl
c1dyaXR0ZW47Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gJHJlc3VsdDsKLSAgICB9Ci19
Ci0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdzY2FuZGlyJykpIHsKLSAgICBmdW5jdGlvbiBzY2Fu
ZGlyKCRkaXIpCi0gICAgewotICAgICAgICBpZiAoIWlzX2RpcigkZGlyKSkKLSAgICAgICAgICAg
IHJldHVybiBGQUxTRTsKLQotICAgICAgICAkZGggPSBvcGVuZGlyKCRkaXIpOwotICAgICAgICB3
aGlsZSAoJGZpbGVuYW1lID0gcmVhZGRpcigkZGgpKSB7Ci0gICAgICAgICAgICAkZmlsZXNbXSA9
ICRmaWxlbmFtZTsKLSAgICAgICAgfQotCi0gICAgICAgIGNsb3NlZGlyKCRkaCk7Ci0gICAgICAg
IHNvcnQoJGZpbGVzKTsKLQotICAgICAgICByZXR1cm4gJGZpbGVzOwotICAgIH0KLX0KLQotPz4K
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL3Bv
cnRhYmlsaXR5TGF5ZXIucGhwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmV4ZWN1dGFibGUKIyMg
LTEgKzAsMCAjIwotKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428175</attachid>
            <date>2021-05-10 08:56:05 -0700</date>
            <delta_ts>2021-05-10 09:02:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224561-20210510115604.patch</filename>
            <type>text/plain</type>
            <size>25927</size>
            <attacher name="Chris Gambrell">cgambrell</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI3NzI2MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTEwICBDaHJpcyBHYW1icmVsbCAg
PGNnYW1icmVsbEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xheW91dFRlc3RzXSBSZXBsYWNlIGh0
dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwIHJlc3VsdCB3aXRoIEpT
T04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDU2
MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzY2NTMwNTQ+CisKKyAgICAgICAgUmVwbGFjaW5n
IHRoZSBjcmVhdGlvbiBvZiBtZXRhZGF0YS5kYiB3aXRoIEpTT04gaW50byBhIG5ldyBmaWxlIG5h
bWVkIG1ldGFkYXRhLmpzb24uIFRoaXMgc3RhbmRhbG9uZSBzY3JpcHQgcmVtYWlucyBpbiBQSFAg
dG8gYmUgYWJsZSB0byBzdGlsbCB1c2UgZ2V0aWQzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvY3Jl
YXRlLWlkMy1kYi5waHA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZXMv
ZGlyLWhlbHBlcnMucGhwOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2Vz
L3BvcnRhYmlsaXR5TGF5ZXIucGhwOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL2NvbnRlbnQv
Y3JlYXRlLWlkMy1kYi5waHA6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwLgorCiAyMDIxLTA1LTEwICBQaGlsaXBwZSBO
b3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBmYXN0
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtdmlkZW8tdHJhY2tzLWRpc2Fi
bGVkLmh0bWwgZmFpbHMKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL2NyZWF0ZS1pZDMtZGIucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwCShyZXZpc2lvbiAyNzcwOTgpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9jcmVhdGUtaWQzLWRiLnBo
cAkobm9uZXhpc3RlbnQpCkBAIC0xLDE3NyArMCwwIEBACi08P3BocAotCi0gICAgLy8gVGhpcyBz
Y3JpcHQgaXMgYmFzZWQgb24gdGhlIHdvcmsgZG9uZSBieSBnYWRnZXRndXJ1Ci0gICAgLy8gPGRh
dmlkQHZ1aXN0YmlqbC5ubD4gYXQKLSAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2FkZ2V0Z3Vy
dS9QSFAtU3RyZWFtaW5nLUF1ZGlvIGFuZCByZWxlYXNlZAotICAgIC8vIHVuZGVyIHRoZSBQdWJs
aWMgRG9tYWluLgotCi0KLSAgICAvLyBUaGlzIHNjcmlwdCBjcmVhdGVzLCBvdmVyd3JpdGluZyBp
ZiBuZWVkZWQsIHRoZSAibWV0YWRhdGEuZGIiCi0gICAgLy8gZmlsZSB1c2VkIGJ5IHNjcmlwdHMg
c3VjaCBhcyAic2VydmUtdmlkZW8ucHkiLgotICAgIC8vCi0gICAgLy8gRm9yIGNyZWF0aW5nIG9y
IHVwZGF0aW5nIGFuIGV4aXN0aW5nIGZpbGUgeW91IGhhdmUgdG8gcnVuIHRoZQotICAgIC8vIGh0
dHAgc2VydmVyIHVzZWQgYnkgdGhlIHRlc3RzIHdpdGg6Ci0gICAgLy8KLSAgICAvLyAkIFRvb2xz
L1NjcmlwdHMvcnVuLXdlYmtpdC1odHRwZAotICAgIC8vCi0gICAgLy8gVGhlbiB5b3Ugd2lsbCBq
dXN0IGhhdmUgdG8gdXNlIGEgYnJvd3NlciB0byBvcGVuIGFuIFVSTCBvZiB0aGUKLSAgICAvLyB0
eXBlOgotICAgIC8vCi0gICAgLy8gaHR0cDovLzEyNy4wLjAuMTo4MDAwL21lZGlhL3Jlc291cmNl
cy9jcmVhdGUtaWQzLWRiLnBocD9uYW1lPS4uLy4uLy4uLy4uL21lZGlhL2NvbnRlbnQvc2lsZW5j
ZS53YXYKLSAgICAvLwotICAgIC8vIFdpdGggdGhpcywgYSBuZXcgIm1ldGFkYWJhLmRiIiBmaWxl
IHdpbGwgYmUgY3JlYXRlIGluIHRoZQotICAgIC8vIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBy
ZWZlcnJlZCBmaWxlLiBJbiB0aGlzIGV4YW1wbGUsIHRoZQotICAgIC8vIGRhdGFiYXNlIHdpbGwg
YmUgY3JlYXRlZCBhdDoKLSAgICAvLwotICAgIC8vICQgTGF5b3V0VGVzdHMvbWVkaWEvY29udGVu
dC9tZXRhZGF0YS5kYgotCi0KLSAgICByZXF1aXJlX29uY2UgJy4uLy4uL3Jlc291cmNlcy9wb3J0
YWJpbGl0eUxheWVyLnBocCc7Ci0gICAgcmVxdWlyZV9vbmNlICcuLi8uLi9yZXNvdXJjZXMvZGly
LWhlbHBlcnMucGhwJzsKLQotICAgIC8vIDUwMCBvbiBlcnJvcnMKLSAgICAkaHR0cFN0YXR1cyA9
ICI1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yIjsKLSAgICAkaHRtbE1lc3NhZ2UgPSAiIjsKLQot
ICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygibmFtZSIsICRfR0VUKSkgewotICAgICAgICB0cmln
Z2VyX2Vycm9yKCJZb3UgaGF2ZSBub3Qgc3BlY2lmaWVkIGEgJ25hbWUnIHBhcmFtZXRlci4iLCBF
X1VTRVJfV0FSTklORyk7Ci0gICAgICAgIGdvdG8gYW5zd2VyaW5nOwotICAgIH0KLSAgICAkbWVk
aWFEaXJlY3RvcnkgPSBkaXJuYW1lKCRfR0VUWyJuYW1lIl0pOwotCi0gICAgaWYgKCFpc19kaXIo
JG1lZGlhRGlyZWN0b3J5KSkgewotICAgICAgICB0cmlnZ2VyX2Vycm9yKCJUaGUgcHJvdmlkZWQg
ZGlyZWN0b3J5IHBhdGggZG9lc24ndCBleGlzdC4iLCBFX1VTRVJfV0FSTklORyk7Ci0gICAgICAg
IGdvdG8gYW5zd2VyaW5nOwotICAgIH0KLSAgICAkZGF0YWJhc2VGaWxlID0gcmVhbHBhdGgoJG1l
ZGlhRGlyZWN0b3J5KSAuICIvbWV0YWRhdGEuZGIiOwotCi0gICAgaWYgKGZpbGVfZXhpc3RzKCRk
YXRhYmFzZUZpbGUpKSB7Ci0gICAgICAgIHVubGluaygkZGF0YWJhc2VGaWxlKTsKLSAgICAgICAg
JGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5EZWxldGVkIHByZXZpb3VzbHkgZXhp
c3RpbmcgZGIgZmlsZSBhdDogJyIgLiAkZGF0YWJhc2VGaWxlIC4gIiciOwotICAgIH0KLQotICAg
IC8vIFdlIGRvbid0IGhhdmUgZ2V0aWQzIGluIFdlYktpdC4gSWYgbm90IGN1cnJlbnRseSBwcmVz
ZW50LCB3ZQotICAgIC8vIHdpbGwgdHJ5IHRvIGRvd25sb2FkIGl0IG5vdyBiZWZvcmUgbWFraW5n
IHVzZSBvZiBpdC4KLSAgICAvLwotICAgIC8vIGdldGlkMyBpcyBhdmFpbGFibGUgYXQgaHR0cDov
L2dldGlkMy5zb3VyY2Vmb3JnZS5uZXQKLQotICAgICRnZXRJZDNEZXN0RGlyID0gImdldGlkMyI7
Ci0gICAgaWYgKCFmaWxlX2V4aXN0cygkZ2V0SWQzRGVzdERpcikpIHsKLQotICAgICAgICAkdG1w
RGlyID0gdG1wZGlyKEZBTFNFLCAicGhwIik7Ci0gICAgICAgIGlmICghaXNfZGlyKCR0bXBEaXIp
KSB7Ci0gICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIGNyZWF0ZSB0ZW1w
b3JhbCBkaXJlY3RvcnkuIiwgRV9VU0VSX1dBUk5JTkcpOwotICAgICAgICAgICAgZ290byBhbnN3
ZXJpbmc7Ci0gICAgICAgIH0KLQotICAgICAgICAkaWQzRGVzdFBhdGggPSAkdG1wRGlyIC4gIi9n
ZXRpZDMuemlwIjsKLSAgICAgICAgJHBocFZlcnNpb24gPSBleHBsb2RlKCIuIiwgUEhQX1ZFUlNJ
T04pOwotICAgICAgICBpZiAoKCRwaHBWZXJzaW9uWzBdID4gNCkgJiYgKCRwaHBWZXJzaW9uWzFd
ID4gMCkpCi0gICAgICAgICAgICAkaWQzVXJsID0gImh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJv
amVjdHMvZ2V0aWQzL2ZpbGVzL2dldElEMyUyOCUyOSUyMDEueC8xLjkuNy9nZXRJRDMtMS45Ljcu
emlwL2Rvd25sb2FkIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgJGlkM1VybCA9ICJodHRw
Oi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2dldGlkMy9maWxlcy9nZXRJRDMlMjglMjklMjAx
LngvMS43LjEwL2dldGlkMy0xLjcuMTAtMjAwOTA0MjYuemlwL2Rvd25sb2FkIjsKLSAgICAgICAg
JGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgbm90IGluIHRoZSBzeXN0
ZW0uPHAvPkRvd25sb2FkaW5nIGZyb206ICciIC4gJGlkM1VybCAuICInIjsKLQotICAgICAgICAk
Y3R4dE9wdHMgPSBhcnJheSgiaHR0cCIgPT4KLSAgICAgICAgICAgIGFycmF5KAotICAgICAgICAg
ICAgICAgICJtZXRob2QiICA9PiAiR0VUIiwKLSAgICAgICAgICAgICAgICAidGltZW91dCIgPT4g
NjAsCi0gICAgICAgICAgICApCi0gICAgICAgICk7Ci0gICAgICAgICRjdHh0ID0gc3RyZWFtX2Nv
bnRleHRfY3JlYXRlKCRjdHh0T3B0cyk7Ci0gICAgICAgICRzcmMgPSBmb3BlbigkaWQzVXJsLCAi
cmIiLCBmYWxzZSwgJGN0eHQpOwotICAgICAgICAkZGVzdCA9IGZvcGVuKCRpZDNEZXN0UGF0aCwg
IndiIik7Ci0gICAgICAgICRjb3BpZWQgPSBzdHJlYW1fY29weV90b19zdHJlYW0oJHNyYywgJGRl
c3QpOwotICAgICAgICBmY2xvc2UoJHNyYyk7Ci0gICAgICAgIGZjbG9zZSgkZGVzdCk7Ci0gICAg
ICAgIGlmICgkY29waWVkID09IDApIHsKLSAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoIkltcG9z
c2libGUgdG8gY29weSB0aGUgbGF0ZXN0IGdldGlkMyB6aXAgcmVsZWFzZSBmaWxlLiIsIEVfVVNF
Ul9XQVJOSU5HKTsKLSAgICAgICAgICAgIGdvdG8gYW5zd2VyaW5nOwotICAgICAgICB9Ci0gICAg
ICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAuICI8cC8+Z2V0SWQzIGRvd25sb2FkZWQg
dG86ICciIC4gJGlkM0Rlc3RQYXRoIC4gIiciOwotCi0gICAgICAgIGlmICghZXhlYygidW56aXAg
IiAuICRpZDNEZXN0UGF0aCAuICIgLWQgIiAuICR0bXBEaXIpKSB7Ci0gICAgICAgICAgICB0cmln
Z2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIGV4dHJhY3QgdGhlIGRvd25sb2FkZWQgemlwIGZpbGUu
IiwgRV9VU0VSX1dBUk5JTkcpOwotICAgICAgICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgICAg
IH0KLSAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5aaXAgZmlsZSBz
dWNjZXNzZnVsbHkgZXh0cmFjdGVkLiI7Ci0KLSAgICAgICAgJGdldElkM1NvdXJjZURpciA9IGZp
cnN0X2RpcigkZ2V0SWQzRGVzdERpciwgJHRtcERpcik7Ci0gICAgICAgIGlmICghJGdldElkM1Nv
dXJjZURpcikgewotICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigiSW1wb3NzaWJsZSB0byBmaW5k
IHRoZSBnZXRpZDMgZGlyZWN0b3J5IHdpdGggdGhlIFBIUCBjb2RlIHRvIGNvcHkuIiwgRV9VU0VS
X1dBUk5JTkcpOwotICAgICAgICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgICAgIH0KLSAgICAg
ICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgZGlyZWN0b3J5IHRv
IGNvcHkgZm91bmQgYXQ6ICciIC4gJGdldElkM1NvdXJjZURpciAuICInIjsKLQotCi0gICAgICAg
IHJjb3B5KCRnZXRJZDNTb3VyY2VEaXIsICRnZXRJZDNEZXN0RGlyKTsKLSAgICAgICAgJGh0bWxN
ZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgZGlyZWN0b3J5IGNvcGllZCB0byBp
dHMgZmluYWwgZGVzdGluYXRpb24gYXQ6ICciIC4gcmVhbHBhdGgoJGdldElkM1NvdXJjZURpcikg
LiAiJyI7Ci0KLSAgICAgICAgcnJtZGlyKCR0bXBEaXIpOwotICAgICAgICAkaHRtbE1lc3NhZ2Ug
PSAkaHRtbE1lc3NhZ2UgLiAiPHAvPkRlbGV0ZWQgYWxsIHRlbXBvcmFsIGZpbGVzIGF0OiAnIiAu
ICR0bXBEaXIgLiAiJyI7Ci0gICAgfQotCi0KLSAgICAvLyBnZXRpZDMgZG93bmxvYWRlZC4gTGV0
J3MgY3JlYXRlIHRoZSBkYXRhYmFzZSBmaWxlLgotICAgIHJlcXVpcmVfb25jZSgiZ2V0aWQzL2dl
dGlkMy5waHAiKTsKLSAgICAkZ2V0SUQzID0gbmV3IGdldElEMzsKLQotICAgICRpZDNGaWxlTmFt
ZXMgPSBhcnJheV9kaWZmKHNjYW5kaXIoJG1lZGlhRGlyZWN0b3J5KSwgYXJyYXkoIi4iLCAiLi4i
KSk7Ci0KLSAgICBmb3JlYWNoICgkaWQzRmlsZU5hbWVzIGFzICRpZDNGaWxlTmFtZSkgewotICAg
ICAgICAkaWQzID0gJGdldElEMy0+YW5hbHl6ZSgkbWVkaWFEaXJlY3RvcnkgLiAiLyIgLiAkaWQz
RmlsZU5hbWUpOwotICAgICAgICAkcGxheWZpbGUgPSBhcnJheSgKLSAgICAgICAgICAgICJmaWxl
TmFtZSIgPT4gJGlkM1siZmlsZW5hbWUiXSwKLSAgICAgICAgICAgICJmaWxlU2l6ZSIgPT4gJGlk
M1siZmlsZXNpemUiXSwKLSAgICAgICAgICAgICJwbGF5VGltZSIgPT4gJGlkM1sicGxheXRpbWVf
c2Vjb25kcyJdLAotICAgICAgICAgICAgImF1ZGlvU3RhcnQiID0+ICRpZDNbImF2ZGF0YW9mZnNl
dCJdLAotICAgICAgICAgICAgImF1ZGlvRW5kIiA9PiAkaWQzWyJhdmRhdGFlbmQiXSwKLSAgICAg
ICAgICAgICJhdWRpb0xlbmd0aCIgPT4gJGlkM1siYXZkYXRhZW5kIl0gLSAkaWQzWyJhdmRhdGFv
ZmZzZXQiXSwKLSAgICAgICAgICAgICJhcnRpc3QiID0+ICRpZDNbInRhZ3MiXVsiaWQzdjIiXVsi
YXJ0aXN0Il1bMF0sCi0gICAgICAgICAgICAidGl0bGUiID0+ICRpZDNbInRhZ3MiXVsiaWQzdjIi
XVsidGl0bGUiXVswXSwKLSAgICAgICAgICAgICJiaXRSYXRlIiA9PiAkaWQzWyJhdWRpbyJdWyJi
aXRyYXRlIl0sCi0gICAgICAgICAgICAibWltZVR5cGUiID0+ICRpZDNbIm1pbWVfdHlwZSJdLAot
ICAgICAgICAgICAgImZpbGVGb3JtYXQiID0+ICRpZDNbImZpbGVmb3JtYXQiXSwKLSAgICAgICAg
KTsKLSAgICAgICAgaWYgKGVtcHR5KCRwbGF5ZmlsZVsiYXJ0aXN0Il0pIHx8IGVtcHR5KCRwbGF5
ZmlsZVsidGl0bGUiXSkpCi0gICAgICAgICAgICBsaXN0KCRwbGF5ZmlsZVsiYXJ0aXN0Il0sICRw
bGF5ZmlsZVsidGl0bGUiXSkgPSBleHBsb2RlKCIgLSAiLCBzdWJzdHIoJHBsYXlmaWxlWyJmaWxl
TmFtZSJdLCAwICwgLTQpKTsKLSAgICAgICAgJHBsYXlGaWxlc1tdID0gJHBsYXlmaWxlOwotICAg
IH0KLQotICAgIGlmICghZmlsZV9wdXRfY29udGVudHMoJGRhdGFiYXNlRmlsZSwgc2VyaWFsaXpl
KCRwbGF5RmlsZXMpKSkgewotICAgICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIHdy
aXRlIHRoZSBnZXRpZDMgZGIuIiwgRV9VU0VSX1dBUk5JTkcpOwotICAgICAgICBnb3RvIGFuc3dl
cmluZzsKLSAgICB9Ci0gICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5Xcml0
dGVuIG5ldyBkYXRhYmFzZSBmaWxlIGF0OiAnIiAuICRkYXRhYmFzZUZpbGUgLiAiJyI7Ci0KLQot
ICAgIC8vIERhdGFiYXNlIGNyZWF0ZWQsIGV2ZXJ5dGhpbmcgT0suCi0gICAgJGh0dHBTdGF0dXMg
PSAiMjAwIE9LIjsKLQotCi1hbnN3ZXJpbmc6Ci0KLSAgICBoZWFkZXIoIlN0YXR1czogIiAuICRo
dHRwU3RhdHVzKTsKLSAgICBoZWFkZXIoIkhUVFAvMS4xICIgLiAkaHR0cFN0YXR1cyk7Ci0gICAg
aGVhZGVyKCJDb25uZWN0aW9uOiBjbG9zZSIpOwotICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiB0
ZXh0L2h0bWwiKTsKLQotICAgICRodG1sTWVzc2FnZSA9ICI8aHRtbD48Ym9keT48aDE+IiAuICRo
dHRwU3RhdHVzIC4gIjwvaDE+IiAuICRodG1sTWVzc2FnZTsKLQotICAgIGlmICgkaHR0cFN0YXR1
cyA9PSAiNTAwIEludGVybmFsIFNlcnZlciBFcnJvciIpIHsKLSAgICAgICAgaWYgKGZ1bmN0aW9u
X2V4aXN0cygiZXJyb3JfZ2V0X2xhc3QiKSkgewotICAgICAgICAgICAgJGVycm9yQXJyYXkgPSBl
cnJvcl9nZXRfbGFzdCgpOwotICAgICAgICAgICAgaWYgKCRlcnJvckFycmF5KSB7Ci0gICAgICAg
ICAgICAgICAgJGh0bWxNZXNzYWdlID0gc3ByaW50ZigiJXM8cC8+RXJyb3IgdHlwZTogJWQ8cC8+
RXJyb3IgbWVzc2FnZTogJXM8cC8+Ii4KLSAgICAgICAgICAgICAgICAgICAgIkVycm9yIGZpbGU6
ICVzPHAvPkVycm9yIGxpbmU6ICVkIiwKLSAgICAgICAgICAgICAgICAgICAgJGh0bWxNZXNzYWdl
LCAkZXJyb3JBcnJheVsidHlwZSJdLCAkZXJyb3JBcnJheVsibWVzc2FnZSJdLAotICAgICAgICAg
ICAgICAgICAgICAkZXJyb3JBcnJheVsiZmlsZSJdLCAkZXJyb3JBcnJheVsibGluZSJdKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1l
c3NhZ2UgLiAiPC9ib2R5PjxodG1sPiI7Ci0KLSAgICBwcmludCgkaHRtbE1lc3NhZ2UpOwotICAg
IGZsdXNoKCk7Ci0gICAgZXhpdDsKLT8+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlcy9kaXItaGVscGVycy5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZXMvZGlyLWhlbHBlcnMucGhwCShyZXZpc2lvbiAyNzcwOTgpCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9kaXItaGVscGVycy5waHAJKG5vbmV4aXN0ZW50
KQpAQCAtMSw3NyArMCwwIEBACi08P3BocAotcmVxdWlyZV9vbmNlICdwb3J0YWJpbGl0eUxheWVy
LnBocCc7Ci0KLWZ1bmN0aW9uIHRtcGRpcigkZGlyPUZBTFNFLCAkcHJlZml4PSdwaHAnKQotewot
ICAgIGlmICgkZGlyKSB7Ci0gICAgICAgICR0bXBGaWxlID0gdGVtcG5hbSgkZGlyLCAkcHJlZml4
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoIXN5c19nZXRfdGVtcF9kaXIoKSkKLSAgICAg
ICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAgICAgJHRtcEZpbGUgPSB0ZW1wbmFtKHN5c19nZXRf
dGVtcF9kaXIoKSwgJHByZWZpeCk7Ci0gICAgfQotCi0gICAgaWYgKCFmaWxlX2V4aXN0cygkdG1w
RmlsZSkpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLSAgICB1bmxpbmsoJHRtcEZpbGUpOwotICAg
IG1rZGlyKCR0bXBGaWxlKTsKLSAgICBpZiAoIWlzX2RpcigkdG1wRmlsZSkpCi0gICAgICAgIHJl
dHVybiBGQUxTRTsKLQotICAgIHJldHVybiAkdG1wRmlsZTsKLX0KLQotZnVuY3Rpb24gcnJtZGly
KCRkaXIpCi17Ci0gICAgaWYgKGlzX2RpcigkZGlyKSkgewotICAgICAgICAkb2JqZWN0cyA9IGFy
cmF5X2RpZmYoc2NhbmRpcigkZGlyKSwgYXJyYXkoIi4iLCAiLi4iKSk7Ci0gICAgICAgIGZvcmVh
Y2ggKCRvYmplY3RzIGFzICRvYmplY3QpCi0gICAgICAgICAgICAoaXNfZGlyKCRkaXIgLiAiLyIg
LiAkb2JqZWN0KSkgPyBycm1kaXIoJGRpciAuICIvIiAuICRvYmplY3QpIDogdW5saW5rKCRkaXIg
LiAiLyIgLiAkb2JqZWN0KTsKLSAgICAgICAgcmVzZXQoJG9iamVjdHMpOwotICAgICAgICBybWRp
cigkZGlyKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHJjb3B5KCRzcmMsICRkc3QpCi17Ci0gICAg
aWYgKGZpbGVfZXhpc3RzKCRkc3QpKQotICAgICAgICBycm1kaXIoJGRzdCk7Ci0gICAgaWYgKGlz
X2Rpcigkc3JjKSkgewotICAgICAgICBta2RpcigkZHN0KTsKLSAgICAgICAgJGZpbGVzID0gYXJy
YXlfZGlmZihzY2FuZGlyKCRzcmMpLCBhcnJheSgiLiIsICIuLiIpKTsKLSAgICAgICAgZm9yZWFj
aCAoJGZpbGVzIGFzICRmaWxlKQotICAgICAgICAgIHJjb3B5KCIkc3JjLyRmaWxlIiwgIiRkc3Qv
JGZpbGUiKTsKLSAgICB9IGVsc2UgaWYgKGZpbGVfZXhpc3RzKCRzcmMpKSB7Ci0gICAgICAgIGNv
cHkoJHNyYywgJGRzdCk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBmaXJzdF9kaXIoJG5hbWUsICRk
aXI9RkFMU0UpCi17Ci0gICAgJHJlc3VsdCA9IEZBTFNFOwotICAgICRyb290ID0gJGRpciA/ICRk
aXIgOiAiLi8iOwotICAgICRxdWV1ZSA9IGFycmF5KHJlYWxwYXRoKCRyb290KSk7Ci0KLSAgICB3
aGlsZSAoc2l6ZW9mKCRxdWV1ZSkpIHsKLSAgICAgICAgJHZlcnRleCA9IGFycmF5X3BvcCgkcXVl
dWUpOwotICAgICAgICAkb2JqZWN0cyA9IGFycmF5X2RpZmYoc2NhbmRpcigkdmVydGV4KSwgYXJy
YXkoIi4iLCAiLi4iKSk7Ci0gICAgICAgIGZvcmVhY2ggKCRvYmplY3RzIGFzICRvYmplY3QpIHsK
LSAgICAgICAgICAgICRmdWxsUGF0aCA9ICR2ZXJ0ZXggLiAiLyIgLiAkb2JqZWN0OwotICAgICAg
ICAgICAgaWYgKGlzX2RpcigkZnVsbFBhdGgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCRuYW1l
ID09IGJhc2VuYW1lKCRmdWxsUGF0aCkpIHsKLSAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCA9
ICRmdWxsUGF0aDsKLSAgICAgICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGFycmF5X3Vuc2hpZnQoJHF1ZXVl
LCAkZnVsbFBhdGgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgIH0KLQotCi1jbGVhbnVwOgotCi0gICAgcmV0dXJuICRyZXN1bHQ7Ci19Ci0/PgotCklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9wb3J0YWJpbGl0eUxheWVyLnBo
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9wb3J0YWJp
bGl0eUxheWVyLnBocAkocmV2aXNpb24gMjc3MDk4KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZXMvcG9ydGFiaWxpdHlMYXllci5waHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw2OCAr
MCwwIEBACi08P3BocAotCi1pZiAoIWZ1bmN0aW9uX2V4aXN0cygnc3lzX2dldF90ZW1wX2Rpcicp
KSB7Ci0gICAgLy8gQmFzZWQgb24gaHR0cDovL3d3dy5waHBpdC5uZXQvYXJ0aWNsZS9jcmVhdGlu
Zy16aXAtdGFyLWFyY2hpdmVzLWR5bmFtaWNhbGx5LXBocC8yLwotICAgIC8vIElmIHRoZSBidWls
dGluIFBIUCBzeXNfZ2V0X3RlbXBfZGlyIGRvZXNuJ3QgZXhpc3QsIHdlIHJlcGxhY2UgaXQgd2l0
aCBvbmUgdGhhdCB3aWxsCi0gICAgLy8gdHJ5IHRvIGd1ZXNzIGZyb20gdGhlIGVudmlyb25tZW50
LiAgU2luY2Ugc3lzX2dldF90ZW1wX2RpcigpIGRvZXNuJ3QgcmV0dXJuIGEgdHJhaWxpbmcKLSAg
ICAvLyBzbGFzaCBvbiBhbGwgc3lzdGVtIChzZWUgY29tbWVudCBhdCBodHRwOi8vdXMucGhwLm5l
dC9zeXNfZ2V0X3RlbXBfZGlyKSwgd2UgZG9uJ3QKLSAgICAvLyBhcHBlbmQgYSB0cmFpbGluZyBz
bGFzaCwgYW5kIGV4cGVjdCBjYWxsZXJzIHRvIGFwcGVuZCBvbmUgd2hlbiBuZWVkZWQuCi0gICAg
ZnVuY3Rpb24gc3lzX2dldF90ZW1wX2RpcigpCi0gICAgewotICAgICAgICAvLyBUcnkgdG8gZ2V0
IGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGUKLSAgICAgICAgaWYgKCFlbXB0eSgkX0VOVlsnVE1Q
J10pKQotICAgICAgICAgICAgcmV0dXJuIHJlYWxwYXRoKCRfRU5WWydUTVAnXSk7Ci0gICAgICAg
IGlmICghZW1wdHkoJF9FTlZbJ1RNUERJUiddKSkKLSAgICAgICAgICAgIHJldHVybiByZWFscGF0
aCgkX0VOVlsnVE1QRElSJ10pOwotICAgICAgICBpZiAoIWVtcHR5KCRfRU5WWydURU1QJ10pKQot
ICAgICAgICAgICAgcmV0dXJuIHJlYWxwYXRoKCAkX0VOVlsnVEVNUCddKTsKLSAgICAgICAgcmV0
dXJuICIvdG1wIjsKLSAgICB9Ci19Ci0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdmaWxlX3B1dF9j
b250ZW50cycpKSB7Ci0gICAgZnVuY3Rpb24gZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCAk
ZGF0YSkKLSAgICB7Ci0gICAgICAgICRoYW5kbGUgPSBmb3BlbigkZmlsZW5hbWUsICJ3Iik7Ci0g
ICAgICAgIGlmICghJGhhbmRsZSkKLSAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAgICAg
JGJ5dGVzV3JpdHRlbiA9IGZ3cml0ZSgkaGFuZGxlLCAkZGF0YSk7Ci0gICAgICAgIGlmICghZmNs
b3NlKCRoYW5kbGUpKQotICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgICAgICByZXR1cm4g
JGJ5dGVzV3JpdHRlbjsKLSAgICB9Ci19Ci0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdzdHJlYW1f
Y29weV90b19zdHJlYW0nKSkgewotICAgIGZ1bmN0aW9uIHN0cmVhbV9jb3B5X3RvX3N0cmVhbSgk
c291cmNlLCAkZGVzdCkKLSAgICB7Ci0gICAgICAgICRyZXN1bHQgPSAwOwotICAgICAgICB3aGls
ZSAoIWZlb2YoJHNvdXJjZSkpIHsKLSAgICAgICAgICAgICRieXRlc1dyaXR0ZW4gPSBmd3JpdGUo
JGRlc3QsIGZyZWFkKCRzb3VyY2UsIDgxOTIpKTsKLSAgICAgICAgICAgIGlmICghJGJ5dGVzV3Jp
dHRlbikKLSAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgICAgICAgICAkcmVzdWx0
ID0gJHJlc3VsdCArICRieXRlc1dyaXR0ZW47Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4g
JHJlc3VsdDsKLSAgICB9Ci19Ci0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdzY2FuZGlyJykpIHsK
LSAgICBmdW5jdGlvbiBzY2FuZGlyKCRkaXIpCi0gICAgewotICAgICAgICBpZiAoIWlzX2Rpcigk
ZGlyKSkKLSAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgICAgICAkZGggPSBvcGVuZGly
KCRkaXIpOwotICAgICAgICB3aGlsZSAoJGZpbGVuYW1lID0gcmVhZGRpcigkZGgpKSB7Ci0gICAg
ICAgICAgICAkZmlsZXNbXSA9ICRmaWxlbmFtZTsKLSAgICAgICAgfQotCi0gICAgICAgIGNsb3Nl
ZGlyKCRkaCk7Ci0gICAgICAgIHNvcnQoJGZpbGVzKTsKLQotICAgICAgICByZXR1cm4gJGZpbGVz
OwotICAgIH0KLX0KLQotPz4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VzL3BvcnRhYmlsaXR5TGF5ZXIucGhwCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDog
c3ZuOmV4ZWN1dGFibGUKIyMgLTEgKzAsMCAjIwotKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHBy
b3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZW50L2NyZWF0ZS1pZDMtZGIucGhw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL2NvbnRlbnQvY3JlYXRlLWlkMy1kYi5w
aHAJKHJldmlzaW9uIDI3NzA5OCkJKGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9y
ZXNvdXJjZXMvY3JlYXRlLWlkMy1kYi5waHA6Mjc3MDk4KQorKysgTGF5b3V0VGVzdHMvbWVkaWEv
Y29udGVudC9jcmVhdGUtaWQzLWRiLnBocAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3NyBA
QAorPD9waHAKKworICAgIC8vIFRoaXMgc2NyaXB0IGlzIGJhc2VkIG9uIHRoZSB3b3JrIGRvbmUg
YnkgZ2FkZ2V0Z3VydQorICAgIC8vIDxkYXZpZEB2dWlzdGJpamwubmw+IGF0CisgICAgLy8gaHR0
cHM6Ly9naXRodWIuY29tL2dhZGdldGd1cnUvUEhQLVN0cmVhbWluZy1BdWRpbyBhbmQgcmVsZWFz
ZWQKKyAgICAvLyB1bmRlciB0aGUgUHVibGljIERvbWFpbi4KKworCisgICAgLy8gVGhpcyBzY3Jp
cHQgY3JlYXRlcywgb3ZlcndyaXRpbmcgaWYgbmVlZGVkLCB0aGUgIm1ldGFkYXRhLmRiIgorICAg
IC8vIGZpbGUgdXNlZCBieSBzY3JpcHRzIHN1Y2ggYXMgInNlcnZlLXZpZGVvLnB5Ii4KKyAgICAv
LworICAgIC8vIEZvciBjcmVhdGluZyBvciB1cGRhdGluZyBhbiBleGlzdGluZyBmaWxlIHlvdSBo
YXZlIHRvIHJ1biB0aGUKKyAgICAvLyBodHRwIHNlcnZlciB1c2VkIGJ5IHRoZSB0ZXN0cyB3aXRo
OgorICAgIC8vCisgICAgLy8gJCBUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtaHR0cGQKKyAgICAv
LworICAgIC8vIFRoZW4geW91IHdpbGwganVzdCBoYXZlIHRvIHVzZSBhIGJyb3dzZXIgdG8gb3Bl
biBhbiBVUkwgb2YgdGhlCisgICAgLy8gdHlwZToKKyAgICAvLworICAgIC8vIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9tZWRpYS9yZXNvdXJjZXMvY3JlYXRlLWlkMy1kYi5waHA/bmFtZT0uLi8uLi8u
Li8uLi9tZWRpYS9jb250ZW50L3NpbGVuY2Uud2F2CisgICAgLy8KKyAgICAvLyBXaXRoIHRoaXMs
IGEgbmV3ICJtZXRhZGFiYS5kYiIgZmlsZSB3aWxsIGJlIGNyZWF0ZSBpbiB0aGUKKyAgICAvLyBk
aXJlY3RvcnkgY29udGFpbmluZyB0aGUgcmVmZXJyZWQgZmlsZS4gSW4gdGhpcyBleGFtcGxlLCB0
aGUKKyAgICAvLyBkYXRhYmFzZSB3aWxsIGJlIGNyZWF0ZWQgYXQ6CisgICAgLy8KKyAgICAvLyAk
IExheW91dFRlc3RzL21lZGlhL2NvbnRlbnQvbWV0YWRhdGEuZGIKKworCisgICAgcmVxdWlyZV9v
bmNlICcuLi8uLi9yZXNvdXJjZXMvcG9ydGFiaWxpdHlMYXllci5waHAnOworICAgIHJlcXVpcmVf
b25jZSAnLi4vLi4vcmVzb3VyY2VzL2Rpci1oZWxwZXJzLnBocCc7CisKKyAgICAvLyA1MDAgb24g
ZXJyb3JzCisgICAgJGh0dHBTdGF0dXMgPSAiNTAwIEludGVybmFsIFNlcnZlciBFcnJvciI7Cisg
ICAgJGh0bWxNZXNzYWdlID0gIiI7CisKKyAgICBpZiAoIWFycmF5X2tleV9leGlzdHMoIm5hbWUi
LCAkX0dFVCkpIHsKKyAgICAgICAgdHJpZ2dlcl9lcnJvcigiWW91IGhhdmUgbm90IHNwZWNpZmll
ZCBhICduYW1lJyBwYXJhbWV0ZXIuIiwgRV9VU0VSX1dBUk5JTkcpOworICAgICAgICBnb3RvIGFu
c3dlcmluZzsKKyAgICB9CisgICAgJG1lZGlhRGlyZWN0b3J5ID0gZGlybmFtZSgkX0dFVFsibmFt
ZSJdKTsKKworICAgIGlmICghaXNfZGlyKCRtZWRpYURpcmVjdG9yeSkpIHsKKyAgICAgICAgdHJp
Z2dlcl9lcnJvcigiVGhlIHByb3ZpZGVkIGRpcmVjdG9yeSBwYXRoIGRvZXNuJ3QgZXhpc3QuIiwg
RV9VU0VSX1dBUk5JTkcpOworICAgICAgICBnb3RvIGFuc3dlcmluZzsKKyAgICB9CisgICAgJGRh
dGFiYXNlRmlsZSA9IHJlYWxwYXRoKCRtZWRpYURpcmVjdG9yeSkgLiAiL21ldGFkYXRhLmRiIjsK
KworICAgIGlmIChmaWxlX2V4aXN0cygkZGF0YWJhc2VGaWxlKSkgeworICAgICAgICB1bmxpbmso
JGRhdGFiYXNlRmlsZSk7CisgICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAuICI8
cC8+RGVsZXRlZCBwcmV2aW91c2x5IGV4aXN0aW5nIGRiIGZpbGUgYXQ6ICciIC4gJGRhdGFiYXNl
RmlsZSAuICInIjsKKyAgICB9CisKKyAgICAvLyBXZSBkb24ndCBoYXZlIGdldGlkMyBpbiBXZWJL
aXQuIElmIG5vdCBjdXJyZW50bHkgcHJlc2VudCwgd2UKKyAgICAvLyB3aWxsIHRyeSB0byBkb3du
bG9hZCBpdCBub3cgYmVmb3JlIG1ha2luZyB1c2Ugb2YgaXQuCisgICAgLy8KKyAgICAvLyBnZXRp
ZDMgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9nZXRpZDMuc291cmNlZm9yZ2UubmV0CisKKyAgICAk
Z2V0SWQzRGVzdERpciA9ICJnZXRpZDMiOworICAgIGlmICghZmlsZV9leGlzdHMoJGdldElkM0Rl
c3REaXIpKSB7CisKKyAgICAgICAgJHRtcERpciA9IHRtcGRpcihGQUxTRSwgInBocCIpOworICAg
ICAgICBpZiAoIWlzX2RpcigkdG1wRGlyKSkgeworICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigi
SW1wb3NzaWJsZSB0byBjcmVhdGUgdGVtcG9yYWwgZGlyZWN0b3J5LiIsIEVfVVNFUl9XQVJOSU5H
KTsKKyAgICAgICAgICAgIGdvdG8gYW5zd2VyaW5nOworICAgICAgICB9CisKKyAgICAgICAgJGlk
M0Rlc3RQYXRoID0gJHRtcERpciAuICIvZ2V0aWQzLnppcCI7CisgICAgICAgICRwaHBWZXJzaW9u
ID0gZXhwbG9kZSgiLiIsIFBIUF9WRVJTSU9OKTsKKyAgICAgICAgaWYgKCgkcGhwVmVyc2lvblsw
XSA+IDQpICYmICgkcGhwVmVyc2lvblsxXSA+IDApKQorICAgICAgICAgICAgJGlkM1VybCA9ICJo
dHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2dldGlkMy9maWxlcy9nZXRJRDMlMjglMjkl
MjAxLngvMS45LjcvZ2V0SUQzLTEuOS43LnppcC9kb3dubG9hZCI7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICRpZDNVcmwgPSAiaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9nZXRp
ZDMvZmlsZXMvZ2V0SUQzJTI4JTI5JTIwMS54LzEuNy4xMC9nZXRpZDMtMS43LjEwLTIwMDkwNDI2
LnppcC9kb3dubG9hZCI7CisgICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAuICI8
cC8+Z2V0SWQzIG5vdCBpbiB0aGUgc3lzdGVtLjxwLz5Eb3dubG9hZGluZyBmcm9tOiAnIiAuICRp
ZDNVcmwgLiAiJyI7CisKKyAgICAgICAgJGN0eHRPcHRzID0gYXJyYXkoImh0dHAiID0+CisgICAg
ICAgICAgICBhcnJheSgKKyAgICAgICAgICAgICAgICAibWV0aG9kIiAgPT4gIkdFVCIsCisgICAg
ICAgICAgICAgICAgInRpbWVvdXQiID0+IDYwLAorICAgICAgICAgICAgKQorICAgICAgICApOwor
ICAgICAgICAkY3R4dCA9IHN0cmVhbV9jb250ZXh0X2NyZWF0ZSgkY3R4dE9wdHMpOworICAgICAg
ICAkc3JjID0gZm9wZW4oJGlkM1VybCwgInJiIiwgZmFsc2UsICRjdHh0KTsKKyAgICAgICAgJGRl
c3QgPSBmb3BlbigkaWQzRGVzdFBhdGgsICJ3YiIpOworICAgICAgICAkY29waWVkID0gc3RyZWFt
X2NvcHlfdG9fc3RyZWFtKCRzcmMsICRkZXN0KTsKKyAgICAgICAgZmNsb3NlKCRzcmMpOworICAg
ICAgICBmY2xvc2UoJGRlc3QpOworICAgICAgICBpZiAoJGNvcGllZCA9PSAwKSB7CisgICAgICAg
ICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIGNvcHkgdGhlIGxhdGVzdCBnZXRpZDMg
emlwIHJlbGVhc2UgZmlsZS4iLCBFX1VTRVJfV0FSTklORyk7CisgICAgICAgICAgICBnb3RvIGFu
c3dlcmluZzsKKyAgICAgICAgfQorICAgICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2Ug
LiAiPHAvPmdldElkMyBkb3dubG9hZGVkIHRvOiAnIiAuICRpZDNEZXN0UGF0aCAuICInIjsKKwor
ICAgICAgICBpZiAoIWV4ZWMoInVuemlwICIgLiAkaWQzRGVzdFBhdGggLiAiIC1kICIgLiAkdG1w
RGlyKSkgeworICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigiSW1wb3NzaWJsZSB0byBleHRyYWN0
IHRoZSBkb3dubG9hZGVkIHppcCBmaWxlLiIsIEVfVVNFUl9XQVJOSU5HKTsKKyAgICAgICAgICAg
IGdvdG8gYW5zd2VyaW5nOworICAgICAgICB9CisgICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1s
TWVzc2FnZSAuICI8cC8+WmlwIGZpbGUgc3VjY2Vzc2Z1bGx5IGV4dHJhY3RlZC4iOworCisgICAg
ICAgICRnZXRJZDNTb3VyY2VEaXIgPSBmaXJzdF9kaXIoJGdldElkM0Rlc3REaXIsICR0bXBEaXIp
OworICAgICAgICBpZiAoISRnZXRJZDNTb3VyY2VEaXIpIHsKKyAgICAgICAgICAgIHRyaWdnZXJf
ZXJyb3IoIkltcG9zc2libGUgdG8gZmluZCB0aGUgZ2V0aWQzIGRpcmVjdG9yeSB3aXRoIHRoZSBQ
SFAgY29kZSB0byBjb3B5LiIsIEVfVVNFUl9XQVJOSU5HKTsKKyAgICAgICAgICAgIGdvdG8gYW5z
d2VyaW5nOworICAgICAgICB9CisgICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAu
ICI8cC8+Z2V0SWQzIGRpcmVjdG9yeSB0byBjb3B5IGZvdW5kIGF0OiAnIiAuICRnZXRJZDNTb3Vy
Y2VEaXIgLiAiJyI7CisKKworICAgICAgICByY29weSgkZ2V0SWQzU291cmNlRGlyLCAkZ2V0SWQz
RGVzdERpcik7CisgICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAuICI8cC8+Z2V0
SWQzIGRpcmVjdG9yeSBjb3BpZWQgdG8gaXRzIGZpbmFsIGRlc3RpbmF0aW9uIGF0OiAnIiAuIHJl
YWxwYXRoKCRnZXRJZDNTb3VyY2VEaXIpIC4gIiciOworCisgICAgICAgIHJybWRpcigkdG1wRGly
KTsKKyAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5EZWxldGVkIGFs
bCB0ZW1wb3JhbCBmaWxlcyBhdDogJyIgLiAkdG1wRGlyIC4gIiciOworICAgIH0KKworCisgICAg
Ly8gZ2V0aWQzIGRvd25sb2FkZWQuIExldCdzIGNyZWF0ZSB0aGUgZGF0YWJhc2UgZmlsZS4KKyAg
ICByZXF1aXJlX29uY2UoImdldGlkMy9nZXRpZDMucGhwIik7CisgICAgJGdldElEMyA9IG5ldyBn
ZXRJRDM7CisKKyAgICAkaWQzRmlsZU5hbWVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRtZWRpYURp
cmVjdG9yeSksIGFycmF5KCIuIiwgIi4uIikpOworCisgICAgZm9yZWFjaCAoJGlkM0ZpbGVOYW1l
cyBhcyAkaWQzRmlsZU5hbWUpIHsKKyAgICAgICAgJGlkMyA9ICRnZXRJRDMtPmFuYWx5emUoJG1l
ZGlhRGlyZWN0b3J5IC4gIi8iIC4gJGlkM0ZpbGVOYW1lKTsKKyAgICAgICAgJHBsYXlmaWxlID0g
YXJyYXkoCisgICAgICAgICAgICAiZmlsZU5hbWUiID0+ICRpZDNbImZpbGVuYW1lIl0sCisgICAg
ICAgICAgICAiZmlsZVNpemUiID0+ICRpZDNbImZpbGVzaXplIl0sCisgICAgICAgICAgICAicGxh
eVRpbWUiID0+ICRpZDNbInBsYXl0aW1lX3NlY29uZHMiXSwKKyAgICAgICAgICAgICJhdWRpb1N0
YXJ0IiA9PiAkaWQzWyJhdmRhdGFvZmZzZXQiXSwKKyAgICAgICAgICAgICJhdWRpb0VuZCIgPT4g
JGlkM1siYXZkYXRhZW5kIl0sCisgICAgICAgICAgICAiYXVkaW9MZW5ndGgiID0+ICRpZDNbImF2
ZGF0YWVuZCJdIC0gJGlkM1siYXZkYXRhb2Zmc2V0Il0sCisgICAgICAgICAgICAiYXJ0aXN0IiA9
PiAkaWQzWyJ0YWdzIl1bImlkM3YyIl1bImFydGlzdCJdWzBdLAorICAgICAgICAgICAgInRpdGxl
IiA9PiAkaWQzWyJ0YWdzIl1bImlkM3YyIl1bInRpdGxlIl1bMF0sCisgICAgICAgICAgICAiYml0
UmF0ZSIgPT4gJGlkM1siYXVkaW8iXVsiYml0cmF0ZSJdLAorICAgICAgICAgICAgIm1pbWVUeXBl
IiA9PiAkaWQzWyJtaW1lX3R5cGUiXSwKKyAgICAgICAgICAgICJmaWxlRm9ybWF0IiA9PiAkaWQz
WyJmaWxlZm9ybWF0Il0sCisgICAgICAgICk7CisgICAgICAgIGlmIChlbXB0eSgkcGxheWZpbGVb
ImFydGlzdCJdKSB8fCBlbXB0eSgkcGxheWZpbGVbInRpdGxlIl0pKQorICAgICAgICAgICAgbGlz
dCgkcGxheWZpbGVbImFydGlzdCJdLCAkcGxheWZpbGVbInRpdGxlIl0pID0gZXhwbG9kZSgiIC0g
Iiwgc3Vic3RyKCRwbGF5ZmlsZVsiZmlsZU5hbWUiXSwgMCAsIC00KSk7CisgICAgICAgICRwbGF5
RmlsZXNbXSA9ICRwbGF5ZmlsZTsKKyAgICB9CisKKyAgICBpZiAoIWZpbGVfcHV0X2NvbnRlbnRz
KCRkYXRhYmFzZUZpbGUsIHNlcmlhbGl6ZSgkcGxheUZpbGVzKSkpIHsKKyAgICAgICAgdHJpZ2dl
cl9lcnJvcigiSW1wb3NzaWJsZSB0byB3cml0ZSB0aGUgZ2V0aWQzIGRiLiIsIEVfVVNFUl9XQVJO
SU5HKTsKKyAgICAgICAgZ290byBhbnN3ZXJpbmc7CisgICAgfQorICAgICRodG1sTWVzc2FnZSA9
ICRodG1sTWVzc2FnZSAuICI8cC8+V3JpdHRlbiBuZXcgZGF0YWJhc2UgZmlsZSBhdDogJyIgLiAk
ZGF0YWJhc2VGaWxlIC4gIiciOworCisKKyAgICAvLyBEYXRhYmFzZSBjcmVhdGVkLCBldmVyeXRo
aW5nIE9LLgorICAgICRodHRwU3RhdHVzID0gIjIwMCBPSyI7CisKKworYW5zd2VyaW5nOgorCisg
ICAgaGVhZGVyKCJTdGF0dXM6ICIgLiAkaHR0cFN0YXR1cyk7CisgICAgaGVhZGVyKCJIVFRQLzEu
MSAiIC4gJGh0dHBTdGF0dXMpOworICAgIGhlYWRlcigiQ29ubmVjdGlvbjogY2xvc2UiKTsKKyAg
ICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9odG1sIik7CisKKyAgICAkaHRtbE1lc3NhZ2Ug
PSAiPGh0bWw+PGJvZHk+PGgxPiIgLiAkaHR0cFN0YXR1cyAuICI8L2gxPiIgLiAkaHRtbE1lc3Nh
Z2U7CisKKyAgICBpZiAoJGh0dHBTdGF0dXMgPT0gIjUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3Ii
KSB7CisgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoImVycm9yX2dldF9sYXN0IikpIHsKKyAg
ICAgICAgICAgICRlcnJvckFycmF5ID0gZXJyb3JfZ2V0X2xhc3QoKTsKKyAgICAgICAgICAgIGlm
ICgkZXJyb3JBcnJheSkgeworICAgICAgICAgICAgICAgICRodG1sTWVzc2FnZSA9IHNwcmludGYo
IiVzPHAvPkVycm9yIHR5cGU6ICVkPHAvPkVycm9yIG1lc3NhZ2U6ICVzPHAvPiIuCisgICAgICAg
ICAgICAgICAgICAgICJFcnJvciBmaWxlOiAlczxwLz5FcnJvciBsaW5lOiAlZCIsCisgICAgICAg
ICAgICAgICAgICAgICRodG1sTWVzc2FnZSwgJGVycm9yQXJyYXlbInR5cGUiXSwgJGVycm9yQXJy
YXlbIm1lc3NhZ2UiXSwKKyAgICAgICAgICAgICAgICAgICAgJGVycm9yQXJyYXlbImZpbGUiXSwg
JGVycm9yQXJyYXlbImxpbmUiXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cisg
ICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjwvYm9keT48aHRtbD4iOworCisgICAg
cHJpbnQoJGh0bWxNZXNzYWdlKTsKKyAgICBmbHVzaCgpOworICAgIGV4aXQ7Cis/PgpJbmRleDog
TGF5b3V0VGVzdHMvbWVkaWEvY29udGVudC9jcmVhdGUtaWQzLWRiLnBocAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZW50L2NyZWF0ZS1pZDMtZGIucGhwCShyZXZpc2lvbiAy
NzcwOTgpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZW50L2NyZWF0ZS1pZDMtZGIucGhwCSh3
b3JraW5nIGNvcHkpCkBAIC05LDggKzksOCBAQAogICAgIC8vIFRoaXMgc2NyaXB0IGNyZWF0ZXMs
IG92ZXJ3cml0aW5nIGlmIG5lZWRlZCwgdGhlICJtZXRhZGF0YS5kYiIKICAgICAvLyBmaWxlIHVz
ZWQgYnkgc2NyaXB0cyBzdWNoIGFzICJzZXJ2ZS12aWRlby5weSIuCiAgICAgLy8KLSAgICAvLyBG
b3IgY3JlYXRpbmcgb3IgdXBkYXRpbmcgYW4gZXhpc3RpbmcgZmlsZSB5b3UgaGF2ZSB0byBydW4g
dGhlCi0gICAgLy8gaHR0cCBzZXJ2ZXIgdXNlZCBieSB0aGUgdGVzdHMgd2l0aDoKKyAgICAvLyBG
b3IgY3JlYXRpbmcgb3IgdXBkYXRpbmcgYW4gZXhpc3RpbmcgZmlsZSB5b3UgaGF2ZSB0byBydW4K
KyAgICAvLyB0aGUgZmlsZSB3aXRoOgogICAgIC8vCiAgICAgLy8gJCBUb29scy9TY3JpcHRzL3J1
bi13ZWJraXQtaHR0cGQKICAgICAvLwpAQCAtMjMsMTEgKzIzLDE0OCBAQAogICAgIC8vIGRpcmVj
dG9yeSBjb250YWluaW5nIHRoZSByZWZlcnJlZCBmaWxlLiBJbiB0aGlzIGV4YW1wbGUsIHRoZQog
ICAgIC8vIGRhdGFiYXNlIHdpbGwgYmUgY3JlYXRlZCBhdDoKICAgICAvLwotICAgIC8vICQgTGF5
b3V0VGVzdHMvbWVkaWEvY29udGVudC9tZXRhZGF0YS5kYgorICAgIC8vICQgTGF5b3V0VGVzdHMv
bWVkaWEvY29udGVudC9tZXRhZGF0YS5qc29uCiAKIAotICAgIHJlcXVpcmVfb25jZSAnLi4vLi4v
cmVzb3VyY2VzL3BvcnRhYmlsaXR5TGF5ZXIucGhwJzsKLSAgICByZXF1aXJlX29uY2UgJy4uLy4u
L3Jlc291cmNlcy9kaXItaGVscGVycy5waHAnOworICAgIGlmICghZnVuY3Rpb25fZXhpc3RzKCdz
eXNfZ2V0X3RlbXBfZGlyJykpIHsKKyAgICAgICAgLy8gQmFzZWQgb24gaHR0cDovL3d3dy5waHBp
dC5uZXQvYXJ0aWNsZS9jcmVhdGluZy16aXAtdGFyLWFyY2hpdmVzLWR5bmFtaWNhbGx5LXBocC8y
LworICAgICAgICAvLyBJZiB0aGUgYnVpbHRpbiBQSFAgc3lzX2dldF90ZW1wX2RpciBkb2Vzbid0
IGV4aXN0LCB3ZSByZXBsYWNlIGl0IHdpdGggb25lIHRoYXQgd2lsbAorICAgICAgICAvLyB0cnkg
dG8gZ3Vlc3MgZnJvbSB0aGUgZW52aXJvbm1lbnQuICBTaW5jZSBzeXNfZ2V0X3RlbXBfZGlyKCkg
ZG9lc24ndCByZXR1cm4gYSB0cmFpbGluZworICAgICAgICAvLyBzbGFzaCBvbiBhbGwgc3lzdGVt
IChzZWUgY29tbWVudCBhdCBodHRwOi8vdXMucGhwLm5ldC9zeXNfZ2V0X3RlbXBfZGlyKSwgd2Ug
ZG9uJ3QKKyAgICAgICAgLy8gYXBwZW5kIGEgdHJhaWxpbmcgc2xhc2gsIGFuZCBleHBlY3QgY2Fs
bGVycyB0byBhcHBlbmQgb25lIHdoZW4gbmVlZGVkLgorICAgICAgICBmdW5jdGlvbiBzeXNfZ2V0
X3RlbXBfZGlyKCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVHJ5IHRvIGdldCBmcm9tIGVu
dmlyb25tZW50IHZhcmlhYmxlCisgICAgICAgICAgICBpZiAoIWVtcHR5KCRfRU5WWydUTVAnXSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxwYXRoKCRfRU5WWydUTVAnXSk7CisgICAgICAg
ICAgICBpZiAoIWVtcHR5KCRfRU5WWydUTVBESVInXSkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHJlYWxwYXRoKCRfRU5WWydUTVBESVInXSk7CisgICAgICAgICAgICBpZiAoIWVtcHR5KCRfRU5W
WydURU1QJ10pKQorICAgICAgICAgICAgICAgIHJldHVybiByZWFscGF0aCggJF9FTlZbJ1RFTVAn
XSk7CisgICAgICAgICAgICByZXR1cm4gIi90bXAiOworICAgICAgICB9CisgICAgfQorCisKKyAg
ICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnZmlsZV9wdXRfY29udGVudHMnKSkgeworICAgICAgICBm
dW5jdGlvbiBmaWxlX3B1dF9jb250ZW50cygkZmlsZW5hbWUsICRkYXRhKQorICAgICAgICB7Cisg
ICAgICAgICAgICAkaGFuZGxlID0gZm9wZW4oJGZpbGVuYW1lLCAidyIpOworICAgICAgICAgICAg
aWYgKCEkaGFuZGxlKQorICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKyAgICAgICAgICAg
ICRieXRlc1dyaXR0ZW4gPSBmd3JpdGUoJGhhbmRsZSwgJGRhdGEpOworICAgICAgICAgICAgaWYg
KCFmY2xvc2UoJGhhbmRsZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAg
ICAgICAgcmV0dXJuICRieXRlc1dyaXR0ZW47CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGlm
ICghZnVuY3Rpb25fZXhpc3RzKCdzdHJlYW1fY29weV90b19zdHJlYW0nKSkgeworICAgICAgICBm
dW5jdGlvbiBzdHJlYW1fY29weV90b19zdHJlYW0oJHNvdXJjZSwgJGRlc3QpCisgICAgICAgIHsK
KyAgICAgICAgICAgICRyZXN1bHQgPSAwOworICAgICAgICAgICAgd2hpbGUgKCFmZW9mKCRzb3Vy
Y2UpKSB7CisgICAgICAgICAgICAgICAgJGJ5dGVzV3JpdHRlbiA9IGZ3cml0ZSgkZGVzdCwgZnJl
YWQoJHNvdXJjZSwgODE5MikpOworICAgICAgICAgICAgICAgIGlmICghJGJ5dGVzV3JpdHRlbikK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICAgICAgICAgICRyZXN1
bHQgPSAkcmVzdWx0ICsgJGJ5dGVzV3JpdHRlbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgcmV0dXJuICRyZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWZ1bmN0aW9u
X2V4aXN0cygnc2NhbmRpcicpKSB7CisgICAgICAgIGZ1bmN0aW9uIHNjYW5kaXIoJGRpcikKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKCFpc19kaXIoJGRpcikpCisgICAgICAgICAgICAgICAg
cmV0dXJuIEZBTFNFOworCisgICAgICAgICAgICAkZGggPSBvcGVuZGlyKCRkaXIpOworICAgICAg
ICAgICAgd2hpbGUgKCRmaWxlbmFtZSA9IHJlYWRkaXIoJGRoKSkgeworICAgICAgICAgICAgICAg
ICRmaWxlc1tdID0gJGZpbGVuYW1lOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjbG9z
ZWRpcigkZGgpOworICAgICAgICAgICAgc29ydCgkZmlsZXMpOworCisgICAgICAgICAgICByZXR1
cm4gJGZpbGVzOworICAgICAgICB9CisgICAgfQorCisKKyAgICBmdW5jdGlvbiB0bXBkaXIoJGRp
cj1GQUxTRSwgJHByZWZpeD0ncGhwJykKKyAgICB7CisgICAgICAgIGlmICgkZGlyKSB7CisgICAg
ICAgICAgICAkdG1wRmlsZSA9IHRlbXBuYW0oJGRpciwgJHByZWZpeCk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBpZiAoIXN5c19nZXRfdGVtcF9kaXIoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gRkFMU0U7CisgICAgICAgICAgICAkdG1wRmlsZSA9IHRlbXBuYW0oc3lzX2dldF90
ZW1wX2RpcigpLCAkcHJlZml4KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZmlsZV9leGlz
dHMoJHRtcEZpbGUpKQorICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICB1bmxpbmso
JHRtcEZpbGUpOworICAgICAgICBta2RpcigkdG1wRmlsZSk7CisgICAgICAgIGlmICghaXNfZGly
KCR0bXBGaWxlKSkKKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKworICAgICAgICByZXR1cm4g
JHRtcEZpbGU7CisgICAgfQorCisKKyAgICBmdW5jdGlvbiBycm1kaXIoJGRpcikKKyAgICB7Cisg
ICAgICAgIGlmIChpc19kaXIoJGRpcikpIHsKKyAgICAgICAgICAgICRvYmplY3RzID0gYXJyYXlf
ZGlmZihzY2FuZGlyKCRkaXIpLCBhcnJheSgiLiIsICIuLiIpKTsKKyAgICAgICAgICAgIGZvcmVh
Y2ggKCRvYmplY3RzIGFzICRvYmplY3QpCisgICAgICAgICAgICAgICAgKGlzX2RpcigkZGlyIC4g
Ii8iIC4gJG9iamVjdCkpID8gcnJtZGlyKCRkaXIgLiAiLyIgLiAkb2JqZWN0KSA6IHVubGluaygk
ZGlyIC4gIi8iIC4gJG9iamVjdCk7CisgICAgICAgICAgICByZXNldCgkb2JqZWN0cyk7CisgICAg
ICAgICAgICBybWRpcigkZGlyKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgZnVuY3Rpb24g
cmNvcHkoJHNyYywgJGRzdCkKKyAgICB7CisgICAgICAgIGlmIChmaWxlX2V4aXN0cygkZHN0KSkK
KyAgICAgICAgICAgIHJybWRpcigkZHN0KTsKKyAgICAgICAgaWYgKGlzX2Rpcigkc3JjKSkgewor
ICAgICAgICAgICAgbWtkaXIoJGRzdCk7CisgICAgICAgICAgICAkZmlsZXMgPSBhcnJheV9kaWZm
KHNjYW5kaXIoJHNyYyksIGFycmF5KCIuIiwgIi4uIikpOworICAgICAgICAgICAgZm9yZWFjaCAo
JGZpbGVzIGFzICRmaWxlKQorICAgICAgICAgICAgICByY29weSgiJHNyYy8kZmlsZSIsICIkZHN0
LyRmaWxlIik7CisgICAgICAgIH0gZWxzZSBpZiAoZmlsZV9leGlzdHMoJHNyYykpIHsKKyAgICAg
ICAgICAgIGNvcHkoJHNyYywgJGRzdCk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGZ1bmN0
aW9uIGZpcnN0X2RpcigkbmFtZSwgJGRpcj1GQUxTRSkKKyAgICB7CisgICAgICAgICRyZXN1bHQg
PSBGQUxTRTsKKyAgICAgICAgJHJvb3QgPSAkZGlyID8gJGRpciA6ICIuLyI7CisgICAgICAgICRx
dWV1ZSA9IGFycmF5KHJlYWxwYXRoKCRyb290KSk7CisKKyAgICAgICAgd2hpbGUgKHNpemVvZigk
cXVldWUpKSB7CisgICAgICAgICAgICAkdmVydGV4ID0gYXJyYXlfcG9wKCRxdWV1ZSk7CisgICAg
ICAgICAgICAkb2JqZWN0cyA9IGFycmF5X2RpZmYoc2NhbmRpcigkdmVydGV4KSwgYXJyYXkoIi4i
LCAiLi4iKSk7CisgICAgICAgICAgICBmb3JlYWNoICgkb2JqZWN0cyBhcyAkb2JqZWN0KSB7Cisg
ICAgICAgICAgICAgICAgJGZ1bGxQYXRoID0gJHZlcnRleCAuICIvIiAuICRvYmplY3Q7CisgICAg
ICAgICAgICAgICAgaWYgKGlzX2RpcigkZnVsbFBhdGgpKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICgkbmFtZSA9PSBiYXNlbmFtZSgkZnVsbFBhdGgpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAkcmVzdWx0ID0gJGZ1bGxQYXRoOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICRyZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBhcnJheV91bnNoaWZ0KCRxdWV1ZSwgJGZ1bGxQYXRoKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKwogCiAgICAgLy8gNTAwIG9uIGVycm9ycwogICAgICRodHRwU3RhdHVzID0gIjUwMCBJbnRl
cm5hbCBTZXJ2ZXIgRXJyb3IiOwpAQCAtNDMsNyArMTgwLDcgQEAKICAgICAgICAgdHJpZ2dlcl9l
cnJvcigiVGhlIHByb3ZpZGVkIGRpcmVjdG9yeSBwYXRoIGRvZXNuJ3QgZXhpc3QuIiwgRV9VU0VS
X1dBUk5JTkcpOwogICAgICAgICBnb3RvIGFuc3dlcmluZzsKICAgICB9Ci0gICAgJGRhdGFiYXNl
RmlsZSA9IHJlYWxwYXRoKCRtZWRpYURpcmVjdG9yeSkgLiAiL21ldGFkYXRhLmRiIjsKKyAgICAk
ZGF0YWJhc2VGaWxlID0gcmVhbHBhdGgoJG1lZGlhRGlyZWN0b3J5KSAuICIvbWV0YWRhdGEuanNv
biI7CiAKICAgICBpZiAoZmlsZV9leGlzdHMoJGRhdGFiYXNlRmlsZSkpIHsKICAgICAgICAgdW5s
aW5rKCRkYXRhYmFzZUZpbGUpOwpAQCAtMTM4LDcgKzI3NSw3IEBACiAgICAgICAgICRwbGF5Rmls
ZXNbXSA9ICRwbGF5ZmlsZTsKICAgICB9CiAKLSAgICBpZiAoIWZpbGVfcHV0X2NvbnRlbnRzKCRk
YXRhYmFzZUZpbGUsIHNlcmlhbGl6ZSgkcGxheUZpbGVzKSkpIHsKKyAgICBpZiAoIWZpbGVfcHV0
X2NvbnRlbnRzKCRkYXRhYmFzZUZpbGUsIGpzb25fZGVjb2RlKCRwbGF5RmlsZXMpKSkgewogICAg
ICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIHdyaXRlIHRoZSBnZXRpZDMgZGIuIiwg
RV9VU0VSX1dBUk5JTkcpOwogICAgICAgICBnb3RvIGFuc3dlcmluZzsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428176</attachid>
            <date>2021-05-10 09:02:06 -0700</date>
            <delta_ts>2021-05-10 10:57:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224561-20210510120205.patch</filename>
            <type>text/plain</type>
            <size>26035</size>
            <attacher name="Chris Gambrell">cgambrell</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI3NzI2MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTEwICBDaHJpcyBHYW1icmVsbCAg
PGNnYW1icmVsbEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xheW91dFRlc3RzXSBSZXBsYWNlIGh0
dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwIHJlc3VsdCB3aXRoIEpT
T04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDU2
MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzY2NTMwNTQ+CisKKyAgICAgICAgUmVwbGFjaW5n
IHRoZSBjcmVhdGlvbiBvZiBtZXRhZGF0YS5kYiB3aXRoIEpTT04gaW50byBhIG5ldyBmaWxlIG5h
bWVkIG1ldGFkYXRhLmpzb24uIFRoaXMgc3RhbmRhbG9uZSBzY3JpcHQgcmVtYWlucyBpbiBQSFAg
dG8gYmUgYWJsZSB0byBzdGlsbCB1c2UgZ2V0aWQzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvY3Jl
YXRlLWlkMy1kYi5waHA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZXMv
ZGlyLWhlbHBlcnMucGhwOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2Vz
L3BvcnRhYmlsaXR5TGF5ZXIucGhwOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL2NvbnRlbnQv
Y3JlYXRlLWlkMy1kYi5waHA6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwLgorCiAyMDIxLTA1LTEwICBQaGlsaXBwZSBO
b3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBmYXN0
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtdmlkZW8tdHJhY2tzLWRpc2Fi
bGVkLmh0bWwgZmFpbHMKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL2NyZWF0ZS1pZDMtZGIucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwCShyZXZpc2lvbiAyNzcyNjMpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9jcmVhdGUtaWQzLWRiLnBo
cAkobm9uZXhpc3RlbnQpCkBAIC0xLDE3NyArMCwwIEBACi08P3BocAotCi0gICAgLy8gVGhpcyBz
Y3JpcHQgaXMgYmFzZWQgb24gdGhlIHdvcmsgZG9uZSBieSBnYWRnZXRndXJ1Ci0gICAgLy8gPGRh
dmlkQHZ1aXN0YmlqbC5ubD4gYXQKLSAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2FkZ2V0Z3Vy
dS9QSFAtU3RyZWFtaW5nLUF1ZGlvIGFuZCByZWxlYXNlZAotICAgIC8vIHVuZGVyIHRoZSBQdWJs
aWMgRG9tYWluLgotCi0KLSAgICAvLyBUaGlzIHNjcmlwdCBjcmVhdGVzLCBvdmVyd3JpdGluZyBp
ZiBuZWVkZWQsIHRoZSAibWV0YWRhdGEuZGIiCi0gICAgLy8gZmlsZSB1c2VkIGJ5IHNjcmlwdHMg
c3VjaCBhcyAic2VydmUtdmlkZW8ucHkiLgotICAgIC8vCi0gICAgLy8gRm9yIGNyZWF0aW5nIG9y
IHVwZGF0aW5nIGFuIGV4aXN0aW5nIGZpbGUgeW91IGhhdmUgdG8gcnVuIHRoZQotICAgIC8vIGh0
dHAgc2VydmVyIHVzZWQgYnkgdGhlIHRlc3RzIHdpdGg6Ci0gICAgLy8KLSAgICAvLyAkIFRvb2xz
L1NjcmlwdHMvcnVuLXdlYmtpdC1odHRwZAotICAgIC8vCi0gICAgLy8gVGhlbiB5b3Ugd2lsbCBq
dXN0IGhhdmUgdG8gdXNlIGEgYnJvd3NlciB0byBvcGVuIGFuIFVSTCBvZiB0aGUKLSAgICAvLyB0
eXBlOgotICAgIC8vCi0gICAgLy8gaHR0cDovLzEyNy4wLjAuMTo4MDAwL21lZGlhL3Jlc291cmNl
cy9jcmVhdGUtaWQzLWRiLnBocD9uYW1lPS4uLy4uLy4uLy4uL21lZGlhL2NvbnRlbnQvc2lsZW5j
ZS53YXYKLSAgICAvLwotICAgIC8vIFdpdGggdGhpcywgYSBuZXcgIm1ldGFkYWJhLmRiIiBmaWxl
IHdpbGwgYmUgY3JlYXRlIGluIHRoZQotICAgIC8vIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBy
ZWZlcnJlZCBmaWxlLiBJbiB0aGlzIGV4YW1wbGUsIHRoZQotICAgIC8vIGRhdGFiYXNlIHdpbGwg
YmUgY3JlYXRlZCBhdDoKLSAgICAvLwotICAgIC8vICQgTGF5b3V0VGVzdHMvbWVkaWEvY29udGVu
dC9tZXRhZGF0YS5kYgotCi0KLSAgICByZXF1aXJlX29uY2UgJy4uLy4uL3Jlc291cmNlcy9wb3J0
YWJpbGl0eUxheWVyLnBocCc7Ci0gICAgcmVxdWlyZV9vbmNlICcuLi8uLi9yZXNvdXJjZXMvZGly
LWhlbHBlcnMucGhwJzsKLQotICAgIC8vIDUwMCBvbiBlcnJvcnMKLSAgICAkaHR0cFN0YXR1cyA9
ICI1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yIjsKLSAgICAkaHRtbE1lc3NhZ2UgPSAiIjsKLQot
ICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygibmFtZSIsICRfR0VUKSkgewotICAgICAgICB0cmln
Z2VyX2Vycm9yKCJZb3UgaGF2ZSBub3Qgc3BlY2lmaWVkIGEgJ25hbWUnIHBhcmFtZXRlci4iLCBF
X1VTRVJfV0FSTklORyk7Ci0gICAgICAgIGdvdG8gYW5zd2VyaW5nOwotICAgIH0KLSAgICAkbWVk
aWFEaXJlY3RvcnkgPSBkaXJuYW1lKCRfR0VUWyJuYW1lIl0pOwotCi0gICAgaWYgKCFpc19kaXIo
JG1lZGlhRGlyZWN0b3J5KSkgewotICAgICAgICB0cmlnZ2VyX2Vycm9yKCJUaGUgcHJvdmlkZWQg
ZGlyZWN0b3J5IHBhdGggZG9lc24ndCBleGlzdC4iLCBFX1VTRVJfV0FSTklORyk7Ci0gICAgICAg
IGdvdG8gYW5zd2VyaW5nOwotICAgIH0KLSAgICAkZGF0YWJhc2VGaWxlID0gcmVhbHBhdGgoJG1l
ZGlhRGlyZWN0b3J5KSAuICIvbWV0YWRhdGEuZGIiOwotCi0gICAgaWYgKGZpbGVfZXhpc3RzKCRk
YXRhYmFzZUZpbGUpKSB7Ci0gICAgICAgIHVubGluaygkZGF0YWJhc2VGaWxlKTsKLSAgICAgICAg
JGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5EZWxldGVkIHByZXZpb3VzbHkgZXhp
c3RpbmcgZGIgZmlsZSBhdDogJyIgLiAkZGF0YWJhc2VGaWxlIC4gIiciOwotICAgIH0KLQotICAg
IC8vIFdlIGRvbid0IGhhdmUgZ2V0aWQzIGluIFdlYktpdC4gSWYgbm90IGN1cnJlbnRseSBwcmVz
ZW50LCB3ZQotICAgIC8vIHdpbGwgdHJ5IHRvIGRvd25sb2FkIGl0IG5vdyBiZWZvcmUgbWFraW5n
IHVzZSBvZiBpdC4KLSAgICAvLwotICAgIC8vIGdldGlkMyBpcyBhdmFpbGFibGUgYXQgaHR0cDov
L2dldGlkMy5zb3VyY2Vmb3JnZS5uZXQKLQotICAgICRnZXRJZDNEZXN0RGlyID0gImdldGlkMyI7
Ci0gICAgaWYgKCFmaWxlX2V4aXN0cygkZ2V0SWQzRGVzdERpcikpIHsKLQotICAgICAgICAkdG1w
RGlyID0gdG1wZGlyKEZBTFNFLCAicGhwIik7Ci0gICAgICAgIGlmICghaXNfZGlyKCR0bXBEaXIp
KSB7Ci0gICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIGNyZWF0ZSB0ZW1w
b3JhbCBkaXJlY3RvcnkuIiwgRV9VU0VSX1dBUk5JTkcpOwotICAgICAgICAgICAgZ290byBhbnN3
ZXJpbmc7Ci0gICAgICAgIH0KLQotICAgICAgICAkaWQzRGVzdFBhdGggPSAkdG1wRGlyIC4gIi9n
ZXRpZDMuemlwIjsKLSAgICAgICAgJHBocFZlcnNpb24gPSBleHBsb2RlKCIuIiwgUEhQX1ZFUlNJ
T04pOwotICAgICAgICBpZiAoKCRwaHBWZXJzaW9uWzBdID4gNCkgJiYgKCRwaHBWZXJzaW9uWzFd
ID4gMCkpCi0gICAgICAgICAgICAkaWQzVXJsID0gImh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJv
amVjdHMvZ2V0aWQzL2ZpbGVzL2dldElEMyUyOCUyOSUyMDEueC8xLjkuNy9nZXRJRDMtMS45Ljcu
emlwL2Rvd25sb2FkIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgJGlkM1VybCA9ICJodHRw
Oi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2dldGlkMy9maWxlcy9nZXRJRDMlMjglMjklMjAx
LngvMS43LjEwL2dldGlkMy0xLjcuMTAtMjAwOTA0MjYuemlwL2Rvd25sb2FkIjsKLSAgICAgICAg
JGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgbm90IGluIHRoZSBzeXN0
ZW0uPHAvPkRvd25sb2FkaW5nIGZyb206ICciIC4gJGlkM1VybCAuICInIjsKLQotICAgICAgICAk
Y3R4dE9wdHMgPSBhcnJheSgiaHR0cCIgPT4KLSAgICAgICAgICAgIGFycmF5KAotICAgICAgICAg
ICAgICAgICJtZXRob2QiICA9PiAiR0VUIiwKLSAgICAgICAgICAgICAgICAidGltZW91dCIgPT4g
NjAsCi0gICAgICAgICAgICApCi0gICAgICAgICk7Ci0gICAgICAgICRjdHh0ID0gc3RyZWFtX2Nv
bnRleHRfY3JlYXRlKCRjdHh0T3B0cyk7Ci0gICAgICAgICRzcmMgPSBmb3BlbigkaWQzVXJsLCAi
cmIiLCBmYWxzZSwgJGN0eHQpOwotICAgICAgICAkZGVzdCA9IGZvcGVuKCRpZDNEZXN0UGF0aCwg
IndiIik7Ci0gICAgICAgICRjb3BpZWQgPSBzdHJlYW1fY29weV90b19zdHJlYW0oJHNyYywgJGRl
c3QpOwotICAgICAgICBmY2xvc2UoJHNyYyk7Ci0gICAgICAgIGZjbG9zZSgkZGVzdCk7Ci0gICAg
ICAgIGlmICgkY29waWVkID09IDApIHsKLSAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoIkltcG9z
c2libGUgdG8gY29weSB0aGUgbGF0ZXN0IGdldGlkMyB6aXAgcmVsZWFzZSBmaWxlLiIsIEVfVVNF
Ul9XQVJOSU5HKTsKLSAgICAgICAgICAgIGdvdG8gYW5zd2VyaW5nOwotICAgICAgICB9Ci0gICAg
ICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAuICI8cC8+Z2V0SWQzIGRvd25sb2FkZWQg
dG86ICciIC4gJGlkM0Rlc3RQYXRoIC4gIiciOwotCi0gICAgICAgIGlmICghZXhlYygidW56aXAg
IiAuICRpZDNEZXN0UGF0aCAuICIgLWQgIiAuICR0bXBEaXIpKSB7Ci0gICAgICAgICAgICB0cmln
Z2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIGV4dHJhY3QgdGhlIGRvd25sb2FkZWQgemlwIGZpbGUu
IiwgRV9VU0VSX1dBUk5JTkcpOwotICAgICAgICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgICAg
IH0KLSAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5aaXAgZmlsZSBz
dWNjZXNzZnVsbHkgZXh0cmFjdGVkLiI7Ci0KLSAgICAgICAgJGdldElkM1NvdXJjZURpciA9IGZp
cnN0X2RpcigkZ2V0SWQzRGVzdERpciwgJHRtcERpcik7Ci0gICAgICAgIGlmICghJGdldElkM1Nv
dXJjZURpcikgewotICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigiSW1wb3NzaWJsZSB0byBmaW5k
IHRoZSBnZXRpZDMgZGlyZWN0b3J5IHdpdGggdGhlIFBIUCBjb2RlIHRvIGNvcHkuIiwgRV9VU0VS
X1dBUk5JTkcpOwotICAgICAgICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgICAgIH0KLSAgICAg
ICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgZGlyZWN0b3J5IHRv
IGNvcHkgZm91bmQgYXQ6ICciIC4gJGdldElkM1NvdXJjZURpciAuICInIjsKLQotCi0gICAgICAg
IHJjb3B5KCRnZXRJZDNTb3VyY2VEaXIsICRnZXRJZDNEZXN0RGlyKTsKLSAgICAgICAgJGh0bWxN
ZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgZGlyZWN0b3J5IGNvcGllZCB0byBp
dHMgZmluYWwgZGVzdGluYXRpb24gYXQ6ICciIC4gcmVhbHBhdGgoJGdldElkM1NvdXJjZURpcikg
LiAiJyI7Ci0KLSAgICAgICAgcnJtZGlyKCR0bXBEaXIpOwotICAgICAgICAkaHRtbE1lc3NhZ2Ug
PSAkaHRtbE1lc3NhZ2UgLiAiPHAvPkRlbGV0ZWQgYWxsIHRlbXBvcmFsIGZpbGVzIGF0OiAnIiAu
ICR0bXBEaXIgLiAiJyI7Ci0gICAgfQotCi0KLSAgICAvLyBnZXRpZDMgZG93bmxvYWRlZC4gTGV0
J3MgY3JlYXRlIHRoZSBkYXRhYmFzZSBmaWxlLgotICAgIHJlcXVpcmVfb25jZSgiZ2V0aWQzL2dl
dGlkMy5waHAiKTsKLSAgICAkZ2V0SUQzID0gbmV3IGdldElEMzsKLQotICAgICRpZDNGaWxlTmFt
ZXMgPSBhcnJheV9kaWZmKHNjYW5kaXIoJG1lZGlhRGlyZWN0b3J5KSwgYXJyYXkoIi4iLCAiLi4i
KSk7Ci0KLSAgICBmb3JlYWNoICgkaWQzRmlsZU5hbWVzIGFzICRpZDNGaWxlTmFtZSkgewotICAg
ICAgICAkaWQzID0gJGdldElEMy0+YW5hbHl6ZSgkbWVkaWFEaXJlY3RvcnkgLiAiLyIgLiAkaWQz
RmlsZU5hbWUpOwotICAgICAgICAkcGxheWZpbGUgPSBhcnJheSgKLSAgICAgICAgICAgICJmaWxl
TmFtZSIgPT4gJGlkM1siZmlsZW5hbWUiXSwKLSAgICAgICAgICAgICJmaWxlU2l6ZSIgPT4gJGlk
M1siZmlsZXNpemUiXSwKLSAgICAgICAgICAgICJwbGF5VGltZSIgPT4gJGlkM1sicGxheXRpbWVf
c2Vjb25kcyJdLAotICAgICAgICAgICAgImF1ZGlvU3RhcnQiID0+ICRpZDNbImF2ZGF0YW9mZnNl
dCJdLAotICAgICAgICAgICAgImF1ZGlvRW5kIiA9PiAkaWQzWyJhdmRhdGFlbmQiXSwKLSAgICAg
ICAgICAgICJhdWRpb0xlbmd0aCIgPT4gJGlkM1siYXZkYXRhZW5kIl0gLSAkaWQzWyJhdmRhdGFv
ZmZzZXQiXSwKLSAgICAgICAgICAgICJhcnRpc3QiID0+ICRpZDNbInRhZ3MiXVsiaWQzdjIiXVsi
YXJ0aXN0Il1bMF0sCi0gICAgICAgICAgICAidGl0bGUiID0+ICRpZDNbInRhZ3MiXVsiaWQzdjIi
XVsidGl0bGUiXVswXSwKLSAgICAgICAgICAgICJiaXRSYXRlIiA9PiAkaWQzWyJhdWRpbyJdWyJi
aXRyYXRlIl0sCi0gICAgICAgICAgICAibWltZVR5cGUiID0+ICRpZDNbIm1pbWVfdHlwZSJdLAot
ICAgICAgICAgICAgImZpbGVGb3JtYXQiID0+ICRpZDNbImZpbGVmb3JtYXQiXSwKLSAgICAgICAg
KTsKLSAgICAgICAgaWYgKGVtcHR5KCRwbGF5ZmlsZVsiYXJ0aXN0Il0pIHx8IGVtcHR5KCRwbGF5
ZmlsZVsidGl0bGUiXSkpCi0gICAgICAgICAgICBsaXN0KCRwbGF5ZmlsZVsiYXJ0aXN0Il0sICRw
bGF5ZmlsZVsidGl0bGUiXSkgPSBleHBsb2RlKCIgLSAiLCBzdWJzdHIoJHBsYXlmaWxlWyJmaWxl
TmFtZSJdLCAwICwgLTQpKTsKLSAgICAgICAgJHBsYXlGaWxlc1tdID0gJHBsYXlmaWxlOwotICAg
IH0KLQotICAgIGlmICghZmlsZV9wdXRfY29udGVudHMoJGRhdGFiYXNlRmlsZSwgc2VyaWFsaXpl
KCRwbGF5RmlsZXMpKSkgewotICAgICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIHdy
aXRlIHRoZSBnZXRpZDMgZGIuIiwgRV9VU0VSX1dBUk5JTkcpOwotICAgICAgICBnb3RvIGFuc3dl
cmluZzsKLSAgICB9Ci0gICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5Xcml0
dGVuIG5ldyBkYXRhYmFzZSBmaWxlIGF0OiAnIiAuICRkYXRhYmFzZUZpbGUgLiAiJyI7Ci0KLQot
ICAgIC8vIERhdGFiYXNlIGNyZWF0ZWQsIGV2ZXJ5dGhpbmcgT0suCi0gICAgJGh0dHBTdGF0dXMg
PSAiMjAwIE9LIjsKLQotCi1hbnN3ZXJpbmc6Ci0KLSAgICBoZWFkZXIoIlN0YXR1czogIiAuICRo
dHRwU3RhdHVzKTsKLSAgICBoZWFkZXIoIkhUVFAvMS4xICIgLiAkaHR0cFN0YXR1cyk7Ci0gICAg
aGVhZGVyKCJDb25uZWN0aW9uOiBjbG9zZSIpOwotICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiB0
ZXh0L2h0bWwiKTsKLQotICAgICRodG1sTWVzc2FnZSA9ICI8aHRtbD48Ym9keT48aDE+IiAuICRo
dHRwU3RhdHVzIC4gIjwvaDE+IiAuICRodG1sTWVzc2FnZTsKLQotICAgIGlmICgkaHR0cFN0YXR1
cyA9PSAiNTAwIEludGVybmFsIFNlcnZlciBFcnJvciIpIHsKLSAgICAgICAgaWYgKGZ1bmN0aW9u
X2V4aXN0cygiZXJyb3JfZ2V0X2xhc3QiKSkgewotICAgICAgICAgICAgJGVycm9yQXJyYXkgPSBl
cnJvcl9nZXRfbGFzdCgpOwotICAgICAgICAgICAgaWYgKCRlcnJvckFycmF5KSB7Ci0gICAgICAg
ICAgICAgICAgJGh0bWxNZXNzYWdlID0gc3ByaW50ZigiJXM8cC8+RXJyb3IgdHlwZTogJWQ8cC8+
RXJyb3IgbWVzc2FnZTogJXM8cC8+Ii4KLSAgICAgICAgICAgICAgICAgICAgIkVycm9yIGZpbGU6
ICVzPHAvPkVycm9yIGxpbmU6ICVkIiwKLSAgICAgICAgICAgICAgICAgICAgJGh0bWxNZXNzYWdl
LCAkZXJyb3JBcnJheVsidHlwZSJdLCAkZXJyb3JBcnJheVsibWVzc2FnZSJdLAotICAgICAgICAg
ICAgICAgICAgICAkZXJyb3JBcnJheVsiZmlsZSJdLCAkZXJyb3JBcnJheVsibGluZSJdKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1l
c3NhZ2UgLiAiPC9ib2R5PjxodG1sPiI7Ci0KLSAgICBwcmludCgkaHRtbE1lc3NhZ2UpOwotICAg
IGZsdXNoKCk7Ci0gICAgZXhpdDsKLT8+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlcy9kaXItaGVscGVycy5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZXMvZGlyLWhlbHBlcnMucGhwCShyZXZpc2lvbiAyNzcyNjMpCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9kaXItaGVscGVycy5waHAJKG5vbmV4aXN0ZW50
KQpAQCAtMSw3NyArMCwwIEBACi08P3BocAotcmVxdWlyZV9vbmNlICdwb3J0YWJpbGl0eUxheWVy
LnBocCc7Ci0KLWZ1bmN0aW9uIHRtcGRpcigkZGlyPUZBTFNFLCAkcHJlZml4PSdwaHAnKQotewot
ICAgIGlmICgkZGlyKSB7Ci0gICAgICAgICR0bXBGaWxlID0gdGVtcG5hbSgkZGlyLCAkcHJlZml4
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoIXN5c19nZXRfdGVtcF9kaXIoKSkKLSAgICAg
ICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAgICAgJHRtcEZpbGUgPSB0ZW1wbmFtKHN5c19nZXRf
dGVtcF9kaXIoKSwgJHByZWZpeCk7Ci0gICAgfQotCi0gICAgaWYgKCFmaWxlX2V4aXN0cygkdG1w
RmlsZSkpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLSAgICB1bmxpbmsoJHRtcEZpbGUpOwotICAg
IG1rZGlyKCR0bXBGaWxlKTsKLSAgICBpZiAoIWlzX2RpcigkdG1wRmlsZSkpCi0gICAgICAgIHJl
dHVybiBGQUxTRTsKLQotICAgIHJldHVybiAkdG1wRmlsZTsKLX0KLQotZnVuY3Rpb24gcnJtZGly
KCRkaXIpCi17Ci0gICAgaWYgKGlzX2RpcigkZGlyKSkgewotICAgICAgICAkb2JqZWN0cyA9IGFy
cmF5X2RpZmYoc2NhbmRpcigkZGlyKSwgYXJyYXkoIi4iLCAiLi4iKSk7Ci0gICAgICAgIGZvcmVh
Y2ggKCRvYmplY3RzIGFzICRvYmplY3QpCi0gICAgICAgICAgICAoaXNfZGlyKCRkaXIgLiAiLyIg
LiAkb2JqZWN0KSkgPyBycm1kaXIoJGRpciAuICIvIiAuICRvYmplY3QpIDogdW5saW5rKCRkaXIg
LiAiLyIgLiAkb2JqZWN0KTsKLSAgICAgICAgcmVzZXQoJG9iamVjdHMpOwotICAgICAgICBybWRp
cigkZGlyKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHJjb3B5KCRzcmMsICRkc3QpCi17Ci0gICAg
aWYgKGZpbGVfZXhpc3RzKCRkc3QpKQotICAgICAgICBycm1kaXIoJGRzdCk7Ci0gICAgaWYgKGlz
X2Rpcigkc3JjKSkgewotICAgICAgICBta2RpcigkZHN0KTsKLSAgICAgICAgJGZpbGVzID0gYXJy
YXlfZGlmZihzY2FuZGlyKCRzcmMpLCBhcnJheSgiLiIsICIuLiIpKTsKLSAgICAgICAgZm9yZWFj
aCAoJGZpbGVzIGFzICRmaWxlKQotICAgICAgICAgIHJjb3B5KCIkc3JjLyRmaWxlIiwgIiRkc3Qv
JGZpbGUiKTsKLSAgICB9IGVsc2UgaWYgKGZpbGVfZXhpc3RzKCRzcmMpKSB7Ci0gICAgICAgIGNv
cHkoJHNyYywgJGRzdCk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBmaXJzdF9kaXIoJG5hbWUsICRk
aXI9RkFMU0UpCi17Ci0gICAgJHJlc3VsdCA9IEZBTFNFOwotICAgICRyb290ID0gJGRpciA/ICRk
aXIgOiAiLi8iOwotICAgICRxdWV1ZSA9IGFycmF5KHJlYWxwYXRoKCRyb290KSk7Ci0KLSAgICB3
aGlsZSAoc2l6ZW9mKCRxdWV1ZSkpIHsKLSAgICAgICAgJHZlcnRleCA9IGFycmF5X3BvcCgkcXVl
dWUpOwotICAgICAgICAkb2JqZWN0cyA9IGFycmF5X2RpZmYoc2NhbmRpcigkdmVydGV4KSwgYXJy
YXkoIi4iLCAiLi4iKSk7Ci0gICAgICAgIGZvcmVhY2ggKCRvYmplY3RzIGFzICRvYmplY3QpIHsK
LSAgICAgICAgICAgICRmdWxsUGF0aCA9ICR2ZXJ0ZXggLiAiLyIgLiAkb2JqZWN0OwotICAgICAg
ICAgICAgaWYgKGlzX2RpcigkZnVsbFBhdGgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCRuYW1l
ID09IGJhc2VuYW1lKCRmdWxsUGF0aCkpIHsKLSAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCA9
ICRmdWxsUGF0aDsKLSAgICAgICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGFycmF5X3Vuc2hpZnQoJHF1ZXVl
LCAkZnVsbFBhdGgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgIH0KLQotCi1jbGVhbnVwOgotCi0gICAgcmV0dXJuICRyZXN1bHQ7Ci19Ci0/PgotCklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9wb3J0YWJpbGl0eUxheWVyLnBo
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9wb3J0YWJp
bGl0eUxheWVyLnBocAkocmV2aXNpb24gMjc3MjYzKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZXMvcG9ydGFiaWxpdHlMYXllci5waHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw2OCAr
MCwwIEBACi08P3BocAotCi1pZiAoIWZ1bmN0aW9uX2V4aXN0cygnc3lzX2dldF90ZW1wX2Rpcicp
KSB7Ci0gICAgLy8gQmFzZWQgb24gaHR0cDovL3d3dy5waHBpdC5uZXQvYXJ0aWNsZS9jcmVhdGlu
Zy16aXAtdGFyLWFyY2hpdmVzLWR5bmFtaWNhbGx5LXBocC8yLwotICAgIC8vIElmIHRoZSBidWls
dGluIFBIUCBzeXNfZ2V0X3RlbXBfZGlyIGRvZXNuJ3QgZXhpc3QsIHdlIHJlcGxhY2UgaXQgd2l0
aCBvbmUgdGhhdCB3aWxsCi0gICAgLy8gdHJ5IHRvIGd1ZXNzIGZyb20gdGhlIGVudmlyb25tZW50
LiAgU2luY2Ugc3lzX2dldF90ZW1wX2RpcigpIGRvZXNuJ3QgcmV0dXJuIGEgdHJhaWxpbmcKLSAg
ICAvLyBzbGFzaCBvbiBhbGwgc3lzdGVtIChzZWUgY29tbWVudCBhdCBodHRwOi8vdXMucGhwLm5l
dC9zeXNfZ2V0X3RlbXBfZGlyKSwgd2UgZG9uJ3QKLSAgICAvLyBhcHBlbmQgYSB0cmFpbGluZyBz
bGFzaCwgYW5kIGV4cGVjdCBjYWxsZXJzIHRvIGFwcGVuZCBvbmUgd2hlbiBuZWVkZWQuCi0gICAg
ZnVuY3Rpb24gc3lzX2dldF90ZW1wX2RpcigpCi0gICAgewotICAgICAgICAvLyBUcnkgdG8gZ2V0
IGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGUKLSAgICAgICAgaWYgKCFlbXB0eSgkX0VOVlsnVE1Q
J10pKQotICAgICAgICAgICAgcmV0dXJuIHJlYWxwYXRoKCRfRU5WWydUTVAnXSk7Ci0gICAgICAg
IGlmICghZW1wdHkoJF9FTlZbJ1RNUERJUiddKSkKLSAgICAgICAgICAgIHJldHVybiByZWFscGF0
aCgkX0VOVlsnVE1QRElSJ10pOwotICAgICAgICBpZiAoIWVtcHR5KCRfRU5WWydURU1QJ10pKQot
ICAgICAgICAgICAgcmV0dXJuIHJlYWxwYXRoKCAkX0VOVlsnVEVNUCddKTsKLSAgICAgICAgcmV0
dXJuICIvdG1wIjsKLSAgICB9Ci19Ci0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdmaWxlX3B1dF9j
b250ZW50cycpKSB7Ci0gICAgZnVuY3Rpb24gZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCAk
ZGF0YSkKLSAgICB7Ci0gICAgICAgICRoYW5kbGUgPSBmb3BlbigkZmlsZW5hbWUsICJ3Iik7Ci0g
ICAgICAgIGlmICghJGhhbmRsZSkKLSAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAgICAg
JGJ5dGVzV3JpdHRlbiA9IGZ3cml0ZSgkaGFuZGxlLCAkZGF0YSk7Ci0gICAgICAgIGlmICghZmNs
b3NlKCRoYW5kbGUpKQotICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgICAgICByZXR1cm4g
JGJ5dGVzV3JpdHRlbjsKLSAgICB9Ci19Ci0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdzdHJlYW1f
Y29weV90b19zdHJlYW0nKSkgewotICAgIGZ1bmN0aW9uIHN0cmVhbV9jb3B5X3RvX3N0cmVhbSgk
c291cmNlLCAkZGVzdCkKLSAgICB7Ci0gICAgICAgICRyZXN1bHQgPSAwOwotICAgICAgICB3aGls
ZSAoIWZlb2YoJHNvdXJjZSkpIHsKLSAgICAgICAgICAgICRieXRlc1dyaXR0ZW4gPSBmd3JpdGUo
JGRlc3QsIGZyZWFkKCRzb3VyY2UsIDgxOTIpKTsKLSAgICAgICAgICAgIGlmICghJGJ5dGVzV3Jp
dHRlbikKLSAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgICAgICAgICAkcmVzdWx0
ID0gJHJlc3VsdCArICRieXRlc1dyaXR0ZW47Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4g
JHJlc3VsdDsKLSAgICB9Ci19Ci0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdzY2FuZGlyJykpIHsK
LSAgICBmdW5jdGlvbiBzY2FuZGlyKCRkaXIpCi0gICAgewotICAgICAgICBpZiAoIWlzX2Rpcigk
ZGlyKSkKLSAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgICAgICAkZGggPSBvcGVuZGly
KCRkaXIpOwotICAgICAgICB3aGlsZSAoJGZpbGVuYW1lID0gcmVhZGRpcigkZGgpKSB7Ci0gICAg
ICAgICAgICAkZmlsZXNbXSA9ICRmaWxlbmFtZTsKLSAgICAgICAgfQotCi0gICAgICAgIGNsb3Nl
ZGlyKCRkaCk7Ci0gICAgICAgIHNvcnQoJGZpbGVzKTsKLQotICAgICAgICByZXR1cm4gJGZpbGVz
OwotICAgIH0KLX0KLQotPz4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VzL3BvcnRhYmlsaXR5TGF5ZXIucGhwCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDog
c3ZuOmV4ZWN1dGFibGUKIyMgLTEgKzAsMCAjIwotKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHBy
b3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZW50L2NyZWF0ZS1pZDMtZGIucGhw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL2NvbnRlbnQvY3JlYXRlLWlkMy1kYi5w
aHAJKHJldmlzaW9uIDI3NzI2MykJKGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9y
ZXNvdXJjZXMvY3JlYXRlLWlkMy1kYi5waHA6Mjc3MjYzKQorKysgTGF5b3V0VGVzdHMvbWVkaWEv
Y29udGVudC9jcmVhdGUtaWQzLWRiLnBocAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3NyBA
QAorPD9waHAKKworICAgIC8vIFRoaXMgc2NyaXB0IGlzIGJhc2VkIG9uIHRoZSB3b3JrIGRvbmUg
YnkgZ2FkZ2V0Z3VydQorICAgIC8vIDxkYXZpZEB2dWlzdGJpamwubmw+IGF0CisgICAgLy8gaHR0
cHM6Ly9naXRodWIuY29tL2dhZGdldGd1cnUvUEhQLVN0cmVhbWluZy1BdWRpbyBhbmQgcmVsZWFz
ZWQKKyAgICAvLyB1bmRlciB0aGUgUHVibGljIERvbWFpbi4KKworCisgICAgLy8gVGhpcyBzY3Jp
cHQgY3JlYXRlcywgb3ZlcndyaXRpbmcgaWYgbmVlZGVkLCB0aGUgIm1ldGFkYXRhLmRiIgorICAg
IC8vIGZpbGUgdXNlZCBieSBzY3JpcHRzIHN1Y2ggYXMgInNlcnZlLXZpZGVvLnB5Ii4KKyAgICAv
LworICAgIC8vIEZvciBjcmVhdGluZyBvciB1cGRhdGluZyBhbiBleGlzdGluZyBmaWxlIHlvdSBo
YXZlIHRvIHJ1biB0aGUKKyAgICAvLyBodHRwIHNlcnZlciB1c2VkIGJ5IHRoZSB0ZXN0cyB3aXRo
OgorICAgIC8vCisgICAgLy8gJCBUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtaHR0cGQKKyAgICAv
LworICAgIC8vIFRoZW4geW91IHdpbGwganVzdCBoYXZlIHRvIHVzZSBhIGJyb3dzZXIgdG8gb3Bl
biBhbiBVUkwgb2YgdGhlCisgICAgLy8gdHlwZToKKyAgICAvLworICAgIC8vIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9tZWRpYS9yZXNvdXJjZXMvY3JlYXRlLWlkMy1kYi5waHA/bmFtZT0uLi8uLi8u
Li8uLi9tZWRpYS9jb250ZW50L3NpbGVuY2Uud2F2CisgICAgLy8KKyAgICAvLyBXaXRoIHRoaXMs
IGEgbmV3ICJtZXRhZGFiYS5kYiIgZmlsZSB3aWxsIGJlIGNyZWF0ZSBpbiB0aGUKKyAgICAvLyBk
aXJlY3RvcnkgY29udGFpbmluZyB0aGUgcmVmZXJyZWQgZmlsZS4gSW4gdGhpcyBleGFtcGxlLCB0
aGUKKyAgICAvLyBkYXRhYmFzZSB3aWxsIGJlIGNyZWF0ZWQgYXQ6CisgICAgLy8KKyAgICAvLyAk
IExheW91dFRlc3RzL21lZGlhL2NvbnRlbnQvbWV0YWRhdGEuZGIKKworCisgICAgcmVxdWlyZV9v
bmNlICcuLi8uLi9yZXNvdXJjZXMvcG9ydGFiaWxpdHlMYXllci5waHAnOworICAgIHJlcXVpcmVf
b25jZSAnLi4vLi4vcmVzb3VyY2VzL2Rpci1oZWxwZXJzLnBocCc7CisKKyAgICAvLyA1MDAgb24g
ZXJyb3JzCisgICAgJGh0dHBTdGF0dXMgPSAiNTAwIEludGVybmFsIFNlcnZlciBFcnJvciI7Cisg
ICAgJGh0bWxNZXNzYWdlID0gIiI7CisKKyAgICBpZiAoIWFycmF5X2tleV9leGlzdHMoIm5hbWUi
LCAkX0dFVCkpIHsKKyAgICAgICAgdHJpZ2dlcl9lcnJvcigiWW91IGhhdmUgbm90IHNwZWNpZmll
ZCBhICduYW1lJyBwYXJhbWV0ZXIuIiwgRV9VU0VSX1dBUk5JTkcpOworICAgICAgICBnb3RvIGFu
c3dlcmluZzsKKyAgICB9CisgICAgJG1lZGlhRGlyZWN0b3J5ID0gZGlybmFtZSgkX0dFVFsibmFt
ZSJdKTsKKworICAgIGlmICghaXNfZGlyKCRtZWRpYURpcmVjdG9yeSkpIHsKKyAgICAgICAgdHJp
Z2dlcl9lcnJvcigiVGhlIHByb3ZpZGVkIGRpcmVjdG9yeSBwYXRoIGRvZXNuJ3QgZXhpc3QuIiwg
RV9VU0VSX1dBUk5JTkcpOworICAgICAgICBnb3RvIGFuc3dlcmluZzsKKyAgICB9CisgICAgJGRh
dGFiYXNlRmlsZSA9IHJlYWxwYXRoKCRtZWRpYURpcmVjdG9yeSkgLiAiL21ldGFkYXRhLmRiIjsK
KworICAgIGlmIChmaWxlX2V4aXN0cygkZGF0YWJhc2VGaWxlKSkgeworICAgICAgICB1bmxpbmso
JGRhdGFiYXNlRmlsZSk7CisgICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAuICI8
cC8+RGVsZXRlZCBwcmV2aW91c2x5IGV4aXN0aW5nIGRiIGZpbGUgYXQ6ICciIC4gJGRhdGFiYXNl
RmlsZSAuICInIjsKKyAgICB9CisKKyAgICAvLyBXZSBkb24ndCBoYXZlIGdldGlkMyBpbiBXZWJL
aXQuIElmIG5vdCBjdXJyZW50bHkgcHJlc2VudCwgd2UKKyAgICAvLyB3aWxsIHRyeSB0byBkb3du
bG9hZCBpdCBub3cgYmVmb3JlIG1ha2luZyB1c2Ugb2YgaXQuCisgICAgLy8KKyAgICAvLyBnZXRp
ZDMgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9nZXRpZDMuc291cmNlZm9yZ2UubmV0CisKKyAgICAk
Z2V0SWQzRGVzdERpciA9ICJnZXRpZDMiOworICAgIGlmICghZmlsZV9leGlzdHMoJGdldElkM0Rl
c3REaXIpKSB7CisKKyAgICAgICAgJHRtcERpciA9IHRtcGRpcihGQUxTRSwgInBocCIpOworICAg
ICAgICBpZiAoIWlzX2RpcigkdG1wRGlyKSkgeworICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigi
SW1wb3NzaWJsZSB0byBjcmVhdGUgdGVtcG9yYWwgZGlyZWN0b3J5LiIsIEVfVVNFUl9XQVJOSU5H
KTsKKyAgICAgICAgICAgIGdvdG8gYW5zd2VyaW5nOworICAgICAgICB9CisKKyAgICAgICAgJGlk
M0Rlc3RQYXRoID0gJHRtcERpciAuICIvZ2V0aWQzLnppcCI7CisgICAgICAgICRwaHBWZXJzaW9u
ID0gZXhwbG9kZSgiLiIsIFBIUF9WRVJTSU9OKTsKKyAgICAgICAgaWYgKCgkcGhwVmVyc2lvblsw
XSA+IDQpICYmICgkcGhwVmVyc2lvblsxXSA+IDApKQorICAgICAgICAgICAgJGlkM1VybCA9ICJo
dHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2dldGlkMy9maWxlcy9nZXRJRDMlMjglMjkl
MjAxLngvMS45LjcvZ2V0SUQzLTEuOS43LnppcC9kb3dubG9hZCI7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICRpZDNVcmwgPSAiaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9nZXRp
ZDMvZmlsZXMvZ2V0SUQzJTI4JTI5JTIwMS54LzEuNy4xMC9nZXRpZDMtMS43LjEwLTIwMDkwNDI2
LnppcC9kb3dubG9hZCI7CisgICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAuICI8
cC8+Z2V0SWQzIG5vdCBpbiB0aGUgc3lzdGVtLjxwLz5Eb3dubG9hZGluZyBmcm9tOiAnIiAuICRp
ZDNVcmwgLiAiJyI7CisKKyAgICAgICAgJGN0eHRPcHRzID0gYXJyYXkoImh0dHAiID0+CisgICAg
ICAgICAgICBhcnJheSgKKyAgICAgICAgICAgICAgICAibWV0aG9kIiAgPT4gIkdFVCIsCisgICAg
ICAgICAgICAgICAgInRpbWVvdXQiID0+IDYwLAorICAgICAgICAgICAgKQorICAgICAgICApOwor
ICAgICAgICAkY3R4dCA9IHN0cmVhbV9jb250ZXh0X2NyZWF0ZSgkY3R4dE9wdHMpOworICAgICAg
ICAkc3JjID0gZm9wZW4oJGlkM1VybCwgInJiIiwgZmFsc2UsICRjdHh0KTsKKyAgICAgICAgJGRl
c3QgPSBmb3BlbigkaWQzRGVzdFBhdGgsICJ3YiIpOworICAgICAgICAkY29waWVkID0gc3RyZWFt
X2NvcHlfdG9fc3RyZWFtKCRzcmMsICRkZXN0KTsKKyAgICAgICAgZmNsb3NlKCRzcmMpOworICAg
ICAgICBmY2xvc2UoJGRlc3QpOworICAgICAgICBpZiAoJGNvcGllZCA9PSAwKSB7CisgICAgICAg
ICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIGNvcHkgdGhlIGxhdGVzdCBnZXRpZDMg
emlwIHJlbGVhc2UgZmlsZS4iLCBFX1VTRVJfV0FSTklORyk7CisgICAgICAgICAgICBnb3RvIGFu
c3dlcmluZzsKKyAgICAgICAgfQorICAgICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2Ug
LiAiPHAvPmdldElkMyBkb3dubG9hZGVkIHRvOiAnIiAuICRpZDNEZXN0UGF0aCAuICInIjsKKwor
ICAgICAgICBpZiAoIWV4ZWMoInVuemlwICIgLiAkaWQzRGVzdFBhdGggLiAiIC1kICIgLiAkdG1w
RGlyKSkgeworICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigiSW1wb3NzaWJsZSB0byBleHRyYWN0
IHRoZSBkb3dubG9hZGVkIHppcCBmaWxlLiIsIEVfVVNFUl9XQVJOSU5HKTsKKyAgICAgICAgICAg
IGdvdG8gYW5zd2VyaW5nOworICAgICAgICB9CisgICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1s
TWVzc2FnZSAuICI8cC8+WmlwIGZpbGUgc3VjY2Vzc2Z1bGx5IGV4dHJhY3RlZC4iOworCisgICAg
ICAgICRnZXRJZDNTb3VyY2VEaXIgPSBmaXJzdF9kaXIoJGdldElkM0Rlc3REaXIsICR0bXBEaXIp
OworICAgICAgICBpZiAoISRnZXRJZDNTb3VyY2VEaXIpIHsKKyAgICAgICAgICAgIHRyaWdnZXJf
ZXJyb3IoIkltcG9zc2libGUgdG8gZmluZCB0aGUgZ2V0aWQzIGRpcmVjdG9yeSB3aXRoIHRoZSBQ
SFAgY29kZSB0byBjb3B5LiIsIEVfVVNFUl9XQVJOSU5HKTsKKyAgICAgICAgICAgIGdvdG8gYW5z
d2VyaW5nOworICAgICAgICB9CisgICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAu
ICI8cC8+Z2V0SWQzIGRpcmVjdG9yeSB0byBjb3B5IGZvdW5kIGF0OiAnIiAuICRnZXRJZDNTb3Vy
Y2VEaXIgLiAiJyI7CisKKworICAgICAgICByY29weSgkZ2V0SWQzU291cmNlRGlyLCAkZ2V0SWQz
RGVzdERpcik7CisgICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAuICI8cC8+Z2V0
SWQzIGRpcmVjdG9yeSBjb3BpZWQgdG8gaXRzIGZpbmFsIGRlc3RpbmF0aW9uIGF0OiAnIiAuIHJl
YWxwYXRoKCRnZXRJZDNTb3VyY2VEaXIpIC4gIiciOworCisgICAgICAgIHJybWRpcigkdG1wRGly
KTsKKyAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5EZWxldGVkIGFs
bCB0ZW1wb3JhbCBmaWxlcyBhdDogJyIgLiAkdG1wRGlyIC4gIiciOworICAgIH0KKworCisgICAg
Ly8gZ2V0aWQzIGRvd25sb2FkZWQuIExldCdzIGNyZWF0ZSB0aGUgZGF0YWJhc2UgZmlsZS4KKyAg
ICByZXF1aXJlX29uY2UoImdldGlkMy9nZXRpZDMucGhwIik7CisgICAgJGdldElEMyA9IG5ldyBn
ZXRJRDM7CisKKyAgICAkaWQzRmlsZU5hbWVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRtZWRpYURp
cmVjdG9yeSksIGFycmF5KCIuIiwgIi4uIikpOworCisgICAgZm9yZWFjaCAoJGlkM0ZpbGVOYW1l
cyBhcyAkaWQzRmlsZU5hbWUpIHsKKyAgICAgICAgJGlkMyA9ICRnZXRJRDMtPmFuYWx5emUoJG1l
ZGlhRGlyZWN0b3J5IC4gIi8iIC4gJGlkM0ZpbGVOYW1lKTsKKyAgICAgICAgJHBsYXlmaWxlID0g
YXJyYXkoCisgICAgICAgICAgICAiZmlsZU5hbWUiID0+ICRpZDNbImZpbGVuYW1lIl0sCisgICAg
ICAgICAgICAiZmlsZVNpemUiID0+ICRpZDNbImZpbGVzaXplIl0sCisgICAgICAgICAgICAicGxh
eVRpbWUiID0+ICRpZDNbInBsYXl0aW1lX3NlY29uZHMiXSwKKyAgICAgICAgICAgICJhdWRpb1N0
YXJ0IiA9PiAkaWQzWyJhdmRhdGFvZmZzZXQiXSwKKyAgICAgICAgICAgICJhdWRpb0VuZCIgPT4g
JGlkM1siYXZkYXRhZW5kIl0sCisgICAgICAgICAgICAiYXVkaW9MZW5ndGgiID0+ICRpZDNbImF2
ZGF0YWVuZCJdIC0gJGlkM1siYXZkYXRhb2Zmc2V0Il0sCisgICAgICAgICAgICAiYXJ0aXN0IiA9
PiAkaWQzWyJ0YWdzIl1bImlkM3YyIl1bImFydGlzdCJdWzBdLAorICAgICAgICAgICAgInRpdGxl
IiA9PiAkaWQzWyJ0YWdzIl1bImlkM3YyIl1bInRpdGxlIl1bMF0sCisgICAgICAgICAgICAiYml0
UmF0ZSIgPT4gJGlkM1siYXVkaW8iXVsiYml0cmF0ZSJdLAorICAgICAgICAgICAgIm1pbWVUeXBl
IiA9PiAkaWQzWyJtaW1lX3R5cGUiXSwKKyAgICAgICAgICAgICJmaWxlRm9ybWF0IiA9PiAkaWQz
WyJmaWxlZm9ybWF0Il0sCisgICAgICAgICk7CisgICAgICAgIGlmIChlbXB0eSgkcGxheWZpbGVb
ImFydGlzdCJdKSB8fCBlbXB0eSgkcGxheWZpbGVbInRpdGxlIl0pKQorICAgICAgICAgICAgbGlz
dCgkcGxheWZpbGVbImFydGlzdCJdLCAkcGxheWZpbGVbInRpdGxlIl0pID0gZXhwbG9kZSgiIC0g
Iiwgc3Vic3RyKCRwbGF5ZmlsZVsiZmlsZU5hbWUiXSwgMCAsIC00KSk7CisgICAgICAgICRwbGF5
RmlsZXNbXSA9ICRwbGF5ZmlsZTsKKyAgICB9CisKKyAgICBpZiAoIWZpbGVfcHV0X2NvbnRlbnRz
KCRkYXRhYmFzZUZpbGUsIHNlcmlhbGl6ZSgkcGxheUZpbGVzKSkpIHsKKyAgICAgICAgdHJpZ2dl
cl9lcnJvcigiSW1wb3NzaWJsZSB0byB3cml0ZSB0aGUgZ2V0aWQzIGRiLiIsIEVfVVNFUl9XQVJO
SU5HKTsKKyAgICAgICAgZ290byBhbnN3ZXJpbmc7CisgICAgfQorICAgICRodG1sTWVzc2FnZSA9
ICRodG1sTWVzc2FnZSAuICI8cC8+V3JpdHRlbiBuZXcgZGF0YWJhc2UgZmlsZSBhdDogJyIgLiAk
ZGF0YWJhc2VGaWxlIC4gIiciOworCisKKyAgICAvLyBEYXRhYmFzZSBjcmVhdGVkLCBldmVyeXRo
aW5nIE9LLgorICAgICRodHRwU3RhdHVzID0gIjIwMCBPSyI7CisKKworYW5zd2VyaW5nOgorCisg
ICAgaGVhZGVyKCJTdGF0dXM6ICIgLiAkaHR0cFN0YXR1cyk7CisgICAgaGVhZGVyKCJIVFRQLzEu
MSAiIC4gJGh0dHBTdGF0dXMpOworICAgIGhlYWRlcigiQ29ubmVjdGlvbjogY2xvc2UiKTsKKyAg
ICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9odG1sIik7CisKKyAgICAkaHRtbE1lc3NhZ2Ug
PSAiPGh0bWw+PGJvZHk+PGgxPiIgLiAkaHR0cFN0YXR1cyAuICI8L2gxPiIgLiAkaHRtbE1lc3Nh
Z2U7CisKKyAgICBpZiAoJGh0dHBTdGF0dXMgPT0gIjUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3Ii
KSB7CisgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoImVycm9yX2dldF9sYXN0IikpIHsKKyAg
ICAgICAgICAgICRlcnJvckFycmF5ID0gZXJyb3JfZ2V0X2xhc3QoKTsKKyAgICAgICAgICAgIGlm
ICgkZXJyb3JBcnJheSkgeworICAgICAgICAgICAgICAgICRodG1sTWVzc2FnZSA9IHNwcmludGYo
IiVzPHAvPkVycm9yIHR5cGU6ICVkPHAvPkVycm9yIG1lc3NhZ2U6ICVzPHAvPiIuCisgICAgICAg
ICAgICAgICAgICAgICJFcnJvciBmaWxlOiAlczxwLz5FcnJvciBsaW5lOiAlZCIsCisgICAgICAg
ICAgICAgICAgICAgICRodG1sTWVzc2FnZSwgJGVycm9yQXJyYXlbInR5cGUiXSwgJGVycm9yQXJy
YXlbIm1lc3NhZ2UiXSwKKyAgICAgICAgICAgICAgICAgICAgJGVycm9yQXJyYXlbImZpbGUiXSwg
JGVycm9yQXJyYXlbImxpbmUiXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cisg
ICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjwvYm9keT48aHRtbD4iOworCisgICAg
cHJpbnQoJGh0bWxNZXNzYWdlKTsKKyAgICBmbHVzaCgpOworICAgIGV4aXQ7Cis/PgpJbmRleDog
TGF5b3V0VGVzdHMvbWVkaWEvY29udGVudC9jcmVhdGUtaWQzLWRiLnBocAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZW50L2NyZWF0ZS1pZDMtZGIucGhwCShyZXZpc2lvbiAy
NzcyNjMpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZW50L2NyZWF0ZS1pZDMtZGIucGhwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNSBAQAorIyEvdXNyL2Jpbi9lbnYgcGhwCisKIDw/cGhw
CiAKICAgICAvLyBUaGlzIHNjcmlwdCBpcyBiYXNlZCBvbiB0aGUgd29yayBkb25lIGJ5IGdhZGdl
dGd1cnUKQEAgLTksOCArMTEsOCBAQAogICAgIC8vIFRoaXMgc2NyaXB0IGNyZWF0ZXMsIG92ZXJ3
cml0aW5nIGlmIG5lZWRlZCwgdGhlICJtZXRhZGF0YS5kYiIKICAgICAvLyBmaWxlIHVzZWQgYnkg
c2NyaXB0cyBzdWNoIGFzICJzZXJ2ZS12aWRlby5weSIuCiAgICAgLy8KLSAgICAvLyBGb3IgY3Jl
YXRpbmcgb3IgdXBkYXRpbmcgYW4gZXhpc3RpbmcgZmlsZSB5b3UgaGF2ZSB0byBydW4gdGhlCi0g
ICAgLy8gaHR0cCBzZXJ2ZXIgdXNlZCBieSB0aGUgdGVzdHMgd2l0aDoKKyAgICAvLyBGb3IgY3Jl
YXRpbmcgb3IgdXBkYXRpbmcgYW4gZXhpc3RpbmcgZmlsZSB5b3UgaGF2ZSB0byBydW4KKyAgICAv
LyB0aGUgZmlsZSB3aXRoOgogICAgIC8vCiAgICAgLy8gJCBUb29scy9TY3JpcHRzL3J1bi13ZWJr
aXQtaHR0cGQKICAgICAvLwpAQCAtMjMsMTEgKzI1LDE0OCBAQAogICAgIC8vIGRpcmVjdG9yeSBj
b250YWluaW5nIHRoZSByZWZlcnJlZCBmaWxlLiBJbiB0aGlzIGV4YW1wbGUsIHRoZQogICAgIC8v
IGRhdGFiYXNlIHdpbGwgYmUgY3JlYXRlZCBhdDoKICAgICAvLwotICAgIC8vICQgTGF5b3V0VGVz
dHMvbWVkaWEvY29udGVudC9tZXRhZGF0YS5kYgorICAgIC8vICQgTGF5b3V0VGVzdHMvbWVkaWEv
Y29udGVudC9tZXRhZGF0YS5qc29uCisKKworICAgIGlmICghZnVuY3Rpb25fZXhpc3RzKCdzeXNf
Z2V0X3RlbXBfZGlyJykpIHsKKyAgICAgICAgLy8gQmFzZWQgb24gaHR0cDovL3d3dy5waHBpdC5u
ZXQvYXJ0aWNsZS9jcmVhdGluZy16aXAtdGFyLWFyY2hpdmVzLWR5bmFtaWNhbGx5LXBocC8yLwor
ICAgICAgICAvLyBJZiB0aGUgYnVpbHRpbiBQSFAgc3lzX2dldF90ZW1wX2RpciBkb2Vzbid0IGV4
aXN0LCB3ZSByZXBsYWNlIGl0IHdpdGggb25lIHRoYXQgd2lsbAorICAgICAgICAvLyB0cnkgdG8g
Z3Vlc3MgZnJvbSB0aGUgZW52aXJvbm1lbnQuICBTaW5jZSBzeXNfZ2V0X3RlbXBfZGlyKCkgZG9l
c24ndCByZXR1cm4gYSB0cmFpbGluZworICAgICAgICAvLyBzbGFzaCBvbiBhbGwgc3lzdGVtIChz
ZWUgY29tbWVudCBhdCBodHRwOi8vdXMucGhwLm5ldC9zeXNfZ2V0X3RlbXBfZGlyKSwgd2UgZG9u
J3QKKyAgICAgICAgLy8gYXBwZW5kIGEgdHJhaWxpbmcgc2xhc2gsIGFuZCBleHBlY3QgY2FsbGVy
cyB0byBhcHBlbmQgb25lIHdoZW4gbmVlZGVkLgorICAgICAgICBmdW5jdGlvbiBzeXNfZ2V0X3Rl
bXBfZGlyKCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVHJ5IHRvIGdldCBmcm9tIGVudmly
b25tZW50IHZhcmlhYmxlCisgICAgICAgICAgICBpZiAoIWVtcHR5KCRfRU5WWydUTVAnXSkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxwYXRoKCRfRU5WWydUTVAnXSk7CisgICAgICAgICAg
ICBpZiAoIWVtcHR5KCRfRU5WWydUTVBESVInXSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
YWxwYXRoKCRfRU5WWydUTVBESVInXSk7CisgICAgICAgICAgICBpZiAoIWVtcHR5KCRfRU5WWydU
RU1QJ10pKQorICAgICAgICAgICAgICAgIHJldHVybiByZWFscGF0aCggJF9FTlZbJ1RFTVAnXSk7
CisgICAgICAgICAgICByZXR1cm4gIi90bXAiOworICAgICAgICB9CisgICAgfQorCisKKyAgICBp
ZiAoIWZ1bmN0aW9uX2V4aXN0cygnZmlsZV9wdXRfY29udGVudHMnKSkgeworICAgICAgICBmdW5j
dGlvbiBmaWxlX3B1dF9jb250ZW50cygkZmlsZW5hbWUsICRkYXRhKQorICAgICAgICB7CisgICAg
ICAgICAgICAkaGFuZGxlID0gZm9wZW4oJGZpbGVuYW1lLCAidyIpOworICAgICAgICAgICAgaWYg
KCEkaGFuZGxlKQorICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKyAgICAgICAgICAgICRi
eXRlc1dyaXR0ZW4gPSBmd3JpdGUoJGhhbmRsZSwgJGRhdGEpOworICAgICAgICAgICAgaWYgKCFm
Y2xvc2UoJGhhbmRsZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICAg
ICAgcmV0dXJuICRieXRlc1dyaXR0ZW47CisgICAgICAgIH0KKyAgICB9CisKIAorICAgIGlmICgh
ZnVuY3Rpb25fZXhpc3RzKCdzdHJlYW1fY29weV90b19zdHJlYW0nKSkgeworICAgICAgICBmdW5j
dGlvbiBzdHJlYW1fY29weV90b19zdHJlYW0oJHNvdXJjZSwgJGRlc3QpCisgICAgICAgIHsKKyAg
ICAgICAgICAgICRyZXN1bHQgPSAwOworICAgICAgICAgICAgd2hpbGUgKCFmZW9mKCRzb3VyY2Up
KSB7CisgICAgICAgICAgICAgICAgJGJ5dGVzV3JpdHRlbiA9IGZ3cml0ZSgkZGVzdCwgZnJlYWQo
JHNvdXJjZSwgODE5MikpOworICAgICAgICAgICAgICAgIGlmICghJGJ5dGVzV3JpdHRlbikKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICAgICAgICAgICRyZXN1bHQg
PSAkcmVzdWx0ICsgJGJ5dGVzV3JpdHRlbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
cmV0dXJuICRyZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWZ1bmN0aW9uX2V4
aXN0cygnc2NhbmRpcicpKSB7CisgICAgICAgIGZ1bmN0aW9uIHNjYW5kaXIoJGRpcikKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKCFpc19kaXIoJGRpcikpCisgICAgICAgICAgICAgICAgcmV0
dXJuIEZBTFNFOworCisgICAgICAgICAgICAkZGggPSBvcGVuZGlyKCRkaXIpOworICAgICAgICAg
ICAgd2hpbGUgKCRmaWxlbmFtZSA9IHJlYWRkaXIoJGRoKSkgeworICAgICAgICAgICAgICAgICRm
aWxlc1tdID0gJGZpbGVuYW1lOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjbG9zZWRp
cigkZGgpOworICAgICAgICAgICAgc29ydCgkZmlsZXMpOworCisgICAgICAgICAgICByZXR1cm4g
JGZpbGVzOworICAgICAgICB9CisgICAgfQorCisKKyAgICBmdW5jdGlvbiB0bXBkaXIoJGRpcj1G
QUxTRSwgJHByZWZpeD0ncGhwJykKKyAgICB7CisgICAgICAgIGlmICgkZGlyKSB7CisgICAgICAg
ICAgICAkdG1wRmlsZSA9IHRlbXBuYW0oJGRpciwgJHByZWZpeCk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBpZiAoIXN5c19nZXRfdGVtcF9kaXIoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gRkFMU0U7CisgICAgICAgICAgICAkdG1wRmlsZSA9IHRlbXBuYW0oc3lzX2dldF90ZW1w
X2RpcigpLCAkcHJlZml4KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZmlsZV9leGlzdHMo
JHRtcEZpbGUpKQorICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICB1bmxpbmsoJHRt
cEZpbGUpOworICAgICAgICBta2RpcigkdG1wRmlsZSk7CisgICAgICAgIGlmICghaXNfZGlyKCR0
bXBGaWxlKSkKKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKworICAgICAgICByZXR1cm4gJHRt
cEZpbGU7CisgICAgfQorCisKKyAgICBmdW5jdGlvbiBycm1kaXIoJGRpcikKKyAgICB7CisgICAg
ICAgIGlmIChpc19kaXIoJGRpcikpIHsKKyAgICAgICAgICAgICRvYmplY3RzID0gYXJyYXlfZGlm
ZihzY2FuZGlyKCRkaXIpLCBhcnJheSgiLiIsICIuLiIpKTsKKyAgICAgICAgICAgIGZvcmVhY2gg
KCRvYmplY3RzIGFzICRvYmplY3QpCisgICAgICAgICAgICAgICAgKGlzX2RpcigkZGlyIC4gIi8i
IC4gJG9iamVjdCkpID8gcnJtZGlyKCRkaXIgLiAiLyIgLiAkb2JqZWN0KSA6IHVubGluaygkZGly
IC4gIi8iIC4gJG9iamVjdCk7CisgICAgICAgICAgICByZXNldCgkb2JqZWN0cyk7CisgICAgICAg
ICAgICBybWRpcigkZGlyKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgZnVuY3Rpb24gcmNv
cHkoJHNyYywgJGRzdCkKKyAgICB7CisgICAgICAgIGlmIChmaWxlX2V4aXN0cygkZHN0KSkKKyAg
ICAgICAgICAgIHJybWRpcigkZHN0KTsKKyAgICAgICAgaWYgKGlzX2Rpcigkc3JjKSkgeworICAg
ICAgICAgICAgbWtkaXIoJGRzdCk7CisgICAgICAgICAgICAkZmlsZXMgPSBhcnJheV9kaWZmKHNj
YW5kaXIoJHNyYyksIGFycmF5KCIuIiwgIi4uIikpOworICAgICAgICAgICAgZm9yZWFjaCAoJGZp
bGVzIGFzICRmaWxlKQorICAgICAgICAgICAgICByY29weSgiJHNyYy8kZmlsZSIsICIkZHN0LyRm
aWxlIik7CisgICAgICAgIH0gZWxzZSBpZiAoZmlsZV9leGlzdHMoJHNyYykpIHsKKyAgICAgICAg
ICAgIGNvcHkoJHNyYywgJGRzdCk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGZ1bmN0aW9u
IGZpcnN0X2RpcigkbmFtZSwgJGRpcj1GQUxTRSkKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSBG
QUxTRTsKKyAgICAgICAgJHJvb3QgPSAkZGlyID8gJGRpciA6ICIuLyI7CisgICAgICAgICRxdWV1
ZSA9IGFycmF5KHJlYWxwYXRoKCRyb290KSk7CisKKyAgICAgICAgd2hpbGUgKHNpemVvZigkcXVl
dWUpKSB7CisgICAgICAgICAgICAkdmVydGV4ID0gYXJyYXlfcG9wKCRxdWV1ZSk7CisgICAgICAg
ICAgICAkb2JqZWN0cyA9IGFycmF5X2RpZmYoc2NhbmRpcigkdmVydGV4KSwgYXJyYXkoIi4iLCAi
Li4iKSk7CisgICAgICAgICAgICBmb3JlYWNoICgkb2JqZWN0cyBhcyAkb2JqZWN0KSB7CisgICAg
ICAgICAgICAgICAgJGZ1bGxQYXRoID0gJHZlcnRleCAuICIvIiAuICRvYmplY3Q7CisgICAgICAg
ICAgICAgICAgaWYgKGlzX2RpcigkZnVsbFBhdGgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICgkbmFtZSA9PSBiYXNlbmFtZSgkZnVsbFBhdGgpKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAkcmVzdWx0ID0gJGZ1bGxQYXRoOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRy
ZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBhcnJheV91bnNoaWZ0KCRxdWV1ZSwgJGZ1bGxQYXRoKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K
IAotICAgIHJlcXVpcmVfb25jZSAnLi4vLi4vcmVzb3VyY2VzL3BvcnRhYmlsaXR5TGF5ZXIucGhw
JzsKLSAgICByZXF1aXJlX29uY2UgJy4uLy4uL3Jlc291cmNlcy9kaXItaGVscGVycy5waHAnOwog
CiAgICAgLy8gNTAwIG9uIGVycm9ycwogICAgICRodHRwU3RhdHVzID0gIjUwMCBJbnRlcm5hbCBT
ZXJ2ZXIgRXJyb3IiOwpAQCAtNDMsNyArMTgyLDcgQEAKICAgICAgICAgdHJpZ2dlcl9lcnJvcigi
VGhlIHByb3ZpZGVkIGRpcmVjdG9yeSBwYXRoIGRvZXNuJ3QgZXhpc3QuIiwgRV9VU0VSX1dBUk5J
TkcpOwogICAgICAgICBnb3RvIGFuc3dlcmluZzsKICAgICB9Ci0gICAgJGRhdGFiYXNlRmlsZSA9
IHJlYWxwYXRoKCRtZWRpYURpcmVjdG9yeSkgLiAiL21ldGFkYXRhLmRiIjsKKyAgICAkZGF0YWJh
c2VGaWxlID0gcmVhbHBhdGgoJG1lZGlhRGlyZWN0b3J5KSAuICIvbWV0YWRhdGEuanNvbiI7CiAK
ICAgICBpZiAoZmlsZV9leGlzdHMoJGRhdGFiYXNlRmlsZSkpIHsKICAgICAgICAgdW5saW5rKCRk
YXRhYmFzZUZpbGUpOwpAQCAtMTM4LDcgKzI3Nyw3IEBACiAgICAgICAgICRwbGF5RmlsZXNbXSA9
ICRwbGF5ZmlsZTsKICAgICB9CiAKLSAgICBpZiAoIWZpbGVfcHV0X2NvbnRlbnRzKCRkYXRhYmFz
ZUZpbGUsIHNlcmlhbGl6ZSgkcGxheUZpbGVzKSkpIHsKKyAgICBpZiAoIWZpbGVfcHV0X2NvbnRl
bnRzKCRkYXRhYmFzZUZpbGUsIGpzb25fZGVjb2RlKCRwbGF5RmlsZXMpKSkgewogICAgICAgICB0
cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIHdyaXRlIHRoZSBnZXRpZDMgZGIuIiwgRV9VU0VS
X1dBUk5JTkcpOwogICAgICAgICBnb3RvIGFuc3dlcmluZzsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428183</attachid>
            <date>2021-05-10 10:57:50 -0700</date>
            <delta_ts>2021-05-10 11:41:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224561-20210510135748.patch</filename>
            <type>text/plain</type>
            <size>21891</size>
            <attacher name="Chris Gambrell">cgambrell</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI3NzI3MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTEwICBDaHJpcyBHYW1icmVsbCAg
PGNnYW1icmVsbEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xheW91dFRlc3RzXSBSZXBsYWNlIGh0
dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwIHJlc3VsdCB3aXRoIEpT
T04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDU2
MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzY2NTMwNTQ+CisKKyAgICAgICAgUmVwbGFjaW5n
IHRoZSBjcmVhdGlvbiBvZiBtZXRhZGF0YS5kYiB3aXRoIEpTT04gaW50byBhIG5ldyBmaWxlIG5h
bWVkIG1ldGFkYXRhLmpzb24uIFRoaXMgc3RhbmRhbG9uZSBzY3JpcHQgcmVtYWlucyBpbiBQSFAg
dG8gYmUgYWJsZSB0byBzdGlsbCB1c2UgZ2V0aWQzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvY3Jl
YXRlLWlkMy1kYi5waHA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZXMv
ZGlyLWhlbHBlcnMucGhwOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2Vz
L3BvcnRhYmlsaXR5TGF5ZXIucGhwOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL2NvbnRlbnQv
Y3JlYXRlLWlkMy1kYjogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9y
ZXNvdXJjZXMvY3JlYXRlLWlkMy1kYi5waHAuCisKIDIwMjEtMDUtMTAgIEFkaXR5YSBLZWVydGhp
ICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpUGFkT1NdIERvIG5vdCBwcmVzZW50
IGN1c3RvbSBpbnB1dCBwZXJpcGhlcmFscyB3aGVuIHN3aXRjaGluZyBiYWNrIHRvIGEgdGFiIHdp
dGggYSBmb2N1c2VkIGVsZW1lbnQKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
cmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwCShyZXZpc2lvbiAyNzcy
NzEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9jcmVhdGUtaWQz
LWRiLnBocAkobm9uZXhpc3RlbnQpCkBAIC0xLDE3NyArMCwwIEBACi08P3BocAotCi0gICAgLy8g
VGhpcyBzY3JpcHQgaXMgYmFzZWQgb24gdGhlIHdvcmsgZG9uZSBieSBnYWRnZXRndXJ1Ci0gICAg
Ly8gPGRhdmlkQHZ1aXN0YmlqbC5ubD4gYXQKLSAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2Fk
Z2V0Z3VydS9QSFAtU3RyZWFtaW5nLUF1ZGlvIGFuZCByZWxlYXNlZAotICAgIC8vIHVuZGVyIHRo
ZSBQdWJsaWMgRG9tYWluLgotCi0KLSAgICAvLyBUaGlzIHNjcmlwdCBjcmVhdGVzLCBvdmVyd3Jp
dGluZyBpZiBuZWVkZWQsIHRoZSAibWV0YWRhdGEuZGIiCi0gICAgLy8gZmlsZSB1c2VkIGJ5IHNj
cmlwdHMgc3VjaCBhcyAic2VydmUtdmlkZW8ucHkiLgotICAgIC8vCi0gICAgLy8gRm9yIGNyZWF0
aW5nIG9yIHVwZGF0aW5nIGFuIGV4aXN0aW5nIGZpbGUgeW91IGhhdmUgdG8gcnVuIHRoZQotICAg
IC8vIGh0dHAgc2VydmVyIHVzZWQgYnkgdGhlIHRlc3RzIHdpdGg6Ci0gICAgLy8KLSAgICAvLyAk
IFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC1odHRwZAotICAgIC8vCi0gICAgLy8gVGhlbiB5b3Ug
d2lsbCBqdXN0IGhhdmUgdG8gdXNlIGEgYnJvd3NlciB0byBvcGVuIGFuIFVSTCBvZiB0aGUKLSAg
ICAvLyB0eXBlOgotICAgIC8vCi0gICAgLy8gaHR0cDovLzEyNy4wLjAuMTo4MDAwL21lZGlhL3Jl
c291cmNlcy9jcmVhdGUtaWQzLWRiLnBocD9uYW1lPS4uLy4uLy4uLy4uL21lZGlhL2NvbnRlbnQv
c2lsZW5jZS53YXYKLSAgICAvLwotICAgIC8vIFdpdGggdGhpcywgYSBuZXcgIm1ldGFkYWJhLmRi
IiBmaWxlIHdpbGwgYmUgY3JlYXRlIGluIHRoZQotICAgIC8vIGRpcmVjdG9yeSBjb250YWluaW5n
IHRoZSByZWZlcnJlZCBmaWxlLiBJbiB0aGlzIGV4YW1wbGUsIHRoZQotICAgIC8vIGRhdGFiYXNl
IHdpbGwgYmUgY3JlYXRlZCBhdDoKLSAgICAvLwotICAgIC8vICQgTGF5b3V0VGVzdHMvbWVkaWEv
Y29udGVudC9tZXRhZGF0YS5kYgotCi0KLSAgICByZXF1aXJlX29uY2UgJy4uLy4uL3Jlc291cmNl
cy9wb3J0YWJpbGl0eUxheWVyLnBocCc7Ci0gICAgcmVxdWlyZV9vbmNlICcuLi8uLi9yZXNvdXJj
ZXMvZGlyLWhlbHBlcnMucGhwJzsKLQotICAgIC8vIDUwMCBvbiBlcnJvcnMKLSAgICAkaHR0cFN0
YXR1cyA9ICI1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yIjsKLSAgICAkaHRtbE1lc3NhZ2UgPSAi
IjsKLQotICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygibmFtZSIsICRfR0VUKSkgewotICAgICAg
ICB0cmlnZ2VyX2Vycm9yKCJZb3UgaGF2ZSBub3Qgc3BlY2lmaWVkIGEgJ25hbWUnIHBhcmFtZXRl
ci4iLCBFX1VTRVJfV0FSTklORyk7Ci0gICAgICAgIGdvdG8gYW5zd2VyaW5nOwotICAgIH0KLSAg
ICAkbWVkaWFEaXJlY3RvcnkgPSBkaXJuYW1lKCRfR0VUWyJuYW1lIl0pOwotCi0gICAgaWYgKCFp
c19kaXIoJG1lZGlhRGlyZWN0b3J5KSkgewotICAgICAgICB0cmlnZ2VyX2Vycm9yKCJUaGUgcHJv
dmlkZWQgZGlyZWN0b3J5IHBhdGggZG9lc24ndCBleGlzdC4iLCBFX1VTRVJfV0FSTklORyk7Ci0g
ICAgICAgIGdvdG8gYW5zd2VyaW5nOwotICAgIH0KLSAgICAkZGF0YWJhc2VGaWxlID0gcmVhbHBh
dGgoJG1lZGlhRGlyZWN0b3J5KSAuICIvbWV0YWRhdGEuZGIiOwotCi0gICAgaWYgKGZpbGVfZXhp
c3RzKCRkYXRhYmFzZUZpbGUpKSB7Ci0gICAgICAgIHVubGluaygkZGF0YWJhc2VGaWxlKTsKLSAg
ICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5EZWxldGVkIHByZXZpb3Vz
bHkgZXhpc3RpbmcgZGIgZmlsZSBhdDogJyIgLiAkZGF0YWJhc2VGaWxlIC4gIiciOwotICAgIH0K
LQotICAgIC8vIFdlIGRvbid0IGhhdmUgZ2V0aWQzIGluIFdlYktpdC4gSWYgbm90IGN1cnJlbnRs
eSBwcmVzZW50LCB3ZQotICAgIC8vIHdpbGwgdHJ5IHRvIGRvd25sb2FkIGl0IG5vdyBiZWZvcmUg
bWFraW5nIHVzZSBvZiBpdC4KLSAgICAvLwotICAgIC8vIGdldGlkMyBpcyBhdmFpbGFibGUgYXQg
aHR0cDovL2dldGlkMy5zb3VyY2Vmb3JnZS5uZXQKLQotICAgICRnZXRJZDNEZXN0RGlyID0gImdl
dGlkMyI7Ci0gICAgaWYgKCFmaWxlX2V4aXN0cygkZ2V0SWQzRGVzdERpcikpIHsKLQotICAgICAg
ICAkdG1wRGlyID0gdG1wZGlyKEZBTFNFLCAicGhwIik7Ci0gICAgICAgIGlmICghaXNfZGlyKCR0
bXBEaXIpKSB7Ci0gICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIGNyZWF0
ZSB0ZW1wb3JhbCBkaXJlY3RvcnkuIiwgRV9VU0VSX1dBUk5JTkcpOwotICAgICAgICAgICAgZ290
byBhbnN3ZXJpbmc7Ci0gICAgICAgIH0KLQotICAgICAgICAkaWQzRGVzdFBhdGggPSAkdG1wRGly
IC4gIi9nZXRpZDMuemlwIjsKLSAgICAgICAgJHBocFZlcnNpb24gPSBleHBsb2RlKCIuIiwgUEhQ
X1ZFUlNJT04pOwotICAgICAgICBpZiAoKCRwaHBWZXJzaW9uWzBdID4gNCkgJiYgKCRwaHBWZXJz
aW9uWzFdID4gMCkpCi0gICAgICAgICAgICAkaWQzVXJsID0gImh0dHA6Ly9zb3VyY2Vmb3JnZS5u
ZXQvcHJvamVjdHMvZ2V0aWQzL2ZpbGVzL2dldElEMyUyOCUyOSUyMDEueC8xLjkuNy9nZXRJRDMt
MS45LjcuemlwL2Rvd25sb2FkIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgJGlkM1VybCA9
ICJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2dldGlkMy9maWxlcy9nZXRJRDMlMjgl
MjklMjAxLngvMS43LjEwL2dldGlkMy0xLjcuMTAtMjAwOTA0MjYuemlwL2Rvd25sb2FkIjsKLSAg
ICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgbm90IGluIHRo
ZSBzeXN0ZW0uPHAvPkRvd25sb2FkaW5nIGZyb206ICciIC4gJGlkM1VybCAuICInIjsKLQotICAg
ICAgICAkY3R4dE9wdHMgPSBhcnJheSgiaHR0cCIgPT4KLSAgICAgICAgICAgIGFycmF5KAotICAg
ICAgICAgICAgICAgICJtZXRob2QiICA9PiAiR0VUIiwKLSAgICAgICAgICAgICAgICAidGltZW91
dCIgPT4gNjAsCi0gICAgICAgICAgICApCi0gICAgICAgICk7Ci0gICAgICAgICRjdHh0ID0gc3Ry
ZWFtX2NvbnRleHRfY3JlYXRlKCRjdHh0T3B0cyk7Ci0gICAgICAgICRzcmMgPSBmb3BlbigkaWQz
VXJsLCAicmIiLCBmYWxzZSwgJGN0eHQpOwotICAgICAgICAkZGVzdCA9IGZvcGVuKCRpZDNEZXN0
UGF0aCwgIndiIik7Ci0gICAgICAgICRjb3BpZWQgPSBzdHJlYW1fY29weV90b19zdHJlYW0oJHNy
YywgJGRlc3QpOwotICAgICAgICBmY2xvc2UoJHNyYyk7Ci0gICAgICAgIGZjbG9zZSgkZGVzdCk7
Ci0gICAgICAgIGlmICgkY29waWVkID09IDApIHsKLSAgICAgICAgICAgIHRyaWdnZXJfZXJyb3Io
IkltcG9zc2libGUgdG8gY29weSB0aGUgbGF0ZXN0IGdldGlkMyB6aXAgcmVsZWFzZSBmaWxlLiIs
IEVfVVNFUl9XQVJOSU5HKTsKLSAgICAgICAgICAgIGdvdG8gYW5zd2VyaW5nOwotICAgICAgICB9
Ci0gICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAuICI8cC8+Z2V0SWQzIGRvd25s
b2FkZWQgdG86ICciIC4gJGlkM0Rlc3RQYXRoIC4gIiciOwotCi0gICAgICAgIGlmICghZXhlYygi
dW56aXAgIiAuICRpZDNEZXN0UGF0aCAuICIgLWQgIiAuICR0bXBEaXIpKSB7Ci0gICAgICAgICAg
ICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIGV4dHJhY3QgdGhlIGRvd25sb2FkZWQgemlw
IGZpbGUuIiwgRV9VU0VSX1dBUk5JTkcpOwotICAgICAgICAgICAgZ290byBhbnN3ZXJpbmc7Ci0g
ICAgICAgIH0KLSAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5aaXAg
ZmlsZSBzdWNjZXNzZnVsbHkgZXh0cmFjdGVkLiI7Ci0KLSAgICAgICAgJGdldElkM1NvdXJjZURp
ciA9IGZpcnN0X2RpcigkZ2V0SWQzRGVzdERpciwgJHRtcERpcik7Ci0gICAgICAgIGlmICghJGdl
dElkM1NvdXJjZURpcikgewotICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigiSW1wb3NzaWJsZSB0
byBmaW5kIHRoZSBnZXRpZDMgZGlyZWN0b3J5IHdpdGggdGhlIFBIUCBjb2RlIHRvIGNvcHkuIiwg
RV9VU0VSX1dBUk5JTkcpOwotICAgICAgICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgICAgIH0K
LSAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgZGlyZWN0
b3J5IHRvIGNvcHkgZm91bmQgYXQ6ICciIC4gJGdldElkM1NvdXJjZURpciAuICInIjsKLQotCi0g
ICAgICAgIHJjb3B5KCRnZXRJZDNTb3VyY2VEaXIsICRnZXRJZDNEZXN0RGlyKTsKLSAgICAgICAg
JGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgZGlyZWN0b3J5IGNvcGll
ZCB0byBpdHMgZmluYWwgZGVzdGluYXRpb24gYXQ6ICciIC4gcmVhbHBhdGgoJGdldElkM1NvdXJj
ZURpcikgLiAiJyI7Ci0KLSAgICAgICAgcnJtZGlyKCR0bXBEaXIpOwotICAgICAgICAkaHRtbE1l
c3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPkRlbGV0ZWQgYWxsIHRlbXBvcmFsIGZpbGVzIGF0
OiAnIiAuICR0bXBEaXIgLiAiJyI7Ci0gICAgfQotCi0KLSAgICAvLyBnZXRpZDMgZG93bmxvYWRl
ZC4gTGV0J3MgY3JlYXRlIHRoZSBkYXRhYmFzZSBmaWxlLgotICAgIHJlcXVpcmVfb25jZSgiZ2V0
aWQzL2dldGlkMy5waHAiKTsKLSAgICAkZ2V0SUQzID0gbmV3IGdldElEMzsKLQotICAgICRpZDNG
aWxlTmFtZXMgPSBhcnJheV9kaWZmKHNjYW5kaXIoJG1lZGlhRGlyZWN0b3J5KSwgYXJyYXkoIi4i
LCAiLi4iKSk7Ci0KLSAgICBmb3JlYWNoICgkaWQzRmlsZU5hbWVzIGFzICRpZDNGaWxlTmFtZSkg
ewotICAgICAgICAkaWQzID0gJGdldElEMy0+YW5hbHl6ZSgkbWVkaWFEaXJlY3RvcnkgLiAiLyIg
LiAkaWQzRmlsZU5hbWUpOwotICAgICAgICAkcGxheWZpbGUgPSBhcnJheSgKLSAgICAgICAgICAg
ICJmaWxlTmFtZSIgPT4gJGlkM1siZmlsZW5hbWUiXSwKLSAgICAgICAgICAgICJmaWxlU2l6ZSIg
PT4gJGlkM1siZmlsZXNpemUiXSwKLSAgICAgICAgICAgICJwbGF5VGltZSIgPT4gJGlkM1sicGxh
eXRpbWVfc2Vjb25kcyJdLAotICAgICAgICAgICAgImF1ZGlvU3RhcnQiID0+ICRpZDNbImF2ZGF0
YW9mZnNldCJdLAotICAgICAgICAgICAgImF1ZGlvRW5kIiA9PiAkaWQzWyJhdmRhdGFlbmQiXSwK
LSAgICAgICAgICAgICJhdWRpb0xlbmd0aCIgPT4gJGlkM1siYXZkYXRhZW5kIl0gLSAkaWQzWyJh
dmRhdGFvZmZzZXQiXSwKLSAgICAgICAgICAgICJhcnRpc3QiID0+ICRpZDNbInRhZ3MiXVsiaWQz
djIiXVsiYXJ0aXN0Il1bMF0sCi0gICAgICAgICAgICAidGl0bGUiID0+ICRpZDNbInRhZ3MiXVsi
aWQzdjIiXVsidGl0bGUiXVswXSwKLSAgICAgICAgICAgICJiaXRSYXRlIiA9PiAkaWQzWyJhdWRp
byJdWyJiaXRyYXRlIl0sCi0gICAgICAgICAgICAibWltZVR5cGUiID0+ICRpZDNbIm1pbWVfdHlw
ZSJdLAotICAgICAgICAgICAgImZpbGVGb3JtYXQiID0+ICRpZDNbImZpbGVmb3JtYXQiXSwKLSAg
ICAgICAgKTsKLSAgICAgICAgaWYgKGVtcHR5KCRwbGF5ZmlsZVsiYXJ0aXN0Il0pIHx8IGVtcHR5
KCRwbGF5ZmlsZVsidGl0bGUiXSkpCi0gICAgICAgICAgICBsaXN0KCRwbGF5ZmlsZVsiYXJ0aXN0
Il0sICRwbGF5ZmlsZVsidGl0bGUiXSkgPSBleHBsb2RlKCIgLSAiLCBzdWJzdHIoJHBsYXlmaWxl
WyJmaWxlTmFtZSJdLCAwICwgLTQpKTsKLSAgICAgICAgJHBsYXlGaWxlc1tdID0gJHBsYXlmaWxl
OwotICAgIH0KLQotICAgIGlmICghZmlsZV9wdXRfY29udGVudHMoJGRhdGFiYXNlRmlsZSwgc2Vy
aWFsaXplKCRwbGF5RmlsZXMpKSkgewotICAgICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxl
IHRvIHdyaXRlIHRoZSBnZXRpZDMgZGIuIiwgRV9VU0VSX1dBUk5JTkcpOwotICAgICAgICBnb3Rv
IGFuc3dlcmluZzsKLSAgICB9Ci0gICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxw
Lz5Xcml0dGVuIG5ldyBkYXRhYmFzZSBmaWxlIGF0OiAnIiAuICRkYXRhYmFzZUZpbGUgLiAiJyI7
Ci0KLQotICAgIC8vIERhdGFiYXNlIGNyZWF0ZWQsIGV2ZXJ5dGhpbmcgT0suCi0gICAgJGh0dHBT
dGF0dXMgPSAiMjAwIE9LIjsKLQotCi1hbnN3ZXJpbmc6Ci0KLSAgICBoZWFkZXIoIlN0YXR1czog
IiAuICRodHRwU3RhdHVzKTsKLSAgICBoZWFkZXIoIkhUVFAvMS4xICIgLiAkaHR0cFN0YXR1cyk7
Ci0gICAgaGVhZGVyKCJDb25uZWN0aW9uOiBjbG9zZSIpOwotICAgIGhlYWRlcigiQ29udGVudC1U
eXBlOiB0ZXh0L2h0bWwiKTsKLQotICAgICRodG1sTWVzc2FnZSA9ICI8aHRtbD48Ym9keT48aDE+
IiAuICRodHRwU3RhdHVzIC4gIjwvaDE+IiAuICRodG1sTWVzc2FnZTsKLQotICAgIGlmICgkaHR0
cFN0YXR1cyA9PSAiNTAwIEludGVybmFsIFNlcnZlciBFcnJvciIpIHsKLSAgICAgICAgaWYgKGZ1
bmN0aW9uX2V4aXN0cygiZXJyb3JfZ2V0X2xhc3QiKSkgewotICAgICAgICAgICAgJGVycm9yQXJy
YXkgPSBlcnJvcl9nZXRfbGFzdCgpOwotICAgICAgICAgICAgaWYgKCRlcnJvckFycmF5KSB7Ci0g
ICAgICAgICAgICAgICAgJGh0bWxNZXNzYWdlID0gc3ByaW50ZigiJXM8cC8+RXJyb3IgdHlwZTog
JWQ8cC8+RXJyb3IgbWVzc2FnZTogJXM8cC8+Ii4KLSAgICAgICAgICAgICAgICAgICAgIkVycm9y
IGZpbGU6ICVzPHAvPkVycm9yIGxpbmU6ICVkIiwKLSAgICAgICAgICAgICAgICAgICAgJGh0bWxN
ZXNzYWdlLCAkZXJyb3JBcnJheVsidHlwZSJdLCAkZXJyb3JBcnJheVsibWVzc2FnZSJdLAotICAg
ICAgICAgICAgICAgICAgICAkZXJyb3JBcnJheVsiZmlsZSJdLCAkZXJyb3JBcnJheVsibGluZSJd
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICAkaHRtbE1lc3NhZ2UgPSAk
aHRtbE1lc3NhZ2UgLiAiPC9ib2R5PjxodG1sPiI7Ci0KLSAgICBwcmludCgkaHRtbE1lc3NhZ2Up
OwotICAgIGZsdXNoKCk7Ci0gICAgZXhpdDsKLT8+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlcy9kaXItaGVscGVycy5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZXMvZGlyLWhlbHBlcnMucGhwCShyZXZpc2lvbiAyNzcyNzEpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9kaXItaGVscGVycy5waHAJKG5vbmV4
aXN0ZW50KQpAQCAtMSw3NyArMCwwIEBACi08P3BocAotcmVxdWlyZV9vbmNlICdwb3J0YWJpbGl0
eUxheWVyLnBocCc7Ci0KLWZ1bmN0aW9uIHRtcGRpcigkZGlyPUZBTFNFLCAkcHJlZml4PSdwaHAn
KQotewotICAgIGlmICgkZGlyKSB7Ci0gICAgICAgICR0bXBGaWxlID0gdGVtcG5hbSgkZGlyLCAk
cHJlZml4KTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoIXN5c19nZXRfdGVtcF9kaXIoKSkK
LSAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAgICAgJHRtcEZpbGUgPSB0ZW1wbmFtKHN5
c19nZXRfdGVtcF9kaXIoKSwgJHByZWZpeCk7Ci0gICAgfQotCi0gICAgaWYgKCFmaWxlX2V4aXN0
cygkdG1wRmlsZSkpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLSAgICB1bmxpbmsoJHRtcEZpbGUp
OwotICAgIG1rZGlyKCR0bXBGaWxlKTsKLSAgICBpZiAoIWlzX2RpcigkdG1wRmlsZSkpCi0gICAg
ICAgIHJldHVybiBGQUxTRTsKLQotICAgIHJldHVybiAkdG1wRmlsZTsKLX0KLQotZnVuY3Rpb24g
cnJtZGlyKCRkaXIpCi17Ci0gICAgaWYgKGlzX2RpcigkZGlyKSkgewotICAgICAgICAkb2JqZWN0
cyA9IGFycmF5X2RpZmYoc2NhbmRpcigkZGlyKSwgYXJyYXkoIi4iLCAiLi4iKSk7Ci0gICAgICAg
IGZvcmVhY2ggKCRvYmplY3RzIGFzICRvYmplY3QpCi0gICAgICAgICAgICAoaXNfZGlyKCRkaXIg
LiAiLyIgLiAkb2JqZWN0KSkgPyBycm1kaXIoJGRpciAuICIvIiAuICRvYmplY3QpIDogdW5saW5r
KCRkaXIgLiAiLyIgLiAkb2JqZWN0KTsKLSAgICAgICAgcmVzZXQoJG9iamVjdHMpOwotICAgICAg
ICBybWRpcigkZGlyKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHJjb3B5KCRzcmMsICRkc3QpCi17
Ci0gICAgaWYgKGZpbGVfZXhpc3RzKCRkc3QpKQotICAgICAgICBycm1kaXIoJGRzdCk7Ci0gICAg
aWYgKGlzX2Rpcigkc3JjKSkgewotICAgICAgICBta2RpcigkZHN0KTsKLSAgICAgICAgJGZpbGVz
ID0gYXJyYXlfZGlmZihzY2FuZGlyKCRzcmMpLCBhcnJheSgiLiIsICIuLiIpKTsKLSAgICAgICAg
Zm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKQotICAgICAgICAgIHJjb3B5KCIkc3JjLyRmaWxlIiwg
IiRkc3QvJGZpbGUiKTsKLSAgICB9IGVsc2UgaWYgKGZpbGVfZXhpc3RzKCRzcmMpKSB7Ci0gICAg
ICAgIGNvcHkoJHNyYywgJGRzdCk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBmaXJzdF9kaXIoJG5h
bWUsICRkaXI9RkFMU0UpCi17Ci0gICAgJHJlc3VsdCA9IEZBTFNFOwotICAgICRyb290ID0gJGRp
ciA/ICRkaXIgOiAiLi8iOwotICAgICRxdWV1ZSA9IGFycmF5KHJlYWxwYXRoKCRyb290KSk7Ci0K
LSAgICB3aGlsZSAoc2l6ZW9mKCRxdWV1ZSkpIHsKLSAgICAgICAgJHZlcnRleCA9IGFycmF5X3Bv
cCgkcXVldWUpOwotICAgICAgICAkb2JqZWN0cyA9IGFycmF5X2RpZmYoc2NhbmRpcigkdmVydGV4
KSwgYXJyYXkoIi4iLCAiLi4iKSk7Ci0gICAgICAgIGZvcmVhY2ggKCRvYmplY3RzIGFzICRvYmpl
Y3QpIHsKLSAgICAgICAgICAgICRmdWxsUGF0aCA9ICR2ZXJ0ZXggLiAiLyIgLiAkb2JqZWN0Owot
ICAgICAgICAgICAgaWYgKGlzX2RpcigkZnVsbFBhdGgpKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KCRuYW1lID09IGJhc2VuYW1lKCRmdWxsUGF0aCkpIHsKLSAgICAgICAgICAgICAgICAgICAgJHJl
c3VsdCA9ICRmdWxsUGF0aDsKLSAgICAgICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAg
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGFycmF5X3Vuc2hpZnQo
JHF1ZXVlLCAkZnVsbFBhdGgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotICAgIH0KLQotCi1jbGVhbnVwOgotCi0gICAgcmV0dXJuICRyZXN1bHQ7Ci19Ci0/
PgotCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9wb3J0YWJpbGl0eUxh
eWVyLnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9w
b3J0YWJpbGl0eUxheWVyLnBocAkocmV2aXNpb24gMjc3MjcxKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZXMvcG9ydGFiaWxpdHlMYXllci5waHAJKG5vbmV4aXN0ZW50KQpAQCAt
MSw2OCArMCwwIEBACi08P3BocAotCi1pZiAoIWZ1bmN0aW9uX2V4aXN0cygnc3lzX2dldF90ZW1w
X2RpcicpKSB7Ci0gICAgLy8gQmFzZWQgb24gaHR0cDovL3d3dy5waHBpdC5uZXQvYXJ0aWNsZS9j
cmVhdGluZy16aXAtdGFyLWFyY2hpdmVzLWR5bmFtaWNhbGx5LXBocC8yLwotICAgIC8vIElmIHRo
ZSBidWlsdGluIFBIUCBzeXNfZ2V0X3RlbXBfZGlyIGRvZXNuJ3QgZXhpc3QsIHdlIHJlcGxhY2Ug
aXQgd2l0aCBvbmUgdGhhdCB3aWxsCi0gICAgLy8gdHJ5IHRvIGd1ZXNzIGZyb20gdGhlIGVudmly
b25tZW50LiAgU2luY2Ugc3lzX2dldF90ZW1wX2RpcigpIGRvZXNuJ3QgcmV0dXJuIGEgdHJhaWxp
bmcKLSAgICAvLyBzbGFzaCBvbiBhbGwgc3lzdGVtIChzZWUgY29tbWVudCBhdCBodHRwOi8vdXMu
cGhwLm5ldC9zeXNfZ2V0X3RlbXBfZGlyKSwgd2UgZG9uJ3QKLSAgICAvLyBhcHBlbmQgYSB0cmFp
bGluZyBzbGFzaCwgYW5kIGV4cGVjdCBjYWxsZXJzIHRvIGFwcGVuZCBvbmUgd2hlbiBuZWVkZWQu
Ci0gICAgZnVuY3Rpb24gc3lzX2dldF90ZW1wX2RpcigpCi0gICAgewotICAgICAgICAvLyBUcnkg
dG8gZ2V0IGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGUKLSAgICAgICAgaWYgKCFlbXB0eSgkX0VO
VlsnVE1QJ10pKQotICAgICAgICAgICAgcmV0dXJuIHJlYWxwYXRoKCRfRU5WWydUTVAnXSk7Ci0g
ICAgICAgIGlmICghZW1wdHkoJF9FTlZbJ1RNUERJUiddKSkKLSAgICAgICAgICAgIHJldHVybiBy
ZWFscGF0aCgkX0VOVlsnVE1QRElSJ10pOwotICAgICAgICBpZiAoIWVtcHR5KCRfRU5WWydURU1Q
J10pKQotICAgICAgICAgICAgcmV0dXJuIHJlYWxwYXRoKCAkX0VOVlsnVEVNUCddKTsKLSAgICAg
ICAgcmV0dXJuICIvdG1wIjsKLSAgICB9Ci19Ci0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdmaWxl
X3B1dF9jb250ZW50cycpKSB7Ci0gICAgZnVuY3Rpb24gZmlsZV9wdXRfY29udGVudHMoJGZpbGVu
YW1lLCAkZGF0YSkKLSAgICB7Ci0gICAgICAgICRoYW5kbGUgPSBmb3BlbigkZmlsZW5hbWUsICJ3
Iik7Ci0gICAgICAgIGlmICghJGhhbmRsZSkKLSAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLSAg
ICAgICAgJGJ5dGVzV3JpdHRlbiA9IGZ3cml0ZSgkaGFuZGxlLCAkZGF0YSk7Ci0gICAgICAgIGlm
ICghZmNsb3NlKCRoYW5kbGUpKQotICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgICAgICBy
ZXR1cm4gJGJ5dGVzV3JpdHRlbjsKLSAgICB9Ci19Ci0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdz
dHJlYW1fY29weV90b19zdHJlYW0nKSkgewotICAgIGZ1bmN0aW9uIHN0cmVhbV9jb3B5X3RvX3N0
cmVhbSgkc291cmNlLCAkZGVzdCkKLSAgICB7Ci0gICAgICAgICRyZXN1bHQgPSAwOwotICAgICAg
ICB3aGlsZSAoIWZlb2YoJHNvdXJjZSkpIHsKLSAgICAgICAgICAgICRieXRlc1dyaXR0ZW4gPSBm
d3JpdGUoJGRlc3QsIGZyZWFkKCRzb3VyY2UsIDgxOTIpKTsKLSAgICAgICAgICAgIGlmICghJGJ5
dGVzV3JpdHRlbikKLSAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgICAgICAgICAk
cmVzdWx0ID0gJHJlc3VsdCArICRieXRlc1dyaXR0ZW47Ci0gICAgICAgIH0KLQotICAgICAgICBy
ZXR1cm4gJHJlc3VsdDsKLSAgICB9Ci19Ci0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdzY2FuZGly
JykpIHsKLSAgICBmdW5jdGlvbiBzY2FuZGlyKCRkaXIpCi0gICAgewotICAgICAgICBpZiAoIWlz
X2RpcigkZGlyKSkKLSAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgICAgICAkZGggPSBv
cGVuZGlyKCRkaXIpOwotICAgICAgICB3aGlsZSAoJGZpbGVuYW1lID0gcmVhZGRpcigkZGgpKSB7
Ci0gICAgICAgICAgICAkZmlsZXNbXSA9ICRmaWxlbmFtZTsKLSAgICAgICAgfQotCi0gICAgICAg
IGNsb3NlZGlyKCRkaCk7Ci0gICAgICAgIHNvcnQoJGZpbGVzKTsKLQotICAgICAgICByZXR1cm4g
JGZpbGVzOwotICAgIH0KLX0KLQotPz4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VzL3BvcnRhYmlsaXR5TGF5ZXIucGhwCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVs
ZXRlZDogc3ZuOmV4ZWN1dGFibGUKIyMgLTEgKzAsMCAjIwotKgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZW50L2NyZWF0ZS1pZDMt
ZGIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvY29udGVudC9jcmVhdGUtaWQzLWRi
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL21lZGlhL2NvbnRlbnQvY3JlYXRlLWlkMy1k
Ygkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI0MyBAQAorIyEvdXNyL2Jpbi9lbnYgcGhwCisK
Kzw/cGhwCisKKyAgICAvLyBUaGlzIHNjcmlwdCBpcyBiYXNlZCBvbiB0aGUgd29yayBkb25lIGJ5
IGdhZGdldGd1cnUKKyAgICAvLyA8ZGF2aWRAdnVpc3RiaWpsLm5sPiBhdAorICAgIC8vIGh0dHBz
Oi8vZ2l0aHViLmNvbS9nYWRnZXRndXJ1L1BIUC1TdHJlYW1pbmctQXVkaW8gYW5kIHJlbGVhc2Vk
CisgICAgLy8gdW5kZXIgdGhlIFB1YmxpYyBEb21haW4uCisKKworICAgIC8vIFRoaXMgc2NyaXB0
IGNyZWF0ZXMsIG92ZXJ3cml0aW5nIGlmIG5lZWRlZCwgdGhlICJtZXRhZGF0YS5qc29uIgorICAg
IC8vIGZpbGUgdXNlZCBieSBzY3JpcHRzIHN1Y2ggYXMgInNlcnZlLXZpZGVvLnB5Ii4KKyAgICAv
LworICAgIC8vIEZvciBjcmVhdGluZyBvciB1cGRhdGluZyBhbiBleGlzdGluZyBmaWxlIHlvdSBo
YXZlIHRvIHJ1bgorICAgIC8vIHRoZSBmaWxlIGFzIGFuIGV4ZWN1dGFibGUsIHBhc3NpbmcgYSBz
aW5nbGUgYXJndW1lbnQgd2hpY2gKKyAgICAvLyBpcyB0aGUgbmFtZSBvZiB0aGUgZmlsZSB3ZSBh
cmUgYWNjZXNzaW5nIHRvIGdldCB0aGUgbWVkaWEKKyAgICAvLyBkaXJlY3RvcnkKKyAgICAvLwor
ICAgIC8vIFdpdGggdGhpcywgYSBuZXcgIm1ldGFkYWJhLmpzb24iIGZpbGUgd2lsbCBiZSBjcmVh
dGUgaW4gdGhlCisgICAgLy8gZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHJlZmVycmVkIGZpbGUu
IEluIHRoaXMgZXhhbXBsZSwgdGhlCisgICAgLy8gZGF0YWJhc2Ugd2lsbCBiZSBjcmVhdGVkIGF0
OgorICAgIC8vCisgICAgLy8gJCBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZW50L21ldGFkYXRhLmpz
b24KKworCisgICAgZnVuY3Rpb24gdG1wZGlyKCRkaXI9RkFMU0UsICRwcmVmaXg9J3BocCcpCisg
ICAgeworICAgICAgICBpZiAoJGRpcikgeworICAgICAgICAgICAgJHRtcEZpbGUgPSB0ZW1wbmFt
KCRkaXIsICRwcmVmaXgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCFzeXNf
Z2V0X3RlbXBfZGlyKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICAg
ICAgJHRtcEZpbGUgPSB0ZW1wbmFtKHN5c19nZXRfdGVtcF9kaXIoKSwgJHByZWZpeCk7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoIWZpbGVfZXhpc3RzKCR0bXBGaWxlKSkKKyAgICAgICAgICAg
IHJldHVybiBGQUxTRTsKKyAgICAgICAgdW5saW5rKCR0bXBGaWxlKTsKKyAgICAgICAgbWtkaXIo
JHRtcEZpbGUpOworICAgICAgICBpZiAoIWlzX2RpcigkdG1wRmlsZSkpCisgICAgICAgICAgICBy
ZXR1cm4gRkFMU0U7CisKKyAgICAgICAgcmV0dXJuICR0bXBGaWxlOworICAgIH0KKworCisgICAg
ZnVuY3Rpb24gcnJtZGlyKCRkaXIpCisgICAgeworICAgICAgICBpZiAoaXNfZGlyKCRkaXIpKSB7
CisgICAgICAgICAgICAkb2JqZWN0cyA9IGFycmF5X2RpZmYoc2NhbmRpcigkZGlyKSwgYXJyYXko
Ii4iLCAiLi4iKSk7CisgICAgICAgICAgICBmb3JlYWNoICgkb2JqZWN0cyBhcyAkb2JqZWN0KQor
ICAgICAgICAgICAgICAgIChpc19kaXIoJGRpciAuICIvIiAuICRvYmplY3QpKSA/IHJybWRpcigk
ZGlyIC4gIi8iIC4gJG9iamVjdCkgOiB1bmxpbmsoJGRpciAuICIvIiAuICRvYmplY3QpOworICAg
ICAgICAgICAgcmVzZXQoJG9iamVjdHMpOworICAgICAgICAgICAgcm1kaXIoJGRpcik7CisgICAg
ICAgIH0KKyAgICB9CisKKworICAgIGZ1bmN0aW9uIHJjb3B5KCRzcmMsICRkc3QpCisgICAgewor
ICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGRzdCkpCisgICAgICAgICAgICBycm1kaXIoJGRzdCk7
CisgICAgICAgIGlmIChpc19kaXIoJHNyYykpIHsKKyAgICAgICAgICAgIG1rZGlyKCRkc3QpOwor
ICAgICAgICAgICAgJGZpbGVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRzcmMpLCBhcnJheSgiLiIs
ICIuLiIpKTsKKyAgICAgICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkKKyAgICAgICAg
ICAgICAgcmNvcHkoIiRzcmMvJGZpbGUiLCAiJGRzdC8kZmlsZSIpOworICAgICAgICB9IGVsc2Ug
aWYgKGZpbGVfZXhpc3RzKCRzcmMpKSB7CisgICAgICAgICAgICBjb3B5KCRzcmMsICRkc3QpOwor
ICAgICAgICB9CisgICAgfQorCisKKyAgICBmdW5jdGlvbiBmaXJzdF9kaXIoJG5hbWUsICRkaXI9
RkFMU0UpCisgICAgeworICAgICAgICAkcmVzdWx0ID0gRkFMU0U7CisgICAgICAgICRyb290ID0g
JGRpciA/ICRkaXIgOiAiLi8iOworICAgICAgICAkcXVldWUgPSBhcnJheShyZWFscGF0aCgkcm9v
dCkpOworCisgICAgICAgIHdoaWxlIChzaXplb2YoJHF1ZXVlKSkgeworICAgICAgICAgICAgJHZl
cnRleCA9IGFycmF5X3BvcCgkcXVldWUpOworICAgICAgICAgICAgJG9iamVjdHMgPSBhcnJheV9k
aWZmKHNjYW5kaXIoJHZlcnRleCksIGFycmF5KCIuIiwgIi4uIikpOworICAgICAgICAgICAgZm9y
ZWFjaCAoJG9iamVjdHMgYXMgJG9iamVjdCkgeworICAgICAgICAgICAgICAgICRmdWxsUGF0aCA9
ICR2ZXJ0ZXggLiAiLyIgLiAkb2JqZWN0OworICAgICAgICAgICAgICAgIGlmIChpc19kaXIoJGZ1
bGxQYXRoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoJG5hbWUgPT0gYmFzZW5hbWUoJGZ1
bGxQYXRoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCA9ICRmdWxsUGF0aDsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OworICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlfdW5zaGlmdCgkcXVl
dWUsICRmdWxsUGF0aCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8vIDUwMCBvbiBlcnJv
cnMKKyAgICAkaHR0cFN0YXR1cyA9ICI1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yIjsKKyAgICAk
aHRtbE1lc3NhZ2UgPSAiIjsKKworICAgIGlmIChzaXplb2YoJGFyZ3YpIDwgMikgeworICAgICAg
ICB0cmlnZ2VyX2Vycm9yKCJZb3UgaGF2ZSBub3Qgc3BlY2lmaWVkIGEgJ25hbWUnIHBhcmFtZXRl
ci4iLCBFX1VTRVJfV0FSTklORyk7CisgICAgICAgIGdvdG8gYW5zd2VyaW5nOworICAgIH0KKyAg
ICAkbWVkaWFEaXJlY3RvcnkgPSBkaXJuYW1lKCRhcmd2WzFdKTsKKworICAgIGlmICghaXNfZGly
KCRtZWRpYURpcmVjdG9yeSkpIHsKKyAgICAgICAgdHJpZ2dlcl9lcnJvcigiVGhlIHByb3ZpZGVk
IGRpcmVjdG9yeSBwYXRoIGRvZXNuJ3QgZXhpc3QuIiwgRV9VU0VSX1dBUk5JTkcpOworICAgICAg
ICBnb3RvIGFuc3dlcmluZzsKKyAgICB9CisgICAgJGRhdGFiYXNlRmlsZSA9IHJlYWxwYXRoKCRt
ZWRpYURpcmVjdG9yeSkgLiAiL21ldGFkYXRhLmpzb24iOworCisgICAgaWYgKGZpbGVfZXhpc3Rz
KCRkYXRhYmFzZUZpbGUpKSB7CisgICAgICAgIHVubGluaygkZGF0YWJhc2VGaWxlKTsKKyAgICAg
ICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5EZWxldGVkIHByZXZpb3VzbHkg
ZXhpc3RpbmcgZGIgZmlsZSBhdDogJyIgLiAkZGF0YWJhc2VGaWxlIC4gIiciOworICAgIH0KKwor
ICAgIC8vIFdlIGRvbid0IGhhdmUgZ2V0aWQzIGluIFdlYktpdC4gSWYgbm90IGN1cnJlbnRseSBw
cmVzZW50LCB3ZQorICAgIC8vIHdpbGwgdHJ5IHRvIGRvd25sb2FkIGl0IG5vdyBiZWZvcmUgbWFr
aW5nIHVzZSBvZiBpdC4KKyAgICAvLworICAgIC8vIGdldGlkMyBpcyBhdmFpbGFibGUgYXQgaHR0
cDovL2dldGlkMy5zb3VyY2Vmb3JnZS5uZXQKKworICAgICRnZXRJZDNEZXN0RGlyID0gImdldGlk
MyI7CisgICAgaWYgKCFmaWxlX2V4aXN0cygkZ2V0SWQzRGVzdERpcikpIHsKKworICAgICAgICAk
dG1wRGlyID0gdG1wZGlyKEZBTFNFLCAicGhwIik7CisgICAgICAgIGlmICghaXNfZGlyKCR0bXBE
aXIpKSB7CisgICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIGNyZWF0ZSB0
ZW1wb3JhbCBkaXJlY3RvcnkuIiwgRV9VU0VSX1dBUk5JTkcpOworICAgICAgICAgICAgZ290byBh
bnN3ZXJpbmc7CisgICAgICAgIH0KKworICAgICAgICAkaWQzRGVzdFBhdGggPSAkdG1wRGlyIC4g
Ii9nZXRpZDMuemlwIjsKKyAgICAgICAgJHBocFZlcnNpb24gPSBleHBsb2RlKCIuIiwgUEhQX1ZF
UlNJT04pOworICAgICAgICBpZiAoKCRwaHBWZXJzaW9uWzBdID4gNCkgJiYgKCRwaHBWZXJzaW9u
WzFdID4gMCkpCisgICAgICAgICAgICAkaWQzVXJsID0gImh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQv
cHJvamVjdHMvZ2V0aWQzL2ZpbGVzL2dldElEMyUyOCUyOSUyMDEueC8xLjkuNy9nZXRJRDMtMS45
LjcuemlwL2Rvd25sb2FkIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgJGlkM1VybCA9ICJo
dHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2dldGlkMy9maWxlcy9nZXRJRDMlMjglMjkl
MjAxLngvMS43LjEwL2dldGlkMy0xLjcuMTAtMjAwOTA0MjYuemlwL2Rvd25sb2FkIjsKKyAgICAg
ICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgbm90IGluIHRoZSBz
eXN0ZW0uPHAvPkRvd25sb2FkaW5nIGZyb206ICciIC4gJGlkM1VybCAuICInIjsKKworICAgICAg
ICAkY3R4dE9wdHMgPSBhcnJheSgiaHR0cCIgPT4KKyAgICAgICAgICAgIGFycmF5KAorICAgICAg
ICAgICAgICAgICJtZXRob2QiICA9PiAiR0VUIiwKKyAgICAgICAgICAgICAgICAidGltZW91dCIg
PT4gNjAsCisgICAgICAgICAgICApCisgICAgICAgICk7CisgICAgICAgICRjdHh0ID0gc3RyZWFt
X2NvbnRleHRfY3JlYXRlKCRjdHh0T3B0cyk7CisgICAgICAgICRzcmMgPSBmb3BlbigkaWQzVXJs
LCAicmIiLCBmYWxzZSwgJGN0eHQpOworICAgICAgICAkZGVzdCA9IGZvcGVuKCRpZDNEZXN0UGF0
aCwgIndiIik7CisgICAgICAgICRjb3BpZWQgPSBzdHJlYW1fY29weV90b19zdHJlYW0oJHNyYywg
JGRlc3QpOworICAgICAgICBmY2xvc2UoJHNyYyk7CisgICAgICAgIGZjbG9zZSgkZGVzdCk7Cisg
ICAgICAgIGlmICgkY29waWVkID09IDApIHsKKyAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoIklt
cG9zc2libGUgdG8gY29weSB0aGUgbGF0ZXN0IGdldGlkMyB6aXAgcmVsZWFzZSBmaWxlLiIsIEVf
VVNFUl9XQVJOSU5HKTsKKyAgICAgICAgICAgIGdvdG8gYW5zd2VyaW5nOworICAgICAgICB9Cisg
ICAgICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAuICI8cC8+Z2V0SWQzIGRvd25sb2Fk
ZWQgdG86ICciIC4gJGlkM0Rlc3RQYXRoIC4gIiciOworCisgICAgICAgIGlmICghZXhlYygidW56
aXAgIiAuICRpZDNEZXN0UGF0aCAuICIgLWQgIiAuICR0bXBEaXIpKSB7CisgICAgICAgICAgICB0
cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIGV4dHJhY3QgdGhlIGRvd25sb2FkZWQgemlwIGZp
bGUuIiwgRV9VU0VSX1dBUk5JTkcpOworICAgICAgICAgICAgZ290byBhbnN3ZXJpbmc7CisgICAg
ICAgIH0KKyAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5aaXAgZmls
ZSBzdWNjZXNzZnVsbHkgZXh0cmFjdGVkLiI7CisKKyAgICAgICAgJGdldElkM1NvdXJjZURpciA9
IGZpcnN0X2RpcigkZ2V0SWQzRGVzdERpciwgJHRtcERpcik7CisgICAgICAgIGlmICghJGdldElk
M1NvdXJjZURpcikgeworICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigiSW1wb3NzaWJsZSB0byBm
aW5kIHRoZSBnZXRpZDMgZGlyZWN0b3J5IHdpdGggdGhlIFBIUCBjb2RlIHRvIGNvcHkuIiwgRV9V
U0VSX1dBUk5JTkcpOworICAgICAgICAgICAgZ290byBhbnN3ZXJpbmc7CisgICAgICAgIH0KKyAg
ICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgZGlyZWN0b3J5
IHRvIGNvcHkgZm91bmQgYXQ6ICciIC4gJGdldElkM1NvdXJjZURpciAuICInIjsKKworCisgICAg
ICAgIHJjb3B5KCRnZXRJZDNTb3VyY2VEaXIsICRnZXRJZDNEZXN0RGlyKTsKKyAgICAgICAgJGh0
bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgZGlyZWN0b3J5IGNvcGllZCB0
byBpdHMgZmluYWwgZGVzdGluYXRpb24gYXQ6ICciIC4gcmVhbHBhdGgoJGdldElkM1NvdXJjZURp
cikgLiAiJyI7CisKKyAgICAgICAgcnJtZGlyKCR0bXBEaXIpOworICAgICAgICAkaHRtbE1lc3Nh
Z2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPkRlbGV0ZWQgYWxsIHRlbXBvcmFsIGZpbGVzIGF0OiAn
IiAuICR0bXBEaXIgLiAiJyI7CisgICAgfQorCisKKyAgICAvLyBnZXRpZDMgZG93bmxvYWRlZC4g
TGV0J3MgY3JlYXRlIHRoZSBkYXRhYmFzZSBmaWxlLgorICAgIHJlcXVpcmVfb25jZSgiZ2V0aWQz
L2dldGlkMy5waHAiKTsKKyAgICAkZ2V0SUQzID0gbmV3IGdldElEMzsKKworICAgICRpZDNGaWxl
TmFtZXMgPSBhcnJheV9kaWZmKHNjYW5kaXIoJG1lZGlhRGlyZWN0b3J5KSwgYXJyYXkoIi4iLCAi
Li4iKSk7CisKKyAgICBmb3JlYWNoICgkaWQzRmlsZU5hbWVzIGFzICRpZDNGaWxlTmFtZSkgewor
ICAgICAgICAkaWQzID0gJGdldElEMy0+YW5hbHl6ZSgkbWVkaWFEaXJlY3RvcnkgLiAiLyIgLiAk
aWQzRmlsZU5hbWUpOworICAgICAgICAkcGxheWZpbGUgPSBhcnJheSgKKyAgICAgICAgICAgICJm
aWxlTmFtZSIgPT4gJGlkM1siZmlsZW5hbWUiXSwKKyAgICAgICAgICAgICJmaWxlU2l6ZSIgPT4g
JGlkM1siZmlsZXNpemUiXSwKKyAgICAgICAgICAgICJwbGF5VGltZSIgPT4gJGlkM1sicGxheXRp
bWVfc2Vjb25kcyJdLAorICAgICAgICAgICAgImF1ZGlvU3RhcnQiID0+ICRpZDNbImF2ZGF0YW9m
ZnNldCJdLAorICAgICAgICAgICAgImF1ZGlvRW5kIiA9PiAkaWQzWyJhdmRhdGFlbmQiXSwKKyAg
ICAgICAgICAgICJhdWRpb0xlbmd0aCIgPT4gJGlkM1siYXZkYXRhZW5kIl0gLSAkaWQzWyJhdmRh
dGFvZmZzZXQiXSwKKyAgICAgICAgICAgICJhcnRpc3QiID0+ICRpZDNbInRhZ3MiXVsiaWQzdjIi
XVsiYXJ0aXN0Il1bMF0sCisgICAgICAgICAgICAidGl0bGUiID0+ICRpZDNbInRhZ3MiXVsiaWQz
djIiXVsidGl0bGUiXVswXSwKKyAgICAgICAgICAgICJiaXRSYXRlIiA9PiAkaWQzWyJhdWRpbyJd
WyJiaXRyYXRlIl0sCisgICAgICAgICAgICAibWltZVR5cGUiID0+ICRpZDNbIm1pbWVfdHlwZSJd
LAorICAgICAgICAgICAgImZpbGVGb3JtYXQiID0+ICRpZDNbImZpbGVmb3JtYXQiXSwKKyAgICAg
ICAgKTsKKyAgICAgICAgaWYgKGVtcHR5KCRwbGF5ZmlsZVsiYXJ0aXN0Il0pIHx8IGVtcHR5KCRw
bGF5ZmlsZVsidGl0bGUiXSkpCisgICAgICAgICAgICBsaXN0KCRwbGF5ZmlsZVsiYXJ0aXN0Il0s
ICRwbGF5ZmlsZVsidGl0bGUiXSkgPSBleHBsb2RlKCIgLSAiLCBzdWJzdHIoJHBsYXlmaWxlWyJm
aWxlTmFtZSJdLCAwICwgLTQpKTsKKyAgICAgICAgJHBsYXlGaWxlc1tdID0gJHBsYXlmaWxlOwor
ICAgIH0KKworICAgIGlmICghZmlsZV9wdXRfY29udGVudHMoJGRhdGFiYXNlRmlsZSwganNvbl9k
ZWNvZGUoJHBsYXlGaWxlcykpKSB7CisgICAgICAgIHRyaWdnZXJfZXJyb3IoIkltcG9zc2libGUg
dG8gd3JpdGUgdGhlIGdldGlkMyBkYi4iLCBFX1VTRVJfV0FSTklORyk7CisgICAgICAgIGdvdG8g
YW5zd2VyaW5nOworICAgIH0KKyAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAv
PldyaXR0ZW4gbmV3IGRhdGFiYXNlIGZpbGUgYXQ6ICciIC4gJGRhdGFiYXNlRmlsZSAuICInIjsK
KworCisgICAgLy8gRGF0YWJhc2UgY3JlYXRlZCwgZXZlcnl0aGluZyBPSy4KKyAgICAkaHR0cFN0
YXR1cyA9ICIyMDAgT0siOworCisKK2Fuc3dlcmluZzoKKworICAgIGhlYWRlcigiU3RhdHVzOiAi
IC4gJGh0dHBTdGF0dXMpOworICAgIGhlYWRlcigiSFRUUC8xLjEgIiAuICRodHRwU3RhdHVzKTsK
KyAgICBoZWFkZXIoIkNvbm5lY3Rpb246IGNsb3NlIik7CisgICAgaGVhZGVyKCJDb250ZW50LVR5
cGU6IHRleHQvaHRtbCIpOworCisgICAgJGh0bWxNZXNzYWdlID0gIjxodG1sPjxib2R5PjxoMT4i
IC4gJGh0dHBTdGF0dXMgLiAiPC9oMT4iIC4gJGh0bWxNZXNzYWdlOworCisgICAgaWYgKCRodHRw
U3RhdHVzID09ICI1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yIikgeworICAgICAgICBpZiAoZnVu
Y3Rpb25fZXhpc3RzKCJlcnJvcl9nZXRfbGFzdCIpKSB7CisgICAgICAgICAgICAkZXJyb3JBcnJh
eSA9IGVycm9yX2dldF9sYXN0KCk7CisgICAgICAgICAgICBpZiAoJGVycm9yQXJyYXkpIHsKKyAg
ICAgICAgICAgICAgICAkaHRtbE1lc3NhZ2UgPSBzcHJpbnRmKCIlczxwLz5FcnJvciB0eXBlOiAl
ZDxwLz5FcnJvciBtZXNzYWdlOiAlczxwLz4iLgorICAgICAgICAgICAgICAgICAgICAiRXJyb3Ig
ZmlsZTogJXM8cC8+RXJyb3IgbGluZTogJWQiLAorICAgICAgICAgICAgICAgICAgICAkaHRtbE1l
c3NhZ2UsICRlcnJvckFycmF5WyJ0eXBlIl0sICRlcnJvckFycmF5WyJtZXNzYWdlIl0sCisgICAg
ICAgICAgICAgICAgICAgICRlcnJvckFycmF5WyJmaWxlIl0sICRlcnJvckFycmF5WyJsaW5lIl0p
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgICRodG1sTWVzc2FnZSA9ICRo
dG1sTWVzc2FnZSAuICI8L2JvZHk+PGh0bWw+IjsKKworICAgIHByaW50KCRodG1sTWVzc2FnZSk7
CisgICAgZmx1c2goKTsKKyAgICBleGl0OworPz4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91
dFRlc3RzL21lZGlhL2NvbnRlbnQvY3JlYXRlLWlkMy1kYgpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46
ZXhlY3V0YWJsZQojIyAtMCwwICsxICMjCisqClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVy
dHkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428189</attachid>
            <date>2021-05-10 11:41:14 -0700</date>
            <delta_ts>2021-05-10 17:41:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224561-20210510144112.patch</filename>
            <type>text/plain</type>
            <size>21890</size>
            <attacher name="Chris Gambrell">cgambrell</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI3NzI3MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTEwICBDaHJpcyBHYW1icmVsbCAg
PGNnYW1icmVsbEBhcHBsZS5jb20+CisKKyAgICAgICAgW0xheW91dFRlc3RzXSBEZWNvdXBsZSBo
dHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9jcmVhdGUtaWQzLWRiLnBocCBmcm9tIHdlYnNlcnZl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NTYx
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjY1MzA1ND4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNpbmcgdGhlIGNyZWF0aW9uIG9mIG1l
dGFkYXRhLmRiIHdpdGggSlNPTiBpbnRvIGEgbmV3IGZpbGUgbmFtZWQgbWV0YWRhdGEuanNvbi4g
VGhpcyBzdGFuZGFsb25lIHNjcmlwdCByZW1haW5zIGluIFBIUCB0byBiZSBhYmxlIHRvIHN0aWxs
IHVzZSBnZXRpZDMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9jcmVh
dGUtaWQzLWRiLnBocDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlcy9k
aXItaGVscGVycy5waHA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZXMv
cG9ydGFiaWxpdHlMYXllci5waHA6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvY29udGVudC9j
cmVhdGUtaWQzLWRiOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jl
c291cmNlcy9jcmVhdGUtaWQzLWRiLnBocC4KKwogMjAyMS0wNS0xMCAgQWRpdHlhIEtlZXJ0aGkg
IDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lQYWRPU10gRG8gbm90IHByZXNlbnQg
Y3VzdG9tIGlucHV0IHBlcmlwaGVyYWxzIHdoZW4gc3dpdGNoaW5nIGJhY2sgdG8gYSB0YWIgd2l0
aCBhIGZvY3VzZWQgZWxlbWVudApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9y
ZXNvdXJjZXMvY3JlYXRlLWlkMy1kYi5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvY3JlYXRlLWlkMy1kYi5waHAJKHJldmlzaW9uIDI3NzI3
MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL2NyZWF0ZS1pZDMt
ZGIucGhwCShub25leGlzdGVudCkKQEAgLTEsMTc3ICswLDAgQEAKLTw/cGhwCi0KLSAgICAvLyBU
aGlzIHNjcmlwdCBpcyBiYXNlZCBvbiB0aGUgd29yayBkb25lIGJ5IGdhZGdldGd1cnUKLSAgICAv
LyA8ZGF2aWRAdnVpc3RiaWpsLm5sPiBhdAotICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9nYWRn
ZXRndXJ1L1BIUC1TdHJlYW1pbmctQXVkaW8gYW5kIHJlbGVhc2VkCi0gICAgLy8gdW5kZXIgdGhl
IFB1YmxpYyBEb21haW4uCi0KLQotICAgIC8vIFRoaXMgc2NyaXB0IGNyZWF0ZXMsIG92ZXJ3cml0
aW5nIGlmIG5lZWRlZCwgdGhlICJtZXRhZGF0YS5kYiIKLSAgICAvLyBmaWxlIHVzZWQgYnkgc2Ny
aXB0cyBzdWNoIGFzICJzZXJ2ZS12aWRlby5weSIuCi0gICAgLy8KLSAgICAvLyBGb3IgY3JlYXRp
bmcgb3IgdXBkYXRpbmcgYW4gZXhpc3RpbmcgZmlsZSB5b3UgaGF2ZSB0byBydW4gdGhlCi0gICAg
Ly8gaHR0cCBzZXJ2ZXIgdXNlZCBieSB0aGUgdGVzdHMgd2l0aDoKLSAgICAvLwotICAgIC8vICQg
VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LWh0dHBkCi0gICAgLy8KLSAgICAvLyBUaGVuIHlvdSB3
aWxsIGp1c3QgaGF2ZSB0byB1c2UgYSBicm93c2VyIHRvIG9wZW4gYW4gVVJMIG9mIHRoZQotICAg
IC8vIHR5cGU6Ci0gICAgLy8KLSAgICAvLyBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWVkaWEvcmVz
b3VyY2VzL2NyZWF0ZS1pZDMtZGIucGhwP25hbWU9Li4vLi4vLi4vLi4vbWVkaWEvY29udGVudC9z
aWxlbmNlLndhdgotICAgIC8vCi0gICAgLy8gV2l0aCB0aGlzLCBhIG5ldyAibWV0YWRhYmEuZGIi
IGZpbGUgd2lsbCBiZSBjcmVhdGUgaW4gdGhlCi0gICAgLy8gZGlyZWN0b3J5IGNvbnRhaW5pbmcg
dGhlIHJlZmVycmVkIGZpbGUuIEluIHRoaXMgZXhhbXBsZSwgdGhlCi0gICAgLy8gZGF0YWJhc2Ug
d2lsbCBiZSBjcmVhdGVkIGF0OgotICAgIC8vCi0gICAgLy8gJCBMYXlvdXRUZXN0cy9tZWRpYS9j
b250ZW50L21ldGFkYXRhLmRiCi0KLQotICAgIHJlcXVpcmVfb25jZSAnLi4vLi4vcmVzb3VyY2Vz
L3BvcnRhYmlsaXR5TGF5ZXIucGhwJzsKLSAgICByZXF1aXJlX29uY2UgJy4uLy4uL3Jlc291cmNl
cy9kaXItaGVscGVycy5waHAnOwotCi0gICAgLy8gNTAwIG9uIGVycm9ycwotICAgICRodHRwU3Rh
dHVzID0gIjUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IiOwotICAgICRodG1sTWVzc2FnZSA9ICIi
OwotCi0gICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCJuYW1lIiwgJF9HRVQpKSB7Ci0gICAgICAg
IHRyaWdnZXJfZXJyb3IoIllvdSBoYXZlIG5vdCBzcGVjaWZpZWQgYSAnbmFtZScgcGFyYW1ldGVy
LiIsIEVfVVNFUl9XQVJOSU5HKTsKLSAgICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgfQotICAg
ICRtZWRpYURpcmVjdG9yeSA9IGRpcm5hbWUoJF9HRVRbIm5hbWUiXSk7Ci0KLSAgICBpZiAoIWlz
X2RpcigkbWVkaWFEaXJlY3RvcnkpKSB7Ci0gICAgICAgIHRyaWdnZXJfZXJyb3IoIlRoZSBwcm92
aWRlZCBkaXJlY3RvcnkgcGF0aCBkb2Vzbid0IGV4aXN0LiIsIEVfVVNFUl9XQVJOSU5HKTsKLSAg
ICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgfQotICAgICRkYXRhYmFzZUZpbGUgPSByZWFscGF0
aCgkbWVkaWFEaXJlY3RvcnkpIC4gIi9tZXRhZGF0YS5kYiI7Ci0KLSAgICBpZiAoZmlsZV9leGlz
dHMoJGRhdGFiYXNlRmlsZSkpIHsKLSAgICAgICAgdW5saW5rKCRkYXRhYmFzZUZpbGUpOwotICAg
ICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPkRlbGV0ZWQgcHJldmlvdXNs
eSBleGlzdGluZyBkYiBmaWxlIGF0OiAnIiAuICRkYXRhYmFzZUZpbGUgLiAiJyI7Ci0gICAgfQot
Ci0gICAgLy8gV2UgZG9uJ3QgaGF2ZSBnZXRpZDMgaW4gV2ViS2l0LiBJZiBub3QgY3VycmVudGx5
IHByZXNlbnQsIHdlCi0gICAgLy8gd2lsbCB0cnkgdG8gZG93bmxvYWQgaXQgbm93IGJlZm9yZSBt
YWtpbmcgdXNlIG9mIGl0LgotICAgIC8vCi0gICAgLy8gZ2V0aWQzIGlzIGF2YWlsYWJsZSBhdCBo
dHRwOi8vZ2V0aWQzLnNvdXJjZWZvcmdlLm5ldAotCi0gICAgJGdldElkM0Rlc3REaXIgPSAiZ2V0
aWQzIjsKLSAgICBpZiAoIWZpbGVfZXhpc3RzKCRnZXRJZDNEZXN0RGlyKSkgewotCi0gICAgICAg
ICR0bXBEaXIgPSB0bXBkaXIoRkFMU0UsICJwaHAiKTsKLSAgICAgICAgaWYgKCFpc19kaXIoJHRt
cERpcikpIHsKLSAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoIkltcG9zc2libGUgdG8gY3JlYXRl
IHRlbXBvcmFsIGRpcmVjdG9yeS4iLCBFX1VTRVJfV0FSTklORyk7Ci0gICAgICAgICAgICBnb3Rv
IGFuc3dlcmluZzsKLSAgICAgICAgfQotCi0gICAgICAgICRpZDNEZXN0UGF0aCA9ICR0bXBEaXIg
LiAiL2dldGlkMy56aXAiOwotICAgICAgICAkcGhwVmVyc2lvbiA9IGV4cGxvZGUoIi4iLCBQSFBf
VkVSU0lPTik7Ci0gICAgICAgIGlmICgoJHBocFZlcnNpb25bMF0gPiA0KSAmJiAoJHBocFZlcnNp
b25bMV0gPiAwKSkKLSAgICAgICAgICAgICRpZDNVcmwgPSAiaHR0cDovL3NvdXJjZWZvcmdlLm5l
dC9wcm9qZWN0cy9nZXRpZDMvZmlsZXMvZ2V0SUQzJTI4JTI5JTIwMS54LzEuOS43L2dldElEMy0x
LjkuNy56aXAvZG93bmxvYWQiOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICAkaWQzVXJsID0g
Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvZ2V0aWQzL2ZpbGVzL2dldElEMyUyOCUy
OSUyMDEueC8xLjcuMTAvZ2V0aWQzLTEuNy4xMC0yMDA5MDQyNi56aXAvZG93bmxvYWQiOwotICAg
ICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPmdldElkMyBub3QgaW4gdGhl
IHN5c3RlbS48cC8+RG93bmxvYWRpbmcgZnJvbTogJyIgLiAkaWQzVXJsIC4gIiciOwotCi0gICAg
ICAgICRjdHh0T3B0cyA9IGFycmF5KCJodHRwIiA9PgotICAgICAgICAgICAgYXJyYXkoCi0gICAg
ICAgICAgICAgICAgIm1ldGhvZCIgID0+ICJHRVQiLAotICAgICAgICAgICAgICAgICJ0aW1lb3V0
IiA9PiA2MCwKLSAgICAgICAgICAgICkKLSAgICAgICAgKTsKLSAgICAgICAgJGN0eHQgPSBzdHJl
YW1fY29udGV4dF9jcmVhdGUoJGN0eHRPcHRzKTsKLSAgICAgICAgJHNyYyA9IGZvcGVuKCRpZDNV
cmwsICJyYiIsIGZhbHNlLCAkY3R4dCk7Ci0gICAgICAgICRkZXN0ID0gZm9wZW4oJGlkM0Rlc3RQ
YXRoLCAid2IiKTsKLSAgICAgICAgJGNvcGllZCA9IHN0cmVhbV9jb3B5X3RvX3N0cmVhbSgkc3Jj
LCAkZGVzdCk7Ci0gICAgICAgIGZjbG9zZSgkc3JjKTsKLSAgICAgICAgZmNsb3NlKCRkZXN0KTsK
LSAgICAgICAgaWYgKCRjb3BpZWQgPT0gMCkgewotICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigi
SW1wb3NzaWJsZSB0byBjb3B5IHRoZSBsYXRlc3QgZ2V0aWQzIHppcCByZWxlYXNlIGZpbGUuIiwg
RV9VU0VSX1dBUk5JTkcpOwotICAgICAgICAgICAgZ290byBhbnN3ZXJpbmc7Ci0gICAgICAgIH0K
LSAgICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgZG93bmxv
YWRlZCB0bzogJyIgLiAkaWQzRGVzdFBhdGggLiAiJyI7Ci0KLSAgICAgICAgaWYgKCFleGVjKCJ1
bnppcCAiIC4gJGlkM0Rlc3RQYXRoIC4gIiAtZCAiIC4gJHRtcERpcikpIHsKLSAgICAgICAgICAg
IHRyaWdnZXJfZXJyb3IoIkltcG9zc2libGUgdG8gZXh0cmFjdCB0aGUgZG93bmxvYWRlZCB6aXAg
ZmlsZS4iLCBFX1VTRVJfV0FSTklORyk7Ci0gICAgICAgICAgICBnb3RvIGFuc3dlcmluZzsKLSAg
ICAgICAgfQotICAgICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPlppcCBm
aWxlIHN1Y2Nlc3NmdWxseSBleHRyYWN0ZWQuIjsKLQotICAgICAgICAkZ2V0SWQzU291cmNlRGly
ID0gZmlyc3RfZGlyKCRnZXRJZDNEZXN0RGlyLCAkdG1wRGlyKTsKLSAgICAgICAgaWYgKCEkZ2V0
SWQzU291cmNlRGlyKSB7Ci0gICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRv
IGZpbmQgdGhlIGdldGlkMyBkaXJlY3Rvcnkgd2l0aCB0aGUgUEhQIGNvZGUgdG8gY29weS4iLCBF
X1VTRVJfV0FSTklORyk7Ci0gICAgICAgICAgICBnb3RvIGFuc3dlcmluZzsKLSAgICAgICAgfQot
ICAgICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPmdldElkMyBkaXJlY3Rv
cnkgdG8gY29weSBmb3VuZCBhdDogJyIgLiAkZ2V0SWQzU291cmNlRGlyIC4gIiciOwotCi0KLSAg
ICAgICAgcmNvcHkoJGdldElkM1NvdXJjZURpciwgJGdldElkM0Rlc3REaXIpOwotICAgICAgICAk
aHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPmdldElkMyBkaXJlY3RvcnkgY29waWVk
IHRvIGl0cyBmaW5hbCBkZXN0aW5hdGlvbiBhdDogJyIgLiByZWFscGF0aCgkZ2V0SWQzU291cmNl
RGlyKSAuICInIjsKLQotICAgICAgICBycm1kaXIoJHRtcERpcik7Ci0gICAgICAgICRodG1sTWVz
c2FnZSA9ICRodG1sTWVzc2FnZSAuICI8cC8+RGVsZXRlZCBhbGwgdGVtcG9yYWwgZmlsZXMgYXQ6
ICciIC4gJHRtcERpciAuICInIjsKLSAgICB9Ci0KLQotICAgIC8vIGdldGlkMyBkb3dubG9hZGVk
LiBMZXQncyBjcmVhdGUgdGhlIGRhdGFiYXNlIGZpbGUuCi0gICAgcmVxdWlyZV9vbmNlKCJnZXRp
ZDMvZ2V0aWQzLnBocCIpOwotICAgICRnZXRJRDMgPSBuZXcgZ2V0SUQzOwotCi0gICAgJGlkM0Zp
bGVOYW1lcyA9IGFycmF5X2RpZmYoc2NhbmRpcigkbWVkaWFEaXJlY3RvcnkpLCBhcnJheSgiLiIs
ICIuLiIpKTsKLQotICAgIGZvcmVhY2ggKCRpZDNGaWxlTmFtZXMgYXMgJGlkM0ZpbGVOYW1lKSB7
Ci0gICAgICAgICRpZDMgPSAkZ2V0SUQzLT5hbmFseXplKCRtZWRpYURpcmVjdG9yeSAuICIvIiAu
ICRpZDNGaWxlTmFtZSk7Ci0gICAgICAgICRwbGF5ZmlsZSA9IGFycmF5KAotICAgICAgICAgICAg
ImZpbGVOYW1lIiA9PiAkaWQzWyJmaWxlbmFtZSJdLAotICAgICAgICAgICAgImZpbGVTaXplIiA9
PiAkaWQzWyJmaWxlc2l6ZSJdLAotICAgICAgICAgICAgInBsYXlUaW1lIiA9PiAkaWQzWyJwbGF5
dGltZV9zZWNvbmRzIl0sCi0gICAgICAgICAgICAiYXVkaW9TdGFydCIgPT4gJGlkM1siYXZkYXRh
b2Zmc2V0Il0sCi0gICAgICAgICAgICAiYXVkaW9FbmQiID0+ICRpZDNbImF2ZGF0YWVuZCJdLAot
ICAgICAgICAgICAgImF1ZGlvTGVuZ3RoIiA9PiAkaWQzWyJhdmRhdGFlbmQiXSAtICRpZDNbImF2
ZGF0YW9mZnNldCJdLAotICAgICAgICAgICAgImFydGlzdCIgPT4gJGlkM1sidGFncyJdWyJpZDN2
MiJdWyJhcnRpc3QiXVswXSwKLSAgICAgICAgICAgICJ0aXRsZSIgPT4gJGlkM1sidGFncyJdWyJp
ZDN2MiJdWyJ0aXRsZSJdWzBdLAotICAgICAgICAgICAgImJpdFJhdGUiID0+ICRpZDNbImF1ZGlv
Il1bImJpdHJhdGUiXSwKLSAgICAgICAgICAgICJtaW1lVHlwZSIgPT4gJGlkM1sibWltZV90eXBl
Il0sCi0gICAgICAgICAgICAiZmlsZUZvcm1hdCIgPT4gJGlkM1siZmlsZWZvcm1hdCJdLAotICAg
ICAgICApOwotICAgICAgICBpZiAoZW1wdHkoJHBsYXlmaWxlWyJhcnRpc3QiXSkgfHwgZW1wdHko
JHBsYXlmaWxlWyJ0aXRsZSJdKSkKLSAgICAgICAgICAgIGxpc3QoJHBsYXlmaWxlWyJhcnRpc3Qi
XSwgJHBsYXlmaWxlWyJ0aXRsZSJdKSA9IGV4cGxvZGUoIiAtICIsIHN1YnN0cigkcGxheWZpbGVb
ImZpbGVOYW1lIl0sIDAgLCAtNCkpOwotICAgICAgICAkcGxheUZpbGVzW10gPSAkcGxheWZpbGU7
Ci0gICAgfQotCi0gICAgaWYgKCFmaWxlX3B1dF9jb250ZW50cygkZGF0YWJhc2VGaWxlLCBzZXJp
YWxpemUoJHBsYXlGaWxlcykpKSB7Ci0gICAgICAgIHRyaWdnZXJfZXJyb3IoIkltcG9zc2libGUg
dG8gd3JpdGUgdGhlIGdldGlkMyBkYi4iLCBFX1VTRVJfV0FSTklORyk7Ci0gICAgICAgIGdvdG8g
YW5zd2VyaW5nOwotICAgIH0KLSAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAv
PldyaXR0ZW4gbmV3IGRhdGFiYXNlIGZpbGUgYXQ6ICciIC4gJGRhdGFiYXNlRmlsZSAuICInIjsK
LQotCi0gICAgLy8gRGF0YWJhc2UgY3JlYXRlZCwgZXZlcnl0aGluZyBPSy4KLSAgICAkaHR0cFN0
YXR1cyA9ICIyMDAgT0siOwotCi0KLWFuc3dlcmluZzoKLQotICAgIGhlYWRlcigiU3RhdHVzOiAi
IC4gJGh0dHBTdGF0dXMpOwotICAgIGhlYWRlcigiSFRUUC8xLjEgIiAuICRodHRwU3RhdHVzKTsK
LSAgICBoZWFkZXIoIkNvbm5lY3Rpb246IGNsb3NlIik7Ci0gICAgaGVhZGVyKCJDb250ZW50LVR5
cGU6IHRleHQvaHRtbCIpOwotCi0gICAgJGh0bWxNZXNzYWdlID0gIjxodG1sPjxib2R5PjxoMT4i
IC4gJGh0dHBTdGF0dXMgLiAiPC9oMT4iIC4gJGh0bWxNZXNzYWdlOwotCi0gICAgaWYgKCRodHRw
U3RhdHVzID09ICI1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yIikgewotICAgICAgICBpZiAoZnVu
Y3Rpb25fZXhpc3RzKCJlcnJvcl9nZXRfbGFzdCIpKSB7Ci0gICAgICAgICAgICAkZXJyb3JBcnJh
eSA9IGVycm9yX2dldF9sYXN0KCk7Ci0gICAgICAgICAgICBpZiAoJGVycm9yQXJyYXkpIHsKLSAg
ICAgICAgICAgICAgICAkaHRtbE1lc3NhZ2UgPSBzcHJpbnRmKCIlczxwLz5FcnJvciB0eXBlOiAl
ZDxwLz5FcnJvciBtZXNzYWdlOiAlczxwLz4iLgotICAgICAgICAgICAgICAgICAgICAiRXJyb3Ig
ZmlsZTogJXM8cC8+RXJyb3IgbGluZTogJWQiLAotICAgICAgICAgICAgICAgICAgICAkaHRtbE1l
c3NhZ2UsICRlcnJvckFycmF5WyJ0eXBlIl0sICRlcnJvckFycmF5WyJtZXNzYWdlIl0sCi0gICAg
ICAgICAgICAgICAgICAgICRlcnJvckFycmF5WyJmaWxlIl0sICRlcnJvckFycmF5WyJsaW5lIl0p
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgICRodG1sTWVzc2FnZSA9ICRo
dG1sTWVzc2FnZSAuICI8L2JvZHk+PGh0bWw+IjsKLQotICAgIHByaW50KCRodG1sTWVzc2FnZSk7
Ci0gICAgZmx1c2goKTsKLSAgICBleGl0OwotPz4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VzL2Rpci1oZWxwZXJzLnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlcy9kaXItaGVscGVycy5waHAJKHJldmlzaW9uIDI3NzI3MSkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2Rpci1oZWxwZXJzLnBocAkobm9uZXhp
c3RlbnQpCkBAIC0xLDc3ICswLDAgQEAKLTw/cGhwCi1yZXF1aXJlX29uY2UgJ3BvcnRhYmlsaXR5
TGF5ZXIucGhwJzsKLQotZnVuY3Rpb24gdG1wZGlyKCRkaXI9RkFMU0UsICRwcmVmaXg9J3BocCcp
Ci17Ci0gICAgaWYgKCRkaXIpIHsKLSAgICAgICAgJHRtcEZpbGUgPSB0ZW1wbmFtKCRkaXIsICRw
cmVmaXgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghc3lzX2dldF90ZW1wX2RpcigpKQot
ICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgICAgICAkdG1wRmlsZSA9IHRlbXBuYW0oc3lz
X2dldF90ZW1wX2RpcigpLCAkcHJlZml4KTsKLSAgICB9Ci0KLSAgICBpZiAoIWZpbGVfZXhpc3Rz
KCR0bXBGaWxlKSkKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgIHVubGluaygkdG1wRmlsZSk7
Ci0gICAgbWtkaXIoJHRtcEZpbGUpOwotICAgIGlmICghaXNfZGlyKCR0bXBGaWxlKSkKLSAgICAg
ICAgcmV0dXJuIEZBTFNFOwotCi0gICAgcmV0dXJuICR0bXBGaWxlOwotfQotCi1mdW5jdGlvbiBy
cm1kaXIoJGRpcikKLXsKLSAgICBpZiAoaXNfZGlyKCRkaXIpKSB7Ci0gICAgICAgICRvYmplY3Rz
ID0gYXJyYXlfZGlmZihzY2FuZGlyKCRkaXIpLCBhcnJheSgiLiIsICIuLiIpKTsKLSAgICAgICAg
Zm9yZWFjaCAoJG9iamVjdHMgYXMgJG9iamVjdCkKLSAgICAgICAgICAgIChpc19kaXIoJGRpciAu
ICIvIiAuICRvYmplY3QpKSA/IHJybWRpcigkZGlyIC4gIi8iIC4gJG9iamVjdCkgOiB1bmxpbmso
JGRpciAuICIvIiAuICRvYmplY3QpOwotICAgICAgICByZXNldCgkb2JqZWN0cyk7Ci0gICAgICAg
IHJtZGlyKCRkaXIpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gcmNvcHkoJHNyYywgJGRzdCkKLXsK
LSAgICBpZiAoZmlsZV9leGlzdHMoJGRzdCkpCi0gICAgICAgIHJybWRpcigkZHN0KTsKLSAgICBp
ZiAoaXNfZGlyKCRzcmMpKSB7Ci0gICAgICAgIG1rZGlyKCRkc3QpOwotICAgICAgICAkZmlsZXMg
PSBhcnJheV9kaWZmKHNjYW5kaXIoJHNyYyksIGFycmF5KCIuIiwgIi4uIikpOwotICAgICAgICBm
b3JlYWNoICgkZmlsZXMgYXMgJGZpbGUpCi0gICAgICAgICAgcmNvcHkoIiRzcmMvJGZpbGUiLCAi
JGRzdC8kZmlsZSIpOwotICAgIH0gZWxzZSBpZiAoZmlsZV9leGlzdHMoJHNyYykpIHsKLSAgICAg
ICAgY29weSgkc3JjLCAkZHN0KTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGZpcnN0X2RpcigkbmFt
ZSwgJGRpcj1GQUxTRSkKLXsKLSAgICAkcmVzdWx0ID0gRkFMU0U7Ci0gICAgJHJvb3QgPSAkZGly
ID8gJGRpciA6ICIuLyI7Ci0gICAgJHF1ZXVlID0gYXJyYXkocmVhbHBhdGgoJHJvb3QpKTsKLQot
ICAgIHdoaWxlIChzaXplb2YoJHF1ZXVlKSkgewotICAgICAgICAkdmVydGV4ID0gYXJyYXlfcG9w
KCRxdWV1ZSk7Ci0gICAgICAgICRvYmplY3RzID0gYXJyYXlfZGlmZihzY2FuZGlyKCR2ZXJ0ZXgp
LCBhcnJheSgiLiIsICIuLiIpKTsKLSAgICAgICAgZm9yZWFjaCAoJG9iamVjdHMgYXMgJG9iamVj
dCkgewotICAgICAgICAgICAgJGZ1bGxQYXRoID0gJHZlcnRleCAuICIvIiAuICRvYmplY3Q7Ci0g
ICAgICAgICAgICBpZiAoaXNfZGlyKCRmdWxsUGF0aCkpIHsKLSAgICAgICAgICAgICAgICBpZiAo
JG5hbWUgPT0gYmFzZW5hbWUoJGZ1bGxQYXRoKSkgewotICAgICAgICAgICAgICAgICAgICAkcmVz
dWx0ID0gJGZ1bGxQYXRoOwotICAgICAgICAgICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXJyYXlfdW5zaGlmdCgk
cXVldWUsICRmdWxsUGF0aCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgfQotCi0KLWNsZWFudXA6Ci0KLSAgICByZXR1cm4gJHJlc3VsdDsKLX0KLT8+
Ci0KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL3BvcnRhYmlsaXR5TGF5
ZXIucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL3Bv
cnRhYmlsaXR5TGF5ZXIucGhwCShyZXZpc2lvbiAyNzcyNzEpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlcy9wb3J0YWJpbGl0eUxheWVyLnBocAkobm9uZXhpc3RlbnQpCkBAIC0x
LDY4ICswLDAgQEAKLTw/cGhwCi0KLWlmICghZnVuY3Rpb25fZXhpc3RzKCdzeXNfZ2V0X3RlbXBf
ZGlyJykpIHsKLSAgICAvLyBCYXNlZCBvbiBodHRwOi8vd3d3LnBocGl0Lm5ldC9hcnRpY2xlL2Ny
ZWF0aW5nLXppcC10YXItYXJjaGl2ZXMtZHluYW1pY2FsbHktcGhwLzIvCi0gICAgLy8gSWYgdGhl
IGJ1aWx0aW4gUEhQIHN5c19nZXRfdGVtcF9kaXIgZG9lc24ndCBleGlzdCwgd2UgcmVwbGFjZSBp
dCB3aXRoIG9uZSB0aGF0IHdpbGwKLSAgICAvLyB0cnkgdG8gZ3Vlc3MgZnJvbSB0aGUgZW52aXJv
bm1lbnQuICBTaW5jZSBzeXNfZ2V0X3RlbXBfZGlyKCkgZG9lc24ndCByZXR1cm4gYSB0cmFpbGlu
ZwotICAgIC8vIHNsYXNoIG9uIGFsbCBzeXN0ZW0gKHNlZSBjb21tZW50IGF0IGh0dHA6Ly91cy5w
aHAubmV0L3N5c19nZXRfdGVtcF9kaXIpLCB3ZSBkb24ndAotICAgIC8vIGFwcGVuZCBhIHRyYWls
aW5nIHNsYXNoLCBhbmQgZXhwZWN0IGNhbGxlcnMgdG8gYXBwZW5kIG9uZSB3aGVuIG5lZWRlZC4K
LSAgICBmdW5jdGlvbiBzeXNfZ2V0X3RlbXBfZGlyKCkKLSAgICB7Ci0gICAgICAgIC8vIFRyeSB0
byBnZXQgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZQotICAgICAgICBpZiAoIWVtcHR5KCRfRU5W
WydUTVAnXSkpCi0gICAgICAgICAgICByZXR1cm4gcmVhbHBhdGgoJF9FTlZbJ1RNUCddKTsKLSAg
ICAgICAgaWYgKCFlbXB0eSgkX0VOVlsnVE1QRElSJ10pKQotICAgICAgICAgICAgcmV0dXJuIHJl
YWxwYXRoKCRfRU5WWydUTVBESVInXSk7Ci0gICAgICAgIGlmICghZW1wdHkoJF9FTlZbJ1RFTVAn
XSkpCi0gICAgICAgICAgICByZXR1cm4gcmVhbHBhdGgoICRfRU5WWydURU1QJ10pOwotICAgICAg
ICByZXR1cm4gIi90bXAiOwotICAgIH0KLX0KLQotaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2ZpbGVf
cHV0X2NvbnRlbnRzJykpIHsKLSAgICBmdW5jdGlvbiBmaWxlX3B1dF9jb250ZW50cygkZmlsZW5h
bWUsICRkYXRhKQotICAgIHsKLSAgICAgICAgJGhhbmRsZSA9IGZvcGVuKCRmaWxlbmFtZSwgInci
KTsKLSAgICAgICAgaWYgKCEkaGFuZGxlKQotICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAg
ICAgICAkYnl0ZXNXcml0dGVuID0gZndyaXRlKCRoYW5kbGUsICRkYXRhKTsKLSAgICAgICAgaWYg
KCFmY2xvc2UoJGhhbmRsZSkpCi0gICAgICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgICAgIHJl
dHVybiAkYnl0ZXNXcml0dGVuOwotICAgIH0KLX0KLQotaWYgKCFmdW5jdGlvbl9leGlzdHMoJ3N0
cmVhbV9jb3B5X3RvX3N0cmVhbScpKSB7Ci0gICAgZnVuY3Rpb24gc3RyZWFtX2NvcHlfdG9fc3Ry
ZWFtKCRzb3VyY2UsICRkZXN0KQotICAgIHsKLSAgICAgICAgJHJlc3VsdCA9IDA7Ci0gICAgICAg
IHdoaWxlICghZmVvZigkc291cmNlKSkgewotICAgICAgICAgICAgJGJ5dGVzV3JpdHRlbiA9IGZ3
cml0ZSgkZGVzdCwgZnJlYWQoJHNvdXJjZSwgODE5MikpOwotICAgICAgICAgICAgaWYgKCEkYnl0
ZXNXcml0dGVuKQotICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAgICAgICAgICRy
ZXN1bHQgPSAkcmVzdWx0ICsgJGJ5dGVzV3JpdHRlbjsKLSAgICAgICAgfQotCi0gICAgICAgIHJl
dHVybiAkcmVzdWx0OwotICAgIH0KLX0KLQotaWYgKCFmdW5jdGlvbl9leGlzdHMoJ3NjYW5kaXIn
KSkgewotICAgIGZ1bmN0aW9uIHNjYW5kaXIoJGRpcikKLSAgICB7Ci0gICAgICAgIGlmICghaXNf
ZGlyKCRkaXIpKQotICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotCi0gICAgICAgICRkaCA9IG9w
ZW5kaXIoJGRpcik7Ci0gICAgICAgIHdoaWxlICgkZmlsZW5hbWUgPSByZWFkZGlyKCRkaCkpIHsK
LSAgICAgICAgICAgICRmaWxlc1tdID0gJGZpbGVuYW1lOwotICAgICAgICB9Ci0KLSAgICAgICAg
Y2xvc2VkaXIoJGRoKTsKLSAgICAgICAgc29ydCgkZmlsZXMpOwotCi0gICAgICAgIHJldHVybiAk
ZmlsZXM7Ci0gICAgfQotfQotCi0/PgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZXMvcG9ydGFiaWxpdHlMYXllci5waHAKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxl
dGVkOiBzdm46ZXhlY3V0YWJsZQojIyAtMSArMCwwICMjCi0qClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL2NvbnRlbnQvY3JlYXRlLWlkMy1k
Ygo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZW50L2NyZWF0ZS1pZDMtZGIJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvY29udGVudC9jcmVhdGUtaWQzLWRi
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQzIEBACisjIS91c3IvYmluL2VudiBwaHAKKwor
PD9waHAKKworICAgIC8vIFRoaXMgc2NyaXB0IGlzIGJhc2VkIG9uIHRoZSB3b3JrIGRvbmUgYnkg
Z2FkZ2V0Z3VydQorICAgIC8vIDxkYXZpZEB2dWlzdGJpamwubmw+IGF0CisgICAgLy8gaHR0cHM6
Ly9naXRodWIuY29tL2dhZGdldGd1cnUvUEhQLVN0cmVhbWluZy1BdWRpbyBhbmQgcmVsZWFzZWQK
KyAgICAvLyB1bmRlciB0aGUgUHVibGljIERvbWFpbi4KKworCisgICAgLy8gVGhpcyBzY3JpcHQg
Y3JlYXRlcywgb3ZlcndyaXRpbmcgaWYgbmVlZGVkLCB0aGUgIm1ldGFkYXRhLmpzb24iCisgICAg
Ly8gZmlsZSB1c2VkIGJ5IHNjcmlwdHMgc3VjaCBhcyAic2VydmUtdmlkZW8ucHkiLgorICAgIC8v
CisgICAgLy8gRm9yIGNyZWF0aW5nIG9yIHVwZGF0aW5nIGFuIGV4aXN0aW5nIGZpbGUgeW91IGhh
dmUgdG8gcnVuCisgICAgLy8gdGhlIGZpbGUgYXMgYW4gZXhlY3V0YWJsZSwgcGFzc2luZyBhIHNp
bmdsZSBhcmd1bWVudCB3aGljaAorICAgIC8vIGlzIHRoZSBuYW1lIG9mIHRoZSBmaWxlIHdlIGFy
ZSBhY2Nlc3NpbmcgdG8gZ2V0IHRoZSBtZWRpYQorICAgIC8vIGRpcmVjdG9yeQorICAgIC8vCisg
ICAgLy8gV2l0aCB0aGlzLCBhIG5ldyAibWV0YWRhYmEuanNvbiIgZmlsZSB3aWxsIGJlIGNyZWF0
ZSBpbiB0aGUKKyAgICAvLyBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgcmVmZXJyZWQgZmlsZS4g
SW4gdGhpcyBleGFtcGxlLCB0aGUKKyAgICAvLyBkYXRhYmFzZSB3aWxsIGJlIGNyZWF0ZWQgYXQ6
CisgICAgLy8KKyAgICAvLyAkIExheW91dFRlc3RzL21lZGlhL2NvbnRlbnQvbWV0YWRhdGEuanNv
bgorCisKKyAgICBmdW5jdGlvbiB0bXBkaXIoJGRpcj1GQUxTRSwgJHByZWZpeD0ncGhwJykKKyAg
ICB7CisgICAgICAgIGlmICgkZGlyKSB7CisgICAgICAgICAgICAkdG1wRmlsZSA9IHRlbXBuYW0o
JGRpciwgJHByZWZpeCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIXN5c19n
ZXRfdGVtcF9kaXIoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgICAgICAg
ICAkdG1wRmlsZSA9IHRlbXBuYW0oc3lzX2dldF90ZW1wX2RpcigpLCAkcHJlZml4KTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICghZmlsZV9leGlzdHMoJHRtcEZpbGUpKQorICAgICAgICAgICAg
cmV0dXJuIEZBTFNFOworICAgICAgICB1bmxpbmsoJHRtcEZpbGUpOworICAgICAgICBta2Rpcigk
dG1wRmlsZSk7CisgICAgICAgIGlmICghaXNfZGlyKCR0bXBGaWxlKSkKKyAgICAgICAgICAgIHJl
dHVybiBGQUxTRTsKKworICAgICAgICByZXR1cm4gJHRtcEZpbGU7CisgICAgfQorCisKKyAgICBm
dW5jdGlvbiBycm1kaXIoJGRpcikKKyAgICB7CisgICAgICAgIGlmIChpc19kaXIoJGRpcikpIHsK
KyAgICAgICAgICAgICRvYmplY3RzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRkaXIpLCBhcnJheSgi
LiIsICIuLiIpKTsKKyAgICAgICAgICAgIGZvcmVhY2ggKCRvYmplY3RzIGFzICRvYmplY3QpCisg
ICAgICAgICAgICAgICAgKGlzX2RpcigkZGlyIC4gIi8iIC4gJG9iamVjdCkpID8gcnJtZGlyKCRk
aXIgLiAiLyIgLiAkb2JqZWN0KSA6IHVubGluaygkZGlyIC4gIi8iIC4gJG9iamVjdCk7CisgICAg
ICAgICAgICByZXNldCgkb2JqZWN0cyk7CisgICAgICAgICAgICBybWRpcigkZGlyKTsKKyAgICAg
ICAgfQorICAgIH0KKworCisgICAgZnVuY3Rpb24gcmNvcHkoJHNyYywgJGRzdCkKKyAgICB7Cisg
ICAgICAgIGlmIChmaWxlX2V4aXN0cygkZHN0KSkKKyAgICAgICAgICAgIHJybWRpcigkZHN0KTsK
KyAgICAgICAgaWYgKGlzX2Rpcigkc3JjKSkgeworICAgICAgICAgICAgbWtkaXIoJGRzdCk7Cisg
ICAgICAgICAgICAkZmlsZXMgPSBhcnJheV9kaWZmKHNjYW5kaXIoJHNyYyksIGFycmF5KCIuIiwg
Ii4uIikpOworICAgICAgICAgICAgZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKQorICAgICAgICAg
ICAgICByY29weSgiJHNyYy8kZmlsZSIsICIkZHN0LyRmaWxlIik7CisgICAgICAgIH0gZWxzZSBp
ZiAoZmlsZV9leGlzdHMoJHNyYykpIHsKKyAgICAgICAgICAgIGNvcHkoJHNyYywgJGRzdCk7Cisg
ICAgICAgIH0KKyAgICB9CisKKworICAgIGZ1bmN0aW9uIGZpcnN0X2RpcigkbmFtZSwgJGRpcj1G
QUxTRSkKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSBGQUxTRTsKKyAgICAgICAgJHJvb3QgPSAk
ZGlyID8gJGRpciA6ICIuLyI7CisgICAgICAgICRxdWV1ZSA9IGFycmF5KHJlYWxwYXRoKCRyb290
KSk7CisKKyAgICAgICAgd2hpbGUgKHNpemVvZigkcXVldWUpKSB7CisgICAgICAgICAgICAkdmVy
dGV4ID0gYXJyYXlfcG9wKCRxdWV1ZSk7CisgICAgICAgICAgICAkb2JqZWN0cyA9IGFycmF5X2Rp
ZmYoc2NhbmRpcigkdmVydGV4KSwgYXJyYXkoIi4iLCAiLi4iKSk7CisgICAgICAgICAgICBmb3Jl
YWNoICgkb2JqZWN0cyBhcyAkb2JqZWN0KSB7CisgICAgICAgICAgICAgICAgJGZ1bGxQYXRoID0g
JHZlcnRleCAuICIvIiAuICRvYmplY3Q7CisgICAgICAgICAgICAgICAgaWYgKGlzX2RpcigkZnVs
bFBhdGgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgkbmFtZSA9PSBiYXNlbmFtZSgkZnVs
bFBhdGgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJGZ1bGxQYXRoOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRyZXN1bHQ7CisgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV91bnNoaWZ0KCRxdWV1
ZSwgJGZ1bGxQYXRoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgLy8gNTAwIG9uIGVycm9y
cworICAgICRodHRwU3RhdHVzID0gIjUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IiOworICAgICRo
dG1sTWVzc2FnZSA9ICIiOworCisgICAgaWYgKHNpemVvZigkYXJndikgPCAyKSB7CisgICAgICAg
IHRyaWdnZXJfZXJyb3IoIllvdSBoYXZlIG5vdCBzcGVjaWZpZWQgYSAnbmFtZScgcGFyYW1ldGVy
LiIsIEVfVVNFUl9XQVJOSU5HKTsKKyAgICAgICAgZ290byBhbnN3ZXJpbmc7CisgICAgfQorICAg
ICRtZWRpYURpcmVjdG9yeSA9IGRpcm5hbWUoJGFyZ3ZbMV0pOworCisgICAgaWYgKCFpc19kaXIo
JG1lZGlhRGlyZWN0b3J5KSkgeworICAgICAgICB0cmlnZ2VyX2Vycm9yKCJUaGUgcHJvdmlkZWQg
ZGlyZWN0b3J5IHBhdGggZG9lc24ndCBleGlzdC4iLCBFX1VTRVJfV0FSTklORyk7CisgICAgICAg
IGdvdG8gYW5zd2VyaW5nOworICAgIH0KKyAgICAkZGF0YWJhc2VGaWxlID0gcmVhbHBhdGgoJG1l
ZGlhRGlyZWN0b3J5KSAuICIvbWV0YWRhdGEuanNvbiI7CisKKyAgICBpZiAoZmlsZV9leGlzdHMo
JGRhdGFiYXNlRmlsZSkpIHsKKyAgICAgICAgdW5saW5rKCRkYXRhYmFzZUZpbGUpOworICAgICAg
ICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPkRlbGV0ZWQgcHJldmlvdXNseSBl
eGlzdGluZyBkYiBmaWxlIGF0OiAnIiAuICRkYXRhYmFzZUZpbGUgLiAiJyI7CisgICAgfQorCisg
ICAgLy8gV2UgZG9uJ3QgaGF2ZSBnZXRpZDMgaW4gV2ViS2l0LiBJZiBub3QgY3VycmVudGx5IHBy
ZXNlbnQsIHdlCisgICAgLy8gd2lsbCB0cnkgdG8gZG93bmxvYWQgaXQgbm93IGJlZm9yZSBtYWtp
bmcgdXNlIG9mIGl0LgorICAgIC8vCisgICAgLy8gZ2V0aWQzIGlzIGF2YWlsYWJsZSBhdCBodHRw
Oi8vZ2V0aWQzLnNvdXJjZWZvcmdlLm5ldAorCisgICAgJGdldElkM0Rlc3REaXIgPSAiZ2V0aWQz
IjsKKyAgICBpZiAoIWZpbGVfZXhpc3RzKCRnZXRJZDNEZXN0RGlyKSkgeworCisgICAgICAgICR0
bXBEaXIgPSB0bXBkaXIoRkFMU0UsICJwaHAiKTsKKyAgICAgICAgaWYgKCFpc19kaXIoJHRtcERp
cikpIHsKKyAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoIkltcG9zc2libGUgdG8gY3JlYXRlIHRl
bXBvcmFsIGRpcmVjdG9yeS4iLCBFX1VTRVJfV0FSTklORyk7CisgICAgICAgICAgICBnb3RvIGFu
c3dlcmluZzsKKyAgICAgICAgfQorCisgICAgICAgICRpZDNEZXN0UGF0aCA9ICR0bXBEaXIgLiAi
L2dldGlkMy56aXAiOworICAgICAgICAkcGhwVmVyc2lvbiA9IGV4cGxvZGUoIi4iLCBQSFBfVkVS
U0lPTik7CisgICAgICAgIGlmICgoJHBocFZlcnNpb25bMF0gPiA0KSAmJiAoJHBocFZlcnNpb25b
MV0gPiAwKSkKKyAgICAgICAgICAgICRpZDNVcmwgPSAiaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9w
cm9qZWN0cy9nZXRpZDMvZmlsZXMvZ2V0SUQzJTI4JTI5JTIwMS54LzEuOS43L2dldElEMy0xLjku
Ny56aXAvZG93bmxvYWQiOworICAgICAgICBlbHNlCisgICAgICAgICAgICAkaWQzVXJsID0gImh0
dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvZ2V0aWQzL2ZpbGVzL2dldElEMyUyOCUyOSUy
MDEueC8xLjcuMTAvZ2V0aWQzLTEuNy4xMC0yMDA5MDQyNi56aXAvZG93bmxvYWQiOworICAgICAg
ICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPmdldElkMyBub3QgaW4gdGhlIHN5
c3RlbS48cC8+RG93bmxvYWRpbmcgZnJvbTogJyIgLiAkaWQzVXJsIC4gIiciOworCisgICAgICAg
ICRjdHh0T3B0cyA9IGFycmF5KCJodHRwIiA9PgorICAgICAgICAgICAgYXJyYXkoCisgICAgICAg
ICAgICAgICAgIm1ldGhvZCIgID0+ICJHRVQiLAorICAgICAgICAgICAgICAgICJ0aW1lb3V0IiA9
PiA2MCwKKyAgICAgICAgICAgICkKKyAgICAgICAgKTsKKyAgICAgICAgJGN0eHQgPSBzdHJlYW1f
Y29udGV4dF9jcmVhdGUoJGN0eHRPcHRzKTsKKyAgICAgICAgJHNyYyA9IGZvcGVuKCRpZDNVcmws
ICJyYiIsIGZhbHNlLCAkY3R4dCk7CisgICAgICAgICRkZXN0ID0gZm9wZW4oJGlkM0Rlc3RQYXRo
LCAid2IiKTsKKyAgICAgICAgJGNvcGllZCA9IHN0cmVhbV9jb3B5X3RvX3N0cmVhbSgkc3JjLCAk
ZGVzdCk7CisgICAgICAgIGZjbG9zZSgkc3JjKTsKKyAgICAgICAgZmNsb3NlKCRkZXN0KTsKKyAg
ICAgICAgaWYgKCRjb3BpZWQgPT0gMCkgeworICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigiSW1w
b3NzaWJsZSB0byBjb3B5IHRoZSBsYXRlc3QgZ2V0aWQzIHppcCByZWxlYXNlIGZpbGUuIiwgRV9V
U0VSX1dBUk5JTkcpOworICAgICAgICAgICAgZ290byBhbnN3ZXJpbmc7CisgICAgICAgIH0KKyAg
ICAgICAgJGh0bWxNZXNzYWdlID0gJGh0bWxNZXNzYWdlIC4gIjxwLz5nZXRJZDMgZG93bmxvYWRl
ZCB0bzogJyIgLiAkaWQzRGVzdFBhdGggLiAiJyI7CisKKyAgICAgICAgaWYgKCFleGVjKCJ1bnpp
cCAiIC4gJGlkM0Rlc3RQYXRoIC4gIiAtZCAiIC4gJHRtcERpcikpIHsKKyAgICAgICAgICAgIHRy
aWdnZXJfZXJyb3IoIkltcG9zc2libGUgdG8gZXh0cmFjdCB0aGUgZG93bmxvYWRlZCB6aXAgZmls
ZS4iLCBFX1VTRVJfV0FSTklORyk7CisgICAgICAgICAgICBnb3RvIGFuc3dlcmluZzsKKyAgICAg
ICAgfQorICAgICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPlppcCBmaWxl
IHN1Y2Nlc3NmdWxseSBleHRyYWN0ZWQuIjsKKworICAgICAgICAkZ2V0SWQzU291cmNlRGlyID0g
Zmlyc3RfZGlyKCRnZXRJZDNEZXN0RGlyLCAkdG1wRGlyKTsKKyAgICAgICAgaWYgKCEkZ2V0SWQz
U291cmNlRGlyKSB7CisgICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCJJbXBvc3NpYmxlIHRvIGZp
bmQgdGhlIGdldGlkMyBkaXJlY3Rvcnkgd2l0aCB0aGUgUEhQIGNvZGUgdG8gY29weS4iLCBFX1VT
RVJfV0FSTklORyk7CisgICAgICAgICAgICBnb3RvIGFuc3dlcmluZzsKKyAgICAgICAgfQorICAg
ICAgICAkaHRtbE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPmdldElkMyBkaXJlY3Rvcnkg
dG8gY29weSBmb3VuZCBhdDogJyIgLiAkZ2V0SWQzU291cmNlRGlyIC4gIiciOworCisKKyAgICAg
ICAgcmNvcHkoJGdldElkM1NvdXJjZURpciwgJGdldElkM0Rlc3REaXIpOworICAgICAgICAkaHRt
bE1lc3NhZ2UgPSAkaHRtbE1lc3NhZ2UgLiAiPHAvPmdldElkMyBkaXJlY3RvcnkgY29waWVkIHRv
IGl0cyBmaW5hbCBkZXN0aW5hdGlvbiBhdDogJyIgLiByZWFscGF0aCgkZ2V0SWQzU291cmNlRGly
KSAuICInIjsKKworICAgICAgICBycm1kaXIoJHRtcERpcik7CisgICAgICAgICRodG1sTWVzc2Fn
ZSA9ICRodG1sTWVzc2FnZSAuICI8cC8+RGVsZXRlZCBhbGwgdGVtcG9yYWwgZmlsZXMgYXQ6ICci
IC4gJHRtcERpciAuICInIjsKKyAgICB9CisKKworICAgIC8vIGdldGlkMyBkb3dubG9hZGVkLiBM
ZXQncyBjcmVhdGUgdGhlIGRhdGFiYXNlIGZpbGUuCisgICAgcmVxdWlyZV9vbmNlKCJnZXRpZDMv
Z2V0aWQzLnBocCIpOworICAgICRnZXRJRDMgPSBuZXcgZ2V0SUQzOworCisgICAgJGlkM0ZpbGVO
YW1lcyA9IGFycmF5X2RpZmYoc2NhbmRpcigkbWVkaWFEaXJlY3RvcnkpLCBhcnJheSgiLiIsICIu
LiIpKTsKKworICAgIGZvcmVhY2ggKCRpZDNGaWxlTmFtZXMgYXMgJGlkM0ZpbGVOYW1lKSB7Cisg
ICAgICAgICRpZDMgPSAkZ2V0SUQzLT5hbmFseXplKCRtZWRpYURpcmVjdG9yeSAuICIvIiAuICRp
ZDNGaWxlTmFtZSk7CisgICAgICAgICRwbGF5ZmlsZSA9IGFycmF5KAorICAgICAgICAgICAgImZp
bGVOYW1lIiA9PiAkaWQzWyJmaWxlbmFtZSJdLAorICAgICAgICAgICAgImZpbGVTaXplIiA9PiAk
aWQzWyJmaWxlc2l6ZSJdLAorICAgICAgICAgICAgInBsYXlUaW1lIiA9PiAkaWQzWyJwbGF5dGlt
ZV9zZWNvbmRzIl0sCisgICAgICAgICAgICAiYXVkaW9TdGFydCIgPT4gJGlkM1siYXZkYXRhb2Zm
c2V0Il0sCisgICAgICAgICAgICAiYXVkaW9FbmQiID0+ICRpZDNbImF2ZGF0YWVuZCJdLAorICAg
ICAgICAgICAgImF1ZGlvTGVuZ3RoIiA9PiAkaWQzWyJhdmRhdGFlbmQiXSAtICRpZDNbImF2ZGF0
YW9mZnNldCJdLAorICAgICAgICAgICAgImFydGlzdCIgPT4gJGlkM1sidGFncyJdWyJpZDN2MiJd
WyJhcnRpc3QiXVswXSwKKyAgICAgICAgICAgICJ0aXRsZSIgPT4gJGlkM1sidGFncyJdWyJpZDN2
MiJdWyJ0aXRsZSJdWzBdLAorICAgICAgICAgICAgImJpdFJhdGUiID0+ICRpZDNbImF1ZGlvIl1b
ImJpdHJhdGUiXSwKKyAgICAgICAgICAgICJtaW1lVHlwZSIgPT4gJGlkM1sibWltZV90eXBlIl0s
CisgICAgICAgICAgICAiZmlsZUZvcm1hdCIgPT4gJGlkM1siZmlsZWZvcm1hdCJdLAorICAgICAg
ICApOworICAgICAgICBpZiAoZW1wdHkoJHBsYXlmaWxlWyJhcnRpc3QiXSkgfHwgZW1wdHkoJHBs
YXlmaWxlWyJ0aXRsZSJdKSkKKyAgICAgICAgICAgIGxpc3QoJHBsYXlmaWxlWyJhcnRpc3QiXSwg
JHBsYXlmaWxlWyJ0aXRsZSJdKSA9IGV4cGxvZGUoIiAtICIsIHN1YnN0cigkcGxheWZpbGVbImZp
bGVOYW1lIl0sIDAgLCAtNCkpOworICAgICAgICAkcGxheUZpbGVzW10gPSAkcGxheWZpbGU7Cisg
ICAgfQorCisgICAgaWYgKCFmaWxlX3B1dF9jb250ZW50cygkZGF0YWJhc2VGaWxlLCBqc29uX2Rl
Y29kZSgkcGxheUZpbGVzKSkpIHsKKyAgICAgICAgdHJpZ2dlcl9lcnJvcigiSW1wb3NzaWJsZSB0
byB3cml0ZSB0aGUgZ2V0aWQzIGRiLiIsIEVfVVNFUl9XQVJOSU5HKTsKKyAgICAgICAgZ290byBh
bnN3ZXJpbmc7CisgICAgfQorICAgICRodG1sTWVzc2FnZSA9ICRodG1sTWVzc2FnZSAuICI8cC8+
V3JpdHRlbiBuZXcgZGF0YWJhc2UgZmlsZSBhdDogJyIgLiAkZGF0YWJhc2VGaWxlIC4gIiciOwor
CisKKyAgICAvLyBEYXRhYmFzZSBjcmVhdGVkLCBldmVyeXRoaW5nIE9LLgorICAgICRodHRwU3Rh
dHVzID0gIjIwMCBPSyI7CisKKworYW5zd2VyaW5nOgorCisgICAgaGVhZGVyKCJTdGF0dXM6ICIg
LiAkaHR0cFN0YXR1cyk7CisgICAgaGVhZGVyKCJIVFRQLzEuMSAiIC4gJGh0dHBTdGF0dXMpOwor
ICAgIGhlYWRlcigiQ29ubmVjdGlvbjogY2xvc2UiKTsKKyAgICBoZWFkZXIoIkNvbnRlbnQtVHlw
ZTogdGV4dC9odG1sIik7CisKKyAgICAkaHRtbE1lc3NhZ2UgPSAiPGh0bWw+PGJvZHk+PGgxPiIg
LiAkaHR0cFN0YXR1cyAuICI8L2gxPiIgLiAkaHRtbE1lc3NhZ2U7CisKKyAgICBpZiAoJGh0dHBT
dGF0dXMgPT0gIjUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IiKSB7CisgICAgICAgIGlmIChmdW5j
dGlvbl9leGlzdHMoImVycm9yX2dldF9sYXN0IikpIHsKKyAgICAgICAgICAgICRlcnJvckFycmF5
ID0gZXJyb3JfZ2V0X2xhc3QoKTsKKyAgICAgICAgICAgIGlmICgkZXJyb3JBcnJheSkgeworICAg
ICAgICAgICAgICAgICRodG1sTWVzc2FnZSA9IHNwcmludGYoIiVzPHAvPkVycm9yIHR5cGU6ICVk
PHAvPkVycm9yIG1lc3NhZ2U6ICVzPHAvPiIuCisgICAgICAgICAgICAgICAgICAgICJFcnJvciBm
aWxlOiAlczxwLz5FcnJvciBsaW5lOiAlZCIsCisgICAgICAgICAgICAgICAgICAgICRodG1sTWVz
c2FnZSwgJGVycm9yQXJyYXlbInR5cGUiXSwgJGVycm9yQXJyYXlbIm1lc3NhZ2UiXSwKKyAgICAg
ICAgICAgICAgICAgICAgJGVycm9yQXJyYXlbImZpbGUiXSwgJGVycm9yQXJyYXlbImxpbmUiXSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgJGh0bWxNZXNzYWdlID0gJGh0
bWxNZXNzYWdlIC4gIjwvYm9keT48aHRtbD4iOworCisgICAgcHJpbnQoJGh0bWxNZXNzYWdlKTsK
KyAgICBmbHVzaCgpOworICAgIGV4aXQ7Cis/PgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvbWVkaWEvY29udGVudC9jcmVhdGUtaWQzLWRiCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpl
eGVjdXRhYmxlCiMjIC0wLDAgKzEgIyMKKyoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0
eQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>