<?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>238032</bug_id>
          
          <creation_ts>2022-03-17 11:19:45 -0700</creation_ts>
          <short_desc>WKBundlePageUIClient console message support should include source URL, column number, and console messages with arguments</short_desc>
          <delta_ts>2022-04-01 23:10:16 -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>WebKit API</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Jeff Miller">jeffm</reporter>
          <assigned_to name="Jeff Miller">jeffm</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>jeffm</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mkwst</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1852385</commentid>
    <comment_count>0</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-17 11:19:45 -0700</bug_when>
    <thetext>WKBundlePageUIClient console message support should include source URL, column number, and console messages with arguments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852386</commentid>
    <comment_count>1</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-17 11:20:43 -0700</bug_when>
    <thetext>rdar://90439983</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852460</commentid>
    <comment_count>2</comment_count>
      <attachid>455016</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-17 13:32:05 -0700</bug_when>
    <thetext>Created attachment 455016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852588</commentid>
    <comment_count>3</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-17 18:36:12 -0700</bug_when>
    <thetext>It appears this change inserts an extra space in console messages, which breaks test expectations. For example:

-CONSOLE MESSAGE: This test passes if it does not crash.
+CONSOLE MESSAGE:  This test passes if it does not crash.

I&apos;ll fix this before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852590</commentid>
    <comment_count>4</comment_count>
      <attachid>455056</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-17 18:39:16 -0700</bug_when>
    <thetext>Created attachment 455056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852604</commentid>
    <comment_count>5</comment_count>
      <attachid>455063</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-17 19:54:36 -0700</bug_when>
    <thetext>Created attachment 455063
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852736</commentid>
    <comment_count>6</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-18 09:19:48 -0700</bug_when>
    <thetext>Not surprisingly, now that we include console message arguments, some existing test expectations are now incorrect. For example:

-CONSOLE MESSAGE: [loadCrossOriginImage]
+CONSOLE MESSAGE: [loadCrossOriginImage]   trying http://localhost:8000/webgl/resources/webgl_test_files/resources/opengl_logo.jpg

Also, I think the fact that we always call addMessageToConsole() now, even if the message is empty, is causing issues. For example, an expected result is:

Test for the Console.messagesCleared event.

and the actual result is:

CONSOLE MESSAGE:
CONSOLE MESSAGE:
Test for the Console.messagesCleared event.

The latter issue is a bug in this patch, but the former issue is trickier. Rather than changing the existing behavior of the willAddMessageToConsole callback, a more conservative change is to only include the message arguments when using the new willAddMessageWithDetailsToConsole callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852776</commentid>
    <comment_count>7</comment_count>
      <attachid>455115</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-18 11:23:50 -0700</bug_when>
    <thetext>Created attachment 455115
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852844</commentid>
    <comment_count>8</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-18 14:54:16 -0700</bug_when>
    <thetext>The win bot passes now, but the console-log-proxy test on the gtk-wk2 bot is failing:

https://ews-build.s3-us-west-2.amazonaws.com/GTK-WK2-Tests-EWS/455115-11928/inspector/console/console-log-proxy-diff.txt

--- /home/ews/worker/GTK-WK2-Tests-EWS/build/layout-test-results/inspector/console/console-log-proxy-expected.txt
+++ /home/ews/worker/GTK-WK2-Tests-EWS/build/layout-test-results/inspector/console/console-log-proxy-actual.txt
@@ -1,14 +1,21 @@
 CONSOLE MESSAGE: [object Proxy]
 CONSOLE MESSAGE: 0
 CONSOLE MESSAGE: [object Proxy]
+CONSOLE MESSAGE: 1
+CONSOLE MESSAGE: 1
+CONSOLE MESSAGE: 1
 CONSOLE MESSAGE: 1
 Tests for the console.log with Proxy objects.

I&apos;ll leave the patch up, I want to see what happens with the mac-wk2 bot, but I definitely seem to have regressed the console-log-proxy, although I have no idea how.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852865</commentid>
    <comment_count>9</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-18 15:33:28 -0700</bug_when>
    <thetext>Tim Hatcher pointed out that the console-log-proxy is likely failing because I&apos;m walking through all the arguments, fetching them, and converting them to strings. This causes the Proxy object to be fetched. I need to be implementing this more like ScriptArguments::getFirstArgumentAsString() and do special Proxy object handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856213</commentid>
    <comment_count>10</comment_count>
      <attachid>456068</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-29 15:18:02 -0700</bug_when>
    <thetext>Created attachment 456068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856241</commentid>
    <comment_count>11</comment_count>
      <attachid>456068</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-29 16:22:49 -0700</bug_when>
    <thetext>Comment on attachment 456068
Patch

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

No test?  BundlePageConsoleMessage uses willAddMessageToConsole, so a similar technique could be used to test this.

&gt; Source/WebCore/ChangeLog:9
&gt; +        Add a new ChromeClient addMessageWithArgumentsToConsole() member function for adding a console
&gt; +        message that includes formatted arguments. I left the existing behavior of addMessageToConsole()

I can&apos;t say I think this is a great API.  I would expect a WKArrayRef rather than a space separated list inside the string with the message, for which you have to assume that none of the arguments have spaces in them if you want to do anything with them.

&gt; Source/WebCore/page/PageConsoleClient.cpp:222
&gt; +        for (size_t i = 1; i &lt; arguments-&gt;argumentCount(); ++i) {

This is basically duplicate code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856390</commentid>
    <comment_count>12</comment_count>
      <attachid>456068</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-30 07:52:18 -0700</bug_when>
    <thetext>Comment on attachment 456068
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        message that includes formatted arguments. I left the existing behavior of addMessageToConsole()
&gt; 
&gt; I can&apos;t say I think this is a great API.  I would expect a WKArrayRef rather than a space separated list inside the string with the message, for which you have to assume that none of the arguments have spaces in them if you want to do anything with them.

Since you mention WKArrayRef, I assume you&apos;re talking about the API exposed to the injected bundle:

typedef void (*WKBundlePageWillAddMessageWithDetailsToConsoleCallback)(WKBundlePageRef page, WKStringRef message, uint32_t lineNumber, uint32_t columnNumber, WKStringRef sourceID, const void *clientInfo);

The intent of this patch was to better support writing client-side tests that typically look for complete messages from JavaScript, but we can still do this while providing more information about the individual parameters as you suggested. I&apos;ll change this.

&gt;&gt; Source/WebCore/page/PageConsoleClient.cpp:222
&gt;&gt; +        for (size_t i = 1; i &lt; arguments-&gt;argumentCount(); ++i) {
&gt; 
&gt; This is basically duplicate code.

Good point, I&apos;ll refactor this logic into a separate function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856391</commentid>
    <comment_count>13</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-30 07:53:48 -0700</bug_when>
    <thetext>I&apos;ll add a test as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857090</commentid>
    <comment_count>14</comment_count>
      <attachid>456304</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-03-31 18:47:55 -0700</bug_when>
    <thetext>Created attachment 456304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857121</commentid>
    <comment_count>15</comment_count>
      <attachid>456304</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-31 20:23:03 -0700</bug_when>
    <thetext>Comment on attachment 456304
Patch

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

&gt; Source/JavaScriptCore/inspector/ScriptArguments.cpp:88
&gt; +bool ScriptArguments::getArgumentsAsStrings(Vector&lt;String&gt;&amp; result) const

Vector&lt;String&gt; ScriptArguments::getArgumentsAsStrings() const
Can return an empty vector.
Or it could return a std::optional&lt;Vector&lt;String&gt;&gt;

&gt; Source/JavaScriptCore/inspector/ScriptArguments.cpp:108
&gt; +        if (JSC::jsDynamicCast&lt;JSC::ProxyObject*&gt;(globalObject-&gt;vm(), value)) {
&gt; +            result.append(&quot;[object Proxy]&quot;_s);
&gt; +            continue;
&gt; +        }
&gt; +
&gt; +        auto scope = DECLARE_CATCH_SCOPE(globalObject-&gt;vm());
&gt; +        result.append(value.toWTFString(globalObject));
&gt; +        scope.clearException();

This is all duplicate code.

&gt; Source/WebCore/page/PageConsoleClient.cpp:130
&gt; +                messageArguments.remove(0);

This is the least efficient place to remove in a Vector.  Let&apos;s not do this.
Could we instead make a createStringArray that takes a Span&lt;String&gt; and pass a Span&lt;String&gt; through addMessageWithArgumentsToConsole containing indices 1 through the end?  We&apos;d have to do a bounds check here.

&gt; Source/WebCore/page/PageConsoleClient.cpp:188
&gt; +        messageText = messageArguments[0];

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857447</commentid>
    <comment_count>16</comment_count>
      <attachid>456419</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-04-01 16:40:04 -0700</bug_when>
    <thetext>Created attachment 456419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857450</commentid>
    <comment_count>17</comment_count>
      <attachid>456419</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-01 16:46:12 -0700</bug_when>
    <thetext>Comment on attachment 456419
Patch

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

&gt; Source/JavaScriptCore/inspector/ScriptArguments.cpp:111
&gt; +    auto* globalObject = this-&gt;globalObject();
&gt; +    if (!globalObject) {
&gt; +        ASSERT_NOT_REACHED();
&gt; +        return std::nullopt;
&gt; +    }

This should be removed.  It&apos;s redundant and unused.

&gt; Source/WebCore/page/PageConsoleClient.cpp:126
&gt; +    ASSERT(!argumentsVector.isEmpty());
&gt; +    if (size_t numberOfAdditionalArguments = argumentsVector.size() - 1)
&gt; +        return argumentsVector.span().subspan(1, numberOfAdditionalArguments);
&gt; +
&gt; +    return { };

I think it would be safer if you checked instead of asserted that the vector is empty.
You also don&apos;t need to check if numberOfAdditionalArguments is nonzero because if it is zero it will just return an empty span.
I also don&apos;t think subspan needs a second argument in this case.

&gt; Source/WebKit/Shared/API/APIArray.cpp:53
&gt; +    return createStringArray(Vector&lt;WTF::String&gt;(strings));

This is an unneeded allocation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857473</commentid>
    <comment_count>18</comment_count>
      <attachid>456419</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2022-04-01 18:23:01 -0700</bug_when>
    <thetext>Comment on attachment 456419
Patch

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

&gt;&gt; Source/JavaScriptCore/inspector/ScriptArguments.cpp:111
&gt;&gt; +    }
&gt; 
&gt; This should be removed.  It&apos;s redundant and unused.

Yup, just missed this during the refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857498</commentid>
    <comment_count>19</comment_count>
      <attachid>456428</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-01 19:24:07 -0700</bug_when>
    <thetext>Created attachment 456428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857499</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-01 19:27:02 -0700</bug_when>
    <thetext>ChangeLog entry in Tools/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857507</commentid>
    <comment_count>21</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-01 20:04:28 -0700</bug_when>
    <thetext>r292254</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857543</commentid>
    <comment_count>22</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-01 23:10:16 -0700</bug_when>
    <thetext>http://trac.webkit.org/r292259</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455016</attachid>
            <date>2022-03-17 13:32:05 -0700</date>
            <delta_ts>2022-03-17 18:39:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238032-20220317133204.patch</filename>
            <type>text/plain</type>
            <size>10946</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU1ZWRhYTc1ZDJiYjY2
MzRhM2Q5OTIyMmFmZGQwOTlmMmU4ODU5OC4uYmUyNDk0ZjAzYmZiNTYyZDMzN2ZlZTczYzU5ZmUx
OTFiOWVmOGJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAzLTE3ICBKZWZm
IE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KKworICAgICAgICBXS0J1bmRsZVBhZ2VVSUNsaWVu
dCBjb25zb2xlIG1lc3NhZ2Ugc3VwcG9ydCBzaG91bGQgaW5jbHVkZSBzb3VyY2UgVVJMLCBjb2x1
bW4gbnVtYmVyLCBhbmQgY29uc29sZSBtZXNzYWdlcyB3aXRoIGFyZ3VtZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MDMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdl
V2l0aFR5cGVBbmRMZXZlbCk6CisgICAgICAgIENvcHkgY29kZSBmcm9tIENvbnNvbGVDbGllbnQ6
OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKCkgdG8gaGFuZGxlIGZvcm1hdHRpbmcg
bWVzc2FnZXMgd2l0aCBhcmd1bWVudHMuCisgICAgICAgIAogMjAyMi0wMy0xNyAgRWxsaWUgRXBz
a2FtcC1IdW50ICA8ZWVwc2thbXBodW50QGFwcGxlLmNvbT4KIAogICAgICAgICBXaGVuIGEg4oCc
YXV0b2ZpbGxlZCBhbmQgb2JzY3VyZWTigJ0gZmllbGQgYmVjb21lcyBlbXB0eSwgdHVybiDigJxh
dXRvZmlsbGVkIGFuZCBvYnNjdXJlZOKAnSBvZmYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjAwMzUxYjhiZWVkN2Yz
ZmQwNzY0NjUzYjk1MmE4ZDMxMGRjNTAwOS4uYTQ0NjBiYjg4MWJlMjQ0ODg3MDZmY2U5NDM1YTJh
ZmU5NzZhOTRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMi0wMy0xNyAgSmVmZiBN
aWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CisKKyAgICAgICAgV0tCdW5kbGVQYWdlVUlDbGllbnQg
Y29uc29sZSBtZXNzYWdlIHN1cHBvcnQgc2hvdWxkIGluY2x1ZGUgc291cmNlIFVSTCwgY29sdW1u
IG51bWJlciwgYW5kIGNvbnNvbGUgbWVzc2FnZXMgd2l0aCBhcmd1bWVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAzMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oOgorICAgICAgICBBZGQgV0tCdW5k
bGVQYWdlVUlDbGllbnRWNSB3aXRoIGEgbmV3IHdpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0Nv
bnNvbGUgY2FsbGJhY2suIFRoaXMgY2FsbGJhY2sgaXMKKyAgICAgICAgc2ltaWxhciB0byB0aGUg
ZXhpc3Rpbmcgd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUgY2FsbGJhY2ssIGJ1dCBpbmNsdWRlcyB0
aGUgY29sdW1uIG51bWJlciBhbmQgc291cmNlCisgICAgICAgIFVSTC4KKyAgICAgICAgCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Ojp3aWxs
QWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIEludm9rZSB0aGUgbmV3IHdpbGxBZGRNZXNz
YWdlV2l0aERldGFpbHNUb0NvbnNvbGUgY2FsbGJhY2sgaWYgdGhlIGNsaWVudCBpbXBsZW1lbnRz
IGl0LCBmYWxsaW5nIGJhY2sKKyAgICAgICAgdG8gd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUuCisg
ICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgQWRkIGEgbmV3IGJ1bmRsZSBwYWdlIFVJIGNsaWVu
dCB2ZXJzaW9uLgorCiAyMDIyLTAzLTE3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI5MTM1Mi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKaW5kZXggYmU1YTcwZGVlZjQ3MzEz
ZmVhYjhhOGY3ZTQwMzRhMDE4NDExNzcwMC4uNjYwN2M0MjU5N2I5Mjk3NjEzYmZjMDNjMzBmMTE2
MDRiNzY5YTEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAK
QEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3Rh
Y2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQpAQCAtMTc1LDcgKzE3Niw3IEBAIHZvaWQg
UGFnZUNvbnNvbGVDbGllbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uCiB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5
cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgU3RyaW5nIG1lc3NhZ2VUZXh0OwotICAgIGJv
b2wgZ290TWVzc2FnZSA9IGFyZ3VtZW50cy0+Z2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5nKG1lc3Nh
Z2VUZXh0KTsKKyAgICBhcmd1bWVudHMtPmdldEZpcnN0QXJndW1lbnRBc1N0cmluZyhtZXNzYWdl
VGV4dCk7CiAKICAgICBhdXRvIG1lc3NhZ2UgPSBtYWtlVW5pcXVlPEluc3BlY3Rvcjo6Q29uc29s
ZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIHR5cGUsIGxldmVsLCBtZXNzYWdl
VGV4dCwgYXJndW1lbnRzLmNvcHlSZWYoKSwgbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAKQEAgLTE4
OCw4ICsxODksMTYgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5k
TGV2ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGwKICAgICBpZiAobV9wYWdlLnVz
ZXNFcGhlbWVyYWxTZXNzaW9uKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChnb3RNZXNz
YWdlKQotICAgICAgICBtX3BhZ2UuY2hyb21lKCkuY2xpZW50KCkuYWRkTWVzc2FnZVRvQ29uc29s
ZShNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBsZXZlbCwgbWVzc2FnZVRleHQsIGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlciwgdXJsKTsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudHMtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGF1dG8qIGdsb2JhbE9iamVj
dCA9IGFyZ3VtZW50cy0+Z2xvYmFsT2JqZWN0KCk7CisgICAgICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX0NBVENIX1NDT1BFKGdsb2JhbE9iamVjdC0+dm0oKSk7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGFyZ3VtZW50cy0+YXJndW1lbnRBdChpKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpKTsK
KyAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKKyAgICB9CisKKyAgICBtX3BhZ2UuY2hy
b21lKCkuY2xpZW50KCkuYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlOjpDb25zb2xl
QVBJLCBsZXZlbCwgYnVpbGRlci50b1N0cmluZygpLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIs
IHVybCk7CiAKICAgICBpZiAobV9wYWdlLnNldHRpbmdzKCkubG9nc1BhZ2VNZXNzYWdlc1RvU3lz
dGVtQ29uc29sZUVuYWJsZWQoKSB8fCBQYWdlQ29uc29sZUNsaWVudDo6c2hvdWxkUHJpbnRFeGNl
cHRpb25zKCkpCiAgICAgICAgIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRo
QXJndW1lbnRzKE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIHR5cGUsIGxldmVsLCBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGFyZ3VtZW50cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlVUlDbGllbnQuaAppbmRleCBmNTY2YmJkNmFkMTllOTY1MmJkZTc0NzhiMGY5MGE4OTBh
NGU0ZTc2Li4zZmNhZDYzOWFmNTFhMWNmOGFjZDNiODM3MWEwYTAyY2JmMDAzYzBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaApAQCAtNTUsNiArNTUsNyBAQCB0eXBl
ZGVmIFdLU3RyaW5nUmVmICgqV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlRXh0cmFTdHlsZVNoZWV0
Q2FsbGJhY2spKGNvbnN0IHZvaQogdHlwZWRlZiBXS1N0cmluZ1JlZiAoKldLQnVuZGxlUGFnZVBs
dWdJbkNyZWF0ZUV4dHJhU2NyaXB0Q2FsbGJhY2spKGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwog
dHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbkNhbGxiYWNr
KShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGlucHV0RWxlbWVu
dCwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVm
IHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFw
cGVhcmFuY2UpKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaW5w
dXRFbGVtZW50LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsK
K3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0Nv
bnNvbGVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2Us
IHVpbnQzMl90IGxpbmVOdW1iZXIsIHVpbnQzMl90IGNvbHVtbk51bWJlciwgV0tTdHJpbmdSZWYg
c291cmNlSUQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCiB0eXBlZGVmIHN0cnVjdCBXS0J1
bmRsZVBhZ2VVSUNsaWVudEJhc2UgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKQEAgLTIxMCwz
ICsyMTEsNDYgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnRWNCB7CiAgICAg
Ly8gVmVyc2lvbiA0LgogICAgIFdLQnVuZGxlUGFnZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9u
Z1Bhc3N3b3JkQXBwZWFyYW5jZSAgICAgICAgICAgZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25n
UGFzc3dvcmRBcHBlYXJhbmNlOwogfSBXS0J1bmRsZVBhZ2VVSUNsaWVudFY0OworCit0eXBlZGVm
IHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudFY1IHsKKyAgICBXS0J1bmRsZVBhZ2VVSUNsaWVu
dEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisK
KyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tCdW5kbGVQYWdlV2lsbEFkZE1lc3NhZ2VUb0NvbnNv
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQWRkTWVzc2FnZVRvQ29uc29s
ZTsKKyAgICBXS0J1bmRsZVBhZ2VXaWxsU2V0U3RhdHVzYmFyVGV4dENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbGxTZXRTdGF0dXNiYXJUZXh0OworICAgIFdLQnVuZGxlUGFn
ZVdpbGxSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
d2lsbFJ1bkphdmFTY3JpcHRBbGVydDsKKyAgICBXS0J1bmRsZVBhZ2VXaWxsUnVuSmF2YVNjcmlw
dENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxSdW5KYXZhU2NyaXB0
Q29uZmlybTsKKyAgICBXS0J1bmRsZVBhZ2VXaWxsUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxSdW5KYXZhU2NyaXB0UHJvbXB0OworICAgIFdL
QnVuZGxlUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tCdW5kbGVQYWdlRGlkU2Ny
b2xsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGlk
U2Nyb2xsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsKKyAgICBXS0J1bmRsZVBhZ2VHZW5lcmF0
ZUZpbGVGb3JVcGxvYWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEdl
bmVyYXRlRmlsZUZvclVwbG9hZDsKKyAgICBXS0J1bmRsZVBhZ2VHZW5lcmF0ZUZpbGVGb3JVcGxv
YWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlRmlsZUZvclVwbG9h
ZDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVudXNlZDI7CisgICAgV0tCdW5kbGVQYWdlU3RhdHVzQmFySXNW
aXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNCYXJJc1Zp
c2libGU7CisgICAgV0tCdW5kbGVQYWdlTWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxlOworICAgIFdLQnVuZGxlUGFn
ZVRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dG9vbGJhcnNBcmVWaXNpYmxlOworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLQnVuZGxlUGFn
ZVJlYWNoZWRBcHBDYWNoZU9yaWdpblF1b3RhQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGE7CisKKyAgICAvLyBWZXJzaW9uIDIu
CisgICAgV0tCdW5kbGVQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWRFeGNlZWREYXRhYmFzZVF1b3RhOworICAgIFdLQnVuZGxlUGFn
ZVBsdWdJbkNyZWF0ZVN0YXJ0TGFiZWxUaXRsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlUGx1Z0luU3RhcnRMYWJlbFRpdGxlOworICAgIFdLQnVuZGxlUGFnZVBsdWdJbkNyZWF0
ZVN0YXJ0TGFiZWxTdWJ0aXRsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgY3JlYXRlUGx1Z0lu
U3RhcnRMYWJlbFN1YnRpdGxlOworICAgIFdLQnVuZGxlUGFnZVBsdWdJbkNyZWF0ZUV4dHJhU3R5
bGVTaGVldENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgY3JlYXRlUGx1Z0luRXh0cmFTdHls
ZVNoZWV0OworICAgIFdLQnVuZGxlUGFnZVBsdWdJbkNyZWF0ZUV4dHJhU2NyaXB0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlUGx1Z0luRXh0cmFTY3JpcHQ7CisKKyAgICAv
LyBWZXJzaW9uIDMuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQzOworICAgIHZvaWQqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51
c2VkNDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDU7CisKKyAgICBXS0J1bmRsZVBhZ2VEaWRDbGlj
a0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENsaWNr
QXV0b0ZpbGxCdXR0b247CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgV0tCdW5kbGVQYWdlRGlk
UmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlICAgICAgICAgICBkaWRS
ZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2U7CisKKyAgICAvLyBWZXJz
aW9uIDUuCisgICAgV0tCdW5kbGVQYWdlV2lsbEFkZE1lc3NhZ2VXaXRoRGV0YWlsc1RvQ29uc29s
ZUNhbGxiYWNrICAgICAgICAgICAgICB3aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25zb2xl
OworfSBXS0J1bmRsZVBhZ2VVSUNsaWVudFY1OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VVSUNsaWVudC5jcHAKaW5kZXggM2ZmYjgwMzc1ZjI0NzMwNzRmMjc3MzY5NTBhMWUyOGU1ZWEz
ZDEwMy4uYmNiNjRkNTczMGY3M2Y4ZTgwYjRhODk0MGIyZWU4ZTM0ZmNhZDQzOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCkBAIC00Myw4ICs0MywxMyBAQCBJ
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQoY29u
c3QgV0tCdW5kbGVQYWdlVUlDbGllbgogICAgIGluaXRpYWxpemUoY2xpZW50KTsKIH0KIAotdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6d2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUoV2Vi
UGFnZSogcGFnZSwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIC8qY29sdW1uTnVtYmVyKi8sIGNv
bnN0IFN0cmluZyYgLypzb3VyY2VJRCovKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVu
dDo6d2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUoV2ViUGFnZSogcGFnZSwgTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKIHsKKyAgICBp
ZiAobV9jbGllbnQud2lsbEFkZE1lc3NhZ2VXaXRoRGV0YWlsc1RvQ29uc29sZSkgeworICAgICAg
ICBtX2NsaWVudC53aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25zb2xlKHRvQVBJKHBhZ2Up
LCB0b0FQSShtZXNzYWdlLmltcGwoKSksIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgdG9BUEko
c291cmNlSUQuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGlmIChtX2NsaWVudC53aWxsQWRkTWVzc2FnZVRvQ29uc29sZSkK
ICAgICAgICAgbV9jbGllbnQud2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUodG9BUEkocGFnZSksIHRv
QVBJKG1lc3NhZ2UuaW1wbCgpKSwgbGluZU51bWJlciwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKaW5kZXggMTMyZTk0
YTI4Y2FhMGNkN2QwOWYyODEwMDQ1ODUwMGI5Yjc4OGUyMy4uOGFmOTliZDQyZjhmZjFiOWI2NTU5
MDEwZmQzMzIyZjkyODZjM2E1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xp
ZW50LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBPYmplY3Q7CiAK
IHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VVSUNsaWVudEJhc2U+
IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlVUlDbGllbnRWMCwgV0tCdW5k
bGVQYWdlVUlDbGllbnRWMSwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMiwgV0tCdW5kbGVQYWdlVUlD
bGllbnRWMywgV0tCdW5kbGVQYWdlVUlDbGllbnRWND4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBz
dGQ6OnR1cGxlPFdLQnVuZGxlUGFnZVVJQ2xpZW50VjAsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjEs
IFdLQnVuZGxlUGFnZVVJQ2xpZW50VjIsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjMsIFdLQnVuZGxl
UGFnZVVJQ2xpZW50VjQsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjU+IFZlcnNpb25zOwogfTsKIH0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455056</attachid>
            <date>2022-03-17 18:39:16 -0700</date>
            <delta_ts>2022-03-17 19:54:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238032-20220317183916.patch</filename>
            <type>text/plain</type>
            <size>10967</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU1ZWRhYTc1ZDJiYjY2
MzRhM2Q5OTIyMmFmZGQwOTlmMmU4ODU5OC4uYmUyNDk0ZjAzYmZiNTYyZDMzN2ZlZTczYzU5ZmUx
OTFiOWVmOGJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAzLTE3ICBKZWZm
IE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KKworICAgICAgICBXS0J1bmRsZVBhZ2VVSUNsaWVu
dCBjb25zb2xlIG1lc3NhZ2Ugc3VwcG9ydCBzaG91bGQgaW5jbHVkZSBzb3VyY2UgVVJMLCBjb2x1
bW4gbnVtYmVyLCBhbmQgY29uc29sZSBtZXNzYWdlcyB3aXRoIGFyZ3VtZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MDMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdl
V2l0aFR5cGVBbmRMZXZlbCk6CisgICAgICAgIENvcHkgY29kZSBmcm9tIENvbnNvbGVDbGllbnQ6
OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKCkgdG8gaGFuZGxlIGZvcm1hdHRpbmcg
bWVzc2FnZXMgd2l0aCBhcmd1bWVudHMuCisgICAgICAgIAogMjAyMi0wMy0xNyAgRWxsaWUgRXBz
a2FtcC1IdW50ICA8ZWVwc2thbXBodW50QGFwcGxlLmNvbT4KIAogICAgICAgICBXaGVuIGEg4oCc
YXV0b2ZpbGxlZCBhbmQgb2JzY3VyZWTigJ0gZmllbGQgYmVjb21lcyBlbXB0eSwgdHVybiDigJxh
dXRvZmlsbGVkIGFuZCBvYnNjdXJlZOKAnSBvZmYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjAwMzUxYjhiZWVkN2Yz
ZmQwNzY0NjUzYjk1MmE4ZDMxMGRjNTAwOS4uYTQ0NjBiYjg4MWJlMjQ0ODg3MDZmY2U5NDM1YTJh
ZmU5NzZhOTRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMi0wMy0xNyAgSmVmZiBN
aWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CisKKyAgICAgICAgV0tCdW5kbGVQYWdlVUlDbGllbnQg
Y29uc29sZSBtZXNzYWdlIHN1cHBvcnQgc2hvdWxkIGluY2x1ZGUgc291cmNlIFVSTCwgY29sdW1u
IG51bWJlciwgYW5kIGNvbnNvbGUgbWVzc2FnZXMgd2l0aCBhcmd1bWVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAzMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oOgorICAgICAgICBBZGQgV0tCdW5k
bGVQYWdlVUlDbGllbnRWNSB3aXRoIGEgbmV3IHdpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0Nv
bnNvbGUgY2FsbGJhY2suIFRoaXMgY2FsbGJhY2sgaXMKKyAgICAgICAgc2ltaWxhciB0byB0aGUg
ZXhpc3Rpbmcgd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUgY2FsbGJhY2ssIGJ1dCBpbmNsdWRlcyB0
aGUgY29sdW1uIG51bWJlciBhbmQgc291cmNlCisgICAgICAgIFVSTC4KKyAgICAgICAgCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Ojp3aWxs
QWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIEludm9rZSB0aGUgbmV3IHdpbGxBZGRNZXNz
YWdlV2l0aERldGFpbHNUb0NvbnNvbGUgY2FsbGJhY2sgaWYgdGhlIGNsaWVudCBpbXBsZW1lbnRz
IGl0LCBmYWxsaW5nIGJhY2sKKyAgICAgICAgdG8gd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUuCisg
ICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgQWRkIGEgbmV3IGJ1bmRsZSBwYWdlIFVJIGNsaWVu
dCB2ZXJzaW9uLgorCiAyMDIyLTAzLTE3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI5MTM1Mi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKaW5kZXggYmU1YTcwZGVlZjQ3MzEz
ZmVhYjhhOGY3ZTQwMzRhMDE4NDExNzcwMC4uNWE5YzRmYzM3N2UwNWJlMDcxOWFmNzkwYmJkZTI4
MzI2MWI4ODMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAK
QEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3Rh
Y2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQpAQCAtMTc1LDcgKzE3Niw3IEBAIHZvaWQg
UGFnZUNvbnNvbGVDbGllbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uCiB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5
cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgU3RyaW5nIG1lc3NhZ2VUZXh0OwotICAgIGJv
b2wgZ290TWVzc2FnZSA9IGFyZ3VtZW50cy0+Z2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5nKG1lc3Nh
Z2VUZXh0KTsKKyAgICBhcmd1bWVudHMtPmdldEZpcnN0QXJndW1lbnRBc1N0cmluZyhtZXNzYWdl
VGV4dCk7CiAKICAgICBhdXRvIG1lc3NhZ2UgPSBtYWtlVW5pcXVlPEluc3BlY3Rvcjo6Q29uc29s
ZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIHR5cGUsIGxldmVsLCBtZXNzYWdl
VGV4dCwgYXJndW1lbnRzLmNvcHlSZWYoKSwgbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAKQEAgLTE4
OCw4ICsxODksMTcgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5k
TGV2ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGwKICAgICBpZiAobV9wYWdlLnVz
ZXNFcGhlbWVyYWxTZXNzaW9uKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChnb3RNZXNz
YWdlKQotICAgICAgICBtX3BhZ2UuY2hyb21lKCkuY2xpZW50KCkuYWRkTWVzc2FnZVRvQ29uc29s
ZShNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBsZXZlbCwgbWVzc2FnZVRleHQsIGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlciwgdXJsKTsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudHMtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7
CisgICAgICAgIGlmICghaSkKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAg
ICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGFyZ3VtZW50cy0+Z2xvYmFsT2JqZWN0KCk7CisgICAg
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKGdsb2JhbE9iamVjdC0+dm0oKSk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFyZ3VtZW50cy0+YXJndW1lbnRBdChpKS50b1dURlN0
cmluZyhnbG9iYWxPYmplY3QpKTsKKyAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKKyAg
ICB9CisKKyAgICBtX3BhZ2UuY2hyb21lKCkuY2xpZW50KCkuYWRkTWVzc2FnZVRvQ29uc29sZShN
ZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBsZXZlbCwgYnVpbGRlci50b1N0cmluZygpLCBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXIsIHVybCk7CiAKICAgICBpZiAobV9wYWdlLnNldHRpbmdzKCku
bG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSB8fCBQYWdlQ29uc29sZUNs
aWVudDo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpCiAgICAgICAgIENvbnNvbGVDbGllbnQ6OnBy
aW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEks
IHR5cGUsIGxldmVsLCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGFyZ3VtZW50cykpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaAppbmRleCBmNTY2YmJkNmFkMTll
OTY1MmJkZTc0NzhiMGY5MGE4OTBhNGU0ZTc2Li4zZmNhZDYzOWFmNTFhMWNmOGFjZDNiODM3MWEw
YTAyY2JmMDAzYzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaApA
QCAtNTUsNiArNTUsNyBAQCB0eXBlZGVmIFdLU3RyaW5nUmVmICgqV0tCdW5kbGVQYWdlUGx1Z0lu
Q3JlYXRlRXh0cmFTdHlsZVNoZWV0Q2FsbGJhY2spKGNvbnN0IHZvaQogdHlwZWRlZiBXS1N0cmlu
Z1JlZiAoKldLQnVuZGxlUGFnZVBsdWdJbkNyZWF0ZUV4dHJhU2NyaXB0Q2FsbGJhY2spKGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkQ2xpY2tB
dXRvRmlsbEJ1dHRvbkNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2Rl
SGFuZGxlUmVmIGlucHV0RWxlbWVudCwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZXNpZ25JbnB1dEVs
ZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2UpKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1
bmRsZU5vZGVIYW5kbGVSZWYgaW5wdXRFbGVtZW50LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxBZGRN
ZXNzYWdlV2l0aERldGFpbHNUb0NvbnNvbGVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLU3RyaW5nUmVmIG1lc3NhZ2UsIHVpbnQzMl90IGxpbmVOdW1iZXIsIHVpbnQzMl90IGNvbHVt
bk51bWJlciwgV0tTdHJpbmdSZWYgc291cmNlSUQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwog
CiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudEJhc2UgewogICAgIGludCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmVyc2lvbjsKQEAgLTIxMCwzICsyMTEsNDYgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQ
YWdlVUlDbGllbnRWNCB7CiAgICAgLy8gVmVyc2lvbiA0LgogICAgIFdLQnVuZGxlUGFnZURpZFJl
c2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZSAgICAgICAgICAgZGlkUmVz
aWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlOwogfSBXS0J1bmRsZVBhZ2VV
SUNsaWVudFY0OworCit0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudFY1IHsKKyAg
ICBXS0J1bmRsZVBhZ2VVSUNsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tCdW5kbGVQYWdl
V2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICB3
aWxsQWRkTWVzc2FnZVRvQ29uc29sZTsKKyAgICBXS0J1bmRsZVBhZ2VXaWxsU2V0U3RhdHVzYmFy
VGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxTZXRTdGF0dXNiYXJU
ZXh0OworICAgIFdLQnVuZGxlUGFnZVdpbGxSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2lsbFJ1bkphdmFTY3JpcHRBbGVydDsKKyAgICBXS0J1bmRs
ZVBhZ2VXaWxsUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgIHdpbGxSdW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICBXS0J1bmRsZVBhZ2VXaWxsUnVuSmF2
YVNjcmlwdFByb21wdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxSdW5KYXZh
U2NyaXB0UHJvbXB0OworICAgIFdLQnVuZGxlUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7Cisg
ICAgV0tCdW5kbGVQYWdlRGlkU2Nyb2xsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsKKyAg
ICBXS0J1bmRsZVBhZ2VHZW5lcmF0ZUZpbGVGb3JVcGxvYWRDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEdlbmVyYXRlRmlsZUZvclVwbG9hZDsKKyAgICBXS0J1bmRsZVBh
Z2VHZW5lcmF0ZUZpbGVGb3JVcGxvYWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdlbmVyYXRlRmlsZUZvclVwbG9hZDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDI7CisgICAgV0tC
dW5kbGVQYWdlU3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0dXNCYXJJc1Zpc2libGU7CisgICAgV0tCdW5kbGVQYWdlTWVudUJhcklzVmlz
aWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNp
YmxlOworICAgIFdLQnVuZGxlUGFnZVRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdG9vbGJhcnNBcmVWaXNpYmxlOworCisgICAgLy8gVmVyc2lv
biAxLgorICAgIFdLQnVuZGxlUGFnZVJlYWNoZWRBcHBDYWNoZU9yaWdpblF1b3RhQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGE7
CisKKyAgICAvLyBWZXJzaW9uIDIuCisgICAgV0tCdW5kbGVQYWdlRXhjZWVkZWREYXRhYmFzZVF1
b3RhQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRFeGNlZWREYXRhYmFzZVF1
b3RhOworICAgIFdLQnVuZGxlUGFnZVBsdWdJbkNyZWF0ZVN0YXJ0TGFiZWxUaXRsZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlUGx1Z0luU3RhcnRMYWJlbFRpdGxlOworICAgIFdL
QnVuZGxlUGFnZVBsdWdJbkNyZWF0ZVN0YXJ0TGFiZWxTdWJ0aXRsZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgY3JlYXRlUGx1Z0luU3RhcnRMYWJlbFN1YnRpdGxlOworICAgIFdLQnVuZGxlUGFn
ZVBsdWdJbkNyZWF0ZUV4dHJhU3R5bGVTaGVldENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlUGx1Z0luRXh0cmFTdHlsZVNoZWV0OworICAgIFdLQnVuZGxlUGFnZVBsdWdJbkNyZWF0
ZUV4dHJhU2NyaXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlUGx1Z0lu
RXh0cmFTY3JpcHQ7CisKKyAgICAvLyBWZXJzaW9uIDMuCisgICAgdm9pZCogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQz
OworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW51c2VkNDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDU7CisKKyAg
ICBXS0J1bmRsZVBhZ2VEaWRDbGlja0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpZENsaWNrQXV0b0ZpbGxCdXR0b247CisKKyAgICAvLyBWZXJzaW9uIDQu
CisgICAgV0tCdW5kbGVQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBl
YXJhbmNlICAgICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVh
cmFuY2U7CisKKyAgICAvLyBWZXJzaW9uIDUuCisgICAgV0tCdW5kbGVQYWdlV2lsbEFkZE1lc3Nh
Z2VXaXRoRGV0YWlsc1RvQ29uc29sZUNhbGxiYWNrICAgICAgICAgICAgICB3aWxsQWRkTWVzc2Fn
ZVdpdGhEZXRhaWxzVG9Db25zb2xlOworfSBXS0J1bmRsZVBhZ2VVSUNsaWVudFY1OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZVVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKaW5kZXggM2ZmYjgwMzc1ZjI0NzMw
NzRmMjc3MzY5NTBhMWUyOGU1ZWEzZDEwMy4uYmNiNjRkNTczMGY3M2Y4ZTgwYjRhODk0MGIyZWU4
ZTM0ZmNhZDQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3Bw
CkBAIC00Myw4ICs0MywxMyBAQCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6SW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQoY29uc3QgV0tCdW5kbGVQYWdlVUlDbGllbgogICAgIGluaXRpYWxp
emUoY2xpZW50KTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6d2lsbEFk
ZE1lc3NhZ2VUb0NvbnNvbGUoV2ViUGFnZSogcGFnZSwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVk
IC8qY29sdW1uTnVtYmVyKi8sIGNvbnN0IFN0cmluZyYgLypzb3VyY2VJRCovKQordm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6d2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUoV2ViUGFnZSog
cGFnZSwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VJRCkKIHsKKyAgICBpZiAobV9jbGllbnQud2lsbEFkZE1lc3NhZ2VXaXRoRGV0YWls
c1RvQ29uc29sZSkgeworICAgICAgICBtX2NsaWVudC53aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxz
VG9Db25zb2xlKHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlciwgdG9BUEkoc291cmNlSUQuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGll
bnRJbmZvKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChtX2NsaWVudC53aWxs
QWRkTWVzc2FnZVRvQ29uc29sZSkKICAgICAgICAgbV9jbGllbnQud2lsbEFkZE1lc3NhZ2VUb0Nv
bnNvbGUodG9BUEkocGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgbGluZU51bWJlciwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJ
Q2xpZW50LmgKaW5kZXggMTMyZTk0YTI4Y2FhMGNkN2QwOWYyODEwMDQ1ODUwMGI5Yjc4OGUyMy4u
OGFmOTliZDQyZjhmZjFiOWI2NTU5MDEwZmQzMzIyZjkyODZjM2E1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJ
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEFQ
SSB7CiBjbGFzcyBPYmplY3Q7CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1
bmRsZVBhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQ
YWdlVUlDbGllbnRWMCwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMSwgV0tCdW5kbGVQYWdlVUlDbGll
bnRWMiwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMywgV0tCdW5kbGVQYWdlVUlDbGllbnRWND4gVmVy
c2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZVVJQ2xpZW50VjAsIFdL
QnVuZGxlUGFnZVVJQ2xpZW50VjEsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjIsIFdLQnVuZGxlUGFn
ZVVJQ2xpZW50VjMsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjQsIFdLQnVuZGxlUGFnZVVJQ2xpZW50
VjU+IFZlcnNpb25zOwogfTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455063</attachid>
            <date>2022-03-17 19:54:36 -0700</date>
            <delta_ts>2022-03-18 09:26:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238032-20220317195435.patch</filename>
            <type>text/plain</type>
            <size>10966</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU1ZWRhYTc1ZDJiYjY2
MzRhM2Q5OTIyMmFmZGQwOTlmMmU4ODU5OC4uYmUyNDk0ZjAzYmZiNTYyZDMzN2ZlZTczYzU5ZmUx
OTFiOWVmOGJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAzLTE3ICBKZWZm
IE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KKworICAgICAgICBXS0J1bmRsZVBhZ2VVSUNsaWVu
dCBjb25zb2xlIG1lc3NhZ2Ugc3VwcG9ydCBzaG91bGQgaW5jbHVkZSBzb3VyY2UgVVJMLCBjb2x1
bW4gbnVtYmVyLCBhbmQgY29uc29sZSBtZXNzYWdlcyB3aXRoIGFyZ3VtZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MDMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdl
V2l0aFR5cGVBbmRMZXZlbCk6CisgICAgICAgIENvcHkgY29kZSBmcm9tIENvbnNvbGVDbGllbnQ6
OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKCkgdG8gaGFuZGxlIGZvcm1hdHRpbmcg
bWVzc2FnZXMgd2l0aCBhcmd1bWVudHMuCisgICAgICAgIAogMjAyMi0wMy0xNyAgRWxsaWUgRXBz
a2FtcC1IdW50ICA8ZWVwc2thbXBodW50QGFwcGxlLmNvbT4KIAogICAgICAgICBXaGVuIGEg4oCc
YXV0b2ZpbGxlZCBhbmQgb2JzY3VyZWTigJ0gZmllbGQgYmVjb21lcyBlbXB0eSwgdHVybiDigJxh
dXRvZmlsbGVkIGFuZCBvYnNjdXJlZOKAnSBvZmYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjAwMzUxYjhiZWVkN2Yz
ZmQwNzY0NjUzYjk1MmE4ZDMxMGRjNTAwOS4uYTQ0NjBiYjg4MWJlMjQ0ODg3MDZmY2U5NDM1YTJh
ZmU5NzZhOTRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMi0wMy0xNyAgSmVmZiBN
aWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CisKKyAgICAgICAgV0tCdW5kbGVQYWdlVUlDbGllbnQg
Y29uc29sZSBtZXNzYWdlIHN1cHBvcnQgc2hvdWxkIGluY2x1ZGUgc291cmNlIFVSTCwgY29sdW1u
IG51bWJlciwgYW5kIGNvbnNvbGUgbWVzc2FnZXMgd2l0aCBhcmd1bWVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAzMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oOgorICAgICAgICBBZGQgV0tCdW5k
bGVQYWdlVUlDbGllbnRWNSB3aXRoIGEgbmV3IHdpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0Nv
bnNvbGUgY2FsbGJhY2suIFRoaXMgY2FsbGJhY2sgaXMKKyAgICAgICAgc2ltaWxhciB0byB0aGUg
ZXhpc3Rpbmcgd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUgY2FsbGJhY2ssIGJ1dCBpbmNsdWRlcyB0
aGUgY29sdW1uIG51bWJlciBhbmQgc291cmNlCisgICAgICAgIFVSTC4KKyAgICAgICAgCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Ojp3aWxs
QWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIEludm9rZSB0aGUgbmV3IHdpbGxBZGRNZXNz
YWdlV2l0aERldGFpbHNUb0NvbnNvbGUgY2FsbGJhY2sgaWYgdGhlIGNsaWVudCBpbXBsZW1lbnRz
IGl0LCBmYWxsaW5nIGJhY2sKKyAgICAgICAgdG8gd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUuCisg
ICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgQWRkIGEgbmV3IGJ1bmRsZSBwYWdlIFVJIGNsaWVu
dCB2ZXJzaW9uLgorCiAyMDIyLTAzLTE3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI5MTM1Mi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKaW5kZXggYmU1YTcwZGVlZjQ3MzEz
ZmVhYjhhOGY3ZTQwMzRhMDE4NDExNzcwMC4uODMxODBlOTY0NmRiZDM1MzU1NjY1MTc5Zjg1MjEy
MzVkNzU3ZDIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAK
QEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3Rh
Y2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQpAQCAtMTc1LDcgKzE3Niw3IEBAIHZvaWQg
UGFnZUNvbnNvbGVDbGllbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uCiB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5
cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4mJiBhcmd1bWVudHMpCiB7CiAgICAgU3RyaW5nIG1lc3NhZ2VUZXh0OwotICAgIGJv
b2wgZ290TWVzc2FnZSA9IGFyZ3VtZW50cy0+Z2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5nKG1lc3Nh
Z2VUZXh0KTsKKyAgICBhcmd1bWVudHMtPmdldEZpcnN0QXJndW1lbnRBc1N0cmluZyhtZXNzYWdl
VGV4dCk7CiAKICAgICBhdXRvIG1lc3NhZ2UgPSBtYWtlVW5pcXVlPEluc3BlY3Rvcjo6Q29uc29s
ZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIHR5cGUsIGxldmVsLCBtZXNzYWdl
VGV4dCwgYXJndW1lbnRzLmNvcHlSZWYoKSwgbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAKQEAgLTE4
OCw4ICsxODksMTcgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5k
TGV2ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGwKICAgICBpZiAobV9wYWdlLnVz
ZXNFcGhlbWVyYWxTZXNzaW9uKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChnb3RNZXNz
YWdlKQotICAgICAgICBtX3BhZ2UuY2hyb21lKCkuY2xpZW50KCkuYWRkTWVzc2FnZVRvQ29uc29s
ZShNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBsZXZlbCwgbWVzc2FnZVRleHQsIGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlciwgdXJsKTsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudHMtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7
CisgICAgICAgIGlmIChpKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAg
ICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gYXJndW1lbnRzLT5nbG9iYWxPYmplY3QoKTsKKyAgICAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXJndW1lbnRzLT5hcmd1bWVudEF0KGkpLnRvV1RGU3Ry
aW5nKGdsb2JhbE9iamVjdCkpOworICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOworICAg
IH0KKworICAgIG1fcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGRNZXNzYWdlVG9Db25zb2xlKE1l
c3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIGxldmVsLCBidWlsZGVyLnRvU3RyaW5nKCksIGxpbmVO
dW1iZXIsIGNvbHVtbk51bWJlciwgdXJsKTsKIAogICAgIGlmIChtX3BhZ2Uuc2V0dGluZ3MoKS5s
b2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpIHx8IFBhZ2VDb25zb2xlQ2xp
ZW50OjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkKICAgICAgICAgQ29uc29sZUNsaWVudDo6cHJp
bnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwg
dHlwZSwgbGV2ZWwsIGxleGljYWxHbG9iYWxPYmplY3QsIFdURk1vdmUoYXJndW1lbnRzKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oCmluZGV4IGY1NjZiYmQ2YWQxOWU5
NjUyYmRlNzQ3OGIwZjkwYTg5MGE0ZTRlNzYuLjNmY2FkNjM5YWY1MWExY2Y4YWNkM2I4MzcxYTBh
MDJjYmYwMDNjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oCkBA
IC01NSw2ICs1NSw3IEBAIHR5cGVkZWYgV0tTdHJpbmdSZWYgKCpXS0J1bmRsZVBhZ2VQbHVnSW5D
cmVhdGVFeHRyYVN0eWxlU2hlZXRDYWxsYmFjaykoY29uc3Qgdm9pCiB0eXBlZGVmIFdLU3RyaW5n
UmVmICgqV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlRXh0cmFTY3JpcHRDYWxsYmFjaykoY29uc3Qg
dm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRDbGlja0F1
dG9GaWxsQnV0dG9uQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVI
YW5kbGVSZWYgaW5wdXRFbGVtZW50LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJlc2lnbklucHV0RWxl
bWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZSkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlTm9kZUhhbmRsZVJlZiBpbnB1dEVsZW1lbnQsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbEFkZE1l
c3NhZ2VXaXRoRGV0YWlsc1RvQ29uc29sZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tTdHJpbmdSZWYgbWVzc2FnZSwgdWludDMyX3QgbGluZU51bWJlciwgdWludDMyX3QgY29sdW1u
TnVtYmVyLCBXS1N0cmluZ1JlZiBzb3VyY2VJRCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAK
IHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZSB7CiAgICAgaW50ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJzaW9uOwpAQCAtMjEwLDMgKzIxMSw0NiBAQCB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBh
Z2VVSUNsaWVudFY0IHsKICAgICAvLyBWZXJzaW9uIDQuCiAgICAgV0tCdW5kbGVQYWdlRGlkUmVz
aWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlICAgICAgICAgICBkaWRSZXNp
Z25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2U7CiB9IFdLQnVuZGxlUGFnZVVJ
Q2xpZW50VjQ7CisKK3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50VjUgeworICAg
IFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS0J1bmRsZVBhZ2VX
aWxsQWRkTWVzc2FnZVRvQ29uc29sZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIHdp
bGxBZGRNZXNzYWdlVG9Db25zb2xlOworICAgIFdLQnVuZGxlUGFnZVdpbGxTZXRTdGF0dXNiYXJU
ZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFNldFN0YXR1c2JhclRl
eHQ7CisgICAgV0tCdW5kbGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0OworICAgIFdLQnVuZGxl
UGFnZVdpbGxSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgd2lsbFJ1bkphdmFTY3JpcHRDb25maXJtOworICAgIFdLQnVuZGxlUGFnZVdpbGxSdW5KYXZh
U2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFJ1bkphdmFT
Y3JpcHRQcm9tcHQ7CisgICAgV0tCdW5kbGVQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKKyAg
ICBXS0J1bmRsZVBhZ2VEaWRTY3JvbGxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhZ2VEaWRTY3JvbGw7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOworICAg
IFdLQnVuZGxlUGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkR2VuZXJhdGVGaWxlRm9yVXBsb2FkOworICAgIFdLQnVuZGxlUGFn
ZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2VuZXJhdGVGaWxlRm9yVXBsb2FkOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMjsKKyAgICBXS0J1
bmRsZVBhZ2VTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS0J1bmRsZVBhZ2VNZW51QmFySXNWaXNp
YmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2li
bGU7CisgICAgV0tCdW5kbGVQYWdlVG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisKKyAgICAvLyBWZXJzaW9u
IDEuCisgICAgV0tCdW5kbGVQYWdlUmVhY2hlZEFwcENhY2hlT3JpZ2luUXVvdGFDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICBkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YTsK
KworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS0J1bmRsZVBhZ2VFeGNlZWRlZERhdGFiYXNlUXVv
dGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEV4Y2VlZERhdGFiYXNlUXVv
dGE7CisgICAgV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlU3RhcnRMYWJlbFRpdGxlQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVQbHVnSW5TdGFydExhYmVsVGl0bGU7CisgICAgV0tC
dW5kbGVQYWdlUGx1Z0luQ3JlYXRlU3RhcnRMYWJlbFN1YnRpdGxlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICBjcmVhdGVQbHVnSW5TdGFydExhYmVsU3VidGl0bGU7CisgICAgV0tCdW5kbGVQYWdl
UGx1Z0luQ3JlYXRlRXh0cmFTdHlsZVNoZWV0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVQbHVnSW5FeHRyYVN0eWxlU2hlZXQ7CisgICAgV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRl
RXh0cmFTY3JpcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVQbHVnSW5F
eHRyYVNjcmlwdDsKKworICAgIC8vIFZlcnNpb24gMy4KKyAgICB2b2lkKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDM7
CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnVzZWQ0OworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkNTsKKworICAg
IFdLQnVuZGxlUGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbjsKKworICAgIC8vIFZlcnNpb24gNC4K
KyAgICBXS0J1bmRsZVBhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVh
cmFuY2UgICAgICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFy
YW5jZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS0J1bmRsZVBhZ2VXaWxsQWRkTWVzc2Fn
ZVdpdGhEZXRhaWxzVG9Db25zb2xlQ2FsbGJhY2sgICAgICAgICAgICAgIHdpbGxBZGRNZXNzYWdl
V2l0aERldGFpbHNUb0NvbnNvbGU7Cit9IFdLQnVuZGxlUGFnZVVJQ2xpZW50VjU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcAppbmRleCAzZmZiODAzNzVmMjQ3MzA3
NGYyNzczNjk1MGExZTI4ZTVlYTNkMTAzLi5iY2I2NGQ1NzMwZjczZjhlODBiNGE4OTQwYjJlZThl
MzRmY2FkNDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAK
QEAgLTQzLDggKzQzLDEzIEBAIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpJbmplY3RlZEJ1
bmRsZVBhZ2VVSUNsaWVudChjb25zdCBXS0J1bmRsZVBhZ2VVSUNsaWVuCiAgICAgaW5pdGlhbGl6
ZShjbGllbnQpOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Ojp3aWxsQWRk
TWVzc2FnZVRvQ29uc29sZShXZWJQYWdlKiBwYWdlLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQg
Lypjb2x1bW5OdW1iZXIqLywgY29uc3QgU3RyaW5nJiAvKnNvdXJjZUlEKi8pCit2b2lkIEluamVj
dGVkQnVuZGxlUGFnZVVJQ2xpZW50Ojp3aWxsQWRkTWVzc2FnZVRvQ29uc29sZShXZWJQYWdlKiBw
YWdlLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
dW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZUlEKQogeworICAgIGlmIChtX2NsaWVudC53aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxz
VG9Db25zb2xlKSB7CisgICAgICAgIG1fY2xpZW50LndpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNU
b0NvbnNvbGUodG9BUEkocGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyLCB0b0FQSShzb3VyY2VJRC5pbXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVu
dEluZm8pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKG1fY2xpZW50LndpbGxB
ZGRNZXNzYWdlVG9Db25zb2xlKQogICAgICAgICBtX2NsaWVudC53aWxsQWRkTWVzc2FnZVRvQ29u
c29sZSh0b0FQSShwYWdlKSwgdG9BUEkobWVzc2FnZS5pbXBsKCkpLCBsaW5lTnVtYmVyLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuaAppbmRleCAxMzJlOTRhMjhjYWEwY2Q3ZDA5ZjI4MTAwNDU4NTAwYjliNzg4ZTIzLi44
YWY5OWJkNDJmOGZmMWI5YjY1NTkwMTBmZDMzMjJmOTI4NmMzYTU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgQVBJ
IHsKIGNsYXNzIE9iamVjdDsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQnVu
ZGxlUGFnZVVJQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBh
Z2VVSUNsaWVudFYwLCBXS0J1bmRsZVBhZ2VVSUNsaWVudFYxLCBXS0J1bmRsZVBhZ2VVSUNsaWVu
dFYyLCBXS0J1bmRsZVBhZ2VVSUNsaWVudFYzLCBXS0J1bmRsZVBhZ2VVSUNsaWVudFY0PiBWZXJz
aW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlVUlDbGllbnRWMCwgV0tC
dW5kbGVQYWdlVUlDbGllbnRWMSwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMiwgV0tCdW5kbGVQYWdl
VUlDbGllbnRWMywgV0tCdW5kbGVQYWdlVUlDbGllbnRWNCwgV0tCdW5kbGVQYWdlVUlDbGllbnRW
NT4gVmVyc2lvbnM7CiB9OwogfQogCg==
</data>
<flag name="commit-queue"
          id="482916"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455115</attachid>
            <date>2022-03-18 11:23:50 -0700</date>
            <delta_ts>2022-03-20 08:54:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238032-20220318112350.patch</filename>
            <type>text/plain</type>
            <size>19103</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTgxYjU3MjNlOTllYTZm
Yjg1NjViZGUwZDkzMzkyNjliMzQyNzU1Ni4uZGViMmIwNjlhOThkYTJkZjdiMDg1MWU3ZTg3NzU0
ZTI0OGU4NTYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAzLTE4ICBKZWZm
IE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KKworICAgICAgICBXS0J1bmRsZVBhZ2VVSUNsaWVu
dCBjb25zb2xlIG1lc3NhZ2Ugc3VwcG9ydCBzaG91bGQgaW5jbHVkZSBzb3VyY2UgVVJMLCBjb2x1
bW4gbnVtYmVyLCBhbmQgY29uc29sZSBtZXNzYWdlcyB3aXRoIGFyZ3VtZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MDMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQgYSBuZXcg
Q2hyb21lQ2xpZW50IGFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKCkgbWVtYmVyIGZ1
bmN0aW9uIGZvciBhZGRpbmcgYSBjb25zb2xlCisgICAgICAgIG1lc3NhZ2UgdGhhdCBpbmNsdWRl
cyBmb3JtYXR0ZWQgYXJndW1lbnRzLiBJIGxlZnQgdGhlIGV4aXN0aW5nIGJlaGF2aW9yIG9mIGFk
ZE1lc3NhZ2VUb0NvbnNvbGUoKQorICAgICAgICB1bmNoYW5nZWQgc2luY2UgbGF5b3V0IHRlc3Rz
IGV4cGVjdCB0byBnZXQgdGhlIGNvbnNvbGUgbWVzc2FnZSB3aXRob3V0IHRoZXNlIGFyZ3VtZW50
cy4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgQWRkZWQgYWRk
TWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUoKS4KKworICAgICAgICAqIHBhZ2UvQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VXaXRo
QXJndW1lbnRzVG9Db25zb2xlKToKKyAgICAgICAgQWRkZWQsIHN1YmNsYXNzZXMgY2FuIG9wdGlv
bmFsbHkgb3ZlcnJpZGUgdGhpcy4KKyAgICAgICAgCisgICAgICAgICogcGFnZS9QYWdlQ29uc29s
ZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVz
c2FnZSk6CisgICAgICAgIENvcHkgY29kZSBmcm9tIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29s
ZU1lc3NhZ2VXaXRoQXJndW1lbnRzKCkgdG8gaGFuZGxlIGZvcm1hdHRpbmcgbWVzc2FnZXMgd2l0
aAorICAgICAgICBhcmd1bWVudHMgYW5kIHBhc3MgdGhlIGZvcm1hdHRlZCBtZXNzYWdlIHRvIGFk
ZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKCkuCisKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbCk6CisgICAgICAgIENvcHkg
Y29kZSBmcm9tIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRz
KCkgdG8gaGFuZGxlIGZvcm1hdHRpbmcgbWVzc2FnZXMgd2l0aAorICAgICAgICBhcmd1bWVudHMg
YW5kIHBhc3MgdGhlIGZvcm1hdHRlZCBtZXNzYWdlIHRvIGFkZE1lc3NhZ2VXaXRoQXJndW1lbnRz
VG9Db25zb2xlKCkuCisKIDIwMjItMDMtMTggIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtJRkNdW0ludGVncmF0aW9uXSBSZW5hbWUgSW5saW5lSXRlcmF0b3I6Okxp
bmU6OmNsb3Nlc3RSdW4qIHRvIGNsb3Nlc3RCb3hGb3IqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmNDRhNzY4MjZh
YWI5NzBlZTFmZDIwMWE5NDQwNGE5NzA4NjAxYTEuLjgxOWJmNDdlMzdiOTRmOGVhODRhMjNlYzYw
ZTYzYWJiYTZhNGI0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjItMDMtMTggIEpl
ZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIFdLQnVuZGxlUGFnZVVJQ2xp
ZW50IGNvbnNvbGUgbWVzc2FnZSBzdXBwb3J0IHNob3VsZCBpbmNsdWRlIHNvdXJjZSBVUkwsIGNv
bHVtbiBudW1iZXIsIGFuZCBjb25zb2xlIG1lc3NhZ2VzIHdpdGggYXJndW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgwMzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0FQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Lmg6CisgICAgICAg
IChBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlVUlDbGllbnQ6OndpbGxBZGRNZXNzYWdlV2l0aEFy
Z3VtZW50c1RvQ29uc29sZSk6CisgICAgICAgIEFkZGVkLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oOgorICAgICAgICBB
ZGQgV0tCdW5kbGVQYWdlVUlDbGllbnRWNSB3aXRoIGEgbmV3IHdpbGxBZGRNZXNzYWdlV2l0aERl
dGFpbHNUb0NvbnNvbGUgY2FsbGJhY2suIFRoaXMgY2FsbGJhY2sgaXMKKyAgICAgICAgc2ltaWxh
ciB0byB0aGUgZXhpc3Rpbmcgd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUgY2FsbGJhY2ssIGJ1dCBp
bmNsdWRlcyB0aGUgY29sdW1uIG51bWJlciBhbmQgc291cmNlCisgICAgICAgIFVSTC4gVGhlIG1l
c3NhZ2UgcGFzc2VkIHRvIHRoaXMgY2FsbGJhY2sgd2lsbCBpbmNsdWRlZCBhbnkgYWRkaXRpb25h
bCBhcmd1bWVudHMgYXMgd2VsbC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6d2lsbEFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25z
b2xlKToKKyAgICAgICAgQWRkZWQsIGludm9rZXMgdGhlIG5ldyB3aWxsQWRkTWVzc2FnZVdpdGhE
ZXRhaWxzVG9Db25zb2xlIGNhbGxiYWNrLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oOgorICAgICAgICBBZGQgYSBuZXcg
YnVuZGxlIHBhZ2UgVUkgY2xpZW50IHZlcnNpb24uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6YWRkTWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUpOgorICAgICAgICBB
ZGRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgIEFkZGVkIGFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKCku
CisKIDIwMjItMDMtMTggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWN5Y2xpbmcgYSB3ZWJnbCBjb250ZXh0IHdoZW4gaXQgaGFzIGJlZW4gbG9zdCBh
bmQgcmVzdG9yZWQgY2F1c2VzIGEgY3Jhc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAppbmRleCA5ZGYyMDNlNTU5NDM0N2IzMjY2MTk2MDhlNmM4MjMyMTEyODE3MWI1Li5jYjhiZTNj
NDJlNWM3ZTkzMzE0OWE1ZGIyYTk0NDQ2MTMwZDQ4YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCkBAIC04Myw2ICs4Myw3IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDog
cHVibGljIENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBzZXRSZXNpemFibGUoYm9vbCkgZmluYWwg
eyB9CiAKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYp
IGZpbmFsIHsgfQorICAgIHZvaWQgYWRkTWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUoTWVz
c2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgdW5zaWdu
ZWQsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYsIEZyYW1lJikgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYWQ2MmNiYzZmYmMw
MjZiMmM1N2U5ZTJkYzZhNGViZDMxZDZkYjAxMC4uNzAyY2NlMzViZTRjYzdhNjE4OWVlNjIwMDhh
NmY1MTc3OWI3ZmJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xOTMsNiAr
MTkzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSZXNpemFibGUoYm9vbCkgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShNZXNzYWdlU291
cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51
bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSB7IFVO
VVNFRF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGxpbmVOdW1iZXIpOyBVTlVTRURfUEFS
QU0oY29sdW1uTnVtYmVyKTsgVU5VU0VEX1BBUkFNKHNvdXJjZUlEKTsgfQogCiAgICAgdmlydHVh
bCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpID0gMDsKICAgICB2aXJ0dWFs
IGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
RnJhbWUmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCmlu
ZGV4IGJlNWE3MGRlZWY0NzMxM2ZlYWI4YThmN2U0MDM0YTAxODQxMTc3MDAuLjAxNjRkNTgyNmJh
MDMyYzc1YTVkMWVmYWQ0ZjZhMzc2NmQyYzBmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbnNvbGVDbGllbnQuY3BwCkBAIC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0
Q2FsbFN0YWNrRmFjdG9yeS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZ0lubGlu
ZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKQEAgLTEy
MSwxMiArMTIyLDI4IEBAIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmFkZE1lc3NhZ2Uoc3RkOjp1
bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYKIHsKICAgICBpZiAoIW1fcGFn
ZS51c2VzRXBoZW1lcmFsU2Vzc2lvbigpKSB7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAg
ICAgICBTdHJpbmcgbWVzc2FnZVdpdGhBcmd1bWVudHM7CiAgICAgICAgIGlmIChjb25zb2xlTWVz
c2FnZS0+dHlwZSgpID09IE1lc3NhZ2VUeXBlOjpJbWFnZSkgewogICAgICAgICAgICAgQVNTRVJU
KGNvbnNvbGVNZXNzYWdlLT5hcmd1bWVudHMoKSk7CiAgICAgICAgICAgICBjb25zb2xlTWVzc2Fn
ZS0+YXJndW1lbnRzKCktPmdldEZpcnN0QXJndW1lbnRBc1N0cmluZyhtZXNzYWdlKTsKLSAgICAg
ICAgfSBlbHNlCisKKyAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29uc29sZU1lc3NhZ2UtPmFyZ3VtZW50cygpLT5h
cmd1bWVudENvdW50KCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpKQorICAgICAgICAg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICAgICAgICAgIGF1dG8qIGds
b2JhbE9iamVjdCA9IGNvbnNvbGVNZXNzYWdlLT5hcmd1bWVudHMoKS0+Z2xvYmFsT2JqZWN0KCk7
CisgICAgICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUoZ2xvYmFs
T2JqZWN0LT52bSgpKTsKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChjb25zb2xlTWVz
c2FnZS0+YXJndW1lbnRzKCktPmFyZ3VtZW50QXQoaSkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0
KSk7CisgICAgICAgICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIG1lc3NhZ2VXaXRoQXJndW1lbnRzID0gYnVpbGRlci50b1N0cmluZygp
OworICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbWVzc2FnZSA9IGNvbnNvbGVNZXNzYWdl
LT5tZXNzYWdlKCk7CisgICAgICAgICAgICBtZXNzYWdlV2l0aEFyZ3VtZW50cyA9IG1lc3NhZ2U7
CisgICAgICAgIH0KKwogICAgICAgICBtX3BhZ2UuY2hyb21lKCkuY2xpZW50KCkuYWRkTWVzc2Fn
ZVRvQ29uc29sZShjb25zb2xlTWVzc2FnZS0+c291cmNlKCksIGNvbnNvbGVNZXNzYWdlLT5sZXZl
bCgpLCBtZXNzYWdlLCBjb25zb2xlTWVzc2FnZS0+bGluZSgpLCBjb25zb2xlTWVzc2FnZS0+Y29s
dW1uKCksIGNvbnNvbGVNZXNzYWdlLT51cmwoKSk7CisgICAgICAgIG1fcGFnZS5jaHJvbWUoKS5j
bGllbnQoKS5hZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShjb25zb2xlTWVzc2FnZS0+
c291cmNlKCksIGNvbnNvbGVNZXNzYWdlLT5sZXZlbCgpLCBtZXNzYWdlV2l0aEFyZ3VtZW50cywg
Y29uc29sZU1lc3NhZ2UtPmxpbmUoKSwgY29uc29sZU1lc3NhZ2UtPmNvbHVtbigpLCBjb25zb2xl
TWVzc2FnZS0+dXJsKCkpOwogCiAgICAgICAgIGlmIChVTkxJS0VMWShtX3BhZ2Uuc2V0dGluZ3Mo
KS5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpIHx8IHNob3VsZFByaW50
RXhjZXB0aW9ucygpKSkgewogICAgICAgICAgICAgaWYgKGNvbnNvbGVNZXNzYWdlLT50eXBlKCkg
PT0gTWVzc2FnZVR5cGU6OkltYWdlKSB7CkBAIC0xODgsOSArMjA1LDIyIEBAIHZvaWQgUGFnZUNv
bnNvbGVDbGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1l
c3NhZ2VMZXZlbCBsCiAgICAgaWYgKG1fcGFnZS51c2VzRXBoZW1lcmFsU2Vzc2lvbigpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAoZ290TWVzc2FnZSkKKyAgICBpZiAoZ290TWVzc2FnZSkg
ewogICAgICAgICBtX3BhZ2UuY2hyb21lKCkuY2xpZW50KCkuYWRkTWVzc2FnZVRvQ29uc29sZShN
ZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBsZXZlbCwgbWVzc2FnZVRleHQsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlciwgdXJsKTsKIAorICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Cisg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRzLT5hcmd1bWVudENvdW50KCk7
ICsraSkgeworICAgICAgICAgICAgaWYgKGkpCisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoJyAnKTsKKyAgICAgICAgICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGFyZ3VtZW50cy0+Z2xv
YmFsT2JqZWN0KCk7CisgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09Q
RShnbG9iYWxPYmplY3QtPnZtKCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXJndW1l
bnRzLT5hcmd1bWVudEF0KGkpLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCkpOworICAgICAgICAg
ICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIG1fcGFnZS5j
aHJvbWUoKS5jbGllbnQoKS5hZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShNZXNzYWdl
U291cmNlOjpDb25zb2xlQVBJLCBsZXZlbCwgYnVpbGRlci50b1N0cmluZygpLCBsaW5lTnVtYmVy
LCBjb2x1bW5OdW1iZXIsIHVybCk7CisgICAgfQorCiAgICAgaWYgKG1fcGFnZS5zZXR0aW5ncygp
LmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgfHwgUGFnZUNvbnNvbGVD
bGllbnQ6OnNob3VsZFByaW50RXhjZXB0aW9ucygpKQogICAgICAgICBDb25zb2xlQ2xpZW50Ojpw
cmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJ
LCB0eXBlLCBsZXZlbCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgV1RGTW92ZShhcmd1bWVudHMpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaApp
bmRleCA5NWY0MzgyYjUyYzFhNWY3MDg0OGY5M2MzODk1YjY5NDNlZGFlNzZjLi5jNjU0ZWU2OGY0
NTJhMjQ2NmZlNDMyNDAwYjc5ZWRkZmYwYTZhMzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0FQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9B
UElJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCkBAIC01MSw2ICs1MSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5QYWdlVUlDbGllbnQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCB3aWxs
QWRkTWVzc2FnZVRvQ29uc29sZShXZWJLaXQ6OldlYlBhZ2UqLCBKU0M6Ok1lc3NhZ2VTb3VyY2Us
IEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgc291
cmNlSUQpIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOyBVTlVTRURfUEFSQU0obGluZU51bWJlcik7
IFVOVVNFRF9QQVJBTShjb2x1bW5OdW1iZXIpOyBVTlVTRURfUEFSQU0oc291cmNlSUQpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIHdpbGxBZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShXZWJL
aXQ6OldlYlBhZ2UqLCBKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25z
dCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29s
dW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlSUQpIHsgVU5VU0VEX1BBUkFNKG1l
c3NhZ2UpOyBVTlVTRURfUEFSQU0obGluZU51bWJlcik7IFVOVVNFRF9QQVJBTShjb2x1bW5OdW1i
ZXIpOyBVTlVTRURfUEFSQU0oc291cmNlSUQpOyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRT
dGF0dXNiYXJUZXh0KFdlYktpdDo6V2ViUGFnZSosIGNvbnN0IFdURjo6U3RyaW5nJikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxSdW5KYXZhU2NyaXB0QWxlcnQoV2ViS2l0OjpXZWJQYWdlKiwg
Y29uc3QgV1RGOjpTdHJpbmcmLCBXZWJLaXQ6OldlYkZyYW1lKikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIHdpbGxSdW5KYXZhU2NyaXB0Q29uZmlybShXZWJLaXQ6OldlYlBhZ2UqLCBjb25zdCBXVEY6
OlN0cmluZyYsIFdlYktpdDo6V2ViRnJhbWUqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZVVJQ2xpZW50LmgKaW5kZXggZjU2NmJiZDZhZDE5ZTk2NTJiZGU3NDc4YjBmOTBhODkwYTRl
NGU3Ni4uM2ZjYWQ2MzlhZjUxYTFjZjhhY2QzYjgzNzFhMGEwMmNiZjAwM2MwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50LmgKQEAgLTU1LDYgKzU1LDcgQEAgdHlwZWRl
ZiBXS1N0cmluZ1JlZiAoKldLQnVuZGxlUGFnZVBsdWdJbkNyZWF0ZUV4dHJhU3R5bGVTaGVldENh
bGxiYWNrKShjb25zdCB2b2kKIHR5cGVkZWYgV0tTdHJpbmdSZWYgKCpXS0J1bmRsZVBhZ2VQbHVn
SW5DcmVhdGVFeHRyYVNjcmlwdENhbGxiYWNrKShjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5
cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjayko
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBpbnB1dEVsZW1lbnQs
IFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2
b2lkICgqV0tCdW5kbGVQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBl
YXJhbmNlKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGlucHV0
RWxlbWVudCwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0
eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25z
b2xlQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCB1
aW50MzJfdCBsaW5lTnVtYmVyLCB1aW50MzJfdCBjb2x1bW5OdW1iZXIsIFdLU3RyaW5nUmVmIHNv
dXJjZUlELCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5k
bGVQYWdlVUlDbGllbnRCYXNlIHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC0yMTAsMyAr
MjExLDQ2IEBAIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50VjQgewogICAgIC8v
IFZlcnNpb24gNC4KICAgICBXS0J1bmRsZVBhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQ
YXNzd29yZEFwcGVhcmFuY2UgICAgICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bh
c3N3b3JkQXBwZWFyYW5jZTsKIH0gV0tCdW5kbGVQYWdlVUlDbGllbnRWNDsKKwordHlwZWRlZiBz
dHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnRWNSB7CisgICAgV0tCdW5kbGVQYWdlVUlDbGllbnRC
YXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisg
ICAgLy8gVmVyc2lvbiAwLgorICAgIFdLQnVuZGxlUGFnZVdpbGxBZGRNZXNzYWdlVG9Db25zb2xl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGU7
CisgICAgV0tCdW5kbGVQYWdlV2lsbFNldFN0YXR1c2JhclRleHRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3aWxsU2V0U3RhdHVzYmFyVGV4dDsKKyAgICBXS0J1bmRsZVBhZ2VX
aWxsUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
bGxSdW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tCdW5kbGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRD
b25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB3aWxsUnVuSmF2YVNjcmlwdENv
bmZpcm07CisgICAgV0tCdW5kbGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWxsUnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0J1
bmRsZVBhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLQnVuZGxlUGFnZURpZFNjcm9s
bENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNj
cm9sbDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDE7CisgICAgV0tCdW5kbGVQYWdlR2VuZXJhdGVG
aWxlRm9yVXBsb2FkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRHZW5l
cmF0ZUZpbGVGb3JVcGxvYWQ7CisgICAgV0tCdW5kbGVQYWdlR2VuZXJhdGVGaWxlRm9yVXBsb2Fk
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUZpbGVGb3JVcGxvYWQ7
CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnVzZWQyOworICAgIFdLQnVuZGxlUGFnZVN0YXR1c0JhcklzVmlz
aWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNp
YmxlOworICAgIFdLQnVuZGxlUGFnZU1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWVudUJhcklzVmlzaWJsZTsKKyAgICBXS0J1bmRsZVBhZ2VU
b29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRv
b2xiYXJzQXJlVmlzaWJsZTsKKworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS0J1bmRsZVBhZ2VS
ZWFjaGVkQXBwQ2FjaGVPcmlnaW5RdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgIGRp
ZFJlYWNoQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOworCisgICAgLy8gVmVyc2lvbiAyLgor
ICAgIFdLQnVuZGxlUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGlkRXhjZWVkRGF0YWJhc2VRdW90YTsKKyAgICBXS0J1bmRsZVBhZ2VQ
bHVnSW5DcmVhdGVTdGFydExhYmVsVGl0bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZVBsdWdJblN0YXJ0TGFiZWxUaXRsZTsKKyAgICBXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVT
dGFydExhYmVsU3VidGl0bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgIGNyZWF0ZVBsdWdJblN0
YXJ0TGFiZWxTdWJ0aXRsZTsKKyAgICBXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVFeHRyYVN0eWxl
U2hlZXRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVBsdWdJbkV4dHJhU3R5bGVT
aGVldDsKKyAgICBXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVFeHRyYVNjcmlwdENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVBsdWdJbkV4dHJhU2NyaXB0OworCisgICAgLy8g
VmVyc2lvbiAzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMzsKKyAgICB2b2lkKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNl
ZDQ7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnVzZWQ1OworCisgICAgV0tCdW5kbGVQYWdlRGlkQ2xpY2tB
dXRvRmlsbEJ1dHRvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDbGlja0F1
dG9GaWxsQnV0dG9uOworCisgICAgLy8gVmVyc2lvbiA0LgorICAgIFdLQnVuZGxlUGFnZURpZFJl
c2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZSAgICAgICAgICAgZGlkUmVz
aWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlOworCisgICAgLy8gVmVyc2lv
biA1LgorICAgIFdLQnVuZGxlUGFnZVdpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0NvbnNvbGVD
YWxsYmFjayAgICAgICAgICAgICAgd2lsbEFkZE1lc3NhZ2VXaXRoRGV0YWlsc1RvQ29uc29sZTsK
K30gV0tCdW5kbGVQYWdlVUlDbGllbnRWNTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQuY3BwCmluZGV4IDNmZmI4MDM3NWYyNDczMDc0ZjI3NzM2OTUwYTFlMjhlNWVhM2Qx
MDMuLjkzNjBjNGI1NTI1NWVmNDBjODBkMzNhODYyNTYzMGEyMDVlMWZiY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcApAQCAtNDksNiArNDksMTIgQEAgdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6d2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUoV2Vi
UGFnZSogcGFnZSwgTWVzc2FnZVMKICAgICAgICAgbV9jbGllbnQud2lsbEFkZE1lc3NhZ2VUb0Nv
bnNvbGUodG9BUEkocGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgbGluZU51bWJlciwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNs
aWVudDo6d2lsbEFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKFdlYlBhZ2UqIHBhZ2Us
IE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlSUQpCit7CisgICAgaWYgKG1fY2xpZW50LndpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0Nv
bnNvbGUpCisgICAgICAgIG1fY2xpZW50LndpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0NvbnNv
bGUodG9BUEkocGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgbGluZU51bWJlciwgY29sdW1u
TnVtYmVyLCB0b0FQSShzb3VyY2VJRC5pbXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OworfQorCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Ojp3aWxsU2V0U3RhdHVzYmFy
VGV4dChXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIHN0YXR1c2JhclRleHQpCiB7CiAgICAg
aWYgKG1fY2xpZW50LndpbGxTZXRTdGF0dXNiYXJUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlVUlDbGllbnQuaAppbmRleCAxMzJlOTRhMjhjYWEwY2Q3ZDA5ZjI4MTAwNDU4NTAwYjli
Nzg4ZTIzLi4zOGY3MDJkYjE0ZGYwY2Y4N2UzYmM0OTZlNGMzNzE3MTNhZTJjOTJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1l
c3BhY2UgQVBJIHsKIGNsYXNzIE9iamVjdDsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJh
aXRzPFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxX
S0J1bmRsZVBhZ2VVSUNsaWVudFYwLCBXS0J1bmRsZVBhZ2VVSUNsaWVudFYxLCBXS0J1bmRsZVBh
Z2VVSUNsaWVudFYyLCBXS0J1bmRsZVBhZ2VVSUNsaWVudFYzLCBXS0J1bmRsZVBhZ2VVSUNsaWVu
dFY0PiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlVUlDbGll
bnRWMCwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMSwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMiwgV0tC
dW5kbGVQYWdlVUlDbGllbnRWMywgV0tCdW5kbGVQYWdlVUlDbGllbnRWNCwgV0tCdW5kbGVQYWdl
VUlDbGllbnRWNT4gVmVyc2lvbnM7CiB9OwogfQogCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudChjb25zdCBXS0J1bmRsZVBh
Z2VVSUNsaWVudEJhc2UqKTsKIAogICAgIHZvaWQgd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUoV2Vi
UGFnZSosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlSUQpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEFkZE1lc3NhZ2VXaXRoQXJndW1l
bnRzVG9Db25zb2xlKFdlYlBhZ2UqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbGxTZXRT
dGF0dXNiYXJUZXh0KFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lk
IHdpbGxSdW5KYXZhU2NyaXB0QWxlcnQoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYsIFdlYkZyYW1l
Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aWxsUnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViUGFnZSos
IGNvbnN0IFN0cmluZyYsIFdlYkZyYW1lKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CmluZGV4IDNlMWM5MDUwNWZlYjk2MDU3YzQ4ZmM3ZDEwZTQ0MWEwYjU1M2IxYzkuLjQ3Nzc0YTcy
NWQ1MTc5YWQyNGMzZmRjNGRhYjU1NmMxZmZkMTY2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CkBAIC00MjEsNiArNDIxLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9D
b25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2CiAgICAgbV9wYWdl
LmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS53aWxsQWRkTWVzc2FnZVRvQ29uc29sZSgmbV9wYWdl
LCBzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHNvdXJj
ZUlEKTsKIH0KIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VXaXRoQXJndW1lbnRz
VG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKQoreworICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRs
ZVVJQ2xpZW50KCkud2lsbEFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKCZtX3BhZ2Us
IHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgc291cmNl
SUQpOworfQorCiBib29sIFdlYkNocm9tZUNsaWVudDo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKCkKIHsKICAgICByZXR1cm4gbV9wYWdlLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDI2NTBjMjJjMzRjYWY2OGZhMWU2Y2FjZmE4
ZmIyN2MwNjgxYTYwMTIuLjJlMDg2OTAyZWVlMThlNjRkYWQwYTNlZDBhODdlZjk0ZWVjNGQ4NmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTk5LDYgKzk5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHNldFJlc2l6YWJsZShib29sKSBmaW5hbDsKICAgICAKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0Nv
bnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlSUQpIGZpbmFsOworICAgIHZvaWQgYWRkTWVzc2FnZVdpdGhBcmd1
bWVudHNUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5O
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpIGZpbmFsOwogICAgIAogICAgIGJvb2wgY2Fu
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgZmluYWw7CiAgICAgYm9vbCBydW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSYp
IGZpbmFsOwo=
</data>
<flag name="commit-queue"
          id="482997"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456068</attachid>
            <date>2022-03-29 15:18:02 -0700</date>
            <delta_ts>2022-03-31 18:47:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238032-20220329151801.patch</filename>
            <type>text/plain</type>
            <size>19887</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzUyMjJlN2ZkN2M2NmMw
MWQ5Yzg3ZDc4MTdiNTMzZGMwNjI5NDViNi4uYWQ4MDRlYzNhNDk1NTFiNzRmOTBlMjQ0MmJiMzQ4
YTdlZDAwODc0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIyLTAzLTI5ICBKZWZm
IE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KKworICAgICAgICBXS0J1bmRsZVBhZ2VVSUNsaWVu
dCBjb25zb2xlIG1lc3NhZ2Ugc3VwcG9ydCBzaG91bGQgaW5jbHVkZSBzb3VyY2UgVVJMLCBjb2x1
bW4gbnVtYmVyLCBhbmQgY29uc29sZSBtZXNzYWdlcyB3aXRoIGFyZ3VtZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MDMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQgYSBuZXcg
Q2hyb21lQ2xpZW50IGFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKCkgbWVtYmVyIGZ1
bmN0aW9uIGZvciBhZGRpbmcgYSBjb25zb2xlCisgICAgICAgIG1lc3NhZ2UgdGhhdCBpbmNsdWRl
cyBmb3JtYXR0ZWQgYXJndW1lbnRzLiBJIGxlZnQgdGhlIGV4aXN0aW5nIGJlaGF2aW9yIG9mIGFk
ZE1lc3NhZ2VUb0NvbnNvbGUoKQorICAgICAgICB1bmNoYW5nZWQgc2luY2UgbGF5b3V0IHRlc3Rz
IGV4cGVjdCB0byBnZXQgdGhlIGNvbnNvbGUgbWVzc2FnZSB3aXRob3V0IHRoZXNlIGFyZ3VtZW50
cy4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgQWRkZWQgYWRk
TWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUoKS4KKworICAgICAgICAqIHBhZ2UvQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VXaXRo
QXJndW1lbnRzVG9Db25zb2xlKToKKyAgICAgICAgQWRkZWQsIHN1YmNsYXNzZXMgY2FuIG9wdGlv
bmFsbHkgb3ZlcnJpZGUgdGhpcy4KKyAgICAgICAgCisgICAgICAgICogcGFnZS9QYWdlQ29uc29s
ZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVz
c2FnZSk6CisgICAgICAgIENvcHkgY29kZSBmcm9tIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29s
ZU1lc3NhZ2VXaXRoQXJndW1lbnRzKCkgdG8gaGFuZGxlIGZvcm1hdHRpbmcgbWVzc2FnZXMgd2l0
aAorICAgICAgICBhcmd1bWVudHMgYW5kIHBhc3MgdGhlIGZvcm1hdHRlZCBtZXNzYWdlIHRvIGFk
ZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKCkuIEFzIHdlIGRvIGluCisgICAgICAgIFNj
cmlwdEFyZ3VtZW50czo6Z2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5nKCksIGF2b2lkIHRyaWdnZXJp
bmcgUHJveHkgdHJhcHMgb24gYSBQcm94eSBvYmplY3Qgd2hlbgorICAgICAgICBmb3JtYXR0aW5n
IHRoZSBtZXNzYWdlLgorCisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6bWVz
c2FnZVdpdGhUeXBlQW5kTGV2ZWwpOgorICAgICAgICBDb3B5IGNvZGUgZnJvbSBDb25zb2xlQ2xp
ZW50OjpwcmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cygpIHRvIGhhbmRsZSBmb3JtYXR0
aW5nIG1lc3NhZ2VzIHdpdGgKKyAgICAgICAgYXJndW1lbnRzIGFuZCBwYXNzIHRoZSBmb3JtYXR0
ZWQgbWVzc2FnZSB0byBhZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZSgpLiBBcyB3ZSBk
byBpbgorICAgICAgICBTY3JpcHRBcmd1bWVudHM6OmdldEZpcnN0QXJndW1lbnRBc1N0cmluZygp
LCBhdm9pZCB0cmlnZ2VyaW5nIFByb3h5IHRyYXBzIG9uIGEgUHJveHkgb2JqZWN0IHdoZW4KKyAg
ICAgICAgZm9ybWF0dGluZyB0aGUgbWVzc2FnZS4KKwogMjAyMi0wMy0yOSAgVGltIE5ndXllbiAg
PG50aW1AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBDYW52YXMvQ2FudmFzVGV4dCBzeXN0ZW0g
Y29sb3JzIGZvciA8ZGlhbG9nPiBkZWZhdWx0IHN0eWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjY0ZjYwNTFi
N2UzN2Y5Njg0MjM4MjNjZWFmOWNmOGI4NDlkNmZlNS4uY2NiMTI4ZmFkMGY5ZDAxMzE4NGIxNWJm
YmUzMGYzN2Y2MzdlMDhkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAyMi0wMy0yOSAg
SmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CisKKyAgICAgICAgV0tCdW5kbGVQYWdlVUlD
bGllbnQgY29uc29sZSBtZXNzYWdlIHN1cHBvcnQgc2hvdWxkIGluY2x1ZGUgc291cmNlIFVSTCwg
Y29sdW1uIG51bWJlciwgYW5kIGNvbnNvbGUgbWVzc2FnZXMgd2l0aCBhcmd1bWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAzMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAg
ICAgKEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VVSUNsaWVudDo6d2lsbEFkZE1lc3NhZ2VXaXRo
QXJndW1lbnRzVG9Db25zb2xlKToKKyAgICAgICAgQWRkZWQuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50Lmg6CisgICAgICAg
IEFkZCBXS0J1bmRsZVBhZ2VVSUNsaWVudFY1IHdpdGggYSBuZXcgd2lsbEFkZE1lc3NhZ2VXaXRo
RGV0YWlsc1RvQ29uc29sZSBjYWxsYmFjay4gVGhpcyBjYWxsYmFjayBpcworICAgICAgICBzaW1p
bGFyIHRvIHRoZSBleGlzdGluZyB3aWxsQWRkTWVzc2FnZVRvQ29uc29sZSBjYWxsYmFjaywgYnV0
IGluY2x1ZGVzIHRoZSBjb2x1bW4gbnVtYmVyIGFuZCBzb3VyY2UKKyAgICAgICAgVVJMLiBUaGUg
bWVzc2FnZSBwYXNzZWQgdG8gdGhpcyBjYWxsYmFjayB3aWxsIGluY2x1ZGVkIGFueSBhZGRpdGlv
bmFsIGFyZ3VtZW50cyBhcyB3ZWxsLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Ojp3aWxsQWRkTWVzc2FnZVdpdGhBcmd1bWVudHNUb0Nv
bnNvbGUpOgorICAgICAgICBBZGRlZCwgaW52b2tlcyB0aGUgbmV3IHdpbGxBZGRNZXNzYWdlV2l0
aERldGFpbHNUb0NvbnNvbGUgY2FsbGJhY2suCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgIEFkZCBhIG5l
dyBidW5kbGUgcGFnZSBVSSBjbGllbnQgdmVyc2lvbi4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjphZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZSk6CisgICAgICAg
IEFkZGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgQWRkZWQgYWRkTWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUo
KS4KKwogMjAyMi0wMy0yOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8gaXMgbWlzbGVhZGluZyBhcyBp
dCBpcyBhY3R1YWxseSByZWZlcnJpbmcgdG8gY2FtZXJhIHNvdXJjZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaAppbmRleCA5ZGYyMDNlNTU5NDM0N2IzMjY2MTk2MDhlNmM4MjMyMTEy
ODE3MWI1Li5jYjhiZTNjNDJlNWM3ZTkzMzE0OWE1ZGIyYTk0NDQ2MTMwZDQ4YTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC04Myw2ICs4Myw3IEBAIGNsYXNzIEVtcHR5
Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBzZXRSZXNpemFi
bGUoYm9vbCkgZmluYWwgeyB9CiAKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQorICAgIHZvaWQgYWRkTWVzc2FnZVdpdGhBcmd1bWVu
dHNUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1
bnNpZ25lZCwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogCiAgICAgYm9vbCBj
YW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYsIEZyYW1l
JikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5k
ZXggYWQ2MmNiYzZmYmMwMjZiMmM1N2U5ZTJkYzZhNGViZDMxZDZkYjAxMC4uNzAyY2NlMzViZTRj
YzdhNjE4OWVlNjIwMDhhNmY1MTc3OWI3ZmJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCkBAIC0xOTMsNiArMTkzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSZXNp
emFibGUoYm9vbCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2ln
bmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VJRCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29u
c29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
dW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZUlEKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGxpbmVOdW1i
ZXIpOyBVTlVTRURfUEFSQU0oY29sdW1uTnVtYmVyKTsgVU5VU0VEX1BBUkFNKHNvdXJjZUlEKTsg
fQogCiAgICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgRnJhbWUmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNv
bGVDbGllbnQuY3BwCmluZGV4IGRmZWRhNGRhNWZkNmM1NGI4ZWQ4N2VkY2IzNjc0OWQ4YzgwYTg1
MGUuLmY1ZjU3MGVhM2I4N2ZjMWU3ZDBhMzY0YTg4YmVjYTMxZTZmMWNlOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCkBAIC02Niw2ICs2Niw3IEBACiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1N0cm9uZ0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoT0ZGU0NSRUVO
X0NBTlZBUykKQEAgLTEyMSwxMiArMTIyLDM2IEBAIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmFk
ZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYKIHsK
ICAgICBpZiAoIW1fcGFnZS51c2VzRXBoZW1lcmFsU2Vzc2lvbigpKSB7CiAgICAgICAgIFN0cmlu
ZyBtZXNzYWdlOworICAgICAgICBTdHJpbmcgbWVzc2FnZVdpdGhBcmd1bWVudHM7CiAgICAgICAg
IGlmIChjb25zb2xlTWVzc2FnZS0+dHlwZSgpID09IE1lc3NhZ2VUeXBlOjpJbWFnZSkgewogICAg
ICAgICAgICAgQVNTRVJUKGNvbnNvbGVNZXNzYWdlLT5hcmd1bWVudHMoKSk7CiAgICAgICAgICAg
ICBjb25zb2xlTWVzc2FnZS0+YXJndW1lbnRzKCktPmdldEZpcnN0QXJndW1lbnRBc1N0cmluZyht
ZXNzYWdlKTsKLSAgICAgICAgfSBlbHNlCisKKyAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29uc29sZU1lc3NhZ2Ut
PmFyZ3VtZW50cygpLT5hcmd1bWVudENvdW50KCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlm
IChpKQorICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworCisgICAgICAg
ICAgICAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gY29uc29sZU1lc3NhZ2UtPmFyZ3VtZW50cygp
LT5nbG9iYWxPYmplY3QoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHZhbHVlID0gY29uc29sZU1l
c3NhZ2UtPmFyZ3VtZW50cygpLT5hcmd1bWVudEF0KGkpOworICAgICAgICAgICAgICAgIGlmIChK
U0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpQcm94eU9iamVjdCo+KGdsb2JhbE9iamVjdC0+dm0oKSwg
dmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJbb2JqZWN0IFBy
b3h5XSJfcyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKGds
b2JhbE9iamVjdC0+dm0oKSk7CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodmFsdWUu
dG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KSk7CisgICAgICAgICAgICAgICAgc2NvcGUuY2xlYXJF
eGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWVzc2FnZVdpdGhBcmd1
bWVudHMgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBtZXNzYWdlID0gY29uc29sZU1lc3NhZ2UtPm1lc3NhZ2UoKTsKKyAgICAgICAgICAgIG1lc3Nh
Z2VXaXRoQXJndW1lbnRzID0gbWVzc2FnZTsKKyAgICAgICAgfQorCiAgICAgICAgIG1fcGFnZS5j
aHJvbWUoKS5jbGllbnQoKS5hZGRNZXNzYWdlVG9Db25zb2xlKGNvbnNvbGVNZXNzYWdlLT5zb3Vy
Y2UoKSwgY29uc29sZU1lc3NhZ2UtPmxldmVsKCksIG1lc3NhZ2UsIGNvbnNvbGVNZXNzYWdlLT5s
aW5lKCksIGNvbnNvbGVNZXNzYWdlLT5jb2x1bW4oKSwgY29uc29sZU1lc3NhZ2UtPnVybCgpKTsK
KyAgICAgICAgbV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLmFkZE1lc3NhZ2VXaXRoQXJndW1lbnRz
VG9Db25zb2xlKGNvbnNvbGVNZXNzYWdlLT5zb3VyY2UoKSwgY29uc29sZU1lc3NhZ2UtPmxldmVs
KCksIG1lc3NhZ2VXaXRoQXJndW1lbnRzLCBjb25zb2xlTWVzc2FnZS0+bGluZSgpLCBjb25zb2xl
TWVzc2FnZS0+Y29sdW1uKCksIGNvbnNvbGVNZXNzYWdlLT51cmwoKSk7CiAKICAgICAgICAgaWYg
KFVOTElLRUxZKG1fcGFnZS5zZXR0aW5ncygpLmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNv
bGVFbmFibGVkKCkgfHwgc2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpKSB7CiAgICAgICAgICAgICBp
ZiAoY29uc29sZU1lc3NhZ2UtPnR5cGUoKSA9PSBNZXNzYWdlVHlwZTo6SW1hZ2UpIHsKQEAgLTE4
OCw5ICsyMTMsMzAgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5k
TGV2ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGwKICAgICBpZiAobV9wYWdlLnVz
ZXNFcGhlbWVyYWxTZXNzaW9uKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChnb3RNZXNz
YWdlKQorICAgIGlmIChnb3RNZXNzYWdlKSB7CiAgICAgICAgIG1fcGFnZS5jaHJvbWUoKS5jbGll
bnQoKS5hZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIGxldmVs
LCBtZXNzYWdlVGV4dCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCB1cmwpOwogCisgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobWVzc2FnZVRl
eHQpOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgYXJndW1lbnRzLT5hcmd1bWVu
dENvdW50KCk7ICsraSkgeworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gYXJndW1lbnRzLT5nbG9i
YWxPYmplY3QoKTsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSBhcmd1bWVudHMtPmFyZ3VtZW50
QXQoaSk7CisgICAgICAgICAgICBpZiAoSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6UHJveHlPYmpl
Y3QqPihnbG9iYWxPYmplY3QtPnZtKCksIHZhbHVlKSkgeworICAgICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCJbb2JqZWN0IFByb3h5XSJfcyk7CisgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENI
X1NDT1BFKGdsb2JhbE9iamVjdC0+dm0oKSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh2
YWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpKTsKKyAgICAgICAgICAgIHNjb3BlLmNsZWFy
RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBtX3BhZ2UuY2hyb21lKCkuY2xpZW50
KCkuYWRkTWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZTo6Q29uc29s
ZUFQSSwgbGV2ZWwsIGJ1aWxkZXIudG9TdHJpbmcoKSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVy
LCB1cmwpOworICAgIH0KKwogICAgIGlmIChtX3BhZ2Uuc2V0dGluZ3MoKS5sb2dzUGFnZU1lc3Nh
Z2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpIHx8IFBhZ2VDb25zb2xlQ2xpZW50OjpzaG91bGRQ
cmludEV4Y2VwdGlvbnMoKSkKICAgICAgICAgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVz
c2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgdHlwZSwgbGV2ZWws
IGxleGljYWxHbG9iYWxPYmplY3QsIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0FQSUluamVjdGVk
QnVuZGxlUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0FQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKaW5kZXggOTVmNDM4MmI1
MmMxYTVmNzA4NDhmOTNjMzg5NWI2OTQzZWRhZTc2Yy4uYzY1NGVlNjhmNDUyYTI0NjZmZTQzMjQw
MGI3OWVkZGZmMGE2YTM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5k
bGVQYWdlVUlDbGllbnQuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
UGFnZVVJQ2xpZW50KCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEFkZE1lc3NhZ2VUb0Nv
bnNvbGUoV2ViS2l0OjpXZWJQYWdlKiwgSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VM
ZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVu
c2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHNvdXJjZUlEKSB7IFVOVVNF
RF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGxpbmVOdW1iZXIpOyBVTlVTRURfUEFSQU0o
Y29sdW1uTnVtYmVyKTsgVU5VU0VEX1BBUkFNKHNvdXJjZUlEKTsgfQorICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQWRkTWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUoV2ViS2l0OjpXZWJQYWdlKiwg
SlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29u
c3QgV1RGOjpTdHJpbmcmIHNvdXJjZUlEKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5VU0VE
X1BBUkFNKGxpbmVOdW1iZXIpOyBVTlVTRURfUEFSQU0oY29sdW1uTnVtYmVyKTsgVU5VU0VEX1BB
UkFNKHNvdXJjZUlEKTsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0U3RhdHVzYmFyVGV4dChX
ZWJLaXQ6OldlYlBhZ2UqLCBjb25zdCBXVEY6OlN0cmluZyYpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0KFdlYktpdDo6V2ViUGFnZSosIGNvbnN0IFdURjo6U3Ry
aW5nJiwgV2ViS2l0OjpXZWJGcmFtZSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsUnVuSmF2
YVNjcmlwdENvbmZpcm0oV2ViS2l0OjpXZWJQYWdlKiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJL
aXQ6OldlYkZyYW1lKikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5o
CmluZGV4IGY1NjZiYmQ2YWQxOWU5NjUyYmRlNzQ3OGIwZjkwYTg5MGE0ZTRlNzYuLjNmY2FkNjM5
YWY1MWExY2Y4YWNkM2I4MzcxYTBhMDJjYmYwMDNjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2VVSUNsaWVudC5oCkBAIC01NSw2ICs1NSw3IEBAIHR5cGVkZWYgV0tTdHJpbmdSZWYg
KCpXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVFeHRyYVN0eWxlU2hlZXRDYWxsYmFjaykoY29uc3Qg
dm9pCiB0eXBlZGVmIFdLU3RyaW5nUmVmICgqV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlRXh0cmFT
Y3JpcHRDYWxsYmFjaykoY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpX
S0J1bmRsZVBhZ2VEaWRDbGlja0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaW5wdXRFbGVtZW50LCBXS1R5cGVSZWYqIHVz
ZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxl
UGFnZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZSkoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBpbnB1dEVsZW1lbnQsIFdLVHlw
ZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgq
V0tCdW5kbGVQYWdlV2lsbEFkZE1lc3NhZ2VXaXRoRGV0YWlsc1RvQ29uc29sZUNhbGxiYWNrKShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgdWludDMyX3QgbGluZU51
bWJlciwgdWludDMyX3QgY29sdW1uTnVtYmVyLCBXS1N0cmluZ1JlZiBzb3VyY2VJRCwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50
QmFzZSB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpAQCAtMjEwLDMgKzIxMSw0NiBAQCB0eXBl
ZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudFY0IHsKICAgICAvLyBWZXJzaW9uIDQuCiAg
ICAgV0tCdW5kbGVQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJh
bmNlICAgICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFu
Y2U7CiB9IFdLQnVuZGxlUGFnZVVJQ2xpZW50VjQ7CisKK3R5cGVkZWYgc3RydWN0IFdLQnVuZGxl
UGFnZVVJQ2xpZW50VjUgeworICAgIFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24g
MC4KKyAgICBXS0J1bmRsZVBhZ2VXaWxsQWRkTWVzc2FnZVRvQ29uc29sZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbGxBZGRNZXNzYWdlVG9Db25zb2xlOworICAgIFdLQnVuZGxl
UGFnZVdpbGxTZXRTdGF0dXNiYXJUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lsbFNldFN0YXR1c2JhclRleHQ7CisgICAgV0tCdW5kbGVQYWdlV2lsbFJ1bkphdmFTY3Jp
cHRBbGVydENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsUnVuSmF2YVNjcmlw
dEFsZXJ0OworICAgIFdLQnVuZGxlUGFnZVdpbGxSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFJ1bkphdmFTY3JpcHRDb25maXJtOworICAgIFdL
QnVuZGxlUGFnZVdpbGxSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lsbFJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tCdW5kbGVQYWdlTW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudDsKKyAgICBXS0J1bmRsZVBhZ2VEaWRTY3JvbGxDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEaWRTY3JvbGw7CisgICAgdm9p
ZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnVzZWQxOworICAgIFdLQnVuZGxlUGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkR2VuZXJhdGVGaWxlRm9yVXBs
b2FkOworICAgIFdLQnVuZGxlUGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVGaWxlRm9yVXBsb2FkOworICAgIHZvaWQqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW51c2VkMjsKKyAgICBXS0J1bmRsZVBhZ2VTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS0J1
bmRsZVBhZ2VNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tCdW5kbGVQYWdlVG9vbGJhcnNBcmVWaXNp
YmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2li
bGU7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tCdW5kbGVQYWdlUmVhY2hlZEFwcENhY2hl
T3JpZ2luUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICBkaWRSZWFjaEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS0J1bmRsZVBh
Z2VFeGNlZWRlZERhdGFiYXNlUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRpZEV4Y2VlZERhdGFiYXNlUXVvdGE7CisgICAgV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlU3Rh
cnRMYWJlbFRpdGxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICBjcmVhdGVQbHVnSW5TdGFy
dExhYmVsVGl0bGU7CisgICAgV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlU3RhcnRMYWJlbFN1YnRp
dGxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICBjcmVhdGVQbHVnSW5TdGFydExhYmVsU3VidGl0
bGU7CisgICAgV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlRXh0cmFTdHlsZVNoZWV0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVQbHVnSW5FeHRyYVN0eWxlU2hlZXQ7CisgICAgV0tC
dW5kbGVQYWdlUGx1Z0luQ3JlYXRlRXh0cmFTY3JpcHRDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVQbHVnSW5FeHRyYVNjcmlwdDsKKworICAgIC8vIFZlcnNpb24gMy4KKyAg
ICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVudXNlZDM7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OworICAgIHZvaWQq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW51c2VkNTsKKworICAgIFdLQnVuZGxlUGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25D
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbjsK
KworICAgIC8vIFZlcnNpb24gNC4KKyAgICBXS0J1bmRsZVBhZ2VEaWRSZXNpZ25JbnB1dEVsZW1l
bnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2UgICAgICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVu
dFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS0J1
bmRsZVBhZ2VXaWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25zb2xlQ2FsbGJhY2sgICAgICAg
ICAgICAgIHdpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0NvbnNvbGU7Cit9IFdLQnVuZGxlUGFn
ZVVJQ2xpZW50VjU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcApp
bmRleCAzZmZiODAzNzVmMjQ3MzA3NGYyNzczNjk1MGExZTI4ZTVlYTNkMTAzLi45MzYwYzRiNTUy
NTVlZjQwYzgwZDMzYTg2MjU2MzBhMjA1ZTFmYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VVSUNsaWVudC5jcHAKQEAgLTQ5LDYgKzQ5LDEyIEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlVUlDbGllbnQ6OndpbGxBZGRNZXNzYWdlVG9Db25zb2xlKFdlYlBhZ2UqIHBhZ2UsIE1l
c3NhZ2VTCiAgICAgICAgIG1fY2xpZW50LndpbGxBZGRNZXNzYWdlVG9Db25zb2xlKHRvQVBJKHBh
Z2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIGxpbmVOdW1iZXIsIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQ6OndpbGxBZGRN
ZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShXZWJQYWdlKiBwYWdlLCBNZXNzYWdlU291cmNl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJl
ciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKQoreworICAg
IGlmIChtX2NsaWVudC53aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25zb2xlKQorICAgICAg
ICBtX2NsaWVudC53aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25zb2xlKHRvQVBJKHBhZ2Up
LCB0b0FQSShtZXNzYWdlLmltcGwoKSksIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgdG9BUEko
c291cmNlSUQuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwogdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6d2lsbFNldFN0YXR1c2JhclRleHQoV2ViUGFnZSog
cGFnZSwgY29uc3QgU3RyaW5nJiBzdGF0dXNiYXJUZXh0KQogewogICAgIGlmIChtX2NsaWVudC53
aWxsU2V0U3RhdHVzYmFyVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50
LmgKaW5kZXggMTMyZTk0YTI4Y2FhMGNkN2QwOWYyODEwMDQ1ODUwMGI5Yjc4OGUyMy4uMzhmNzAy
ZGIxNGRmMGNmODdlM2JjNDk2ZTRjMzcxNzEzYWUyYzkyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZVVJQ2xpZW50LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEFQSSB7CiBj
bGFzcyBPYmplY3Q7CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRsZVBh
Z2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlVUlD
bGllbnRWMCwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMSwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMiwg
V0tCdW5kbGVQYWdlVUlDbGllbnRWMywgV0tCdW5kbGVQYWdlVUlDbGllbnRWND4gVmVyc2lvbnM7
CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZVVJQ2xpZW50VjAsIFdLQnVuZGxl
UGFnZVVJQ2xpZW50VjEsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjIsIFdLQnVuZGxlUGFnZVVJQ2xp
ZW50VjMsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjQsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjU+IFZl
cnNpb25zOwogfTsKIH0KIApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQg
SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQoY29uc3QgV0tCdW5kbGVQYWdlVUlDbGllbnRCYXNl
Kik7CiAKICAgICB2b2lkIHdpbGxBZGRNZXNzYWdlVG9Db25zb2xlKFdlYlBhZ2UqLCBNZXNzYWdl
U291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGlu
ZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSBv
dmVycmlkZTsKKyAgICB2b2lkIHdpbGxBZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShX
ZWJQYWdlKiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VJRCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aWxsU2V0U3RhdHVzYmFyVGV4dChX
ZWJQYWdlKiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aWxsUnVuSmF2YVNj
cmlwdEFsZXJ0KFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmLCBXZWJGcmFtZSopIG92ZXJyaWRlOwog
ICAgIHZvaWQgd2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcm
LCBXZWJGcmFtZSopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzZTFjOTA1
MDVmZWI5NjA1N2M0OGZjN2QxMGU0NDFhMGI1NTNiMWM5Li40Nzc3NGE3MjVkNTE3OWFkMjRjM2Zk
YzRkYWI1NTZjMWZmZDE2NmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNDIxLDYgKzQy
MSwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldgogICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRs
ZVVJQ2xpZW50KCkud2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUoJm1fcGFnZSwgc291cmNlLCBsZXZl
bCwgbWVzc2FnZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBzb3VyY2VJRCk7CiB9CiAKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShNZXNz
YWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VJRCkKK3sKKyAgICBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLndp
bGxBZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZSgmbV9wYWdlLCBzb3VyY2UsIGxldmVs
LCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHNvdXJjZUlEKTsKK30KKwogYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpCiB7CiAg
ICAgcmV0dXJuIG1fcGFnZS5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAppbmRleCAyNjUwYzIyYzM0Y2FmNjhmYTFlNmNhY2ZhOGZiMjdjMDY4MWE2MDEy
Li4yZTA4NjkwMmVlZTE4ZTY0ZGFkMGEzZWQwYTg3ZWY5NGVlYzRkODZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCkBAIC05OSw2ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRSZXNpemFibGUo
Ym9vbCkgZmluYWw7CiAgICAgCiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVz
c2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5z
aWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZUlEKSBmaW5hbDsKKyAgICB2b2lkIGFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xl
KEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZUlEKSBmaW5hbDsKICAgICAKICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbCgpIGZpbmFsOwogICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456304</attachid>
            <date>2022-03-31 18:47:55 -0700</date>
            <delta_ts>2022-04-01 16:40:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238032-20220331184754.patch</filename>
            <type>text/plain</type>
            <size>39337</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
MzEyODFmODExNDM0MjMwMDliOWVlYjI0NGVlMTJiNjUwNzUxYTM2Li4zYTlhNTIyYjI5YmViMjc0
ZDFkYmVhMGE0ZGI1NWU3ZGI2ZTI2NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMi0wMy0zMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CisK
KyAgICAgICAgV0tCdW5kbGVQYWdlVUlDbGllbnQgY29uc29sZSBtZXNzYWdlIHN1cHBvcnQgc2hv
dWxkIGluY2x1ZGUgc291cmNlIFVSTCwgY29sdW1uIG51bWJlciwgYW5kIGNvbnNvbGUgbWVzc2Fn
ZXMgd2l0aCBhcmd1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzODAzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIGZ1bmN0aW9uIHRvIFNjcmlwdEFyZ3VtZW50cyB0byBnZXQgYSB2ZWN0
b3Igb2YgYXJndW1lbnQgc3RyaW5ncy4gQXMgd2UgZG8gaW4KKyAgICAgICAgU2NyaXB0QXJndW1l
bnRzOjpnZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcoKSwgYXZvaWQgdHJpZ2dlcmluZyBQcm94eSB0
cmFwcyBvbiBhIFByb3h5IG9iamVjdCB3aGVuCisgICAgICAgIGdlbmVyYXRpbmcgdGhlIHZlY3Rv
ci4KKyAgICAgICAgCisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5jcHA6Cisg
ICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50czo6Z2V0QXJndW1lbnRzQXNTdHJpbmdz
IGNvbnN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmg6CisKIDIwMjIt
MDMtMzEgIFBhdHJpY2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IFN1cHBvcnQgQ29udGFpbmVyIFF1ZXJpZXMgaW4gdGhlIFN0eWxlcyBzaWRlYmFy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggODdlYTMwN2JmY2NmYzVjZTYxZmFjMDE5NTExMmE3YTQ1YmVjN2JiNi4u
OWYyNWE5NDUzZmEwZTRiMTA0M2E1NGYyODhlZjBmZjI5YTA5MTk4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDIyLTAzLTMxICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4K
KworICAgICAgICBXS0J1bmRsZVBhZ2VVSUNsaWVudCBjb25zb2xlIG1lc3NhZ2Ugc3VwcG9ydCBz
aG91bGQgaW5jbHVkZSBzb3VyY2UgVVJMLCBjb2x1bW4gbnVtYmVyLCBhbmQgY29uc29sZSBtZXNz
YWdlcyB3aXRoIGFyZ3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM4MDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGEgbmV3IENocm9tZUNsaWVudCBhZGRNZXNzYWdlV2l0aEFyZ3VtZW50
c1RvQ29uc29sZSgpIG1lbWJlciBmdW5jdGlvbiBmb3IgYWRkaW5nIGEgY29uc29sZQorICAgICAg
ICBtZXNzYWdlIHRoYXQgaW5jbHVkZXMgZm9ybWF0dGVkIGFyZ3VtZW50cy4gSSBsZWZ0IHRoZSBl
eGlzdGluZyBiZWhhdmlvciBvZiBhZGRNZXNzYWdlVG9Db25zb2xlKCkKKyAgICAgICAgdW5jaGFu
Z2VkIHNpbmNlIGxheW91dCB0ZXN0cyBleHBlY3QgdG8gZ2V0IHRoZSBjb25zb2xlIG1lc3NhZ2Ug
d2l0aG91dCB0aGVzZSBhcmd1bWVudHMuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRz
Lmg6CisgICAgICAgIEFkZGVkIGFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKCkuCisK
KyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50OjphZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZSk6CisgICAgICAgIEFkZGVk
LCBzdWJjbGFzc2VzIGNhbiBvcHRpb25hbGx5IG92ZXJyaWRlIHRoaXMuCisKKyAgICAgICAgKiBw
YWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xl
Q2xpZW50OjphZGRNZXNzYWdlKToKKyAgICAgICAgQ3JlYXRlIGEgdmVjdG9yIG9mIGFueSBtZXNz
YWdlIGFyZ3VtZW50cyBhbmQgaW5jbHVkZSBpdCB3aGVuIGNhbGxpbmcgdGhlIG5ldworICAgICAg
ICBhZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZSgpIGZ1bmN0aW9uLgorICAgICAgICAK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRM
ZXZlbCk6CisgICAgICAgIERpdHRvLgorCiAyMDIyLTAzLTMxICBQYXRyaWNrIEFuZ2xlICA8cGFu
Z2xlQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTdXBwb3J0IENvbnRhaW5l
ciBRdWVyaWVzIGluIHRoZSBTdHlsZXMgc2lkZWJhcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmZDgyMWE1ZWYzMmVk
MjRlZDQwMTc0OGQ2MDI2OTQ0YWNmMTg1MjNlLi4xYmU3MTg4NGQ2YTg3NDMzMDI2ZmVlMDE1N2Nj
M2EyMDIzNDMyM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIyLTAzLTMxICBKZWZm
IE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KKworICAgICAgICBXS0J1bmRsZVBhZ2VVSUNsaWVu
dCBjb25zb2xlIG1lc3NhZ2Ugc3VwcG9ydCBzaG91bGQgaW5jbHVkZSBzb3VyY2UgVVJMLCBjb2x1
bW4gbnVtYmVyLCBhbmQgY29uc29sZSBtZXNzYWdlcyB3aXRoIGFyZ3VtZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MDMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oOgorICAgICAgICAo
QVBJOjpJbmplY3RlZEJ1bmRsZTo6UGFnZVVJQ2xpZW50Ojp3aWxsQWRkTWVzc2FnZVdpdGhBcmd1
bWVudHNUb0NvbnNvbGUpOgorICAgICAgICBBZGRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgQWRk
IFdLQnVuZGxlUGFnZVVJQ2xpZW50VjUgd2l0aCBhIG5ldyB3aWxsQWRkTWVzc2FnZVdpdGhEZXRh
aWxzVG9Db25zb2xlIGNhbGxiYWNrLiBUaGlzIGNhbGxiYWNrIGlzCisgICAgICAgIHNpbWlsYXIg
dG8gdGhlIGV4aXN0aW5nIHdpbGxBZGRNZXNzYWdlVG9Db25zb2xlIGNhbGxiYWNrLCBidXQgaW5j
bHVkZXMgYW55IG1lc3NhZ2UgYXJndW1lbnRzLCB0aGUKKyAgICAgICAgY29sdW1uIG51bWJlciwg
YW5kIHNvdXJjZSBVUkwuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQ6OndpbGxBZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZSk6
CisgICAgICAgIEFkZGVkLCBpbnZva2VzIHRoZSBuZXcgd2lsbEFkZE1lc3NhZ2VXaXRoRGV0YWls
c1RvQ29uc29sZSBjYWxsYmFjay4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgQWRkIGEgbmV3IGJ1bmRs
ZSBwYWdlIFVJIGNsaWVudCB2ZXJzaW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OmFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKToKKyAgICAgICAgQWRkZWQu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
OgorICAgICAgICBBZGRlZCBhZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZSgpLgorCiAy
MDIyLTAzLTMxICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI5MjExOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcAppbmRleCBjMTRlZjhhMzEy
ZmEyZjYzNjU3OTExZDM5ZjljM2IxOTJlNTk4YTg1Li5lMDQxZDE3N2YwODZjOWEzMTZlMjdmMzM3
ZTdlOWZkZDEzODdiNzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL1NjcmlwdEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9TY3JpcHRBcmd1bWVudHMuY3BwCkBAIC04NSw2ICs4NSwzMiBAQCBib29sIFNjcmlwdEFy
Z3VtZW50czo6Z2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5nKFN0cmluZyYgcmVzdWx0KSBjb25zdAog
ICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFNjcmlwdEFyZ3VtZW50czo6Z2V0QXJndW1lbnRz
QXNTdHJpbmdzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0Cit7CisgICAgaWYgKCFhcmd1
bWVudENvdW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8qIGdsb2JhbE9i
amVjdCA9IHRoaXMtPmdsb2JhbE9iamVjdCgpOworICAgIGlmICghZ2xvYmFsT2JqZWN0KSB7Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudENvdW50KCk7ICsraSkgewor
ICAgICAgICBhdXRvIHZhbHVlID0gYXJndW1lbnRBdChpKTsKKyAgICAgICAgaWYgKEpTQzo6anNE
eW5hbWljQ2FzdDxKU0M6OlByb3h5T2JqZWN0Kj4oZ2xvYmFsT2JqZWN0LT52bSgpLCB2YWx1ZSkp
IHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIltvYmplY3QgUHJveHldIl9zKTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfQ0FUQ0hfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZCh2YWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpKTsKKyAgICAgICAgc2NvcGUuY2xlYXJF
eGNlcHRpb24oKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBTY3JpcHRB
cmd1bWVudHM6OmlzRXF1YWwoY29uc3QgU2NyaXB0QXJndW1lbnRzJiBvdGhlcikgY29uc3QKIHsK
ICAgICBhdXRvIHNpemUgPSBtX2FyZ3VtZW50cy5zaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaAppbmRleCA3OTFiZjYzNzJmY2Iy
YjA3ODliYjJlOTg0OGRlMmZkN2UzYzU4YjQ5Li5iYThjOWY2NjlhNWM0NmFmODAzMGZhYjYyOTY4
M2E4NjRhOGFjMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L1NjcmlwdEFyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
U2NyaXB0QXJndW1lbnRzLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIGNvbnN0OwogCiAgICAgYm9vbCBnZXRGaXJzdEFy
Z3VtZW50QXNTdHJpbmcoU3RyaW5nJiByZXN1bHQpIGNvbnN0OworICAgIGJvb2wgZ2V0QXJndW1l
bnRzQXNTdHJpbmdzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0OwogICAgIGJvb2wgaXNF
cXVhbChjb25zdCBTY3JpcHRBcmd1bWVudHMmKSBjb25zdDsKIAogICAgIHN0YXRpYyBTdHJpbmcg
dHJ1bmNhdGVTdHJpbmdGb3JDb25zb2xlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggOWRmMjAzZTU1OTQzNDdiMzI2NjE5
NjA4ZTZjODIzMjExMjgxNzFiNS4uNzcxZDIzZDY5NzhhNWRjN2ViNjgzOGE2ZTAyY2E3Yjg0MTEx
YjVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtODMsNiArODMsNyBA
QCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZv
aWQgc2V0UmVzaXphYmxlKGJvb2wpIGZpbmFsIHsgfQogCiAgICAgdm9pZCBhZGRNZXNzYWdlVG9D
b25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdW5zaWdu
ZWQsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGFkZE1lc3Nh
Z2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCB1bnNpZ25lZCwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpIGZpbmFsIHsgfQogCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWwoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgcnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYsIEZyYW1lJikgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYWQ2MmNiYzZmYmMwMjZiMmM1
N2U5ZTJkYzZhNGViZDMxZDZkYjAxMC4uYzE1YmUzNzRlM2I2ZGUyMTFmMDRlMjY5YjMwNTZjNGQz
ODEyNmViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xOTMsNiArMTkzLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSZXNpemFibGUoYm9vbCkgPSAwOwogCiAg
ICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2ln
bmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBhZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IG1lc3NhZ2VBcmd1bWVudHMsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgeyBVTlVTRURfUEFSQU0obWVzc2FnZSk7IFVO
VVNFRF9QQVJBTShtZXNzYWdlQXJndW1lbnRzKTsgVU5VU0VEX1BBUkFNKGxpbmVOdW1iZXIpOyBV
TlVTRURfUEFSQU0oY29sdW1uTnVtYmVyKTsgVU5VU0VEX1BBUkFNKHNvdXJjZUlEKTsgfQogCiAg
ICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgRnJhbWUmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGll
bnQuY3BwCmluZGV4IGRmZWRhNGRhNWZkNmM1NGI4ZWQ4N2VkY2IzNjc0OWQ4YzgwYTg1MGUuLjNh
MDYxMzAzMjZlYzhhYWQxN2UxOWZkZTU4YjkyMDUwZTk5MDM4YTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCkBAIC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0
cm9uZ0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZB
UykKQEAgLTEyMSwxMiArMTIyLDE4IEBAIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmFkZE1lc3Nh
Z2Uoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+JiYKIHsKICAgICBp
ZiAoIW1fcGFnZS51c2VzRXBoZW1lcmFsU2Vzc2lvbigpKSB7CiAgICAgICAgIFN0cmluZyBtZXNz
YWdlOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBtZXNzYWdlQXJndW1lbnRzOwogICAgICAgICBp
ZiAoY29uc29sZU1lc3NhZ2UtPnR5cGUoKSA9PSBNZXNzYWdlVHlwZTo6SW1hZ2UpIHsKICAgICAg
ICAgICAgIEFTU0VSVChjb25zb2xlTWVzc2FnZS0+YXJndW1lbnRzKCkpOwotICAgICAgICAgICAg
Y29uc29sZU1lc3NhZ2UtPmFyZ3VtZW50cygpLT5nZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcobWVz
c2FnZSk7CisgICAgICAgICAgICBpZiAoY29uc29sZU1lc3NhZ2UtPmFyZ3VtZW50cygpLT5nZXRB
cmd1bWVudHNBc1N0cmluZ3MobWVzc2FnZUFyZ3VtZW50cykpIHsKKyAgICAgICAgICAgICAgICBt
ZXNzYWdlID0gbWVzc2FnZUFyZ3VtZW50c1swXTsKKyAgICAgICAgICAgICAgICBtZXNzYWdlQXJn
dW1lbnRzLnJlbW92ZSgwKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBtZXNzYWdlID0gY29uc29sZU1lc3NhZ2UtPm1lc3NhZ2UoKTsKKwogICAgICAgICBtX3Bh
Z2UuY2hyb21lKCkuY2xpZW50KCkuYWRkTWVzc2FnZVRvQ29uc29sZShjb25zb2xlTWVzc2FnZS0+
c291cmNlKCksIGNvbnNvbGVNZXNzYWdlLT5sZXZlbCgpLCBtZXNzYWdlLCBjb25zb2xlTWVzc2Fn
ZS0+bGluZSgpLCBjb25zb2xlTWVzc2FnZS0+Y29sdW1uKCksIGNvbnNvbGVNZXNzYWdlLT51cmwo
KSk7CisgICAgICAgIG1fcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGRNZXNzYWdlV2l0aEFyZ3Vt
ZW50c1RvQ29uc29sZShjb25zb2xlTWVzc2FnZS0+c291cmNlKCksIGNvbnNvbGVNZXNzYWdlLT5s
ZXZlbCgpLCBtZXNzYWdlLCBtZXNzYWdlQXJndW1lbnRzLCBjb25zb2xlTWVzc2FnZS0+bGluZSgp
LCBjb25zb2xlTWVzc2FnZS0+Y29sdW1uKCksIGNvbnNvbGVNZXNzYWdlLT51cmwoKSk7CiAKICAg
ICAgICAgaWYgKFVOTElLRUxZKG1fcGFnZS5zZXR0aW5ncygpLmxvZ3NQYWdlTWVzc2FnZXNUb1N5
c3RlbUNvbnNvbGVFbmFibGVkKCkgfHwgc2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpKSB7CiAgICAg
ICAgICAgICBpZiAoY29uc29sZU1lc3NhZ2UtPnR5cGUoKSA9PSBNZXNzYWdlVHlwZTo6SW1hZ2Up
IHsKQEAgLTE3NSw3ICsxODIsMTIgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVzc2Fn
ZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb24KIHZvaWQgUGFn
ZUNvbnNvbGVDbGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUs
IE1lc3NhZ2VMZXZlbCBsZXZlbCwgSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKICAg
ICBTdHJpbmcgbWVzc2FnZVRleHQ7Ci0gICAgYm9vbCBnb3RNZXNzYWdlID0gYXJndW1lbnRzLT5n
ZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcobWVzc2FnZVRleHQpOworICAgIFZlY3RvcjxTdHJpbmc+
IG1lc3NhZ2VBcmd1bWVudHM7CisgICAgYm9vbCBnb3RNZXNzYWdlVGV4dEFuZEFyZ3VtZW50cyA9
IGFyZ3VtZW50cy0+Z2V0QXJndW1lbnRzQXNTdHJpbmdzKG1lc3NhZ2VBcmd1bWVudHMpOworICAg
IGlmIChnb3RNZXNzYWdlVGV4dEFuZEFyZ3VtZW50cykgeworICAgICAgICBtZXNzYWdlVGV4dCA9
IG1lc3NhZ2VBcmd1bWVudHNbMF07CisgICAgICAgIG1lc3NhZ2VBcmd1bWVudHMucmVtb3ZlKDAp
OworICAgIH0KIAogICAgIGF1dG8gbWVzc2FnZSA9IG1ha2VVbmlxdWU8SW5zcGVjdG9yOjpDb25z
b2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgdHlwZSwgbGV2ZWwsIG1lc3Nh
Z2VUZXh0LCBhcmd1bWVudHMuY29weVJlZigpLCBsZXhpY2FsR2xvYmFsT2JqZWN0KTsKIApAQCAt
MTg4LDggKzIwMCwxMCBAQCB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVB
bmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbAogICAgIGlmIChtX3BhZ2Uu
dXNlc0VwaGVtZXJhbFNlc3Npb24oKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGdvdE1l
c3NhZ2UpCisgICAgaWYgKGdvdE1lc3NhZ2VUZXh0QW5kQXJndW1lbnRzKSB7CiAgICAgICAgIG1f
cGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2U6
OkNvbnNvbGVBUEksIGxldmVsLCBtZXNzYWdlVGV4dCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVy
LCB1cmwpOworICAgICAgICBtX3BhZ2UuY2hyb21lKCkuY2xpZW50KCkuYWRkTWVzc2FnZVdpdGhB
cmd1bWVudHNUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgbGV2ZWwsIG1lc3Nh
Z2VUZXh0LCBtZXNzYWdlQXJndW1lbnRzLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHVybCk7
CisgICAgfQogCiAgICAgaWYgKG1fcGFnZS5zZXR0aW5ncygpLmxvZ3NQYWdlTWVzc2FnZXNUb1N5
c3RlbUNvbnNvbGVFbmFibGVkKCkgfHwgUGFnZUNvbnNvbGVDbGllbnQ6OnNob3VsZFByaW50RXhj
ZXB0aW9ucygpKQogICAgICAgICBDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlV2l0
aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCB0eXBlLCBsZXZlbCwgbGV4aWNh
bEdsb2JhbE9iamVjdCwgV1RGTW92ZShhcmd1bWVudHMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
QVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAppbmRleCA5NWY0MzgyYjUyYzFhNWY3MDg0
OGY5M2MzODk1YjY5NDNlZGFlNzZjLi5jOGRlMDBmMTM5MzM0OTYxYjJmNjg5ZjdiNjk0YzA0YjQ1
YjJlMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0FQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBhZ2VVSUNs
aWVudC5oCkBAIC01MSw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5QYWdlVUlDbGll
bnQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsQWRkTWVzc2FnZVRvQ29uc29sZShXZWJL
aXQ6OldlYlBhZ2UqLCBKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25z
dCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29s
dW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlSUQpIHsgVU5VU0VEX1BBUkFNKG1l
c3NhZ2UpOyBVTlVTRURfUEFSQU0obGluZU51bWJlcik7IFVOVVNFRF9QQVJBTShjb2x1bW5OdW1i
ZXIpOyBVTlVTRURfUEFSQU0oc291cmNlSUQpOyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxBZGRN
ZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShXZWJLaXQ6OldlYlBhZ2UqLCBKU0M6Ok1lc3Nh
Z2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgbWVzc2FnZUFyZ3VtZW50cywgdW5zaWduZWQgbGlu
ZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNl
SUQpIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOyBVTlVTRURfUEFSQU0obWVzc2FnZUFyZ3VtZW50
cyk7IFVOVVNFRF9QQVJBTShsaW5lTnVtYmVyKTsgVU5VU0VEX1BBUkFNKGNvbHVtbk51bWJlcik7
IFVOVVNFRF9QQVJBTShzb3VyY2VJRCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldFN0YXR1
c2JhclRleHQoV2ViS2l0OjpXZWJQYWdlKiwgY29uc3QgV1RGOjpTdHJpbmcmKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgd2lsbFJ1bkphdmFTY3JpcHRBbGVydChXZWJLaXQ6OldlYlBhZ2UqLCBjb25z
dCBXVEY6OlN0cmluZyYsIFdlYktpdDo6V2ViRnJhbWUqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKFdlYktpdDo6V2ViUGFnZSosIGNvbnN0IFdURjo6U3Ry
aW5nJiwgV2ViS2l0OjpXZWJGcmFtZSopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
VUlDbGllbnQuaAppbmRleCBmNTY2YmJkNmFkMTllOTY1MmJkZTc0NzhiMGY5MGE4OTBhNGU0ZTc2
Li5iNGM3MjE2YjdhZjA2MjBlNGJjYTc5MDc3M2IzZTYxOTE5OGYwMTYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
VUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaApAQCAtNTUsNiArNTUsNyBAQCB0eXBlZGVmIFdL
U3RyaW5nUmVmICgqV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlRXh0cmFTdHlsZVNoZWV0Q2FsbGJh
Y2spKGNvbnN0IHZvaQogdHlwZWRlZiBXS1N0cmluZ1JlZiAoKldLQnVuZGxlUGFnZVBsdWdJbkNy
ZWF0ZUV4dHJhU2NyaXB0Q2FsbGJhY2spKGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRl
ZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbkNhbGxiYWNrKShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGlucHV0RWxlbWVudCwgV0tU
eXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQg
KCpXS0J1bmRsZVBhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFu
Y2UpKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaW5wdXRFbGVt
ZW50LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVk
ZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0NvbnNvbGVD
YWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLQXJy
YXlSZWYgbWVzc2FnZUFyZ3VtZW50cywgdWludDMyX3QgbGluZU51bWJlciwgdWludDMyX3QgY29s
dW1uTnVtYmVyLCBXS1N0cmluZ1JlZiBzb3VyY2VJRCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
CiAKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZSB7CiAgICAgaW50ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2ZXJzaW9uOwpAQCAtMjEwLDMgKzIxMSw0NiBAQCB0eXBlZGVmIHN0cnVjdCBXS0J1bmRs
ZVBhZ2VVSUNsaWVudFY0IHsKICAgICAvLyBWZXJzaW9uIDQuCiAgICAgV0tCdW5kbGVQYWdlRGlk
UmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlICAgICAgICAgICBkaWRS
ZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2U7CiB9IFdLQnVuZGxlUGFn
ZVVJQ2xpZW50VjQ7CisKK3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50VjUgewor
ICAgIFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS0J1bmRsZVBh
Z2VXaWxsQWRkTWVzc2FnZVRvQ29uc29sZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
IHdpbGxBZGRNZXNzYWdlVG9Db25zb2xlOworICAgIFdLQnVuZGxlUGFnZVdpbGxTZXRTdGF0dXNi
YXJUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFNldFN0YXR1c2Jh
clRleHQ7CisgICAgV0tCdW5kbGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0OworICAgIFdLQnVu
ZGxlUGFnZVdpbGxSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgd2lsbFJ1bkphdmFTY3JpcHRDb25maXJtOworICAgIFdLQnVuZGxlUGFnZVdpbGxSdW5K
YXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFJ1bkph
dmFTY3JpcHRQcm9tcHQ7CisgICAgV0tCdW5kbGVQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsK
KyAgICBXS0J1bmRsZVBhZ2VEaWRTY3JvbGxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhZ2VEaWRTY3JvbGw7CisgICAgdm9pZCogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOwor
ICAgIFdLQnVuZGxlUGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkR2VuZXJhdGVGaWxlRm9yVXBsb2FkOworICAgIFdLQnVuZGxl
UGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2VuZXJhdGVGaWxlRm9yVXBsb2FkOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMjsKKyAgICBX
S0J1bmRsZVBhZ2VTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS0J1bmRsZVBhZ2VNZW51QmFySXNW
aXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJc1Zp
c2libGU7CisgICAgV0tCdW5kbGVQYWdlVG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisKKyAgICAvLyBWZXJz
aW9uIDEuCisgICAgV0tCdW5kbGVQYWdlUmVhY2hlZEFwcENhY2hlT3JpZ2luUXVvdGFDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICBkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS0J1bmRsZVBhZ2VFeGNlZWRlZERhdGFiYXNl
UXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEV4Y2VlZERhdGFiYXNl
UXVvdGE7CisgICAgV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlU3RhcnRMYWJlbFRpdGxlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICBjcmVhdGVQbHVnSW5TdGFydExhYmVsVGl0bGU7CisgICAg
V0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlU3RhcnRMYWJlbFN1YnRpdGxlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICBjcmVhdGVQbHVnSW5TdGFydExhYmVsU3VidGl0bGU7CisgICAgV0tCdW5kbGVQ
YWdlUGx1Z0luQ3JlYXRlRXh0cmFTdHlsZVNoZWV0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVQbHVnSW5FeHRyYVN0eWxlU2hlZXQ7CisgICAgV0tCdW5kbGVQYWdlUGx1Z0luQ3Jl
YXRlRXh0cmFTY3JpcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVQbHVn
SW5FeHRyYVNjcmlwdDsKKworICAgIC8vIFZlcnNpb24gMy4KKyAgICB2b2lkKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNl
ZDM7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OworICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkNTsKKwor
ICAgIFdLQnVuZGxlUGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbjsKKworICAgIC8vIFZlcnNpb24g
NC4KKyAgICBXS0J1bmRsZVBhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFw
cGVhcmFuY2UgICAgICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBw
ZWFyYW5jZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS0J1bmRsZVBhZ2VXaWxsQWRkTWVz
c2FnZVdpdGhEZXRhaWxzVG9Db25zb2xlQ2FsbGJhY2sgICAgICAgICAgICAgIHdpbGxBZGRNZXNz
YWdlV2l0aERldGFpbHNUb0NvbnNvbGU7Cit9IFdLQnVuZGxlUGFnZVVJQ2xpZW50VjU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcAppbmRleCAzZmZiODAzNzVmMjQ3
MzA3NGYyNzczNjk1MGExZTI4ZTVlYTNkMTAzLi4wMjcwOWM5YWM3NmJhYWViNzM4MGQ3ZTUxOTNj
MzE1YmUwYTkzZDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5j
cHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbmpl
Y3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIgogCisjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNs
dWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgpAQCAtNDks
NiArNTAsMTIgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6d2lsbEFkZE1lc3Nh
Z2VUb0NvbnNvbGUoV2ViUGFnZSogcGFnZSwgTWVzc2FnZVMKICAgICAgICAgbV9jbGllbnQud2ls
bEFkZE1lc3NhZ2VUb0NvbnNvbGUodG9BUEkocGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwg
bGluZU51bWJlciwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAordm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2VVSUNsaWVudDo6d2lsbEFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xl
KFdlYlBhZ2UqIHBhZ2UsIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbWVzc2FnZUFyZ3VtZW50cywgdW5zaWdu
ZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUlEKQoreworICAgIGlmIChtX2NsaWVudC53aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25z
b2xlKQorICAgICAgICBtX2NsaWVudC53aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25zb2xl
KHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJKEFQSTo6QXJyYXk6OmNy
ZWF0ZVN0cmluZ0FycmF5KG1lc3NhZ2VBcmd1bWVudHMpLnB0cigpKSwgbGluZU51bWJlciwgY29s
dW1uTnVtYmVyLCB0b0FQSShzb3VyY2VJRC5pbXBsKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOworfQorCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Ojp3aWxsU2V0U3RhdHVz
YmFyVGV4dChXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIHN0YXR1c2JhclRleHQpCiB7CiAg
ICAgaWYgKG1fY2xpZW50LndpbGxTZXRTdGF0dXNiYXJUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQuaAppbmRleCAxMzJlOTRhMjhjYWEwY2Q3ZDA5ZjI4MTAwNDU4NTAw
YjliNzg4ZTIzLi40ZmY4YzVlODE4ZTgzY2NkMGM2ZTA4N2ZhMzk0NWE1ODI1MzU0MzE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaApAQCAtMzUsNyArMzUsNyBAQCBu
YW1lc3BhY2UgQVBJIHsKIGNsYXNzIE9iamVjdDsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50
VHJhaXRzPFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBs
ZTxXS0J1bmRsZVBhZ2VVSUNsaWVudFYwLCBXS0J1bmRsZVBhZ2VVSUNsaWVudFYxLCBXS0J1bmRs
ZVBhZ2VVSUNsaWVudFYyLCBXS0J1bmRsZVBhZ2VVSUNsaWVudFYzLCBXS0J1bmRsZVBhZ2VVSUNs
aWVudFY0PiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlVUlD
bGllbnRWMCwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMSwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMiwg
V0tCdW5kbGVQYWdlVUlDbGllbnRWMywgV0tCdW5kbGVQYWdlVUlDbGllbnRWNCwgV0tCdW5kbGVQ
YWdlVUlDbGllbnRWNT4gVmVyc2lvbnM7CiB9OwogfQogCkBAIC00Niw2ICs0Niw3IEBAIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudChjb25zdCBXS0J1bmRs
ZVBhZ2VVSUNsaWVudEJhc2UqKTsKIAogICAgIHZvaWQgd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUo
V2ViUGFnZSosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlSUQpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEFkZE1lc3NhZ2VXaXRoQXJn
dW1lbnRzVG9Db25zb2xlKFdlYlBhZ2UqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIG1lc3NhZ2VBcmd1bWVu
dHMsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VJRCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aWxsU2V0U3RhdHVzYmFyVGV4dChX
ZWJQYWdlKiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aWxsUnVuSmF2YVNj
cmlwdEFsZXJ0KFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmLCBXZWJGcmFtZSopIG92ZXJyaWRlOwog
ICAgIHZvaWQgd2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcm
LCBXZWJGcmFtZSopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzZTFjOTA1
MDVmZWI5NjA1N2M0OGZjN2QxMGU0NDFhMGI1NTNiMWM5Li4yNGY3MGE0ZGU3ZGMzYTYxNmE2OTUx
MDE0MTVkMDg2MTlkZWEzNWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNDIxLDYgKzQy
MSwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldgogICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRs
ZVVJQ2xpZW50KCkud2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUoJm1fcGFnZSwgc291cmNlLCBsZXZl
bCwgbWVzc2FnZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBzb3VyY2VJRCk7CiB9CiAKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShNZXNz
YWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtZXNzYWdlQXJndW1lbnRzLCB1bnNpZ25lZCBsaW5l
TnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpCit7
CisgICAgbV9wYWdlLmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS53aWxsQWRkTWVzc2FnZVdpdGhB
cmd1bWVudHNUb0NvbnNvbGUoJm1fcGFnZSwgc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgbWVzc2Fn
ZUFyZ3VtZW50cywgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBzb3VyY2VJRCk7Cit9CisKIGJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogewog
ICAgIHJldHVybiBtX3BhZ2UuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKaW5kZXggMjY1MGMyMmMzNGNhZjY4ZmExZTZjYWNmYThmYjI3YzA2ODFhNjAx
Mi4uOTY0ODE3Yzk2MzI4MzA1YjkwZmI3MTcxYmQ2NDQ5MjIzZTJiMzk0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaApAQCAtOTksNiArOTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0UmVzaXphYmxl
KGJvb2wpIGZpbmFsOwogICAgIAogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShKU0M6Ok1l
c3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBz
b3VyY2VJRCkgZmluYWw7CisgICAgdm9pZCBhZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29s
ZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtZXNzYWdlQXJndW1lbnRzLCB1bnNpZ25lZCBs
aW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQp
IGZpbmFsOwogICAgIAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkg
ZmluYWw7CiAgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI1YzU5MjhiOGY1MDllYmU0YjFmNTM2NDli
NGFkYzIyZTkzMWYzODUuLjNmNDc3YTdmOTc5NGZkYzU4MDdmMWEzYzU2MzFlNTQ2MTdmYTRmMTYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMi0wMy0zMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CisK
KyAgICAgICAgV0tCdW5kbGVQYWdlVUlDbGllbnQgY29uc29sZSBtZXNzYWdlIHN1cHBvcnQgc2hv
dWxkIGluY2x1ZGUgc291cmNlIFVSTCwgY29sdW1uIG51bWJlciwgYW5kIGNvbnNvbGUgbWVzc2Fn
ZXMgd2l0aCBhcmd1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzODAzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
ICAgICAgICAKKyAgICAgICAgQWRkIGEgdGVzdCBmb3IgdGhlIG5ldyB3aWxsQWRkTWVzc2FnZVdp
dGhEZXRhaWxzVG9Db25zb2xlIGNhbGxiYWNrIGluIFdLQnVuZGxlUGFnZVVJQ2xpZW50LiBUaGlz
CisgICAgICAgIGluY2x1ZGVzIGEgbmV3IFdLV2ViUHJvY2Vzc1BsdWdJbiBzdWJjbGFzcywgQnVu
ZGxlUGFnZUNvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMsIHRoYXQgaW1wbGVtZW50cworICAgICAg
ICB0aGlzIGNhbGxiYWNrIGFuZCBmb3JtYXRzIHRoZSBtZXNzYWdlIGFuZCBhcmd1bWVudHMgaW50
byBhIHNpbmdsZSBzdHJpbmcgd2hpY2ggaXQgc2VuZHMgdG8gdGhlIFVJCisgICAgICAgIHByb2Nl
c3MuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQ6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVQYWdlQ29u
c29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbTogQWRkZWQuCisgICAgICAgICh3aWxsQWRkTWVzc2Fn
ZVdpdGhEZXRhaWxzVG9Db25zb2xlQ2FsbGJhY2spOgorICAgICAgICAoLVtCdW5kbGVQYWdlQ29u
c29sZU1lc3NhZ2VXaXRoRGV0YWlscyB3ZWJQcm9jZXNzUGx1Z0luOmRpZENyZWF0ZUJyb3dzZXJD
b250ZXh0Q29udHJvbGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0NvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW06IEFkZGVkLgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6ZGlkUmVjZWl2ZVBhZ2VNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OnNldEluamVjdGVkQnVuZGxlQ2xpZW50KToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvY29uc29sZS1tZXNzYWdlLXdpdGgtZGV0YWlscy5odG1sOiBBZGRlZC4KKwogMjAy
Mi0wMy0zMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyOTIxMTkuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXND
b2NvYS50eHQKaW5kZXggNGI0ZGY0YmZmZjU5ZTBhOTMxODhmOTUzYzA2YWY1OGQ3OGYxZTc2NC4u
OGVlODE2YjljZjQ0YTQ0MDM0YjI4ZTNkYjQwNmM5NGRjZjU2MWFhMyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvU291cmNlc0NvY29hLnR4dApAQCAtNTgsNiArNTgsNyBAQCBUZXN0cy9XZWJLaXRDb2NvYS9C
dW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9CdW5k
bGVFZGl0aW5nRGVsZWdhdGUubW0KIFRlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0
ZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlLm1tCitUZXN0
cy9XZWJLaXRDb2NvYS9CdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbQogVGVz
dHMvV2ViS2l0Q29jb2EvQnVuZGxlUGFyYW1ldGVycy5tbQogVGVzdHMvV2ViS2l0Q29jb2EvQnVu
ZGxlUmFuZ2VIYW5kbGUubW0KIFRlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMubW0K
QEAgLTcwLDYgKzcxLDcgQEAgVGVzdHMvV2ViS2l0Q29jb2EvQ2xvc2VXZWJWaWV3RHVyaW5nRW50
ZXJGdWxsc2NyZWVuLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9Db2RpbmcubW0KIFRlc3RzL1dlYktp
dENvY29hL0NvbW1hbmRCYWNrRm9yd2FyZC5tbQogVGVzdHMvV2ViS2l0Q29jb2EvQ29uZmlndXJh
dGlvbi5tbQorVGVzdHMvV2ViS2l0Q29jb2EvQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbQog
VGVzdHMvV2ViS2l0Q29jb2EvQ29udGVudEZpbHRlcmluZy5tbQogVGVzdHMvV2ViS2l0Q29jb2Ev
Q29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50
U2VjdXJpdHlQb2xpY3kubW0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjhlYjQ4MTNkMTQz
ODVjNmYxYjA5YTdiMmQ3MDYxOTIyMjI3Yzc5Yi4uOWE3OGE4ODJjMDliYjU1ZGExZGIyYmFlMjMy
ZTk0MzcwNGNmZDZiYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk4MCw2ICs5ODAsOCBA
QAogCQlDRURBMTI0MTI0MzdDOUZCMDBDMjhBOUUgLyogZWRpdGFibGUtcmVnaW9uLWNvbXBvc2l0
ZWQtYW5kLW5vbi1jb21wb3NpdGVkLW92ZXJsYXAuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRURBMTI0MDI0MzdDOUVBMDBDMjhBOUUg
LyogZWRpdGFibGUtcmVnaW9uLWNvbXBvc2l0ZWQtYW5kLW5vbi1jb21wb3NpdGVkLW92ZXJsYXAu
aHRtbCAqLzsgfTsKIAkJREQwRURGOEQyNzk4QTZBRDAwNTE1MkFEIC8qIGxpYmd0ZXN0LmEgaW4g
UHJvZHVjdCBEZXBlbmRlbmNpZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjNGQzNFRTIxMzY3OEI3MzAwMTI2QTY1IC8qIGxpYmd0ZXN0LmEgKi87IH07CiAJCURERDIxODc2
MjdBMjE3NTAwMDJCNzAyNSAvKiBXZWJLaXQuZnJhbWV3b3JrIGluIFByb2R1Y3QgRGVwZW5kZW5j
aWVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwODEyMjQ4MTNGQzFCMDMw
MERDMzlBRSAvKiBXZWJLaXQuZnJhbWV3b3JrICovOyB9OworCQlERjFDN0NFOTI3RjUxNjFEMDBE
ODE0NUMgLyogQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjFDN0NFODI3RjUxNjFEMDBE
ODE0NUMgLyogQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0gKi87IH07CisJ
CURGMUM3Q0VDMjdGNTMwOTcwMEQ4MTQ1QyAvKiBjb25zb2xlLW1lc3NhZ2Utd2l0aC1kZXRhaWxz
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gREYxQzdDRUIyN0Y1MzA1QTAwRDgxNDVDIC8qIGNvbnNvbGUtbWVzc2FnZS13aXRoLWRldGFp
bHMuaHRtbCAqLzsgfTsKIAkJREY2NTgwOTQyNzIyMTY4OTAwQjNGMUMxIC8qIEFTTjFVdGlsaXRp
ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREY2
NTgwOTIyNzIyMTY4OTAwQjNGMUMxIC8qIEFTTjFVdGlsaXRpZXMuY3BwICovOyB9OwogCQlERkI4
MEUzODI2MTUxMkMxMDAyRDQ3NzEgLyogVGVzdEF3YWtlbmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREZCODBFMzYyNjE1MTI0RTAwMkQ0NzcxIC8q
IFRlc3RBd2FrZW5lci5tbSAqLzsgfTsKIAkJRTEyMjBEQ0ExNTVCMjhBQTAwMTNFMkZDIC8qIE1l
bW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyMjBEQzkxNTVC
Mjg3RDAwMTNFMkZDIC8qIE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVn
YXRlLmh0bWwgKi87IH07CkBAIC0xMjk3LDYgKzEyOTksNyBAQAogCQkJCTMxOTAzQzkxMjc2NTA3
NzQwMDM2MzQ3MiAvKiBjb2xvci1zY2hlbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQkwRjE2QkVEODIzMDRBMUYzMDBCNEExNjcgLyogY29tcG9zaXRlZC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCUY0QjgyNUQ4MUVGNERCRkIwMDZFNDE3RiAvKiBjb21wcmVzc2VkLWZp
bGVzLnppcCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlERjFDN0NFQzI3RjUzMDk3MDBEODE0
NUMgLyogY29uc29sZS1tZXNzYWdlLXdpdGgtZGV0YWlscy5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTVDOUU1Njg3MURGOTE0QUUwMEM5RUUzMyAvKiBjb250ZW50QmxvY2tlckNoZWNr
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQ2OUZCMjQxRjAxODA0QjAwNDAxNTM5
IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJRjQxQUI5QTExRUY0Njk2QjAwODNGQTA4IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGV4
dGFyZWEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTI5NTksNiArMjk2Miw5IEBACiAJ
CUNFREExMjQwMjQzN0M5RUEwMEMyOEE5RSAvKiBlZGl0YWJsZS1yZWdpb24tY29tcG9zaXRlZC1h
bmQtbm9uLWNvbXBvc2l0ZWQtb3ZlcmxhcC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBuYW1lID0gImVkaXRhYmxlLXJlZ2lv
bi1jb21wb3NpdGVkLWFuZC1ub24tY29tcG9zaXRlZC1vdmVybGFwLmh0bWwiOyBwYXRoID0gImlv
cy9lZGl0YWJsZS1yZWdpb24tY29tcG9zaXRlZC1hbmQtbm9uLWNvbXBvc2l0ZWQtb3ZlcmxhcC5o
dG1sIjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlEM0JFNUUzNDFFNENFODVFMDBG
RDU2M0EgLyogV0tXZWJWaWV3R2V0Q29udGVudHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdHZXRDb250ZW50cy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJREM2OUFBNjIxQ0Y3N0M2NTAwQzYyNzJGIC8qIFNjb3BlZExhbWJkYS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY29wZWRMYW1iZGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlERjFDN0NFODI3RjUxNjFEMDBEODE0NUMg
LyogQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0
YWlscy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREYxQzdDRUEyN0Y1MjM5RjAw
RDgxNDVDIC8qIENvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBDb25zb2xlTWVzc2FnZVdpdGhEZXRhaWxzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlERjFDN0NFQjI3RjUzMDVBMDBEODE0NUMgLyogY29uc29sZS1tZXNzYWdlLXdpdGgt
ZGV0YWlscy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNvbnNvbGUtbWVzc2Fn
ZS13aXRoLWRldGFpbHMuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNEIy
NzM4MjFBNDc3MjcwMDlCRDFDQSAvKiBXS05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFyeUNyYXNo
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tOU0RpY3Rpb25h
cnlFbXB0eURpY3Rpb25hcnlDcmFzaC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
REY2NTgwOTIyNzIyMTY4OTAwQjNGMUMxIC8qIEFTTjFVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVNOMVV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCURGNjU4MDkzMjcyMjE2ODkwMEIzRjFDMSAvKiBBU04xVXRpbGl0
aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFTTjFVdGlsaXRpZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NjgsNiArMzQ3NCw3IEBACiAJCQkJN0E4
OUJCNjYyMzMxNjM1RDAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5tbSAqLywK
IAkJCQk3QTg5QkI2OTIzMzE2NTY1MDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9j
b2wuaCAqLywKIAkJCQk1MTc1QzdBMTI2Rjg3NjIzMDAwM0FGNUMgLyogQnVuZGxlUGFnZUNvbnNv
bGVNZXNzYWdlLm1tICovLAorCQkJCURGMUM3Q0U4MjdGNTE2MUQwMEQ4MTQ1QyAvKiBCdW5kbGVQ
YWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbSAqLywKIAkJCQlBMTNFQkJBQzFCODc0MzZG
MDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVycy5tbSAqLywKIAkJCQlBMTNFQkJBRTFCODc0MzZG
MDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSAqLywKIAkJCQkzN0E3MDlBRDFF
M0VBOEIwMDBDQTU5NjkgLyogQnVuZGxlUmFuZ2VIYW5kbGUubW0gKi8sCkBAIC0zNDg1LDYgKzM0
OTIsNyBAQAogCQkJCTFBQUQxOUY1MUM3Q0UyMDMwMDgzMUU0NyAvKiBDb2RpbmcubW0gKi8sCiAJ
CQkJN0MzREI4RTIxRDEyMTI5QjAwQUU4Q0MzIC8qIENvbW1hbmRCYWNrRm9yd2FyZC5tbSAqLywK
IAkJCQk1QzRBODQ5NDFGN0VFRkQ0MDBBQ0ZDNTQgLyogQ29uZmlndXJhdGlvbi5tbSAqLywKKwkJ
CQlERjFDN0NFQTI3RjUyMzlGMDBEODE0NUMgLyogQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5t
bSAqLywKIAkJCQlBMThBQThDQzFDM0ZBMjE4MDA5QjJCOTcgLyogQ29udGVudEZpbHRlcmluZy5o
ICovLAogCQkJCUExNEZDNTg2MUI4OTkxQjYwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nLm1t
ICovLAogCQkJCUExNEZDNTg5MUI4OTkyNzEwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nUGx1
Z0luLm1tICovLApAQCAtNDExNyw2ICs0MTI1LDcgQEAKIAkJCQk5QkFFMTc3QTIyRTJCQjZCMDBE
RjMwOTggLyogY29jb2Etd3JpdGVyLW1hcmt1cC13aXRoLXN5c3RlbS1mb250cy5odG1sICovLAog
CQkJCUU1MDM2Rjc3MjExQkMyMjgwMEJGREJFMiAvKiBjb2xvci1kcm9wLmh0bWwgKi8sCiAJCQkJ
RjRCODI1RDYxRUY0REJENDAwNkU0MTdGIC8qIGNvbXByZXNzZWQtZmlsZXMuemlwICovLAorCQkJ
CURGMUM3Q0VCMjdGNTMwNUEwMEQ4MTQ1QyAvKiBjb25zb2xlLW1lc3NhZ2Utd2l0aC1kZXRhaWxz
Lmh0bWwgKi8sCiAJCQkJRjQ2OUZCMjMxRjAxODAzNTAwNDAxNTM5IC8qIGNvbnRlbnRlZGl0YWJs
ZS1hbmQtdGFyZ2V0Lmh0bWwgKi8sCiAJCQkJRjQxQUI5OUMxRUY0NjkyQzAwODNGQTA4IC8qIGNv
bnRlbnRlZGl0YWJsZS1hbmQtdGV4dGFyZWEuaHRtbCAqLywKIAkJCQlGNEEzMkVDQTFGMDY0MkY0
MDA0N0M1NDQgLyogY29udGVudGVkaXRhYmxlLWluLWlmcmFtZS5odG1sICovLApAQCAtNTk5OSw2
ICs2MDA4LDcgQEAKIAkJCQkzNzRCN0E2MTFERjM3MUNGMDBBQ0NCNkMgLyogQnVuZGxlRWRpdGlu
Z0RlbGVnYXRlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E4OUJCNjgyMzMxNjQzQTAw
NDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUxNzVDN0EyMjZGODc2MjMwMDAzQUY1QyAvKiBCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2UubW0g
aW4gU291cmNlcyAqLywKKwkJCQlERjFDN0NFOTI3RjUxNjFEMDBEODE0NUMgLyogQnVuZGxlUGFn
ZUNvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTNFQkJC
MDFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTM3QTcwOUFGMUUzRUE5N0UwMENBNTk2OSAvKiBCdW5kbGVSYW5nZUhhbmRsZVBs
dWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDNzU3MTYxMjIxMjRDNTIwMEI5RTVBQyAvKiBC
dW5kbGVSZXRhaW5QYWdlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZVBhZ2VDb25zb2xlTWVzc2Fn
ZVdpdGhEZXRhaWxzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9C
dW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWUzNjAx
N2RiNzcwNWNhYTk1MTBmMTk4NGI3YTVlOTljOWI0ZWUwCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVQYWdlQ29uc29sZU1lc3Nh
Z2VXaXRoRGV0YWlscy5tbQpAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0
aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tCdW5kbGVQYWdlLmg+CisjaW1wb3J0IDxXZWJLaXQv
V0tCdW5kbGVQYWdlVUlDbGllbnQuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1JldGFpblB0ci5oPgor
I2ltcG9ydCA8V2ViS2l0L1dLU3RyaW5nQ0YuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nl
c3NQbHVnSW4uaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXJQcml2YXRlLmg+CisKK3N0YXRpYyBOU0FycmF5PE5TU3RyaW5nICo+ICpz
dHJpbmdzQXJyYXlGcm9tV0tBcnJheVJlZihXS0FycmF5UmVmIHdrQXJyYXkpCit7CisgICAgc2l6
ZV90IGl0ZW1Db3VudCA9IFdLQXJyYXlHZXRTaXplKHdrQXJyYXkpOworICAgIE5TTXV0YWJsZUFy
cmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTppdGVtQ291bnRd
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaXRlbUNvdW50OyArK2kpCisgICAgICAgIFth
cnJheSBhZGRPYmplY3Q6VGVzdFdlYktpdEFQSTo6VXRpbDo6dG9OUygoV0tTdHJpbmdSZWYpV0tB
cnJheUdldEl0ZW1BdEluZGV4KHdrQXJyYXksIGkpKV07CisKKyAgICByZXR1cm4gYXJyYXk7Cit9
CisKK3N0YXRpYyB2b2lkIHdpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0NvbnNvbGVDYWxsYmFj
ayhXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tBcnJheVJlZiBt
ZXNzYWdlQXJndW1lbnRzLCB1aW50MzJfdCBsaW5lTnVtYmVyLCB1aW50MzJfdCBjb2x1bW5OdW1i
ZXIsIFdLU3RyaW5nUmVmIHNvdXJjZUlELCBjb25zdCB2b2lkICopCit7CisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiQ29uc29sZU1lc3NhZ2UiKSk7CisKKyAgICBOU1N0cmluZyAqbnNNZXNzYWdl
ID0gbWVzc2FnZSA/IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnRvTlMobWVzc2FnZSkgOiBAIiI7Cisg
ICAgTlNBcnJheTxOU1N0cmluZyAqPiAqbnNNZXNzYWdlQXJndW1lbnRzID0gc3RyaW5nc0FycmF5
RnJvbVdLQXJyYXlSZWYobWVzc2FnZUFyZ3VtZW50cyk7CisgICAgaWYgKG5zTWVzc2FnZUFyZ3Vt
ZW50cy5jb3VudCkgeworICAgICAgICBuc01lc3NhZ2UgPSBbbnNNZXNzYWdlIHN0cmluZ0J5QXBw
ZW5kaW5nU3RyaW5nOkAiICJdOworICAgICAgICBuc01lc3NhZ2UgPSBbbnNNZXNzYWdlIHN0cmlu
Z0J5QXBwZW5kaW5nU3RyaW5nOltuc01lc3NhZ2VBcmd1bWVudHMgY29tcG9uZW50c0pvaW5lZEJ5
U3RyaW5nOkAiICJdXTsKKyAgICB9CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gZnVs
bE1lc3NhZ2UgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChfX2JyaWRnZSBD
RlN0cmluZ1JlZiluc01lc3NhZ2UpKTsKKworICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKHBh
Z2UsIG1lc3NhZ2VOYW1lLmdldCgpLCBmdWxsTWVzc2FnZS5nZXQoKSk7Cit9CisKK0BpbnRlcmZh
Y2UgQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMgOiBOU09iamVjdCA8V0tXZWJQ
cm9jZXNzUGx1Z0luPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gQnVuZGxlUGFnZUNvbnNvbGVN
ZXNzYWdlV2l0aERldGFpbHMKKworLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luOihXS1dlYlByb2Nl
c3NQbHVnSW5Db250cm9sbGVyICopcGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVCcm93c2VyQ29u
dGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ciAqKWJyb3dzZXJDb250ZXh0Q29udHJvbGxlcgoreworICAgIFdLQnVuZGxlUGFnZVVJQ2xpZW50
VjUgY2xpZW50OworICAgIG1lbXNldCgmY2xpZW50LCAwLCBzaXplb2YoY2xpZW50KSk7CisgICAg
Y2xpZW50LmJhc2UudmVyc2lvbiA9IDU7CisgICAgY2xpZW50LndpbGxBZGRNZXNzYWdlV2l0aERl
dGFpbHNUb0NvbnNvbGUgPSB3aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25zb2xlQ2FsbGJh
Y2s7CisgICAgV0tCdW5kbGVQYWdlU2V0VUlDbGllbnQoW2Jyb3dzZXJDb250ZXh0Q29udHJvbGxl
ciBfYnVuZGxlUGFnZVJlZl0sICZjbGllbnQuYmFzZSk7Cit9CisKK0BlbmQKKworI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45YzJmMTY1ZDU1YmIyNGFiNzZmMWJjN2QyZmViMDI0YjgxMTkwYTY0Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db25zb2xlTWVz
c2FnZVdpdGhEZXRhaWxzLm1tCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiUGxhdGZvcm1VdGls
aXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNp
bXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+CisjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0
aWMgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBjb25zb2xlTWVzc2FnZXM7CisKK3N0YXRpYyB2
b2lkIGRpZFJlY2VpdmVQYWdlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1BhZ2VSZWYsIFdL
U3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZSwgY29uc3Qgdm9pZCopCit7
CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJDb25z
b2xlTWVzc2FnZSIpKQorICAgICAgICBbY29uc29sZU1lc3NhZ2VzIGFkZE9iamVjdDpVdGlsOjp0
b05TKChXS1N0cmluZ1JlZiltZXNzYWdlKV07Cit9CisKK3N0YXRpYyB2b2lkIHNldEluamVjdGVk
QnVuZGxlQ2xpZW50KFdLV2ViVmlldyAqd2ViVmlldykKK3sKKyAgICBXS1BhZ2VJbmplY3RlZEJ1
bmRsZUNsaWVudFYwIGluamVjdGVkQnVuZGxlQ2xpZW50ID0geworICAgICAgICB7IDAsIG51bGxw
dHIgfSwKKyAgICAgICAgZGlkUmVjZWl2ZVBhZ2VNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlLAor
ICAgICAgICBudWxscHRyLAorICAgIH07CisgICAgV0tQYWdlU2V0UGFnZUluamVjdGVkQnVuZGxl
Q2xpZW50KHdlYlZpZXcuX3BhZ2VSZWZGb3JUcmFuc2l0aW9uVG9XS1dlYlZpZXcsICZpbmplY3Rl
ZEJ1bmRsZUNsaWVudC5iYXNlKTsKK30KKworVEVTVChXZWJLaXQsIENvbnNvbGVNZXNzYWdlV2l0
aERldGFpbHMpCit7CisgICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9
IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJ
bkNsYXNzTmFtZTpAIkJ1bmRsZVBhZ2VDb25zb2xlTWVzc2FnZVdpdGhEZXRhaWxzIl07CisKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b25dKTsKKyAgICBzZXRJbmplY3RlZEJ1bmRsZUNsaWVudCh3ZWJWaWV3LmdldCgpKTsKKworICAg
IGNvbnNvbGVNZXNzYWdlcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiY29uc29sZS1tZXNzYWdlLXdpdGgtZGV0
YWlscyJdOworCisgICAgRVhQRUNUX0VRKFtjb25zb2xlTWVzc2FnZXMgY291bnRdLCAydSk7Cisg
ICAgRVhQRUNUX1RSVUUoW2NvbnNvbGVNZXNzYWdlcy5nZXQoKVswXSBpc0VxdWFsVG9TdHJpbmc6
QCJIZWxsbyB3b3JsZCEiXSk7CisgICAgRVhQRUNUX1RSVUUoW2NvbnNvbGVNZXNzYWdlcy5nZXQo
KVsxXSBpc0VxdWFsVG9TdHJpbmc6QCJIZWxsbyB3b3JsZCEgYXJndW1lbnQxIGFyZ3VtZW50MiJd
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9jb25zb2xlLW1lc3NhZ2Utd2l0aC1kZXRhaWxzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL2NvbnNvbGUtbWVzc2FnZS13aXRoLWRldGFpbHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNjFlZDYzZjI4NGIwNGY2ZTg4NTNhMjg4NTRjZDQxZTE0M2U4MWFkCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9jb25zb2xl
LW1lc3NhZ2Utd2l0aC1kZXRhaWxzLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgY29uc29sZS5sb2coIkhlbGxv
IHdvcmxkISIpOworICAgIGNvbnNvbGUubG9nKCJIZWxsbyB3b3JsZCEiLCAiYXJndW1lbnQxIiwg
ImFyZ3VtZW50MiIpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456419</attachid>
            <date>2022-04-01 16:40:04 -0700</date>
            <delta_ts>2022-04-01 19:24:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238032-20220401164003.patch</filename>
            <type>text/plain</type>
            <size>43509</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZTk4YjYzNzEzODYzOWZjZGU4ZTZhNmJkY2JlY2Q3ZDEzMWNiMDk1Li44OGRiYThhMDU5YzZmYTRl
MTc1ZjhiNWQyYzY5NWE2ZjJkZjQzNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMi0wNC0wMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CisK
KyAgICAgICAgV0tCdW5kbGVQYWdlVUlDbGllbnQgY29uc29sZSBtZXNzYWdlIHN1cHBvcnQgc2hv
dWxkIGluY2x1ZGUgc291cmNlIFVSTCwgY29sdW1uIG51bWJlciwgYW5kIGNvbnNvbGUgbWVzc2Fn
ZXMgd2l0aCBhcmd1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzODAzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIGZ1bmN0aW9uIHRvIFNjcmlwdEFyZ3VtZW50cyB0byBnZXQgYSB2ZWN0
b3Igb2YgYXJndW1lbnQgc3RyaW5ncy4gQXMgd2UgZG8gaW4KKyAgICAgICAgU2NyaXB0QXJndW1l
bnRzOjpnZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcoKSwgYXZvaWQgdHJpZ2dlcmluZyBQcm94eSB0
cmFwcyBvbiBhIFByb3h5IG9iamVjdCB3aGVuCisgICAgICAgIGdlbmVyYXRpbmcgdGhlIHZlY3Rv
ci4KKworICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM6OmdldEFyZ3VtZW50QXRJbmRleEFzU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgUmVmYWN0b3JlZCBmcm9tIGdldEZpcnN0QXJndW1lbnRBc1N0cmluZygp
LgorICAgICAgICAKKyAgICAgICAgKEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzOjpnZXRGaXJz
dEFyZ3VtZW50QXNTdHJpbmcgY29uc3QpOgorICAgICAgICBVc2UgZ2V0QXJndW1lbnRBdEluZGV4
QXNTdHJpbmcoKS4KKyAgICAgICAgCisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50
czo6Z2V0QXJndW1lbnRzQXNTdHJpbmdzIGNvbnN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2Ny
aXB0QXJndW1lbnRzLmg6CisKIDIwMjItMDQtMDEgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9A
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggbm9uLXVuaWZpZWQgYnVpbGQg
YWZ0ZXIgcjI5MjE5MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg4ZTcwZTI0MjRjOWI2MjM2OWMyN2RkODhkZjhi
OGY4NGZiMTExMDYuLmI2MTM0NGE2NjA1NmQ2ODYyZTM5MzcyNTRkOGM2MTk2YTJiMTkzODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAyMi0wNC0wMSAgSmVmZiBNaWxsZXIgIDxqZWZm
bUBhcHBsZS5jb20+CisKKyAgICAgICAgV0tCdW5kbGVQYWdlVUlDbGllbnQgY29uc29sZSBtZXNz
YWdlIHN1cHBvcnQgc2hvdWxkIGluY2x1ZGUgc291cmNlIFVSTCwgY29sdW1uIG51bWJlciwgYW5k
IGNvbnNvbGUgbWVzc2FnZXMgd2l0aCBhcmd1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBDaHJvbWVDbGllbnQgYWRkTWVzc2Fn
ZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUoKSBtZW1iZXIgZnVuY3Rpb24gZm9yIGFkZGluZyBhIGNv
bnNvbGUKKyAgICAgICAgbWVzc2FnZSB0aGF0IGluY2x1ZGVzIGZvcm1hdHRlZCBhcmd1bWVudHMu
IEkgbGVmdCB0aGUgZXhpc3RpbmcgYmVoYXZpb3Igb2YgYWRkTWVzc2FnZVRvQ29uc29sZSgpCisg
ICAgICAgIHVuY2hhbmdlZCBzaW5jZSBsYXlvdXQgdGVzdHMgZXhwZWN0IHRvIGdldCB0aGUgY29u
c29sZSBtZXNzYWdlIHdpdGhvdXQgdGhlc2UgYXJndW1lbnRzLgorICAgICAgICAKKyAgICAgICAg
TmV3IEFQSSB0ZXN0IHdhcyBhZGRlZCBpbiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0uCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgIEFkZGVkIGFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xl
KCkuCisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50OjphZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZSk6CisgICAgICAg
IEFkZGVkLCBzdWJjbGFzc2VzIGNhbiBvcHRpb25hbGx5IG92ZXJyaWRlIHRoaXMuCisKKyAgICAg
ICAgKiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkZGl0
aW9uYWxBcmd1bWVudHNGcm9tQXJndW1lbnRzVmVjdG9yKToKKyAgICAgICAgQWRkZWQsIHB1bGxz
IG91dCBhbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgYmV5b25kIHRoZSBpbml0aWFsIG1lc3NhZ2Uu
CisKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNzYWdlKToKKyAg
ICAgICAgQ3JlYXRlIGEgU3BhbiBvZiBhbnkgbWVzc2FnZSBhcmd1bWVudHMgYW5kIGluY2x1ZGUg
aXQgd2hlbiBjYWxsaW5nIHRoZSBuZXcKKyAgICAgICAgYWRkTWVzc2FnZVdpdGhBcmd1bWVudHNU
b0NvbnNvbGUoKSBmdW5jdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGll
bnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKToKKyAgICAgICAgRGl0dG8uCisKIDIwMjItMDQt
MDEgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgUmVuZGVyR3Jp
ZCBwYXJhbWV0ZXIgdG8gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
NGNjMGQ4MjIyYWVjMzZkMDc4N2U5ZjRhODRmODFhYmU4ZmQwYmExMC4uYTVjN2Q0NWVlMjgxYWZm
ZTZhMDFjZjIwM2Q2ZWE2Y2ZmMzI4NzdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAy
Mi0wNC0wMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CisKKyAgICAgICAgV0tCdW5k
bGVQYWdlVUlDbGllbnQgY29uc29sZSBtZXNzYWdlIHN1cHBvcnQgc2hvdWxkIGluY2x1ZGUgc291
cmNlIFVSTCwgY29sdW1uIG51bWJlciwgYW5kIGNvbnNvbGUgbWVzc2FnZXMgd2l0aCBhcmd1bWVu
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
IG5ldyBDaHJvbWVDbGllbnQgYWRkTWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUoKSBtZW1i
ZXIgZnVuY3Rpb24gZm9yIGFkZGluZyBhIGNvbnNvbGUKKyAgICAgICAgbWVzc2FnZSB0aGF0IGlu
Y2x1ZGVzIGZvcm1hdHRlZCBhcmd1bWVudHMuIEkgbGVmdCB0aGUgZXhpc3RpbmcgYmVoYXZpb3Ig
b2YgYWRkTWVzc2FnZVRvQ29uc29sZSgpCisgICAgICAgIHVuY2hhbmdlZCBzaW5jZSBsYXlvdXQg
dGVzdHMgZXhwZWN0IHRvIGdldCB0aGUgY29uc29sZSBtZXNzYWdlIHdpdGhvdXQgdGhlc2UgYXJn
dW1lbnRzLgorCisgICAgICAgICogU2hhcmVkL0FQSS9BUElBcnJheS5jcHA6CisgICAgICAgIChB
UEk6OkFycmF5OjpjcmVhdGVTdHJpbmdBcnJheSk6CisgICAgICAgIEFkZGVkLCBjcmVhdGVzIGFu
IGFycmF5IGZyb20gYSBTcGFuLgorICAgICAgICAKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSUFy
cmF5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0
ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBh
Z2VVSUNsaWVudDo6d2lsbEFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKToKKyAgICAg
ICAgQWRkZWQuCisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgQWRkIFdLQnVuZGxlUGFnZVVJ
Q2xpZW50VjUgd2l0aCBhIG5ldyB3aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25zb2xlIGNh
bGxiYWNrLiBUaGlzIGNhbGxiYWNrIGlzCisgICAgICAgIHNpbWlsYXIgdG8gdGhlIGV4aXN0aW5n
IHdpbGxBZGRNZXNzYWdlVG9Db25zb2xlIGNhbGxiYWNrLCBidXQgaW5jbHVkZXMgYW55IG1lc3Nh
Z2UgYXJndW1lbnRzLCB0aGUKKyAgICAgICAgY29sdW1uIG51bWJlciwgYW5kIHNvdXJjZSBVUkwu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZVVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGll
bnQ6OndpbGxBZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZSk6CisgICAgICAgIEFkZGVk
LCBpbnZva2VzIHRoZSBuZXcgd2lsbEFkZE1lc3NhZ2VXaXRoRGV0YWlsc1RvQ29uc29sZSBjYWxs
YmFjay4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgQWRkIGEgbmV3IGJ1bmRsZSBwYWdlIFVJIGNsaWVu
dCB2ZXJzaW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3Nh
Z2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKToKKyAgICAgICAgQWRkZWQuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICBBZGRl
ZCBhZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZSgpLgorCiAyMDIyLTA0LTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uLmdldE5vdGlmaWNhdGlvbnMgc2hvdWxkIGxpc3QgYWxsIHBlcnNpc3RlbnQgbm90
aWZpY2F0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9T
Y3JpcHRBcmd1bWVudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3Jp
cHRBcmd1bWVudHMuY3BwCmluZGV4IGMxNGVmOGEzMTJmYTJmNjM2NTc5MTFkMzlmOWMzYjE5MmU1
OThhODUuLmQ5MmUxMDA0OGJhMDg4NDAxZWU4YjM2MmI2YThlNWU2OGU1ZmZjNjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5jcHAK
QEAgLTYyLDI5ICs2Miw2NiBAQCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBTY3JpcHRBcmd1bWVudHM6
Omdsb2JhbE9iamVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0LmdldCgpOwog
fQogCi1ib29sIFNjcmlwdEFyZ3VtZW50czo6Z2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5nKFN0cmlu
ZyYgcmVzdWx0KSBjb25zdAorc3RkOjpvcHRpb25hbDxTdHJpbmc+IFNjcmlwdEFyZ3VtZW50czo6
Z2V0QXJndW1lbnRBdEluZGV4QXNTdHJpbmcoc2l6ZV90IGFyZ3VtZW50SW5kZXgpIGNvbnN0CiB7
Ci0gICAgaWYgKCFhcmd1bWVudENvdW50KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoYXJndW1lbnRJbmRleCA+PSBhcmd1bWVudENvdW50KCkpIHsKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQogCiAgICAg
YXV0byogZ2xvYmFsT2JqZWN0ID0gdGhpcy0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgaWYgKCFnbG9i
YWxPYmplY3QpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKLSAgICBhdXRv
IHZhbHVlID0gYXJndW1lbnRBdCgwKTsKLSAgICBpZiAoSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6
UHJveHlPYmplY3QqPihnbG9iYWxPYmplY3QtPnZtKCksIHZhbHVlKSkgewotICAgICAgICByZXN1
bHQgPSAiW29iamVjdCBQcm94eV0iX3M7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KKyAg
ICBhdXRvIHZhbHVlID0gYXJndW1lbnRBdChhcmd1bWVudEluZGV4KTsKKyAgICBpZiAoSlNDOjpq
c0R5bmFtaWNDYXN0PEpTQzo6UHJveHlPYmplY3QqPihnbG9iYWxPYmplY3QtPnZtKCksIHZhbHVl
KSkKKyAgICAgICAgcmV0dXJuICJbb2JqZWN0IFByb3h5XSJfczsKIAorICAgIFN0cmluZyByZXN1
bHQ7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUoZ2xvYmFsT2JqZWN0LT52
bSgpKTsKICAgICByZXN1bHQgPSB2YWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwogICAg
IHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBT
Y3JpcHRBcmd1bWVudHM6OmdldEZpcnN0QXJndW1lbnRBc1N0cmluZyhTdHJpbmcmIHJlc3VsdCkg
Y29uc3QKK3sKKyAgICBpZiAoIWFyZ3VtZW50Q291bnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGFyZ3VtZW50ID0gZ2V0QXJndW1lbnRBdElu
ZGV4QXNTdHJpbmcoMCk7CisgICAgaWYgKCFhcmd1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmVzdWx0ID0gKmFyZ3VtZW50OwogICAgIHJldHVybiB0cnVlOwogfQogCitzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBTY3JpcHRBcmd1bWVudHM6OmdldEFyZ3VtZW50c0Fz
U3RyaW5ncygpIGNvbnN0Cit7CisgICAgaWYgKCFhcmd1bWVudENvdW50KCkpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSB0aGlzLT5nbG9i
YWxPYmplY3QoKTsKKyAgICBpZiAoIWdsb2JhbE9iamVjdCkgeworICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBW
ZWN0b3I8U3RyaW5nPiByZXN1bHQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVu
dENvdW50KCk7ICsraSkgeworICAgICAgICBpZiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGN1cnJl
bnRBcmd1bWVudFN0cmluZyA9IGdldEFyZ3VtZW50QXRJbmRleEFzU3RyaW5nKGkpKQorICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgqY3VycmVudEFyZ3VtZW50U3RyaW5nKTsKKyAgICB9CisKKyAg
ICBpZiAocmVzdWx0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGJvb2wgU2NyaXB0QXJndW1lbnRzOjppc0VxdWFsKGNv
bnN0IFNjcmlwdEFyZ3VtZW50cyYgb3RoZXIpIGNvbnN0CiB7CiAgICAgYXV0byBzaXplID0gbV9h
cmd1bWVudHMuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9TY3JpcHRBcmd1bWVudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
U2NyaXB0QXJndW1lbnRzLmgKaW5kZXggNzkxYmY2MzcyZmNiMmIwNzg5YmIyZTk4NDhkZTJmZDdl
M2M1OGI0OS4uMDhjOGEwNWFlYzVlZGFmMzBmODE4YzIyNmNlNjAyMzM1Y2M4YWMzOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5oCkBA
IC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QoKSBjb25zdDsKIAogICAgIGJvb2wgZ2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5nKFN0cmlu
ZyYgcmVzdWx0KSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBnZXRB
cmd1bWVudHNBc1N0cmluZ3MoKSBjb25zdDsKICAgICBib29sIGlzRXF1YWwoY29uc3QgU2NyaXB0
QXJndW1lbnRzJikgY29uc3Q7CiAKICAgICBzdGF0aWMgU3RyaW5nIHRydW5jYXRlU3RyaW5nRm9y
Q29uc29sZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtNjYsNiArNjcsNyBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2NyaXB0QXJndW1lbnRzKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOworICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBnZXRBcmd1bWVudEF0SW5kZXhBc1N0cmluZyhzaXplX3Qp
IGNvbnN0OwogCiAgICAgSlNDOjpTdHJvbmc8SlNDOjpKU0dsb2JhbE9iamVjdD4gbV9nbG9iYWxP
YmplY3Q7CiAgICAgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+IG1fYXJndW1lbnRz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDlkZjIwM2U1NTk0MzQ3YjMy
NjYxOTYwOGU2YzgyMzIxMTI4MTcxYjUuLmI3OGY4ZDRhZjBjYWJmMDlmMjgyOGUzMGRhYTM1MDBk
NTRjY2ZjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTgzLDYgKzgz
LDcgQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAg
ICB2b2lkIHNldFJlc2l6YWJsZShib29sKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgYWRkTWVzc2Fn
ZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVu
c2lnbmVkLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgdm9pZCBhZGRN
ZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYsIFNwYW48Y29uc3QgU3RyaW5nPiwgdW5zaWduZWQsIHVuc2lnbmVkLCBj
b25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KIAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmLCBGcmFtZSYpIGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGFkNjJjYmM2ZmJjMDI2YjJj
NTdlOWUyZGM2YTRlYmQzMWQ2ZGIwMTAuLmE5OGQxYjU5MGRjNzkyMTRjYTI5YWVmMzNkNDlhNzI0
ZjRmOWRmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTkzLDYgKzE5Myw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpID0gMDsKIAog
ICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNp
Z25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgYWRkTWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNwYW48Y29uc3QgU3RyaW5nPiBt
ZXNzYWdlQXJndW1lbnRzLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOyBVTlVT
RURfUEFSQU0obWVzc2FnZUFyZ3VtZW50cyk7IFVOVVNFRF9QQVJBTShsaW5lTnVtYmVyKTsgVU5V
U0VEX1BBUkFNKGNvbHVtbk51bWJlcik7IFVOVVNFRF9QQVJBTShzb3VyY2VJRCk7IH0KIAogICAg
IHZpcnR1YWwgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSA9IDA7CiAgICAg
dmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIEZyYW1lJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50
LmNwcAppbmRleCBkZmVkYTRkYTVmZDZjNTRiOGVkODdlZGNiMzY3NDlkOGM4MGE4NTBlLi4yZDZh
MzAxZTNkNzcwY2NhYTg1MjExOTE1M2RhZTEzZDhlZDZlYjk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcApAQCAtMTE3LDE2ICsxMTcsMzMgQEAgdm9pZCBQYWdl
Q29uc29sZUNsaWVudDo6dW5tdXRlKCkKICAgICBtdXRlQ291bnQtLTsKIH0KIAorc3RhdGljIFNw
YW48Y29uc3QgU3RyaW5nPiBhZGRpdGlvbmFsQXJndW1lbnRzRnJvbUFyZ3VtZW50c1ZlY3Rvcihj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYXJndW1lbnRzVmVjdG9yKQoreworICAgIEFTU0VSVCghYXJn
dW1lbnRzVmVjdG9yLmlzRW1wdHkoKSk7CisgICAgaWYgKHNpemVfdCBudW1iZXJPZkFkZGl0aW9u
YWxBcmd1bWVudHMgPSBhcmd1bWVudHNWZWN0b3Iuc2l6ZSgpIC0gMSkKKyAgICAgICAgcmV0dXJu
IGFyZ3VtZW50c1ZlY3Rvci5zcGFuKCkuc3Vic3BhbigxLCBudW1iZXJPZkFkZGl0aW9uYWxBcmd1
bWVudHMpOworCisgICAgcmV0dXJuIHsgfTsKK30KKwogdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6
YWRkTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4mJiBj
b25zb2xlTWVzc2FnZSkKIHsKICAgICBpZiAoIW1fcGFnZS51c2VzRXBoZW1lcmFsU2Vzc2lvbigp
KSB7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgICAgICBTcGFuPGNvbnN0IFN0cmluZz4g
bWVzc2FnZUFyZ3VtZW50czsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4g
bWVzc2FnZUFyZ3VtZW50c1ZlY3RvcjsKICAgICAgICAgaWYgKGNvbnNvbGVNZXNzYWdlLT50eXBl
KCkgPT0gTWVzc2FnZVR5cGU6OkltYWdlKSB7CiAgICAgICAgICAgICBBU1NFUlQoY29uc29sZU1l
c3NhZ2UtPmFyZ3VtZW50cygpKTsKLSAgICAgICAgICAgIGNvbnNvbGVNZXNzYWdlLT5hcmd1bWVu
dHMoKS0+Z2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5nKG1lc3NhZ2UpOworICAgICAgICAgICAgbWVz
c2FnZUFyZ3VtZW50c1ZlY3RvciA9IGNvbnNvbGVNZXNzYWdlLT5hcmd1bWVudHMoKS0+Z2V0QXJn
dW1lbnRzQXNTdHJpbmdzKCk7CisgICAgICAgICAgICBpZiAobWVzc2FnZUFyZ3VtZW50c1ZlY3Rv
cikgeworICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlQXJndW1lbnRzVmVjdG9yLT5m
aXJzdCgpOworICAgICAgICAgICAgICAgIG1lc3NhZ2VBcmd1bWVudHMgPSBhZGRpdGlvbmFsQXJn
dW1lbnRzRnJvbUFyZ3VtZW50c1ZlY3RvcigqbWVzc2FnZUFyZ3VtZW50c1ZlY3Rvcik7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbWVzc2FnZSA9IGNvbnNvbGVN
ZXNzYWdlLT5tZXNzYWdlKCk7CisKICAgICAgICAgbV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLmFk
ZE1lc3NhZ2VUb0NvbnNvbGUoY29uc29sZU1lc3NhZ2UtPnNvdXJjZSgpLCBjb25zb2xlTWVzc2Fn
ZS0+bGV2ZWwoKSwgbWVzc2FnZSwgY29uc29sZU1lc3NhZ2UtPmxpbmUoKSwgY29uc29sZU1lc3Nh
Z2UtPmNvbHVtbigpLCBjb25zb2xlTWVzc2FnZS0+dXJsKCkpOworICAgICAgICBtX3BhZ2UuY2hy
b21lKCkuY2xpZW50KCkuYWRkTWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUoY29uc29sZU1l
c3NhZ2UtPnNvdXJjZSgpLCBjb25zb2xlTWVzc2FnZS0+bGV2ZWwoKSwgbWVzc2FnZSwgbWVzc2Fn
ZUFyZ3VtZW50cywgY29uc29sZU1lc3NhZ2UtPmxpbmUoKSwgY29uc29sZU1lc3NhZ2UtPmNvbHVt
bigpLCBjb25zb2xlTWVzc2FnZS0+dXJsKCkpOwogCiAgICAgICAgIGlmIChVTkxJS0VMWShtX3Bh
Z2Uuc2V0dGluZ3MoKS5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpIHx8
IHNob3VsZFByaW50RXhjZXB0aW9ucygpKSkgewogICAgICAgICAgICAgaWYgKGNvbnNvbGVNZXNz
YWdlLT50eXBlKCkgPT0gTWVzc2FnZVR5cGU6OkltYWdlKSB7CkBAIC0xNzEsMTEgKzE4OCwxNSBA
QCB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbgogICAgIGFkZE1lc3NhZ2UoV1RGTW92ZShtZXNzYWdl
KSk7CiB9CiAKLQogdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5kTGV2
ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+
JiYgYXJndW1lbnRzKQogewogICAgIFN0cmluZyBtZXNzYWdlVGV4dDsKLSAgICBib29sIGdvdE1l
c3NhZ2UgPSBhcmd1bWVudHMtPmdldEZpcnN0QXJndW1lbnRBc1N0cmluZyhtZXNzYWdlVGV4dCk7
CisgICAgU3Bhbjxjb25zdCBTdHJpbmc+IG1lc3NhZ2VBcmd1bWVudHM7CisgICAgc3RkOjpvcHRp
b25hbDxWZWN0b3I8U3RyaW5nPj4gbWVzc2FnZUFyZ3VtZW50c1ZlY3RvciA9IGFyZ3VtZW50cy0+
Z2V0QXJndW1lbnRzQXNTdHJpbmdzKCk7CisgICAgaWYgKG1lc3NhZ2VBcmd1bWVudHNWZWN0b3Ip
IHsKKyAgICAgICAgbWVzc2FnZVRleHQgPSBtZXNzYWdlQXJndW1lbnRzVmVjdG9yLT5maXJzdCgp
OworICAgICAgICBtZXNzYWdlQXJndW1lbnRzID0gYWRkaXRpb25hbEFyZ3VtZW50c0Zyb21Bcmd1
bWVudHNWZWN0b3IoKm1lc3NhZ2VBcmd1bWVudHNWZWN0b3IpOworICAgIH0KIAogICAgIGF1dG8g
bWVzc2FnZSA9IG1ha2VVbmlxdWU8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNv
dXJjZTo6Q29uc29sZUFQSSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2VUZXh0LCBhcmd1bWVudHMuY29w
eVJlZigpLCBsZXhpY2FsR2xvYmFsT2JqZWN0KTsKIApAQCAtMTg4LDggKzIwOSwxMCBAQCB2b2lk
IFBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0
eXBlLCBNZXNzYWdlTGV2ZWwgbAogICAgIGlmIChtX3BhZ2UudXNlc0VwaGVtZXJhbFNlc3Npb24o
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGdvdE1lc3NhZ2UpCisgICAgaWYgKG1lc3Nh
Z2VBcmd1bWVudHNWZWN0b3IpIHsKICAgICAgICAgbV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLmFk
ZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgbGV2ZWwsIG1lc3Nh
Z2VUZXh0LCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHVybCk7CisgICAgICAgIG1fcGFnZS5j
aHJvbWUoKS5jbGllbnQoKS5hZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShNZXNzYWdl
U291cmNlOjpDb25zb2xlQVBJLCBsZXZlbCwgbWVzc2FnZVRleHQsIG1lc3NhZ2VBcmd1bWVudHMs
IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgdXJsKTsKKyAgICB9CiAKICAgICBpZiAobV9wYWdl
LnNldHRpbmdzKCkubG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSB8fCBQ
YWdlQ29uc29sZUNsaWVudDo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpCiAgICAgICAgIENvbnNv
bGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2U6
OkNvbnNvbGVBUEksIHR5cGUsIGxldmVsLCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGFy
Z3VtZW50cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUFycmF5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElBcnJheS5jcHAKaW5kZXggNmYwMDgw
YTVhNGM5YjI5NGRmZWYxY2QzMDRjZmE2ZjdkYmFjMWQyNC4uNWEwMTExMTIyYWQzZTQ4MTVmMGI4
YmMxZTk5ZjBkODAwNWFmNDRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0FQSUFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJQXJyYXkuY3Bw
CkBAIC00OCw2ICs0OCwxMSBAQCBSZWY8QXJyYXk+IEFycmF5OjpjcmVhdGVTdHJpbmdBcnJheShj
b25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBzdHJpbmdzKQogICAgIHJldHVybiBjcmVhdGUoV1RG
TW92ZShlbGVtZW50cykpOwogfQogCitSZWY8QXJyYXk+IEFycmF5OjpjcmVhdGVTdHJpbmdBcnJh
eShjb25zdCBTcGFuPGNvbnN0IFdURjo6U3RyaW5nPiBzdHJpbmdzKQoreworICAgIHJldHVybiBj
cmVhdGVTdHJpbmdBcnJheShWZWN0b3I8V1RGOjpTdHJpbmc+KHN0cmluZ3MpKTsKK30KKwogVmVj
dG9yPFdURjo6U3RyaW5nPiBBcnJheTo6dG9TdHJpbmdWZWN0b3IoKQogewogICAgIFZlY3RvcjxX
VEY6OlN0cmluZz4gcGF0dGVybnNWZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQVBJQXJyYXkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElBcnJheS5o
CmluZGV4IDFmZWYwNjkzMjNmZWNiZTU1NTc2MGYxZjE1NzM2Mzk5M2QzM2Q2ODcuLjUxODAyODE1
ZDU3NTc2YjI3NzY3NzMyZjhkZTM2ZWY2MTRmNzljMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9B
UElBcnJheS5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEFycmF5
PiBjcmVhdGUoKTsKICAgICBzdGF0aWMgUmVmPEFycmF5PiBjcmVhdGUoVmVjdG9yPFJlZlB0cjxP
YmplY3Q+PiYmKTsKICAgICBzdGF0aWMgUmVmPEFycmF5PiBjcmVhdGVTdHJpbmdBcnJheShjb25z
dCBWZWN0b3I8V1RGOjpTdHJpbmc+Jik7CisgICAgc3RhdGljIFJlZjxBcnJheT4gY3JlYXRlU3Ry
aW5nQXJyYXkoY29uc3QgU3Bhbjxjb25zdCBXVEY6OlN0cmluZz4pOwogICAgIFZlY3RvcjxXVEY6
OlN0cmluZz4gdG9TdHJpbmdWZWN0b3IoKTsKICAgICBSZWY8QXJyYXk+IGNvcHkoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJ
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCmluZGV4IDk1
ZjQzODJiNTJjMWE1ZjcwODQ4ZjkzYzM4OTViNjk0M2VkYWU3NmMuLjU5MzZmOGE1YzNhNzVmMmYx
ZjQzNjFhMjEzN2MxNTRlNzZkNmYwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0FQSUluamVj
dGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgflBhZ2VVSUNsaWVudCgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHdpbGxBZGRNZXNz
YWdlVG9Db25zb2xlKFdlYktpdDo6V2ViUGFnZSosIEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFdURjo6U3RyaW5nJiBzb3VyY2VJRCkg
eyBVTlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShsaW5lTnVtYmVyKTsgVU5VU0VE
X1BBUkFNKGNvbHVtbk51bWJlcik7IFVOVVNFRF9QQVJBTShzb3VyY2VJRCk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbEFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKFdlYktpdDo6V2Vi
UGFnZSosIEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFdURjo6
U3RyaW5nJiBtZXNzYWdlLCBTcGFuPGNvbnN0IFdURjo6U3RyaW5nPiBtZXNzYWdlQXJndW1lbnRz
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFdURjo6
U3RyaW5nJiBzb3VyY2VJRCkgeyBVTlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTSht
ZXNzYWdlQXJndW1lbnRzKTsgVU5VU0VEX1BBUkFNKGxpbmVOdW1iZXIpOyBVTlVTRURfUEFSQU0o
Y29sdW1uTnVtYmVyKTsgVU5VU0VEX1BBUkFNKHNvdXJjZUlEKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsU2V0U3RhdHVzYmFyVGV4dChXZWJLaXQ6OldlYlBhZ2UqLCBjb25zdCBXVEY6OlN0cmlu
ZyYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0KFdlYktpdDo6
V2ViUGFnZSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZSopIHsgfQogICAg
IHZpcnR1YWwgdm9pZCB3aWxsUnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViS2l0OjpXZWJQYWdlKiwg
Y29uc3QgV1RGOjpTdHJpbmcmLCBXZWJLaXQ6OldlYkZyYW1lKikgeyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
VUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oCmluZGV4IGY1NjZiYmQ2YWQxOWU5NjUyYmRlNzQ3OGIw
ZjkwYTg5MGE0ZTRlNzYuLmI0YzcyMTZiN2FmMDYyMGU0YmNhNzkwNzczYjNlNjE5MTk4ZjAxNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oCkBAIC01NSw2ICs1NSw3
IEBAIHR5cGVkZWYgV0tTdHJpbmdSZWYgKCpXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVFeHRyYVN0
eWxlU2hlZXRDYWxsYmFjaykoY29uc3Qgdm9pCiB0eXBlZGVmIFdLU3RyaW5nUmVmICgqV0tCdW5k
bGVQYWdlUGx1Z0luQ3JlYXRlRXh0cmFTY3JpcHRDYWxsYmFjaykoY29uc3Qgdm9pZCAqY2xpZW50
SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRDbGlja0F1dG9GaWxsQnV0dG9u
Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaW5w
dXRFbGVtZW50LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsK
IHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bh
c3N3b3JkQXBwZWFyYW5jZSkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm9kZUhhbmRs
ZVJlZiBpbnB1dEVsZW1lbnQsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbEFkZE1lc3NhZ2VXaXRoRGV0
YWlsc1RvQ29uc29sZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYg
bWVzc2FnZSwgV0tBcnJheVJlZiBtZXNzYWdlQXJndW1lbnRzLCB1aW50MzJfdCBsaW5lTnVtYmVy
LCB1aW50MzJfdCBjb2x1bW5OdW1iZXIsIFdLU3RyaW5nUmVmIHNvdXJjZUlELCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKTsKIAogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnRCYXNl
IHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC0yMTAsMyArMjExLDQ2IEBAIHR5cGVkZWYg
c3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50VjQgewogICAgIC8vIFZlcnNpb24gNC4KICAgICBX
S0J1bmRsZVBhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2Ug
ICAgICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZTsK
IH0gV0tCdW5kbGVQYWdlVUlDbGllbnRWNDsKKwordHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdl
VUlDbGllbnRWNSB7CisgICAgV0tCdW5kbGVQYWdlVUlDbGllbnRCYXNlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgor
ICAgIFdLQnVuZGxlUGFnZVdpbGxBZGRNZXNzYWdlVG9Db25zb2xlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGU7CisgICAgV0tCdW5kbGVQYWdl
V2lsbFNldFN0YXR1c2JhclRleHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aWxsU2V0U3RhdHVzYmFyVGV4dDsKKyAgICBXS0J1bmRsZVBhZ2VXaWxsUnVuSmF2YVNjcmlwdEFs
ZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxSdW5KYXZhU2NyaXB0QWxl
cnQ7CisgICAgV0tCdW5kbGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICB3aWxsUnVuSmF2YVNjcmlwdENvbmZpcm07CisgICAgV0tCdW5k
bGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWxsUnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0J1bmRsZVBhZ2VNb3VzZURpZE1v
dmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50OworICAgIFdLQnVuZGxlUGFnZURpZFNjcm9sbENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICB2b2lkKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVudXNlZDE7CisgICAgV0tCdW5kbGVQYWdlR2VuZXJhdGVGaWxlRm9yVXBsb2FkQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRHZW5lcmF0ZUZpbGVGb3JVcGxvYWQ7
CisgICAgV0tCdW5kbGVQYWdlR2VuZXJhdGVGaWxlRm9yVXBsb2FkQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnZW5lcmF0ZUZpbGVGb3JVcGxvYWQ7CisgICAgdm9pZCogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnVzZWQyOworICAgIFdLQnVuZGxlUGFnZVN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLQnVuZGxl
UGFnZU1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWVudUJhcklzVmlzaWJsZTsKKyAgICBXS0J1bmRsZVBhZ2VUb29sYmFyc0FyZVZpc2libGVD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsK
KworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS0J1bmRsZVBhZ2VSZWFjaGVkQXBwQ2FjaGVPcmln
aW5RdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgIGRpZFJlYWNoQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhOworCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLQnVuZGxlUGFnZUV4
Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlk
RXhjZWVkRGF0YWJhc2VRdW90YTsKKyAgICBXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVTdGFydExh
YmVsVGl0bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVBsdWdJblN0YXJ0TGFi
ZWxUaXRsZTsKKyAgICBXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVTdGFydExhYmVsU3VidGl0bGVD
YWxsYmFjayAgICAgICAgICAgICAgICAgIGNyZWF0ZVBsdWdJblN0YXJ0TGFiZWxTdWJ0aXRsZTsK
KyAgICBXS0J1bmRsZVBhZ2VQbHVnSW5DcmVhdGVFeHRyYVN0eWxlU2hlZXRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZVBsdWdJbkV4dHJhU3R5bGVTaGVldDsKKyAgICBXS0J1bmRs
ZVBhZ2VQbHVnSW5DcmVhdGVFeHRyYVNjcmlwdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZVBsdWdJbkV4dHJhU2NyaXB0OworCisgICAgLy8gVmVyc2lvbiAzLgorICAgIHZv
aWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW51c2VkMzsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDQ7CisgICAgdm9pZCogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnVzZWQ1OworCisgICAgV0tCdW5kbGVQYWdlRGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbkNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDbGlja0F1dG9GaWxsQnV0dG9uOworCisg
ICAgLy8gVmVyc2lvbiA0LgorICAgIFdLQnVuZGxlUGFnZURpZFJlc2lnbklucHV0RWxlbWVudFN0
cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZSAgICAgICAgICAgZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ry
b25nUGFzc3dvcmRBcHBlYXJhbmNlOworCisgICAgLy8gVmVyc2lvbiA1LgorICAgIFdLQnVuZGxl
UGFnZVdpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0NvbnNvbGVDYWxsYmFjayAgICAgICAgICAg
ICAgd2lsbEFkZE1lc3NhZ2VXaXRoRGV0YWlsc1RvQ29uc29sZTsKK30gV0tCdW5kbGVQYWdlVUlD
bGllbnRWNTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCmluZGV4
IDNmZmI4MDM3NWYyNDczMDc0ZjI3NzM2OTUwYTFlMjhlNWVhM2QxMDMuLjY3YjFhYzFiYTM0ZmVj
YTY1NDEyZDUyMmI2MjI0MzE1ZTQ4MmEyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVVJQ2xpZW50LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgiCiAKKyNpbmNsdWRlICJBUElB
cnJheS5oIgogI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiSW5qZWN0
ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlLmgiCkBAIC00OSw2ICs1MCwxMiBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50
Ojp3aWxsQWRkTWVzc2FnZVRvQ29uc29sZShXZWJQYWdlKiBwYWdlLCBNZXNzYWdlUwogICAgICAg
ICBtX2NsaWVudC53aWxsQWRkTWVzc2FnZVRvQ29uc29sZSh0b0FQSShwYWdlKSwgdG9BUEkobWVz
c2FnZS5pbXBsKCkpLCBsaW5lTnVtYmVyLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQog
Cit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Ojp3aWxsQWRkTWVzc2FnZVdpdGhBcmd1
bWVudHNUb0NvbnNvbGUoV2ViUGFnZSogcGFnZSwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNwYW48Y29uc3QgU3RyaW5nPiBtZXNzYWdlQXJndW1l
bnRzLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlSUQpCit7CisgICAgaWYgKG1fY2xpZW50LndpbGxBZGRNZXNzYWdlV2l0aERl
dGFpbHNUb0NvbnNvbGUpCisgICAgICAgIG1fY2xpZW50LndpbGxBZGRNZXNzYWdlV2l0aERldGFp
bHNUb0NvbnNvbGUodG9BUEkocGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgpKSwgdG9BUEkoJkFQ
STo6QXJyYXk6OmNyZWF0ZVN0cmluZ0FycmF5KG1lc3NhZ2VBcmd1bWVudHMpLmxlYWtSZWYoKSks
IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgdG9BUEkoc291cmNlSUQuaW1wbCgpKSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVu
dDo6d2lsbFNldFN0YXR1c2JhclRleHQoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBzdGF0
dXNiYXJUZXh0KQogewogICAgIGlmIChtX2NsaWVudC53aWxsU2V0U3RhdHVzYmFyVGV4dCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKaW5kZXggMTMyZTk0YTI4Y2FhMGNk
N2QwOWYyODEwMDQ1ODUwMGI5Yjc4OGUyMy4uY2U1NWMwYmUxY2VkZDE4NmNiODIyZjg1YTM1ZmNm
OWQ2ZDVhNTFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKQEAg
LTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBPYmplY3Q7CiAKIHRlbXBsYXRl
PD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0
eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlVUlDbGllbnRWMCwgV0tCdW5kbGVQYWdlVUlD
bGllbnRWMSwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMiwgV0tCdW5kbGVQYWdlVUlDbGllbnRWMywg
V0tCdW5kbGVQYWdlVUlDbGllbnRWND4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxl
PFdLQnVuZGxlUGFnZVVJQ2xpZW50VjAsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjEsIFdLQnVuZGxl
UGFnZVVJQ2xpZW50VjIsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjMsIFdLQnVuZGxlUGFnZVVJQ2xp
ZW50VjQsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjU+IFZlcnNpb25zOwogfTsKIH0KIApAQCAtNDYs
NiArNDYsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGll
bnQoY29uc3QgV0tCdW5kbGVQYWdlVUlDbGllbnRCYXNlKik7CiAKICAgICB2b2lkIHdpbGxBZGRN
ZXNzYWdlVG9Db25zb2xlKFdlYlBhZ2UqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1u
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxB
ZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShXZWJQYWdlKiwgTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNwYW48Y29uc3QgU3RyaW5nPiBt
ZXNzYWdlQXJndW1lbnRzLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpIG92ZXJyaWRlOwogICAgIHZvaWQgd2lsbFNldFN0
YXR1c2JhclRleHQoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQg
d2lsbFJ1bkphdmFTY3JpcHRBbGVydChXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiwgV2ViRnJhbWUq
KSBvdmVycmlkZTsKICAgICB2b2lkIHdpbGxSdW5KYXZhU2NyaXB0Q29uZmlybShXZWJQYWdlKiwg
Y29uc3QgU3RyaW5nJiwgV2ViRnJhbWUqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggM2UxYzkwNTA1ZmViOTYwNTdjNDhmYzdkMTBlNDQxYTBiNTUzYjFjOS4uZWM4M2JjYWU3
ZGNlMDAzYmM5NWYwYjg0OWI3NWEyNDRhYTViMjlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTQyMSw2ICs0MjEsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0Nv
bnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXYKICAgICBtX3BhZ2Uu
aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLndpbGxBZGRNZXNzYWdlVG9Db25zb2xlKCZtX3BhZ2Us
IHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgc291cmNl
SUQpOwogfQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVdpdGhBcmd1bWVudHNU
b0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBTcGFuPGNvbnN0IFN0cmluZz4gbWVzc2FnZUFyZ3VtZW50cywgdW5z
aWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZUlEKQoreworICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkud2lsbEFkZE1l
c3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKCZtX3BhZ2UsIHNvdXJjZSwgbGV2ZWwsIG1lc3Nh
Z2UsIG1lc3NhZ2VBcmd1bWVudHMsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgc291cmNlSUQp
OworfQorCiBib29sIFdlYkNocm9tZUNsaWVudDo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKCkKIHsKICAgICByZXR1cm4gbV9wYWdlLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDI2NTBjMjJjMzRjYWY2OGZhMWU2Y2FjZmE4ZmIy
N2MwNjgxYTYwMTIuLmU2ZmJiYWY4NzY1MDVjZDM0ZmYwNTM4ZmJiZTk3NzAwZGMyYmJiYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTk5LDYgKzk5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNl
dFJlc2l6YWJsZShib29sKSBmaW5hbDsKICAgICAKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNv
bGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlSUQpIGZpbmFsOworICAgIHZvaWQgYWRkTWVzc2FnZVdpdGhBcmd1bWVu
dHNUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBTcGFuPGNvbnN0IFN0cmluZz4gbWVzc2FnZUFyZ3VtZW50cywgdW5z
aWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZUlEKSBmaW5hbDsKICAgICAKICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbCgpIGZpbmFsOwogICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5NzFiMWM1MzQ1MTlhMmYwMGZj
ZjYyYWVlNWFiMTRhZmM3NGQ1MDAxLi45YWFkZjcxNDRlYjE4YzcyYTRkOTE5ZWJiODVlMWY0MmUy
ZGYwZjY1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjYgQEAKKzIwMjItMDQtMDEgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUu
Y29tPgorCisgICAgICAgIFdLQnVuZGxlUGFnZVVJQ2xpZW50IGNvbnNvbGUgbWVzc2FnZSBzdXBw
b3J0IHNob3VsZCBpbmNsdWRlIHNvdXJjZSBVUkwsIGNvbHVtbiBudW1iZXIsIGFuZCBjb25zb2xl
IG1lc3NhZ2VzIHdpdGggYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzgwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IGZvciB0aGUgbmV3IHdpbGxBZGRNZXNzYWdlV2l0
aERldGFpbHNUb0NvbnNvbGUgY2FsbGJhY2sgaW4gV0tCdW5kbGVQYWdlVUlDbGllbnQuIFRoaXMK
KyAgICAgICAgaW5jbHVkZXMgYSBuZXcgV0tXZWJQcm9jZXNzUGx1Z0luIHN1YmNsYXNzLCBCdW5k
bGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscywgdGhhdCBpbXBsZW1lbnRzCisgICAgICAg
IHRoaXMgY2FsbGJhY2sgYW5kIGZvcm1hdHMgdGhlIG1lc3NhZ2UgYW5kIGFyZ3VtZW50cyBpbnRv
IGEgc2luZ2xlIHN0cmluZyB3aGljaCBpdCBzZW5kcyB0byB0aGUgVUkKKyAgICAgICAgcHJvY2Vz
cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZVBhZ2VDb25z
b2xlTWVzc2FnZVdpdGhEZXRhaWxzLm1tOiBBZGRlZC4KKyAgICAgICAgKHdpbGxBZGRNZXNzYWdl
V2l0aERldGFpbHNUb0NvbnNvbGVDYWxsYmFjayk6CisgICAgICAgICgtW0J1bmRsZVBhZ2VDb25z
b2xlTWVzc2FnZVdpdGhEZXRhaWxzIHdlYlByb2Nlc3NQbHVnSW46ZGlkQ3JlYXRlQnJvd3NlckNv
bnRleHRDb250cm9sbGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbTogQWRkZWQuCisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpkaWRSZWNlaXZlUGFnZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6c2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9jb25zb2xlLW1lc3NhZ2Utd2l0aC1kZXRhaWxzLmh0bWw6IEFkZGVkLgorCiAyMDIy
LTA0LTAxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIGRlYnVnIG92ZXJsYXkgZm9yIGludGVyYWN0aW9uIHJlZ2lvbnMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvU291cmNlc0NvY29hLnR4dAppbmRleCA0YjRkZjRiZmZmNTllMGE5MzE4OGY5NTNjMDZhZjU4
ZDc4ZjFlNzY0Li44ZWU4MTZiOWNmNDRhNDQwMzRiMjhlM2RiNDA2Yzk0ZGNmNTYxYWEzIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CkBAIC01OCw2ICs1OCw3IEBAIFRlc3RzL1dl
YktpdENvY29hL0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0KIFRlc3RzL1dlYktp
dENvY29hL0J1bmRsZUVkaXRpbmdEZWxlZ2F0ZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxl
Rm9ybURlbGVnYXRlLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVQYWdlQ29uc29sZU1lc3Nh
Z2UubW0KK1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZVBhZ2VDb25zb2xlTWVzc2FnZVdpdGhEZXRh
aWxzLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVQYXJhbWV0ZXJzLm1tCiBUZXN0cy9XZWJL
aXRDb2NvYS9CdW5kbGVSYW5nZUhhbmRsZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvQ1NTVmlld3Bv
cnRVbml0cy5tbQpAQCAtNzAsNiArNzEsNyBAQCBUZXN0cy9XZWJLaXRDb2NvYS9DbG9zZVdlYlZp
ZXdEdXJpbmdFbnRlckZ1bGxzY3JlZW4ubW0KIFRlc3RzL1dlYktpdENvY29hL0NvZGluZy5tbQog
VGVzdHMvV2ViS2l0Q29jb2EvQ29tbWFuZEJhY2tGb3J3YXJkLm1tCiBUZXN0cy9XZWJLaXRDb2Nv
YS9Db25maWd1cmF0aW9uLm1tCitUZXN0cy9XZWJLaXRDb2NvYS9Db25zb2xlTWVzc2FnZVdpdGhE
ZXRhaWxzLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50RmlsdGVyaW5nLm1tCiBUZXN0cy9X
ZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24ubW0KIFRlc3RzL1dlYktpdENv
Y29hL0NvbnRlbnRTZWN1cml0eVBvbGljeS5tbQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAy
OGViNDgxM2QxNDM4NWM2ZjFiMDlhN2IyZDcwNjE5MjIyMjdjNzliLi45YTc4YTg4MmMwOWJiNTVk
YTFkYjJiYWUyMzJlOTQzNzA0Y2ZkNmJjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTgw
LDYgKzk4MCw4IEBACiAJCUNFREExMjQxMjQzN0M5RkIwMEMyOEE5RSAvKiBlZGl0YWJsZS1yZWdp
b24tY29tcG9zaXRlZC1hbmQtbm9uLWNvbXBvc2l0ZWQtb3ZlcmxhcC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFREExMjQwMjQzN0M5
RUEwMEMyOEE5RSAvKiBlZGl0YWJsZS1yZWdpb24tY29tcG9zaXRlZC1hbmQtbm9uLWNvbXBvc2l0
ZWQtb3ZlcmxhcC5odG1sICovOyB9OwogCQlERDBFREY4RDI3OThBNkFEMDA1MTUyQUQgLyogbGli
Z3Rlc3QuYSBpbiBQcm9kdWN0IERlcGVuZGVuY2llcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGM0ZDM0VFMjEzNjc4QjczMDAxMjZBNjUgLyogbGliZ3Rlc3QuYSAqLzsgfTsK
IAkJREREMjE4NzYyN0EyMTc1MDAwMkI3MDI1IC8qIFdlYktpdC5mcmFtZXdvcmsgaW4gUHJvZHVj
dCBEZXBlbmRlbmNpZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzA4MTIy
NDgxM0ZDMUIwMzAwREMzOUFFIC8qIFdlYktpdC5mcmFtZXdvcmsgKi87IH07CisJCURGMUM3Q0U5
MjdGNTE2MUQwMEQ4MTQ1QyAvKiBCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERGMUM3Q0U4
MjdGNTE2MUQwMEQ4MTQ1QyAvKiBCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5t
bSAqLzsgfTsKKwkJREYxQzdDRUMyN0Y1MzA5NzAwRDgxNDVDIC8qIGNvbnNvbGUtbWVzc2FnZS13
aXRoLWRldGFpbHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBERjFDN0NFQjI3RjUzMDVBMDBEODE0NUMgLyogY29uc29sZS1tZXNzYWdl
LXdpdGgtZGV0YWlscy5odG1sICovOyB9OwogCQlERjY1ODA5NDI3MjIxNjg5MDBCM0YxQzEgLyog
QVNOMVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBERjY1ODA5MjI3MjIxNjg5MDBCM0YxQzEgLyogQVNOMVV0aWxpdGllcy5jcHAgKi87
IH07CiAJCURGQjgwRTM4MjYxNTEyQzEwMDJENDc3MSAvKiBUZXN0QXdha2VuZXIubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERkI4MEUzNjI2MTUxMjRF
MDAyRDQ3NzEgLyogVGVzdEF3YWtlbmVyLm1tICovOyB9OwogCQlFMTIyMERDQTE1NUIyOEFBMDAx
M0UyRkMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTIyMERDOTE1NUIyODdEMDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3Vy
Y2VMb2FkRGVsZWdhdGUuaHRtbCAqLzsgfTsKQEAgLTEyOTcsNiArMTI5OSw3IEBACiAJCQkJMzE5
MDNDOTEyNzY1MDc3NDAwMzYzNDcyIC8qIGNvbG9yLXNjaGVtZS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTBGMTZCRUQ4MjMwNEExRjMwMEI0QTE2NyAvKiBjb21wb3NpdGVkLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjRCODI1RDgxRUY0REJGQjAwNkU0MTdGIC8qIGNv
bXByZXNzZWQtZmlsZXMuemlwIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCURGMUM3Q0VDMjdG
NTMwOTcwMEQ4MTQ1QyAvKiBjb25zb2xlLW1lc3NhZ2Utd2l0aC1kZXRhaWxzLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJNUM5RTU2ODcxREY5MTRBRTAwQzlFRTMzIC8qIGNvbnRlbnRC
bG9ja2VyQ2hlY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDY5RkIyNDFGMDE4
MDRCMDA0MDE1MzkgLyogY29udGVudGVkaXRhYmxlLWFuZC10YXJnZXQuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlGNDFBQjlBMTFFRjQ2OTZCMDA4M0ZBMDggLyogY29udGVudGVkaXRh
YmxlLWFuZC10ZXh0YXJlYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjk1OSw2ICsy
OTYyLDkgQEAKIAkJQ0VEQTEyNDAyNDM3QzlFQTAwQzI4QTlFIC8qIGVkaXRhYmxlLXJlZ2lvbi1j
b21wb3NpdGVkLWFuZC1ub24tY29tcG9zaXRlZC1vdmVybGFwLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IG5hbWUgPSAiZWRp
dGFibGUtcmVnaW9uLWNvbXBvc2l0ZWQtYW5kLW5vbi1jb21wb3NpdGVkLW92ZXJsYXAuaHRtbCI7
IHBhdGggPSAiaW9zL2VkaXRhYmxlLXJlZ2lvbi1jb21wb3NpdGVkLWFuZC1ub24tY29tcG9zaXRl
ZC1vdmVybGFwLmh0bWwiOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUQzQkU1RTM0
MUU0Q0U4NUUwMEZENTYzQSAvKiBXS1dlYlZpZXdHZXRDb250ZW50cy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0dldENvbnRlbnRzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzY5QUE2MjFDRjc3QzY1MDBDNjI3MkYgLyogU2Nv
cGVkTGFtYmRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjb3Bl
ZExhbWJkYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURGMUM3Q0U4MjdGNTE2
MUQwMEQ4MTQ1QyAvKiBCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJ1bmRsZVBhZ2VDb25zb2xlTWVz
c2FnZVdpdGhEZXRhaWxzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlERjFDN0NF
QTI3RjUyMzlGMDBEODE0NUMgLyogQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IENvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCURGMUM3Q0VCMjdGNTMwNUEwMEQ4MTQ1QyAvKiBjb25zb2xlLW1l
c3NhZ2Utd2l0aC1kZXRhaWxzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY29u
c29sZS1tZXNzYWdlLXdpdGgtZGV0YWlscy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREY0QjI3MzgyMUE0NzcyNzAwOUJEMUNBIC8qIFdLTlNEaWN0aW9uYXJ5RW1wdHlEaWN0
aW9uYXJ5Q3Jhc2gubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
S05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFyeUNyYXNoLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlERjY1ODA5MjI3MjIxNjg5MDBCM0YxQzEgLyogQVNOMVV0aWxpdGllcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBU04xVXRpbGl0aWVzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY2NTgwOTMyNzIyMTY4OTAwQjNGMUMxIC8q
IEFTTjFVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVNOMVV0
aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQ2OCw2ICszNDc0LDcg
QEAKIAkJCQk3QTg5QkI2NjIzMzE2MzVEMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUGx1
Z0luLm1tICovLAogCQkJCTdBODlCQjY5MjMzMTY1NjUwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVs
ZWdhdGVQcm90b2NvbC5oICovLAogCQkJCTUxNzVDN0ExMjZGODc2MjMwMDAzQUY1QyAvKiBCdW5k
bGVQYWdlQ29uc29sZU1lc3NhZ2UubW0gKi8sCisJCQkJREYxQzdDRTgyN0Y1MTYxRDAwRDgxNDVD
IC8qIEJ1bmRsZVBhZ2VDb25zb2xlTWVzc2FnZVdpdGhEZXRhaWxzLm1tICovLAogCQkJCUExM0VC
QkFDMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzLm1tICovLAogCQkJCUExM0VC
QkFFMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tICovLAogCQkJ
CTM3QTcwOUFEMUUzRUE4QjAwMENBNTk2OSAvKiBCdW5kbGVSYW5nZUhhbmRsZS5tbSAqLywKQEAg
LTM0ODUsNiArMzQ5Miw3IEBACiAJCQkJMUFBRDE5RjUxQzdDRTIwMzAwODMxRTQ3IC8qIENvZGlu
Zy5tbSAqLywKIAkJCQk3QzNEQjhFMjFEMTIxMjlCMDBBRThDQzMgLyogQ29tbWFuZEJhY2tGb3J3
YXJkLm1tICovLAogCQkJCTVDNEE4NDk0MUY3RUVGRDQwMEFDRkM1NCAvKiBDb25maWd1cmF0aW9u
Lm1tICovLAorCQkJCURGMUM3Q0VBMjdGNTIzOUYwMEQ4MTQ1QyAvKiBDb25zb2xlTWVzc2FnZVdp
dGhEZXRhaWxzLm1tICovLAogCQkJCUExOEFBOENDMUMzRkEyMTgwMDlCMkI5NyAvKiBDb250ZW50
RmlsdGVyaW5nLmggKi8sCiAJCQkJQTE0RkM1ODYxQjg5OTFCNjAwRDEwN0VCIC8qIENvbnRlbnRG
aWx0ZXJpbmcubW0gKi8sCiAJCQkJQTE0RkM1ODkxQjg5OTI3MTAwRDEwN0VCIC8qIENvbnRlbnRG
aWx0ZXJpbmdQbHVnSW4ubW0gKi8sCkBAIC00MTE3LDYgKzQxMjUsNyBAQAogCQkJCTlCQUUxNzdB
MjJFMkJCNkIwMERGMzA5OCAvKiBjb2NvYS13cml0ZXItbWFya3VwLXdpdGgtc3lzdGVtLWZvbnRz
Lmh0bWwgKi8sCiAJCQkJRTUwMzZGNzcyMTFCQzIyODAwQkZEQkUyIC8qIGNvbG9yLWRyb3AuaHRt
bCAqLywKIAkJCQlGNEI4MjVENjFFRjREQkQ0MDA2RTQxN0YgLyogY29tcHJlc3NlZC1maWxlcy56
aXAgKi8sCisJCQkJREYxQzdDRUIyN0Y1MzA1QTAwRDgxNDVDIC8qIGNvbnNvbGUtbWVzc2FnZS13
aXRoLWRldGFpbHMuaHRtbCAqLywKIAkJCQlGNDY5RkIyMzFGMDE4MDM1MDA0MDE1MzkgLyogY29u
dGVudGVkaXRhYmxlLWFuZC10YXJnZXQuaHRtbCAqLywKIAkJCQlGNDFBQjk5QzFFRjQ2OTJDMDA4
M0ZBMDggLyogY29udGVudGVkaXRhYmxlLWFuZC10ZXh0YXJlYS5odG1sICovLAogCQkJCUY0QTMy
RUNBMUYwNjQyRjQwMDQ3QzU0NCAvKiBjb250ZW50ZWRpdGFibGUtaW4taWZyYW1lLmh0bWwgKi8s
CkBAIC01OTk5LDYgKzYwMDgsNyBAQAogCQkJCTM3NEI3QTYxMURGMzcxQ0YwMEFDQ0I2QyAvKiBC
dW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QTg5QkI2
ODIzMzE2NDNBMDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTE3NUM3QTIyNkY4NzYyMzAwMDNBRjVDIC8qIEJ1bmRsZVBhZ2VDb25zb2xl
TWVzc2FnZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCURGMUM3Q0U5MjdGNTE2MUQwMEQ4MTQ1QyAv
KiBCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUExM0VCQkIwMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzdBNzA5QUYxRTNFQTk3RTAwQ0E1OTY5IC8qIEJ1bmRsZVJh
bmdlSGFuZGxlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM3NTcxNjEyMjEyNEM1MjAw
QjlFNUFDIC8qIEJ1bmRsZVJldGFpblBhZ2VQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlUGFnZUNv
bnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0J1bmRsZVBhZ2VDb25zb2xlTWVzc2FnZVdpdGhEZXRhaWxzLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQxZTM2MDE3ZGI3NzA1Y2FhOTUxMGYxOTg0YjdhNWU5OWM5YjRlZTAKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZVBhZ2VD
b25zb2xlTWVzc2FnZVdpdGhEZXRhaWxzLm1tCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiUGxh
dGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0J1bmRsZVBhZ2UuaD4KKyNpbXBv
cnQgPFdlYktpdC9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUmV0
YWluUHRyLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tTdHJpbmdDRi5oPgorI2ltcG9ydCA8V2ViS2l0
L1dLV2ViUHJvY2Vzc1BsdWdJbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlclByaXZhdGUuaD4KKworc3RhdGljIE5TQXJyYXk8TlNT
dHJpbmcgKj4gKnN0cmluZ3NBcnJheUZyb21XS0FycmF5UmVmKFdLQXJyYXlSZWYgd2tBcnJheSkK
K3sKKyAgICBzaXplX3QgaXRlbUNvdW50ID0gV0tBcnJheUdldFNpemUod2tBcnJheSk7CisgICAg
TlNNdXRhYmxlQXJyYXkgKmFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5
Oml0ZW1Db3VudF07CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpdGVtQ291bnQ7ICsraSkK
KyAgICAgICAgW2FycmF5IGFkZE9iamVjdDpUZXN0V2ViS2l0QVBJOjpVdGlsOjp0b05TKChXS1N0
cmluZ1JlZilXS0FycmF5R2V0SXRlbUF0SW5kZXgod2tBcnJheSwgaSkpXTsKKworICAgIHJldHVy
biBhcnJheTsKK30KKworc3RhdGljIHZvaWQgd2lsbEFkZE1lc3NhZ2VXaXRoRGV0YWlsc1RvQ29u
c29sZUNhbGxiYWNrKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBX
S0FycmF5UmVmIG1lc3NhZ2VBcmd1bWVudHMsIHVpbnQzMl90IGxpbmVOdW1iZXIsIHVpbnQzMl90
IGNvbHVtbk51bWJlciwgV0tTdHJpbmdSZWYgc291cmNlSUQsIGNvbnN0IHZvaWQgKikKK3sKKyAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJDb25zb2xlTWVzc2FnZSIpKTsKKworICAgIE5TU3RyaW5n
ICpuc01lc3NhZ2UgPSBtZXNzYWdlID8gVGVzdFdlYktpdEFQSTo6VXRpbDo6dG9OUyhtZXNzYWdl
KSA6IEAiIjsKKyAgICBOU0FycmF5PE5TU3RyaW5nICo+ICpuc01lc3NhZ2VBcmd1bWVudHMgPSBz
dHJpbmdzQXJyYXlGcm9tV0tBcnJheVJlZihtZXNzYWdlQXJndW1lbnRzKTsKKyAgICBpZiAobnNN
ZXNzYWdlQXJndW1lbnRzLmNvdW50KSB7CisgICAgICAgIG5zTWVzc2FnZSA9IFtuc01lc3NhZ2Ug
c3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6QCIgIl07CisgICAgICAgIG5zTWVzc2FnZSA9IFtuc01l
c3NhZ2Ugc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6W25zTWVzc2FnZUFyZ3VtZW50cyBjb21wb25l
bnRzSm9pbmVkQnlTdHJpbmc6QCIgIl1dOworICAgIH0KKworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBmdWxsTWVzc2FnZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmco
KF9fYnJpZGdlIENGU3RyaW5nUmVmKW5zTWVzc2FnZSkpOworCisgICAgV0tCdW5kbGVQYWdlUG9z
dE1lc3NhZ2UocGFnZSwgbWVzc2FnZU5hbWUuZ2V0KCksIGZ1bGxNZXNzYWdlLmdldCgpKTsKK30K
KworQGludGVyZmFjZSBCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscyA6IE5TT2Jq
ZWN0IDxXS1dlYlByb2Nlc3NQbHVnSW4+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBCdW5kbGVQ
YWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscworCistICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46
KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilwbHVnSW5Db250cm9sbGVyIGRpZENyZWF0
ZUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyICopYnJvd3NlckNvbnRleHRDb250cm9sbGVyCit7CisgICAgV0tCdW5kbGVQ
YWdlVUlDbGllbnRWNSBjbGllbnQ7CisgICAgbWVtc2V0KCZjbGllbnQsIDAsIHNpemVvZihjbGll
bnQpKTsKKyAgICBjbGllbnQuYmFzZS52ZXJzaW9uID0gNTsKKyAgICBjbGllbnQud2lsbEFkZE1l
c3NhZ2VXaXRoRGV0YWlsc1RvQ29uc29sZSA9IHdpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0Nv
bnNvbGVDYWxsYmFjazsKKyAgICBXS0J1bmRsZVBhZ2VTZXRVSUNsaWVudChbYnJvd3NlckNvbnRl
eHRDb250cm9sbGVyIF9idW5kbGVQYWdlUmVmXSwgJmNsaWVudC5iYXNlKTsKK30KKworQGVuZAor
CisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Db25zb2xlTWVzc2FnZVdpdGhEZXRhaWxzLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db25zb2xlTWVzc2FnZVdpdGhEZXRhaWxz
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjljMmYxNjVkNTViYjI0YWI3NmYxYmM3ZDJmZWIwMjRiODExOTBhNjQK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0KQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJQ
bGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2Vi
Vmlldy5oIgorI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgorI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4K
KyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IGNvbnNvbGVNZXNzYWdlczsK
Kworc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVBhZ2VNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdL
UGFnZVJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlLCBjb25z
dCB2b2lkKikKK3sKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdl
TmFtZSwgIkNvbnNvbGVNZXNzYWdlIikpCisgICAgICAgIFtjb25zb2xlTWVzc2FnZXMgYWRkT2Jq
ZWN0OlV0aWw6OnRvTlMoKFdLU3RyaW5nUmVmKW1lc3NhZ2UpXTsKK30KKworc3RhdGljIHZvaWQg
c2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoV0tXZWJWaWV3ICp3ZWJWaWV3KQoreworICAgIFdLUGFn
ZUluamVjdGVkQnVuZGxlQ2xpZW50VjAgaW5qZWN0ZWRCdW5kbGVDbGllbnQgPSB7CisgICAgICAg
IHsgMCwgbnVsbHB0ciB9LAorICAgICAgICBkaWRSZWNlaXZlUGFnZU1lc3NhZ2VGcm9tSW5qZWN0
ZWRCdW5kbGUsCisgICAgICAgIG51bGxwdHIsCisgICAgfTsKKyAgICBXS1BhZ2VTZXRQYWdlSW5q
ZWN0ZWRCdW5kbGVDbGllbnQod2ViVmlldy5fcGFnZVJlZkZvclRyYW5zaXRpb25Ub1dLV2ViVmll
dywgJmluamVjdGVkQnVuZGxlQ2xpZW50LmJhc2UpOworfQorCitURVNUKFdlYktpdCwgQ29uc29s
ZU1lc3NhZ2VXaXRoRGV0YWlscykKK3sKKyAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlV2l0aERldGFp
bHMiXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbl0pOworICAgIHNldEluamVjdGVkQnVuZGxlQ2xpZW50KHdlYlZpZXcuZ2V0
KCkpOworCisgICAgY29uc29sZU1lc3NhZ2VzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKKyAg
ICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJjb25zb2xlLW1lc3Nh
Z2Utd2l0aC1kZXRhaWxzIl07CisKKyAgICBFWFBFQ1RfRVEoW2NvbnNvbGVNZXNzYWdlcyBjb3Vu
dF0sIDJ1KTsKKyAgICBFWFBFQ1RfVFJVRShbY29uc29sZU1lc3NhZ2VzLmdldCgpWzBdIGlzRXF1
YWxUb1N0cmluZzpAIkhlbGxvIHdvcmxkISJdKTsKKyAgICBFWFBFQ1RfVFJVRShbY29uc29sZU1l
c3NhZ2VzLmdldCgpWzFdIGlzRXF1YWxUb1N0cmluZzpAIkhlbGxvIHdvcmxkISBhcmd1bWVudDEg
YXJndW1lbnQyIl0pOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL2NvbnNvbGUtbWVzc2FnZS13aXRoLWRldGFpbHMuaHRtbCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY29uc29sZS1tZXNzYWdlLXdpdGgtZGV0YWls
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE2MWVkNjNmMjg0YjA0ZjZlODg1M2EyODg1NGNkNDFlMTQzZTgx
YWQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL2NvbnNvbGUtbWVzc2FnZS13aXRoLWRldGFpbHMuaHRtbApAQCAtMCwwICsxLDExIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICBjb25zb2xl
LmxvZygiSGVsbG8gd29ybGQhIik7CisgICAgY29uc29sZS5sb2coIkhlbGxvIHdvcmxkISIsICJh
cmd1bWVudDEiLCAiYXJndW1lbnQyIik7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456428</attachid>
            <date>2022-04-01 19:24:07 -0700</date>
            <delta_ts>2022-04-01 19:27:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238032-20220401192406.patch</filename>
            <type>text/plain</type>
            <size>44004</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZTk4YjYzNzEzODYzOWZjZGU4ZTZhNmJkY2JlY2Q3ZDEzMWNiMDk1Li45NGFhMDAwZDljN2JhMDA4
YjgyMmQwNGQ0YmE0MzFhMzZlMTVmZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMi0wNC0wMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CisK
KyAgICAgICAgV0tCdW5kbGVQYWdlVUlDbGllbnQgY29uc29sZSBtZXNzYWdlIHN1cHBvcnQgc2hv
dWxkIGluY2x1ZGUgc291cmNlIFVSTCwgY29sdW1uIG51bWJlciwgYW5kIGNvbnNvbGUgbWVzc2Fn
ZXMgd2l0aCBhcmd1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzODAzMgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4u
CisKKyAgICAgICAgQWRkIGEgZnVuY3Rpb24gdG8gU2NyaXB0QXJndW1lbnRzIHRvIGdldCBhIHZl
Y3RvciBvZiBhcmd1bWVudCBzdHJpbmdzLiBBcyB3ZSBkbyBpbgorICAgICAgICBTY3JpcHRBcmd1
bWVudHM6OmdldEZpcnN0QXJndW1lbnRBc1N0cmluZygpLCBhdm9pZCB0cmlnZ2VyaW5nIFByb3h5
IHRyYXBzIG9uIGEgUHJveHkgb2JqZWN0IHdoZW4KKyAgICAgICAgZ2VuZXJhdGluZyB0aGUgdmVj
dG9yLgorCisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5jcHA6CisgICAgICAg
IChJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50czo6Z2V0QXJndW1lbnRBdEluZGV4QXNTdHJpbmcg
Y29uc3QpOgorICAgICAgICBSZWZhY3RvcmVkIGZyb20gZ2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5n
KCkuCisgICAgICAgIAorICAgICAgICAoSW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM6OmdldEZp
cnN0QXJndW1lbnRBc1N0cmluZyBjb25zdCk6CisgICAgICAgIFVzZSBnZXRBcmd1bWVudEF0SW5k
ZXhBc1N0cmluZygpLgorICAgICAgICAKKyAgICAgICAgKEluc3BlY3Rvcjo6U2NyaXB0QXJndW1l
bnRzOjpnZXRBcmd1bWVudHNBc1N0cmluZ3MgY29uc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9T
Y3JpcHRBcmd1bWVudHMuaDoKKwogMjAyMi0wNC0wMSAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlu
b0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBub24tdW5pZmllZCBidWls
ZCBhZnRlciByMjkyMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMwNjQ1OWY0Mzg5MDkxZTFkMjE2YTQxNWEx
MmE0ODc0MzViMDgzNy4uMDQzOWJmNDA4NzQ5OTk1MDJlNGZjZDZlODRkOWI5MGVmZmM0NDE0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIyLTA0LTAxICBKZWZmIE1pbGxlciAgPGpl
ZmZtQGFwcGxlLmNvbT4KKworICAgICAgICBXS0J1bmRsZVBhZ2VVSUNsaWVudCBjb25zb2xlIG1l
c3NhZ2Ugc3VwcG9ydCBzaG91bGQgaW5jbHVkZSBzb3VyY2UgVVJMLCBjb2x1bW4gbnVtYmVyLCBh
bmQgY29uc29sZSBtZXNzYWdlcyB3aXRoIGFyZ3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBZGQgYSBuZXcgQ2hyb21lQ2xpZW50IGFkZE1l
c3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKCkgbWVtYmVyIGZ1bmN0aW9uIGZvciBhZGRpbmcg
YSBjb25zb2xlCisgICAgICAgIG1lc3NhZ2UgdGhhdCBpbmNsdWRlcyBmb3JtYXR0ZWQgYXJndW1l
bnRzLiBJIGxlZnQgdGhlIGV4aXN0aW5nIGJlaGF2aW9yIG9mIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
KQorICAgICAgICB1bmNoYW5nZWQgc2luY2UgbGF5b3V0IHRlc3RzIGV4cGVjdCB0byBnZXQgdGhl
IGNvbnNvbGUgbWVzc2FnZSB3aXRob3V0IHRoZXNlIGFyZ3VtZW50cy4KKyAgICAgICAgCisgICAg
ICAgIE5ldyBBUEkgdGVzdCB3YXMgYWRkZWQgaW4gVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Db25zb2xlTWVzc2FnZVdpdGhEZXRhaWxzLm1tLgorCisgICAgICAgICogbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oOgorICAgICAgICBBZGRlZCBhZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29u
c29sZSgpLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUpOgorICAg
ICAgICBBZGRlZCwgc3ViY2xhc3NlcyBjYW4gb3B0aW9uYWxseSBvdmVycmlkZSB0aGlzLgorCisg
ICAgICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjph
ZGRpdGlvbmFsQXJndW1lbnRzRnJvbUFyZ3VtZW50c1ZlY3Rvcik6CisgICAgICAgIEFkZGVkLCBw
dWxscyBvdXQgYW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGJleW9uZCB0aGUgaW5pdGlhbCBtZXNz
YWdlLgorCisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVzc2FnZSk6
CisgICAgICAgIENyZWF0ZSBhIFNwYW4gb2YgYW55IG1lc3NhZ2UgYXJndW1lbnRzIGFuZCBpbmNs
dWRlIGl0IHdoZW4gY2FsbGluZyB0aGUgbmV3CisgICAgICAgIGFkZE1lc3NhZ2VXaXRoQXJndW1l
bnRzVG9Db25zb2xlKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xl
Q2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbCk6CisgICAgICAgIERpdHRvLgorCiAyMDIy
LTA0LTAxICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAg
ICAgIENTUDogV0FTTSBmYWlscyB0byBleGVjdXRlIGFmdGVyIHdpbmRvdy5vcGVuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDYzZTUwZTQyOGM2OTc2M2Y3MjM4M2ZkYjVjMjQ3Zjk2MTFhMGYzODYuLmI4OTBiMzU1MTVm
OWY2NjljNWQ5ODI4YjU0NmMzNDBkZTAzOGUzZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAK
KzIwMjItMDQtMDEgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIFdL
QnVuZGxlUGFnZVVJQ2xpZW50IGNvbnNvbGUgbWVzc2FnZSBzdXBwb3J0IHNob3VsZCBpbmNsdWRl
IHNvdXJjZSBVUkwsIGNvbHVtbiBudW1iZXIsIGFuZCBjb25zb2xlIG1lc3NhZ2VzIHdpdGggYXJn
dW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzgwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAg
IEFkZCBhIG5ldyBDaHJvbWVDbGllbnQgYWRkTWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUo
KSBtZW1iZXIgZnVuY3Rpb24gZm9yIGFkZGluZyBhIGNvbnNvbGUKKyAgICAgICAgbWVzc2FnZSB0
aGF0IGluY2x1ZGVzIGZvcm1hdHRlZCBhcmd1bWVudHMuIEkgbGVmdCB0aGUgZXhpc3RpbmcgYmVo
YXZpb3Igb2YgYWRkTWVzc2FnZVRvQ29uc29sZSgpCisgICAgICAgIHVuY2hhbmdlZCBzaW5jZSBs
YXlvdXQgdGVzdHMgZXhwZWN0IHRvIGdldCB0aGUgY29uc29sZSBtZXNzYWdlIHdpdGhvdXQgdGhl
c2UgYXJndW1lbnRzLgorCisgICAgICAgICogU2hhcmVkL0FQSS9BUElBcnJheS5jcHA6CisgICAg
ICAgIChBUEk6OkFycmF5OjpjcmVhdGVTdHJpbmdBcnJheSk6CisgICAgICAgIEFkZGVkLCBjcmVh
dGVzIGFuIGFycmF5IGZyb20gYSBTcGFuLgorICAgICAgICAKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSUFycmF5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJ
SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6SW5qZWN0ZWRCdW5k
bGU6OlBhZ2VVSUNsaWVudDo6d2lsbEFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKToK
KyAgICAgICAgQWRkZWQuCisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgQWRkIFdLQnVuZGxl
UGFnZVVJQ2xpZW50VjUgd2l0aCBhIG5ldyB3aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25z
b2xlIGNhbGxiYWNrLiBUaGlzIGNhbGxiYWNrIGlzCisgICAgICAgIHNpbWlsYXIgdG8gdGhlIGV4
aXN0aW5nIHdpbGxBZGRNZXNzYWdlVG9Db25zb2xlIGNhbGxiYWNrLCBidXQgaW5jbHVkZXMgYW55
IG1lc3NhZ2UgYXJndW1lbnRzLCB0aGUKKyAgICAgICAgY29sdW1uIG51bWJlciwgYW5kIHNvdXJj
ZSBVUkwuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZVVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQ6OndpbGxBZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZSk6CisgICAgICAg
IEFkZGVkLCBpbnZva2VzIHRoZSBuZXcgd2lsbEFkZE1lc3NhZ2VXaXRoRGV0YWlsc1RvQ29uc29s
ZSBjYWxsYmFjay4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgQWRkIGEgbmV3IGJ1bmRsZSBwYWdlIFVJ
IGNsaWVudCB2ZXJzaW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFk
ZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKToKKyAgICAgICAgQWRkZWQuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICBBZGRlZCBhZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZSgpLgorCiAyMDIyLTA0LTAx
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
MjkyMTk3KTogMyBUZXN0V2ViS2l0QVBJLkNvbnRlbnRSdWxlTGlzdCBBUEkgdGVzdHMgYXJlIGNv
bnN0YW50IGZhaWx1cmVzL3RpbWVvdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcAppbmRleCBjMTRlZjhhMzEyZmEyZjYzNjU3OTEx
ZDM5ZjljM2IxOTJlNTk4YTg1Li43YzRjZWFlN2YxMTYyYjAyODA1ZWVlZGNhZTUwNzg5ZGVlYWZi
NzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFy
Z3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRB
cmd1bWVudHMuY3BwCkBAIC02MiwyOSArNjIsNDkgQEAgSlNDOjpKU0dsb2JhbE9iamVjdCogU2Ny
aXB0QXJndW1lbnRzOjpnbG9iYWxPYmplY3QoKSBjb25zdAogICAgIHJldHVybiBtX2dsb2JhbE9i
amVjdC5nZXQoKTsKIH0KIAotYm9vbCBTY3JpcHRBcmd1bWVudHM6OmdldEZpcnN0QXJndW1lbnRB
c1N0cmluZyhTdHJpbmcmIHJlc3VsdCkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8U3RyaW5nPiBTY3Jp
cHRBcmd1bWVudHM6OmdldEFyZ3VtZW50QXRJbmRleEFzU3RyaW5nKHNpemVfdCBhcmd1bWVudElu
ZGV4KSBjb25zdAogewotICAgIGlmICghYXJndW1lbnRDb3VudCgpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKGFyZ3VtZW50SW5kZXggPj0gYXJndW1lbnRDb3VudCgpKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gdGhpcy0+
Z2xvYmFsT2JqZWN0KCk7CiAgICAgaWYgKCFnbG9iYWxPYmplY3QpIHsKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKLSAgICBhdXRvIHZhbHVlID0gYXJndW1lbnRBdCgwKTsKLSAg
ICBpZiAoSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6UHJveHlPYmplY3QqPihnbG9iYWxPYmplY3Qt
PnZtKCksIHZhbHVlKSkgewotICAgICAgICByZXN1bHQgPSAiW29iamVjdCBQcm94eV0iX3M7Ci0g
ICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KKyAgICBhdXRvIHZhbHVlID0gYXJndW1lbnRBdChh
cmd1bWVudEluZGV4KTsKKyAgICBpZiAoSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6UHJveHlPYmpl
Y3QqPihnbG9iYWxPYmplY3QtPnZtKCksIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuICJbb2JqZWN0
IFByb3h5XSJfczsKIAorICAgIFN0cmluZyByZXN1bHQ7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfQ0FUQ0hfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICByZXN1bHQgPSB2YWx1ZS50
b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwogICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBTY3JpcHRBcmd1bWVudHM6OmdldEZpcnN0QXJn
dW1lbnRBc1N0cmluZyhTdHJpbmcmIHJlc3VsdCkgY29uc3QKK3sKKyAgICBhdXRvIGFyZ3VtZW50
ID0gZ2V0QXJndW1lbnRBdEluZGV4QXNTdHJpbmcoMCk7CisgICAgaWYgKCFhcmd1bWVudCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVzdWx0ID0gKmFyZ3VtZW50OwogICAgIHJldHVy
biB0cnVlOwogfQogCitWZWN0b3I8U3RyaW5nPiBTY3JpcHRBcmd1bWVudHM6OmdldEFyZ3VtZW50
c0FzU3RyaW5ncygpIGNvbnN0Cit7CisgICAgVmVjdG9yPFN0cmluZz4gcmVzdWx0OworICAgIHJl
c3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGFyZ3VtZW50Q291bnQoKSk7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudENvdW50KCk7ICsraSkgeworICAgICAgICBpZiAoYXV0
byBjdXJyZW50QXJndW1lbnRTdHJpbmcgPSBnZXRBcmd1bWVudEF0SW5kZXhBc1N0cmluZyhpKSkK
KyAgICAgICAgICAgIHJlc3VsdC51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgqY3VycmVudEFyZ3Vt
ZW50U3RyaW5nKSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGJvb2wgU2NyaXB0
QXJndW1lbnRzOjppc0VxdWFsKGNvbnN0IFNjcmlwdEFyZ3VtZW50cyYgb3RoZXIpIGNvbnN0CiB7
CiAgICAgYXV0byBzaXplID0gbV9hcmd1bWVudHMuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmgKaW5kZXggNzkxYmY2MzcyZmNi
MmIwNzg5YmIyZTk4NDhkZTJmZDdlM2M1OGI0OS4uNzdhMDgxOTE2ZjYxYzJmOWJkNzE2YWM4M2Yz
MDlkZGRhN2U4MzI3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9TY3JpcHRBcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L1NjcmlwdEFyZ3VtZW50cy5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdDsKIAogICAgIGJvb2wgZ2V0Rmlyc3RB
cmd1bWVudEFzU3RyaW5nKFN0cmluZyYgcmVzdWx0KSBjb25zdDsKKyAgICBWZWN0b3I8U3RyaW5n
PiBnZXRBcmd1bWVudHNBc1N0cmluZ3MoKSBjb25zdDsKICAgICBib29sIGlzRXF1YWwoY29uc3Qg
U2NyaXB0QXJndW1lbnRzJikgY29uc3Q7CiAKICAgICBzdGF0aWMgU3RyaW5nIHRydW5jYXRlU3Ry
aW5nRm9yQ29uc29sZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtNjYsNiArNjcs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2NyaXB0QXJndW1lbnRzKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMp
OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBnZXRBcmd1bWVudEF0SW5kZXhBc1N0cmluZyhz
aXplX3QpIGNvbnN0OwogCiAgICAgSlNDOjpTdHJvbmc8SlNDOjpKU0dsb2JhbE9iamVjdD4gbV9n
bG9iYWxPYmplY3Q7CiAgICAgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+IG1fYXJn
dW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDlkZjIwM2U1NTk0
MzQ3YjMyNjYxOTYwOGU2YzgyMzIxMTI4MTcxYjUuLmI3OGY4ZDRhZjBjYWJmMDlmMjgyOGUzMGRh
YTM1MDBkNTRjY2ZjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTgz
LDYgKzgzLDcgQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50
IHsKICAgICB2b2lkIHNldFJlc2l6YWJsZShib29sKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgYWRk
TWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgdm9p
ZCBhZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYsIFNwYW48Y29uc3QgU3RyaW5nPiwgdW5zaWduZWQsIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KIAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmLCBGcmFtZSYpIGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGFkNjJjYmM2ZmJj
MDI2YjJjNTdlOWUyZGM2YTRlYmQzMWQ2ZGIwMTAuLmE5OGQxYjU5MGRjNzkyMTRjYTI5YWVmMzNk
NDlhNzI0ZjRmOWRmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTkzLDYg
KzE5Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpID0g
MDsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVdpdGhBcmd1bWVudHNUb0NvbnNvbGUoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNwYW48Y29uc3QgU3Ry
aW5nPiBtZXNzYWdlQXJndW1lbnRzLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1
bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2Up
OyBVTlVTRURfUEFSQU0obWVzc2FnZUFyZ3VtZW50cyk7IFVOVVNFRF9QQVJBTShsaW5lTnVtYmVy
KTsgVU5VU0VEX1BBUkFNKGNvbHVtbk51bWJlcik7IFVOVVNFRF9QQVJBTShzb3VyY2VJRCk7IH0K
IAogICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSA9IDA7
CiAgICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIEZyYW1lJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlQ29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmNwcAppbmRleCBkZmVkYTRkYTVmZDZjNTRiOGVkODdlZGNiMzY3NDlkOGM4MGE4NTBl
Li5kZTk5Yjc3ODZjM2E4ZjI1YjMwNzNiMjgwN2ZhNTJjMmI5ZGZkNGY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcApAQCAtMTIxLDEyICsxMjEsMjAgQEAgdm9p
ZCBQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9y
OjpDb25zb2xlTWVzc2FnZT4mJgogewogICAgIGlmICghbV9wYWdlLnVzZXNFcGhlbWVyYWxTZXNz
aW9uKCkpIHsKICAgICAgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgICAgIFNwYW48Y29uc3QgU3Ry
aW5nPiBhZGRpdGlvbmFsQXJndW1lbnRzOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBtZXNzYWdl
QXJndW1lbnRzVmVjdG9yOwogICAgICAgICBpZiAoY29uc29sZU1lc3NhZ2UtPnR5cGUoKSA9PSBN
ZXNzYWdlVHlwZTo6SW1hZ2UpIHsKICAgICAgICAgICAgIEFTU0VSVChjb25zb2xlTWVzc2FnZS0+
YXJndW1lbnRzKCkpOwotICAgICAgICAgICAgY29uc29sZU1lc3NhZ2UtPmFyZ3VtZW50cygpLT5n
ZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcobWVzc2FnZSk7CisgICAgICAgICAgICBtZXNzYWdlQXJn
dW1lbnRzVmVjdG9yID0gY29uc29sZU1lc3NhZ2UtPmFyZ3VtZW50cygpLT5nZXRBcmd1bWVudHNB
c1N0cmluZ3MoKTsKKyAgICAgICAgICAgIGlmICghbWVzc2FnZUFyZ3VtZW50c1ZlY3Rvci5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZUFyZ3VtZW50c1ZlY3Rv
ci5maXJzdCgpOworICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxBcmd1bWVudHMgPSBtZXNzYWdl
QXJndW1lbnRzVmVjdG9yLnNwYW4oKS5zdWJzcGFuKDEpOworICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIG1lc3NhZ2UgPSBjb25zb2xlTWVzc2FnZS0+bWVzc2FnZSgp
OworCiAgICAgICAgIG1fcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGRNZXNzYWdlVG9Db25zb2xl
KGNvbnNvbGVNZXNzYWdlLT5zb3VyY2UoKSwgY29uc29sZU1lc3NhZ2UtPmxldmVsKCksIG1lc3Nh
Z2UsIGNvbnNvbGVNZXNzYWdlLT5saW5lKCksIGNvbnNvbGVNZXNzYWdlLT5jb2x1bW4oKSwgY29u
c29sZU1lc3NhZ2UtPnVybCgpKTsKKyAgICAgICAgbV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLmFk
ZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKGNvbnNvbGVNZXNzYWdlLT5zb3VyY2UoKSwg
Y29uc29sZU1lc3NhZ2UtPmxldmVsKCksIG1lc3NhZ2UsIGFkZGl0aW9uYWxBcmd1bWVudHMsIGNv
bnNvbGVNZXNzYWdlLT5saW5lKCksIGNvbnNvbGVNZXNzYWdlLT5jb2x1bW4oKSwgY29uc29sZU1l
c3NhZ2UtPnVybCgpKTsKIAogICAgICAgICBpZiAoVU5MSUtFTFkobV9wYWdlLnNldHRpbmdzKCku
bG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSB8fCBzaG91bGRQcmludEV4
Y2VwdGlvbnMoKSkpIHsKICAgICAgICAgICAgIGlmIChjb25zb2xlTWVzc2FnZS0+dHlwZSgpID09
IE1lc3NhZ2VUeXBlOjpJbWFnZSkgewpAQCAtMTcxLDExICsxNzksMTUgQEAgdm9pZCBQYWdlQ29u
c29sZUNsaWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVs
IGxldmVsLCBjb24KICAgICBhZGRNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwogfQogCi0KIHZv
aWQgUGFnZUNvbnNvbGVDbGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBl
IHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykK
IHsKICAgICBTdHJpbmcgbWVzc2FnZVRleHQ7Ci0gICAgYm9vbCBnb3RNZXNzYWdlID0gYXJndW1l
bnRzLT5nZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcobWVzc2FnZVRleHQpOworICAgIFNwYW48Y29u
c3QgU3RyaW5nPiBhZGRpdGlvbmFsQXJndW1lbnRzOworICAgIFZlY3RvcjxTdHJpbmc+IG1lc3Nh
Z2VBcmd1bWVudHNWZWN0b3IgPSBhcmd1bWVudHMtPmdldEFyZ3VtZW50c0FzU3RyaW5ncygpOwor
ICAgIGlmICghbWVzc2FnZUFyZ3VtZW50c1ZlY3Rvci5pc0VtcHR5KCkpIHsKKyAgICAgICAgbWVz
c2FnZVRleHQgPSBtZXNzYWdlQXJndW1lbnRzVmVjdG9yLmZpcnN0KCk7CisgICAgICAgIGFkZGl0
aW9uYWxBcmd1bWVudHMgPSBtZXNzYWdlQXJndW1lbnRzVmVjdG9yLnNwYW4oKS5zdWJzcGFuKDEp
OworICAgIH0KIAogICAgIGF1dG8gbWVzc2FnZSA9IG1ha2VVbmlxdWU8SW5zcGVjdG9yOjpDb25z
b2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgdHlwZSwgbGV2ZWwsIG1lc3Nh
Z2VUZXh0LCBhcmd1bWVudHMuY29weVJlZigpLCBsZXhpY2FsR2xvYmFsT2JqZWN0KTsKIApAQCAt
MTg4LDggKzIwMCwxMCBAQCB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVB
bmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbAogICAgIGlmIChtX3BhZ2Uu
dXNlc0VwaGVtZXJhbFNlc3Npb24oKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGdvdE1l
c3NhZ2UpCisgICAgaWYgKCFtZXNzYWdlQXJndW1lbnRzVmVjdG9yLmlzRW1wdHkoKSkgewogICAg
ICAgICBtX3BhZ2UuY2hyb21lKCkuY2xpZW50KCkuYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdl
U291cmNlOjpDb25zb2xlQVBJLCBsZXZlbCwgbWVzc2FnZVRleHQsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlciwgdXJsKTsKKyAgICAgICAgbV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLmFkZE1lc3Nh
Z2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIGxldmVs
LCBtZXNzYWdlVGV4dCwgYWRkaXRpb25hbEFyZ3VtZW50cywgbGluZU51bWJlciwgY29sdW1uTnVt
YmVyLCB1cmwpOworICAgIH0KIAogICAgIGlmIChtX3BhZ2Uuc2V0dGluZ3MoKS5sb2dzUGFnZU1l
c3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpIHx8IFBhZ2VDb25zb2xlQ2xpZW50OjpzaG91
bGRQcmludEV4Y2VwdGlvbnMoKSkKICAgICAgICAgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xl
TWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgdHlwZSwgbGV2
ZWwsIGxleGljYWxHbG9iYWxPYmplY3QsIFdURk1vdmUoYXJndW1lbnRzKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJQXJyYXkuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0FQSUFycmF5LmNwcAppbmRleCA2ZjAwODBhNWE0YzliMjk0ZGZlZjFjZDMwNGNm
YTZmN2RiYWMxZDI0Li4wZTk1ZWM5OWVjYzBjZWQxNzUzMzU1YjU0NmJhMjc4YjYxZmUzMjJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJQXJyYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElBcnJheS5jcHAKQEAgLTQ4LDYgKzQ4LDEzIEBAIFJl
ZjxBcnJheT4gQXJyYXk6OmNyZWF0ZVN0cmluZ0FycmF5KGNvbnN0IFZlY3RvcjxXVEY6OlN0cmlu
Zz4mIHN0cmluZ3MpCiAgICAgcmV0dXJuIGNyZWF0ZShXVEZNb3ZlKGVsZW1lbnRzKSk7CiB9CiAK
K1JlZjxBcnJheT4gQXJyYXk6OmNyZWF0ZVN0cmluZ0FycmF5KGNvbnN0IFNwYW48Y29uc3QgV1RG
OjpTdHJpbmc+IHN0cmluZ3MpCit7CisgICAgcmV0dXJuIGNyZWF0ZShXVEY6Om1hcChzdHJpbmdz
LCBbXSAoYXV0byBzdHJpbmcpIC0+IFJlZlB0cjxPYmplY3Q+IHsKKyAgICAgICAgcmV0dXJuIEFQ
STo6U3RyaW5nOjpjcmVhdGUoc3RyaW5nKTsKKyAgICB9KSk7Cit9CisKIFZlY3RvcjxXVEY6OlN0
cmluZz4gQXJyYXk6OnRvU3RyaW5nVmVjdG9yKCkKIHsKICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+
IHBhdHRlcm5zVmVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQ
SUFycmF5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJQXJyYXkuaAppbmRleCAxZmVm
MDY5MzIzZmVjYmU1NTU3NjBmMWYxNTczNjM5OTNkMzNkNjg3Li41MTgwMjgxNWQ1NzU3NmIyNzc2
NzczMmY4ZGUzNmVmNjE0Zjc5YzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvQVBJQXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJQXJyYXkuaApA
QCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxBcnJheT4gY3JlYXRlKCk7
CiAgICAgc3RhdGljIFJlZjxBcnJheT4gY3JlYXRlKFZlY3RvcjxSZWZQdHI8T2JqZWN0Pj4mJik7
CiAgICAgc3RhdGljIFJlZjxBcnJheT4gY3JlYXRlU3RyaW5nQXJyYXkoY29uc3QgVmVjdG9yPFdU
Rjo6U3RyaW5nPiYpOworICAgIHN0YXRpYyBSZWY8QXJyYXk+IGNyZWF0ZVN0cmluZ0FycmF5KGNv
bnN0IFNwYW48Y29uc3QgV1RGOjpTdHJpbmc+KTsKICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IHRv
U3RyaW5nVmVjdG9yKCk7CiAgICAgUmVmPEFycmF5PiBjb3B5KCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5k
bGVQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAppbmRleCA5NWY0MzgyYjUyYzFh
NWY3MDg0OGY5M2MzODk1YjY5NDNlZGFlNzZjLi41OTM2ZjhhNWMzYTc1ZjJmMWY0MzYxYTIxMzdj
MTU0ZTc2ZDZmMGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0FQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBh
Z2VVSUNsaWVudC5oCkBAIC01MSw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5QYWdl
VUlDbGllbnQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsQWRkTWVzc2FnZVRvQ29uc29s
ZShXZWJLaXQ6OldlYlBhZ2UqLCBKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVs
LCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWdu
ZWQgY29sdW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlSUQpIHsgVU5VU0VEX1BB
UkFNKG1lc3NhZ2UpOyBVTlVTRURfUEFSQU0obGluZU51bWJlcik7IFVOVVNFRF9QQVJBTShjb2x1
bW5OdW1iZXIpOyBVTlVTRURfUEFSQU0oc291cmNlSUQpOyB9CisgICAgdmlydHVhbCB2b2lkIHdp
bGxBZGRNZXNzYWdlV2l0aEFyZ3VtZW50c1RvQ29uc29sZShXZWJLaXQ6OldlYlBhZ2UqLCBKU0M6
Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBXVEY6OlN0cmluZyYgbWVz
c2FnZSwgU3Bhbjxjb25zdCBXVEY6OlN0cmluZz4gbWVzc2FnZUFyZ3VtZW50cywgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgc291
cmNlSUQpIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOyBVTlVTRURfUEFSQU0obWVzc2FnZUFyZ3Vt
ZW50cyk7IFVOVVNFRF9QQVJBTShsaW5lTnVtYmVyKTsgVU5VU0VEX1BBUkFNKGNvbHVtbk51bWJl
cik7IFVOVVNFRF9QQVJBTShzb3VyY2VJRCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldFN0
YXR1c2JhclRleHQoV2ViS2l0OjpXZWJQYWdlKiwgY29uc3QgV1RGOjpTdHJpbmcmKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFJ1bkphdmFTY3JpcHRBbGVydChXZWJLaXQ6OldlYlBhZ2UqLCBj
b25zdCBXVEY6OlN0cmluZyYsIFdlYktpdDo6V2ViRnJhbWUqKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgd2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKFdlYktpdDo6V2ViUGFnZSosIGNvbnN0IFdURjo6
U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZSopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlVUlDbGllbnQuaAppbmRleCBmNTY2YmJkNmFkMTllOTY1MmJkZTc0NzhiMGY5MGE4OTBhNGU0
ZTc2Li5iNGM3MjE2YjdhZjA2MjBlNGJjYTc5MDc3M2IzZTYxOTE5OGYwMTYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaApAQCAtNTUsNiArNTUsNyBAQCB0eXBlZGVm
IFdLU3RyaW5nUmVmICgqV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlRXh0cmFTdHlsZVNoZWV0Q2Fs
bGJhY2spKGNvbnN0IHZvaQogdHlwZWRlZiBXS1N0cmluZ1JlZiAoKldLQnVuZGxlUGFnZVBsdWdJ
bkNyZWF0ZUV4dHJhU2NyaXB0Q2FsbGJhY2spKGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlw
ZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbkNhbGxiYWNrKShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGlucHV0RWxlbWVudCwg
V0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS0J1bmRsZVBhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVh
cmFuY2UpKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaW5wdXRF
bGVtZW50LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5
cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0NvbnNv
bGVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdL
QXJyYXlSZWYgbWVzc2FnZUFyZ3VtZW50cywgdWludDMyX3QgbGluZU51bWJlciwgdWludDMyX3Qg
Y29sdW1uTnVtYmVyLCBXS1N0cmluZ1JlZiBzb3VyY2VJRCwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7CiAKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZSB7CiAgICAgaW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2ZXJzaW9uOwpAQCAtMjEwLDMgKzIxMSw0NiBAQCB0eXBlZGVmIHN0cnVjdCBXS0J1
bmRsZVBhZ2VVSUNsaWVudFY0IHsKICAgICAvLyBWZXJzaW9uIDQuCiAgICAgV0tCdW5kbGVQYWdl
RGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlICAgICAgICAgICBk
aWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2U7CiB9IFdLQnVuZGxl
UGFnZVVJQ2xpZW50VjQ7CisKK3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50VjUg
eworICAgIFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS0J1bmRs
ZVBhZ2VXaWxsQWRkTWVzc2FnZVRvQ29uc29sZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpbGxBZGRNZXNzYWdlVG9Db25zb2xlOworICAgIFdLQnVuZGxlUGFnZVdpbGxTZXRTdGF0
dXNiYXJUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFNldFN0YXR1
c2JhclRleHQ7CisgICAgV0tCdW5kbGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0OworICAgIFdL
QnVuZGxlUGFnZVdpbGxSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgd2lsbFJ1bkphdmFTY3JpcHRDb25maXJtOworICAgIFdLQnVuZGxlUGFnZVdpbGxS
dW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFJ1
bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tCdW5kbGVQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVu
dDsKKyAgICBXS0J1bmRsZVBhZ2VEaWRTY3JvbGxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhZ2VEaWRTY3JvbGw7CisgICAgdm9pZCogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQx
OworICAgIFdLQnVuZGxlUGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkR2VuZXJhdGVGaWxlRm9yVXBsb2FkOworICAgIFdLQnVu
ZGxlUGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2VuZXJhdGVGaWxlRm9yVXBsb2FkOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMjsKKyAg
ICBXS0J1bmRsZVBhZ2VTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS0J1bmRsZVBhZ2VNZW51QmFy
SXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJ
c1Zpc2libGU7CisgICAgV0tCdW5kbGVQYWdlVG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisKKyAgICAvLyBW
ZXJzaW9uIDEuCisgICAgV0tCdW5kbGVQYWdlUmVhY2hlZEFwcENhY2hlT3JpZ2luUXVvdGFDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICBkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS0J1bmRsZVBhZ2VFeGNlZWRlZERhdGFi
YXNlUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEV4Y2VlZERhdGFi
YXNlUXVvdGE7CisgICAgV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlU3RhcnRMYWJlbFRpdGxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICBjcmVhdGVQbHVnSW5TdGFydExhYmVsVGl0bGU7Cisg
ICAgV0tCdW5kbGVQYWdlUGx1Z0luQ3JlYXRlU3RhcnRMYWJlbFN1YnRpdGxlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICBjcmVhdGVQbHVnSW5TdGFydExhYmVsU3VidGl0bGU7CisgICAgV0tCdW5k
bGVQYWdlUGx1Z0luQ3JlYXRlRXh0cmFTdHlsZVNoZWV0Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVQbHVnSW5FeHRyYVN0eWxlU2hlZXQ7CisgICAgV0tCdW5kbGVQYWdlUGx1Z0lu
Q3JlYXRlRXh0cmFTY3JpcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVQ
bHVnSW5FeHRyYVNjcmlwdDsKKworICAgIC8vIFZlcnNpb24gMy4KKyAgICB2b2lkKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
dXNlZDM7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OworICAgIHZvaWQqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkNTsK
KworICAgIFdLQnVuZGxlUGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbjsKKworICAgIC8vIFZlcnNp
b24gNC4KKyAgICBXS0J1bmRsZVBhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29y
ZEFwcGVhcmFuY2UgICAgICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3Jk
QXBwZWFyYW5jZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS0J1bmRsZVBhZ2VXaWxsQWRk
TWVzc2FnZVdpdGhEZXRhaWxzVG9Db25zb2xlQ2FsbGJhY2sgICAgICAgICAgICAgIHdpbGxBZGRN
ZXNzYWdlV2l0aERldGFpbHNUb0NvbnNvbGU7Cit9IFdLQnVuZGxlUGFnZVVJQ2xpZW50VjU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcAppbmRleCAzZmZiODAzNzVm
MjQ3MzA3NGYyNzczNjk1MGExZTI4ZTVlYTNkMTAzLi42N2IxYWMxYmEzNGZlY2E2NTQxMmQ1MjJi
NjIyNDMxNWU0ODJhMjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVu
dC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJ
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIgogCisjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNp
bmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0
VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgpAQCAt
NDksNiArNTAsMTIgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6d2lsbEFkZE1l
c3NhZ2VUb0NvbnNvbGUoV2ViUGFnZSogcGFnZSwgTWVzc2FnZVMKICAgICAgICAgbV9jbGllbnQu
d2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUodG9BUEkocGFnZSksIHRvQVBJKG1lc3NhZ2UuaW1wbCgp
KSwgbGluZU51bWJlciwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAordm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6d2lsbEFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25z
b2xlKFdlYlBhZ2UqIHBhZ2UsIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBTcGFuPGNvbnN0IFN0cmluZz4gbWVzc2FnZUFyZ3VtZW50cywgdW5zaWdu
ZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUlEKQoreworICAgIGlmIChtX2NsaWVudC53aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25z
b2xlKQorICAgICAgICBtX2NsaWVudC53aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9Db25zb2xl
KHRvQVBJKHBhZ2UpLCB0b0FQSShtZXNzYWdlLmltcGwoKSksIHRvQVBJKCZBUEk6OkFycmF5Ojpj
cmVhdGVTdHJpbmdBcnJheShtZXNzYWdlQXJndW1lbnRzKS5sZWFrUmVmKCkpLCBsaW5lTnVtYmVy
LCBjb2x1bW5OdW1iZXIsIHRvQVBJKHNvdXJjZUlELmltcGwoKSksIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7Cit9CisKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQ6OndpbGxTZXRT
dGF0dXNiYXJUZXh0KFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgc3RhdHVzYmFyVGV4dCkK
IHsKICAgICBpZiAobV9jbGllbnQud2lsbFNldFN0YXR1c2JhclRleHQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCmluZGV4IDEzMmU5NGEyOGNhYTBjZDdkMDlmMjgxMDA0
NTg1MDBiOWI3ODhlMjMuLmNlNTVjMGJlMWNlZGQxODZjYjgyMmY4NWEzNWZjZjlkNmQ1YTUxYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCkBAIC0zNSw3ICszNSw3
IEBAIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgT2JqZWN0OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBD
bGllbnRUcmFpdHM8V0tCdW5kbGVQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6
OnR1cGxlPFdLQnVuZGxlUGFnZVVJQ2xpZW50VjAsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjEsIFdL
QnVuZGxlUGFnZVVJQ2xpZW50VjIsIFdLQnVuZGxlUGFnZVVJQ2xpZW50VjMsIFdLQnVuZGxlUGFn
ZVVJQ2xpZW50VjQ+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBh
Z2VVSUNsaWVudFYwLCBXS0J1bmRsZVBhZ2VVSUNsaWVudFYxLCBXS0J1bmRsZVBhZ2VVSUNsaWVu
dFYyLCBXS0J1bmRsZVBhZ2VVSUNsaWVudFYzLCBXS0J1bmRsZVBhZ2VVSUNsaWVudFY0LCBXS0J1
bmRsZVBhZ2VVSUNsaWVudFY1PiBWZXJzaW9uczsKIH07CiB9CiAKQEAgLTQ2LDYgKzQ2LDcgQEAg
cHVibGljOgogICAgIGV4cGxpY2l0IEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50KGNvbnN0IFdL
QnVuZGxlUGFnZVVJQ2xpZW50QmFzZSopOwogCiAgICAgdm9pZCB3aWxsQWRkTWVzc2FnZVRvQ29u
c29sZShXZWJQYWdlKiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VJRCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQWRkTWVzc2FnZVdp
dGhBcmd1bWVudHNUb0NvbnNvbGUoV2ViUGFnZSosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBTcGFuPGNvbnN0IFN0cmluZz4gbWVzc2FnZUFyZ3Vt
ZW50cywgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZUlEKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbGxTZXRTdGF0dXNiYXJUZXh0
KFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbGxSdW5KYXZh
U2NyaXB0QWxlcnQoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYsIFdlYkZyYW1lKikgb3ZlcnJpZGU7
CiAgICAgdm9pZCB3aWxsUnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViUGFnZSosIGNvbnN0IFN0cmlu
ZyYsIFdlYkZyYW1lKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDNlMWM5
MDUwNWZlYjk2MDU3YzQ4ZmM3ZDEwZTQ0MWEwYjU1M2IxYzkuLmVjODNiY2FlN2RjZTAwM2JjOTVm
MGI4NDliNzVhMjQ0YWE1YjI5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00MjEsNiAr
NDIxLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2CiAgICAgbV9wYWdlLmluamVjdGVkQnVu
ZGxlVUlDbGllbnQoKS53aWxsQWRkTWVzc2FnZVRvQ29uc29sZSgmbV9wYWdlLCBzb3VyY2UsIGxl
dmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHNvdXJjZUlEKTsKIH0KIAor
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xlKE1l
c3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgU3Bhbjxjb25zdCBTdHJpbmc+IG1lc3NhZ2VBcmd1bWVudHMsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKK3sK
KyAgICBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLndpbGxBZGRNZXNzYWdlV2l0aEFy
Z3VtZW50c1RvQ29uc29sZSgmbV9wYWdlLCBzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBtZXNzYWdl
QXJndW1lbnRzLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHNvdXJjZUlEKTsKK30KKwogYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpCiB7CiAg
ICAgcmV0dXJuIG1fcGFnZS5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAppbmRleCAyNjUwYzIyYzM0Y2FmNjhmYTFlNmNhY2ZhOGZiMjdjMDY4MWE2MDEy
Li5lNmZiYmFmODc2NTA1Y2QzNGZmMDUzOGZiYmU5NzcwMGRjMmJiYmM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCkBAIC05OSw2ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRSZXNpemFibGUo
Ym9vbCkgZmluYWw7CiAgICAgCiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVz
c2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5z
aWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZUlEKSBmaW5hbDsKKyAgICB2b2lkIGFkZE1lc3NhZ2VXaXRoQXJndW1lbnRzVG9Db25zb2xl
KEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgU3Bhbjxjb25zdCBTdHJpbmc+IG1lc3NhZ2VBcmd1bWVudHMsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgZmlu
YWw7CiAgICAgCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBmaW5h
bDsKICAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTcxYjFjNTM0NTE5YTJmMDBmY2Y2MmFlZTVhYjE0
YWZjNzRkNTAwMS4uOWFhZGY3MTQ0ZWIxOGM3MmE0ZDkxOWViYjg1ZTFmNDJlMmRmMGY2NSAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI2IEBACisyMDIyLTA0LTAxICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KKworICAg
ICAgICBXS0J1bmRsZVBhZ2VVSUNsaWVudCBjb25zb2xlIG1lc3NhZ2Ugc3VwcG9ydCBzaG91bGQg
aW5jbHVkZSBzb3VyY2UgVVJMLCBjb2x1bW4gbnVtYmVyLCBhbmQgY29uc29sZSBtZXNzYWdlcyB3
aXRoIGFyZ3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM4MDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgdGVzdCBmb3IgdGhlIG5ldyB3aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxzVG9D
b25zb2xlIGNhbGxiYWNrIGluIFdLQnVuZGxlUGFnZVVJQ2xpZW50LiBUaGlzCisgICAgICAgIGlu
Y2x1ZGVzIGEgbmV3IFdLV2ViUHJvY2Vzc1BsdWdJbiBzdWJjbGFzcywgQnVuZGxlUGFnZUNvbnNv
bGVNZXNzYWdlV2l0aERldGFpbHMsIHRoYXQgaW1wbGVtZW50cworICAgICAgICB0aGlzIGNhbGxi
YWNrIGFuZCBmb3JtYXRzIHRoZSBtZXNzYWdlIGFuZCBhcmd1bWVudHMgaW50byBhIHNpbmdsZSBz
dHJpbmcgd2hpY2ggaXQgc2VuZHMgdG8gdGhlIFVJCisgICAgICAgIHByb2Nlc3MuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VX
aXRoRGV0YWlscy5tbTogQWRkZWQuCisgICAgICAgICh3aWxsQWRkTWVzc2FnZVdpdGhEZXRhaWxz
VG9Db25zb2xlQ2FsbGJhY2spOgorICAgICAgICAoLVtCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VX
aXRoRGV0YWlscyB3ZWJQcm9jZXNzUGx1Z0luOmRpZENyZWF0ZUJyb3dzZXJDb250ZXh0Q29udHJv
bGxlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnNv
bGVNZXNzYWdlV2l0aERldGFpbHMubW06IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
ZGlkUmVjZWl2ZVBhZ2VNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OnNldEluamVjdGVkQnVuZGxlQ2xpZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY29u
c29sZS1tZXNzYWdlLXdpdGgtZGV0YWlscy5odG1sOiBBZGRlZC4KKwogMjAyMi0wNC0wMSAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBkZWJ1
ZyBvdmVybGF5IGZvciBpbnRlcmFjdGlvbiByZWdpb25zCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXND
b2NvYS50eHQKaW5kZXggNGI0ZGY0YmZmZjU5ZTBhOTMxODhmOTUzYzA2YWY1OGQ3OGYxZTc2NC4u
OGVlODE2YjljZjQ0YTQ0MDM0YjI4ZTNkYjQwNmM5NGRjZjU2MWFhMyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvU291cmNlc0NvY29hLnR4dApAQCAtNTgsNiArNTgsNyBAQCBUZXN0cy9XZWJLaXRDb2NvYS9C
dW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9CdW5k
bGVFZGl0aW5nRGVsZWdhdGUubW0KIFRlc3RzL1dlYktpdENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0
ZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlLm1tCitUZXN0
cy9XZWJLaXRDb2NvYS9CdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbQogVGVz
dHMvV2ViS2l0Q29jb2EvQnVuZGxlUGFyYW1ldGVycy5tbQogVGVzdHMvV2ViS2l0Q29jb2EvQnVu
ZGxlUmFuZ2VIYW5kbGUubW0KIFRlc3RzL1dlYktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMubW0K
QEAgLTcwLDYgKzcxLDcgQEAgVGVzdHMvV2ViS2l0Q29jb2EvQ2xvc2VXZWJWaWV3RHVyaW5nRW50
ZXJGdWxsc2NyZWVuLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9Db2RpbmcubW0KIFRlc3RzL1dlYktp
dENvY29hL0NvbW1hbmRCYWNrRm9yd2FyZC5tbQogVGVzdHMvV2ViS2l0Q29jb2EvQ29uZmlndXJh
dGlvbi5tbQorVGVzdHMvV2ViS2l0Q29jb2EvQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbQog
VGVzdHMvV2ViS2l0Q29jb2EvQ29udGVudEZpbHRlcmluZy5tbQogVGVzdHMvV2ViS2l0Q29jb2Ev
Q29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50
U2VjdXJpdHlQb2xpY3kubW0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjhlYjQ4MTNkMTQz
ODVjNmYxYjA5YTdiMmQ3MDYxOTIyMjI3Yzc5Yi4uOWE3OGE4ODJjMDliYjU1ZGExZGIyYmFlMjMy
ZTk0MzcwNGNmZDZiYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk4MCw2ICs5ODAsOCBA
QAogCQlDRURBMTI0MTI0MzdDOUZCMDBDMjhBOUUgLyogZWRpdGFibGUtcmVnaW9uLWNvbXBvc2l0
ZWQtYW5kLW5vbi1jb21wb3NpdGVkLW92ZXJsYXAuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRURBMTI0MDI0MzdDOUVBMDBDMjhBOUUg
LyogZWRpdGFibGUtcmVnaW9uLWNvbXBvc2l0ZWQtYW5kLW5vbi1jb21wb3NpdGVkLW92ZXJsYXAu
aHRtbCAqLzsgfTsKIAkJREQwRURGOEQyNzk4QTZBRDAwNTE1MkFEIC8qIGxpYmd0ZXN0LmEgaW4g
UHJvZHVjdCBEZXBlbmRlbmNpZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjNGQzNFRTIxMzY3OEI3MzAwMTI2QTY1IC8qIGxpYmd0ZXN0LmEgKi87IH07CiAJCURERDIxODc2
MjdBMjE3NTAwMDJCNzAyNSAvKiBXZWJLaXQuZnJhbWV3b3JrIGluIFByb2R1Y3QgRGVwZW5kZW5j
aWVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwODEyMjQ4MTNGQzFCMDMw
MERDMzlBRSAvKiBXZWJLaXQuZnJhbWV3b3JrICovOyB9OworCQlERjFDN0NFOTI3RjUxNjFEMDBE
ODE0NUMgLyogQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjFDN0NFODI3RjUxNjFEMDBE
ODE0NUMgLyogQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0gKi87IH07CisJ
CURGMUM3Q0VDMjdGNTMwOTcwMEQ4MTQ1QyAvKiBjb25zb2xlLW1lc3NhZ2Utd2l0aC1kZXRhaWxz
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gREYxQzdDRUIyN0Y1MzA1QTAwRDgxNDVDIC8qIGNvbnNvbGUtbWVzc2FnZS13aXRoLWRldGFp
bHMuaHRtbCAqLzsgfTsKIAkJREY2NTgwOTQyNzIyMTY4OTAwQjNGMUMxIC8qIEFTTjFVdGlsaXRp
ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREY2
NTgwOTIyNzIyMTY4OTAwQjNGMUMxIC8qIEFTTjFVdGlsaXRpZXMuY3BwICovOyB9OwogCQlERkI4
MEUzODI2MTUxMkMxMDAyRDQ3NzEgLyogVGVzdEF3YWtlbmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREZCODBFMzYyNjE1MTI0RTAwMkQ0NzcxIC8q
IFRlc3RBd2FrZW5lci5tbSAqLzsgfTsKIAkJRTEyMjBEQ0ExNTVCMjhBQTAwMTNFMkZDIC8qIE1l
bW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyMjBEQzkxNTVC
Mjg3RDAwMTNFMkZDIC8qIE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVn
YXRlLmh0bWwgKi87IH07CkBAIC0xMjk3LDYgKzEyOTksNyBAQAogCQkJCTMxOTAzQzkxMjc2NTA3
NzQwMDM2MzQ3MiAvKiBjb2xvci1zY2hlbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQkwRjE2QkVEODIzMDRBMUYzMDBCNEExNjcgLyogY29tcG9zaXRlZC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCUY0QjgyNUQ4MUVGNERCRkIwMDZFNDE3RiAvKiBjb21wcmVzc2VkLWZp
bGVzLnppcCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlERjFDN0NFQzI3RjUzMDk3MDBEODE0
NUMgLyogY29uc29sZS1tZXNzYWdlLXdpdGgtZGV0YWlscy5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTVDOUU1Njg3MURGOTE0QUUwMEM5RUUzMyAvKiBjb250ZW50QmxvY2tlckNoZWNr
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQ2OUZCMjQxRjAxODA0QjAwNDAxNTM5
IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJRjQxQUI5QTExRUY0Njk2QjAwODNGQTA4IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGV4
dGFyZWEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTI5NTksNiArMjk2Miw5IEBACiAJ
CUNFREExMjQwMjQzN0M5RUEwMEMyOEE5RSAvKiBlZGl0YWJsZS1yZWdpb24tY29tcG9zaXRlZC1h
bmQtbm9uLWNvbXBvc2l0ZWQtb3ZlcmxhcC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBuYW1lID0gImVkaXRhYmxlLXJlZ2lv
bi1jb21wb3NpdGVkLWFuZC1ub24tY29tcG9zaXRlZC1vdmVybGFwLmh0bWwiOyBwYXRoID0gImlv
cy9lZGl0YWJsZS1yZWdpb24tY29tcG9zaXRlZC1hbmQtbm9uLWNvbXBvc2l0ZWQtb3ZlcmxhcC5o
dG1sIjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlEM0JFNUUzNDFFNENFODVFMDBG
RDU2M0EgLyogV0tXZWJWaWV3R2V0Q29udGVudHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdHZXRDb250ZW50cy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJREM2OUFBNjIxQ0Y3N0M2NTAwQzYyNzJGIC8qIFNjb3BlZExhbWJkYS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY29wZWRMYW1iZGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlERjFDN0NFODI3RjUxNjFEMDBEODE0NUMg
LyogQnVuZGxlUGFnZUNvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0
YWlscy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREYxQzdDRUEyN0Y1MjM5RjAw
RDgxNDVDIC8qIENvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBDb25zb2xlTWVzc2FnZVdpdGhEZXRhaWxzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlERjFDN0NFQjI3RjUzMDVBMDBEODE0NUMgLyogY29uc29sZS1tZXNzYWdlLXdpdGgt
ZGV0YWlscy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNvbnNvbGUtbWVzc2Fn
ZS13aXRoLWRldGFpbHMuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNEIy
NzM4MjFBNDc3MjcwMDlCRDFDQSAvKiBXS05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFyeUNyYXNo
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tOU0RpY3Rpb25h
cnlFbXB0eURpY3Rpb25hcnlDcmFzaC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
REY2NTgwOTIyNzIyMTY4OTAwQjNGMUMxIC8qIEFTTjFVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVNOMVV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCURGNjU4MDkzMjcyMjE2ODkwMEIzRjFDMSAvKiBBU04xVXRpbGl0
aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFTTjFVdGlsaXRpZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NjgsNiArMzQ3NCw3IEBACiAJCQkJN0E4
OUJCNjYyMzMxNjM1RDAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5tbSAqLywK
IAkJCQk3QTg5QkI2OTIzMzE2NTY1MDA0MkNCMUUgLyogQnVuZGxlRm9ybURlbGVnYXRlUHJvdG9j
b2wuaCAqLywKIAkJCQk1MTc1QzdBMTI2Rjg3NjIzMDAwM0FGNUMgLyogQnVuZGxlUGFnZUNvbnNv
bGVNZXNzYWdlLm1tICovLAorCQkJCURGMUM3Q0U4MjdGNTE2MUQwMEQ4MTQ1QyAvKiBCdW5kbGVQ
YWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbSAqLywKIAkJCQlBMTNFQkJBQzFCODc0MzZG
MDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVycy5tbSAqLywKIAkJCQlBMTNFQkJBRTFCODc0MzZG
MDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSAqLywKIAkJCQkzN0E3MDlBRDFF
M0VBOEIwMDBDQTU5NjkgLyogQnVuZGxlUmFuZ2VIYW5kbGUubW0gKi8sCkBAIC0zNDg1LDYgKzM0
OTIsNyBAQAogCQkJCTFBQUQxOUY1MUM3Q0UyMDMwMDgzMUU0NyAvKiBDb2RpbmcubW0gKi8sCiAJ
CQkJN0MzREI4RTIxRDEyMTI5QjAwQUU4Q0MzIC8qIENvbW1hbmRCYWNrRm9yd2FyZC5tbSAqLywK
IAkJCQk1QzRBODQ5NDFGN0VFRkQ0MDBBQ0ZDNTQgLyogQ29uZmlndXJhdGlvbi5tbSAqLywKKwkJ
CQlERjFDN0NFQTI3RjUyMzlGMDBEODE0NUMgLyogQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5t
bSAqLywKIAkJCQlBMThBQThDQzFDM0ZBMjE4MDA5QjJCOTcgLyogQ29udGVudEZpbHRlcmluZy5o
ICovLAogCQkJCUExNEZDNTg2MUI4OTkxQjYwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nLm1t
ICovLAogCQkJCUExNEZDNTg5MUI4OTkyNzEwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nUGx1
Z0luLm1tICovLApAQCAtNDExNyw2ICs0MTI1LDcgQEAKIAkJCQk5QkFFMTc3QTIyRTJCQjZCMDBE
RjMwOTggLyogY29jb2Etd3JpdGVyLW1hcmt1cC13aXRoLXN5c3RlbS1mb250cy5odG1sICovLAog
CQkJCUU1MDM2Rjc3MjExQkMyMjgwMEJGREJFMiAvKiBjb2xvci1kcm9wLmh0bWwgKi8sCiAJCQkJ
RjRCODI1RDYxRUY0REJENDAwNkU0MTdGIC8qIGNvbXByZXNzZWQtZmlsZXMuemlwICovLAorCQkJ
CURGMUM3Q0VCMjdGNTMwNUEwMEQ4MTQ1QyAvKiBjb25zb2xlLW1lc3NhZ2Utd2l0aC1kZXRhaWxz
Lmh0bWwgKi8sCiAJCQkJRjQ2OUZCMjMxRjAxODAzNTAwNDAxNTM5IC8qIGNvbnRlbnRlZGl0YWJs
ZS1hbmQtdGFyZ2V0Lmh0bWwgKi8sCiAJCQkJRjQxQUI5OUMxRUY0NjkyQzAwODNGQTA4IC8qIGNv
bnRlbnRlZGl0YWJsZS1hbmQtdGV4dGFyZWEuaHRtbCAqLywKIAkJCQlGNEEzMkVDQTFGMDY0MkY0
MDA0N0M1NDQgLyogY29udGVudGVkaXRhYmxlLWluLWlmcmFtZS5odG1sICovLApAQCAtNTk5OSw2
ICs2MDA4LDcgQEAKIAkJCQkzNzRCN0E2MTFERjM3MUNGMDBBQ0NCNkMgLyogQnVuZGxlRWRpdGlu
Z0RlbGVnYXRlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E4OUJCNjgyMzMxNjQzQTAw
NDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUxNzVDN0EyMjZGODc2MjMwMDAzQUY1QyAvKiBCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2UubW0g
aW4gU291cmNlcyAqLywKKwkJCQlERjFDN0NFOTI3RjUxNjFEMDBEODE0NUMgLyogQnVuZGxlUGFn
ZUNvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTNFQkJC
MDFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTM3QTcwOUFGMUUzRUE5N0UwMENBNTk2OSAvKiBCdW5kbGVSYW5nZUhhbmRsZVBs
dWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDNzU3MTYxMjIxMjRDNTIwMEI5RTVBQyAvKiBC
dW5kbGVSZXRhaW5QYWdlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZVBhZ2VDb25zb2xlTWVzc2Fn
ZVdpdGhEZXRhaWxzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9C
dW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjlkNTUw
MjU4ODI2NjI5OTIxZDRhNDcwMDE0M2VkYTNkMjAzOWIxCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVQYWdlQ29uc29sZU1lc3Nh
Z2VXaXRoRGV0YWlscy5tbQpAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0
aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tCdW5kbGVQYWdlLmg+CisjaW1wb3J0IDxXZWJLaXQv
V0tCdW5kbGVQYWdlVUlDbGllbnQuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1JldGFpblB0ci5oPgor
I2ltcG9ydCA8V2ViS2l0L1dLU3RyaW5nQ0YuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nl
c3NQbHVnSW4uaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXJQcml2YXRlLmg+CisKK3N0YXRpYyBOU0FycmF5PE5TU3RyaW5nICo+ICpz
dHJpbmdzQXJyYXlGcm9tV0tBcnJheVJlZihXS0FycmF5UmVmIHdrQXJyYXkpCit7CisgICAgc2l6
ZV90IGl0ZW1Db3VudCA9IFdLQXJyYXlHZXRTaXplKHdrQXJyYXkpOworICAgIE5TTXV0YWJsZUFy
cmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTppdGVtQ291bnRd
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaXRlbUNvdW50OyArK2kpCisgICAgICAgIFth
cnJheSBhZGRPYmplY3Q6VGVzdFdlYktpdEFQSTo6VXRpbDo6dG9OUygoV0tTdHJpbmdSZWYpV0tB
cnJheUdldEl0ZW1BdEluZGV4KHdrQXJyYXksIGkpKV07CisKKyAgICByZXR1cm4gYXJyYXk7Cit9
CisKK3N0YXRpYyB2b2lkIHdpbGxBZGRNZXNzYWdlV2l0aERldGFpbHNUb0NvbnNvbGVDYWxsYmFj
ayhXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tBcnJheVJlZiBt
ZXNzYWdlQXJndW1lbnRzLCB1aW50MzJfdCBsaW5lTnVtYmVyLCB1aW50MzJfdCBjb2x1bW5OdW1i
ZXIsIFdLU3RyaW5nUmVmIHNvdXJjZUlELCBjb25zdCB2b2lkICopCit7CisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiQ29uc29sZU1lc3NhZ2UiKSk7CisKKyAgICBOU1N0cmluZyAqbnNNZXNzYWdl
ID0gbWVzc2FnZSA/IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnRvTlMobWVzc2FnZSkgOiBAIiI7Cisg
ICAgTlNBcnJheTxOU1N0cmluZyAqPiAqbnNNZXNzYWdlQXJndW1lbnRzID0gc3RyaW5nc0FycmF5
RnJvbVdLQXJyYXlSZWYobWVzc2FnZUFyZ3VtZW50cyk7CisgICAgaWYgKG5zTWVzc2FnZUFyZ3Vt
ZW50cy5jb3VudCkgeworICAgICAgICBuc01lc3NhZ2UgPSBbbnNNZXNzYWdlIHN0cmluZ0J5QXBw
ZW5kaW5nU3RyaW5nOkAiLCBhcmd1bWVudHM6ICJdOworICAgICAgICBuc01lc3NhZ2UgPSBbbnNN
ZXNzYWdlIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOltuc01lc3NhZ2VBcmd1bWVudHMgY29tcG9u
ZW50c0pvaW5lZEJ5U3RyaW5nOkAiLCAiXV07CisgICAgfQorCisgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IGZ1bGxNZXNzYWdlID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmlu
ZygoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpbnNNZXNzYWdlKSk7CisKKyAgICBXS0J1bmRsZVBhZ2VQ
b3N0TWVzc2FnZShwYWdlLCBtZXNzYWdlTmFtZS5nZXQoKSwgZnVsbE1lc3NhZ2UuZ2V0KCkpOwor
fQorCitAaW50ZXJmYWNlIEJ1bmRsZVBhZ2VDb25zb2xlTWVzc2FnZVdpdGhEZXRhaWxzIDogTlNP
YmplY3QgPFdLV2ViUHJvY2Vzc1BsdWdJbj4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEJ1bmRs
ZVBhZ2VDb25zb2xlTWVzc2FnZVdpdGhEZXRhaWxzCisKKy0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJ
bjooV0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAqKXBsdWdJbkNvbnRyb2xsZXIgZGlkQ3Jl
YXRlQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIgKilicm93c2VyQ29udGV4dENvbnRyb2xsZXIKK3sKKyAgICBXS0J1bmRs
ZVBhZ2VVSUNsaWVudFY1IGNsaWVudDsKKyAgICBtZW1zZXQoJmNsaWVudCwgMCwgc2l6ZW9mKGNs
aWVudCkpOworICAgIGNsaWVudC5iYXNlLnZlcnNpb24gPSA1OworICAgIGNsaWVudC53aWxsQWRk
TWVzc2FnZVdpdGhEZXRhaWxzVG9Db25zb2xlID0gd2lsbEFkZE1lc3NhZ2VXaXRoRGV0YWlsc1Rv
Q29uc29sZUNhbGxiYWNrOworICAgIFdLQnVuZGxlUGFnZVNldFVJQ2xpZW50KFticm93c2VyQ29u
dGV4dENvbnRyb2xsZXIgX2J1bmRsZVBhZ2VSZWZdLCAmY2xpZW50LmJhc2UpOworfQorCitAZW5k
CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnNvbGVNZXNzYWdlV2l0aERldGFpbHMubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnNvbGVNZXNzYWdlV2l0aERldGFp
bHMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWRlNmU4MmJmY2FiNWRjZDNmNTY4YTA0YjhiNWVlZGFlNjRlODc3
YQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQ29uc29sZU1lc3NhZ2VXaXRoRGV0YWlscy5tbQpAQCAtMCwwICsxLDc1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQg
IlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0V0tX
ZWJWaWV3LmgiCisjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgiCisjaW1w
b3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5o
PgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKKworc3RhdGljIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gY29uc29sZU1lc3NhZ2Vz
OworCitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUGFnZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUo
V0tQYWdlUmVmLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2UsIGNv
bnN0IHZvaWQqKQoreworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiQ29uc29sZU1lc3NhZ2UiKSkKKyAgICAgICAgW2NvbnNvbGVNZXNzYWdlcyBhZGRP
YmplY3Q6VXRpbDo6dG9OUygoV0tTdHJpbmdSZWYpbWVzc2FnZSldOworfQorCitzdGF0aWMgdm9p
ZCBzZXRJbmplY3RlZEJ1bmRsZUNsaWVudChXS1dlYlZpZXcgKndlYlZpZXcpCit7CisgICAgV0tQ
YWdlSW5qZWN0ZWRCdW5kbGVDbGllbnRWMCBpbmplY3RlZEJ1bmRsZUNsaWVudCA9IHsKKyAgICAg
ICAgeyAwLCBudWxscHRyIH0sCisgICAgICAgIGRpZFJlY2VpdmVQYWdlTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZSwKKyAgICAgICAgbnVsbHB0ciwKKyAgICB9OworICAgIFdLUGFnZVNldFBhZ2VJ
bmplY3RlZEJ1bmRsZUNsaWVudCh3ZWJWaWV3Ll9wYWdlUmVmRm9yVHJhbnNpdGlvblRvV0tXZWJW
aWV3LCAmaW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZSk7Cit9CisKK1RFU1QoV2ViS2l0LCBDb25z
b2xlTWVzc2FnZVdpdGhEZXRhaWxzKQoreworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNv
bmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJCdW5kbGVQYWdlQ29uc29sZU1lc3NhZ2VXaXRoRGV0
YWlscyJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uXSk7CisgICAgc2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQod2ViVmlldy5n
ZXQoKSk7CisKKyAgICBjb25zb2xlTWVzc2FnZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOwor
ICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImNvbnNvbGUtbWVz
c2FnZS13aXRoLWRldGFpbHMiXTsKKworICAgIEVYUEVDVF9FUShbY29uc29sZU1lc3NhZ2VzIGNv
dW50XSwgMnUpOworICAgIEVYUEVDVF9UUlVFKFtjb25zb2xlTWVzc2FnZXMuZ2V0KClbMF0gaXNF
cXVhbFRvU3RyaW5nOkAiSGVsbG8gd29ybGQhIl0pOworICAgIEVYUEVDVF9UUlVFKFtjb25zb2xl
TWVzc2FnZXMuZ2V0KClbMV0gaXNFcXVhbFRvU3RyaW5nOkAiSGVsbG8gd29ybGQhLCBhcmd1bWVu
dHM6IGFyZ3VtZW50MSwgYXJndW1lbnQyIl0pOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZvbnRBdHRyaWJ1dGVzLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Gb250QXR0cmlidXRlcy5tbQppbmRleCBmOWZl
OTNkNGM3YzVmY2UzZmY2NjQ2YTk5YjhlMDlhNWFiMTQyYTI3Li5kZGFhYTFhZTUzYTI0Mjc5NWMw
Yzg2Mjc4YjI4NmZiNzYzYTBjNjk1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0ZvbnRBdHRyaWJ1dGVzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRm9udEF0dHJpYnV0ZXMubW0KQEAgLTM5LDcgKzM5LDcgQEAK
ICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW1w
b3J0IDxwYWwvc3BpL2lvcy9VSUtpdFNQSS5oPgorI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNlbmRp
ZgogCiBAaW50ZXJmYWNlIEZvbnRBdHRyaWJ1dGVzTGlzdGVuZXIgOiBOU09iamVjdCA8V0tVSURl
bGVnYXRlUHJpdmF0ZT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvY29uc29sZS1tZXNzYWdlLXdpdGgtZGV0YWlscy5odG1sIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9jb25zb2xlLW1lc3NhZ2Utd2l0aC1kZXRhaWxzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTYxZWQ2M2YyODRiMDRmNmU4ODUzYTI4ODU0Y2Q0MWUxNDNlODFhZAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Y29uc29sZS1tZXNzYWdlLXdpdGgtZGV0YWlscy5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgIGNvbnNvbGUubG9n
KCJIZWxsbyB3b3JsZCEiKTsKKyAgICBjb25zb2xlLmxvZygiSGVsbG8gd29ybGQhIiwgImFyZ3Vt
ZW50MSIsICJhcmd1bWVudDIiKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRT
UEkuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKaW5kZXggYjNmNmNlM2Rj
Yjk5ODNhMmI4ZjAzMDVkOTc1ZTBmNjkzZTNhYjg4ZS4uM2JmNjk4OTQ4YjA3YTU4NDczZGJlMDFi
MzM4ODRmZGM4NjRjZGFiNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlL
aXRTUEkuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oCkBAIC03Myw2
ICs3MywxNSBAQCBJR05PUkVfV0FSTklOR1NfRU5ECiBAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09M
IGlzTG93Q29uZmlkZW5jZTsKIEBlbmQKIAorQGludGVyZmFjZSBOU1BhcmFncmFwaFN0eWxlICgp
CistIChOU0FycmF5ICopdGV4dExpc3RzOworQGVuZAorCitAaW50ZXJmYWNlIE5TVGV4dExpc3Qg
OiBOU09iamVjdAorQHByb3BlcnR5IE5TSW50ZWdlciBzdGFydGluZ0l0ZW1OdW1iZXI7CitAcHJv
cGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqbWFya2VyRm9ybWF0OworQGVuZAorCiBX
VEZfRVhURVJOX0NfQkVHSU4KIAogdm9pZCBVSUFwcGxpY2F0aW9uSW5pdGlhbGl6ZSh2b2lkKTsK
</data>
<flag name="commit-queue"
          id="484708"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>