<?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>225057</bug_id>
          
          <creation_ts>2021-04-26 09:28:55 -0700</creation_ts>
          <short_desc>charset in contentType used in Blob.prototype.slice(start, end, contentType) is lost</short_desc>
          <delta_ts>2021-04-27 16:01:53 -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>DOM</component>
          <version>Safari 14</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>macOS 10.15</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rick Waldron">rwaldron</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>eoconnor</cc>
    
    <cc>rwaldron</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1754226</commentid>
    <comment_count>0</comment_count>
    <who name="Rick Waldron">rwaldron</who>
    <bug_when>2021-04-26 09:28:55 -0700</bug_when>
    <thetext>When running the following case in any Safari release, the portion of the contentType argument &quot;;charset=utf-8&quot; is missing from the content-type header when the response is received: 


    const blob = new Blob([`&lt;style&gt;&lt;/style&gt;`], { type: &apos;text/html&apos; });
    const normalizedBlob = blob.slice(0, blob.size, `text/html;charset=utf-8`);
    const url = URL.createObjectURL(normalizedBlob);
    const xhr = new XMLHttpRequest();
    xhr.addEventListener(&apos;load&apos;, () =&gt; {
      console.log(&apos;(xhr-get) content-type&apos;, xhr.getResponseHeader(&apos;content-type&apos;));
    });
    xhr.open(&apos;GET&apos;, url);
    xhr.send();


    fetch(url)
      .then(response =&gt; {
        console.log(&apos;(fetch) content-type&apos;, response.headers.get(&apos;content-type&apos;))
      });


Expected output: 

    &quot;(xhr-get) content-type&quot;, &quot;text/html;charset=utf-8&quot;
    &quot;(fetch) content-type&quot;, &quot;text/html;charset=utf-8&quot;


Actual output: 

    &quot;(xhr-get) content-type&quot;, &quot;text/html&quot;
    &quot;(fetch) content-type&quot;, &quot;text/html&quot;


The expected output appears correct in Chrome (+ Edge) and Firefox 


I&apos;ve made the test case available here: https://jsfiddle.net/rwaldron/acnxz7sv/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754370</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-26 14:18:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/77175697&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754382</commentid>
    <comment_count>2</comment_count>
      <attachid>427092</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-26 14:32:08 -0700</bug_when>
    <thetext>Created attachment 427092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754386</commentid>
    <comment_count>3</comment_count>
      <attachid>427092</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-26 14:35:32 -0700</bug_when>
    <thetext>Comment on attachment 427092
Patch

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

&gt; LayoutTests/fast/files/blob-content-type-expected.txt:1
&gt; +ALERT: content-type text/html2;charset=utf-8

Please write a test with actual PASS / FAIL lines. This output really does not make it obvious if the test is failing or passing. If I were to make a change breaking this, I could easily rebaseline this test by mistake and still think it is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754391</commentid>
    <comment_count>4</comment_count>
      <attachid>427093</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-26 14:42:04 -0700</bug_when>
    <thetext>Created attachment 427093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754393</commentid>
    <comment_count>5</comment_count>
      <attachid>427093</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-26 14:46:46 -0700</bug_when>
    <thetext>Comment on attachment 427093
Patch

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

&gt; LayoutTests/fast/files/blob-content-type.html:14
&gt; +    alert(response.headers.get(&apos;content-type&apos;) == &quot;&quot; ? &quot;PASS&quot; : &quot;FAIL&quot;)

This fails in Chrome. response.headers.get(&apos;content-type&apos;) returns null. Who is correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754397</commentid>
    <comment_count>6</comment_count>
      <attachid>427093</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-26 14:49:41 -0700</bug_when>
    <thetext>Comment on attachment 427093
Patch

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

&gt;&gt; LayoutTests/fast/files/blob-content-type.html:14
&gt;&gt; +    alert(response.headers.get(&apos;content-type&apos;) == &quot;&quot; ? &quot;PASS&quot; : &quot;FAIL&quot;)
&gt; 
&gt; This fails in Chrome. response.headers.get(&apos;content-type&apos;) returns null. Who is correct?

And Firefox gives &quot;text/html&quot; lol :) Seems browsers really don&apos;t agree on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754400</commentid>
    <comment_count>7</comment_count>
      <attachid>427093</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-04-26 14:52:53 -0700</bug_when>
    <thetext>Comment on attachment 427093
Patch

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

&gt; LayoutTests/fast/files/blob-content-type-expected.txt:2
&gt; +ALERT: PASS
&gt; +ALERT: PASS

Would you mind making the test more conventional in having some output that explains what is expected, what bug was fixed etc? There isn&apos;t always the time to do a blame to see what a test was added for.

Can this use the usual harness to avoid the need for manual testRunner.dumpAsText, and to have the &quot;test completed&quot; line?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754401</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-26 14:54:27 -0700</bug_when>
    <thetext>Oh, no.

I&apos;m glad I added that test.  In the simple case where a content type is provided, all browsers agree that that should be used.  Where a content type is not provided, since browsers don&apos;t agree maybe we should continue our existing behavior and inherit from the sliced-from blob.

I think there is always enough time to git blame, but I can indeed make the test nicer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754433</commentid>
    <comment_count>9</comment_count>
      <attachid>427103</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-26 16:36:25 -0700</bug_when>
    <thetext>Created attachment 427103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754436</commentid>
    <comment_count>10</comment_count>
      <attachid>427103</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-04-26 16:43:25 -0700</bug_when>
    <thetext>Comment on attachment 427103
Patch

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

&gt; LayoutTests/fast/files/blob-content-type-expected.txt:3
&gt; +TEST COMPLETE

Well this is wrong!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754443</commentid>
    <comment_count>11</comment_count>
      <attachid>427103</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-26 16:50:18 -0700</bug_when>
    <thetext>Comment on attachment 427103
Patch

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

&gt;&gt; LayoutTests/fast/files/blob-content-type-expected.txt:3
&gt;&gt; +TEST COMPLETE
&gt; 
&gt; Well this is wrong!

Indeed.

&gt; LayoutTests/fast/files/blob-content-type.html:1
&gt; +&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;

You can just use js-test.js

&gt; LayoutTests/fast/files/blob-content-type.html:3
&gt; +async function runTest() {

This test is missing a description(&quot;What the test does&quot;) call and `jsTestIsAsync = true;`

&gt; LayoutTests/fast/files/blob-content-type.html:26
&gt; +&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;

Not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754446</commentid>
    <comment_count>12</comment_count>
      <attachid>427103</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-26 16:51:04 -0700</bug_when>
    <thetext>Comment on attachment 427103
Patch

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

&gt; LayoutTests/fast/files/blob-content-type.html:10
&gt; +    shouldBe(&quot;response.headers.get(&apos;content-type&apos;)&quot;, &quot;&apos;text/html2;charset=utf-8&apos;&quot;)

You can use shouldBeEqualToString() for this.

&gt; LayoutTests/fast/files/blob-content-type.html:15
&gt; +    shouldBe(&quot;response.headers.get(&apos;content-type&apos;)&quot;, &quot;&apos;text/original-blob-content-type;&apos;&quot;)

this

&gt; LayoutTests/fast/files/blob-content-type.html:20
&gt; +    shouldBe(&quot;response.headers.get(&apos;content-type&apos;)&quot;, &quot;&apos;text/original-blob-content-type;&apos;&quot;)

and this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754447</commentid>
    <comment_count>13</comment_count>
      <attachid>427103</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-26 16:52:10 -0700</bug_when>
    <thetext>Comment on attachment 427103
Patch

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

&gt; LayoutTests/fast/files/blob-content-type.html:22
&gt; +    asyncTestPassed();

finishJSTest();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754451</commentid>
    <comment_count>14</comment_count>
      <attachid>427108</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-26 17:02:11 -0700</bug_when>
    <thetext>Created attachment 427108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754464</commentid>
    <comment_count>15</comment_count>
      <attachid>427108</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-26 18:06:21 -0700</bug_when>
    <thetext>Comment on attachment 427108
Patch

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

&gt; LayoutTests/fast/files/blob-content-type.html:5
&gt; +    const blob = new Blob([`&lt;style&gt;&lt;/style&gt;`], { type: &apos;text/original-blob-content-type;&apos; });

Why the weird ` quotes?

&gt; LayoutTests/fast/files/blob-content-type.html:8
&gt; +        const slice = blob.slice(0, blob.size, `text/html2;charset=utf-8`);

ditto.

&gt; LayoutTests/fast/files/blob-content-type.html:22
&gt; +        const slice = blob.slice(0, blob.size, &quot;&quot;);

and then here double quotes, even though the rest of the file seems to be using single quotes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754608</commentid>
    <comment_count>16</comment_count>
    <who name="Rick Waldron">rwaldron</who>
    <bug_when>2021-04-27 07:58:22 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; Comment on attachment 427092 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=427092&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/files/blob-content-type-expected.txt:1
&gt; &gt; +ALERT: content-type text/html2;charset=utf-8
&gt; 
&gt; Please write a test with actual PASS / FAIL lines. This output really does
&gt; not make it obvious if the test is failing or passing. If I were to make a
&gt; change breaking this, I could easily rebaseline this test by mistake and
&gt; still think it is fine.

I&apos;ve updated the jsfiddle, but here is the test code: 


    const blob = new Blob([`&lt;style&gt;&lt;/style&gt;`], { type: &apos;text/html&apos; });
    const normalizedBlob = blob.slice(0, blob.size, `text/html;charset=utf-8`);
    const url = URL.createObjectURL(normalizedBlob);
    const xhr = new XMLHttpRequest();
    xhr.addEventListener(&apos;load&apos;, () =&gt; {
      console.log(xhr.getResponseHeader(&apos;content-type&apos;) === &apos;text/html;charset=utf-8&apos; ? &apos;PASS&apos; : &apos;FAIL&apos;);
    });
    xhr.open(&apos;GET&apos;, url);
    xhr.send();


Chrome and Firefox: PASS
Safari: FAIL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754613</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-27 08:03:44 -0700</bug_when>
    <thetext>(In reply to Rick Waldron from comment #16)
&gt; (In reply to Chris Dumez from comment #3)
&gt; &gt; Comment on attachment 427092 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=427092&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/fast/files/blob-content-type-expected.txt:1
&gt; &gt; &gt; +ALERT: content-type text/html2;charset=utf-8
&gt; &gt; 
&gt; &gt; Please write a test with actual PASS / FAIL lines. This output really does
&gt; &gt; not make it obvious if the test is failing or passing. If I were to make a
&gt; &gt; change breaking this, I could easily rebaseline this test by mistake and
&gt; &gt; still think it is fine.
&gt; 
&gt; I&apos;ve updated the jsfiddle, but here is the test code: 
&gt; 
&gt; 
&gt;     const blob = new Blob([`&lt;style&gt;&lt;/style&gt;`], { type: &apos;text/html&apos; });
&gt;     const normalizedBlob = blob.slice(0, blob.size,
&gt; `text/html;charset=utf-8`);
&gt;     const url = URL.createObjectURL(normalizedBlob);
&gt;     const xhr = new XMLHttpRequest();
&gt;     xhr.addEventListener(&apos;load&apos;, () =&gt; {
&gt;       console.log(xhr.getResponseHeader(&apos;content-type&apos;) ===
&gt; &apos;text/html;charset=utf-8&apos; ? &apos;PASS&apos; : &apos;FAIL&apos;);
&gt;     });
&gt;     xhr.open(&apos;GET&apos;, url);
&gt;     xhr.send();
&gt; 
&gt; 
&gt; Chrome and Firefox: PASS
&gt; Safari: FAIL

Thanks Rick. I was actually talking to Alex who wrote the patch. Our code changes always need to be committed with a corresponding test. Alex did include a test in his latest iteration and the fix should get committed soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754661</commentid>
    <comment_count>18</comment_count>
      <attachid>427160</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-27 10:07:37 -0700</bug_when>
    <thetext>Created attachment 427160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754825</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-27 16:01:51 -0700</bug_when>
    <thetext>Committed r276677 (237094@main): &lt;https://commits.webkit.org/237094@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427160.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427092</attachid>
            <date>2021-04-26 14:32:08 -0700</date>
            <delta_ts>2021-04-26 14:42:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225057-20210426143207.patch</filename>
            <type>text/plain</type>
            <size>19160</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjYwMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTI2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY2hhcnNldCBp
biBjb250ZW50VHlwZSB1c2VkIGluIEJsb2IucHJvdG90eXBlLnNsaWNlKHN0YXJ0LCBlbmQsIGNv
bnRlbnRUeXBlKSBpcyBsb3N0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjUwNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGVuIGNhbGxpbmcgQmxvYi5zbGljZSwgdXNlIHRoZSBjb250ZW50IHR5cGUg
ZnJvbSB0aGUgY2FsbCwgbm90IGZyb20gdGhlIHNsaWNlZC1mcm9tIGJsb2IuCisgICAgICAgIFRo
aXMgbWF0Y2hlcyBDaHJvbWUgYW5kIEZpcmVmb3guCisKKyAgICAgICAgVGVzdDogZmFzdC9maWxl
cy9ibG9iLWNvbnRlbnQtdHlwZS5odG1sCisKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QmxvYjo6QmxvYik6CisgICAgICAgICogZmlsZWFwaS9UaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVCbG9iUmVn
aXN0cnk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKToKKyAgICAgICAgKiBmaWxlYXBpL1RocmVh
ZGFibGVCbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdp
c3RyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxGb3JT
bGljZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmg6CisK
IDIwMjEtMDQtMjYgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAg
ICAgICAgIFtXZWJJRExdIFJlbW92ZSBbQ2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRlZFBy
b3BlcnRpZXNdIGV4dGVuZGVkIGF0dHJpYnV0ZQpJbmRleDogU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9CbG9iLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3Bw
CShyZXZpc2lvbiAyNzY2MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjAsNyArMTYwLDcgQEAgQmxvYjo6QmxvYihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZQogICAgIC8vIG1fc2l6ZSBpcyBub3QgbmVjZXNzYXJpbHkgZXF1YWwg
dG8gZW5kIC0gc3RhcnQgc28gd2UgZG8gbm90IGluaXRpYWxpemUgaXQgaGVyZS4KIHsKICAgICBt
X2ludGVybmFsVVJMID0gQmxvYlVSTDo6Y3JlYXRlSW50ZXJuYWxVUkwoKTsKLSAgICBUaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShtX2ludGVybmFsVVJMLCBz
cmNVUkwsIHN0YXJ0LCBlbmQpOworICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVy
QmxvYlVSTEZvclNsaWNlKG1faW50ZXJuYWxVUkwsIHNyY1VSTCwgc3RhcnQsIGVuZCwgbV90eXBl
KTsKIH0KIAogQmxvYjo6fkJsb2IoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxl
YXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCShyZXZpc2lvbiAyNzY2MDEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjYsMTUgKzEyNiwxNSBAQCB2b2lkIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJl
Z2lzdGVyQmxvCiAgICAgfSk7CiB9CiAKLXZvaWQgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVn
aXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiBuZXdVUkwsIGNvbnN0IFVSTCYgc3JjVVJM
LCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpCit2b2lkIFRocmVhZGFibGVCbG9iUmVn
aXN0cnk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgbmV3VVJMLCBjb25zdCBV
UkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRUeXBlKQogewogICAgIGlmIChpc01haW5UaHJlYWQoKSkgewotICAgICAgICBibG9i
UmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZShuZXdVUkwsIHNyY1VSTCwgc3RhcnQs
IGVuZCk7CisgICAgICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKG5l
d1VSTCwgc3JjVVJMLCBzdGFydCwgZW5kLCBjb250ZW50VHlwZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFtuZXdVUkwgPSBuZXdVUkwuaXNvbGF0ZWRD
b3B5KCksIHNyY1VSTCA9IHNyY1VSTC5pc29sYXRlZENvcHkoKSwgc3RhcnQsIGVuZF0gewotICAg
ICAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZShuZXdVUkwsIHNyY1VS
TCwgc3RhcnQsIGVuZCk7CisgICAgY2FsbE9uTWFpblRocmVhZChbbmV3VVJMID0gbmV3VVJMLmlz
b2xhdGVkQ29weSgpLCBzcmNVUkwgPSBzcmNVUkwuaXNvbGF0ZWRDb3B5KCksIHN0YXJ0LCBlbmQs
IGNvbnRlbnRUeXBlID0gY29udGVudFR5cGUuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICAgICAgYmxv
YlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UobmV3VVJMLCBzcmNVUkwsIHN0YXJ0
LCBlbmQsIGNvbnRlbnRUeXBlKTsKICAgICB9KTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgJKHJldmlzaW9uIDI3NjYwMSkK
KysrIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdp
c3RlckJsb2JVUkwoY29uc3QgVVJMJiwgVmVjdG9yPEJsb2JQYXJ0PiYmIGJsb2JQYXJ0cywgY29u
c3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCbG9iVVJM
KFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpOwogICAgIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYs
IGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIGZpbGVCYWNrZWRQYXRoLCBjb25zdCBT
dHJpbmcmIGNvbnRlbnRUeXBlKTsKLSAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JT
bGljZShjb25zdCBVUkwmIG5ld1VSTCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFy
dCwgbG9uZyBsb25nIGVuZCk7CisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xp
Y2UoY29uc3QgVVJMJiBuZXdVUkwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQs
IGxvbmcgbG9uZyBlbmQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHN0YXRpYyB2
b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYpOwogCiAgICAgc3RhdGljIHVuc2lnbmVk
IGxvbmcgbG9uZyBibG9iU2l6ZShjb25zdCBVUkwmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaAkocmV2aXNpb24gMjc2NjAxKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaAkod29ya2luZyBj
b3B5KQpAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVy
QmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJM
LCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKSA9IDA7CiAKICAgICAvLyBOZWdhdGl2ZSBzdGFydCBhbmQgZW5kIHZhbHVlcyBzZWxlY3Qg
ZnJvbSB0aGUgZW5kLgotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShj
b25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcg
ZW5kKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0
IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQs
IGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCB1bnJl
Z2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKSA9IDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAkocmV2aXNpb24g
Mjc2NjAxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc4LDcgKzE3OCw3IEBAIHZvaWQgQmxvYlJlZ2lz
dHJ5SW1wbDo6cmVnaXN0ZXJCbG9iVVJMT3AKICAgICBtX2Jsb2JzLnNldCh1cmwuc3RyaW5nKCks
IFdURk1vdmUoYmFja2luZ0ZpbGUpKTsKIH0KIAotdm9pZCBCbG9iUmVnaXN0cnlJbXBsOjpyZWdp
c3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGxv
bmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkKK3ZvaWQgQmxvYlJlZ2lzdHJ5SW1wbDo6cmVn
aXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBs
b25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBCbG9iRGF0YSogb3JpZ2luYWxE
YXRhID0gZ2V0QmxvYkRhdGFGcm9tVVJMKHNyY1VSTCk7CkBAIC0yMDcsNyArMjA3LDcgQEAgdm9p
ZCBCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxGbwogICAgICAgICBlbmQgPSBvcmln
aW5hbFNpemU7CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbmV3TGVuZ3RoID0gZW5kIC0gc3Rh
cnQ7Ci0gICAgYXV0byBuZXdEYXRhID0gQmxvYkRhdGE6OmNyZWF0ZShvcmlnaW5hbERhdGEtPmNv
bnRlbnRUeXBlKCkpOworICAgIGF1dG8gbmV3RGF0YSA9IEJsb2JEYXRhOjpjcmVhdGUoY29udGVu
dFR5cGUpOwogCiAgICAgYXBwZW5kU3RvcmFnZUl0ZW1zKG5ld0RhdGEucHRyKCksIG9yaWdpbmFs
RGF0YS0+aXRlbXMoKSwgc3RhcnQsIG5ld0xlbmd0aCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCShyZXZpc2lvbiAy
NzY2MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUlt
cGwuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgVmVjdG9yPEJsb2JQYXJ0PiYmLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBj
b25zdCBVUkwmIHNyY1VSTCk7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5Rmls
ZUJhY2tlZChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmls
ZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7Ci0gICAgdm9pZCByZWdp
c3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBs
b25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kKTsKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNs
aWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcg
bG9uZyBlbmQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQgdW5yZWdpc3Rl
ckJsb2JVUkwoY29uc3QgVVJMJik7CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUo
Y29uc3QgVVJMJik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjc2NjEyKQorKysgU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wNC0y
NiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAg
IGNoYXJzZXQgaW4gY29udGVudFR5cGUgdXNlZCBpbiBCbG9iLnByb3RvdHlwZS5zbGljZShzdGFy
dCwgZW5kLCBjb250ZW50VHlwZSkgaXMgbG9zdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MDU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVC
bG9iUmVnaXN0cnkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckJs
b2JVUkxGb3JTbGljZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3Ry
eVByb3h5Lmg6CisKIDIwMjEtMDQtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNzE4NjEpOiBbaU9TXSBBY2Nlc3NvcnkgYmFy
IG5hdmlnYXRpb24gdG8gZWxlbWVudHMgb3V0c2lkZSB0aGUgdmlld3BvcnQgZmFpbHMKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAyNzY2MDEpCisrKyBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODM4LDEzICs4MzgsMTMgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6cmVnaQogICAgIHNlc3Npb24tPmJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVy
QmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBCbG9iRGF0YUZpbGVSZWZl
cmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGZpbGVCYWNrZWRQYXRoKSwgY29udGVu
dFR5cGUpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3Rl
ckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGludDY0
X3Qgc3RhcnQsIGludDY0X3QgZW5kKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3Jj
VVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlw
ZSkKIHsKICAgICBhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oKTsKICAgICBpZiAoIXNl
c3Npb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIHNlc3Npb24tPmJsb2JSZWdpc3RyeSgpLnJl
Z2lzdGVyQmxvYlVSTEZvclNsaWNlKHVybCwgc3JjVVJMLCBzdGFydCwgZW5kKTsKKyAgICBzZXNz
aW9uLT5ibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VSTCwg
c3RhcnQsIGVuZCwgY29udGVudFR5cGUpOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjp1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI3NjYwMSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5
KQpAQCAtMjMzLDcgKzIzMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwo
Y29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0PiYmLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZyb21VUkwoY29uc3QgVVJMJiwg
Y29uc3QgVVJMJiBzcmNVUkwpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZp
bGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmls
ZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwotICAgIHZvaWQgcmVnaXN0
ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGludDY0X3Qg
c3RhcnQsIGludDY0X3QgZW5kKTsKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNv
bnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCwg
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAgdm9pZCBibG9iU2l6ZShjb25zdCBVUkwm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAgICAgdm9pZCB1bnJlZ2lz
dGVyQmxvYlVSTChjb25zdCBVUkwmKTsKICAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChWZWN0b3I8U3RyaW5nPiYmKT4mJik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI3NjYwMSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2NlcwogICAgIFJlZ2lzdGVyQmxvYlVSTChVUkwgdXJsLCBWZWN0b3I8V2ViQ29y
ZTo6QmxvYlBhcnQ+IGJsb2JQYXJ0cywgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFJlZ2lzdGVy
QmxvYlVSTEZyb21VUkwoVVJMIHVybCwgVVJMIHNyY1VSTCkKICAgICBSZWdpc3RlckJsb2JVUkxP
cHRpb25hbGx5RmlsZUJhY2tlZChVUkwgdXJsLCBVUkwgc3JjVVJMLCBTdHJpbmcgZmlsZUJhY2tl
ZFBhdGgsIFN0cmluZyBjb250ZW50VHlwZSkKLSAgICBSZWdpc3RlckJsb2JVUkxGb3JTbGljZShV
UkwgdXJsLCBVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCkKKyAgICBSZWdp
c3RlckJsb2JVUkxGb3JTbGljZShVUkwgdXJsLCBVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBp
bnQ2NF90IGVuZCwgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFVucmVnaXN0ZXJCbG9iVVJMKFVS
TCB1cmwpCiAgICAgQmxvYlNpemUoVVJMIHVybCkgLT4gKHVpbnQ2NF90IHJlc3VsdFNpemUpIFN5
bmNocm9ub3VzCiAgICAgV3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoVmVjdG9yPFN0cmluZz4g
YmxvYlVSTHMpIC0+IChWZWN0b3I8U3RyaW5nPiBmaWxlTmFtZXMpIEFzeW5jCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24gMjc2NjAxKQorKysgU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgQmxvYlJlZ2lzdHJ5KiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYQogICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBV
UkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFs
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwo
Y29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChj
b25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5j
ZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQotICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYs
IGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpIGZpbmFs
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxG
b3JTbGljZShjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBs
b25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoY29uc3QgVVJM
JikgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
cmV0dXJuIDA7IH0KICAgICAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9y
PFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxv
YlJlZ2lzdHJ5UHJveHkuY3BwCShyZXZpc2lvbiAyNzY2MDEpCisrKyBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTY5LDkgKzY5LDkgQEAgdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6dW5yZWdpc3RlckJsb2JVUgog
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6VW5yZWdpc3RlckJsb2JVUkwodXJsKSwgMCk7CiB9CiAKLXZvaWQgQmxvYlJlZ2lzdHJ5
UHJveHk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwm
IHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kKQordm9pZCBCbG9iUmVnaXN0
cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVS
TCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VS
TCwgc3RhcnQsIGVuZCksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UodXJsLCBz
cmNVUkwsIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSwgMCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcg
bG9uZyBCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNpemUoY29uc3QgVVJMJiB1cmwpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVBy
b3h5LmgJKHJldmlzaW9uIDI3NjYwMSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxl
QVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAg
cHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYg
c3JjVVJMKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFj
a2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8V2ViQ29yZTo6QmxvYkRh
dGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbDsKICAg
ICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYpIGZpbmFsOwotICAgIHZvaWQgcmVn
aXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcg
bG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmluYWw7CisgICAgdm9pZCByZWdpc3RlckJsb2JV
UkxGb3JTbGljZShjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0
LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbDsKICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikgZmluYWw7CiAgICAgdm9pZCB3
cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSBm
aW5hbDsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzY2
MDEpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNC0yNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIGNoYXJzZXQgaW4gY29udGVudFR5cGUgdXNlZCBp
biBCbG9iLnByb3RvdHlwZS5zbGljZShzdGFydCwgZW5kLCBjb250ZW50VHlwZSkgaXMgbG9zdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MDU3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisKIDIwMjEtMDQtMjMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIG91ciBjb25zdHJ1Y3RE
ZWxldGVkVmFsdWUoKSB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbnMKSW5kZXg6IFNvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW0JKHJldmlzaW9uIDI3NjYwMSkKKysrIFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQkod29ya2luZyBj
b3B5KQpAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJM
KGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+JiYgcGFydHMsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMKHVybCwg
V1RGTW92ZShwYXJ0cyksIGNvbnRlbnRUeXBlKTsgfQogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJM
KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCkgZmluYWwgeyBtX2Jsb2JSZWdpc3Ry
eS5yZWdpc3RlckJsb2JVUkwodXJsLCBzcmNVUkwpOyB9CiAgICAgdm9pZCByZWdpc3RlckJsb2JV
UkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkws
IFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTE9wdGlv
bmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRU
eXBlKTsgfQotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1cmws
IGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpIGZpbmFs
IHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UodXJsLCBzcmNVUkwsIHN0
YXJ0LCBlbmQpOyB9CisgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwm
IHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwg
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3Rl
ckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCwgY29udGVudFR5cGUpOyB9
CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCkgZmluYWwgeyBtX2Js
b2JSZWdpc3RyeS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOyB9CiAgICAgdW5zaWduZWQgbG9uZyBs
b25nIGJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IHJldHVybiBtX2Jsb2JSZWdpc3Ry
eS5ibG9iU2l6ZSh1cmwpOyB9CiAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbCB7IG1f
YmxvYlJlZ2lzdHJ5LndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGJsb2JVUkxzLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjYwMSkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDIx
LTA0LTI2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgY2hhcnNldCBpbiBjb250ZW50VHlwZSB1c2VkIGluIEJsb2IucHJvdG90eXBlLnNsaWNl
KHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSBpcyBsb3N0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUwNTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZmlsZXMvYmxvYi1jb250ZW50LXR5cGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzL2Jsb2ItY29udGVudC10
eXBlLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA0LTI2ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhp
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjcxODYxKTogW2lPU10gQWNjZXNz
b3J5IGJhciBuYXZpZ2F0aW9uIHRvIGVsZW1lbnRzIG91dHNpZGUgdGhlIHZpZXdwb3J0IGZhaWxz
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2ItY29udGVudC10eXBlLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2ItY29udGVudC10
eXBlLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
L2Jsb2ItY29udGVudC10eXBlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDMgQEAKK0FMRVJUOiBjb250ZW50LXR5cGUgdGV4dC9odG1sMjtjaGFyc2V0PXV0Zi04CitBTEVS
VDogY29udGVudC10eXBlCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxvYi1jb250
ZW50LXR5cGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2It
Y29udGVudC10eXBlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9maWxl
cy9ibG9iLWNvbnRlbnQtdHlwZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAK
KzxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeyB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCkgfQorICAgIGxldCBibG9iID0gbmV3IEJsb2IoW2A8c3R5bGU+PC9zdHlsZT5gXSwgeyB0
eXBlOiAndGV4dC9odG1sMTsnIH0pOworCisgICAgbGV0IHNsaWNlMSA9IGJsb2Iuc2xpY2UoMCwg
YmxvYi5zaXplLCBgdGV4dC9odG1sMjtjaGFyc2V0PXV0Zi04YCk7CisgICAgbGV0IHVybDEgPSBV
UkwuY3JlYXRlT2JqZWN0VVJMKHNsaWNlMSk7CisgICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1
cmwxKTsKKyAgICBhbGVydCgnY29udGVudC10eXBlICcgKyByZXNwb25zZS5oZWFkZXJzLmdldCgn
Y29udGVudC10eXBlJykpCisKKyAgICBsZXQgc2xpY2UyID0gYmxvYi5zbGljZSgwLCBibG9iLnNp
emUpOworICAgIGxldCB1cmwyID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzbGljZTIpOworICAgIHJl
c3BvbnNlID0gYXdhaXQgZmV0Y2godXJsMik7CisgICAgYWxlcnQoJ2NvbnRlbnQtdHlwZSAnICsg
cmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpKQorCisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIH0KK30KK3J1blRlc3QoKTsKKzwv
c2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427093</attachid>
            <date>2021-04-26 14:42:04 -0700</date>
            <delta_ts>2021-04-26 16:36:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225057-20210426144203.patch</filename>
            <type>text/plain</type>
            <size>19045</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjYxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTI2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY2hhcnNldCBp
biBjb250ZW50VHlwZSB1c2VkIGluIEJsb2IucHJvdG90eXBlLnNsaWNlKHN0YXJ0LCBlbmQsIGNv
bnRlbnRUeXBlKSBpcyBsb3N0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjUwNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGVuIGNhbGxpbmcgQmxvYi5zbGljZSwgdXNlIHRoZSBjb250ZW50IHR5cGUg
ZnJvbSB0aGUgY2FsbCwgbm90IGZyb20gdGhlIHNsaWNlZC1mcm9tIGJsb2IuCisgICAgICAgIFRo
aXMgbWF0Y2hlcyBDaHJvbWUgYW5kIEZpcmVmb3guCisKKyAgICAgICAgVGVzdDogZmFzdC9maWxl
cy9ibG9iLWNvbnRlbnQtdHlwZS5odG1sCisKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QmxvYjo6QmxvYik6CisgICAgICAgICogZmlsZWFwaS9UaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVCbG9iUmVn
aXN0cnk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKToKKyAgICAgICAgKiBmaWxlYXBpL1RocmVh
ZGFibGVCbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdp
c3RyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxGb3JT
bGljZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmg6CisK
IDIwMjEtMDQtMjYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBVcGRhdGUgTWFjLXNwZWNpZmljIENNYWtlIGZpbGVzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvQmxvYi5jcHAJKHJldmlzaW9uIDI3NjYxMykKKysrIFNvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvQmxvYi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MCw3ICsxNjAsNyBAQCBCbG9iOjpCbG9i
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRlCiAgICAgLy8gbV9zaXplIGlzIG5vdCBuZWNl
c3NhcmlseSBlcXVhbCB0byBlbmQgLSBzdGFydCBzbyB3ZSBkbyBub3QgaW5pdGlhbGl6ZSBpdCBo
ZXJlLgogewogICAgIG1faW50ZXJuYWxVUkwgPSBCbG9iVVJMOjpjcmVhdGVJbnRlcm5hbFVSTCgp
OwotICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKG1f
aW50ZXJuYWxVUkwsIHNyY1VSTCwgc3RhcnQsIGVuZCk7CisgICAgVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UobV9pbnRlcm5hbFVSTCwgc3JjVVJMLCBzdGFy
dCwgZW5kLCBtX3R5cGUpOwogfQogCiBCbG9iOjp+QmxvYigpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAJKHJldmlzaW9uIDI3
NjYxMykKKysrIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNiwxNSArMTI2LDE1IEBAIHZvaWQgVGhyZWFkYWJsZUJs
b2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG8KICAgICB9KTsKIH0KIAotdm9pZCBUaHJlYWRhYmxlQmxv
YlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIG5ld1VSTCwgY29u
c3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkKK3ZvaWQgVGhy
ZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiBu
ZXdVUkwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQs
IGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7CiAgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7
Ci0gICAgICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKG5ld1VSTCwg
c3JjVVJMLCBzdGFydCwgZW5kKTsKKyAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9i
VVJMRm9yU2xpY2UobmV3VVJMLCBzcmNVUkwsIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW25ld1VSTCA9IG5l
d1VSTC5pc29sYXRlZENvcHkoKSwgc3JjVVJMID0gc3JjVVJMLmlzb2xhdGVkQ29weSgpLCBzdGFy
dCwgZW5kXSB7Ci0gICAgICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNl
KG5ld1VSTCwgc3JjVVJMLCBzdGFydCwgZW5kKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtuZXdV
UkwgPSBuZXdVUkwuaXNvbGF0ZWRDb3B5KCksIHNyY1VSTCA9IHNyY1VSTC5pc29sYXRlZENvcHko
KSwgc3RhcnQsIGVuZCwgY29udGVudFR5cGUgPSBjb250ZW50VHlwZS5pc29sYXRlZENvcHkoKV0g
eworICAgICAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZShuZXdVUkws
IHNyY1VSTCwgc3RhcnQsIGVuZCwgY29udGVudFR5cGUpOwogICAgIH0pOwogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaAkocmV2
aXNpb24gMjc2NjEzKQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYg
YmxvYlBhcnRzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICBzdGF0aWMgdm9pZCBy
ZWdpc3RlckJsb2JVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNy
Y1VSTCk7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNr
ZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJhY2tl
ZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwotICAgIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgbmV3VVJMLCBjb25zdCBVUkwmIHNyY1VSTCwg
bG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kKTsKKyAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIG5ld1VSTCwgY29uc3QgVVJMJiBzcmNVUkwsIGxv
bmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7
CiAgICAgc3RhdGljIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJik7CiAKICAgICBz
dGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCShyZXZpc2lv
biAyNzY2MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3Ry
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29u
c3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYsIGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUpID0gMDsKIAogICAgIC8vIE5lZ2F0aXZlIHN0YXJ0IGFuZCBlbmQg
dmFsdWVzIHNlbGVjdCBmcm9tIHRoZSBlbmQuCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQmxv
YlVSTEZvclNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3Rh
cnQsIGxvbmcgbG9uZyBlbmQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJCbG9iVVJM
Rm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwg
bG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgPSAwOwogCiAgICAgdmly
dHVhbCB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYpID0gMDsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwu
Y3BwCShyZXZpc2lvbiAyNzY2MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZWdpc3RyeUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzgsNyArMTc4LDcgQEAg
dm9pZCBCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxPcAogICAgIG1fYmxvYnMuc2V0
KHVybC5zdHJpbmcoKSwgV1RGTW92ZShiYWNraW5nRmlsZSkpOwogfQogCi12b2lkIEJsb2JSZWdp
c3RyeUltcGw6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBV
UkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kKQordm9pZCBCbG9iUmVn
aXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIHVybCwgY29uc3Qg
VVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEJsb2JE
YXRhKiBvcmlnaW5hbERhdGEgPSBnZXRCbG9iRGF0YUZyb21VUkwoc3JjVVJMKTsKQEAgLTIwNyw3
ICsyMDcsNyBAQCB2b2lkIEJsb2JSZWdpc3RyeUltcGw6OnJlZ2lzdGVyQmxvYlVSTEZvCiAgICAg
ICAgIGVuZCA9IG9yaWdpbmFsU2l6ZTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdMZW5n
dGggPSBlbmQgLSBzdGFydDsKLSAgICBhdXRvIG5ld0RhdGEgPSBCbG9iRGF0YTo6Y3JlYXRlKG9y
aWdpbmFsRGF0YS0+Y29udGVudFR5cGUoKSk7CisgICAgYXV0byBuZXdEYXRhID0gQmxvYkRhdGE6
OmNyZWF0ZShjb250ZW50VHlwZSk7CiAKICAgICBhcHBlbmRTdG9yYWdlSXRlbXMobmV3RGF0YS5w
dHIoKSwgb3JpZ2luYWxEYXRhLT5pdGVtcygpLCBzdGFydCwgbmV3TGVuZ3RoKTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBs
LmgJKHJldmlzaW9uIDI3NjYxMykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlZ2lzdHJ5SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+
JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJM
KGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVS
TE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQ
dHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsK
LSAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYg
c3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpOworICAgIHZvaWQgcmVnaXN0
ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9u
ZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAg
dm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKTsKIAogICAgIHVuc2lnbmVkIGxvbmcg
bG9uZyBibG9iU2l6ZShjb25zdCBVUkwmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzY2MTQp
CisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIw
IEBACisyMDIxLTA0LTI2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgY2hhcnNldCBpbiBjb250ZW50VHlwZSB1c2VkIGluIEJsb2IucHJvdG90
eXBlLnNsaWNlKHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSBpcyBsb3N0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUwNTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9GaWxlQVBJ
L0Jsb2JSZWdpc3RyeVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmxvYlJlZ2lzdHJ5UHJv
eHk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVB
UEkvQmxvYlJlZ2lzdHJ5UHJveHkuaDoKKwogMjAyMS0wNC0yNiAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVwZGF0ZSBNYWMtc3BlY2lmaWMg
Q01ha2UgZmlsZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAy
NzY2MTMpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODM4LDEzICs4MzgsMTMgQEAgdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaQogICAgIHNlc3Npb24tPmJsb2JS
ZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJM
LCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGZpbGVC
YWNrZWRQYXRoKSwgY29udGVudFR5cGUpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIHVybCwgY29uc3Qg
VVJMJiBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKQordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCwgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSkKIHsKICAgICBhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oKTsKICAgICBpZiAoIXNlc3Npb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIHNlc3Npb24t
PmJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKHVybCwgc3JjVVJMLCBzdGFy
dCwgZW5kKTsKKyAgICBzZXNzaW9uLT5ibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxGb3JT
bGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCwgY29udGVudFR5cGUpOwogfQogCiB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwm
IHVybCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI3NjYxMykKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjMzLDcgKzIzMyw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0PiYm
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZy
b21VUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpOwogICAgIHZvaWQgcmVnaXN0ZXJC
bG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkws
IGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUp
OwotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJM
JiBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKTsKKyAgICB2b2lkIHJlZ2lzdGVy
QmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBpbnQ2NF90IHN0
YXJ0LCBpbnQ2NF90IGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAgdm9pZCBi
bG9iU2l6ZShjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7
CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKTsKICAgICB2b2lkIHdyaXRl
QmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJik7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI3NjYxMykKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgbWVzc2FnZXMg
LT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2NlcwogICAgIFJlZ2lzdGVyQmxvYlVSTChVUkwg
dXJsLCBWZWN0b3I8V2ViQ29yZTo6QmxvYlBhcnQ+IGJsb2JQYXJ0cywgU3RyaW5nIGNvbnRlbnRU
eXBlKQogICAgIFJlZ2lzdGVyQmxvYlVSTEZyb21VUkwoVVJMIHVybCwgVVJMIHNyY1VSTCkKICAg
ICBSZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChVUkwgdXJsLCBVUkwgc3JjVVJM
LCBTdHJpbmcgZmlsZUJhY2tlZFBhdGgsIFN0cmluZyBjb250ZW50VHlwZSkKLSAgICBSZWdpc3Rl
ckJsb2JVUkxGb3JTbGljZShVUkwgdXJsLCBVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2
NF90IGVuZCkKKyAgICBSZWdpc3RlckJsb2JVUkxGb3JTbGljZShVUkwgdXJsLCBVUkwgc3JjVVJM
LCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCwgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFVu
cmVnaXN0ZXJCbG9iVVJMKFVSTCB1cmwpCiAgICAgQmxvYlNpemUoVVJMIHVybCkgLT4gKHVpbnQ2
NF90IHJlc3VsdFNpemUpIFN5bmNocm9ub3VzCiAgICAgV3JpdGVCbG9ic1RvVGVtcG9yYXJ5Rmls
ZXMoVmVjdG9yPFN0cmluZz4gYmxvYlVSTHMpIC0+IChWZWN0b3I8U3RyaW5nPiBmaWxlTmFtZXMp
IEFzeW5jCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24g
Mjc2NjEzKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgQmxv
YlJlZ2lzdHJ5KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYQogICAgICAgICB2b2lkIHJlZ2lz
dGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpIGZpbmFsIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRp
b25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJs
b2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZv
clNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxv
bmcgbG9uZyBlbmQpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwg
bG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
KSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIHZvaWQgdW5yZWdpc3Rl
ckJsb2JVUkwoY29uc3QgVVJMJikgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAg
ICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikgZmluYWwgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KICAgICAgICAgdm9pZCB3cml0ZUJsb2JzVG9U
ZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSBmaW5hbCB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQ
SS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCShyZXZpc2lvbiAyNzY2MTMpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY5LDkgKzY5LDkgQEAgdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6
dW5yZWdpc3RlckJsb2JVUgogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VW5yZWdpc3RlckJsb2JVUkwodXJsKSwgMCk7CiB9CiAK
LXZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5k
KQordm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBl
bmQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckJsb2JVUkxG
b3JTbGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCksIDApOworICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJCbG9i
VVJMRm9yU2xpY2UodXJsLCBzcmNVUkwsIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSwgMCk7CiB9
CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNpemUoY29uc3Qg
VVJMJiB1cmwpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVn
aXN0cnlQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxl
QVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgJKHJldmlzaW9uIDI3NjYxMykKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0
IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVS
TE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQ
dHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlKSBmaW5hbDsKICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYpIGZp
bmFsOwotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3Qg
VVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmluYWw7CisgICAg
dm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VS
TCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKSBmaW5hbDsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikg
ZmluYWw7CiAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4m
JiBmaWxlUGF0aHMpPiYmKSBmaW5hbDsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNzY2MTMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNC0yNiAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIGNoYXJzZXQgaW4g
Y29udGVudFR5cGUgdXNlZCBpbiBCbG9iLnByb3RvdHlwZS5zbGljZShzdGFydCwgZW5kLCBjb250
ZW50VHlwZSkgaXMgbG9zdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI1MDU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisKIDIw
MjEtMDQtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBy
b3ZlIG91ciBjb25zdHJ1Y3REZWxldGVkVmFsdWUoKSB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbnMK
SW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0JKHJldmlzaW9uIDI3NjYxMykKKysr
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbQkod29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+JiYgcGFy
dHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVn
aXN0ZXJCbG9iVVJMKHVybCwgV1RGTW92ZShwYXJ0cyksIGNvbnRlbnRUeXBlKTsgfQogICAgIHZv
aWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCkgZmlu
YWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkwodXJsLCBzcmNVUkwpOyB9CiAgICAg
dm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmIHVybCwg
Y29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJl
bmNlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJl
Z2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBXVEZNb3ZlKHJl
ZmVyZW5jZSksIGNvbnRlbnRUeXBlKTsgfQotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xp
Y2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxv
bmcgbG9uZyBlbmQpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMRm9yU2xp
Y2UodXJsLCBzcmNVUkwsIHN0YXJ0LCBlbmQpOyB9CisgICAgdm9pZCByZWdpc3RlckJsb2JVUkxG
b3JTbGljZShjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFy
dCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Js
b2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVu
ZCwgY29udGVudFR5cGUpOyB9CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwm
IHVybCkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOyB9CiAg
ICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IHJl
dHVybiBtX2Jsb2JSZWdpc3RyeS5ibG9iU2l6ZSh1cmwpOyB9CiAgICAgdm9pZCB3cml0ZUJsb2Jz
VG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVz
KGJsb2JVUkxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI3NjYxMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDEzIEBACisyMDIxLTA0LTI2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgY2hhcnNldCBpbiBjb250ZW50VHlwZSB1c2VkIGluIEJs
b2IucHJvdG90eXBlLnNsaWNlKHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSBpcyBsb3N0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUwNTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZmlsZXMv
YmxvYi1jb250ZW50LXR5cGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zp
bGVzL2Jsb2ItY29udGVudC10eXBlLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA0LTI2ICBBZGl0eWEg
S2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBmYXN0
L2Zvcm1zL2lvcy9pcGFkL29wZW4tcGlja2VyLXVzaW5nLWtleWJvYXJkLmh0bWwgaXMgdGltaW5n
IG91dApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLWNvbnRlbnQtdHlwZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLWNvbnRl
bnQtdHlwZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9m
aWxlcy9ibG9iLWNvbnRlbnQtdHlwZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwzIEBACitBTEVSVDogUEFTUworQUxFUlQ6IFBBU1MKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9maWxlcy9ibG9iLWNvbnRlbnQtdHlwZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZmlsZXMvYmxvYi1jb250ZW50LXR5cGUuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2ItY29udGVudC10eXBlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxOSBAQAorPHNjcmlwdD4KK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OyB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKSB9CisgICAgbGV0IGJsb2IgPSBuZXcgQmxvYihbYDxz
dHlsZT48L3N0eWxlPmBdLCB7IHR5cGU6ICd0ZXh0L2h0bWwxOycgfSk7CisKKyAgICBsZXQgc2xp
Y2UxID0gYmxvYi5zbGljZSgwLCBibG9iLnNpemUsIGB0ZXh0L2h0bWwyO2NoYXJzZXQ9dXRmLThg
KTsKKyAgICBsZXQgdXJsMSA9IFVSTC5jcmVhdGVPYmplY3RVUkwoc2xpY2UxKTsKKyAgICByZXNw
b25zZSA9IGF3YWl0IGZldGNoKHVybDEpOworICAgIGFsZXJ0KHJlc3BvbnNlLmhlYWRlcnMuZ2V0
KCdjb250ZW50LXR5cGUnKSA9PSAidGV4dC9odG1sMjtjaGFyc2V0PXV0Zi04IiA/ICJQQVNTIiA6
ICJGQUlMIikKKworICAgIGxldCBzbGljZTIgPSBibG9iLnNsaWNlKDAsIGJsb2Iuc2l6ZSk7Cisg
ICAgbGV0IHVybDIgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNsaWNlMik7CisgICAgcmVzcG9uc2Ug
PSBhd2FpdCBmZXRjaCh1cmwyKTsKKyAgICBhbGVydChyZXNwb25zZS5oZWFkZXJzLmdldCgnY29u
dGVudC10eXBlJykgPT0gIiIgPyAiUEFTUyIgOiAiRkFJTCIpCisKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCkgfQorfQorcnVuVGVzdCgpOworPC9z
Y3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427103</attachid>
            <date>2021-04-26 16:36:25 -0700</date>
            <delta_ts>2021-04-26 17:28:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225057-20210426163624.patch</filename>
            <type>text/plain</type>
            <size>19743</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjYxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA0LTI2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY2hhcnNldCBp
biBjb250ZW50VHlwZSB1c2VkIGluIEJsb2IucHJvdG90eXBlLnNsaWNlKHN0YXJ0LCBlbmQsIGNv
bnRlbnRUeXBlKSBpcyBsb3N0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjUwNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGVuIGNhbGxpbmcgQmxvYi5zbGljZSwgdXNlIHRoZSBjb250ZW50IHR5cGUg
ZnJvbSB0aGUgY2FsbCwgbm90IGZyb20gdGhlIHNsaWNlZC1mcm9tIGJsb2IuCisgICAgICAgIFRo
aXMgbWF0Y2hlcyBDaHJvbWUgYW5kIEZpcmVmb3guCisKKyAgICAgICAgV2hlbiBubyBjb250ZW50
IHR5cGUgaXMgZ2l2ZW4sIGJyb3dzZXJzIGRpc2FncmVlIG9uIHdoYXQgaGFwcGVucywgc28ga2Vl
cCBleGlzdGluZyBiZWhhdmlvciBpbiB0aGF0IGNhc2UuCisKKyAgICAgICAgVGVzdDogZmFzdC9m
aWxlcy9ibG9iLWNvbnRlbnQtdHlwZS5odG1sCisKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6QmxvYik6CisgICAgICAgICogZmlsZWFwaS9UaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVCbG9i
UmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKToKKyAgICAgICAgKiBmaWxlYXBpL1Ro
cmVhZGFibGVCbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxG
b3JTbGljZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmg6
CisKIDIwMjEtMDQtMjYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBVcGRhdGUgTWFjLXNwZWNpZmljIENNYWtlIGZpbGVzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvQmxvYi5jcHAJKHJldmlzaW9uIDI3NjYxMykKKysrIFNvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvQmxvYi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MCw3ICsxNjAsNyBAQCBCbG9iOjpC
bG9iKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRlCiAgICAgLy8gbV9zaXplIGlzIG5vdCBu
ZWNlc3NhcmlseSBlcXVhbCB0byBlbmQgLSBzdGFydCBzbyB3ZSBkbyBub3QgaW5pdGlhbGl6ZSBp
dCBoZXJlLgogewogICAgIG1faW50ZXJuYWxVUkwgPSBCbG9iVVJMOjpjcmVhdGVJbnRlcm5hbFVS
TCgpOwotICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNl
KG1faW50ZXJuYWxVUkwsIHNyY1VSTCwgc3RhcnQsIGVuZCk7CisgICAgVGhyZWFkYWJsZUJsb2JS
ZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UobV9pbnRlcm5hbFVSTCwgc3JjVVJMLCBz
dGFydCwgZW5kLCBtX3R5cGUpOwogfQogCiBCbG9iOjp+QmxvYigpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAJKHJldmlzaW9u
IDI3NjYxMykKKysrIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3Ry
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNiwxNSArMTI2LDE1IEBAIHZvaWQgVGhyZWFkYWJs
ZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG8KICAgICB9KTsKIH0KIAotdm9pZCBUaHJlYWRhYmxl
QmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIG5ld1VSTCwg
Y29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkKK3ZvaWQg
VGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJM
JiBuZXdVUkwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBl
bmQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7CiAgICAgaWYgKGlzTWFpblRocmVhZCgp
KSB7Ci0gICAgICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKG5ld1VS
TCwgc3JjVVJMLCBzdGFydCwgZW5kKTsKKyAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJC
bG9iVVJMRm9yU2xpY2UobmV3VVJMLCBzcmNVUkwsIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW25ld1VSTCA9
IG5ld1VSTC5pc29sYXRlZENvcHkoKSwgc3JjVVJMID0gc3JjVVJMLmlzb2xhdGVkQ29weSgpLCBz
dGFydCwgZW5kXSB7Ci0gICAgICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTEZvclNs
aWNlKG5ld1VSTCwgc3JjVVJMLCBzdGFydCwgZW5kKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtu
ZXdVUkwgPSBuZXdVUkwuaXNvbGF0ZWRDb3B5KCksIHNyY1VSTCA9IHNyY1VSTC5pc29sYXRlZENv
cHkoKSwgc3RhcnQsIGVuZCwgY29udGVudFR5cGUgPSBjb250ZW50VHlwZS5pc29sYXRlZENvcHko
KV0geworICAgICAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZShuZXdV
UkwsIHNyY1VSTCwgc3RhcnQsIGVuZCwgY29udGVudFR5cGUpOwogICAgIH0pOwogfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaAko
cmV2aXNpb24gMjc2NjEzKQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxv
YlJlZ2lzdHJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+
JiYgYmxvYlBhcnRzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICBzdGF0aWMgdm9p
ZCByZWdpc3RlckJsb2JVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmLCBjb25zdCBVUkwm
IHNyY1VSTCk7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVC
YWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJh
Y2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwotICAgIHN0YXRpYyB2b2lkIHJl
Z2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgbmV3VVJMLCBjb25zdCBVUkwmIHNyY1VS
TCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kKTsKKyAgICBzdGF0aWMgdm9pZCByZWdp
c3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIG5ld1VSTCwgY29uc3QgVVJMJiBzcmNVUkws
IGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlw
ZSk7CiAgICAgc3RhdGljIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJik7CiAKICAg
ICBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCShyZXZp
c2lvbiAyNzY2MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdp
c3RyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwg
Y29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYsIGNvbnN0
IFN0cmluZyYgY29udGVudFR5cGUpID0gMDsKIAogICAgIC8vIE5lZ2F0aXZlIHN0YXJ0IGFuZCBl
bmQgdmFsdWVzIHNlbGVjdCBmcm9tIHRoZSBlbmQuCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVy
QmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcg
c3RhcnQsIGxvbmcgbG9uZyBlbmQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFy
dCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYpID0gMDsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUlt
cGwuY3BwCShyZXZpc2lvbiAyNzY2MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzgsNyArMTc4LDcg
QEAgdm9pZCBCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxPcAogICAgIG1fYmxvYnMu
c2V0KHVybC5zdHJpbmcoKSwgV1RGTW92ZShiYWNraW5nRmlsZSkpOwogfQogCi12b2lkIEJsb2JS
ZWdpc3RyeUltcGw6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kKQordm9pZCBCbG9i
UmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIHVybCwgY29u
c3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEJs
b2JEYXRhKiBvcmlnaW5hbERhdGEgPSBnZXRCbG9iRGF0YUZyb21VUkwoc3JjVVJMKTsKQEAgLTIw
Nyw3ICsyMDcsNyBAQCB2b2lkIEJsb2JSZWdpc3RyeUltcGw6OnJlZ2lzdGVyQmxvYlVSTEZvCiAg
ICAgICAgIGVuZCA9IG9yaWdpbmFsU2l6ZTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdM
ZW5ndGggPSBlbmQgLSBzdGFydDsKLSAgICBhdXRvIG5ld0RhdGEgPSBCbG9iRGF0YTo6Y3JlYXRl
KG9yaWdpbmFsRGF0YS0+Y29udGVudFR5cGUoKSk7CisgICAgYXV0byBuZXdEYXRhID0gQmxvYkRh
dGE6OmNyZWF0ZShjb250ZW50VHlwZS5pc0VtcHR5KCkgPyBvcmlnaW5hbERhdGEtPmNvbnRlbnRU
eXBlKCkgOiBjb250ZW50VHlwZSk7CiAKICAgICBhcHBlbmRTdG9yYWdlSXRlbXMobmV3RGF0YS5w
dHIoKSwgb3JpZ2luYWxEYXRhLT5pdGVtcygpLCBzdGFydCwgbmV3TGVuZ3RoKTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBs
LmgJKHJldmlzaW9uIDI3NjYxMykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlZ2lzdHJ5SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+
JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJM
KGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVS
TE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQ
dHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsK
LSAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYg
c3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpOworICAgIHZvaWQgcmVnaXN0
ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9u
ZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAg
dm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKTsKIAogICAgIHVuc2lnbmVkIGxvbmcg
bG9uZyBibG9iU2l6ZShjb25zdCBVUkwmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzY2MTQp
CisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIw
IEBACisyMDIxLTA0LTI2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgY2hhcnNldCBpbiBjb250ZW50VHlwZSB1c2VkIGluIEJsb2IucHJvdG90
eXBlLnNsaWNlKHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSBpcyBsb3N0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUwNTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9GaWxlQVBJ
L0Jsb2JSZWdpc3RyeVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmxvYlJlZ2lzdHJ5UHJv
eHk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVB
UEkvQmxvYlJlZ2lzdHJ5UHJveHkuaDoKKwogMjAyMS0wNC0yNiAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVwZGF0ZSBNYWMtc3BlY2lmaWMg
Q01ha2UgZmlsZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAy
NzY2MTMpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODM4LDEzICs4MzgsMTMgQEAgdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaQogICAgIHNlc3Npb24tPmJsb2JS
ZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJM
LCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGZpbGVC
YWNrZWRQYXRoKSwgY29udGVudFR5cGUpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIHVybCwgY29uc3Qg
VVJMJiBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKQordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCwgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSkKIHsKICAgICBhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oKTsKICAgICBpZiAoIXNlc3Npb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIHNlc3Npb24t
PmJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKHVybCwgc3JjVVJMLCBzdGFy
dCwgZW5kKTsKKyAgICBzZXNzaW9uLT5ibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxGb3JT
bGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCwgY29udGVudFR5cGUpOwogfQogCiB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwm
IHVybCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI3NjYxMykKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjMzLDcgKzIzMyw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0PiYm
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZy
b21VUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpOwogICAgIHZvaWQgcmVnaXN0ZXJC
bG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkws
IGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUp
OwotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJM
JiBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKTsKKyAgICB2b2lkIHJlZ2lzdGVy
QmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBpbnQ2NF90IHN0
YXJ0LCBpbnQ2NF90IGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAgdm9pZCBi
bG9iU2l6ZShjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7
CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKTsKICAgICB2b2lkIHdyaXRl
QmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJik7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI3NjYxMykKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgbWVzc2FnZXMg
LT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2NlcwogICAgIFJlZ2lzdGVyQmxvYlVSTChVUkwg
dXJsLCBWZWN0b3I8V2ViQ29yZTo6QmxvYlBhcnQ+IGJsb2JQYXJ0cywgU3RyaW5nIGNvbnRlbnRU
eXBlKQogICAgIFJlZ2lzdGVyQmxvYlVSTEZyb21VUkwoVVJMIHVybCwgVVJMIHNyY1VSTCkKICAg
ICBSZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChVUkwgdXJsLCBVUkwgc3JjVVJM
LCBTdHJpbmcgZmlsZUJhY2tlZFBhdGgsIFN0cmluZyBjb250ZW50VHlwZSkKLSAgICBSZWdpc3Rl
ckJsb2JVUkxGb3JTbGljZShVUkwgdXJsLCBVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2
NF90IGVuZCkKKyAgICBSZWdpc3RlckJsb2JVUkxGb3JTbGljZShVUkwgdXJsLCBVUkwgc3JjVVJM
LCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCwgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFVu
cmVnaXN0ZXJCbG9iVVJMKFVSTCB1cmwpCiAgICAgQmxvYlNpemUoVVJMIHVybCkgLT4gKHVpbnQ2
NF90IHJlc3VsdFNpemUpIFN5bmNocm9ub3VzCiAgICAgV3JpdGVCbG9ic1RvVGVtcG9yYXJ5Rmls
ZXMoVmVjdG9yPFN0cmluZz4gYmxvYlVSTHMpIC0+IChWZWN0b3I8U3RyaW5nPiBmaWxlTmFtZXMp
IEFzeW5jCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24g
Mjc2NjEzKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgQmxv
YlJlZ2lzdHJ5KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYQogICAgICAgICB2b2lkIHJlZ2lz
dGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpIGZpbmFsIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRp
b25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJs
b2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZv
clNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxv
bmcgbG9uZyBlbmQpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwg
bG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
KSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIHZvaWQgdW5yZWdpc3Rl
ckJsb2JVUkwoY29uc3QgVVJMJikgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAg
ICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikgZmluYWwgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KICAgICAgICAgdm9pZCB3cml0ZUJsb2JzVG9U
ZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSBmaW5hbCB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQ
SS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCShyZXZpc2lvbiAyNzY2MTMpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY5LDkgKzY5LDkgQEAgdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6
dW5yZWdpc3RlckJsb2JVUgogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VW5yZWdpc3RlckJsb2JVUkwodXJsKSwgMCk7CiB9CiAK
LXZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5k
KQordm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBl
bmQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckJsb2JVUkxG
b3JTbGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCksIDApOworICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJCbG9i
VVJMRm9yU2xpY2UodXJsLCBzcmNVUkwsIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSwgMCk7CiB9
CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNpemUoY29uc3Qg
VVJMJiB1cmwpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVn
aXN0cnlQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxl
QVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgJKHJldmlzaW9uIDI3NjYxMykKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0
IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVS
TE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQ
dHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlKSBmaW5hbDsKICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYpIGZp
bmFsOwotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3Qg
VVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmluYWw7CisgICAg
dm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VS
TCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKSBmaW5hbDsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikg
ZmluYWw7CiAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4m
JiBmaWxlUGF0aHMpPiYmKSBmaW5hbDsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNzY2MTMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNC0yNiAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIGNoYXJzZXQgaW4g
Y29udGVudFR5cGUgdXNlZCBpbiBCbG9iLnByb3RvdHlwZS5zbGljZShzdGFydCwgZW5kLCBjb250
ZW50VHlwZSkgaXMgbG9zdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI1MDU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisKIDIw
MjEtMDQtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBy
b3ZlIG91ciBjb25zdHJ1Y3REZWxldGVkVmFsdWUoKSB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbnMK
SW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0JKHJldmlzaW9uIDI3NjYxMykKKysr
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbQkod29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+JiYgcGFy
dHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVn
aXN0ZXJCbG9iVVJMKHVybCwgV1RGTW92ZShwYXJ0cyksIGNvbnRlbnRUeXBlKTsgfQogICAgIHZv
aWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCkgZmlu
YWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkwodXJsLCBzcmNVUkwpOyB9CiAgICAg
dm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmIHVybCwg
Y29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJl
bmNlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJl
Z2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBXVEZNb3ZlKHJl
ZmVyZW5jZSksIGNvbnRlbnRUeXBlKTsgfQotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xp
Y2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxv
bmcgbG9uZyBlbmQpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMRm9yU2xp
Y2UodXJsLCBzcmNVUkwsIHN0YXJ0LCBlbmQpOyB9CisgICAgdm9pZCByZWdpc3RlckJsb2JVUkxG
b3JTbGljZShjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFy
dCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Js
b2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVu
ZCwgY29udGVudFR5cGUpOyB9CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwm
IHVybCkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOyB9CiAg
ICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IHJl
dHVybiBtX2Jsb2JSZWdpc3RyeS5ibG9iU2l6ZSh1cmwpOyB9CiAgICAgdm9pZCB3cml0ZUJsb2Jz
VG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVz
KGJsb2JVUkxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI3NjYxMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDEzIEBACisyMDIxLTA0LTI2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgY2hhcnNldCBpbiBjb250ZW50VHlwZSB1c2VkIGluIEJs
b2IucHJvdG90eXBlLnNsaWNlKHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSBpcyBsb3N0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUwNTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZmlsZXMv
YmxvYi1jb250ZW50LXR5cGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zp
bGVzL2Jsb2ItY29udGVudC10eXBlLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA0LTI2ICBBZGl0eWEg
S2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBmYXN0
L2Zvcm1zL2lvcy9pcGFkL29wZW4tcGlja2VyLXVzaW5nLWtleWJvYXJkLmh0bWwgaXMgdGltaW5n
IG91dApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLWNvbnRlbnQtdHlwZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLWNvbnRl
bnQtdHlwZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9m
aWxlcy9ibG9iLWNvbnRlbnQtdHlwZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw3IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1MgcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpIGlzICd0ZXh0L2h0
bWwyO2NoYXJzZXQ9dXRmLTgnCitQQVNTIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5
cGUnKSBpcyAndGV4dC9vcmlnaW5hbC1ibG9iLWNvbnRlbnQtdHlwZTsnCitQQVNTIHJlc3BvbnNl
LmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSBpcyAndGV4dC9vcmlnaW5hbC1ibG9iLWNvbnRl
bnQtdHlwZTsnCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxvYi1jb250ZW50LXR5
cGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2ItY29udGVu
dC10eXBlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9i
LWNvbnRlbnQtdHlwZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjYgQEAKKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgYXN5bmNUZXN0U3RhcnQoKQorICAg
IGxldCBibG9iID0gbmV3IEJsb2IoW2A8c3R5bGU+PC9zdHlsZT5gXSwgeyB0eXBlOiAndGV4dC9v
cmlnaW5hbC1ibG9iLWNvbnRlbnQtdHlwZTsnIH0pOworCisgICAgbGV0IHNsaWNlMSA9IGJsb2Iu
c2xpY2UoMCwgYmxvYi5zaXplLCBgdGV4dC9odG1sMjtjaGFyc2V0PXV0Zi04YCk7CisgICAgbGV0
IHVybDEgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNsaWNlMSk7CisgICAgcmVzcG9uc2UgPSBhd2Fp
dCBmZXRjaCh1cmwxKTsKKyAgICBzaG91bGRCZSgicmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRl
bnQtdHlwZScpIiwgIid0ZXh0L2h0bWwyO2NoYXJzZXQ9dXRmLTgnIikKKworICAgIGxldCBzbGlj
ZTIgPSBibG9iLnNsaWNlKDAsIGJsb2Iuc2l6ZSk7CisgICAgbGV0IHVybDIgPSBVUkwuY3JlYXRl
T2JqZWN0VVJMKHNsaWNlMik7CisgICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwyKTsKKyAg
ICBzaG91bGRCZSgicmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpIiwgIid0ZXh0
L29yaWdpbmFsLWJsb2ItY29udGVudC10eXBlOyciKQorCisgICAgbGV0IHNsaWNlMyA9IGJsb2Iu
c2xpY2UoMCwgYmxvYi5zaXplLCAiIik7CisgICAgbGV0IHVybDMgPSBVUkwuY3JlYXRlT2JqZWN0
VVJMKHNsaWNlMyk7CisgICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwzKTsKKyAgICBzaG91
bGRCZSgicmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpIiwgIid0ZXh0L29yaWdp
bmFsLWJsb2ItY29udGVudC10eXBlOyciKQorCisgICAgYXN5bmNUZXN0UGFzc2VkKCk7Cit9City
dW5UZXN0KCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>
<flag name="commit-queue"
          id="447603"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427108</attachid>
            <date>2021-04-26 17:02:11 -0700</date>
            <delta_ts>2021-04-27 10:07:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225057-20210426170210.patch</filename>
            <type>text/plain</type>
            <size>19952</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjYxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA0LTI2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY2hhcnNldCBp
biBjb250ZW50VHlwZSB1c2VkIGluIEJsb2IucHJvdG90eXBlLnNsaWNlKHN0YXJ0LCBlbmQsIGNv
bnRlbnRUeXBlKSBpcyBsb3N0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjUwNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGVuIGNhbGxpbmcgQmxvYi5zbGljZSwgdXNlIHRoZSBjb250ZW50IHR5cGUg
ZnJvbSB0aGUgY2FsbCwgbm90IGZyb20gdGhlIHNsaWNlZC1mcm9tIGJsb2IuCisgICAgICAgIFRo
aXMgbWF0Y2hlcyBDaHJvbWUgYW5kIEZpcmVmb3guCisKKyAgICAgICAgV2hlbiBubyBjb250ZW50
IHR5cGUgaXMgZ2l2ZW4sIGJyb3dzZXJzIGRpc2FncmVlIG9uIHdoYXQgaGFwcGVucywgc28ga2Vl
cCBleGlzdGluZyBiZWhhdmlvciBpbiB0aGF0IGNhc2UuCisKKyAgICAgICAgVGVzdDogZmFzdC9m
aWxlcy9ibG9iLWNvbnRlbnQtdHlwZS5odG1sCisKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6QmxvYik6CisgICAgICAgICogZmlsZWFwaS9UaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVCbG9i
UmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKToKKyAgICAgICAgKiBmaWxlYXBpL1Ro
cmVhZGFibGVCbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxG
b3JTbGljZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmg6
CisKIDIwMjEtMDQtMjYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBVcGRhdGUgTWFjLXNwZWNpZmljIENNYWtlIGZpbGVzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvQmxvYi5jcHAJKHJldmlzaW9uIDI3NjYxMykKKysrIFNvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvQmxvYi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MCw3ICsxNjAsNyBAQCBCbG9iOjpC
bG9iKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRlCiAgICAgLy8gbV9zaXplIGlzIG5vdCBu
ZWNlc3NhcmlseSBlcXVhbCB0byBlbmQgLSBzdGFydCBzbyB3ZSBkbyBub3QgaW5pdGlhbGl6ZSBp
dCBoZXJlLgogewogICAgIG1faW50ZXJuYWxVUkwgPSBCbG9iVVJMOjpjcmVhdGVJbnRlcm5hbFVS
TCgpOwotICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNl
KG1faW50ZXJuYWxVUkwsIHNyY1VSTCwgc3RhcnQsIGVuZCk7CisgICAgVGhyZWFkYWJsZUJsb2JS
ZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UobV9pbnRlcm5hbFVSTCwgc3JjVVJMLCBz
dGFydCwgZW5kLCBtX3R5cGUpOwogfQogCiBCbG9iOjp+QmxvYigpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAJKHJldmlzaW9u
IDI3NjYxMykKKysrIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3Ry
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNiwxNSArMTI2LDE1IEBAIHZvaWQgVGhyZWFkYWJs
ZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG8KICAgICB9KTsKIH0KIAotdm9pZCBUaHJlYWRhYmxl
QmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIG5ld1VSTCwg
Y29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkKK3ZvaWQg
VGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJM
JiBuZXdVUkwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBl
bmQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7CiAgICAgaWYgKGlzTWFpblRocmVhZCgp
KSB7Ci0gICAgICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKG5ld1VS
TCwgc3JjVVJMLCBzdGFydCwgZW5kKTsKKyAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJC
bG9iVVJMRm9yU2xpY2UobmV3VVJMLCBzcmNVUkwsIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW25ld1VSTCA9
IG5ld1VSTC5pc29sYXRlZENvcHkoKSwgc3JjVVJMID0gc3JjVVJMLmlzb2xhdGVkQ29weSgpLCBz
dGFydCwgZW5kXSB7Ci0gICAgICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTEZvclNs
aWNlKG5ld1VSTCwgc3JjVVJMLCBzdGFydCwgZW5kKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtu
ZXdVUkwgPSBuZXdVUkwuaXNvbGF0ZWRDb3B5KCksIHNyY1VSTCA9IHNyY1VSTC5pc29sYXRlZENv
cHkoKSwgc3RhcnQsIGVuZCwgY29udGVudFR5cGUgPSBjb250ZW50VHlwZS5pc29sYXRlZENvcHko
KV0geworICAgICAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZShuZXdV
UkwsIHNyY1VSTCwgc3RhcnQsIGVuZCwgY29udGVudFR5cGUpOwogICAgIH0pOwogfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaAko
cmV2aXNpb24gMjc2NjEzKQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxv
YlJlZ2lzdHJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+
JiYgYmxvYlBhcnRzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICBzdGF0aWMgdm9p
ZCByZWdpc3RlckJsb2JVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmLCBjb25zdCBVUkwm
IHNyY1VSTCk7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVC
YWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJh
Y2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwotICAgIHN0YXRpYyB2b2lkIHJl
Z2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgbmV3VVJMLCBjb25zdCBVUkwmIHNyY1VS
TCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kKTsKKyAgICBzdGF0aWMgdm9pZCByZWdp
c3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIG5ld1VSTCwgY29uc3QgVVJMJiBzcmNVUkws
IGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlw
ZSk7CiAgICAgc3RhdGljIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJik7CiAKICAg
ICBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCShyZXZp
c2lvbiAyNzY2MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdp
c3RyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwg
Y29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYsIGNvbnN0
IFN0cmluZyYgY29udGVudFR5cGUpID0gMDsKIAogICAgIC8vIE5lZ2F0aXZlIHN0YXJ0IGFuZCBl
bmQgdmFsdWVzIHNlbGVjdCBmcm9tIHRoZSBlbmQuCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVy
QmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcg
c3RhcnQsIGxvbmcgbG9uZyBlbmQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFy
dCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYpID0gMDsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUlt
cGwuY3BwCShyZXZpc2lvbiAyNzY2MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzgsNyArMTc4LDcg
QEAgdm9pZCBCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxPcAogICAgIG1fYmxvYnMu
c2V0KHVybC5zdHJpbmcoKSwgV1RGTW92ZShiYWNraW5nRmlsZSkpOwogfQogCi12b2lkIEJsb2JS
ZWdpc3RyeUltcGw6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kKQordm9pZCBCbG9i
UmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIHVybCwgY29u
c3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEJs
b2JEYXRhKiBvcmlnaW5hbERhdGEgPSBnZXRCbG9iRGF0YUZyb21VUkwoc3JjVVJMKTsKQEAgLTIw
Nyw3ICsyMDcsNyBAQCB2b2lkIEJsb2JSZWdpc3RyeUltcGw6OnJlZ2lzdGVyQmxvYlVSTEZvCiAg
ICAgICAgIGVuZCA9IG9yaWdpbmFsU2l6ZTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdM
ZW5ndGggPSBlbmQgLSBzdGFydDsKLSAgICBhdXRvIG5ld0RhdGEgPSBCbG9iRGF0YTo6Y3JlYXRl
KG9yaWdpbmFsRGF0YS0+Y29udGVudFR5cGUoKSk7CisgICAgYXV0byBuZXdEYXRhID0gQmxvYkRh
dGE6OmNyZWF0ZShjb250ZW50VHlwZS5pc0VtcHR5KCkgPyBvcmlnaW5hbERhdGEtPmNvbnRlbnRU
eXBlKCkgOiBjb250ZW50VHlwZSk7CiAKICAgICBhcHBlbmRTdG9yYWdlSXRlbXMobmV3RGF0YS5w
dHIoKSwgb3JpZ2luYWxEYXRhLT5pdGVtcygpLCBzdGFydCwgbmV3TGVuZ3RoKTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBs
LmgJKHJldmlzaW9uIDI3NjYxMykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlZ2lzdHJ5SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+
JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJM
KGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVS
TE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQ
dHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsK
LSAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYg
c3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpOworICAgIHZvaWQgcmVnaXN0
ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9u
ZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAg
dm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKTsKIAogICAgIHVuc2lnbmVkIGxvbmcg
bG9uZyBibG9iU2l6ZShjb25zdCBVUkwmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzY2MTQp
CisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIw
IEBACisyMDIxLTA0LTI2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgY2hhcnNldCBpbiBjb250ZW50VHlwZSB1c2VkIGluIEJsb2IucHJvdG90
eXBlLnNsaWNlKHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSBpcyBsb3N0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUwNTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9GaWxlQVBJ
L0Jsb2JSZWdpc3RyeVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmxvYlJlZ2lzdHJ5UHJv
eHk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVB
UEkvQmxvYlJlZ2lzdHJ5UHJveHkuaDoKKwogMjAyMS0wNC0yNiAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVwZGF0ZSBNYWMtc3BlY2lmaWMg
Q01ha2UgZmlsZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAy
NzY2MTMpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODM4LDEzICs4MzgsMTMgQEAgdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaQogICAgIHNlc3Npb24tPmJsb2JS
ZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJM
LCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGZpbGVC
YWNrZWRQYXRoKSwgY29udGVudFR5cGUpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIHVybCwgY29uc3Qg
VVJMJiBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKQordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCwgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSkKIHsKICAgICBhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oKTsKICAgICBpZiAoIXNlc3Npb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIHNlc3Npb24t
PmJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKHVybCwgc3JjVVJMLCBzdGFy
dCwgZW5kKTsKKyAgICBzZXNzaW9uLT5ibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxGb3JT
bGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCwgY29udGVudFR5cGUpOwogfQogCiB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwm
IHVybCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI3NjYxMykKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjMzLDcgKzIzMyw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0PiYm
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZy
b21VUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpOwogICAgIHZvaWQgcmVnaXN0ZXJC
bG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkws
IGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUp
OwotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJM
JiBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKTsKKyAgICB2b2lkIHJlZ2lzdGVy
QmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBpbnQ2NF90IHN0
YXJ0LCBpbnQ2NF90IGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAgdm9pZCBi
bG9iU2l6ZShjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7
CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKTsKICAgICB2b2lkIHdyaXRl
QmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJik7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI3NjYxMykKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgbWVzc2FnZXMg
LT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2NlcwogICAgIFJlZ2lzdGVyQmxvYlVSTChVUkwg
dXJsLCBWZWN0b3I8V2ViQ29yZTo6QmxvYlBhcnQ+IGJsb2JQYXJ0cywgU3RyaW5nIGNvbnRlbnRU
eXBlKQogICAgIFJlZ2lzdGVyQmxvYlVSTEZyb21VUkwoVVJMIHVybCwgVVJMIHNyY1VSTCkKICAg
ICBSZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChVUkwgdXJsLCBVUkwgc3JjVVJM
LCBTdHJpbmcgZmlsZUJhY2tlZFBhdGgsIFN0cmluZyBjb250ZW50VHlwZSkKLSAgICBSZWdpc3Rl
ckJsb2JVUkxGb3JTbGljZShVUkwgdXJsLCBVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2
NF90IGVuZCkKKyAgICBSZWdpc3RlckJsb2JVUkxGb3JTbGljZShVUkwgdXJsLCBVUkwgc3JjVVJM
LCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCwgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFVu
cmVnaXN0ZXJCbG9iVVJMKFVSTCB1cmwpCiAgICAgQmxvYlNpemUoVVJMIHVybCkgLT4gKHVpbnQ2
NF90IHJlc3VsdFNpemUpIFN5bmNocm9ub3VzCiAgICAgV3JpdGVCbG9ic1RvVGVtcG9yYXJ5Rmls
ZXMoVmVjdG9yPFN0cmluZz4gYmxvYlVSTHMpIC0+IChWZWN0b3I8U3RyaW5nPiBmaWxlTmFtZXMp
IEFzeW5jCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24g
Mjc2NjEzKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgQmxv
YlJlZ2lzdHJ5KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYQogICAgICAgICB2b2lkIHJlZ2lz
dGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpIGZpbmFsIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRp
b25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJs
b2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZv
clNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxv
bmcgbG9uZyBlbmQpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwg
bG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
KSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIHZvaWQgdW5yZWdpc3Rl
ckJsb2JVUkwoY29uc3QgVVJMJikgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAg
ICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikgZmluYWwgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KICAgICAgICAgdm9pZCB3cml0ZUJsb2JzVG9U
ZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSBmaW5hbCB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQ
SS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCShyZXZpc2lvbiAyNzY2MTMpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY5LDkgKzY5LDkgQEAgdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6
dW5yZWdpc3RlckJsb2JVUgogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VW5yZWdpc3RlckJsb2JVUkwodXJsKSwgMCk7CiB9CiAK
LXZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5k
KQordm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBl
bmQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckJsb2JVUkxG
b3JTbGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCksIDApOworICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJCbG9i
VVJMRm9yU2xpY2UodXJsLCBzcmNVUkwsIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSwgMCk7CiB9
CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNpemUoY29uc3Qg
VVJMJiB1cmwpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVn
aXN0cnlQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxl
QVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgJKHJldmlzaW9uIDI3NjYxMykKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0
IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVS
TE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQ
dHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlKSBmaW5hbDsKICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYpIGZp
bmFsOwotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3Qg
VVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmluYWw7CisgICAg
dm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VS
TCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKSBmaW5hbDsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikg
ZmluYWw7CiAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4m
JiBmaWxlUGF0aHMpPiYmKSBmaW5hbDsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNzY2MTMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNC0yNiAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIGNoYXJzZXQgaW4g
Y29udGVudFR5cGUgdXNlZCBpbiBCbG9iLnByb3RvdHlwZS5zbGljZShzdGFydCwgZW5kLCBjb250
ZW50VHlwZSkgaXMgbG9zdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI1MDU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisKIDIw
MjEtMDQtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBy
b3ZlIG91ciBjb25zdHJ1Y3REZWxldGVkVmFsdWUoKSB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbnMK
SW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0JKHJldmlzaW9uIDI3NjYxMykKKysr
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbQkod29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+JiYgcGFy
dHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVn
aXN0ZXJCbG9iVVJMKHVybCwgV1RGTW92ZShwYXJ0cyksIGNvbnRlbnRUeXBlKTsgfQogICAgIHZv
aWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCkgZmlu
YWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkwodXJsLCBzcmNVUkwpOyB9CiAgICAg
dm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmIHVybCwg
Y29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJl
bmNlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJl
Z2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBXVEZNb3ZlKHJl
ZmVyZW5jZSksIGNvbnRlbnRUeXBlKTsgfQotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xp
Y2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxv
bmcgbG9uZyBlbmQpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMRm9yU2xp
Y2UodXJsLCBzcmNVUkwsIHN0YXJ0LCBlbmQpOyB9CisgICAgdm9pZCByZWdpc3RlckJsb2JVUkxG
b3JTbGljZShjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFy
dCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Js
b2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVu
ZCwgY29udGVudFR5cGUpOyB9CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwm
IHVybCkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOyB9CiAg
ICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IHJl
dHVybiBtX2Jsb2JSZWdpc3RyeS5ibG9iU2l6ZSh1cmwpOyB9CiAgICAgdm9pZCB3cml0ZUJsb2Jz
VG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVz
KGJsb2JVUkxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI3NjYxMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDEzIEBACisyMDIxLTA0LTI2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgY2hhcnNldCBpbiBjb250ZW50VHlwZSB1c2VkIGluIEJs
b2IucHJvdG90eXBlLnNsaWNlKHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSBpcyBsb3N0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUwNTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZmlsZXMv
YmxvYi1jb250ZW50LXR5cGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zp
bGVzL2Jsb2ItY29udGVudC10eXBlLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA0LTI2ICBBZGl0eWEg
S2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBmYXN0
L2Zvcm1zL2lvcy9pcGFkL29wZW4tcGlja2VyLXVzaW5nLWtleWJvYXJkLmh0bWwgaXMgdGltaW5n
IG91dApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLWNvbnRlbnQtdHlwZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLWNvbnRl
bnQtdHlwZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9m
aWxlcy9ibG9iLWNvbnRlbnQtdHlwZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1IEBACisKK1BBU1MgYmxvYi5zbGljZSBjb250ZW50IHR5cGUgdXNlZAorUEFTUyBzbGlj
ZWQtZnJvbSBjb250ZW50IHR5cGUgdXNlZCB3aGVuIG5vbmUgc3BlY2lmaWVkIGluIGJsb2Iuc2xp
Y2UKK1BBU1Mgc2xpY2VkLWZyb20gY29udGVudCB0eXBlIHVzZWQgd2hlbiBlbXB0eSBzdHJpbmcg
Y29udGVudCB0eXBlIHNwZWNpZmllZCBpbiBibG9iLnNsaWNlCisKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZmlsZXMvYmxvYi1jb250ZW50LXR5cGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzL2Jsb2ItY29udGVudC10eXBlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLWNvbnRlbnQtdHlwZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjggQEAKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisgICAgY29uc3QgYmxvYiA9IG5l
dyBCbG9iKFtgPHN0eWxlPjwvc3R5bGU+YF0sIHsgdHlwZTogJ3RleHQvb3JpZ2luYWwtYmxvYi1j
b250ZW50LXR5cGU7JyB9KTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAg
ICAgIGNvbnN0IHNsaWNlID0gYmxvYi5zbGljZSgwLCBibG9iLnNpemUsIGB0ZXh0L2h0bWwyO2No
YXJzZXQ9dXRmLThgKTsKKyAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChz
bGljZSk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyksICd0
ZXh0L2h0bWwyO2NoYXJzZXQ9dXRmLTgnKQorICAgIH0sICdibG9iLnNsaWNlIGNvbnRlbnQgdHlw
ZSB1c2VkJykKKworICAgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0
IHNsaWNlID0gYmxvYi5zbGljZSgwLCBibG9iLnNpemUpOworICAgICAgICBjb25zdCB1cmwgPSBV
UkwuY3JlYXRlT2JqZWN0VVJMKHNsaWNlKTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2Fp
dCBmZXRjaCh1cmwpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmhlYWRlcnMuZ2V0
KCdjb250ZW50LXR5cGUnKSwgJ3RleHQvb3JpZ2luYWwtYmxvYi1jb250ZW50LXR5cGU7JykKKyAg
ICB9LCAnc2xpY2VkLWZyb20gY29udGVudCB0eXBlIHVzZWQgd2hlbiBub25lIHNwZWNpZmllZCBp
biBibG9iLnNsaWNlJykKKworICAgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgICAg
IGNvbnN0IHNsaWNlID0gYmxvYi5zbGljZSgwLCBibG9iLnNpemUsICIiKTsKKyAgICAgICAgY29u
c3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzbGljZSk7CisgICAgICAgIGNvbnN0IHJlc3Bv
bnNlID0gYXdhaXQgZmV0Y2godXJsKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5o
ZWFkZXJzLmdldCgnY29udGVudC10eXBlJyksICd0ZXh0L29yaWdpbmFsLWJsb2ItY29udGVudC10
eXBlOycpCisgICAgfSwgJ3NsaWNlZC1mcm9tIGNvbnRlbnQgdHlwZSB1c2VkIHdoZW4gZW1wdHkg
c3RyaW5nIGNvbnRlbnQgdHlwZSBzcGVjaWZpZWQgaW4gYmxvYi5zbGljZScpCisKKzwvc2NyaXB0
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427160</attachid>
            <date>2021-04-27 10:07:37 -0700</date>
            <delta_ts>2021-04-27 16:01:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225057-20210427100736.patch</filename>
            <type>text/plain</type>
            <size>23824</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNmMzMzN2Q1MjQyZjM4
YTlkZGNlODM4YzUzNmY2ZTMwZWRkM2IzNi4uYWEwZjNiYzg0ZDEzZWRjMjI1YjVhOGI2ZTVlNzhh
NDdhZWNkODVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA0LTI3ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY2hhcnNl
dCBpbiBjb250ZW50VHlwZSB1c2VkIGluIEJsb2IucHJvdG90eXBlLnNsaWNlKHN0YXJ0LCBlbmQs
IGNvbnRlbnRUeXBlKSBpcyBsb3N0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjUwNTcKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4K
KworICAgICAgICBXaGVuIGNhbGxpbmcgQmxvYi5zbGljZSwgdXNlIHRoZSBjb250ZW50IHR5cGUg
ZnJvbSB0aGUgY2FsbCwgbm90IGZyb20gdGhlIHNsaWNlZC1mcm9tIGJsb2IuCisgICAgICAgIFRo
aXMgbWF0Y2hlcyBDaHJvbWUgYW5kIEZpcmVmb3guCisKKyAgICAgICAgV2hlbiBubyBjb250ZW50
IHR5cGUgaXMgZ2l2ZW4sIGJyb3dzZXJzIGRpc2FncmVlIG9uIHdoYXQgaGFwcGVucywgc28ga2Vl
cCBleGlzdGluZyBiZWhhdmlvciBpbiB0aGF0IGNhc2UuCisKKyAgICAgICAgVGVzdDogZmFzdC9m
aWxlcy9ibG9iLWNvbnRlbnQtdHlwZS5odG1sCisKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6QmxvYik6CisgICAgICAgICogZmlsZWFwaS9UaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVCbG9i
UmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKToKKyAgICAgICAgKiBmaWxlYXBpL1Ro
cmVhZGFibGVCbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxG
b3JTbGljZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmg6
CisKIDIwMjEtMDQtMjcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQ29ycmVjdGx5IGludGVycG9sYXRlIHN0cm9rZS1kYXNoYXJyYXkgaW4gdGhlIGRpc2Ny
ZXRlIGNhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZmJmOTZlNGNhNWEyMjRmOWVjYzI0MThjZDQ2YjI0ZDYxZjNi
ODkxNy4uMGMyN2U0NzlkNDRmZjYzYjU3NTk0ZWUwNjQxMzA4MTgzM2YzZmQyMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAyMS0wNC0yNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIGNoYXJzZXQgaW4gY29udGVudFR5cGUgdXNlZCBp
biBCbG9iLnByb3RvdHlwZS5zbGljZShzdGFydCwgZW5kLCBjb250ZW50VHlwZSkgaXMgbG9zdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MDU3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUGxh
dGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0cnkpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJsb2JS
ZWdpc3RyeVByb3h5OjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5Lmg6CisKIDIwMjEtMDQtMjcgIENocmlzIEZs
ZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogU21hcnQgaW52ZXJ0
PlNhZmFyaT5pbWFnZXMgJiBvdGhlciBjb2xvcnMgaW1wcm9wZXJseSBpbnZlcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCBlZTBiZWIxNWIxMDE0ZWU5MDQ2ZmU0M2NjZDI2Yjk3YTI4
ODI2ZjE4Li5jODMzNzkzYTNjZWU5ZDY4ODg3ZTY2Mjk0NTY1NjFiNDBmMTRhMDE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDQtMjcgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBjaGFyc2V0
IGluIGNvbnRlbnRUeXBlIHVzZWQgaW4gQmxvYi5wcm90b3R5cGUuc2xpY2Uoc3RhcnQsIGVuZCwg
Y29udGVudFR5cGUpIGlzIGxvc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNTA1NworCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6Lgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorCiAy
MDIxLTA0LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSW1w
cm92ZSBvdXIgY29uc3RydWN0RGVsZXRlZFZhbHVlKCkgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb25z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggMjY1NzY5NmUyMDQwNGRlM2Q3NjJkOGM1
NmE2NGJiMzI4NTFiOWRiZC4uZTdjMTA5ZjkzNmYwODhhZjA4NzgwOTFjNjM5NDM1OTQ4NzEyMTU0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA0
LTI3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgY2hhcnNldCBpbiBjb250ZW50VHlwZSB1c2VkIGluIEJsb2IucHJvdG90eXBlLnNsaWNlKHN0
YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSBpcyBsb3N0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUwNTcKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJp
cyBEdW1lei4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHA6CisKIDIwMjEtMDQtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBEaXNhYmxlIHByZWZpeGVkIFdlYkF1ZGlvIG9uIFdlYktpdExlZ2FjeS1XaW5kb3dz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9CbG9iLmNwcAppbmRleCAzN2FkZWI3NTBmNWM0MWViODcyNWY3NWMwNjkw
ZTc0MjhjN2MzYzhkLi44MTZmZWQ5NGUxNGRjMTdjMWUzY2MzNzk5MjQ3N2ZlNWZkYjFhZWRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKQEAgLTE2MCw3ICsxNjAsNyBAQCBCbG9iOjpCbG9iKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxv
bmcgc3RhcnQsCiAgICAgLy8gbV9zaXplIGlzIG5vdCBuZWNlc3NhcmlseSBlcXVhbCB0byBlbmQg
LSBzdGFydCBzbyB3ZSBkbyBub3QgaW5pdGlhbGl6ZSBpdCBoZXJlLgogewogICAgIG1faW50ZXJu
YWxVUkwgPSBCbG9iVVJMOjpjcmVhdGVJbnRlcm5hbFVSTCgpOwotICAgIFRocmVhZGFibGVCbG9i
UmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKG1faW50ZXJuYWxVUkwsIHNyY1VSTCwg
c3RhcnQsIGVuZCk7CisgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJM
Rm9yU2xpY2UobV9pbnRlcm5hbFVSTCwgc3JjVVJMLCBzdGFydCwgZW5kLCBtX3R5cGUpOwogfQog
CiBCbG9iOjp+QmxvYigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVh
ZGFibGVCbG9iUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxl
QmxvYlJlZ2lzdHJ5LmNwcAppbmRleCA0ZGNiYTgxOTExZDdhMGNjY2M2NDE0NDU2ZjUxMGUxNzk1
MmU4OWQyLi5iZDgxZjhlYTMxOWFlMDM5ZmVkYzE3NWQxNDE4Yzg0MmYwMjIwOTBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAKQEAg
LTEyNiwxNSArMTI2LDE1IEBAIHZvaWQgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJC
bG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiB1cmwsCiAgICAgfSk7CiB9CiAK
LXZvaWQgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29u
c3QgVVJMJiBuZXdVUkwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcg
bG9uZyBlbmQpCit2b2lkIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTEZv
clNsaWNlKGNvbnN0IFVSTCYgbmV3VVJMLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0
YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQogewogICAgIGlm
IChpc01haW5UaHJlYWQoKSkgewotICAgICAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JV
UkxGb3JTbGljZShuZXdVUkwsIHNyY1VSTCwgc3RhcnQsIGVuZCk7CisgICAgICAgIGJsb2JSZWdp
c3RyeSgpLnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKG5ld1VSTCwgc3JjVVJMLCBzdGFydCwgZW5k
LCBjb250ZW50VHlwZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWxsT25NYWlu
VGhyZWFkKFtuZXdVUkwgPSBuZXdVUkwuaXNvbGF0ZWRDb3B5KCksIHNyY1VSTCA9IHNyY1VSTC5p
c29sYXRlZENvcHkoKSwgc3RhcnQsIGVuZF0gewotICAgICAgICBibG9iUmVnaXN0cnkoKS5yZWdp
c3RlckJsb2JVUkxGb3JTbGljZShuZXdVUkwsIHNyY1VSTCwgc3RhcnQsIGVuZCk7CisgICAgY2Fs
bE9uTWFpblRocmVhZChbbmV3VVJMID0gbmV3VVJMLmlzb2xhdGVkQ29weSgpLCBzcmNVUkwgPSBz
cmNVUkwuaXNvbGF0ZWRDb3B5KCksIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlID0gY29udGVudFR5
cGUuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9i
VVJMRm9yU2xpY2UobmV3VVJMLCBzcmNVUkwsIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKTsKICAg
ICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxl
QmxvYlJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVn
aXN0cnkuaAppbmRleCBlY2I3NGYxN2MwNmRiZWJjNzM0OTgzZGIzOTIxZGM5ODk4NDE1OTMzLi5i
Y2QzNmJlM2ZhN2IzOTJiYjYzMTNiM2VhNjViOTM3NWNlMjExNWYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaApAQCAtNDQsNyArNDQsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIFZl
Y3RvcjxCbG9iUGFydD4mJiBibG9iUGFydHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwog
ICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTChTZWN1cml0eU9yaWdpbiosIGNvbnN0IFVS
TCYsIGNvbnN0IFVSTCYgc3JjVVJMKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJsb2JVUkxP
cHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3Qg
U3RyaW5nJiBmaWxlQmFja2VkUGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7Ci0gICAg
c3RhdGljIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiBuZXdVUkwsIGNv
bnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpOworICAgIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgbmV3VVJMLCBjb25z
dCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKTsKICAgICBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25z
dCBVUkwmKTsKIAogICAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3Qg
VVJMJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnku
aAppbmRleCA0YjE1Y2RkYmUwZTRjNzZlOGY5MmIwMDJkNjJhOWFiMDJiN2E2YmExLi43NTk1NzAy
MjE3MjliZmI1MThlMmFiYjU0MjAwM2ZhZjA4YmM2ZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChj
b25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5j
ZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgPSAwOwogCiAgICAgLy8gTmVnYXRpdmUg
c3RhcnQgYW5kIGVuZCB2YWx1ZXMgc2VsZWN0IGZyb20gdGhlIGVuZC4KLSAgICB2aXJ0dWFsIHZv
aWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkws
IGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9u
ZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSA9
IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJikgPSAw
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdp
c3RyeUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0
cnlJbXBsLmNwcAppbmRleCBlODY0ZDc1ZDNjN2ZkZGE2MTU5ZDU4ZTU4YmQ1NTY2NjdiODAzZWNm
Li42N2VkMmE0YjVjOTYwOWFmOGJjMDY3ZmRkMmNkYTE5YzlhNDg3ZGQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKQEAg
LTE3OCw3ICsxNzgsNyBAQCB2b2lkIEJsb2JSZWdpc3RyeUltcGw6OnJlZ2lzdGVyQmxvYlVSTE9w
dGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgIG1fYmxvYnMuc2V0
KHVybC5zdHJpbmcoKSwgV1RGTW92ZShiYWNraW5nRmlsZSkpOwogfQogCi12b2lkIEJsb2JSZWdp
c3RyeUltcGw6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBV
UkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kKQordm9pZCBCbG9iUmVn
aXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIHVybCwgY29uc3Qg
VVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEJsb2JE
YXRhKiBvcmlnaW5hbERhdGEgPSBnZXRCbG9iRGF0YUZyb21VUkwoc3JjVVJMKTsKQEAgLTIwNyw3
ICsyMDcsNyBAQCB2b2lkIEJsb2JSZWdpc3RyeUltcGw6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNl
KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTAogICAgICAgICBlbmQgPSBvcmlnaW5h
bFNpemU7CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbmV3TGVuZ3RoID0gZW5kIC0gc3RhcnQ7
Ci0gICAgYXV0byBuZXdEYXRhID0gQmxvYkRhdGE6OmNyZWF0ZShvcmlnaW5hbERhdGEtPmNvbnRl
bnRUeXBlKCkpOworICAgIGF1dG8gbmV3RGF0YSA9IEJsb2JEYXRhOjpjcmVhdGUoY29udGVudFR5
cGUuaXNFbXB0eSgpID8gb3JpZ2luYWxEYXRhLT5jb250ZW50VHlwZSgpIDogY29udGVudFR5cGUp
OwogCiAgICAgYXBwZW5kU3RvcmFnZUl0ZW1zKG5ld0RhdGEucHRyKCksIG9yaWdpbmFsRGF0YS0+
aXRlbXMoKSwgc3RhcnQsIG5ld0xlbmd0aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmgKaW5kZXggZGI5ZDZkZjcwYjc4ZDE1MzU0
OTcwMjM2Yzc1ZDEwZjM0NjllODg1Yi4uZDQ0NDUxNDFhYTJmY2M4OWZlZGYzOWU3ZDg3ZWEzMDgx
ZTIzNmRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVnaXN0cnlJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVnaXN0cnlJbXBsLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0
ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIFZlY3RvcjxCbG9iUGFydD4mJiwgY29uc3QgU3RyaW5nJiBj
b250ZW50VHlwZSk7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3Qg
VVJMJiBzcmNVUkwpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNr
ZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZl
cmVuY2U+JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwotICAgIHZvaWQgcmVnaXN0ZXJC
bG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBz
dGFydCwgbG9uZyBsb25nIGVuZCk7CisgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShj
b25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcg
ZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHVucmVnaXN0ZXJCbG9i
VVJMKGNvbnN0IFVSTCYpOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0
IFVSTCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA3OWEzZGQ3ODZjZmQ5MDk5
Y2UyNTNjNzk2ZDNlODgwN2Y3NTQ3MzM2Li5jNDRhNDgzOGZjOTc0OWVhNjU3YWMwZWZmMDJlNTk4
N2VhZTU2N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtODM4LDEzICs4Mzgs
MTMgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJM
T3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVIKICAgICBzZXNzaW9uLT5ibG9iUmVnaXN0cnko
KS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgQmxvYkRh
dGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShmaWxlQmFja2VkUGF0
aCksIGNvbnRlbnRUeXBlKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3Jj
VVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBVUkwmIHNyY1VSTCwgaW50NjRfdCBzdGFydCwgaW50NjRfdCBlbmQsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpCiB7CiAgICAgYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKCk7CiAg
ICAgaWYgKCFzZXNzaW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXNzaW9uLT5ibG9iUmVn
aXN0cnkoKS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCk7
CisgICAgc2Vzc2lvbi0+YmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UodXJs
LCBzcmNVUkwsIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKTsKIH0KIAogdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6dW5yZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMjgxNWVkZWM3M2RiNWI5Yzc0ZWUyODY0MWZiYTNm
YjQ3MjQ2ZmRkMi4uOTQ2NWI2OGYzNmM0ZTU5ZWVhYWM2NzQ4MTkwNmEzZTE5NWM5YjQ3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjMzLDcgKzIzMyw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0
PiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVS
TEZyb21VUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpOwogICAgIHZvaWQgcmVnaXN0
ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNV
UkwsIGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUpOwotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3Qg
VVJMJiBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKTsKKyAgICB2b2lkIHJlZ2lz
dGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBpbnQ2NF90
IHN0YXJ0LCBpbnQ2NF90IGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAgdm9p
ZCBibG9iU2l6ZShjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4m
Jik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKTsKICAgICB2b2lkIHdy
aXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAwN2JmY2U0NDkxY2Q1MzA2YjRm
YWEyOGJjNGM4NWE1M2NlZjBlYWI3Li40MzExZDI4OTJjZThiMjllNmJlNmM3Zjk1NTNkNDI0NzE4
MzBlYTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTUyLDcgKzUyLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogICAgIFJlZ2lzdGVyQmxvYlVSTChVUkwgdXJsLCBWZWN0b3I8V2Vi
Q29yZTo6QmxvYlBhcnQ+IGJsb2JQYXJ0cywgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFJlZ2lz
dGVyQmxvYlVSTEZyb21VUkwoVVJMIHVybCwgVVJMIHNyY1VSTCkKICAgICBSZWdpc3RlckJsb2JV
UkxPcHRpb25hbGx5RmlsZUJhY2tlZChVUkwgdXJsLCBVUkwgc3JjVVJMLCBTdHJpbmcgZmlsZUJh
Y2tlZFBhdGgsIFN0cmluZyBjb250ZW50VHlwZSkKLSAgICBSZWdpc3RlckJsb2JVUkxGb3JTbGlj
ZShVUkwgdXJsLCBVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCkKKyAgICBS
ZWdpc3RlckJsb2JVUkxGb3JTbGljZShVUkwgdXJsLCBVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0
LCBpbnQ2NF90IGVuZCwgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFVucmVnaXN0ZXJCbG9iVVJM
KFVSTCB1cmwpCiAgICAgQmxvYlNpemUoVVJMIHVybCkgLT4gKHVpbnQ2NF90IHJlc3VsdFNpemUp
IFN5bmNocm9ub3VzCiAgICAgV3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoVmVjdG9yPFN0cmlu
Zz4gYmxvYlVSTHMpIC0+IChWZWN0b3I8U3RyaW5nPiBmaWxlTmFtZXMpIEFzeW5jCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IGNmZmM5OWY4MmIwNDRjNDliMDUwMmJlOTVk
Y2M4Y2I4OTkxYzIyMDQuLmI1MGY0OWJjODM2NDJhZmExNjBhYmQ2OGY0OTdkNWI4YTJmNGJmNzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC02MSw3ICs2MSw3IEBAIEJs
b2JSZWdpc3RyeSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JS
ZWdpc3RyeSgpCiAgICAgICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIFZlY3Rv
cjxCbG9iUGFydD4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQogICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwm
LCBjb25zdCBVUkwmIHNyY1VSTCkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAg
ICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYs
IGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25z
dCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0g
ICAgICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJM
JiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmluYWwgeyBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQorICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNv
bnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBl
bmQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKSBmaW5hbCB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9i
U2l6ZShjb25zdCBVUkwmKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsg
fQogICAgICAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYm
IGZpbGVQYXRocyk+JiYpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNw
cAppbmRleCA5MDNmOTQxZDc1ODI3ZTcyNTcyZWZiODIxYjZkMjNlYTljZmJhZGUzLi4yOGY2OGEx
NGQ1MWViOTVlNmY5NGJkYTNlZjQzNWY0Nzg5MDJmMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCkBAIC02OSw5
ICs2OSw5IEBAIHZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0
IFVSTCYgdXJsKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6VW5yZWdpc3RlckJsb2JVUkwodXJsKSwgMCk7CiB9CiAKLXZvaWQg
QmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kKQordm9p
ZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQsIGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckJsb2JVUkxGb3JTbGlj
ZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJCbG9iVVJMRm9y
U2xpY2UodXJsLCBzcmNVUkwsIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSwgMCk7CiB9CiAKIHVu
c2lnbmVkIGxvbmcgbG9uZyBCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNpemUoY29uc3QgVVJMJiB1
cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVn
aXN0cnlQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lz
dHJ5UHJveHkuaAppbmRleCBlODM3YTY5NjRlMDQ3ZDNhNDViMzIwZWQwMzZiNmE4YTczMDNmNjJh
Li41MmZhY2Y4MTgyY2EyMzEwYjNiOGZhNWE0MGRiNjQ3ZTBjYzEzM2MxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKQEAg
LTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVS
TCYsIGNvbnN0IFVSTCYgc3JjVVJMKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9w
dGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8
V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKSBmaW5hbDsKICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYpIGZpbmFs
OwotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJM
JiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmluYWw7CisgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwg
bG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
KSBmaW5hbDsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikgZmlu
YWw7CiAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBm
aWxlUGF0aHMpPiYmKSBmaW5hbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5k
ZXggNDEwZDJkNjBlYWJmZDkzNjFhYzg0ZGEwYTY5ZjQ3ZmRjNzA1YzUzYy4uYzIzNzI4MTFjZjEz
OWJhYjQ4YzY4ODEyN2JmMGMzOWZlNTZkZDE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5tbQpAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJM
KGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+JiYgcGFydHMsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMKHVybCwg
V1RGTW92ZShwYXJ0cyksIGNvbnRlbnRUeXBlKTsgfQogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJM
KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCkgZmluYWwgeyBtX2Jsb2JSZWdpc3Ry
eS5yZWdpc3RlckJsb2JVUkwodXJsLCBzcmNVUkwpOyB9CiAgICAgdm9pZCByZWdpc3RlckJsb2JV
UkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkws
IFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTE9wdGlv
bmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRU
eXBlKTsgfQotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1cmws
IGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpIGZpbmFs
IHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UodXJsLCBzcmNVUkwsIHN0
YXJ0LCBlbmQpOyB9CisgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwm
IHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwg
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3Rl
ckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCwgY29udGVudFR5cGUpOyB9
CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCkgZmluYWwgeyBtX2Js
b2JSZWdpc3RyeS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOyB9CiAgICAgdW5zaWduZWQgbG9uZyBs
b25nIGJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IHJldHVybiBtX2Jsb2JSZWdpc3Ry
eS5ibG9iU2l6ZSh1cmwpOyB9CiAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbCB7IG1f
YmxvYlJlZ2lzdHJ5LndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGJsb2JVUkxzLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmlu
ZGV4IGUwMzQyM2Q3NTNjYjE5ODBlZTNlYjg4OTJmYTI4NTFlZTQ5NjI1MmYuLjVlMTk1MDYzNmI0
NTMzODZiMmViZTI0ZTc4MjYxMzcyMTgwZTg4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMKGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+JiYgcGFydHMsIGNvbnN0IFN0cmlu
ZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMKHVy
bCwgV1RGTW92ZShwYXJ0cyksIGNvbnRlbnRUeXBlKTsgfQogICAgIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCkgZmluYWwgeyBtX2Jsb2JSZWdp
c3RyeS5yZWdpc3RlckJsb2JVUkwodXJsLCBzcmNVUkwpOyB9CiAgICAgdm9pZCByZWdpc3RlckJs
b2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNV
UkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTE9w
dGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRl
bnRUeXBlKTsgfQotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpIGZp
bmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UodXJsLCBzcmNVUkws
IHN0YXJ0LCBlbmQpOyB9CisgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBV
UkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVu
ZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdp
c3RlckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCwgY29udGVudFR5cGUp
OyB9CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCkgZmluYWwgeyBt
X2Jsb2JSZWdpc3RyeS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOyB9CiAgICAgdW5zaWduZWQgbG9u
ZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IHJldHVybiBtX2Jsb2JSZWdp
c3RyeS5ibG9iU2l6ZSh1cmwpOyB9CiAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
VmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbCB7
IG1fYmxvYlJlZ2lzdHJ5LndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGJsb2JVUkxzLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMDZjNjA3OGRhNTMxNzM3ZTE4ZmZi
MTU3NWUyNWNkYTg0MzI2YjdkLi5jMTViOTYyYjRkMjQ3NGI1MzQwMzA3Yjc4MzRhMGRjYjIyMjYz
OTcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDQtMjcgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBjaGFyc2V0IGluIGNvbnRlbnRU
eXBlIHVzZWQgaW4gQmxvYi5wcm90b3R5cGUuc2xpY2Uoc3RhcnQsIGVuZCwgY29udGVudFR5cGUp
IGlzIGxvc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNTA1NworCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgICog
ZmFzdC9maWxlcy9ibG9iLWNvbnRlbnQtdHlwZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZmlsZXMvYmxvYi1jb250ZW50LXR5cGUuaHRtbDogQWRkZWQuCisKIDIwMjEtMDQt
MjcgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbUmVuZGVyVHJl
ZUJ1aWxkZXJdIEFTU0VSVElPTiBGQUlMRUQ6IGFuY2VzdG9yLT5zdHlsZSgpLmNvbHVtblNwYW4o
KSAhPSBDb2x1bW5TcGFuOjpBbGwgfHwgIWlzVmFsaWRDb2x1bW5TcGFubmVyKGZyYWdtZW50ZWRG
bG93LCAqYW5jZXN0b3IpIGluIFdlYkNvcmU6OmlzVmFsaWRDb2x1bW5TcGFubmVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2ItY29udGVudC10eXBlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxvYi1jb250ZW50LXR5cGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA4OWE4ZTlhNzFiNjE1ZDdiMjM3MzMxOTQyOTRkYzQxODE5YTE4NWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2ItY29udGVudC10eXBl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBibG9iLnNsaWNlIGNvbnRlbnQg
dHlwZSB1c2VkCitQQVNTIHNsaWNlZC1mcm9tIGNvbnRlbnQgdHlwZSB1c2VkIHdoZW4gbm9uZSBz
cGVjaWZpZWQgaW4gYmxvYi5zbGljZQorUEFTUyBzbGljZWQtZnJvbSBjb250ZW50IHR5cGUgdXNl
ZCB3aGVuIGVtcHR5IHN0cmluZyBjb250ZW50IHR5cGUgc3BlY2lmaWVkIGluIGJsb2Iuc2xpY2UK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLWNvbnRlbnQtdHlwZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLWNvbnRlbnQtdHlwZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJkYjU5MzM3YzA2NjFkNmVkZmMzMDZhNDg4ZDc0NDFhY2NmMjIwNDMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2ItY29udGVudC10eXBlLmh0bWwK
QEAgLTAsMCArMSwyOCBAQAorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyAgICBjb25zdCBibG9iID0gbmV3IEJs
b2IoWyc8c3R5bGU+PC9zdHlsZT4nXSwgeyB0eXBlOiAndGV4dC9vcmlnaW5hbC1ibG9iLWNvbnRl
bnQtdHlwZTsnIH0pOworCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICAgICAg
Y29uc3Qgc2xpY2UgPSBibG9iLnNsaWNlKDAsIGJsb2Iuc2l6ZSwgJ3RleHQvaHRtbDI7Y2hhcnNl
dD11dGYtOCcpOworICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNsaWNl
KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSwgJ3RleHQv
aHRtbDI7Y2hhcnNldD11dGYtOCcpCisgICAgfSwgJ2Jsb2Iuc2xpY2UgY29udGVudCB0eXBlIHVz
ZWQnKQorCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3Qgc2xp
Y2UgPSBibG9iLnNsaWNlKDAsIGJsb2Iuc2l6ZSk7CisgICAgICAgIGNvbnN0IHVybCA9IFVSTC5j
cmVhdGVPYmplY3RVUkwoc2xpY2UpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZl
dGNoKHVybCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UuaGVhZGVycy5nZXQoJ2Nv
bnRlbnQtdHlwZScpLCAndGV4dC9vcmlnaW5hbC1ibG9iLWNvbnRlbnQtdHlwZTsnKQorICAgIH0s
ICdzbGljZWQtZnJvbSBjb250ZW50IHR5cGUgdXNlZCB3aGVuIG5vbmUgc3BlY2lmaWVkIGluIGJs
b2Iuc2xpY2UnKQorCisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICAgICAgY29u
c3Qgc2xpY2UgPSBibG9iLnNsaWNlKDAsIGJsb2Iuc2l6ZSwgIiIpOworICAgICAgICBjb25zdCB1
cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNsaWNlKTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2Ug
PSBhd2FpdCBmZXRjaCh1cmwpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmhlYWRl
cnMuZ2V0KCdjb250ZW50LXR5cGUnKSwgJ3RleHQvb3JpZ2luYWwtYmxvYi1jb250ZW50LXR5cGU7
JykKKyAgICB9LCAnc2xpY2VkLWZyb20gY29udGVudCB0eXBlIHVzZWQgd2hlbiBlbXB0eSBzdHJp
bmcgY29udGVudCB0eXBlIHNwZWNpZmllZCBpbiBibG9iLnNsaWNlJykKKworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>