<?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>217531</bug_id>
          
          <creation_ts>2020-10-09 13:32:30 -0700</creation_ts>
          <short_desc>Use AudioWorkletProcessor to process audio</short_desc>
          <delta_ts>2020-10-12 14:47:15 -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>Web Audio</component>
          <version>WebKit Nightly 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>
          
          <blocked>217058</blocked>
    
    <blocked>217624</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1696341</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-09 13:32:30 -0700</bug_when>
    <thetext>Use AudioWorkletProcessor to process audio:
- https://www.w3.org/TR/webaudio/#dom-audioworkletprocessor-process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696403</commentid>
    <comment_count>1</comment_count>
      <attachid>410983</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-09 16:59:54 -0700</bug_when>
    <thetext>Created attachment 410983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696404</commentid>
    <comment_count>2</comment_count>
      <attachid>410984</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-09 17:03:51 -0700</bug_when>
    <thetext>Created attachment 410984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696409</commentid>
    <comment_count>3</comment_count>
      <attachid>410985</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-09 17:11:36 -0700</bug_when>
    <thetext>Created attachment 410985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696412</commentid>
    <comment_count>4</comment_count>
      <attachid>410986</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-09 17:17:37 -0700</bug_when>
    <thetext>Created attachment 410986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696413</commentid>
    <comment_count>5</comment_count>
      <attachid>410987</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-09 17:20:41 -0700</bug_when>
    <thetext>Created attachment 410987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696813</commentid>
    <comment_count>6</comment_count>
      <attachid>410987</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-12 03:22:06 -0700</bug_when>
    <thetext>Comment on attachment 410987
Patch

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

&gt; Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp:120
&gt;      JSC::JSObject* jsConstructor = constructor-&gt;callbackData()-&gt;callback();

auto*

&gt; Source/WebCore/Modules/webaudio/AudioWorkletNode.cpp:278
&gt; +            errorMessage = &quot;An error was thrown from AudioWorkletProcessor::process() method&quot;_s;

Do other browsers provide information on the exception that was thrown in the worklet?

&gt; Source/WebCore/Modules/webaudio/AudioWorkletNode.h:34
&gt; +#include &quot;AudioArray.h&quot;

Forward declare AudioFloatArray?

&gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:56
&gt; +static JSMap* constructJSMap(VM&amp; vm, JSGlobalObject* globalObject, const HashMap&lt;String, std::unique_ptr&lt;AudioFloatArray&gt;&gt;&amp; paramValuesMap)

Can we pass a JSGlobalObject&amp; in all these methods?

&gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:86
&gt; +static void copyDataFromJSArrayToBuses(JSGlobalObject* globalObject, JSArray* jsArray, Vector&lt;RefPtr&lt;AudioBus&gt;&gt;&amp; buses)

JSArray&amp;.
Maybe also Vector&lt;Ref&lt;&gt;&gt; since we are assuming buses are not null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696854</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-12 08:18:06 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #6)
&gt; Comment on attachment 410987 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=410987&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp:120
&gt; &gt;      JSC::JSObject* jsConstructor = constructor-&gt;callbackData()-&gt;callback();
&gt; 
&gt; auto*
&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/AudioWorkletNode.cpp:278
&gt; &gt; +            errorMessage = &quot;An error was thrown from AudioWorkletProcessor::process() method&quot;_s;
&gt; 
&gt; Do other browsers provide information on the exception that was thrown in
&gt; the worklet?

I don&apos;t know about Firefox but the behavior in this patch matches Blink&apos;s behavior.

&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/AudioWorkletNode.h:34
&gt; &gt; +#include &quot;AudioArray.h&quot;
&gt; 
&gt; Forward declare AudioFloatArray?

It is a typedef like so:
typedef AudioArray&lt;float&gt; AudioFloatArray;

This is why I did not forward-declared it. I will look into how to forward-declare such time though.

&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:56
&gt; &gt; +static JSMap* constructJSMap(VM&amp; vm, JSGlobalObject* globalObject, const HashMap&lt;String, std::unique_ptr&lt;AudioFloatArray&gt;&gt;&amp; paramValuesMap)
&gt; 
&gt; Can we pass a JSGlobalObject&amp; in all these methods?

OK.

&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:86
&gt; &gt; +static void copyDataFromJSArrayToBuses(JSGlobalObject* globalObject, JSArray* jsArray, Vector&lt;RefPtr&lt;AudioBus&gt;&gt;&amp; buses)
&gt; 
&gt; JSArray&amp;.

OK.

&gt; Maybe also Vector&lt;Ref&lt;&gt;&gt; since we are assuming buses are not null.

The buses are passed as Vector&lt;RefPtr&lt;AudioBus&gt;&gt; because the *input* buses can be null. The *output* buses cannot be null and are still passed in with the same type to promote code sharing (For the converting to JSArrays).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696863</commentid>
    <comment_count>8</comment_count>
      <attachid>411118</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-12 08:40:44 -0700</bug_when>
    <thetext>Created attachment 411118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696893</commentid>
    <comment_count>9</comment_count>
      <attachid>411118</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-10-12 10:16:27 -0700</bug_when>
    <thetext>Comment on attachment 411118
Patch

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

&gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:93
&gt; +        auto* channelsArray = asObject(jsArray.getIndex(&amp;globalObject, i));

nit: jsCast&lt;JSArray*&gt; instead of asObject since we&apos;re already assuming the types here?

&gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:135
&gt; +    // FIXME: We should consider caching the JSArrays &amp; JSMap and only update their items
&gt; +    // every time process() is called, for performance reasons.

Can&apos;t a user change these though?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696897</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-12 10:19:47 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #9)
&gt; Comment on attachment 411118 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411118&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:93
&gt; &gt; +        auto* channelsArray = asObject(jsArray.getIndex(&amp;globalObject, i));
&gt; 
&gt; nit: jsCast&lt;JSArray*&gt; instead of asObject since we&apos;re already assuming the
&gt; types here?

Will fix, thanks.

&gt; &gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:135
&gt; &gt; +    // FIXME: We should consider caching the JSArrays &amp; JSMap and only update their items
&gt; &gt; +    // every time process() is called, for performance reasons.
&gt; 
&gt; Can&apos;t a user change these though?

The JSArrays I pass to JS are frozen so those cannot change. The JS *can* change the Float32Arrays inside the JSArrays but I can simply zero-out these before recycling them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696898</commentid>
    <comment_count>11</comment_count>
      <attachid>411118</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-10-12 10:20:29 -0700</bug_when>
    <thetext>Comment on attachment 411118
Patch

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

&gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:74
&gt; +    JSC::objectConstructorFreeze(&amp;globalObject, channelsData);

you might need exception checks after this. Or an assert an exception didn&apos;t happen

&gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:84
&gt; +    JSC::objectConstructorFreeze(&amp;globalObject, array);

you might need exception checks after this. Or an assert an exception didn&apos;t happen</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696919</commentid>
    <comment_count>12</comment_count>
      <attachid>411129</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-12 10:41:14 -0700</bug_when>
    <thetext>Created attachment 411129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696953</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-12 11:37:23 -0700</bug_when>
    <thetext>Committed r268365: &lt;https://trac.webkit.org/changeset/268365&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411129.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696955</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-12 11:38:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/70216380&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697039</commentid>
    <comment_count>15</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-10-12 14:45:07 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; (In reply to Saam Barati from comment #9)
&gt; &gt; Comment on attachment 411118 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=411118&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:93
&gt; &gt; &gt; +        auto* channelsArray = asObject(jsArray.getIndex(&amp;globalObject, i));
&gt; &gt; 
&gt; &gt; nit: jsCast&lt;JSArray*&gt; instead of asObject since we&apos;re already assuming the
&gt; &gt; types here?
&gt; 
&gt; Will fix, thanks.
&gt; 
&gt; &gt; &gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:135
&gt; &gt; &gt; +    // FIXME: We should consider caching the JSArrays &amp; JSMap and only update their items
&gt; &gt; &gt; +    // every time process() is called, for performance reasons.
&gt; &gt; 
&gt; &gt; Can&apos;t a user change these though?
&gt; 
&gt; The JSArrays I pass to JS are frozen so those cannot change. The JS *can*
&gt; change the Float32Arrays inside the JSArrays but I can simply zero-out these
&gt; before recycling them.

For arrays, this makes sense. For JSMap, being frozen doesn&apos;t prevent things from getting added/removed from the map, so it might not really be good for perf if the user does stuff to it. Also, what if the user captures a pointer to the map in their code, and you change it from under them? Does the spec say these need to be new objects each time? If so, then reusing the same object is observable identity wise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697043</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-12 14:47:15 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #15)
&gt; (In reply to Chris Dumez from comment #10)
&gt; &gt; (In reply to Saam Barati from comment #9)
&gt; &gt; &gt; Comment on attachment 411118 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=411118&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:93
&gt; &gt; &gt; &gt; +        auto* channelsArray = asObject(jsArray.getIndex(&amp;globalObject, i));
&gt; &gt; &gt; 
&gt; &gt; &gt; nit: jsCast&lt;JSArray*&gt; instead of asObject since we&apos;re already assuming the
&gt; &gt; &gt; types here?
&gt; &gt; 
&gt; &gt; Will fix, thanks.
&gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:135
&gt; &gt; &gt; &gt; +    // FIXME: We should consider caching the JSArrays &amp; JSMap and only update their items
&gt; &gt; &gt; &gt; +    // every time process() is called, for performance reasons.
&gt; &gt; &gt; 
&gt; &gt; &gt; Can&apos;t a user change these though?
&gt; &gt; 
&gt; &gt; The JSArrays I pass to JS are frozen so those cannot change. The JS *can*
&gt; &gt; change the Float32Arrays inside the JSArrays but I can simply zero-out these
&gt; &gt; before recycling them.
&gt; 
&gt; For arrays, this makes sense. For JSMap, being frozen doesn&apos;t prevent things
&gt; from getting added/removed from the map, so it might not really be good for
&gt; perf if the user does stuff to it. Also, what if the user captures a pointer
&gt; to the map in their code, and you change it from under them? Does the spec
&gt; say these need to be new objects each time? If so, then reusing the same
&gt; object is observable identity wise.

1. I am actually not supposed to pass a JSMap to JS. It is supposed to be a frozen JSObject. I am in the process of fixing this.
2. No, the specification does not specify it should be a new array/object every time.
3. Blink already has this optimization, which is why I added a FIXME comment.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410983</attachid>
            <date>2020-10-09 16:59:54 -0700</date>
            <delta_ts>2020-10-09 17:07:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217531-20201009165953.patch</filename>
            <type>text/plain</type>
            <size>63628</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiODVhZDY4MWE3ZWMx
YWNiM2E2OTkzMzJmOWY3NjU2NmNlMTk5MS4uNGMxMzRkNjU1OWQxMTIxZjRjZWU5ZjljZmMwY2Qw
ZGNjNzA0MWVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNyBAQAorMjAyMC0xMC0wOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IgdG8gcHJvY2VzcyBhdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIEF1ZGlvV29ya2xldFByb2Nlc3NvciB0byBwcm9jZXNzIGF1
ZGlvOgorICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlv
d29ya2xldHByb2Nlc3Nvci1wcm9jZXNzCisKKyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE5vZGUg
bG9naWMgaXMgYmFzZWQgb24gdGhlIEJsaW5rIGltcGxlbWVudGF0aW9uIGF0OgorICAgICAgICAt
IGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJvbWl1bS9jaHJvbWl1bS9ibG9iL21hc3Rlci90aGlyZF9w
YXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL3dlYmF1ZGlvL2F1ZGlvX3dvcmtsZXRfbm9kZS5j
YworCisgICAgICAgIFRoaXMgd2FzIHRoZSBsYXN0IHBpZWNlIG9mIGxvZ2ljIG5lZWRlZCB0byBt
YWtlIEF1ZGlvV29ya2xldCBmdW5jdGlvbmFsLgorICAgICAgICBJIGRpZCBub3QgZW5hYmxlIEF1
ZGlvV29ya2xldHMgYnkgZGVmYXVsdCBpbiB0aGlzIHBhdGNoIHRob3VnaCBiZWNhdXNlCisgICAg
ICAgIHRoZXJlIGFyZSBzdGlsbCBzb21lIHRlc3QgZmFpbHVyZXMgdGhhdCB3ZSBzaG91bGQgaW52
ZXN0aWdhdGUgZmlyc3QuCisgICAgICAgIE1vc3QgQXVkaW9Xb3JrbGV0IHRlc3RzIGFyZSBwYXNz
aW5nIHRob3VnaC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmg6CisgICAg
ICAgIFJldHVybiBhIGNvbnN0IHJlZmVyZW5jZSB0byBhdm9pZCByZWZjb3VudGluZyBjaHVybi4K
KworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNyZWF0ZVByb2Nl
c3Nvcik6CisgICAgICAgIEFmdGVyIHRoZSBKU0F1ZGlvV29ya2xldFByb2Nlc3Nvciwgd2UgY29u
c3RydWN0IGEgSlNDYWxsYmFja0RhdGEgZnJvbSB0aGUKKyAgICAgICAgSlNBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IgYW5kIHRoZSBnbG9iYWwgb2JqZWN0IGFuZCBjYWxsIGEgc2V0dGVyIG9uIHRoZQor
ICAgICAgICBBdWRpb1dvcmtsZXRQcm9jZXNzb3IuIFRoZSBwcm9jZXNzb3Igd2lsbCB1c2UgdGhp
cyB3aGVuIHByb2Nlc3MoKSBpcyBjYWxsZWQKKyAgICAgICAgdG8gZm9yd2FyZCB0aGUgY2FsbCB0
byBwcm9jZXNzKCkgaW4gSmF2YVNjcmlwdC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2Rl
OjpjcmVhdGUpOgorICAgICAgICAtIE1vdmUgdGhlIGxvZ2ljIGRlYWxpbmcgd2l0aCBBdWRpb1Bh
cmFtIG9iamVjdHMgdG8gaXRzIG93biBpbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJzKCkKKyAgICAg
ICAgZnVuY3Rpb24uCisgICAgICAgIC0gQ2FsbCBjb250ZXh0LnJlZk5vZGUobm9kZSkgc28gdGhh
dCB0aGUgbm9kZSBpcyBrZXB0IGFsaXZlIGJ5IHRoZSBhdWRpbyBjb250ZXh0CisgICAgICAgICAg
dW50aWwgcGxheWJhY2sgaXMgZmluaXNoZWQuIFRoZSBjYWxsIHRvIGNvbnRleHQoKS5ub3RpZnlO
b2RlRmluaXNoZWRQcm9jZXNzaW5nKHRoaXMpCisgICAgICAgICAgaW4gZGlkRmluaXNoUHJvY2Vz
c2luZ09uUmVuZGVyaW5nVGhyZWFkKCkgaXMgd2hhdCBub3RpZmllcyB0aGUgY29udGV4dCB0aGF0
IHdlIGZpbmlzaGVkCisgICAgICAgICAgcGxheWJhY2sgYW5kIGFsbG93cyB0aGUgbm9kZSB0byBn
ZXQgZGVzdHJveWVkLiBUaGlzIGlzIHNpbWlsYXIgdG8gd2hhdCBpcyBkb25lIGZvcgorICAgICAg
ICAgIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZXMuCisgICAgICAgIC0gQ2FsbCB1cGRhdGVQdWxs
U3RhdHVzKCkgc28gdGhhdCB0aGUgbm9kZSBnZXRzIGFkZGVkIHRvIHRoZSBhdXRvbWF0aWMgcHVs
bCBsaXN0IGlmIGl0CisgICAgICAgICAgZG9lcyBub3QgaGF2ZSBhbnkgb3V0cHV0cy4gT3RoZXJ3
aXNlLCB0aGUgbm9kZSB3b3VsZCBub3QgYmUgdXNlZCBmb3IgcmVuZGVyaW5nIGlmIGl0CisgICAg
ICAgICAgZGlkIG5vdCBoYXZlIGFueSBvdXRwdXRzLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
V29ya2xldE5vZGU6On5BdWRpb1dvcmtsZXROb2RlKToKKworICAgICAgICAoV2ViQ29yZTo6QXVk
aW9Xb3JrbGV0Tm9kZTo6aW5pdGlhbGl6ZUF1ZGlvUGFyYW1ldGVycyk6CisgICAgICAgIFRoaXMg
bG9naWMgd2FzIG1vc3RseSBtb3ZlZCBmcm9tIHRoZSBjcmVhdGUoKSBmdW5jdGlvbi4gVGhlIHBh
cnQgdGhhdCdzIG5ldyBpcyB0aGUKKyAgICAgICAgaW5pdGlhbGl6YXRpb24gb2YgbV9wYXJhbVZh
bHVlc01hcCB0byBmaWxsIGl0IHdpdGggZW1wdHkgYXVkaW8gYXJyYXlzLiBUaGVzZSBhcnJheXMK
KyAgICAgICAgYXJlIHVzZWQgaW4gcHJvY2VzcygpIHRvIHN0b3JlIHRoZSBzYW1wbGVzIGZyb20g
QXVkaW9QYXJhbSBvYmplY3RzLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2Rl
OjpzZXRQcm9jZXNzb3IpOgorICAgICAgICBGaXJlIGEgcHJvY2Vzc29yIGVycm9yIGlmIHRoZSBw
cm9jZXNzb3IgZ2V0cyBzZXQgdG8gbnVsbHB0ciwgaW5kaWNhdGluZyB0aGF0IHdlIGZhaWxlZAor
ICAgICAgICB0byBjb25zdHJ1Y3QgdGhlIEF1ZGlvV29ya2xldFByb2Nlc3NvciBvYmplY3QuCisK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6OnByb2Nlc3MpOgorICAgICAgICBG
aWxsIG1fcGFyYW1WYWx1ZXNNYXAgd2l0aCBzYW1wbGVzIGZyb20gYXNzb2NpYXRlZCBBdWRpb1Bh
cmFtIG9iamVjdHMgdGhlbiBjYWxsCisgICAgICAgIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJv
Y2VzcygpIHdpdGggaW5wdXQgJiBvdXRwdXQgQXVkaW9CdXMgb2JqZWN0cywgYXMgd2VsbAorICAg
ICAgICBhcyBtX3BhcmFtVmFsdWVzTWFwLiBJZiBwcm9jZXNzKCkgcmV0dXJucyBmYWxzZSBvciBl
bmNvdW50ZXJlZCBhbiBlcnJvciwgd2UgZmluaXNoCisgICAgICAgIHJlbmRlcmluZy4KKworICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6ZGlkRmluaXNoUHJvY2Vzc2luZ09uUmVu
ZGVyaW5nVGhyZWFkKToKKyAgICAgICAgVGhpcyBpcyBjYWxsZWQgYnkgcHJvY2VzcygpIHdoZW5l
dmVyIHByb2Nlc3MoKSByZXR1cm5zIGZhbHNlIG9yIGVuY291bnRlcmVkIGFuIGVycm9yLgorICAg
ICAgICBJZiBwcm9jZXNzKCkgZW5jb3VudGVyZWQgYW4gZXJyb3IsIHdlIG1ha2Ugc3VyZSB0byBm
aXJlIGEgcHJvY2Vzc29yZXZlbnQgZXZlbnQgdG8KKyAgICAgICAgbGV0IHRoZSBzY3JpcHQga25v
dy4gVGhlbiB3ZSBudWxsIG91dCB0aGUgcHJvY2Vzc29yIGFuZCBmaW5pc2ggcmVuZGVyaW5nLgor
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjp1cGRhdGVQdWxsU3RhdHVzKToK
KyAgICAgICAgSWYgdGhlIG5vZGUgaGFzIG5vIG91dHB1dCwgd2UgbmVlZCB0byBtYWtlIHN1cmUg
dG8gYWRkIGl0IHRvIHRoZSBhdXRvbWF0aWMgcHVsbAorICAgICAgICBsaXN0IGluIHRoZSBjb250
ZXh0IHNvIHRoYXQgaXQgaXMgdXNlZCBmb3IgcmVuZGVyaW5nLgorCisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1dvcmtsZXROb2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dCk6CisgICAg
ICAgIFVzZSBzYW1lIGxvZ2ljIGFzIEJsaW5rIGhlcmUuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvV29ya2xldE5vZGU6OmZpcmVQcm9jZXNzb3JFcnJvck9uTWFpblRocmVhZCk6CisgICAgICAg
IExvZ2ljIHRvIGZpcmUgYSBwcm9jZXNzb3JlcnJvciBldmVudCBvbiB0aGUgbWFpbiB0aHJlYWQg
d2l0aCBhIGRlY2VudCBlcnJvciBtZXNzYWdlLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dv
cmtsZXROb2RlOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvV29ya2xldE5vZGU6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAg
ICAgICBBY3RpdmVET01PYmplY3Qgb3ZlcnJpZGVzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmg6CisgICAgICAgIFN1YmNsYXNzIEF1ZGlvV29ya2xldE5v
ZGUgc2luY2Ugd2UgY2FuIGZpcmUgcHJvY2Vzc29yZXJyb3IgZXZlbnRzCisgICAgICAgIGF0IGFu
eSBwb2ludCBkdXJpbmcgcmVuZGVyaW5nLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmlkbDoKKyAgICAgICAgTWFrZSBpdCBhbiBBY3RpdmVET01PYmplY3Qu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheSk6CisgICAgICAgIChX
ZWJDb3JlOjpjb25zdHJ1Y3RKU01hcCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RGcm96
ZW5KU0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlEYXRhRnJvbUpTQXJyYXlUb0J1c2Vz
KToKKyAgICAgICAgQSBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyB0byBjb252ZXJ0IFdlYkNv
cmUgdHlwZXMgaW50byB0aGUgc3VpdGFibGUKKyAgICAgICAgSmF2YVNjcmlwdCB0eXBlcyB0aGF0
IGFyZSBleHBlY3RlZCBieSB0aGUgcHJvY2VzcygpIGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICBQcm92aWRlIGlt
cGxlbWVudGF0aW9uIGZvciBwcm9jZXNzKCk6CisgICAgICAgIC0gaHR0cHM6Ly93d3cudzMub3Jn
L1RSL3dlYmF1ZGlvLyNkb20tYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MKKyAgICAgICAg
V2UgY29udmVydCB0aGUgcGFyYW1ldGVycyBpbnRvIHRoZSBKYXZhU2NyaXB0IHR5cGVzIHRoYXQg
dGhlIEpTIHByb2Nlc3MoKQorICAgICAgICBmdW5jdGlvbiBleHBlY3RzLCB0aGVuIGNhbGwgdGhl
IHByb2Nlc3MoKSBmdW5jdGlvbiBhbmQgZmluYWxseSByZXR1cm4KKyAgICAgICAgdGhlIHZhbHVl
IHJldHVybmVkIGJ5IHRoZSBKUyBwcm9jZXNzKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6c2V0UHJvY2Vzc0NhbGxiYWNrKToKKyAgICAgICAg
VGhpcyBpcyBjYWxsZWQgYnkgdGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIHJpZ2h0IGFmdGVy
IHRoZSBBdWRpb1dvcmtsZXRQcm9jZXNzb3IKKyAgICAgICAgd3JhcHBlciBnZXRzIGNvbnN0cnVj
dGVkIHRvIHNldCB0aGUgSlNDYWxsYmFja0RhdGEgb2JqZWN0IHRoYXQgaXMgdXNlZAorICAgICAg
ICBieSBwcm9jZXNzKCkgdG8gY2FsbCB0aGUgSlMgcHJvY2VzcygpIGZ1bmN0aW9uLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaDoKKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0Nh
bGxiYWNrRGF0YVN0cm9uZzo6SlNDYWxsYmFja0RhdGFTdHJvbmcpOgorICAgICAgICBNYWtlIEpT
Q2FsbGJhY2tEYXRhIGZhc3QgYWxsb2NhdGVkLiBUaGUgYmluZGluZ3MgYW5kIG15IG5ldyBjb2Rl
IGhlYXAtYWxsb2NhdGUgaXQuCisKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFcnJvckV2ZW50OjpFcnJvckV2ZW50KToKKyAgICAgICAgKiBkb20vRXJy
b3JFdmVudC5oOgorICAgICAgICBBZGQgYW4gZXZlbnRUeXBlIHBhcmFtZXRlciBzaW5jZSBBdWRp
b1dvcmtsZXROb2RlIG5vdyBuZWVkcyB0byBkaXNwYXRjaCBhbiBFcnJvckV2ZW50CisgICAgICAg
IHdob3NlIHR5cGUgaXMgInByb2Nlc3NvcmVycm9yIiwgbm90IHRoZSBnZW5lcmljICJlcnJvciIu
CisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVz
c2FnZVBvcnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICBGaXgg
TWVzc2FnZVBvcnQgZ2FyYmFzZSBjb2xsZWN0aW9uIGxvZ2ljIHRvIHByb3Blcmx5IGRlYWwgd2l0
aCBNZXNzYWdlUG9ydHMgZnJvbQorICAgICAgICB3b3JrbGV0cy4gVGhpcyBhZGRyZXNzZXMgY3Jh
c2hlcyBmb3VuZCBieSB0aGUgdW5za2lwcGVkIGxheW91dCB0ZXN0cy4KKwogMjAyMC0xMC0wOSAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0
aW9uXSBPdmVyZmxvdyBjbGlwIGJsb2NrcyB2aXN1YWwgb3ZlcmZsb3cKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmgKaW5kZXggZjRlOTNkNjhiZTZlNGQ2ODhl
NzRkMGIyNjM5ODYxNTM1NGU4NmJmMS4uMTZiNDMyNTViNjNlMjc3NzE4Mzg1MjcxMDRiZDdhZjlh
MDYxNDI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFt
LmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIC8vIE11c3QgYmUgY2FsbGVkIGluIHRo
ZSBhdWRpbyB0aHJlYWQuCiAgICAgZmxvYXQgZmluYWxWYWx1ZSgpOwogCi0gICAgU3RyaW5nIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBj
b25zdCB7IHJldHVybiBtX25hbWU7IH0KIAogICAgIGZsb2F0IG1pblZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9taW5WYWx1ZTsgfQogICAgIGZsb2F0IG1heFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9tYXhWYWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCA0NTMwNjIwMzAwMWM0ZWQz
MmMxMTUwZmU4MDQ3YTA4Yzg5N2RiZDJiLi4yYTMwNmQ0ZjQxYzk3NDRiOWU2NTdjY2NjYTEyZjk2
YjllYzU0MWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIFJl
ZlB0cjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpjcmVh
dGVQcm9jZXNzb3IoY29uc3QgU3RyCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgSlND
OjpKU09iamVjdCoganNDb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yLT5jYWxsYmFja0RhdGEoKS0+
Y2FsbGJhY2soKTsKLSAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBqc0NvbnN0cnVjdG9yLT5nbG9i
YWxPYmplY3QoKTsKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBjb25zdHJ1Y3Rvci0+Y2FsbGJh
Y2tEYXRhKCktPmdsb2JhbE9iamVjdCgpOwogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrIHsgZ2xvYmFsT2JqZWN0IH07CkBAIC0xMzYsNiArMTM2LDgg
QEAgUmVmUHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nvcj4gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6
OmNyZWF0ZVByb2Nlc3Nvcihjb25zdCBTdHIKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKIAogICAgIGF1dG8mIGpzUHJvY2Vzc29yID0gKkpTQzo6anNDYXN0PEpTQXVk
aW9Xb3JrbGV0UHJvY2Vzc29yKj4ob2JqZWN0KTsKKyAgICBqc1Byb2Nlc3Nvci53cmFwcGVkKCku
c2V0UHJvY2Vzc0NhbGxiYWNrKG1ha2VVbmlxdWU8SlNDYWxsYmFja0RhdGFTdHJvbmc+KCZqc1By
b2Nlc3NvciwgZ2xvYmFsT2JqZWN0KSk7CisKICAgICByZXR1cm4gJmpzUHJvY2Vzc29yLndyYXBw
ZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggNmJlNzliOTkzZmI2NTk5YTgyNjMwODllZTA4NDNjYmMz
MjUxNmY5OS4uODA3NmIzNmRhY2ZhYWRhZjYzZDJlNTA5Yzg0MGJiN2IwN2MyZTczYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUu
Y3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0Tm9kZS5oIgogCiAj
aW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCisjaW5jbHVkZSAiQXVkaW9Ob2RlSW5wdXQuaCIKICNp
bmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKICNpbmNsdWRlICJBdWRpb1BhcmFtLmgiCiAjaW5j
bHVkZSAiQXVkaW9QYXJhbU1hcC5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIkF1ZGlv
V29ya2xldE5vZGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgi
CiAjaW5jbHVkZSAiQmFzZUF1ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIK
ICNpbmNsdWRlICJKU0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZUNoYW5uZWwuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgpAQCAtOTAsMzMgKzkyLDM1IEBA
IEV4Y2VwdGlvbk9yPFJlZjxBdWRpb1dvcmtsZXROb2RlPj4gQXVkaW9Xb3JrbGV0Tm9kZTo6Y3Jl
YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmCiAKICAgICBhdXRvIHBhcmFtZXRlckRhdGEgPSBXVEZN
b3ZlKG9wdGlvbnMucGFyYW1ldGVyRGF0YSk7CiAgICAgYXV0byBub2RlID0gYWRvcHRSZWYoKm5l
dyBBdWRpb1dvcmtsZXROb2RlKGNvbnRleHQsIG5hbWUsIFdURk1vdmUob3B0aW9ucyksICpub2Rl
TWVzc2FnZVBvcnQpKTsKKyAgICBub2RlLT5zdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIGF1dG8g
cmVzdWx0ID0gbm9kZS0+aGFuZGxlQXVkaW9Ob2RlT3B0aW9ucyhvcHRpb25zLCB7IDIsIENoYW5u
ZWxDb3VudE1vZGU6Ok1heCwgQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VycyB9KTsKICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKTsKIAotICAgIGZvciAoYXV0byYgZGVzY3JpcHRvciA6IHBhcmFtZXRlckRl
c2NyaXB0b3JzKSB7Ci0gICAgICAgIGF1dG8gcGFyYW1ldGVyID0gQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsIGRlc2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5kZWZhdWx0VmFsdWUsIGRlc2Ny
aXB0b3IubWluVmFsdWUsIGRlc2NyaXB0b3IubWF4VmFsdWUsIGRlc2NyaXB0b3IuYXV0b21hdGlv
blJhdGUpOwotICAgICAgICBub2RlLT5wYXJhbWV0ZXJzKCkuYWRkKGRlc2NyaXB0b3IubmFtZSwg
V1RGTW92ZShwYXJhbWV0ZXIpKTsKLSAgICB9CisgICAgbm9kZS0+aW5pdGlhbGl6ZUF1ZGlvUGFy
YW1ldGVycyhwYXJhbWV0ZXJEZXNjcmlwdG9ycywgcGFyYW1ldGVyRGF0YSk7CiAKLSAgICBpZiAo
cGFyYW1ldGVyRGF0YSkgewotICAgICAgICBmb3IgKGF1dG8mIHBhcmFtZXRlciA6ICpwYXJhbWV0
ZXJEYXRhKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byogYXVkaW9QYXJhbSA9IG5vZGUtPnBhcmFt
ZXRlcnMoKS5tYXAoKS5nZXQocGFyYW1ldGVyLmtleSkpCi0gICAgICAgICAgICAgICAgYXVkaW9Q
YXJhbS0+c2V0VmFsdWUocGFyYW1ldGVyLnZhbHVlKTsKLSAgICAgICAgfQotICAgIH0KKyAgICAv
LyBXaWxsIGNhdXNlIHRoZSBjb250ZXh0IHRvIHJlZiB0aGUgbm9kZSB1bnRpbCBwbGF5YmFjayBo
YXMgZmluaXNoZWQuCisgICAgY29udGV4dC5yZWZOb2RlKG5vZGUpOwogCiAgICAgY29udGV4dC5h
dWRpb1dvcmtsZXQoKS5jcmVhdGVQcm9jZXNzb3IobmFtZSwgcHJvY2Vzc29yTWVzc2FnZVBvcnQt
PmRpc2VudGFuZ2xlKCksIHNlcmlhbGl6ZWRPcHRpb25zLnJlbGVhc2VOb25OdWxsKCksIG5vZGUp
OwogCisgICAgeworICAgICAgICAvLyBUaGUgbm9kZSBzaG91bGQgYmUgbWFudWFsbHkgYWRkZWQg
dG8gdGhlIGF1dG9tYXRpYyBwdWxsIG5vZGUgbGlzdCwgZXZlbiB3aXRob3V0IGEgY29ubmVjdCgp
IGNhbGwuCisgICAgICAgIEJhc2VBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tl
cihjb250ZXh0KTsKKyAgICAgICAgbm9kZS0+dXBkYXRlUHVsbFN0YXR1cygpOworICAgIH0KKwog
ICAgIHJldHVybiBub2RlOwogfQogCiBBdWRpb1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2Rl
KEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQXVkaW9Xb3Jr
bGV0Tm9kZU9wdGlvbnMmJiBvcHRpb25zLCBSZWY8TWVzc2FnZVBvcnQ+JiYgcG9ydCkKICAgICA6
IEF1ZGlvTm9kZShjb250ZXh0LCBOb2RlVHlwZVdvcmtsZXQpCisgICAgLCBBY3RpdmVET01PYmpl
Y3QoY29udGV4dC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgLCBtX25hbWUobmFtZSkK
ICAgICAsIG1fcGFyYW1ldGVycyhBdWRpb1BhcmFtTWFwOjpjcmVhdGUoKSkKICAgICAsIG1fcG9y
dChXVEZNb3ZlKHBvcnQpKQorICAgICwgbV93YXNPdXRwdXRDaGFubmVsQ291bnRHaXZlbighIW9w
dGlvbnMub3V0cHV0Q2hhbm5lbENvdW50KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG9wdGlvbnMubnVtYmVyT2ZJbnB1dHM7ICsr
aSkKQEAgLTEyNCw2ICsxMjgsOSBAQCBBdWRpb1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2Rl
KEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZQogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBvcHRpb25zLm51bWJlck9mT3V0cHV0czsgKytpKQogICAgICAg
ICBhZGRPdXRwdXQob3B0aW9ucy5vdXRwdXRDaGFubmVsQ291bnQgPyBvcHRpb25zLm91dHB1dENo
YW5uZWxDb3VudC0+YXQoaSk6IDEpOwogCisgICAgbV9pbnB1dHMucmVzaXplKG9wdGlvbnMubnVt
YmVyT2ZJbnB1dHMpOworICAgIG1fb3V0cHV0cy5yZXNpemUob3B0aW9ucy5udW1iZXJPZk91dHB1
dHMpOworCiAgICAgaW5pdGlhbGl6ZSgpOwogfQogCkBAIC0xMzEsNyArMTM4LDcgQEAgQXVkaW9X
b3JrbGV0Tm9kZTo6fkF1ZGlvV29ya2xldE5vZGUoKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc29y
TG9jayk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNzTG9jayk7CiAg
ICAgICAgIGlmIChtX3Byb2Nlc3NvcikgewogICAgICAgICAgICAgaWYgKGF1dG8qIHdvcmtsZXRQ
cm94eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgpKQogICAgICAgICAgICAgICAg
IHdvcmtsZXRQcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoW21fcHJv
Y2Vzc29yID0gV1RGTW92ZShtX3Byb2Nlc3NvcildKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7
IH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwpAQCAtMTQwLDIxICsxNDcsMTQ3IEBA
IEF1ZGlvV29ya2xldE5vZGU6On5BdWRpb1dvcmtsZXROb2RlKCkKICAgICB1bmluaXRpYWxpemUo
KTsKIH0KIAordm9pZCBBdWRpb1dvcmtsZXROb2RlOjppbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJz
KGNvbnN0IFZlY3RvcjxBdWRpb1BhcmFtRGVzY3JpcHRvcj4mIGRlc2NyaXB0b3JzLCBjb25zdCBP
cHRpb25hbDxWZWN0b3I8V1RGOjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBkb3VibGU+Pj4mIHBhcmFt
VmFsdWVzKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fcGFy
YW1ldGVycy0+bWFwKCkuaXNFbXB0eSgpKTsKKworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9wcm9jZXNzTG9jayk7CisKKyAgICBmb3IgKGF1dG8mIGRlc2NyaXB0b3IgOiBkZXNjcmlwdG9y
cykgeworICAgICAgICBhdXRvIHBhcmFtZXRlciA9IEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0
KCksIGRlc2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5kZWZhdWx0VmFsdWUsIGRlc2NyaXB0b3Iu
bWluVmFsdWUsIGRlc2NyaXB0b3IubWF4VmFsdWUsIGRlc2NyaXB0b3IuYXV0b21hdGlvblJhdGUp
OworICAgICAgICBtX3BhcmFtZXRlcnMtPmFkZChkZXNjcmlwdG9yLm5hbWUsIFdURk1vdmUocGFy
YW1ldGVyKSk7CisgICAgfQorCisgICAgaWYgKHBhcmFtVmFsdWVzKSB7CisgICAgICAgIGZvciAo
YXV0byYgcGFyYW1WYWx1ZSA6ICpwYXJhbVZhbHVlcykgeworICAgICAgICAgICAgaWYgKGF1dG8q
IGF1ZGlvUGFyYW0gPSBtX3BhcmFtZXRlcnMtPm1hcCgpLmdldChwYXJhbVZhbHVlLmtleSkpCisg
ICAgICAgICAgICAgICAgYXVkaW9QYXJhbS0+c2V0VmFsdWUocGFyYW1WYWx1ZS52YWx1ZSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIHBhcmFtZXRlck5hbWUgOiBtX3BhcmFt
ZXRlcnMtPm1hcCgpLmtleXMoKSkKKyAgICAgICAgbV9wYXJhbVZhbHVlc01hcC5hZGQocGFyYW1l
dGVyTmFtZSwgbWFrZVVuaXF1ZTxBdWRpb0Zsb2F0QXJyYXk+KEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSkpOworfQorCiB2b2lkIEF1ZGlvV29ya2xldE5vZGU6OnNldFByb2Nlc3Nv
cihSZWZQdHI8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yPiYmIHByb2Nlc3NvcikKIHsKICAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vz
c29yTG9jayk7Ci0gICAgbV9wcm9jZXNzb3IgPSBXVEZNb3ZlKHByb2Nlc3Nvcik7CisgICAgaWYg
KHByb2Nlc3NvcikgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc0xv
Y2spOworICAgICAgICBtX3Byb2Nlc3NvciA9IFdURk1vdmUocHJvY2Vzc29yKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3NvckVycm9y
OjpDb25zdHJ1Y3RvckVycm9yKTsKIH0KIAogdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpwcm9jZXNz
KHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lc1RvUHJvY2Vzcyk7CiAKLSAgICAvLyBGSVhNRTogRG8g
YWN0dWFsIHByb2Nlc3NpbmcgdmlhIG1fcHJvY2Vzc29yLgorICAgIGF1dG8gbG9ja2VyID0gdHJ5
SG9sZExvY2sobV9wcm9jZXNzTG9jayk7CisgICAgaWYgKCFsb2NrZXIgfHwgIW1fcHJvY2Vzc29y
KSB7CisgICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5ZXQgb3Igd2UgYXJlIGdldHRpbmcgZGVz
dHJveWVkLiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBzaWxlbmNlLgorICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7ICsraSkKKyAgICAgICAgICAgIG91
dHB1dChpKS0+YnVzKCktPnplcm8oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8v
IElmIHRoZSBpbnB1dCBpcyBub3QgY29ubmVjdGVkLCBwYXNzIG51bGxwdHIgdG8gdGhlIHByb2Nl
c3Nvci4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZJbnB1dHMoKTsgKytp
KQorICAgICAgICBtX2lucHV0c1tpXSA9IGlucHV0KGkpLT5pc0Nvbm5lY3RlZCgpID8gaW5wdXQo
aSktPmJ1cygpIDogbnVsbHB0cjsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVy
T2ZPdXRwdXRzKCk7ICsraSkKLSAgICAgICAgb3V0cHV0KGkpLT5idXMoKS0+emVybygpOworICAg
ICAgICBtX291dHB1dHNbaV0gPSBvdXRwdXQoaSktPmJ1cygpOworCisgICAgZm9yIChhdXRvJiBh
dWRpb1BhcmFtIDogbV9wYXJhbWV0ZXJzLT5tYXAoKS52YWx1ZXMoKSkgeworICAgICAgICBhdXRv
KiBwYXJhbVZhbHVlcyA9IG1fcGFyYW1WYWx1ZXNNYXAuZ2V0KGF1ZGlvUGFyYW0tPm5hbWUoKSk7
CisgICAgICAgIEFTU0VSVChwYXJhbVZhbHVlcyk7CisgICAgICAgIGlmIChhdWRpb1BhcmFtLT5o
YXNTYW1wbGVBY2N1cmF0ZVZhbHVlcygpICYmIGF1ZGlvUGFyYW0tPmF1dG9tYXRpb25SYXRlKCkg
PT0gQXV0b21hdGlvblJhdGU6OkFSYXRlKQorICAgICAgICAgICAgYXVkaW9QYXJhbS0+Y2FsY3Vs
YXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXMocGFyYW1WYWx1ZXMtPmRhdGEoKSwgZnJhbWVzVG9Qcm9j
ZXNzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RkOjpmaWxsKHBhcmFtVmFsdWVzLT5k
YXRhKCksIHBhcmFtVmFsdWVzLT5kYXRhKCkgKyBmcmFtZXNUb1Byb2Nlc3MsIGF1ZGlvUGFyYW0t
PmZpbmFsVmFsdWUoKSk7CisgICAgfQorCisgICAgYm9vbCB0aHJld0V4Y2VwdGlvbiA9IGZhbHNl
OworICAgIGlmICghbV9wcm9jZXNzb3ItPnByb2Nlc3MobV9pbnB1dHMsIG1fb3V0cHV0cywgbV9w
YXJhbVZhbHVlc01hcCwgdGhyZXdFeGNlcHRpb24pKQorICAgICAgICBkaWRGaW5pc2hQcm9jZXNz
aW5nT25SZW5kZXJpbmdUaHJlYWQodGhyZXdFeGNlcHRpb24pOworfQorCit2b2lkIEF1ZGlvV29y
a2xldE5vZGU6OmRpZEZpbmlzaFByb2Nlc3NpbmdPblJlbmRlcmluZ1RocmVhZChib29sIHRocmV3
RXhjZXB0aW9uKQoreworICAgIGlmICh0aHJld0V4Y2VwdGlvbikKKyAgICAgICAgZmlyZVByb2Nl
c3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3NvckVycm9yOjpQcm9jZXNzRXJyb3IpOworCisg
ICAgbV9wcm9jZXNzb3IgPSBudWxscHRyOworICAgIG1fdGFpbFRpbWUgPSAwOworICAgIGNvbnRl
eHQoKS5ub3RpZnlOb2RlRmluaXNoZWRQcm9jZXNzaW5nKHRoaXMpOworfQorCit2b2lkIEF1ZGlv
V29ya2xldE5vZGU6OnVwZGF0ZVB1bGxTdGF0dXMoKQoreworICAgIEFTU0VSVChjb250ZXh0KCku
aXNHcmFwaE93bmVyKCkpOworCisgICAgYm9vbCBoYXNDb25uZWN0ZWRPdXRwdXQgPSBmYWxzZTsK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7ICsraSkgewor
ICAgICAgICBpZiAob3V0cHV0KGkpLT5pc0Nvbm5lY3RlZCgpKSB7CisgICAgICAgICAgICBoYXND
b25uZWN0ZWRPdXRwdXQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICAvLyBJZiBubyBvdXRwdXQgaXMgY29ubmVjdGVkLCBhZGQgdGhlIG5vZGUgdG8g
dGhlIGF1dG9tYXRpYyBwdWxsIGxpc3QuCisgICAgLy8gT3RoZXJ3aXNlLCByZW1vdmUgaXQgb3V0
IG9mIHRoZSBsaXN0LgorICAgIGlmICghaGFzQ29ubmVjdGVkT3V0cHV0KQorICAgICAgICBjb250
ZXh0KCkuYWRkQXV0b21hdGljUHVsbE5vZGUoKnRoaXMpOworICAgIGVsc2UKKyAgICAgICAgY29u
dGV4dCgpLnJlbW92ZUF1dG9tYXRpY1B1bGxOb2RlKCp0aGlzKTsKK30KKwordm9pZCBBdWRpb1dv
cmtsZXROb2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dChBdWRpb05vZGVJbnB1dCog
aW5wdXQpCit7CisgICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkgJiYgY29udGV4
dCgpLmlzR3JhcGhPd25lcigpKTsKKworICAgIC8vIER5bmFtaWMgY2hhbm5lbCBjb3VudCBvbmx5
IHdvcmtzIHdoZW4gdGhlIG5vZGUgaGFzIDEgaW5wdXQsIDEgb3V0cHV0IGFuZCB8b3V0cHV0Q2hh
bm5lbENvdW50fAorICAgIC8vIGlzIG5vdCBnaXZlbi4gT3RoZXJ3aXNlIHRoZSBjaGFubmVsIGNv
dW50KHMpIHNob3VsZCBub3QgYmUgZHluYW1pY2FsbHkgY2hhbmdlZC4KKyAgICBpZiAobnVtYmVy
T2ZJbnB1dHMoKSA9PSAxICYmIG51bWJlck9mT3V0cHV0cygpID09IDEgJiYgIW1fd2FzT3V0cHV0
Q2hhbm5lbENvdW50R2l2ZW4pIHsKKyAgICAgICAgQVNTRVJUKGlucHV0ID09IHRoaXMtPmlucHV0
KDApKTsKKyAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzID0gaW5wdXQtPm51
bWJlck9mQ2hhbm5lbHMoKTsKKyAgICAgICAgaWYgKG51bWJlck9mSW5wdXRDaGFubmVscyAhPSBv
dXRwdXQoMCktPm51bWJlck9mQ2hhbm5lbHMoKSkgeworICAgICAgICAgICAgLy8gVGhpcyB3aWxs
IHByb3BhZ2F0ZSB0aGUgY2hhbm5lbCBjb3VudCB0byBhbnkgbm9kZXMgY29ubmVjdGVkIGZ1cnRo
ZXIgZG93bnN0cmVhbSBpbiB0aGUgZ3JhcGguCisgICAgICAgICAgICBvdXRwdXQoMCktPnNldE51
bWJlck9mQ2hhbm5lbHMobnVtYmVyT2ZJbnB1dENoYW5uZWxzKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIC8vIFVwZGF0ZSB0aGUgaW5wdXQncyBpbnRlcm5hbCBidXMgaWYgbmVlZGVkLgorICAg
IEF1ZGlvTm9kZTo6Y2hlY2tOdW1iZXJPZkNoYW5uZWxzRm9ySW5wdXQoaW5wdXQpOworICAgIHVw
ZGF0ZVB1bGxTdGF0dXMoKTsKK30KKwordm9pZCBBdWRpb1dvcmtsZXROb2RlOjpmaXJlUHJvY2Vz
c29yRXJyb3JPbk1haW5UaHJlYWQoUHJvY2Vzc29yRXJyb3IgZXJyb3IpCit7CisgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVycm9yXSgpIG11dGFibGUgeworICAgICAgICBTdHJp
bmcgZXJyb3JNZXNzYWdlOworICAgICAgICBzd2l0Y2ggKGVycm9yKSB7CisgICAgICAgIGNhc2Ug
UHJvY2Vzc29yRXJyb3I6OkNvbnN0cnVjdG9yRXJyb3I6CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSAiQW4gZXJyb3Igd2FzIHRocm93biBmcm9tIEF1ZGlvV29ya2xldFByb2Nlc3NvciBjb25z
dHJ1Y3RvciJfczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFByb2Nlc3NvckVy
cm9yOjpQcm9jZXNzRXJyb3I6CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAiQW4gZXJyb3Ig
d2FzIHRocm93biBmcm9tIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2VzcygpIG1ldGhvZCJf
czsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHF1ZXVlVGFza1RvRGlz
cGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBFcnJvckV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnByb2Nlc3NvcmVycm9yRXZlbnQsIGVycm9yTWVzc2FnZSwgeyB9
LCAwLCAwLCB7IH0pKTsKKyAgICB9KTsKK30KKworY29uc3QgY2hhciogQXVkaW9Xb3JrbGV0Tm9k
ZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJBdWRpb1dvcmts
ZXROb2RlIjsKK30KKworYm9vbCBBdWRpb1dvcmtsZXROb2RlOjp2aXJ0dWFsSGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWNvbnRleHQoKS5pc0Nsb3NlZCgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCmluZGV4IDk1YzdmNjc1MGYwNWYxMmYzOTc2MjQ1
ZGFkYjcxMzFmMTE0ODU0OTcuLjBlMGFkM2VkOGM0MjhhZDI0Mzc3NWMwNzZlOWIxYzY4NjY3MTNi
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5oCkBAIC0zMCw2ICszMCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCisj
aW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgogI2lu
Y2x1ZGUgIkF1ZGlvTm9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKQEAgLTQxLDcgKzQz
LDcgQEAgY2xhc3MgTWVzc2FnZVBvcnQ7CiAKIHN0cnVjdCBBdWRpb1dvcmtsZXROb2RlT3B0aW9u
czsKIAotY2xhc3MgQXVkaW9Xb3JrbGV0Tm9kZSA6IHB1YmxpYyBBdWRpb05vZGUgeworY2xhc3Mg
QXVkaW9Xb3JrbGV0Tm9kZSA6IHB1YmxpYyBBdWRpb05vZGUsIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQXVkaW9Xb3JrbGV0Tm9kZSk7CiBwdWJs
aWM6CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxBdWRpb1dvcmtsZXROb2RlPj4gY3JlYXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBCYXNlQXVkaW9Db250ZXh0JiwgU3RyaW5nJiYgbmFtZSwg
QXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMmJik7CkBAIC01MSwyMSArNTMsNDEgQEAgcHVibGljOgog
ICAgIE1lc3NhZ2VQb3J0JiBwb3J0KCkgeyByZXR1cm4gbV9wb3J0LmdldCgpOyB9CiAKICAgICB2
b2lkIHNldFByb2Nlc3NvcihSZWZQdHI8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yPiYmKTsKKyAgICB2
b2lkIGluaXRpYWxpemVBdWRpb1BhcmFtZXRlcnMoY29uc3QgVmVjdG9yPEF1ZGlvUGFyYW1EZXNj
cmlwdG9yPiYsIGNvbnN0IE9wdGlvbmFsPFZlY3RvcjxXVEY6OktleVZhbHVlUGFpcjxTdHJpbmcs
IGRvdWJsZT4+PiYgcGFyYW1WYWx1ZXMpOwogCiBwcml2YXRlOgogICAgIEF1ZGlvV29ya2xldE5v
ZGUoQmFzZUF1ZGlvQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgQXVkaW9Xb3JrbGV0Tm9k
ZU9wdGlvbnMmJiwgUmVmPE1lc3NhZ2VQb3J0PiYmKTsKIAorICAgIGVudW0gY2xhc3MgUHJvY2Vz
c29yRXJyb3IgeyBDb25zdHJ1Y3RvckVycm9yLCBQcm9jZXNzRXJyb3IgfTsKKyAgICB2b2lkIGZp
cmVQcm9jZXNzb3JFcnJvck9uTWFpblRocmVhZChQcm9jZXNzb3JFcnJvcik7CisgICAgdm9pZCBk
aWRGaW5pc2hQcm9jZXNzaW5nT25SZW5kZXJpbmdUaHJlYWQoYm9vbCB0aHJld0V4Y2VwdGlvbik7
CisKICAgICAvLyBBdWRpb05vZGUuCiAgICAgdm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpIGZpbmFsOwotICAgIGRvdWJsZSB0YWlsVGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IDA7IH0gLy8gRklYTUU6IFJldHVybiBhIGNvcnJlY3QgdmFsdWUuCisgICAgZG91YmxlIHRhaWxU
aW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90YWlsVGltZTsgfQogICAgIGRvdWJsZSBsYXRl
bmN5VGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KICAgICBib29sIHJlcXVpcmVzVGFp
bFByb2Nlc3NpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBjaGVj
a051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dChBdWRpb05vZGVJbnB1dCopIGZpbmFsOworICAgIHZv
aWQgdXBkYXRlUHVsbFN0YXR1cygpIGZpbmFsOworCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0Lgor
ICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKKyAgICBi
b29sIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKIAogICAgIFN0cmlu
ZyBtX25hbWU7CiAgICAgUmVmPEF1ZGlvUGFyYW1NYXA+IG1fcGFyYW1ldGVyczsKICAgICBSZWY8
TWVzc2FnZVBvcnQ+IG1fcG9ydDsKLSAgICBMb2NrIG1fcHJvY2Vzc29yTG9jazsKKyAgICBMb2Nr
IG1fcHJvY2Vzc0xvY2s7CiAgICAgUmVmUHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nvcj4gbV9wcm9j
ZXNzb3I7IC8vIFNob3VsZCBvbmx5IGJlIHVzZWQgb24gdGhlIHJlbmRlcmluZyB0aHJlYWQuCisg
ICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiBtX3Bh
cmFtVmFsdWVzTWFwOworCisgICAgLy8gS2VlcHMgdGhlIHJlZmVyZW5jZSBvZiBBdWRpb0J1cyBv
YmplY3RzIGZyb20gQXVkaW9Ob2RlSW5wdXQgYW5kIEF1ZGlvTm9kZU91dHB1dCBpbiBvcmRlcgor
ICAgIC8vIHRvIHBhc3MgdGhlbSB0byBBdWRpb1dvcmtsZXRQcm9jZXNzb3IuCisgICAgVmVjdG9y
PFJlZlB0cjxBdWRpb0J1cz4+IG1faW5wdXRzOworICAgIFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+
PiBtX291dHB1dHM7CisKKyAgICBkb3VibGUgbV90YWlsVGltZSB7IHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6aW5maW5pdHkoKSB9OworICAgIGJvb2wgbV93YXNPdXRwdXRDaGFubmVsQ291
bnRHaXZlbiB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbApp
bmRleCA3MTE1YWZjZTAzOWM2ZTVlMjY3ODdjMTNkZjFjZjA3ZThkNmZmMGY4Li45MjE1Yzk4ZTFk
M2Y2ZDEwZTUxZjhiODEzNjlmMmY1NjMxY2MxNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKQEAgLTI3LDYgKzI3LDcg
QEAKICAqLwogCiBbCisgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgIENvbmRpdGlvbmFsPVdFQl9B
VURJTywKICAgICBFbmFibGVkQnlTZXR0aW5nPUF1ZGlvV29ya2xldCwKICAgICBFeHBvc2VkPVdp
bmRvdywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAppbmRleCA0NWE5NzhlODk3ODJjMTM4Zjk1MjNlMmE4OWY4
NGE3NzFlOGRmZDVhLi4wNmEwNGY5M2MzNWM5NmZkYzNmMDkzOWE3MDIwMWY2NjAwZDYyZTVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFBy
b2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRQcm9jZXNzb3IuY3BwCkBAIC0zMSwxMiArMzEsNzUgQEAKICNpZiBFTkFCTEUoV0VCX0FV
RElPKQogI2luY2x1ZGUgIkF1ZGlvV29ya2xldFByb2Nlc3Nvci5oIgogCisjaW5jbHVkZSAiQXVk
aW9CdXMuaCIKKyNpbmNsdWRlICJBdWRpb0NoYW5uZWwuaCIKICNpbmNsdWRlICJBdWRpb1dvcmts
ZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkF1ZGlvV29ya2xldFByb2Nlc3NvckNvbnN0cnVj
dGlvbkRhdGEuaCIKKyNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5oIgorI2luY2x1ZGUgIkpTRE9N
RXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNNYXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1lc3BhY2UgSlND
OworCitzdGF0aWMgSlNGbG9hdDMyQXJyYXkqIGNvbnN0cnVjdEpTRmxvYXQzMkFycmF5KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGxlbmd0aCwgY29uc3QgZmxvYXQqIGRh
dGEgPSBudWxscHRyKQoreworICAgIGF1dG8qIGpzQXJyYXkgPSBKU0Zsb2F0MzJBcnJheTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT50eXBlZEFycmF5U3RydWN0dXJlKFR5cGVG
bG9hdDMyKSwgbGVuZ3RoKTsKKyAgICBpZiAoZGF0YSkKKyAgICAgICAgbWVtY3B5KGpzQXJyYXkt
PnR5cGVkVmVjdG9yKCksIGRhdGEsIHNpemVvZihmbG9hdCkgKiBsZW5ndGgpOworICAgIHJldHVy
biBqc0FycmF5OworfQorCitzdGF0aWMgSlNNYXAqIGNvbnN0cnVjdEpTTWFwKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXApCit7CisgICAgYXV0byog
bWFwID0gSlNNYXA6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPm1hcFN0
cnVjdHVyZSgpKTsKKyAgICBmb3IgKGF1dG8mIHBhaXIgOiBwYXJhbVZhbHVlc01hcCkKKyAgICAg
ICAgbWFwLT5zZXQoZ2xvYmFsT2JqZWN0LCBqc1N0cmluZ1dpdGhDYWNoZSh2bSwgcGFpci5rZXkp
LCBjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheShnbG9iYWxPYmplY3QsIHBhaXIudmFsdWUtPnNpemUo
KSwgcGFpci52YWx1ZS0+ZGF0YSgpKSk7CisgICAgcmV0dXJuIG1hcDsKK30KKworZW51bSBjbGFz
cyBTaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhIDogYm9vbCB7IE5vLCBZZXMgfTsKK3N0YXRpYyBK
U0FycmF5KiBjb25zdHJ1Y3RGcm96ZW5KU0FycmF5KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQXVkaW9CdXMqIGJ1cywgU2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YSBzaG91
bGRQb3B1bGF0ZVdpdGhCdXNEYXRhKQoreworICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMg
PSBidXMgPyBidXMtPm51bWJlck9mQ2hhbm5lbHMoKSA6IDA7CisgICAgYXV0byogY2hhbm5lbHNE
YXRhID0gSlNBcnJheTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPm9yaWdpbmFsQXJyYXlTdHJ1
Y3R1cmVGb3JJbmRleGluZ1R5cGUoQXJyYXlXaXRoQ29udGlndW91cyksIG51bWJlck9mQ2hhbm5l
bHMpOworICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCBudW1iZXJPZkNoYW5uZWxzOyArK2op
IHsKKyAgICAgICAgYXV0byogY2hhbm5lbCA9IGJ1cy0+Y2hhbm5lbChqKTsKKyAgICAgICAgY2hh
bm5lbHNEYXRhLT5zZXRJbmRleFF1aWNrbHkodm0sIGosIGNvbnN0cnVjdEpTRmxvYXQzMkFycmF5
KGdsb2JhbE9iamVjdCwgY2hhbm5lbC0+bGVuZ3RoKCksIHNob3VsZFBvcHVsYXRlV2l0aEJ1c0Rh
dGEgPT0gU2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YTo6WWVzID8gY2hhbm5lbC0+ZGF0YSgpIDog
bnVsbHB0cikpOworICAgIH0KKyAgICBKU0M6Om9iamVjdENvbnN0cnVjdG9yRnJlZXplKGdsb2Jh
bE9iamVjdCwgY2hhbm5lbHNEYXRhKTsKKyAgICByZXR1cm4gY2hhbm5lbHNEYXRhOworfQorCitz
dGF0aWMgSlNBcnJheSogY29uc3RydWN0RnJvemVuSlNBcnJheShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgYnVzZXMs
IFNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGEgc2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YSkKK3sK
KyAgICBhdXRvKiBhcnJheSA9IEpTQXJyYXk6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5vcmln
aW5hbEFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlKEFycmF5V2l0aENvbnRpZ3VvdXMpLCBi
dXNlcy5zaXplKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBidXNlcy5zaXplKCk7
ICsraSkKKyAgICAgICAgYXJyYXktPnNldEluZGV4UXVpY2tseSh2bSwgaSwgY29uc3RydWN0RnJv
emVuSlNBcnJheSh2bSwgZ2xvYmFsT2JqZWN0LCBidXNlc1tpXS5nZXQoKSwgc2hvdWxkUG9wdWxh
dGVXaXRoQnVzRGF0YSkpOworICAgIEpTQzo6b2JqZWN0Q29uc3RydWN0b3JGcmVlemUoZ2xvYmFs
T2JqZWN0LCBhcnJheSk7CisgICAgcmV0dXJuIGFycmF5OworfQorCitzdGF0aWMgdm9pZCBjb3B5
RGF0YUZyb21KU0FycmF5VG9CdXNlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Fy
cmF5KiBqc0FycmF5LCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGJ1c2VzKQoreworICAgIC8v
IFdlIGNhbiBzYWZlbHkgbWFrZSBhc3N1bXB0aW9ucyBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRo
ZSBKU0FycmF5IHNpbmNlIHdlIHVzZSBmcm96ZW4gYXJyYXlzLgorICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBidXNlcy5zaXplKCk7ICsraSkgeworICAgICAgICBhdXRvJiBidXMgPSBidXNl
c1tpXTsKKyAgICAgICAgYXV0byogY2hhbm5lbHNBcnJheSA9IGFzT2JqZWN0KGpzQXJyYXktPmdl
dEluZGV4KGdsb2JhbE9iamVjdCwgaSkpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBq
IDwgYnVzLT5udW1iZXJPZkNoYW5uZWxzKCk7ICsraikgeworICAgICAgICAgICAgYXV0byogY2hh
bm5lbCA9IGJ1cy0+Y2hhbm5lbChqKTsKKyAgICAgICAgICAgIGF1dG8qIGpzQ2hhbm5lbERhdGEg
PSBqc0Nhc3Q8SlNGbG9hdDMyQXJyYXkqPihjaGFubmVsc0FycmF5LT5nZXRJbmRleChnbG9iYWxP
YmplY3QsIGopKTsKKyAgICAgICAgICAgIGlmIChqc0NoYW5uZWxEYXRhLT5sZW5ndGgoKSA9PSBj
aGFubmVsLT5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICBtZW1jcHkoY2hhbm5lbC0+bXV0YWJs
ZURhdGEoKSwganNDaGFubmVsRGF0YS0+dHlwZWRWZWN0b3IoKSwgc2l6ZW9mKGZsb2F0KSAqIGNo
YW5uZWwtPmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjaGFu
bmVsLT56ZXJvKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIEV4Y2VwdGlvbk9yPFJlZjxBdWRp
b1dvcmtsZXRQcm9jZXNzb3I+PiBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewogICAgIGF1dG8gY29uc3RydWN0aW9uRGF0YSA9
IGRvd25jYXN0PEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS50YWtlUGVuZGluZ1By
b2Nlc3NvckNvbnN0cnVjdGlvbkRhdGEoKTsKQEAgLTU1LDYgKzExOCw0MiBAQCBBdWRpb1dvcmts
ZXRQcm9jZXNzb3I6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcihjb25zdCBBdWRpb1dvcmtsZXRQcm9j
ZXNzb3JDb25zdHJ1YwogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogfQogCitib29sIEF1
ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVz
Pj4mIGlucHV0cywgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBvdXRwdXRzLCBjb25zdCBIYXNo
TWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVl
c01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24pCit7CisgICAgQVNTRVJUKG1fcHJvY2Vzc0NhbGxi
YWNrKTsKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBtX3Byb2Nlc3NDYWxsYmFjay0+Z2xvYmFs
T2JqZWN0KCk7CisgICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKKyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmlzQ29udGV4dFRocmVhZCgpKTsKKworICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OworICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKKworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVy
IGFyZ3M7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb25zaWRlciBjYWNoaW5nIHRoZSBKU0Fy
cmF5cyAmIEpTTWFwIGFuZCBvbmx5IHVwZGF0ZSB0aGVpciBpdGVtcworICAgIC8vIGV2ZXJ5IHRp
bWUgcHJvY2VzcygpIGlzIGNhbGxlZCwgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuCisgICAgYXJn
cy5hcHBlbmQoY29uc3RydWN0RnJvemVuSlNBcnJheSh2bSwgZ2xvYmFsT2JqZWN0LCBpbnB1dHMs
IFNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGE6OlllcykpOworICAgIGF1dG8qIG91cHV0SlNBcnJh
eSA9IGNvbnN0cnVjdEZyb3plbkpTQXJyYXkodm0sIGdsb2JhbE9iamVjdCwgb3V0cHV0cywgU2hv
dWxkUG9wdWxhdGVXaXRoQnVzRGF0YTo6Tm8pOworICAgIGFyZ3MuYXBwZW5kKG91cHV0SlNBcnJh
eSk7CisgICAgYXJncy5hcHBlbmQoY29uc3RydWN0SlNNYXAodm0sIGdsb2JhbE9iamVjdCwgcGFy
YW1WYWx1ZXNNYXApKTsKKworICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4
Y2VwdGlvbjsKKyAgICBhdXRvIHJlc3VsdCA9IG1fcHJvY2Vzc0NhbGxiYWNrLT5pbnZva2VDYWxs
YmFjayhqc1VuZGVmaW5lZCgpLCBhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpP
YmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJwcm9jZXNzIiksIHJldHVybmVkRXhj
ZXB0aW9uKTsKKyAgICBpZiAocmV0dXJuZWRFeGNlcHRpb24pIHsKKyAgICAgICAgcmVwb3J0RXhj
ZXB0aW9uKGdsb2JhbE9iamVjdCwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgICAgICB0aHJld0V4
Y2VwdGlvbiA9IHRydWU7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBjb3B5
RGF0YUZyb21KU0FycmF5VG9CdXNlcyhnbG9iYWxPYmplY3QsIG91cHV0SlNBcnJheSwgb3V0cHV0
cyk7CisKKyAgICByZXR1cm4gcmVzdWx0LnRvQm9vbGVhbihnbG9iYWxPYmplY3QpOworfQorCit2
b2lkIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6c2V0UHJvY2Vzc0NhbGxiYWNrKHN0ZDo6dW5pcXVl
X3B0cjxKU0NhbGxiYWNrRGF0YVN0cm9uZz4mJiBwcm9jZXNzQ2FsbGJhY2spCit7CisgICAgbV9w
cm9jZXNzQ2FsbGJhY2sgPSBXVEZNb3ZlKHByb2Nlc3NDYWxsYmFjayk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3Iu
aAppbmRleCA1ZmQzYTllZGIzMDQxNmExMWI0NDVhYjU2MzQyM2JkMzcyYzkyNDZlLi44ZDExZTNm
ZTQzNDU1NWE3ZmMyMTkzMTIyMTc1NmU2ZmJiNmFhYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgKQEAgLTI5
LDYgKzI5LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNs
dWRlICJBdWRpb0FycmF5LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTM2LDcgKzM3LDkgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBdWRpb0J1czsKIGNsYXNzIEF1ZGlvV29ya2xl
dFByb2Nlc3NvckNvbnN0cnVjdGlvbkRhdGE7CitjbGFzcyBKU0NhbGxiYWNrRGF0YVN0cm9uZzsK
IGNsYXNzIE1lc3NhZ2VQb3J0OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIApAQCAt
NDgsMTEgKzUxLDE2IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7
IHJldHVybiBtX25hbWU7IH0KICAgICBNZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0dXJuIG1fcG9y
dC5nZXQoKTsgfQogCisgICAgYm9vbCBwcm9jZXNzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9C
dXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhh
c2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFs
dWVzTWFwLCBib29sJiB0aHJld0V4Y2VwdGlvbik7CisKKyAgICB2b2lkIHNldFByb2Nlc3NDYWxs
YmFjayhzdGQ6OnVuaXF1ZV9wdHI8SlNDYWxsYmFja0RhdGFTdHJvbmc+JiYpOworCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IEF1ZGlvV29ya2xldFByb2Nlc3Nvcihjb25zdCBBdWRpb1dvcmtsZXRQ
cm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhJik7CiAKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIFJl
ZjxNZXNzYWdlUG9ydD4gbV9wb3J0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0NhbGxiYWNrRGF0
YVN0cm9uZz4gbV9wcm9jZXNzQ2FsbGJhY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaAppbmRleCAzZWIz
YzFiNDhmNjlkMjM3YWM5NTAzODEzMjkwODdiOGZhMzhhNWE4Li5jNWU4NmU3ZTZmNjUwNjFlYTQ1
Y2YxNDlmYjE5MmI5OGIyYzYzNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NhbGxiYWNrRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q2FsbGJhY2tEYXRhLmgKQEAgLTQzLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8g
KGFuZCBzeW5jaHJvbml6YXRpb24gd291bGQgYmUgc2xvdykuCiAKIGNsYXNzIEpTQ2FsbGJhY2tE
YXRhIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBlbnVtIGNs
YXNzIENhbGxiYWNrVHlwZSB7IEZ1bmN0aW9uLCBPYmplY3QsIEZ1bmN0aW9uT3JPYmplY3QgfTsK
IApAQCAtNzIsNyArNzMsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBKU0NhbGxiYWNrRGF0YVN0cm9u
ZyA6IHB1YmxpYyBKU0NhbGxiYWNrRGF0YSB7CiBwdWJsaWM6Ci0gICAgSlNDYWxsYmFja0RhdGFT
dHJvbmcoSlNDOjpKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIHZvaWQqKQorICAgIEpTQ2FsbGJhY2tEYXRhU3Ryb25nKEpTQzo6SlNPYmplY3QqIGNh
bGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiA9IG51bGxwdHIp
CiAgICAgICAgIDogSlNDYWxsYmFja0RhdGEoZ2xvYmFsT2JqZWN0KQogICAgICAgICAsIG1fY2Fs
bGJhY2soZ2xvYmFsT2JqZWN0LT52bSgpLCBjYWxsYmFjaykKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXJy
b3JFdmVudC5jcHAKaW5kZXggYTE0YTQyMWYxYTVhZTdlMzVjMTUxMzU1NDIxMmU3NGIwZGM1OGE0
Ni4uOWE3YmY0OThlOWVjMDI1YTkzYmZlYjEzYzdiMjg0OTZiODRiMmY2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FcnJvckV2ZW50LmNwcApAQCAtNTMsOCArNTMsOCBAQCBFcnJvckV2ZW50OjpFcnJvckV2ZW50
KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0
ZQogewogfQogCi1FcnJvckV2ZW50OjpFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29s
dW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yKQotICAgIDogRXZlbnQo
ZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIENhbkJ1YmJsZTo6Tm8sIElzQ2FuY2VsYWJsZTo6WWVz
KQorRXJyb3JFdmVudDo6RXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBlcnJv
cikKKyAgICA6IEV2ZW50KHR5cGUsIENhbkJ1YmJsZTo6Tm8sIElzQ2FuY2VsYWJsZTo6WWVzKQog
ICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCiAgICAgLCBtX2ZpbGVOYW1lKGZpbGVOYW1lKQogICAg
ICwgbV9saW5lTnVtYmVyKGxpbmVOdW1iZXIpCkBAIC02Myw2ICs2MywxMSBAQCBFcnJvckV2ZW50
OjpFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSwgdW5zaWduZWQgbAogewogfQogCitFcnJvckV2ZW50OjpFcnJvckV2ZW50KGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwg
dW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yKQor
ICAgIDogRXJyb3JFdmVudChldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgbWVzc2FnZSwgZmlsZU5h
bWUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgZXJyb3IpCit7Cit9CisKIEVycm9yRXZlbnQ6
On5FcnJvckV2ZW50KCkgPSBkZWZhdWx0OwogCiBFdmVudEludGVyZmFjZSBFcnJvckV2ZW50Ojpl
dmVudEludGVyZmFjZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXJy
b3JFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaAppbmRleCBkZjEzMWUz
MWY2YmMyYjVkNzUzNWEzZmQ1OTM4NGRkODgyYjJmODY3Li5jNmMyYzQ0OGI4NjMzN2NiM2UwMmM3
OTU3MDc2ZDVlYzEzNTdlZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JF
dmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgKQEAgLTQ3LDYgKzQ3
LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXJyb3JFdmVudCht
ZXNzYWdlLCBmaWxlTmFtZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvcikpOwogICAg
IH0KIAorICAgIHN0YXRpYyBSZWY8RXJyb3JFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5z
aWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6
OlVua25vd24+IGVycm9yKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXJy
b3JFdmVudCh0eXBlLCBtZXNzYWdlLCBmaWxlTmFtZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVy
LCBlcnJvcikpOworICAgIH0KKwogICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKICAgICAg
ICAgU3RyaW5nIG1lc3NhZ2U7CiAgICAgICAgIFN0cmluZyBmaWxlbmFtZTsKQEAgLTc2LDYgKzgx
LDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHRyeVNlcmlh
bGl6ZUVycm9yKEpTQzo6SlNHbG9iYWxPYmplY3QmKTsKIAogcHJpdmF0ZToKKyAgICBFcnJvckV2
ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVt
YmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yKTsKICAgICBFcnJvckV2ZW50KGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGlu
ZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+
IGVycm9yKTsKICAgICBFcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0Jiwg
SXNUcnVzdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKaW5kZXggOWRmOGZjZDI5
ZGRjM2Y5OGYxMDI1OTVjMGMzZWZhNDQzZTY4NWFlMi4uYjQxODI4NWRlMWZkMDNjZjE5OGYxYTE4
ZTczNTllODFiNzgwNjc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQ
b3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCkBAIC0zMjgs
MTkgKzMyOCwxOSBAQCBib29sIE1lc3NhZ2VQb3J0Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QKIAogICAgIC8vIElmIHdlJ3JlIG5vdCBpbiB0aGUgbWlkZGxlIG9mIGFza2luZyB0
aGUgcmVtb3RlIHBvcnQgYWJvdXQgY29sbGVjdGFiaWxpdHksIGRvIHNvIG5vdy4KICAgICBpZiAo
IW1faXNBc2tpbmdSZW1vdGVBYm91dEdDKSB7Ci0gICAgICAgIFJlZlB0cjxXb3JrZXJUaHJlYWQ+
IHdvcmtlclRocmVhZDsKLSAgICAgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KSkKLSAgICAgICAgICAgIHdvcmtlclRocmVhZCA9ICZkb3duY2Fz
dDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkudGhyZWFkKCk7
CisgICAgICAgIFJlZlB0cjxXb3JrZXJPcldvcmtsZXRUaHJlYWQ+IHdvcmtlck9yV29ya2xldFRo
cmVhZDsKKyAgICAgICAgaWYgKGlzPFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPigqbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgICAgIHdvcmtlck9yV29ya2xldFRocmVhZCA9
IGRvd25jYXN0PFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KS53b3JrZXJPcldvcmtsZXRUaHJlYWQoKTsKIAotICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFtyZW1vdGVJZGVudGlmaWVyID0gbV9yZW1vdGVJZGVudGlmaWVyLCB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKGNvbnN0X2Nhc3Q8TWVzc2FnZVBvcnQqPih0aGlzKSksIHdvcmtlclRocmVhZCA9
IFdURk1vdmUod29ya2VyVGhyZWFkKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIE1lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyOjpzaW5nbGV0b24oKS5jaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0
eShyZW1vdGVJZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgd29ya2Vy
VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIGhhc0FjdGl2aXR5KSBtdXRhYmxl
IHsKLSAgICAgICAgICAgICAgICBpZiAoIXdvcmtlclRocmVhZCkgeworICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFtyZW1vdGVJZGVudGlmaWVyID0gbV9yZW1vdGVJZGVudGlmaWVyLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKGNvbnN0X2Nhc3Q8TWVzc2FnZVBvcnQqPih0aGlzKSksIHdvcmtlck9y
V29ya2xldFRocmVhZCA9IFdURk1vdmUod29ya2VyT3JXb3JrbGV0VGhyZWFkKV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpzaW5nbGV0b24oKS5j
aGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShyZW1vdGVJZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBX
VEZNb3ZlKHdlYWtUaGlzKSwgd29ya2VyT3JXb3JrbGV0VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJP
cldvcmtsZXRUaHJlYWQpXShhdXRvIGhhc0FjdGl2aXR5KSBtdXRhYmxlIHsKKyAgICAgICAgICAg
ICAgICBpZiAoIXdvcmtlck9yV29ya2xldFRocmVhZCkgewogICAgICAgICAgICAgICAgICAgICBp
ZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+dXBkYXRlQWN0
aXZpdHkoaGFzQWN0aXZpdHkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9z
dFRhc2tGb3JNb2RlKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBoYXNBY3Rpdml0eV0o
YXV0byYpIG11dGFibGUgeworICAgICAgICAgICAgICAgIHdvcmtlck9yV29ya2xldFRocmVhZC0+
cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwg
aGFzQWN0aXZpdHldKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHdl
YWtUaGlzKQogICAgICAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPnVwZGF0ZUFjdGl2aXR5
KGhhc0FjdGl2aXR5KTsKICAgICAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0
TW9kZSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAxNGJiNDU2Nzg3ZDI4ZDZjMThiYmRhZTZhYzM5Y2M1NzQ5ZDlmODAw
Li4yMzY4Mzc4NzE3MTdjZTlkYzNhMjhjOTM0NjkwZWRjNmNiOTBiYTgwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjAtMTAtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBVc2UgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHRvIHByb2Nlc3MgYXVkaW8KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzUzMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuc2tpcCBhbGwgQXVk
aW9Xb3JrbGV0IHRlc3RzIG5vdyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciB0aW1pbmcgb3V0Lgor
CisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0xMC0wOSAgQWRpdHlhIEtlZXJ0
aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBBZGQgZWRpdGFiaWxp
dHkgdG8gaW5wdXQgdHlwZT1tb250aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
NmRjOTQzOWQ2NmUxY2E3ZDk4ODYyYWY3OGY3OGU5MmQwODE0MGZjOS4uNTJkMmE1ODU5Mzg5NWEw
ZGE1ODAzMDQ0MWRkYzA4YWRhNjE3NTdhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjggQEAKKzIwMjAtMTAtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHRvIHByb2Nlc3MgYXVk
aW8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzUz
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFz
ZWxpbmUgV1BUIHRlc3RzIG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
YnVmZmVyc291cmNlbm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtYXV0b21hdGlj
LXB1bGwuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29y
a2xldG5vZGUtZGlzY29ubmVjdGVkLWlucHV0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3Jr
bGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb3V0cHV0LWNoYW5uZWwt
Y291bnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29y
a2xldHByb2Nlc3Nvci1wcm9jZXNzLWZyb3plbi1hcnJheS5odHRwcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1
ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtemVyby1v
dXRwdXRzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dv
cmtsZXRwcm9jZXNzb3ItcHJvbWlzZXMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQt
aW50ZXJmYWNlL3Byb2Nlc3MtZ2V0dGVyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9wcm9jZXNzb3ItY29uc3RydWN0aW9uLXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1jaGFubmVsbWVyZ2Vybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0
cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2lu
Zy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZh
Y2UvY29ycy1jaGVjay5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNl
bm9kZS1pbnRlcmZhY2Uvbm8tY29ycy5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMTAtMDkg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTIHRyYW5z
Zm9ybSBjb21wdXRlZCBzdHlsZSBzaG91bGQgbm90IHJlZmxlY3QgaW5kaXZpZHVhbCB0cmFuc2Zv
cm0gcHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODExYzI5OGY1M2ZmZDJjYzQ5MGQw
Y2Q0NDkxNTZkYmJkNzg1MGIxNy4uYTg5MWE2NmNhNDI2MTY2NTVlOTZkZmQ5ODBjZTk3MTBjYjlh
OWRlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMjAsMTkgKzMyMCwxNCBAQCBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnQtbG9v
cHMvZnVsbHlfYWN0aQogIyBTa2lwIFdQVCB3ZWJhdWRpbyB0ZXN0cyB0aGF0IGFyZSB0aW1pbmcg
b3V0LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1tZWRpYXN0cmVhbWF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvbWVkaWFzdHJlYW1h
dWRpb3NvdXJjZW5vZGUtcm91dGluZy5odG1sIFsgU2tpcCBdCiAKLSMgVGhlc2Ugd2ViYXVkaW8g
dGVzdHMgYXJlIHRpbWluZyBvdXQgZHVlIHRvIGxhY2sgZm9yIHN1cHBvcnQgZm9yIEF1ZGlvV29y
a2xldC4KKyMgVGhpcyB0ZXN0IGlzIHRpbWluZyBvdXQgZHVlIHRvIGxhY2sgb2Ygc3VwcG9ydCBm
b3IgU2hhcmVkQXJyYXlCdWZmZXIuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3Jr
bGV0LXBvc3RtZXNzYWdlLXNoYXJlZGFycmF5YnVmZmVyLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
YXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0
dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRu
b2RlLW9uZXJyb3IuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNl
L2F1ZGlvd29ya2xldG5vZGUtb3V0cHV0LWNoYW5uZWwtY291bnQuaHR0cHMuaHRtbCBbIFNraXAg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNz
LWZyb3plbi1hcnJheS5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZh
Y2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtemVyby1vdXRwdXRzLmh0dHBzLmh0bWwg
WyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3It
cHJvbWlzZXMuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3By
b2Nlc3MtZ2V0dGVyLmh0dHBzLmh0bWwgWyBTa2lwIF0KKworIyBUaGlzIHRlc3QgaXMgdGltaW5n
IG91dCBiZWNhdXNlIGl0IGNhbGxzIHN1c3BlbmQoKSB0aGVuIHJlc3VtZSgpIG9uZSB3aXRob3V0
IHlpZWxkaW5nLiBzdXNwZW5kKCkgc2V0cyBzdGF0ZSB0byBzdXNwZW5kZWQgYXN5bmNocm9ub3Vz
bHkKKyMgc28gcmVzdW1lKCkgZG9lcyBub3Qga25vdyB0aGVyZSBpcyBhIHBlbmRpbmcgc3VzcGVu
ZCgpIGFuZCByZXR1cm5zIGVhcmx5LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3Mt
cGFyYW1ldGVycy5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNoYW5uZWxtZXJnZXJub2RlLWludGVy
ZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5v
ZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVk
aWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9jb3JzLWNoZWNrLmh0dHBzLmh0bWwg
WyBTa2lwIF0KKworIyBUaGlzIFdlYkF1ZGlvIHRlc3QgaXMgdGltaW5nIG91dCwgcG90ZW50aWFs
bHkgZHVlIHRvIGFuIEF1ZGlvV29ya2xldCBidWcuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNl
bm9kZS1pbnRlcmZhY2Uvbm8tY29ycy5odHRwcy5odG1sIFsgU2tpcCBdCiAKICMgVGhpcyB3ZWJh
dWRpbyB0ZXN0IGhhcyBiZWVuIHRpbWluZyBvdXQgc2luY2UgaXRzIGltcG9ydCBmcm9tIEJsaW5r
LgpAQCAtMzQxLDYgKzMzNiw3IEBAIHdlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UvbWVk
aWFzdHJlYW1hdWRpb3NvdXJjZW5vZGUuaHRtbCBbIFNraXAgXQogIyBXZWJhdWRpbyB0ZXN0cyB0
aGF0IGFyZSBmbGFreS4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2Uvay1yYXRlLXN0ZXJlby1wYW5u
ZXIuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWFuYWx5c2Vybm9kZS1pbnRlcmZhY2UvdGVzdC1h
bmFseXNlci1vdXRwdXQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlv
c291cmNlbm9kZS1pbnRlcmZhY2UvY29ycy1jaGVjay5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KIAogIyBUaGlzIHRlc3QgaXMgcGFzc2luZyBidXQgdGhlIHByaW50ZWQgU05SIHZhbHVlIGRp
ZmZlcnMgZnJvbSBtYWNoaW5lIHRvIG1hY2hpbmUuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVyc291cmNlbm9kZS1p
bnRlcmZhY2Uvc3ViLXNhbXBsZS1idWZmZXItc3RpdGNoaW5nLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQpAQCAtMzQ4LDcgKzM0NCw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9idWZmZXJzb3VyY2Vub2RlCiAjIFZhbHVlcyBp
biBGQUlMIGxpbmVzIGRpZmZlciBmcm9tIG1hY2hpbmUgdG8gbWFjaGluZSwgd2Ugc2hvdWxkIGJl
IGFibGUgdG8gdW5za2lwIHRoZW0gb25jZSB0aGV5IHBhc3MuCiB3ZWJhdWRpby9BdWRpb0J1ZmZl
clNvdXJjZS9hdWRpb2J1ZmZlcnNvdXJjZS1kZXR1bmUtbW9kdWxhdGlvbi5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KIHdlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlL2F1ZGlvYnVmZmVyc291cmNlLXBs
YXliYWNrcmF0ZS1tb2R1bGF0aW9uLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmts
ZXQtaW50ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCiAKIHdlYmtpdC5vcmcvYi8xNzY5MjkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5LXN0
YXRlcy9hdXRvcGxheS13aXRoLXNsb3ctdGV4dC10cmFja3MuaHRtbCBbIFBhc3MgRmFpbHVyZSBd
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9idWZmZXJzb3VyY2Vub2RlLWludGVy
ZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWF1ZGlvYnVmZmVyc291cmNlbm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMt
ZXhwZWN0ZWQudHh0CmluZGV4IGVjNzBlMDkzOTQ0OTBmOTEyNmJiNWI2MDE0MzYxOWRhYWQ3ZmQ0
YTguLjM1MWVkZjkyYWM3ZDJhNzY1YzAwYjhjMDA2NzZjMzlkNTRjNTA1MjEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtYXVkaW9idWZmZXJzb3VyY2Vub2RlLWludGVyZmFjZS9hY3RpdmUtcHJv
Y2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2J1ZmZl
cnNvdXJjZW5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtOSwxMyArOSwxMyBAQCBQQVNTIDwgW1NldHVwIGdyYXBoXSBBbGwgYXNzZXJ0aW9ucyBw
YXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCiBQQVNTID4gW3ZlcmlmeSBjb3VudCBjaGFuZ2Vd
CiBGQUlMIFggTnVtYmVyIG9mIGNoYW5uZWxzIGNoYW5nZWQgaXMgbm90IHRydWUuIEdvdCBmYWxz
ZS4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTICAgSW5kZXggd2hl
cmUgaW5wdXQgY2hhbm5lbCBjb3VudCBjaGFuZ2VkIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAx
MjgwLgotRkFJTCBYIE51bWJlciBvZiBjaGFubmVscyBpbiBpbnB1dFswOi0yXTogRXhwZWN0ZWQg
NyBmb3IgYWxsIHZhbHVlcyBidXQgZm91bmQgMTI3OSB1bmV4cGVjdGVkIHZhbHVlczoKK0ZBSUwg
WCBOdW1iZXIgb2YgY2hhbm5lbHMgaW4gaW5wdXRbMDotMl06IEV4cGVjdGVkIDcgZm9yIGFsbCB2
YWx1ZXMgYnV0IGZvdW5kIDEwMjMgdW5leHBlY3RlZCB2YWx1ZXM6CiAJSW5kZXgJQWN0dWFsCi0J
WzBdCTAKLQlbMV0JMAotCVsyXQkwCi0JWzNdCTAKLQkuLi5hbmQgMTI3NSBtb3JlIGVycm9ycy4g
YXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisJWzI1Nl0JMAorCVsyNTddCTAK
KwlbMjU4XQkwCisJWzI1OV0JMAorCS4uLmFuZCAxMDE5IG1vcmUgZXJyb3JzLiBhc3NlcnRfdHJ1
ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgWCBOdW1iZXIgb2YgY2hhbm5lbHMgaW4g
aW5wdXRbLTE6XTogRXhwZWN0ZWQgMSBmb3IgYWxsIHZhbHVlcyBidXQgZm91bmQgMSB1bmV4cGVj
dGVkIHZhbHVlczoKIAlJbmRleAlBY3R1YWwKIAlbMF0JMCBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWlu
dGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2Rl
LWF1dG9tYXRpYy1wdWxsLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAzMTg2MmRmMWE0YTdiNmFk
MmE2YzZkNjM3MjY5MjQ0NTEyMTY1NWNiLi4zNTk1NWNkYjMyZmVmODQxNzdiZmZjZjFlNTgxZjhi
YTZiMTQwODI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZh
Y2UvYXVkaW93b3JrbGV0bm9kZS1hdXRvbWF0aWMtcHVsbC5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUt
YXV0b21hdGljLXB1bGwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsMTAgQEAKIAotSGFy
bmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNL
IFJVTk5FUiBTVEFSVEVELgotVElNRU9VVCBFeGVjdXRpbmcgInNldHVwLXdvcmtsZXQiIFRlc3Qg
dGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAic2V0dXAtd29y
a2xldCIKK1BBU1MgQXVkaXQgcmVwb3J0CiBQQVNTID4gW3NldHVwLXdvcmtsZXRdCitQQVNTICAg
VGhlIGZpcnN0IGhhbGYgb2YgdGhlIGNhcHR1cmVkIGJ1ZmZlciBjb250YWlucyBvbmx5IHRoZSBj
b25zdGFudCAwLjUuCitQQVNTICAgVGhlIHNlY29uZCBoYWxmIG9mIHRoZSBjYXB0dXJlZCBidWZm
ZXIgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KK1BBU1MgPCBbc2V0dXAtd29ya2xldF0g
QWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElU
IFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRu
b2RlLWRpc2Nvbm5lY3RlZC1pbnB1dC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1kaXNjb25uZWN0ZWQtaW5w
dXQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDJhODY2NjdhMTgzZjEwNDM5ZmIwMmNlNzRkZjY1
OTA1ZjNlY2U2MjUuLjdmY2I4Y2VkODgzNWRhNmFmNDViYjgxYThhYzJiMmRkMzY5MjdiNDQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmts
ZXRub2RlLWRpc2Nvbm5lY3RlZC1pbnB1dC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtZGlzY29ubmVj
dGVkLWlucHV0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNCw5ICs0LDkgQEAgUEFTUyBFeGVjdXRp
bmcgInRlc3QiCiBQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFt0ZXN0XSBJbnB1dCBhcnJheSBs
ZW5ndGggc2hvdWxkIGJlIHplcm8gZm9yIGRpc2Nvbm5lY3RlZCBpbnB1dAogUEFTUyAgIEJlZm9y
ZSBjb25uZWN0aW5nIHRoZSBzb3VyY2U6IElucHV0IGFycmF5IGxlbmd0aCBjb250YWlucyBvbmx5
IHRoZSBjb25zdGFudCAwLgotRkFJTCBYIEZpcnN0IG5vbi16ZXJvIG91dHB1dCBpcyBub3QgZXF1
YWwgdG8gMTI4LiBHb3QgLTEuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
UEFTUyAgIEZpcnN0IG5vbi16ZXJvIG91dHB1dCBpcyBlcXVhbCB0byAxMjguCiBQQVNTICAgV2hp
bGUgc291cmNlIGlzIGNvbm5lY3RlZDogSW5wdXQgYXJyYXkgbGVuZ3RoIGNvbnRhaW5zIG9ubHkg
dGhlIGNvbnN0YW50IDEyOC4KIFBBU1MgICBBZnRlciBkaXNjb25uZWN0aW5nIHRoZSBzb3VyY2U6
IElucHV0IGFycmF5IGxlbmd0aCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgotRkFJTCA8
IFt0ZXN0XSAxIG91dCBvZiA0IGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVE
OiAxIG91dCBvZiAxIHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKK1BBU1MgPCBbdGVzdF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
NCBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tz
IHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3Jr
bGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUt
b25lcnJvci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYzI2YWExMzM0NjUzOGMxYjI1NGEwM2Qx
OWY0ZWMwYTNjY2FlNWFkMi4uOTY3MTIxMzg5NzQ5ZmQwYWFmMjY3ZmViZTRkYjI4OWU2MTJhNGRl
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlv
d29ya2xldG5vZGUtb25lcnJvci5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb25lcnJvci5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTEsOSArMSwxNiBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwg
bWVzc2FnZSA9IG51bGwKLQogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuCi1USU1F
T1VUIEV4ZWN1dGluZyAiY29uc3RydWN0b3ItZXJyb3IiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4g
RXhlY3V0aW5nICJwcm9jZXNzLWVycm9yIgotTk9UUlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVj
dXRpbmcgImNvbnN0cnVjdG9yLWVycm9yIgorUEFTUyBFeGVjdXRpbmcgInByb2Nlc3MtZXJyb3Ii
CitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtjb25zdHJ1Y3Rvci1lcnJvcl0KK1BBU1MgICBv
bnByb2Nlc3NvcmVycm9yIGFyZ3VtZW50IHNob3VsZCBiZSBhbiBFcnJvckV2ZW50IHdoZW4KKyAg
ICAgICAgICAgICAgICB0aGUgY29uc3RydWN0b3Igb2YgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIGhh
cyBhbiBlcnJvci4gaXMgdHJ1ZS4KK1BBU1MgPCBbY29uc3RydWN0b3ItZXJyb3JdIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKK1BBU1MgPiBbcHJvY2Vzcy1lcnJv
cl0KK1BBU1MgICBvbnByb2Nlc3NvcmVycm9yIGFyZ3VtZW50IHNob3VsZCBiZSBhbiBFcnJvckV2
ZW50IHdoZW4KKyAgICAgICAgICAgICAgICB0aGUgcHJvY2VzcyBtZXRob2Qgb2YgdGhlIEF1ZGlv
V29ya2xldFByb2Nlc3NvciBtZXRob2QKKyAgICAgICAgICAgICAgICBoYXMgYW4gZXJyb3IuIGlz
IHRydWUuCitQQVNTIDwgW3Byb2Nlc3MtZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRv
dGFsIDEgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0
YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
d29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vdXRwdXQtY2hhbm5lbC1jb3VudC5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uv
YXVkaW93b3JrbGV0bm9kZS1vdXRwdXQtY2hhbm5lbC1jb3VudC5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggMzg3YTc4NGQwNDcxOThmYTdjN2ZiMzVjYTlmM2YxMmQ0MjJhMDkwZi4uMWZkMzBjN2E4
ZDQ2MmQxN2IzY2FmOTAwODk5ZGQ5ZmQxMTY0N2YyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb3V0cHV0LWNoYW5uZWwt
Y291bnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW91dHB1dC1jaGFubmVsLWNvdW50Lmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMSw5ICsxLDEzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBt
ZXNzYWdlID0gbnVsbAotCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KLVRJTUVP
VVQgRXhlY3V0aW5nICJEeW5hbWljYWxseSBjaGFuZ2UgdGhlIGNoYW5uZWwgY291bnQgdG8gaWYg
dW5zcGVjaWZpZWQuIiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIEV4ZWN1dGluZyAiR2l2aWVuIG91
dHB1dENoYW5uZWxDb3VudCBtdXN0IGJlIGhvbm9yZWQuIgotTk9UUlVOIEF1ZGl0IHJlcG9ydAor
UEFTUyBFeGVjdXRpbmcgIkR5bmFtaWNhbGx5IGNoYW5nZSB0aGUgY2hhbm5lbCBjb3VudCB0byBp
ZiB1bnNwZWNpZmllZC4iCitQQVNTIEV4ZWN1dGluZyAiR2l2aWVuIG91dHB1dENoYW5uZWxDb3Vu
dCBtdXN0IGJlIGhvbm9yZWQuIgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbRHluYW1pY2Fs
bHkgY2hhbmdlIHRoZSBjaGFubmVsIGNvdW50IHRvIGlmIHVuc3BlY2lmaWVkLl0KK1BBU1MgICBU
aGUgZXhwZWN0ZWQgb3V0cHV0IGNoYW5uZWwgY291bnQgaXMgZXF1YWwgdG8gMTcuCitQQVNTIDwg
W0R5bmFtaWNhbGx5IGNoYW5nZSB0aGUgY2hhbm5lbCBjb3VudCB0byBpZiB1bnNwZWNpZmllZC5d
IEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKK1BBU1MgPiBbR2l2
aWVuIG91dHB1dENoYW5uZWxDb3VudCBtdXN0IGJlIGhvbm9yZWQuXQorUEFTUyAgIFRoZSBleHBl
Y3RlZCBvdXRwdXQgY2hhbm5lbCBjb3VudCBpcyBlcXVhbCB0byAyLgorUEFTUyA8IFtHaXZpZW4g
b3V0cHV0Q2hhbm5lbENvdW50IG11c3QgYmUgaG9ub3JlZC5dIEFsbCBhc3NlcnRpb25zIHBhc3Nl
ZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hF
RDogMiB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtZnJv
emVuLWFycmF5Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy1mcm96ZW4tYXJyYXkuaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IDBkZjA0ZDc2ZTBkOWU2ZjVkNDRiNDUwMjIyN2YxOTZmZjBi
NzBlNzcuLjM0YzA2OTkwYWY4MWZhMDVjYmVmM2JlOTNkMmUxZGRhODIyYjAyM2YgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9j
ZXNzb3ItcHJvY2Vzcy1mcm96ZW4tYXJyYXkuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJv
Y2Vzcy1mcm96ZW4tYXJyYXkuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsMTUgQEAKIAot
SGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBU
QVNLIFJVTk5FUiBTVEFSVEVELgotVElNRU9VVCBFeGVjdXRpbmcgImNoZWNrLWZyb3plbi1hcnJh
eSIgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBFeGVjdXRpbmcgInRyYW5zZmVyLWZyb3plbi1hcnJh
eSIKLU5PVFJVTiBBdWRpdCByZXBvcnQKK1BBU1MgRXhlY3V0aW5nICJjaGVjay1mcm96ZW4tYXJy
YXkiCitQQVNTIEV4ZWN1dGluZyAidHJhbnNmZXItZnJvemVuLWFycmF5IgorUEFTUyBBdWRpdCBy
ZXBvcnQKIFBBU1MgPiBbY2hlY2stZnJvemVuLWFycmF5XQorUEFTUyAgIHxpbnB1dHN8IGlzIGZy
b3plbiBpcyB0cnVlLgorUEFTUyAgIHxvdXRwdXRzfCBpcyBmcm96ZW4gaXMgdHJ1ZS4KK1BBU1Mg
PCBbY2hlY2stZnJvemVuLWFycmF5XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFz
c2VydGlvbnMpCitQQVNTID4gW3RyYW5zZmVyLWZyb3plbi1hcnJheV0KK1BBU1MgICBUcmFuc2Zl
cnJpbmcgaW5wdXRzL291dHB1dHMsIGFuIGluZGl2aWR1YWwgaW5wdXQvb3V0cHV0IGFycmF5LCBv
ciBhIGNoYW5uZWwgRmxvYXQzMkFycmF5IGlzIG5vdCBhbGxvd2VkIGFzIGV4cGVjdGVkLiBpcyB0
cnVlLgorUEFTUyAgIFRyYW5zZmVycmluZyBBcnJheUJ1ZmZlcnMgd2FzIHN1Y2Nlc3NmdWwgYXMg
ZXhwZWN0ZWQuIGlzIHRydWUuCitQQVNTIDwgW3RyYW5zZmVyLWZyb3plbi1hcnJheV0gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sg
UlVOTkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNz
b3ItcHJvY2Vzcy16ZXJvLW91dHB1dHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLXpl
cm8tb3V0cHV0cy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggM2M3ZjAwMzZjMzgxMTU1ZWQyOGUw
MTI5ZTFjN2Y4YzAxNWJmZjJiZi4uODJjZGZiZDZjM2IzMDFiZGM4ZWNkM2M3YjE4MWFjM2U5NDc0
NzUwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1
ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLXplcm8tb3V0cHV0cy5odHRwcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJh
dWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xl
dHByb2Nlc3Nvci1wcm9jZXNzLXplcm8tb3V0cHV0cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEs
OCArMSw5IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQ
QVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KLVRJTUVPVVQgRXhlY3V0aW5nICJjaGVj
ay16ZXJvLW91dHB1dHMiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNT
IEV4ZWN1dGluZyAiY2hlY2stemVyby1vdXRwdXRzIgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1Mg
PiBbY2hlY2stemVyby1vdXRwdXRzXQorUEFTUyAgIHxvdXRwdXRzfCBoYXMgYmVlbiBhbGwgemVy
b3MgZm9yIDEgc2Vjb25kcyBhcyBleHBlY3RlZC4gaXMgdHJ1ZS4KK1BBU1MgPCBbY2hlY2stemVy
by1vdXRwdXRzXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCitQ
QVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3NmdWxs
eS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1
ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9taXNlcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb21p
c2VzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAzNjU0MWJmYTk2ZGZlMThkZmI1ZjQzYjJjZjBj
YjkzNGZkMGVhNzRiLi4xZGExNzFjNjhjOTU3YTYxMzdmMTQ5YWFjMTg0ZmRkMWI5NDRlZjM4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3Jr
bGV0cHJvY2Vzc29yLXByb21pc2VzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb21pc2Vz
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDQgQEAKIAotSGFybmVzcyBFcnJvciAoVElN
RU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgdGVzdCBUZXN0IHRpbWVkIG91dAorRkFJ
TCB0ZXN0IGFzc2VydF90cnVlOiBNaWNyb3Rhc2sgY2hlY2twb2ludHMgYXJlIHBlcmZvcm1lZAor
ICAgICAgICAgICAgICAgICAgICAgICBpbiBiZXR3ZWVuIHJlbmRlciBxdWFudHVtIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9wcm9jZXNzLWdldHRlci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzcy1nZXR0ZXIuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IDZhN2M2ZGUzMjUzYmZkMGZlZWU4MDJiOTc1ZDdhYmRiZTVhN2IzY2YuLmE5NjRh
M2I0NzU2NDQzMjVmYWVkZWYxZTAzN2U4NDExYmUwMTdjNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFw
aS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzLWdldHRlci5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3Mt
Z2V0dGVyLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDQgQEAKIAotSGFybmVzcyBFcnJv
ciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgJ3Byb2Nlc3MnIGdldHRlciBv
biBwcm90b3R5cGUgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiAncHJvY2VzcycgZ2V0dGVyIG9uIGlu
c3RhbmNlCitQQVNTICdwcm9jZXNzJyBnZXR0ZXIgb24gcHJvdG90eXBlCitQQVNTICdwcm9jZXNz
JyBnZXR0ZXIgb24gaW5zdGFuY2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dv
cmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3Nvci1jb25zdHJ1Y3Rpb24tcG9ydC5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzc29yLWNv
bnN0cnVjdGlvbi1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmNjBlYzhjMjA0NDQwZmUw
ZTBhYjBhNDg3NjUzZDVkOTE1NWRkYzE2Li42MDhkYTA5MWE4MWQ4YWUyOTk2N2NlMDU2ZWE3OTFh
N2Y0OTk2MzVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZh
Y2UvcHJvY2Vzc29yLWNvbnN0cnVjdGlvbi1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1h
dWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzc29yLWNvbnN0cnVjdGlv
bi1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDYgQEAKIAotSGFybmVzcyBFcnJv
ciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1Mgc3VwZXIoKSBhZnRlciBuZXcgQXVk
aW9Xb3JrbGV0UHJvY2Vzc29yKCkKIFBBU1MgbmV3IEF1ZGlvV29ya2xldFByb2Nlc3NvcigpIGFm
dGVyIHN1cGVyKCkKIFBBU1MgbmV3IEF1ZGlvV29ya2xldFByb2Nlc3NvcigpIGFmdGVyIG5ldyBB
dWRpb1dvcmtsZXRQcm9jZXNzb3IoKQotVElNRU9VVCBTaW5nbGV0b24gQXVkaW9Xb3JrbGV0UHJv
Y2Vzc29yIFRlc3QgdGltZWQgb3V0CitQQVNTIFNpbmdsZXRvbiBBdWRpb1dvcmtsZXRQcm9jZXNz
b3IKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Np
bXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IGIwZGFjMmQ3MmRmMmRiMjJlZDlhZDkzODc2ZTQyODBjZDYyZTFiYmUuLjQ3NTM3YjY3
ZWQ1OWQzNzllNjYwYWU3OTczYmFkYTgzZThlOTRkZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9zaW1wbGUtaW5wdXQtb3V0cHV0Lmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uvc2ltcGxl
LWlucHV0LW91dHB1dC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTcsMjUgKzcsOCBAQCBQQVNTID4g
W0luaXRpYWxpemUgd29ya2xldF0KIFBBU1MgICBDcmVhdGlvbiBvZiBBdWRpb1dvcmtsZXQgcmVz
b2x2ZWQgY29ycmVjdGx5LgogUEFTUyA8IFtJbml0aWFsaXplIHdvcmtsZXRdIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKIFBBU1MgPiBbdGVzdF0gU2ltcGxlIEF1
ZGlvV29ya2xldCBJL08KLUZBSUwgWCBBdWRpb1dvcmtsZXQgb3V0cHV0WzA6MTI3XSBkb2VzIG5v
dCBlcXVhbCBbMSwxLjA1NzU2NDAyMDE1Njg2MDQsMS4xMTQ5MzcxODYyNDExNSwxLjE3MTkyOTEy
MTAxNzQ1NiwxLjIyODM1MDg3Nzc2MTg0MDgsMS4yODQwMTUxNzg2ODA0MiwxLjMzODczNzg0NTQy
MDgzNzQsMS4zOTIzMzY5NjQ2MDcyMzg4LDEuNDQ0NjM1MDMzNjA3NDgzLDEuNDk1NDU4NjAyOTA1
MjczNCwxLjU0NDYzODc1MjkzNzMxNywxLjU5MjAxMzEyMDY1MTI0NTEsMS42Mzc0MjM3NTM3Mzg0
MDMzLDEuNjgwNzIwODA2MTIxODI2MiwxLjcyMTc2MDAzNDU2MTE1NzIsMS43NjA0MDU4OTgwOTQx
NzcyLi4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVz
aG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgotCUluZGV4CUFjdHVhbAkJCUV4cGVjdGVk
CQlBYnNFcnJvcgkJUmVsRXJyb3IJCVRlc3QgdGhyZXNob2xkCi0JWzBdCTAuMDAwMDAwMDAwMDAw
MDAwMGUrMAkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJMS4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMDAw
MDAwMDAwMDAwMDAwMGUrMAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKLQlbMV0JMC4wMDAwMDAwMDAw
MDAwMDAwZSswCTEuMDU3NTY0MDIwMTU2ODYwNGUrMAkxLjA1NzU2NDAyMDE1Njg2MDRlKzAJMS4w
MDAwMDAwMDAwMDAwMDAwZSswCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAotCVsyXQkwLjAwMDAwMDAw
MDAwMDAwMDBlKzAJMS4xMTQ5MzcxODYyNDExNDk5ZSswCTEuMTE0OTM3MTg2MjQxMTQ5OWUrMAkx
LjAwMDAwMDAwMDAwMDAwMDBlKzAJMC4wMDAwMDAwMDAwMDAwMDAwZSswCi0JWzNdCTAuMDAwMDAw
MDAwMDAwMDAwMGUrMAkxLjE3MTkyOTEyMTAxNzQ1NjFlKzAJMS4xNzE5MjkxMjEwMTc0NTYxZSsw
CTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKLQlbNF0JMC4wMDAw
MDAwMDAwMDAwMDAwZSswCTEuMjI4MzUwODc3NzYxODQwOGUrMAkxLjIyODM1MDg3Nzc2MTg0MDhl
KzAJMS4wMDAwMDAwMDAwMDAwMDAwZSswCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAotCS4uLmFuZCAx
MjMgbW9yZSBlcnJvcnMuCi0JTWF4IEFic0Vycm9yIG9mIDEuOTk5ODc2NDk5MTc2MDI1NGUrMCBh
dCBpbmRleCBvZiAyNy4KLQlbMjddCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjk5OTg3NjQ5OTE3
NjAyNTRlKzAJMS45OTk4NzY0OTkxNzYwMjU0ZSswCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkwLjAw
MDAwMDAwMDAwMDAwMDBlKzAKLQlNYXggUmVsRXJyb3Igb2YgMS4wMDAwMDAwMDAwMDAwMDAwZSsw
IGF0IGluZGV4IG9mIDAuCi0gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIFggQXVkaW9Xb3JrbGV0IG91dHB1dFsxMjg6XTogRXhwZWN0ZWQgMSBmb3IgYWxsIHZhbHVl
cyBidXQgZm91bmQgNDc4NzIgdW5leHBlY3RlZCB2YWx1ZXM6Ci0JSW5kZXgJQWN0dWFsCi0JWzBd
CTAKLQlbMV0JMAotCVsyXQkwCi0JWzNdCTAKLQkuLi5hbmQgNDc4NjggbW9yZSBlcnJvcnMuIGFz
c2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCA8IFt0ZXN0XSAyIG91dCBv
ZiAyIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQotRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRh
c2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BB
U1MgICBBdWRpb1dvcmtsZXQgb3V0cHV0WzA6MTI3XSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3
aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwi
cmVsYXRpdmVUaHJlc2hvbGQiOjB9LgorUEFTUyAgIEF1ZGlvV29ya2xldCBvdXRwdXRbMTI4Ol0g
Y29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMS4KK1BBU1MgPCBbdGVzdF0gQWxsIGFzc2VydGlv
bnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVS
IEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJm
YWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxYTVlNTg5NDI3
MDJiNmZmYzRmNzY2MmMzZDgyZjM2ZGRmNmYxNzJkLi4xNjNhYzViZjU4YWEyYjU3OTQyZjY0YWYx
YThmYmU4YzcyNmNkM2ViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNoYW5uZWxtZXJnZXJu
b2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1jaGFubmVsbWVyZ2Vybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3Np
bmcuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDE1IEBACiAKLUhhcm5lc3MgRXJyb3Ig
KFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RB
UlRFRC4KIFBBU1MgRXhlY3V0aW5nICJpbml0aWFsaXplIgotVElNRU9VVCBFeGVjdXRpbmcgInRl
c3QiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAi
dGVzdCIKK1BBU1MgQXVkaXQgcmVwb3J0CiBQQVNTID4gW2luaXRpYWxpemVdCiBQQVNTICAgQXVk
aW9Xb3JrbGV0IG1vZHVsZSBsb2FkaW5nIHJlc29sdmVkIGNvcnJlY3RseS4KIFBBU1MgPCBbaW5p
dGlhbGl6ZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKQogUEFT
UyA+IFt0ZXN0XQorUEFTUyAgIFRlc3QgMDogTnVtYmVyIG9mIGNvbnZvbHZlciBvdXRwdXQgY2hh
bm5lbHMgaXMgZXF1YWwgdG8gNy4KK0ZBSUwgWCBUZXN0IDE6IE51bWJlciBvZiBjb252b2x2ZXIg
b3V0cHV0IGNoYW5uZWxzIGlzIG5vdCBlcXVhbCB0byAxLiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgTnVtYmVyIG9mIGRpc3RpbmN0IHZhbHVlcyBp
cyBlcXVhbCB0byAyLgorRkFJTCA8IFt0ZXN0XSAxIG91dCBvZiAzIGFzc2VydGlvbnMgd2VyZSBm
YWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCAjIEFVRElU
IFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRhc2tzIHdlcmUgZmFpbGVkLiBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1w
cm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxYTVlNTg5NDI3MDJiNmZmYzRmNzY2
MmMzZDgyZjM2ZGRmNmYxNzJkLi5iMjFlN2NhYzJjMDY2NTBmN2MyZTEzNTllZmQzNWIxZTIyYmZk
NzRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL2Fj
dGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNv
bnZvbHZlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMSwxMiArMSwxNCBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9
IG51bGwKLQogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuCiBQQVNTIEV4ZWN1dGlu
ZyAiaW5pdGlhbGl6ZSIKLVRJTUVPVVQgRXhlY3V0aW5nICJ0ZXN0IiBUZXN0IHRpbWVkIG91dAot
Tk9UUlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgInRlc3QiCitQQVNTIEF1ZGl0IHJl
cG9ydAogUEFTUyA+IFtpbml0aWFsaXplXQogUEFTUyAgIEF1ZGlvV29ya2xldCBtb2R1bGUgbG9h
ZGluZyByZXNvbHZlZCBjb3JyZWN0bHkuCiBQQVNTIDwgW2luaXRpYWxpemVdIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKIFBBU1MgPiBbdGVzdF0KK1BBU1MgICBU
ZXN0IDA6IE51bWJlciBvZiBjb252b2x2ZXIgb3V0cHV0IGNoYW5uZWxzIGlzIGVxdWFsIHRvIDIu
CitGQUlMIFggTnVtYmVyIG9mIGRpc3RpbmN0IHZhbHVlcyBpcyBub3QgZXF1YWwgdG8gMi4gR290
IDEuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCA8IFt0ZXN0XSAx
IG91dCBvZiAyIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBv
ZiAyIHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5v
ZGUtaW50ZXJmYWNlL2NvcnMtY2hlY2suaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL2NvcnMtY2hlY2suaHR0cHMt
ZXhwZWN0ZWQudHh0CmluZGV4IGZlMmQ3OWRmMTYwOGRmZjRjMzk5YTdiMzBkMzQyNGYzYTNiMGM4
YTYuLjNhNDkyZWVhYWY1YTM3Mjc3NGQ1MTkzYzdiZTg4OWU3MjBkMzA5OWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9jb3Jz
LWNoZWNrLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVu
dGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvY29ycy1jaGVjay5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTEsMTEgKzEsMTUgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBu
dWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELgogUEFTUyBFeGVjdXRpbmcg
InNldHRpbmctdXAtZ3JhcGgiCi1USU1FT1VUIEV4ZWN1dGluZyAic3RhcnQtcGxheWJhY2stYW5k
LWNhcHR1cmUiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1
dGluZyAic3RhcnQtcGxheWJhY2stYW5kLWNhcHR1cmUiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFT
UyA+IFtzZXR0aW5nLXVwLWdyYXBoXQogUEFTUyA8IFtzZXR0aW5nLXVwLWdyYXBoXSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAwIGFzc2VydGlvbnMpCiBQQVNTID4gW3N0YXJ0LXBsYXli
YWNrLWFuZC1jYXB0dXJlXQorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzAgaXMgbm90IGNvbnN0
YW50bHkgMCAoY29udGFpbnMgMzMwODggZGlmZmVyZW50IHZhbHVlcykuCitQQVNTICAgUmVjb3Jk
ZWQgY2hhbm5lbCAjMSBpcyBub3QgY29uc3RhbnRseSAwIChjb250YWlucyAzMzA5MCBkaWZmZXJl
bnQgdmFsdWVzKS4KK1BBU1MgICBSZWNvcmRlZCBjaGFubmVsICMyIGlzIG5vdCBjb25zdGFudGx5
IDAgKGNvbnRhaW5zIDMzMDg5IGRpZmZlcmVudCB2YWx1ZXMpLgorUEFTUyAgIFJlY29yZGVkIGNo
YW5uZWwgIzMgaXMgbm90IGNvbnN0YW50bHkgMCAoY29udGFpbnMgMzMwOTAgZGlmZmVyZW50IHZh
bHVlcykuCitQQVNTIDwgW3N0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlXSBBbGwgYXNzZXJ0aW9u
cyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIg
RklOSVNIRUQ6IDIgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL25vLWNvcnMuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5v
ZGUtaW50ZXJmYWNlL25vLWNvcnMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGZlMmQ3OWRmMTYw
OGRmZjRjMzk5YTdiMzBkMzQyNGYzYTNiMGM4YTYuLjRkMTM5ZDllZGU3MDE2MGFhMzgyYjJjMDI1
M2Q2NmU2YmY3ODUzZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVk
aW9zb3VyY2Vub2RlLWludGVyZmFjZS9uby1jb3JzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1h
dWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2Uvbm8tY29y
cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTUgQEAKIAotSGFybmVzcyBFcnJvciAo
VElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFS
VEVELgogUEFTUyBFeGVjdXRpbmcgInNldHRpbmctdXAtZ3JhcGgiCi1USU1FT1VUIEV4ZWN1dGlu
ZyAic3RhcnQtcGxheWJhY2stYW5kLWNhcHR1cmUiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVk
aXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAic3RhcnQtcGxheWJhY2stYW5kLWNhcHR1cmUiCitQ
QVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtzZXR0aW5nLXVwLWdyYXBoXQogUEFTUyA8IFtzZXR0
aW5nLXVwLWdyYXBoXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAwIGFzc2VydGlvbnMp
CiBQQVNTID4gW3N0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlXQorUEFTUyAgIFJlY29yZGVkIGNo
YW5uZWwgIzAgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KK1BBU1MgICBSZWNvcmRlZCBj
aGFubmVsICMxIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCitQQVNTICAgUmVjb3JkZWQg
Y2hhbm5lbCAjMiBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgorUEFTUyAgIFJlY29yZGVk
IGNoYW5uZWwgIzMgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KK1BBU1MgPCBbc3RhcnQt
cGxheWJhY2stYW5kLWNhcHR1cmVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNz
ZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4g
c3VjY2Vzc2Z1bGx5LgogCg==
</data>
<flag name="commit-queue"
          id="427095"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410984</attachid>
            <date>2020-10-09 17:03:51 -0700</date>
            <delta_ts>2020-10-09 17:12:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217531-20201009170350.patch</filename>
            <type>text/plain</type>
            <size>63713</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiODVhZDY4MWE3ZWMx
YWNiM2E2OTkzMzJmOWY3NjU2NmNlMTk5MS4uNGMxMzRkNjU1OWQxMTIxZjRjZWU5ZjljZmMwY2Qw
ZGNjNzA0MWVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNyBAQAorMjAyMC0xMC0wOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IgdG8gcHJvY2VzcyBhdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIEF1ZGlvV29ya2xldFByb2Nlc3NvciB0byBwcm9jZXNzIGF1
ZGlvOgorICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlv
d29ya2xldHByb2Nlc3Nvci1wcm9jZXNzCisKKyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE5vZGUg
bG9naWMgaXMgYmFzZWQgb24gdGhlIEJsaW5rIGltcGxlbWVudGF0aW9uIGF0OgorICAgICAgICAt
IGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJvbWl1bS9jaHJvbWl1bS9ibG9iL21hc3Rlci90aGlyZF9w
YXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL3dlYmF1ZGlvL2F1ZGlvX3dvcmtsZXRfbm9kZS5j
YworCisgICAgICAgIFRoaXMgd2FzIHRoZSBsYXN0IHBpZWNlIG9mIGxvZ2ljIG5lZWRlZCB0byBt
YWtlIEF1ZGlvV29ya2xldCBmdW5jdGlvbmFsLgorICAgICAgICBJIGRpZCBub3QgZW5hYmxlIEF1
ZGlvV29ya2xldHMgYnkgZGVmYXVsdCBpbiB0aGlzIHBhdGNoIHRob3VnaCBiZWNhdXNlCisgICAg
ICAgIHRoZXJlIGFyZSBzdGlsbCBzb21lIHRlc3QgZmFpbHVyZXMgdGhhdCB3ZSBzaG91bGQgaW52
ZXN0aWdhdGUgZmlyc3QuCisgICAgICAgIE1vc3QgQXVkaW9Xb3JrbGV0IHRlc3RzIGFyZSBwYXNz
aW5nIHRob3VnaC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmg6CisgICAg
ICAgIFJldHVybiBhIGNvbnN0IHJlZmVyZW5jZSB0byBhdm9pZCByZWZjb3VudGluZyBjaHVybi4K
KworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNyZWF0ZVByb2Nl
c3Nvcik6CisgICAgICAgIEFmdGVyIHRoZSBKU0F1ZGlvV29ya2xldFByb2Nlc3Nvciwgd2UgY29u
c3RydWN0IGEgSlNDYWxsYmFja0RhdGEgZnJvbSB0aGUKKyAgICAgICAgSlNBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IgYW5kIHRoZSBnbG9iYWwgb2JqZWN0IGFuZCBjYWxsIGEgc2V0dGVyIG9uIHRoZQor
ICAgICAgICBBdWRpb1dvcmtsZXRQcm9jZXNzb3IuIFRoZSBwcm9jZXNzb3Igd2lsbCB1c2UgdGhp
cyB3aGVuIHByb2Nlc3MoKSBpcyBjYWxsZWQKKyAgICAgICAgdG8gZm9yd2FyZCB0aGUgY2FsbCB0
byBwcm9jZXNzKCkgaW4gSmF2YVNjcmlwdC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2Rl
OjpjcmVhdGUpOgorICAgICAgICAtIE1vdmUgdGhlIGxvZ2ljIGRlYWxpbmcgd2l0aCBBdWRpb1Bh
cmFtIG9iamVjdHMgdG8gaXRzIG93biBpbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJzKCkKKyAgICAg
ICAgZnVuY3Rpb24uCisgICAgICAgIC0gQ2FsbCBjb250ZXh0LnJlZk5vZGUobm9kZSkgc28gdGhh
dCB0aGUgbm9kZSBpcyBrZXB0IGFsaXZlIGJ5IHRoZSBhdWRpbyBjb250ZXh0CisgICAgICAgICAg
dW50aWwgcGxheWJhY2sgaXMgZmluaXNoZWQuIFRoZSBjYWxsIHRvIGNvbnRleHQoKS5ub3RpZnlO
b2RlRmluaXNoZWRQcm9jZXNzaW5nKHRoaXMpCisgICAgICAgICAgaW4gZGlkRmluaXNoUHJvY2Vz
c2luZ09uUmVuZGVyaW5nVGhyZWFkKCkgaXMgd2hhdCBub3RpZmllcyB0aGUgY29udGV4dCB0aGF0
IHdlIGZpbmlzaGVkCisgICAgICAgICAgcGxheWJhY2sgYW5kIGFsbG93cyB0aGUgbm9kZSB0byBn
ZXQgZGVzdHJveWVkLiBUaGlzIGlzIHNpbWlsYXIgdG8gd2hhdCBpcyBkb25lIGZvcgorICAgICAg
ICAgIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZXMuCisgICAgICAgIC0gQ2FsbCB1cGRhdGVQdWxs
U3RhdHVzKCkgc28gdGhhdCB0aGUgbm9kZSBnZXRzIGFkZGVkIHRvIHRoZSBhdXRvbWF0aWMgcHVs
bCBsaXN0IGlmIGl0CisgICAgICAgICAgZG9lcyBub3QgaGF2ZSBhbnkgb3V0cHV0cy4gT3RoZXJ3
aXNlLCB0aGUgbm9kZSB3b3VsZCBub3QgYmUgdXNlZCBmb3IgcmVuZGVyaW5nIGlmIGl0CisgICAg
ICAgICAgZGlkIG5vdCBoYXZlIGFueSBvdXRwdXRzLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
V29ya2xldE5vZGU6On5BdWRpb1dvcmtsZXROb2RlKToKKworICAgICAgICAoV2ViQ29yZTo6QXVk
aW9Xb3JrbGV0Tm9kZTo6aW5pdGlhbGl6ZUF1ZGlvUGFyYW1ldGVycyk6CisgICAgICAgIFRoaXMg
bG9naWMgd2FzIG1vc3RseSBtb3ZlZCBmcm9tIHRoZSBjcmVhdGUoKSBmdW5jdGlvbi4gVGhlIHBh
cnQgdGhhdCdzIG5ldyBpcyB0aGUKKyAgICAgICAgaW5pdGlhbGl6YXRpb24gb2YgbV9wYXJhbVZh
bHVlc01hcCB0byBmaWxsIGl0IHdpdGggZW1wdHkgYXVkaW8gYXJyYXlzLiBUaGVzZSBhcnJheXMK
KyAgICAgICAgYXJlIHVzZWQgaW4gcHJvY2VzcygpIHRvIHN0b3JlIHRoZSBzYW1wbGVzIGZyb20g
QXVkaW9QYXJhbSBvYmplY3RzLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2Rl
OjpzZXRQcm9jZXNzb3IpOgorICAgICAgICBGaXJlIGEgcHJvY2Vzc29yIGVycm9yIGlmIHRoZSBw
cm9jZXNzb3IgZ2V0cyBzZXQgdG8gbnVsbHB0ciwgaW5kaWNhdGluZyB0aGF0IHdlIGZhaWxlZAor
ICAgICAgICB0byBjb25zdHJ1Y3QgdGhlIEF1ZGlvV29ya2xldFByb2Nlc3NvciBvYmplY3QuCisK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6OnByb2Nlc3MpOgorICAgICAgICBG
aWxsIG1fcGFyYW1WYWx1ZXNNYXAgd2l0aCBzYW1wbGVzIGZyb20gYXNzb2NpYXRlZCBBdWRpb1Bh
cmFtIG9iamVjdHMgdGhlbiBjYWxsCisgICAgICAgIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJv
Y2VzcygpIHdpdGggaW5wdXQgJiBvdXRwdXQgQXVkaW9CdXMgb2JqZWN0cywgYXMgd2VsbAorICAg
ICAgICBhcyBtX3BhcmFtVmFsdWVzTWFwLiBJZiBwcm9jZXNzKCkgcmV0dXJucyBmYWxzZSBvciBl
bmNvdW50ZXJlZCBhbiBlcnJvciwgd2UgZmluaXNoCisgICAgICAgIHJlbmRlcmluZy4KKworICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6ZGlkRmluaXNoUHJvY2Vzc2luZ09uUmVu
ZGVyaW5nVGhyZWFkKToKKyAgICAgICAgVGhpcyBpcyBjYWxsZWQgYnkgcHJvY2VzcygpIHdoZW5l
dmVyIHByb2Nlc3MoKSByZXR1cm5zIGZhbHNlIG9yIGVuY291bnRlcmVkIGFuIGVycm9yLgorICAg
ICAgICBJZiBwcm9jZXNzKCkgZW5jb3VudGVyZWQgYW4gZXJyb3IsIHdlIG1ha2Ugc3VyZSB0byBm
aXJlIGEgcHJvY2Vzc29yZXZlbnQgZXZlbnQgdG8KKyAgICAgICAgbGV0IHRoZSBzY3JpcHQga25v
dy4gVGhlbiB3ZSBudWxsIG91dCB0aGUgcHJvY2Vzc29yIGFuZCBmaW5pc2ggcmVuZGVyaW5nLgor
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjp1cGRhdGVQdWxsU3RhdHVzKToK
KyAgICAgICAgSWYgdGhlIG5vZGUgaGFzIG5vIG91dHB1dCwgd2UgbmVlZCB0byBtYWtlIHN1cmUg
dG8gYWRkIGl0IHRvIHRoZSBhdXRvbWF0aWMgcHVsbAorICAgICAgICBsaXN0IGluIHRoZSBjb250
ZXh0IHNvIHRoYXQgaXQgaXMgdXNlZCBmb3IgcmVuZGVyaW5nLgorCisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1dvcmtsZXROb2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dCk6CisgICAg
ICAgIFVzZSBzYW1lIGxvZ2ljIGFzIEJsaW5rIGhlcmUuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvV29ya2xldE5vZGU6OmZpcmVQcm9jZXNzb3JFcnJvck9uTWFpblRocmVhZCk6CisgICAgICAg
IExvZ2ljIHRvIGZpcmUgYSBwcm9jZXNzb3JlcnJvciBldmVudCBvbiB0aGUgbWFpbiB0aHJlYWQg
d2l0aCBhIGRlY2VudCBlcnJvciBtZXNzYWdlLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dv
cmtsZXROb2RlOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvV29ya2xldE5vZGU6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAg
ICAgICBBY3RpdmVET01PYmplY3Qgb3ZlcnJpZGVzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmg6CisgICAgICAgIFN1YmNsYXNzIEF1ZGlvV29ya2xldE5v
ZGUgc2luY2Ugd2UgY2FuIGZpcmUgcHJvY2Vzc29yZXJyb3IgZXZlbnRzCisgICAgICAgIGF0IGFu
eSBwb2ludCBkdXJpbmcgcmVuZGVyaW5nLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmlkbDoKKyAgICAgICAgTWFrZSBpdCBhbiBBY3RpdmVET01PYmplY3Qu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheSk6CisgICAgICAgIChX
ZWJDb3JlOjpjb25zdHJ1Y3RKU01hcCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RGcm96
ZW5KU0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlEYXRhRnJvbUpTQXJyYXlUb0J1c2Vz
KToKKyAgICAgICAgQSBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyB0byBjb252ZXJ0IFdlYkNv
cmUgdHlwZXMgaW50byB0aGUgc3VpdGFibGUKKyAgICAgICAgSmF2YVNjcmlwdCB0eXBlcyB0aGF0
IGFyZSBleHBlY3RlZCBieSB0aGUgcHJvY2VzcygpIGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICBQcm92aWRlIGlt
cGxlbWVudGF0aW9uIGZvciBwcm9jZXNzKCk6CisgICAgICAgIC0gaHR0cHM6Ly93d3cudzMub3Jn
L1RSL3dlYmF1ZGlvLyNkb20tYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MKKyAgICAgICAg
V2UgY29udmVydCB0aGUgcGFyYW1ldGVycyBpbnRvIHRoZSBKYXZhU2NyaXB0IHR5cGVzIHRoYXQg
dGhlIEpTIHByb2Nlc3MoKQorICAgICAgICBmdW5jdGlvbiBleHBlY3RzLCB0aGVuIGNhbGwgdGhl
IHByb2Nlc3MoKSBmdW5jdGlvbiBhbmQgZmluYWxseSByZXR1cm4KKyAgICAgICAgdGhlIHZhbHVl
IHJldHVybmVkIGJ5IHRoZSBKUyBwcm9jZXNzKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6c2V0UHJvY2Vzc0NhbGxiYWNrKToKKyAgICAgICAg
VGhpcyBpcyBjYWxsZWQgYnkgdGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIHJpZ2h0IGFmdGVy
IHRoZSBBdWRpb1dvcmtsZXRQcm9jZXNzb3IKKyAgICAgICAgd3JhcHBlciBnZXRzIGNvbnN0cnVj
dGVkIHRvIHNldCB0aGUgSlNDYWxsYmFja0RhdGEgb2JqZWN0IHRoYXQgaXMgdXNlZAorICAgICAg
ICBieSBwcm9jZXNzKCkgdG8gY2FsbCB0aGUgSlMgcHJvY2VzcygpIGZ1bmN0aW9uLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaDoKKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0Nh
bGxiYWNrRGF0YVN0cm9uZzo6SlNDYWxsYmFja0RhdGFTdHJvbmcpOgorICAgICAgICBNYWtlIEpT
Q2FsbGJhY2tEYXRhIGZhc3QgYWxsb2NhdGVkLiBUaGUgYmluZGluZ3MgYW5kIG15IG5ldyBjb2Rl
IGhlYXAtYWxsb2NhdGUgaXQuCisKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFcnJvckV2ZW50OjpFcnJvckV2ZW50KToKKyAgICAgICAgKiBkb20vRXJy
b3JFdmVudC5oOgorICAgICAgICBBZGQgYW4gZXZlbnRUeXBlIHBhcmFtZXRlciBzaW5jZSBBdWRp
b1dvcmtsZXROb2RlIG5vdyBuZWVkcyB0byBkaXNwYXRjaCBhbiBFcnJvckV2ZW50CisgICAgICAg
IHdob3NlIHR5cGUgaXMgInByb2Nlc3NvcmVycm9yIiwgbm90IHRoZSBnZW5lcmljICJlcnJvciIu
CisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVz
c2FnZVBvcnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICBGaXgg
TWVzc2FnZVBvcnQgZ2FyYmFzZSBjb2xsZWN0aW9uIGxvZ2ljIHRvIHByb3Blcmx5IGRlYWwgd2l0
aCBNZXNzYWdlUG9ydHMgZnJvbQorICAgICAgICB3b3JrbGV0cy4gVGhpcyBhZGRyZXNzZXMgY3Jh
c2hlcyBmb3VuZCBieSB0aGUgdW5za2lwcGVkIGxheW91dCB0ZXN0cy4KKwogMjAyMC0xMC0wOSAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0
aW9uXSBPdmVyZmxvdyBjbGlwIGJsb2NrcyB2aXN1YWwgb3ZlcmZsb3cKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmgKaW5kZXggZjRlOTNkNjhiZTZlNGQ2ODhl
NzRkMGIyNjM5ODYxNTM1NGU4NmJmMS4uMTZiNDMyNTViNjNlMjc3NzE4Mzg1MjcxMDRiZDdhZjlh
MDYxNDI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFt
LmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIC8vIE11c3QgYmUgY2FsbGVkIGluIHRo
ZSBhdWRpbyB0aHJlYWQuCiAgICAgZmxvYXQgZmluYWxWYWx1ZSgpOwogCi0gICAgU3RyaW5nIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBj
b25zdCB7IHJldHVybiBtX25hbWU7IH0KIAogICAgIGZsb2F0IG1pblZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9taW5WYWx1ZTsgfQogICAgIGZsb2F0IG1heFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9tYXhWYWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCA0NTMwNjIwMzAwMWM0ZWQz
MmMxMTUwZmU4MDQ3YTA4Yzg5N2RiZDJiLi4yYTMwNmQ0ZjQxYzk3NDRiOWU2NTdjY2NjYTEyZjk2
YjllYzU0MWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIFJl
ZlB0cjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpjcmVh
dGVQcm9jZXNzb3IoY29uc3QgU3RyCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgSlND
OjpKU09iamVjdCoganNDb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yLT5jYWxsYmFja0RhdGEoKS0+
Y2FsbGJhY2soKTsKLSAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBqc0NvbnN0cnVjdG9yLT5nbG9i
YWxPYmplY3QoKTsKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBjb25zdHJ1Y3Rvci0+Y2FsbGJh
Y2tEYXRhKCktPmdsb2JhbE9iamVjdCgpOwogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrIHsgZ2xvYmFsT2JqZWN0IH07CkBAIC0xMzYsNiArMTM2LDgg
QEAgUmVmUHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nvcj4gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6
OmNyZWF0ZVByb2Nlc3Nvcihjb25zdCBTdHIKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKIAogICAgIGF1dG8mIGpzUHJvY2Vzc29yID0gKkpTQzo6anNDYXN0PEpTQXVk
aW9Xb3JrbGV0UHJvY2Vzc29yKj4ob2JqZWN0KTsKKyAgICBqc1Byb2Nlc3Nvci53cmFwcGVkKCku
c2V0UHJvY2Vzc0NhbGxiYWNrKG1ha2VVbmlxdWU8SlNDYWxsYmFja0RhdGFTdHJvbmc+KCZqc1By
b2Nlc3NvciwgZ2xvYmFsT2JqZWN0KSk7CisKICAgICByZXR1cm4gJmpzUHJvY2Vzc29yLndyYXBw
ZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggNmJlNzliOTkzZmI2NTk5YTgyNjMwODllZTA4NDNjYmMz
MjUxNmY5OS4uODA3NmIzNmRhY2ZhYWRhZjYzZDJlNTA5Yzg0MGJiN2IwN2MyZTczYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUu
Y3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0Tm9kZS5oIgogCiAj
aW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCisjaW5jbHVkZSAiQXVkaW9Ob2RlSW5wdXQuaCIKICNp
bmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKICNpbmNsdWRlICJBdWRpb1BhcmFtLmgiCiAjaW5j
bHVkZSAiQXVkaW9QYXJhbU1hcC5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIkF1ZGlv
V29ya2xldE5vZGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgi
CiAjaW5jbHVkZSAiQmFzZUF1ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIK
ICNpbmNsdWRlICJKU0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZUNoYW5uZWwuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgpAQCAtOTAsMzMgKzkyLDM1IEBA
IEV4Y2VwdGlvbk9yPFJlZjxBdWRpb1dvcmtsZXROb2RlPj4gQXVkaW9Xb3JrbGV0Tm9kZTo6Y3Jl
YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmCiAKICAgICBhdXRvIHBhcmFtZXRlckRhdGEgPSBXVEZN
b3ZlKG9wdGlvbnMucGFyYW1ldGVyRGF0YSk7CiAgICAgYXV0byBub2RlID0gYWRvcHRSZWYoKm5l
dyBBdWRpb1dvcmtsZXROb2RlKGNvbnRleHQsIG5hbWUsIFdURk1vdmUob3B0aW9ucyksICpub2Rl
TWVzc2FnZVBvcnQpKTsKKyAgICBub2RlLT5zdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIGF1dG8g
cmVzdWx0ID0gbm9kZS0+aGFuZGxlQXVkaW9Ob2RlT3B0aW9ucyhvcHRpb25zLCB7IDIsIENoYW5u
ZWxDb3VudE1vZGU6Ok1heCwgQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VycyB9KTsKICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKTsKIAotICAgIGZvciAoYXV0byYgZGVzY3JpcHRvciA6IHBhcmFtZXRlckRl
c2NyaXB0b3JzKSB7Ci0gICAgICAgIGF1dG8gcGFyYW1ldGVyID0gQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsIGRlc2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5kZWZhdWx0VmFsdWUsIGRlc2Ny
aXB0b3IubWluVmFsdWUsIGRlc2NyaXB0b3IubWF4VmFsdWUsIGRlc2NyaXB0b3IuYXV0b21hdGlv
blJhdGUpOwotICAgICAgICBub2RlLT5wYXJhbWV0ZXJzKCkuYWRkKGRlc2NyaXB0b3IubmFtZSwg
V1RGTW92ZShwYXJhbWV0ZXIpKTsKLSAgICB9CisgICAgbm9kZS0+aW5pdGlhbGl6ZUF1ZGlvUGFy
YW1ldGVycyhwYXJhbWV0ZXJEZXNjcmlwdG9ycywgcGFyYW1ldGVyRGF0YSk7CiAKLSAgICBpZiAo
cGFyYW1ldGVyRGF0YSkgewotICAgICAgICBmb3IgKGF1dG8mIHBhcmFtZXRlciA6ICpwYXJhbWV0
ZXJEYXRhKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byogYXVkaW9QYXJhbSA9IG5vZGUtPnBhcmFt
ZXRlcnMoKS5tYXAoKS5nZXQocGFyYW1ldGVyLmtleSkpCi0gICAgICAgICAgICAgICAgYXVkaW9Q
YXJhbS0+c2V0VmFsdWUocGFyYW1ldGVyLnZhbHVlKTsKLSAgICAgICAgfQotICAgIH0KKyAgICAv
LyBXaWxsIGNhdXNlIHRoZSBjb250ZXh0IHRvIHJlZiB0aGUgbm9kZSB1bnRpbCBwbGF5YmFjayBo
YXMgZmluaXNoZWQuCisgICAgY29udGV4dC5yZWZOb2RlKG5vZGUpOwogCiAgICAgY29udGV4dC5h
dWRpb1dvcmtsZXQoKS5jcmVhdGVQcm9jZXNzb3IobmFtZSwgcHJvY2Vzc29yTWVzc2FnZVBvcnQt
PmRpc2VudGFuZ2xlKCksIHNlcmlhbGl6ZWRPcHRpb25zLnJlbGVhc2VOb25OdWxsKCksIG5vZGUp
OwogCisgICAgeworICAgICAgICAvLyBUaGUgbm9kZSBzaG91bGQgYmUgbWFudWFsbHkgYWRkZWQg
dG8gdGhlIGF1dG9tYXRpYyBwdWxsIG5vZGUgbGlzdCwgZXZlbiB3aXRob3V0IGEgY29ubmVjdCgp
IGNhbGwuCisgICAgICAgIEJhc2VBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tl
cihjb250ZXh0KTsKKyAgICAgICAgbm9kZS0+dXBkYXRlUHVsbFN0YXR1cygpOworICAgIH0KKwog
ICAgIHJldHVybiBub2RlOwogfQogCiBBdWRpb1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2Rl
KEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQXVkaW9Xb3Jr
bGV0Tm9kZU9wdGlvbnMmJiBvcHRpb25zLCBSZWY8TWVzc2FnZVBvcnQ+JiYgcG9ydCkKICAgICA6
IEF1ZGlvTm9kZShjb250ZXh0LCBOb2RlVHlwZVdvcmtsZXQpCisgICAgLCBBY3RpdmVET01PYmpl
Y3QoY29udGV4dC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgLCBtX25hbWUobmFtZSkK
ICAgICAsIG1fcGFyYW1ldGVycyhBdWRpb1BhcmFtTWFwOjpjcmVhdGUoKSkKICAgICAsIG1fcG9y
dChXVEZNb3ZlKHBvcnQpKQorICAgICwgbV93YXNPdXRwdXRDaGFubmVsQ291bnRHaXZlbighIW9w
dGlvbnMub3V0cHV0Q2hhbm5lbENvdW50KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG9wdGlvbnMubnVtYmVyT2ZJbnB1dHM7ICsr
aSkKQEAgLTEyNCw2ICsxMjgsOSBAQCBBdWRpb1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2Rl
KEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZQogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBvcHRpb25zLm51bWJlck9mT3V0cHV0czsgKytpKQogICAgICAg
ICBhZGRPdXRwdXQob3B0aW9ucy5vdXRwdXRDaGFubmVsQ291bnQgPyBvcHRpb25zLm91dHB1dENo
YW5uZWxDb3VudC0+YXQoaSk6IDEpOwogCisgICAgbV9pbnB1dHMucmVzaXplKG9wdGlvbnMubnVt
YmVyT2ZJbnB1dHMpOworICAgIG1fb3V0cHV0cy5yZXNpemUob3B0aW9ucy5udW1iZXJPZk91dHB1
dHMpOworCiAgICAgaW5pdGlhbGl6ZSgpOwogfQogCkBAIC0xMzEsNyArMTM4LDcgQEAgQXVkaW9X
b3JrbGV0Tm9kZTo6fkF1ZGlvV29ya2xldE5vZGUoKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc29y
TG9jayk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNzTG9jayk7CiAg
ICAgICAgIGlmIChtX3Byb2Nlc3NvcikgewogICAgICAgICAgICAgaWYgKGF1dG8qIHdvcmtsZXRQ
cm94eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgpKQogICAgICAgICAgICAgICAg
IHdvcmtsZXRQcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoW21fcHJv
Y2Vzc29yID0gV1RGTW92ZShtX3Byb2Nlc3NvcildKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7
IH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwpAQCAtMTQwLDIxICsxNDcsMTQ3IEBA
IEF1ZGlvV29ya2xldE5vZGU6On5BdWRpb1dvcmtsZXROb2RlKCkKICAgICB1bmluaXRpYWxpemUo
KTsKIH0KIAordm9pZCBBdWRpb1dvcmtsZXROb2RlOjppbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJz
KGNvbnN0IFZlY3RvcjxBdWRpb1BhcmFtRGVzY3JpcHRvcj4mIGRlc2NyaXB0b3JzLCBjb25zdCBP
cHRpb25hbDxWZWN0b3I8V1RGOjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBkb3VibGU+Pj4mIHBhcmFt
VmFsdWVzKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fcGFy
YW1ldGVycy0+bWFwKCkuaXNFbXB0eSgpKTsKKworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9wcm9jZXNzTG9jayk7CisKKyAgICBmb3IgKGF1dG8mIGRlc2NyaXB0b3IgOiBkZXNjcmlwdG9y
cykgeworICAgICAgICBhdXRvIHBhcmFtZXRlciA9IEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0
KCksIGRlc2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5kZWZhdWx0VmFsdWUsIGRlc2NyaXB0b3Iu
bWluVmFsdWUsIGRlc2NyaXB0b3IubWF4VmFsdWUsIGRlc2NyaXB0b3IuYXV0b21hdGlvblJhdGUp
OworICAgICAgICBtX3BhcmFtZXRlcnMtPmFkZChkZXNjcmlwdG9yLm5hbWUsIFdURk1vdmUocGFy
YW1ldGVyKSk7CisgICAgfQorCisgICAgaWYgKHBhcmFtVmFsdWVzKSB7CisgICAgICAgIGZvciAo
YXV0byYgcGFyYW1WYWx1ZSA6ICpwYXJhbVZhbHVlcykgeworICAgICAgICAgICAgaWYgKGF1dG8q
IGF1ZGlvUGFyYW0gPSBtX3BhcmFtZXRlcnMtPm1hcCgpLmdldChwYXJhbVZhbHVlLmtleSkpCisg
ICAgICAgICAgICAgICAgYXVkaW9QYXJhbS0+c2V0VmFsdWUocGFyYW1WYWx1ZS52YWx1ZSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIHBhcmFtZXRlck5hbWUgOiBtX3BhcmFt
ZXRlcnMtPm1hcCgpLmtleXMoKSkKKyAgICAgICAgbV9wYXJhbVZhbHVlc01hcC5hZGQocGFyYW1l
dGVyTmFtZSwgbWFrZVVuaXF1ZTxBdWRpb0Zsb2F0QXJyYXk+KEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSkpOworfQorCiB2b2lkIEF1ZGlvV29ya2xldE5vZGU6OnNldFByb2Nlc3Nv
cihSZWZQdHI8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yPiYmIHByb2Nlc3NvcikKIHsKICAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vz
c29yTG9jayk7Ci0gICAgbV9wcm9jZXNzb3IgPSBXVEZNb3ZlKHByb2Nlc3Nvcik7CisgICAgaWYg
KHByb2Nlc3NvcikgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc0xv
Y2spOworICAgICAgICBtX3Byb2Nlc3NvciA9IFdURk1vdmUocHJvY2Vzc29yKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3NvckVycm9y
OjpDb25zdHJ1Y3RvckVycm9yKTsKIH0KIAogdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpwcm9jZXNz
KHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lc1RvUHJvY2Vzcyk7CiAKLSAgICAvLyBGSVhNRTogRG8g
YWN0dWFsIHByb2Nlc3NpbmcgdmlhIG1fcHJvY2Vzc29yLgorICAgIGF1dG8gbG9ja2VyID0gdHJ5
SG9sZExvY2sobV9wcm9jZXNzTG9jayk7CisgICAgaWYgKCFsb2NrZXIgfHwgIW1fcHJvY2Vzc29y
KSB7CisgICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5ZXQgb3Igd2UgYXJlIGdldHRpbmcgZGVz
dHJveWVkLiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBzaWxlbmNlLgorICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7ICsraSkKKyAgICAgICAgICAgIG91
dHB1dChpKS0+YnVzKCktPnplcm8oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8v
IElmIHRoZSBpbnB1dCBpcyBub3QgY29ubmVjdGVkLCBwYXNzIG51bGxwdHIgdG8gdGhlIHByb2Nl
c3Nvci4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZJbnB1dHMoKTsgKytp
KQorICAgICAgICBtX2lucHV0c1tpXSA9IGlucHV0KGkpLT5pc0Nvbm5lY3RlZCgpID8gaW5wdXQo
aSktPmJ1cygpIDogbnVsbHB0cjsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVy
T2ZPdXRwdXRzKCk7ICsraSkKLSAgICAgICAgb3V0cHV0KGkpLT5idXMoKS0+emVybygpOworICAg
ICAgICBtX291dHB1dHNbaV0gPSBvdXRwdXQoaSktPmJ1cygpOworCisgICAgZm9yIChhdXRvJiBh
dWRpb1BhcmFtIDogbV9wYXJhbWV0ZXJzLT5tYXAoKS52YWx1ZXMoKSkgeworICAgICAgICBhdXRv
KiBwYXJhbVZhbHVlcyA9IG1fcGFyYW1WYWx1ZXNNYXAuZ2V0KGF1ZGlvUGFyYW0tPm5hbWUoKSk7
CisgICAgICAgIEFTU0VSVChwYXJhbVZhbHVlcyk7CisgICAgICAgIGlmIChhdWRpb1BhcmFtLT5o
YXNTYW1wbGVBY2N1cmF0ZVZhbHVlcygpICYmIGF1ZGlvUGFyYW0tPmF1dG9tYXRpb25SYXRlKCkg
PT0gQXV0b21hdGlvblJhdGU6OkFSYXRlKQorICAgICAgICAgICAgYXVkaW9QYXJhbS0+Y2FsY3Vs
YXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXMocGFyYW1WYWx1ZXMtPmRhdGEoKSwgZnJhbWVzVG9Qcm9j
ZXNzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RkOjpmaWxsKHBhcmFtVmFsdWVzLT5k
YXRhKCksIHBhcmFtVmFsdWVzLT5kYXRhKCkgKyBmcmFtZXNUb1Byb2Nlc3MsIGF1ZGlvUGFyYW0t
PmZpbmFsVmFsdWUoKSk7CisgICAgfQorCisgICAgYm9vbCB0aHJld0V4Y2VwdGlvbiA9IGZhbHNl
OworICAgIGlmICghbV9wcm9jZXNzb3ItPnByb2Nlc3MobV9pbnB1dHMsIG1fb3V0cHV0cywgbV9w
YXJhbVZhbHVlc01hcCwgdGhyZXdFeGNlcHRpb24pKQorICAgICAgICBkaWRGaW5pc2hQcm9jZXNz
aW5nT25SZW5kZXJpbmdUaHJlYWQodGhyZXdFeGNlcHRpb24pOworfQorCit2b2lkIEF1ZGlvV29y
a2xldE5vZGU6OmRpZEZpbmlzaFByb2Nlc3NpbmdPblJlbmRlcmluZ1RocmVhZChib29sIHRocmV3
RXhjZXB0aW9uKQoreworICAgIGlmICh0aHJld0V4Y2VwdGlvbikKKyAgICAgICAgZmlyZVByb2Nl
c3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3NvckVycm9yOjpQcm9jZXNzRXJyb3IpOworCisg
ICAgbV9wcm9jZXNzb3IgPSBudWxscHRyOworICAgIG1fdGFpbFRpbWUgPSAwOworICAgIGNvbnRl
eHQoKS5ub3RpZnlOb2RlRmluaXNoZWRQcm9jZXNzaW5nKHRoaXMpOworfQorCit2b2lkIEF1ZGlv
V29ya2xldE5vZGU6OnVwZGF0ZVB1bGxTdGF0dXMoKQoreworICAgIEFTU0VSVChjb250ZXh0KCku
aXNHcmFwaE93bmVyKCkpOworCisgICAgYm9vbCBoYXNDb25uZWN0ZWRPdXRwdXQgPSBmYWxzZTsK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7ICsraSkgewor
ICAgICAgICBpZiAob3V0cHV0KGkpLT5pc0Nvbm5lY3RlZCgpKSB7CisgICAgICAgICAgICBoYXND
b25uZWN0ZWRPdXRwdXQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICAvLyBJZiBubyBvdXRwdXQgaXMgY29ubmVjdGVkLCBhZGQgdGhlIG5vZGUgdG8g
dGhlIGF1dG9tYXRpYyBwdWxsIGxpc3QuCisgICAgLy8gT3RoZXJ3aXNlLCByZW1vdmUgaXQgb3V0
IG9mIHRoZSBsaXN0LgorICAgIGlmICghaGFzQ29ubmVjdGVkT3V0cHV0KQorICAgICAgICBjb250
ZXh0KCkuYWRkQXV0b21hdGljUHVsbE5vZGUoKnRoaXMpOworICAgIGVsc2UKKyAgICAgICAgY29u
dGV4dCgpLnJlbW92ZUF1dG9tYXRpY1B1bGxOb2RlKCp0aGlzKTsKK30KKwordm9pZCBBdWRpb1dv
cmtsZXROb2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dChBdWRpb05vZGVJbnB1dCog
aW5wdXQpCit7CisgICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkgJiYgY29udGV4
dCgpLmlzR3JhcGhPd25lcigpKTsKKworICAgIC8vIER5bmFtaWMgY2hhbm5lbCBjb3VudCBvbmx5
IHdvcmtzIHdoZW4gdGhlIG5vZGUgaGFzIDEgaW5wdXQsIDEgb3V0cHV0IGFuZCB8b3V0cHV0Q2hh
bm5lbENvdW50fAorICAgIC8vIGlzIG5vdCBnaXZlbi4gT3RoZXJ3aXNlIHRoZSBjaGFubmVsIGNv
dW50KHMpIHNob3VsZCBub3QgYmUgZHluYW1pY2FsbHkgY2hhbmdlZC4KKyAgICBpZiAobnVtYmVy
T2ZJbnB1dHMoKSA9PSAxICYmIG51bWJlck9mT3V0cHV0cygpID09IDEgJiYgIW1fd2FzT3V0cHV0
Q2hhbm5lbENvdW50R2l2ZW4pIHsKKyAgICAgICAgQVNTRVJUKGlucHV0ID09IHRoaXMtPmlucHV0
KDApKTsKKyAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzID0gaW5wdXQtPm51
bWJlck9mQ2hhbm5lbHMoKTsKKyAgICAgICAgaWYgKG51bWJlck9mSW5wdXRDaGFubmVscyAhPSBv
dXRwdXQoMCktPm51bWJlck9mQ2hhbm5lbHMoKSkgeworICAgICAgICAgICAgLy8gVGhpcyB3aWxs
IHByb3BhZ2F0ZSB0aGUgY2hhbm5lbCBjb3VudCB0byBhbnkgbm9kZXMgY29ubmVjdGVkIGZ1cnRo
ZXIgZG93bnN0cmVhbSBpbiB0aGUgZ3JhcGguCisgICAgICAgICAgICBvdXRwdXQoMCktPnNldE51
bWJlck9mQ2hhbm5lbHMobnVtYmVyT2ZJbnB1dENoYW5uZWxzKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIC8vIFVwZGF0ZSB0aGUgaW5wdXQncyBpbnRlcm5hbCBidXMgaWYgbmVlZGVkLgorICAg
IEF1ZGlvTm9kZTo6Y2hlY2tOdW1iZXJPZkNoYW5uZWxzRm9ySW5wdXQoaW5wdXQpOworICAgIHVw
ZGF0ZVB1bGxTdGF0dXMoKTsKK30KKwordm9pZCBBdWRpb1dvcmtsZXROb2RlOjpmaXJlUHJvY2Vz
c29yRXJyb3JPbk1haW5UaHJlYWQoUHJvY2Vzc29yRXJyb3IgZXJyb3IpCit7CisgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVycm9yXSgpIG11dGFibGUgeworICAgICAgICBTdHJp
bmcgZXJyb3JNZXNzYWdlOworICAgICAgICBzd2l0Y2ggKGVycm9yKSB7CisgICAgICAgIGNhc2Ug
UHJvY2Vzc29yRXJyb3I6OkNvbnN0cnVjdG9yRXJyb3I6CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSAiQW4gZXJyb3Igd2FzIHRocm93biBmcm9tIEF1ZGlvV29ya2xldFByb2Nlc3NvciBjb25z
dHJ1Y3RvciJfczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFByb2Nlc3NvckVy
cm9yOjpQcm9jZXNzRXJyb3I6CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAiQW4gZXJyb3Ig
d2FzIHRocm93biBmcm9tIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2VzcygpIG1ldGhvZCJf
czsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHF1ZXVlVGFza1RvRGlz
cGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBFcnJvckV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnByb2Nlc3NvcmVycm9yRXZlbnQsIGVycm9yTWVzc2FnZSwgeyB9
LCAwLCAwLCB7IH0pKTsKKyAgICB9KTsKK30KKworY29uc3QgY2hhciogQXVkaW9Xb3JrbGV0Tm9k
ZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJBdWRpb1dvcmts
ZXROb2RlIjsKK30KKworYm9vbCBBdWRpb1dvcmtsZXROb2RlOjp2aXJ0dWFsSGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWNvbnRleHQoKS5pc0Nsb3NlZCgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCmluZGV4IDk1YzdmNjc1MGYwNWYxMmYzOTc2MjQ1
ZGFkYjcxMzFmMTE0ODU0OTcuLjdkNjg4N2M0ZGM5N2ZlY2E0OTcyNmJjZWMwNzlmM2Q2NTFmYTEy
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5oCkBAIC0zMCw2ICszMCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCisj
aW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgogI2lu
Y2x1ZGUgIkF1ZGlvTm9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKQEAgLTM5LDkgKzQx
LDExIEBAIGNsYXNzIEF1ZGlvUGFyYW1NYXA7CiBjbGFzcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3I7
CiBjbGFzcyBNZXNzYWdlUG9ydDsKIAorc3RydWN0IEF1ZGlvUGFyYW1EZXNjcmlwdG9yOworCiBz
dHJ1Y3QgQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnM7CiAKLWNsYXNzIEF1ZGlvV29ya2xldE5vZGUg
OiBwdWJsaWMgQXVkaW9Ob2RlIHsKK2NsYXNzIEF1ZGlvV29ya2xldE5vZGUgOiBwdWJsaWMgQXVk
aW9Ob2RlLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKEF1ZGlvV29ya2xldE5vZGUpOwogcHVibGljOgogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxS
ZWY8QXVkaW9Xb3JrbGV0Tm9kZT4+IGNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgQmFzZUF1
ZGlvQ29udGV4dCYsIFN0cmluZyYmIG5hbWUsIEF1ZGlvV29ya2xldE5vZGVPcHRpb25zJiYpOwpA
QCAtNTEsMjEgKzU1LDQxIEBAIHB1YmxpYzoKICAgICBNZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0
dXJuIG1fcG9ydC5nZXQoKTsgfQogCiAgICAgdm9pZCBzZXRQcm9jZXNzb3IoUmVmUHRyPEF1ZGlv
V29ya2xldFByb2Nlc3Nvcj4mJik7CisgICAgdm9pZCBpbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJz
KGNvbnN0IFZlY3RvcjxBdWRpb1BhcmFtRGVzY3JpcHRvcj4mLCBjb25zdCBPcHRpb25hbDxWZWN0
b3I8V1RGOjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBkb3VibGU+Pj4mIHBhcmFtVmFsdWVzKTsKIAog
cHJpdmF0ZToKICAgICBBdWRpb1dvcmtsZXROb2RlKEJhc2VBdWRpb0NvbnRleHQmLCBjb25zdCBT
dHJpbmcmIG5hbWUsIEF1ZGlvV29ya2xldE5vZGVPcHRpb25zJiYsIFJlZjxNZXNzYWdlUG9ydD4m
Jik7CiAKKyAgICBlbnVtIGNsYXNzIFByb2Nlc3NvckVycm9yIHsgQ29uc3RydWN0b3JFcnJvciwg
UHJvY2Vzc0Vycm9yIH07CisgICAgdm9pZCBmaXJlUHJvY2Vzc29yRXJyb3JPbk1haW5UaHJlYWQo
UHJvY2Vzc29yRXJyb3IpOworICAgIHZvaWQgZGlkRmluaXNoUHJvY2Vzc2luZ09uUmVuZGVyaW5n
VGhyZWFkKGJvb2wgdGhyZXdFeGNlcHRpb24pOworCiAgICAgLy8gQXVkaW9Ob2RlLgogICAgIHZv
aWQgcHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBmaW5hbDsKLSAgICBkb3VibGUgdGFp
bFRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9IC8vIEZJWE1FOiBSZXR1cm4gYSBjb3Jy
ZWN0IHZhbHVlLgorICAgIGRvdWJsZSB0YWlsVGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
dGFpbFRpbWU7IH0KICAgICBkb3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biAwOyB9CiAgICAgYm9vbCByZXF1aXJlc1RhaWxQcm9jZXNzaW5nKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgY2hlY2tOdW1iZXJPZkNoYW5uZWxzRm9ySW5wdXQoQXVk
aW9Ob2RlSW5wdXQqKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVB1bGxTdGF0dXMoKSBmaW5hbDsK
KworICAgIC8vIEFjdGl2ZURPTU9iamVjdC4KKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCB2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QgZmluYWw7CiAKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIFJlZjxBdWRpb1BhcmFt
TWFwPiBtX3BhcmFtZXRlcnM7CiAgICAgUmVmPE1lc3NhZ2VQb3J0PiBtX3BvcnQ7Ci0gICAgTG9j
ayBtX3Byb2Nlc3NvckxvY2s7CisgICAgTG9jayBtX3Byb2Nlc3NMb2NrOwogICAgIFJlZlB0cjxB
dWRpb1dvcmtsZXRQcm9jZXNzb3I+IG1fcHJvY2Vzc29yOyAvLyBTaG91bGQgb25seSBiZSB1c2Vk
IG9uIHRoZSByZW5kZXJpbmcgdGhyZWFkLgorICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4gbV9wYXJhbVZhbHVlc01hcDsKKworICAgIC8vIEtlZXBz
IHRoZSByZWZlcmVuY2Ugb2YgQXVkaW9CdXMgb2JqZWN0cyBmcm9tIEF1ZGlvTm9kZUlucHV0IGFu
ZCBBdWRpb05vZGVPdXRwdXQgaW4gb3JkZXIKKyAgICAvLyB0byBwYXNzIHRoZW0gdG8gQXVkaW9X
b3JrbGV0UHJvY2Vzc29yLgorICAgIFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiBtX2lucHV0czsK
KyAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4gbV9vdXRwdXRzOworCisgICAgZG91YmxlIG1f
dGFpbFRpbWUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkgfTsKKyAg
ICBib29sIG1fd2FzT3V0cHV0Q2hhbm5lbENvdW50R2l2ZW4geyBmYWxzZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKaW5kZXggNzExNWFmY2UwMzljNmU1ZTI2Nzg3YzEz
ZGYxY2YwN2U4ZDZmZjBmOC4uOTIxNWM5OGUxZDNmNmQxMGU1MWY4YjgxMzY5ZjJmNTYzMWNjMTYz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldE5vZGUuaWRsCkBAIC0yNyw2ICsyNyw3IEBACiAgKi8KIAogWworICAgIEFjdGl2ZURPTU9i
amVjdCwKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAgRW5hYmxlZEJ5U2V0dGluZz1B
dWRpb1dvcmtsZXQsCiAgICAgRXhwb3NlZD1XaW5kb3csCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKaW5kZXgg
NDVhOTc4ZTg5NzgyYzEzOGY5NTIzZTJhODlmODRhNzcxZThkZmQ1YS4uMDZhMDRmOTNjMzVjOTZm
ZGMzZjA5MzlhNzAyMDFmNjYwMGQ2MmU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcApAQCAtMzEsMTIg
KzMxLDc1IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICNpbmNsdWRlICJBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IuaCIKIAorI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCisjaW5jbHVkZSAiQXVkaW9DaGFu
bmVsLmgiCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJB
dWRpb1dvcmtsZXRQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhLmgiCisjaW5jbHVkZSAiSlNDYWxs
YmFja0RhdGEuaCIKKyNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Zsb2F0MzJBcnJh
eS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworc3RhdGljIEpTRmxvYXQzMkFycmF5KiBj
b25zdHJ1Y3RKU0Zsb2F0MzJBcnJheShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNp
Z25lZCBsZW5ndGgsIGNvbnN0IGZsb2F0KiBkYXRhID0gbnVsbHB0cikKK3sKKyAgICBhdXRvKiBq
c0FycmF5ID0gSlNGbG9hdDMyQXJyYXk6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+dHlwZWRBcnJheVN0cnVjdHVyZShUeXBlRmxvYXQzMiksIGxlbmd0aCk7CisgICAgaWYgKGRh
dGEpCisgICAgICAgIG1lbWNweShqc0FycmF5LT50eXBlZFZlY3RvcigpLCBkYXRhLCBzaXplb2Yo
ZmxvYXQpICogbGVuZ3RoKTsKKyAgICByZXR1cm4ganNBcnJheTsKK30KKworc3RhdGljIEpTTWFw
KiBjb25zdHJ1Y3RKU01hcChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNv
bnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBh
cmFtVmFsdWVzTWFwKQoreworICAgIGF1dG8qIG1hcCA9IEpTTWFwOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT5tYXBTdHJ1Y3R1cmUoKSk7CisgICAgZm9yIChhdXRvJiBw
YWlyIDogcGFyYW1WYWx1ZXNNYXApCisgICAgICAgIG1hcC0+c2V0KGdsb2JhbE9iamVjdCwganNT
dHJpbmdXaXRoQ2FjaGUodm0sIHBhaXIua2V5KSwgY29uc3RydWN0SlNGbG9hdDMyQXJyYXkoZ2xv
YmFsT2JqZWN0LCBwYWlyLnZhbHVlLT5zaXplKCksIHBhaXIudmFsdWUtPmRhdGEoKSkpOworICAg
IHJldHVybiBtYXA7Cit9CisKK2VudW0gY2xhc3MgU2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YSA6
IGJvb2wgeyBObywgWWVzIH07CitzdGF0aWMgSlNBcnJheSogY29uc3RydWN0RnJvemVuSlNBcnJh
eShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEF1ZGlvQnVzKiBidXMsIFNo
b3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGEgc2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YSkKK3sKKyAg
ICB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzID0gYnVzID8gYnVzLT5udW1iZXJPZkNoYW5uZWxz
KCkgOiAwOworICAgIGF1dG8qIGNoYW5uZWxzRGF0YSA9IEpTQXJyYXk6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LT5vcmlnaW5hbEFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlKEFycmF5V2l0
aENvbnRpZ3VvdXMpLCBudW1iZXJPZkNoYW5uZWxzKTsKKyAgICBmb3IgKHVuc2lnbmVkIGogPSAw
OyBqIDwgbnVtYmVyT2ZDaGFubmVsczsgKytqKSB7CisgICAgICAgIGF1dG8qIGNoYW5uZWwgPSBi
dXMtPmNoYW5uZWwoaik7CisgICAgICAgIGNoYW5uZWxzRGF0YS0+c2V0SW5kZXhRdWlja2x5KHZt
LCBqLCBjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheShnbG9iYWxPYmplY3QsIGNoYW5uZWwtPmxlbmd0
aCgpLCBzaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhID09IFNob3VsZFBvcHVsYXRlV2l0aEJ1c0Rh
dGE6OlllcyA/IGNoYW5uZWwtPmRhdGEoKSA6IG51bGxwdHIpKTsKKyAgICB9CisgICAgSlNDOjpv
YmplY3RDb25zdHJ1Y3RvckZyZWV6ZShnbG9iYWxPYmplY3QsIGNoYW5uZWxzRGF0YSk7CisgICAg
cmV0dXJuIGNoYW5uZWxzRGF0YTsKK30KKworc3RhdGljIEpTQXJyYXkqIGNvbnN0cnVjdEZyb3pl
bkpTQXJyYXkoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0
b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGJ1c2VzLCBTaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhIHNo
b3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGEpCit7CisgICAgYXV0byogYXJyYXkgPSBKU0FycmF5Ojpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdC0+b3JpZ2luYWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5n
VHlwZShBcnJheVdpdGhDb250aWd1b3VzKSwgYnVzZXMuc2l6ZSgpKTsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgYnVzZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGFycmF5LT5zZXRJbmRl
eFF1aWNrbHkodm0sIGksIGNvbnN0cnVjdEZyb3plbkpTQXJyYXkodm0sIGdsb2JhbE9iamVjdCwg
YnVzZXNbaV0uZ2V0KCksIHNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGEpKTsKKyAgICBKU0M6Om9i
amVjdENvbnN0cnVjdG9yRnJlZXplKGdsb2JhbE9iamVjdCwgYXJyYXkpOworICAgIHJldHVybiBh
cnJheTsKK30KKworc3RhdGljIHZvaWQgY29weURhdGFGcm9tSlNBcnJheVRvQnVzZXMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNBcnJheSoganNBcnJheSwgVmVjdG9yPFJlZlB0cjxB
dWRpb0J1cz4+JiBidXNlcykKK3sKKyAgICAvLyBXZSBjYW4gc2FmZWx5IG1ha2UgYXNzdW1wdGlv
bnMgYWJvdXQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgSlNBcnJheSBzaW5jZSB3ZSB1c2UgZnJvemVu
IGFycmF5cy4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVzZXMuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgYXV0byYgYnVzID0gYnVzZXNbaV07CisgICAgICAgIGF1dG8qIGNoYW5uZWxz
QXJyYXkgPSBhc09iamVjdChqc0FycmF5LT5nZXRJbmRleChnbG9iYWxPYmplY3QsIGkpKTsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IGJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOyAr
K2opIHsKKyAgICAgICAgICAgIGF1dG8qIGNoYW5uZWwgPSBidXMtPmNoYW5uZWwoaik7CisgICAg
ICAgICAgICBhdXRvKiBqc0NoYW5uZWxEYXRhID0ganNDYXN0PEpTRmxvYXQzMkFycmF5Kj4oY2hh
bm5lbHNBcnJheS0+Z2V0SW5kZXgoZ2xvYmFsT2JqZWN0LCBqKSk7CisgICAgICAgICAgICBpZiAo
anNDaGFubmVsRGF0YS0+bGVuZ3RoKCkgPT0gY2hhbm5lbC0+bGVuZ3RoKCkpCisgICAgICAgICAg
ICAgICAgbWVtY3B5KGNoYW5uZWwtPm11dGFibGVEYXRhKCksIGpzQ2hhbm5lbERhdGEtPnR5cGVk
VmVjdG9yKCksIHNpemVvZihmbG9hdCkgKiBjaGFubmVsLT5sZW5ndGgoKSk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgY2hhbm5lbC0+emVybygpOworICAgICAgICB9CisgICAg
fQorfQorCiBFeGNlcHRpb25PcjxSZWY8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yPj4gQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsK
ICAgICBhdXRvIGNvbnN0cnVjdGlvbkRhdGEgPSBkb3duY2FzdDxBdWRpb1dvcmtsZXRHbG9iYWxT
Y29wZT4oY29udGV4dCkudGFrZVBlbmRpbmdQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhKCk7CkBA
IC01NSw2ICsxMTgsNDIgQEAgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpBdWRpb1dvcmtsZXRQcm9j
ZXNzb3IoY29uc3QgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWMKICAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKIH0KIAorYm9vbCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3Mo
Y29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWZQdHI8QXVk
aW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIGJvb2wmIHRocmV3RXhjZXB0aW9uKQor
eworICAgIEFTU0VSVChtX3Byb2Nlc3NDYWxsYmFjayk7CisgICAgYXV0byogZ2xvYmFsT2JqZWN0
ID0gbV9wcm9jZXNzQ2FsbGJhY2stPmdsb2JhbE9iamVjdCgpOworICAgIEFTU0VSVChnbG9iYWxP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgQVNTRVJUKGdsb2JhbE9iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7CisKKyAgICBh
dXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7
CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgY29uc2lkZXIgY2FjaGluZyB0aGUgSlNBcnJheXMgJiBKU01hcCBhbmQgb25seSB1cGRhdGUg
dGhlaXIgaXRlbXMKKyAgICAvLyBldmVyeSB0aW1lIHByb2Nlc3MoKSBpcyBjYWxsZWQsIGZvciBw
ZXJmb3JtYW5jZSByZWFzb25zLgorICAgIGFyZ3MuYXBwZW5kKGNvbnN0cnVjdEZyb3plbkpTQXJy
YXkodm0sIGdsb2JhbE9iamVjdCwgaW5wdXRzLCBTaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhOjpZ
ZXMpKTsKKyAgICBhdXRvKiBvdXB1dEpTQXJyYXkgPSBjb25zdHJ1Y3RGcm96ZW5KU0FycmF5KHZt
LCBnbG9iYWxPYmplY3QsIG91dHB1dHMsIFNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGE6Ok5vKTsK
KyAgICBhcmdzLmFwcGVuZChvdXB1dEpTQXJyYXkpOworICAgIGFyZ3MuYXBwZW5kKGNvbnN0cnVj
dEpTTWFwKHZtLCBnbG9iYWxPYmplY3QsIHBhcmFtVmFsdWVzTWFwKSk7CisKKyAgICBOYWtlZFB0
cjxKU0M6OkV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247CisgICAgYXV0byByZXN1bHQgPSBt
X3Byb2Nlc3NDYWxsYmFjay0+aW52b2tlQ2FsbGJhY2soanNVbmRlZmluZWQoKSwgYXJncywgSlND
YWxsYmFja0RhdGE6OkNhbGxiYWNrVHlwZTo6T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAicHJvY2VzcyIpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKHJldHVybmVkRXhj
ZXB0aW9uKSB7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHJldHVybmVk
RXhjZXB0aW9uKTsKKyAgICAgICAgdGhyZXdFeGNlcHRpb24gPSB0cnVlOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgY29weURhdGFGcm9tSlNBcnJheVRvQnVzZXMoZ2xvYmFs
T2JqZWN0LCBvdXB1dEpTQXJyYXksIG91dHB1dHMpOworCisgICAgcmV0dXJuIHJlc3VsdC50b0Jv
b2xlYW4oZ2xvYmFsT2JqZWN0KTsKK30KKwordm9pZCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnNl
dFByb2Nlc3NDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8SlNDYWxsYmFja0RhdGFTdHJvbmc+JiYg
cHJvY2Vzc0NhbGxiYWNrKQoreworICAgIG1fcHJvY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShwcm9j
ZXNzQ2FsbGJhY2spOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgKaW5kZXggNWZkM2E5ZWRiMzA0MTZhMTFiNDQ1
YWI1NjM0MjNiZDM3MmM5MjQ2ZS4uOGQxMWUzZmU0MzQ1NTVhN2ZjMjE5MzEyMjE3NTZlNmZiYjZh
YWE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRQcm9jZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldFByb2Nlc3Nvci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjcHJhZ21hIG9uY2UKIAog
I2lmIEVOQUJMRShXRUJfQVVESU8pCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmLmg+CkBAIC0zNiw3ICszNyw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
QXVkaW9CdXM7CiBjbGFzcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhOwor
Y2xhc3MgSlNDYWxsYmFja0RhdGFTdHJvbmc7CiBjbGFzcyBNZXNzYWdlUG9ydDsKIGNsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKQEAgLTQ4LDExICs1MSwxNiBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgTWVzc2Fn
ZVBvcnQmIHBvcnQoKSB7IHJldHVybiBtX3BvcnQuZ2V0KCk7IH0KIAorICAgIGJvb2wgcHJvY2Vz
cyhjb25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZlB0cjxB
dWRpb0J1cz4+JiBvdXRwdXRzLCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRy
PEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24p
OworCisgICAgdm9pZCBzZXRQcm9jZXNzQ2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJh
Y2tEYXRhU3Ryb25nPiYmKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IoY29uc3QgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWN0aW9uRGF0YSYpOwog
CiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBSZWY8TWVzc2FnZVBvcnQ+IG1fcG9ydDsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8SlNDYWxsYmFja0RhdGFTdHJvbmc+IG1fcHJvY2Vzc0NhbGxiYWNrOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ2FsbGJhY2tEYXRhLmgKaW5kZXggM2ViM2MxYjQ4ZjY5ZDIzN2FjOTUwMzgxMzI5MDg3Yjhm
YTM4YTVhOC4uYzVlODZlN2U2ZjY1MDYxZWE0NWNmMTQ5ZmIxOTJiOThiMmM2Mzc2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oCkBAIC00Myw2ICs0Myw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIChhbmQgc3luY2hyb25pemF0aW9uIHdvdWxkIGJl
IHNsb3cpLgogCiBjbGFzcyBKU0NhbGxiYWNrRGF0YSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBDYWxsYmFja1R5cGUgeyBGdW5jdGlvbiwg
T2JqZWN0LCBGdW5jdGlvbk9yT2JqZWN0IH07CiAKQEAgLTcyLDcgKzczLDcgQEAgcHJpdmF0ZToK
IAogY2xhc3MgSlNDYWxsYmFja0RhdGFTdHJvbmcgOiBwdWJsaWMgSlNDYWxsYmFja0RhdGEgewog
cHVibGljOgotICAgIEpTQ2FsbGJhY2tEYXRhU3Ryb25nKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNr
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKikKKyAgICBKU0NhbGxiYWNr
RGF0YVN0cm9uZyhKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgdm9pZCogPSBudWxscHRyKQogICAgICAgICA6IEpTQ2FsbGJhY2tEYXRhKGds
b2JhbE9iamVjdCkKICAgICAgICAgLCBtX2NhbGxiYWNrKGdsb2JhbE9iamVjdC0+dm0oKSwgY2Fs
bGJhY2spCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCmluZGV4IGExNGE0MjFmMWE1
YWU3ZTM1YzE1MTM1NTQyMTJlNzRiMGRjNThhNDYuLjlhN2JmNDk4ZTllYzAyNWE5M2JmZWIxM2M3
YjI4NDk2Yjg0YjJmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5jcHAKQEAgLTUzLDggKzUz
LDggQEAgRXJyb3JFdmVudDo6RXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25z
dCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGUKIHsKIH0KIAotRXJyb3JFdmVudDo6RXJyb3JF
dmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2ln
bmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpTdHJvbmc8SlNDOjpV
bmtub3duPiBlcnJvcikKLSAgICA6IEV2ZW50KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBDYW5C
dWJibGU6Ok5vLCBJc0NhbmNlbGFibGU6OlllcykKK0Vycm9yRXZlbnQ6OkVycm9yRXZlbnQoY29u
c3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpT
Qzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gZXJyb3IpCisgICAgOiBFdmVudCh0eXBlLCBDYW5CdWJi
bGU6Ok5vLCBJc0NhbmNlbGFibGU6OlllcykKICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQogICAg
ICwgbV9maWxlTmFtZShmaWxlTmFtZSkKICAgICAsIG1fbGluZU51bWJlcihsaW5lTnVtYmVyKQpA
QCAtNjMsNiArNjMsMTEgQEAgRXJyb3JFdmVudDo6RXJyb3JFdmVudChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGwKIHsKIH0KIAorRXJyb3JF
dmVudDo6RXJyb3JFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpT
dHJvbmc8SlNDOjpVbmtub3duPiBlcnJvcikKKyAgICA6IEVycm9yRXZlbnQoZXZlbnROYW1lcygp
LmVycm9yRXZlbnQsIG1lc3NhZ2UsIGZpbGVOYW1lLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIs
IGVycm9yKQoreworfQorCiBFcnJvckV2ZW50Ojp+RXJyb3JFdmVudCgpID0gZGVmYXVsdDsKIAog
RXZlbnRJbnRlcmZhY2UgRXJyb3JFdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FcnJvckV2ZW50LmgKaW5kZXggZGYxMzFlMzFmNmJjMmI1ZDc1MzVhM2ZkNTkzODRkZDg4MmIy
Zjg2Ny4uYzZjMmM0NDhiODYzMzdjYjNlMDJjNzk1NzA3NmQ1ZWMxMzU3ZWY4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXJyb3JFdmVudC5oCkBAIC00Nyw2ICs0NywxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEVycm9yRXZlbnQobWVzc2FnZSwgZmlsZU5hbWUsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlciwgZXJyb3IpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUmVmPEVycm9yRXZl
bnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNv
bHVtbk51bWJlciwgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBlcnJvcikKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVycm9yRXZlbnQodHlwZSwgbWVzc2FnZSwgZmlsZU5h
bWUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgZXJyb3IpKTsKKyAgICB9CisKICAgICBzdHJ1
Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlOwogICAgICAgICBT
dHJpbmcgZmlsZW5hbWU7CkBAIC03Niw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiB0cnlTZXJpYWxpemVFcnJvcihKU0M6OkpTR2xvYmFsT2JqZWN0
Jik7CiAKIHByaXZhdGU6CisgICAgRXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3du
PiBlcnJvcik7CiAgICAgRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJl
ciwgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBlcnJvcik7CiAgICAgRXJyb3JFdmVudChjb25z
dCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVz
c2FnZVBvcnQuY3BwCmluZGV4IDlkZjhmY2QyOWRkYzNmOThmMTAyNTk1YzBjM2VmYTQ0M2U2ODVh
ZTIuLmI0MTgyODVkZTFmZDAzY2YxOThmMWExOGU3MzU5ZTgxYjc4MDY3OTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL01lc3NhZ2VQb3J0LmNwcApAQCAtMzI4LDE5ICszMjgsMTkgQEAgYm9vbCBNZXNzYWdlUG9y
dDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiAKICAgICAvLyBJZiB3ZSdyZSBu
b3QgaW4gdGhlIG1pZGRsZSBvZiBhc2tpbmcgdGhlIHJlbW90ZSBwb3J0IGFib3V0IGNvbGxlY3Rh
YmlsaXR5LCBkbyBzbyBub3cuCiAgICAgaWYgKCFtX2lzQXNraW5nUmVtb3RlQWJvdXRHQykgewot
ICAgICAgICBSZWZQdHI8V29ya2VyVGhyZWFkPiB3b3JrZXJUaHJlYWQ7Ci0gICAgICAgIGlmIChp
czxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpCi0gICAgICAg
ICAgICB3b3JrZXJUaHJlYWQgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCptX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQpLnRocmVhZCgpOworICAgICAgICBSZWZQdHI8V29ya2VyT3JXb3Jr
bGV0VGhyZWFkPiB3b3JrZXJPcldvcmtsZXRUaHJlYWQ7CisgICAgICAgIGlmIChpczxXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpCisgICAgICAg
ICAgICB3b3JrZXJPcldvcmtsZXRUaHJlYWQgPSBkb3duY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkud29ya2VyT3JXb3JrbGV0VGhyZWFk
KCk7CiAKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcmVtb3RlSWRlbnRpZmllciA9IG1fcmVt
b3RlSWRlbnRpZmllciwgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cihjb25zdF9jYXN0PE1lc3NhZ2VQ
b3J0Kj4odGhpcykpLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKCkgbXV0
YWJsZSB7Ci0gICAgICAgICAgICBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6c2luZ2xldG9u
KCkuY2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkocmVtb3RlSWRlbnRpZmllciwgW3dlYWtUaGlz
ID0gV1RGTW92ZSh3ZWFrVGhpcyksIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFk
KV0oYXV0byBoYXNBY3Rpdml0eSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF3b3Jr
ZXJUaHJlYWQpIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcmVtb3RlSWRlbnRpZmllciA9
IG1fcmVtb3RlSWRlbnRpZmllciwgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cihjb25zdF9jYXN0PE1l
c3NhZ2VQb3J0Kj4odGhpcykpLCB3b3JrZXJPcldvcmtsZXRUaHJlYWQgPSBXVEZNb3ZlKHdvcmtl
ck9yV29ya2xldFRocmVhZCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBNZXNzYWdlUG9ydENo
YW5uZWxQcm92aWRlcjo6c2luZ2xldG9uKCkuY2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkocmVt
b3RlSWRlbnRpZmllciwgW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHdvcmtlck9yV29y
a2xldFRocmVhZCA9IFdURk1vdmUod29ya2VyT3JXb3JrbGV0VGhyZWFkKV0oYXV0byBoYXNBY3Rp
dml0eSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKCF3b3JrZXJPcldvcmtsZXRUaHJl
YWQpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAg
ICAgICAgICAgd2Vha1RoaXMtPnVwZGF0ZUFjdGl2aXR5KGhhc0FjdGl2aXR5KTsKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg
IHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbd2Vha1RoaXMgPSBXVEZN
b3ZlKHdlYWtUaGlzKSwgaGFzQWN0aXZpdHldKGF1dG8mKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
ICAgICB3b3JrZXJPcldvcmtsZXRUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW3dl
YWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGhhc0FjdGl2aXR5XShhdXRvJikgbXV0YWJsZSB7
CiAgICAgICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAg
ICAgIHdlYWtUaGlzLT51cGRhdGVBY3Rpdml0eShoYXNBY3Rpdml0eSk7CiAgICAgICAgICAgICAg
ICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTRiYjQ1Njc4N2Qy
OGQ2YzE4YmJkYWU2YWMzOWNjNTc0OWQ5ZjgwMC4uMjM2ODM3ODcxNzE3Y2U5ZGMzYTI4YzkzNDY5
MGVkYzZjYjkwYmE4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTEwLTA5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIEF1ZGlvV29ya2xldFByb2Nl
c3NvciB0byBwcm9jZXNzIGF1ZGlvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTc1MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVbnNraXAgYWxsIEF1ZGlvV29ya2xldCB0ZXN0cyBub3cgdGhhdCB0aGV5
IGFyZSBubyBsb25nZXIgdGltaW5nIG91dC4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6
CisKIDIwMjAtMTAtMDkgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFttYWNPU10gQWRkIGVkaXRhYmlsaXR5IHRvIGlucHV0IHR5cGU9bW9udGgKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDZkYzk0MzlkNjZlMWNhN2Q5ODg2MmFmNzhmNzhl
OTJkMDgxNDBmYzkuLjUyZDJhNTg1OTM4OTVhMGRhNTgwMzA0NDFkZGMwOGFkYTYxNzU3YTcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTEwLTA5
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIEF1ZGlvV29y
a2xldFByb2Nlc3NvciB0byBwcm9jZXNzIGF1ZGlvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0cyBub3cgdGhhdCBtb3Jl
IGNoZWNrcyBhcmUgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJh
dWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtaW50ZXJmYWNlL2Fj
dGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFj
ZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWRpc2Nvbm5lY3RlZC1pbnB1dC5o
dHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9k
ZS1vbmVycm9yLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRp
b3dvcmtsZXRub2RlLW91dHB1dC1jaGFubmVsLWNvdW50Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy1mcm96ZW4t
YXJyYXkuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29y
a2xldHByb2Nlc3Nvci1wcm9jZXNzLXplcm8tb3V0cHV0cy5odHRwcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1
ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb21pc2VzLmh0dHBz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzLWdldHRlci5odHRw
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzc29yLWNvbnN0cnVj
dGlvbi1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9zaW1w
bGUtaW5wdXQtb3V0cHV0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50
ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY29udm9sdmVybm9k
ZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVs
ZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL2NvcnMtY2hlY2suaHR0cHMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL25vLWNvcnMuaHR0cHMt
ZXhwZWN0ZWQudHh0OgorCiAyMDIwLTEwLTA5ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIENTUyB0cmFuc2Zvcm0gY29tcHV0ZWQgc3R5bGUgc2hvdWxkIG5v
dCByZWZsZWN0IGluZGl2aWR1YWwgdHJhbnNmb3JtIHByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDgxMWMyOThmNTNmZmQyY2M0OTBkMGNkNDQ5MTU2ZGJiZDc4NTBiMTcuLmE4OTFhNjZj
YTQyNjE2NjU1ZTk2ZGZkOTgwY2U5NzEwY2I5YTlkZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MzIwLDE5ICszMjAsMTQgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dl
YmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50LWxvb3BzL2Z1bGx5X2FjdGkKICMgU2tpcCBXUFQgd2Vi
YXVkaW8gdGVzdHMgdGhhdCBhcmUgdGltaW5nIG91dC4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFzdHJlYW1hdWRpb3NvdXJj
ZW5vZGUtaW50ZXJmYWNlL21lZGlhc3RyZWFtYXVkaW9zb3VyY2Vub2RlLXJvdXRpbmcuaHRtbCBb
IFNraXAgXQogCi0jIFRoZXNlIHdlYmF1ZGlvIHRlc3RzIGFyZSB0aW1pbmcgb3V0IGR1ZSB0byBs
YWNrIGZvciBzdXBwb3J0IGZvciBBdWRpb1dvcmtsZXQuCisjIFRoaXMgdGVzdCBpcyB0aW1pbmcg
b3V0IGR1ZSB0byBsYWNrIG9mIHN1cHBvcnQgZm9yIFNoYXJlZEFycmF5QnVmZmVyLgogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldC1wb3N0bWVzc2FnZS1zaGFyZWRhcnJheWJ1
ZmZlci5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93
b3JrbGV0bm9kZS1hdXRvbWF0aWMtcHVsbC5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29y
a2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vbmVycm9yLmh0dHBzLmh0bWwgWyBTa2lw
IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFw
aS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW91dHB1dC1jaGFu
bmVsLWNvdW50Lmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9h
dWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy1mcm96ZW4tYXJyYXkuaHR0cHMuaHRtbCBbIFNr
aXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9j
ZXNzLXplcm8tb3V0cHV0cy5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRl
cmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb21pc2VzLmh0dHBzLmh0bWwgWyBTa2lwIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzLWdldHRlci5odHRwcy5odG1sIFsgU2tp
cCBdCisKKyMgVGhpcyB0ZXN0IGlzIHRpbWluZyBvdXQgYmVjYXVzZSBpdCBjYWxscyBzdXNwZW5k
KCkgdGhlbiByZXN1bWUoKSBvbmUgd2l0aG91dCB5aWVsZGluZy4gc3VzcGVuZCgpIHNldHMgc3Rh
dGUgdG8gc3VzcGVuZGVkIGFzeW5jaHJvbm91c2x5CisjIHNvIHJlc3VtZSgpIGRvZXMgbm90IGtu
b3cgdGhlcmUgaXMgYSBwZW5kaW5nIHN1c3BlbmQoKSBhbmQgcmV0dXJucyBlYXJseS4KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzLXBhcmFtZXRlcnMuaHR0cHMuaHRtbCBbIFNraXAg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1jaGFubmVsbWVyZ2Vybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMu
aHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2lu
Zy5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRl
cmZhY2UvY29ycy1jaGVjay5odHRwcy5odG1sIFsgU2tpcCBdCisKKyMgVGhpcyBXZWJBdWRpbyB0
ZXN0IGlzIHRpbWluZyBvdXQsIHBvdGVudGlhbGx5IGR1ZSB0byBhbiBBdWRpb1dvcmtsZXQgYnVn
LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL25vLWNvcnMuaHR0cHMu
aHRtbCBbIFNraXAgXQogCiAjIFRoaXMgd2ViYXVkaW8gdGVzdCBoYXMgYmVlbiB0aW1pbmcgb3V0
IHNpbmNlIGl0cyBpbXBvcnQgZnJvbSBCbGluay4KQEAgLTM0MSw2ICszMzYsNyBAQCB3ZWJhdWRp
by9NZWRpYVN0cmVhbUF1ZGlvU291cmNlL21lZGlhc3RyZWFtYXVkaW9zb3VyY2Vub2RlLmh0bWwg
WyBTa2lwIF0KICMgV2ViYXVkaW8gdGVzdHMgdGhhdCBhcmUgZmxha3kuCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvcGFyYW0t
aW50ZXJmYWNlL2stcmF0ZS1zdGVyZW8tcGFubmVyLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
bmFseXNlcm5vZGUtaW50ZXJmYWNlL3Rlc3QtYW5hbHlzZXItb3V0cHV0Lmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVk
aW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL2NvcnMtY2hl
Y2suaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKICMgVGhpcyB0ZXN0IGlzIHBhc3Npbmcg
YnV0IHRoZSBwcmludGVkIFNOUiB2YWx1ZSBkaWZmZXJzIGZyb20gbWFjaGluZSB0byBtYWNoaW5l
LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtaW50ZXJmYWNlL3N1Yi1zYW1wbGUtYnVmZmVyLXN0
aXRjaGluZy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KQEAgLTM0OCw3ICszNDQsNiBAQCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
YnVmZmVyc291cmNlbm9kZQogIyBWYWx1ZXMgaW4gRkFJTCBsaW5lcyBkaWZmZXIgZnJvbSBtYWNo
aW5lIHRvIG1hY2hpbmUsIHdlIHNob3VsZCBiZSBhYmxlIHRvIHVuc2tpcCB0aGVtIG9uY2UgdGhl
eSBwYXNzLgogd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2UvYXVkaW9idWZmZXJzb3VyY2UtZGV0
dW5lLW1vZHVsYXRpb24uaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJhdWRpby9BdWRpb0J1ZmZl
clNvdXJjZS9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUtbW9kdWxhdGlvbi5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9zaW1wbGUtaW5wdXQtb3V0
cHV0Lmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTc2OTI5IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeS1zdGF0ZXMvYXV0b3BsYXktd2l0aC1zbG93LXRleHQt
dHJhY2tzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWF1ZGlvYnVmZmVyc291cmNlbm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtaW50ZXJm
YWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBlYzcwZTA5Mzk0
NDkwZjkxMjZiYjViNjAxNDM2MTlkYWFkN2ZkNGE4Li4zNTFlZGY5MmFjN2QyYTc2NWMwMGI4YzAw
Njc2YzM5ZDU0YzUwNTIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVyc291
cmNlbm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9idWZmZXJzb3VyY2Vub2RlLWludGVyZmFjZS9hY3RpdmUt
cHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTksMTMgKzksMTMgQEAgUEFTUyA8IFtT
ZXR1cCBncmFwaF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKQog
UEFTUyA+IFt2ZXJpZnkgY291bnQgY2hhbmdlXQogRkFJTCBYIE51bWJlciBvZiBjaGFubmVscyBj
aGFuZ2VkIGlzIG5vdCB0cnVlLiBHb3QgZmFsc2UuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQogUEFTUyAgIEluZGV4IHdoZXJlIGlucHV0IGNoYW5uZWwgY291bnQgY2hhbmdl
ZCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMTI4MC4KLUZBSUwgWCBOdW1iZXIgb2YgY2hhbm5l
bHMgaW4gaW5wdXRbMDotMl06IEV4cGVjdGVkIDcgZm9yIGFsbCB2YWx1ZXMgYnV0IGZvdW5kIDEy
NzkgdW5leHBlY3RlZCB2YWx1ZXM6CitGQUlMIFggTnVtYmVyIG9mIGNoYW5uZWxzIGluIGlucHV0
WzA6LTJdOiBFeHBlY3RlZCA3IGZvciBhbGwgdmFsdWVzIGJ1dCBmb3VuZCAxMDIzIHVuZXhwZWN0
ZWQgdmFsdWVzOgogCUluZGV4CUFjdHVhbAotCVswXQkwCi0JWzFdCTAKLQlbMl0JMAotCVszXQkw
Ci0JLi4uYW5kIDEyNzUgbW9yZSBlcnJvcnMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorCVsyNTZdCTAKKwlbMjU3XQkwCisJWzI1OF0JMAorCVsyNTldCTAKKwkuLi5hbmQg
MTAxOSBtb3JlIGVycm9ycy4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBG
QUlMIFggTnVtYmVyIG9mIGNoYW5uZWxzIGluIGlucHV0Wy0xOl06IEV4cGVjdGVkIDEgZm9yIGFs
bCB2YWx1ZXMgYnV0IGZvdW5kIDEgdW5leHBlY3RlZCB2YWx1ZXM6CiAJSW5kZXgJQWN0dWFsCiAJ
WzBdCTAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1h
dWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1hdXRv
bWF0aWMtcHVsbC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xl
dC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1hdXRvbWF0aWMtcHVsbC5odHRwcy1leHBlY3Rl
ZC50eHQKaW5kZXggMzE4NjJkZjFhNGE3YjZhZDJhNmM2ZDYzNzI2OTI0NDUxMjE2NTVjYi4uMzU5
NTVjZGIzMmZlZjg0MTc3YmZmY2YxZTU4MWY4YmE2YjE0MDgyNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtYXV0b21hdGlj
LXB1bGwuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMSw4ICsxLDEwIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdl
ID0gbnVsbAotCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KLVRJTUVPVVQgRXhl
Y3V0aW5nICJzZXR1cC13b3JrbGV0IiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIEF1ZGl0IHJlcG9y
dAorUEFTUyBFeGVjdXRpbmcgInNldHVwLXdvcmtsZXQiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFT
UyA+IFtzZXR1cC13b3JrbGV0XQorUEFTUyAgIFRoZSBmaXJzdCBoYWxmIG9mIHRoZSBjYXB0dXJl
ZCBidWZmZXIgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41LgorUEFTUyAgIFRoZSBzZWNv
bmQgaGFsZiBvZiB0aGUgY2FwdHVyZWQgYnVmZmVyIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50
IDAuCitQQVNTIDwgW3NldHVwLXdvcmtsZXRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDIgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNr
cyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29y
a2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1kaXNjb25uZWN0ZWQtaW5wdXQuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlv
d29ya2xldG5vZGUtZGlzY29ubmVjdGVkLWlucHV0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAy
YTg2NjY3YTE4M2YxMDQzOWZiMDJjZTc0ZGY2NTkwNWYzZWNlNjI1Li43ZmNiOGNlZDg4MzVkYTZh
ZjQ1YmI4MWE4YWMyYjJkZDM2OTI3YjQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
d29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1kaXNjb25uZWN0ZWQtaW5wdXQuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFj
ZS9hdWRpb3dvcmtsZXRub2RlLWRpc2Nvbm5lY3RlZC1pbnB1dC5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTQsOSArNCw5IEBAIFBBU1MgRXhlY3V0aW5nICJ0ZXN0IgogUEFTUyBBdWRpdCByZXBvcnQK
IFBBU1MgPiBbdGVzdF0gSW5wdXQgYXJyYXkgbGVuZ3RoIHNob3VsZCBiZSB6ZXJvIGZvciBkaXNj
b25uZWN0ZWQgaW5wdXQKIFBBU1MgICBCZWZvcmUgY29ubmVjdGluZyB0aGUgc291cmNlOiBJbnB1
dCBhcnJheSBsZW5ndGggY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KLUZBSUwgWCBGaXJz
dCBub24temVybyBvdXRwdXQgaXMgbm90IGVxdWFsIHRvIDEyOC4gR290IC0xLiBhc3NlcnRfdHJ1
ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBGaXJzdCBub24temVybyBvdXRwdXQg
aXMgZXF1YWwgdG8gMTI4LgogUEFTUyAgIFdoaWxlIHNvdXJjZSBpcyBjb25uZWN0ZWQ6IElucHV0
IGFycmF5IGxlbmd0aCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAxMjguCiBQQVNTICAgQWZ0
ZXIgZGlzY29ubmVjdGluZyB0aGUgc291cmNlOiBJbnB1dCBhcnJheSBsZW5ndGggY29udGFpbnMg
b25seSB0aGUgY29uc3RhbnQgMC4KLUZBSUwgPCBbdGVzdF0gMSBvdXQgb2YgNCBhc3NlcnRpb25z
IHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
IyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSBvdXQgb2YgMSB0YXNrcyB3ZXJlIGZhaWxl
ZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIDwgW3Rlc3RdIEFs
bCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBU
QVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9k
ZS1vbmVycm9yLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGMyNmFhMTMzNDY1MzhjMWIyNTRhMDNkMTlmNGVjMGEzY2NhZTVhZDIuLjk2NzEyMTM4OTc0
OWZkMGFhZjI2N2ZlYmU0ZGIyODllNjEyYTRkZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
YXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRp
b3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsMTYgQEAK
IAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJ
VCBUQVNLIFJVTk5FUiBTVEFSVEVELgotVElNRU9VVCBFeGVjdXRpbmcgImNvbnN0cnVjdG9yLWVy
cm9yIiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIEV4ZWN1dGluZyAicHJvY2Vzcy1lcnJvciIKLU5P
VFJVTiBBdWRpdCByZXBvcnQKK1BBU1MgRXhlY3V0aW5nICJjb25zdHJ1Y3Rvci1lcnJvciIKK1BB
U1MgRXhlY3V0aW5nICJwcm9jZXNzLWVycm9yIgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBb
Y29uc3RydWN0b3ItZXJyb3JdCitQQVNTICAgb25wcm9jZXNzb3JlcnJvciBhcmd1bWVudCBzaG91
bGQgYmUgYW4gRXJyb3JFdmVudCB3aGVuCisgICAgICAgICAgICAgICAgdGhlIGNvbnN0cnVjdG9y
IG9mIEF1ZGlvV29ya2xldFByb2Nlc3NvciBoYXMgYW4gZXJyb3IuIGlzIHRydWUuCitQQVNTIDwg
W2NvbnN0cnVjdG9yLWVycm9yXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2Vy
dGlvbnMpCitQQVNTID4gW3Byb2Nlc3MtZXJyb3JdCitQQVNTICAgb25wcm9jZXNzb3JlcnJvciBh
cmd1bWVudCBzaG91bGQgYmUgYW4gRXJyb3JFdmVudCB3aGVuCisgICAgICAgICAgICAgICAgdGhl
IHByb2Nlc3MgbWV0aG9kIG9mIHRoZSBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgbWV0aG9kCisgICAg
ICAgICAgICAgICAgaGFzIGFuIGVycm9yLiBpcyB0cnVlLgorUEFTUyA8IFtwcm9jZXNzLWVycm9y
XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCitQQVNTICMgQVVE
SVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDIgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJh
dWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xl
dG5vZGUtb3V0cHV0LWNoYW5uZWwtY291bnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb3V0cHV0LWNoYW5u
ZWwtY291bnQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDM4N2E3ODRkMDQ3MTk4ZmE3YzdmYjM1
Y2E5ZjNmMTJkNDIyYTA5MGYuLjFmZDMwYzdhOGQ0NjJkMTdiM2NhZjkwMDg5OWRkOWZkMTE2NDdm
MmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRp
b3dvcmtsZXRub2RlLW91dHB1dC1jaGFubmVsLWNvdW50Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1v
dXRwdXQtY2hhbm5lbC1jb3VudC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOSArMSwxMyBAQAog
Ci1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyAjIEFVRElU
IFRBU0sgUlVOTkVSIFNUQVJURUQuCi1USU1FT1VUIEV4ZWN1dGluZyAiRHluYW1pY2FsbHkgY2hh
bmdlIHRoZSBjaGFubmVsIGNvdW50IHRvIGlmIHVuc3BlY2lmaWVkLiIgVGVzdCB0aW1lZCBvdXQK
LU5PVFJVTiBFeGVjdXRpbmcgIkdpdmllbiBvdXRwdXRDaGFubmVsQ291bnQgbXVzdCBiZSBob25v
cmVkLiIKLU5PVFJVTiBBdWRpdCByZXBvcnQKK1BBU1MgRXhlY3V0aW5nICJEeW5hbWljYWxseSBj
aGFuZ2UgdGhlIGNoYW5uZWwgY291bnQgdG8gaWYgdW5zcGVjaWZpZWQuIgorUEFTUyBFeGVjdXRp
bmcgIkdpdmllbiBvdXRwdXRDaGFubmVsQ291bnQgbXVzdCBiZSBob25vcmVkLiIKK1BBU1MgQXVk
aXQgcmVwb3J0CiBQQVNTID4gW0R5bmFtaWNhbGx5IGNoYW5nZSB0aGUgY2hhbm5lbCBjb3VudCB0
byBpZiB1bnNwZWNpZmllZC5dCitQQVNTICAgVGhlIGV4cGVjdGVkIG91dHB1dCBjaGFubmVsIGNv
dW50IGlzIGVxdWFsIHRvIDE3LgorUEFTUyA8IFtEeW5hbWljYWxseSBjaGFuZ2UgdGhlIGNoYW5u
ZWwgY291bnQgdG8gaWYgdW5zcGVjaWZpZWQuXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3Rh
bCAxIGFzc2VydGlvbnMpCitQQVNTID4gW0dpdmllbiBvdXRwdXRDaGFubmVsQ291bnQgbXVzdCBi
ZSBob25vcmVkLl0KK1BBU1MgICBUaGUgZXhwZWN0ZWQgb3V0cHV0IGNoYW5uZWwgY291bnQgaXMg
ZXF1YWwgdG8gMi4KK1BBU1MgPCBbR2l2aWVuIG91dHB1dENoYW5uZWxDb3VudCBtdXN0IGJlIGhv
bm9yZWQuXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCitQQVNT
ICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDIgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlv
d29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLWZyb3plbi1hcnJheS5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vz
c29yLXByb2Nlc3MtZnJvemVuLWFycmF5Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwZGYwNGQ3
NmUwZDllNmY1ZDQ0YjQ1MDIyMjdmMTk2ZmYwYjcwZTc3Li4zNGMwNjk5MGFmODFmYTA1Y2JlZjNi
ZTkzZDJlMWRkYTgyMmIwMjNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xl
dC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtZnJvemVuLWFycmF5Lmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZh
Y2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtZnJvemVuLWFycmF5Lmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMSw5ICsxLDE1IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNz
YWdlID0gbnVsbAotCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KLVRJTUVPVVQg
RXhlY3V0aW5nICJjaGVjay1mcm96ZW4tYXJyYXkiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gRXhl
Y3V0aW5nICJ0cmFuc2Zlci1mcm96ZW4tYXJyYXkiCi1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNT
IEV4ZWN1dGluZyAiY2hlY2stZnJvemVuLWFycmF5IgorUEFTUyBFeGVjdXRpbmcgInRyYW5zZmVy
LWZyb3plbi1hcnJheSIKK1BBU1MgQXVkaXQgcmVwb3J0CiBQQVNTID4gW2NoZWNrLWZyb3plbi1h
cnJheV0KK1BBU1MgICB8aW5wdXRzfCBpcyBmcm96ZW4gaXMgdHJ1ZS4KK1BBU1MgICB8b3V0cHV0
c3wgaXMgZnJvemVuIGlzIHRydWUuCitQQVNTIDwgW2NoZWNrLWZyb3plbi1hcnJheV0gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQorUEFTUyA+IFt0cmFuc2Zlci1m
cm96ZW4tYXJyYXldCitQQVNTICAgVHJhbnNmZXJyaW5nIGlucHV0cy9vdXRwdXRzLCBhbiBpbmRp
dmlkdWFsIGlucHV0L291dHB1dCBhcnJheSwgb3IgYSBjaGFubmVsIEZsb2F0MzJBcnJheSBpcyBu
b3QgYWxsb3dlZCBhcyBleHBlY3RlZC4gaXMgdHJ1ZS4KK1BBU1MgICBUcmFuc2ZlcnJpbmcgQXJy
YXlCdWZmZXJzIHdhcyBzdWNjZXNzZnVsIGFzIGV4cGVjdGVkLiBpcyB0cnVlLgorUEFTUyA8IFt0
cmFuc2Zlci1mcm96ZW4tYXJyYXldIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNz
ZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4g
c3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1p
bnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtemVyby1vdXRwdXRzLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRp
b3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy16ZXJvLW91dHB1dHMuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IDNjN2YwMDM2YzM4MTE1NWVkMjhlMDEyOWUxYzdmOGMwMTViZmYyYmYuLjgyY2RmYmQ2
YzNiMzAxYmRjOGVjZDNjN2IxODFhYzNlOTQ3NDc1MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy16
ZXJvLW91dHB1dHMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93
b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy16ZXJvLW91dHB1
dHMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOSBAQAogCi1IYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJU
RUQuCi1USU1FT1VUIEV4ZWN1dGluZyAiY2hlY2stemVyby1vdXRwdXRzIiBUZXN0IHRpbWVkIG91
dAotTk9UUlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgImNoZWNrLXplcm8tb3V0cHV0
cyIKK1BBU1MgQXVkaXQgcmVwb3J0CiBQQVNTID4gW2NoZWNrLXplcm8tb3V0cHV0c10KK1BBU1Mg
ICB8b3V0cHV0c3wgaGFzIGJlZW4gYWxsIHplcm9zIGZvciAxIHNlY29uZHMgYXMgZXhwZWN0ZWQu
IGlzIHRydWUuCitQQVNTIDwgW2NoZWNrLXplcm8tb3V0cHV0c10gQWxsIGFzc2VydGlvbnMgcGFz
c2VkLiAodG90YWwgMSBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklT
SEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvbWlzZXMu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNl
L2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9taXNlcy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
MzY1NDFiZmE5NmRmZTE4ZGZiNWY0M2IyY2YwY2I5MzRmZDBlYTc0Yi4uMWRhMTcxYzY4Yzk1N2E2
MTM3ZjE0OWFhYzE4NGZkZDFiOTQ0ZWYzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9taXNlcy5odHRwcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1
ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9taXNlcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSAr
MSw0IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1F
T1VUIHRlc3QgVGVzdCB0aW1lZCBvdXQKK0ZBSUwgdGVzdCBhc3NlcnRfdHJ1ZTogTWljcm90YXNr
IGNoZWNrcG9pbnRzIGFyZSBwZXJmb3JtZWQKKyAgICAgICAgICAgICAgICAgICAgICAgaW4gYmV0
d2VlbiByZW5kZXIgcXVhbnR1bSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzcy1nZXR0ZXIuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3By
b2Nlc3MtZ2V0dGVyLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA2YTdjNmRlMzI1M2JmZDBmZWVl
ODAyYjk3NWQ3YWJkYmU1YTdiM2NmLi5hOTY0YTNiNDc1NjQ0MzI1ZmFlZGVmMWUwMzdlODQxMWJl
MDE3YzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uv
cHJvY2Vzcy1nZXR0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzLWdldHRlci5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTEsNiArMSw0IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAot
Ci1USU1FT1VUICdwcm9jZXNzJyBnZXR0ZXIgb24gcHJvdG90eXBlIFRlc3QgdGltZWQgb3V0Ci1O
T1RSVU4gJ3Byb2Nlc3MnIGdldHRlciBvbiBpbnN0YW5jZQorUEFTUyAncHJvY2VzcycgZ2V0dGVy
IG9uIHByb3RvdHlwZQorUEFTUyAncHJvY2VzcycgZ2V0dGVyIG9uIGluc3RhbmNlCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzb3ItY29u
c3RydWN0aW9uLXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dv
cmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3Nvci1jb25zdHJ1Y3Rpb24tcG9ydC5odHRwcy1leHBlY3Rl
ZC50eHQKaW5kZXggZjYwZWM4YzIwNDQ0MGZlMGUwYWIwYTQ4NzY1M2Q1ZDkxNTVkZGMxNi4uNjA4
ZGEwOTFhODFkOGFlMjk5NjdjZTA1NmVhNzkxYTdmNDk5NjM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3Nvci1jb25zdHJ1Y3Rpb24tcG9y
dC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50
ZXJmYWNlL3Byb2Nlc3Nvci1jb25zdHJ1Y3Rpb24tcG9ydC5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTEsOCArMSw2IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAot
CiBQQVNTIHN1cGVyKCkgYWZ0ZXIgbmV3IEF1ZGlvV29ya2xldFByb2Nlc3NvcigpCiBQQVNTIG5l
dyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IoKSBhZnRlciBzdXBlcigpCiBQQVNTIG5ldyBBdWRpb1dv
cmtsZXRQcm9jZXNzb3IoKSBhZnRlciBuZXcgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yKCkKLVRJTUVP
VVQgU2luZ2xldG9uIEF1ZGlvV29ya2xldFByb2Nlc3NvciBUZXN0IHRpbWVkIG91dAorUEFTUyBT
aW5nbGV0b24gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9zaW1wbGUtaW5wdXQtb3V0cHV0Lmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9zaW1wbGUtaW5w
dXQtb3V0cHV0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBiMGRhYzJkNzJkZjJkYjIyZWQ5YWQ5
Mzg3NmU0MjgwY2Q2MmUxYmJlLi40NzUzN2I2N2VkNTlkMzc5ZTY2MGFlNzk3M2JhZGE4M2U4ZTk0
ZGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uvc2lt
cGxlLWlucHV0LW91dHB1dC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb3dvcmtsZXQtaW50ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC03LDI1ICs3LDggQEAgUEFTUyA+IFtJbml0aWFsaXplIHdvcmtsZXRdCiBQQVNTICAg
Q3JlYXRpb24gb2YgQXVkaW9Xb3JrbGV0IHJlc29sdmVkIGNvcnJlY3RseS4KIFBBU1MgPCBbSW5p
dGlhbGl6ZSB3b3JrbGV0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlv
bnMpCiBQQVNTID4gW3Rlc3RdIFNpbXBsZSBBdWRpb1dvcmtsZXQgSS9PCi1GQUlMIFggQXVkaW9X
b3JrbGV0IG91dHB1dFswOjEyN10gZG9lcyBub3QgZXF1YWwgWzEsMS4wNTc1NjQwMjAxNTY4NjA0
LDEuMTE0OTM3MTg2MjQxMTUsMS4xNzE5MjkxMjEwMTc0NTYsMS4yMjgzNTA4Nzc3NjE4NDA4LDEu
Mjg0MDE1MTc4NjgwNDIsMS4zMzg3Mzc4NDU0MjA4Mzc0LDEuMzkyMzM2OTY0NjA3MjM4OCwxLjQ0
NDYzNTAzMzYwNzQ4MywxLjQ5NTQ1ODYwMjkwNTI3MzQsMS41NDQ2Mzg3NTI5MzczMTcsMS41OTIw
MTMxMjA2NTEyNDUxLDEuNjM3NDIzNzUzNzM4NDAzMywxLjY4MDcyMDgwNjEyMTgyNjIsMS43MjE3
NjAwMzQ1NjExNTcyLDEuNzYwNDA1ODk4MDk0MTc3Mi4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2Ug
dG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjow
fS4KLQlJbmRleAlBY3R1YWwJCQlFeHBlY3RlZAkJQWJzRXJyb3IJCVJlbEVycm9yCQlUZXN0IHRo
cmVzaG9sZAotCVswXQkwLjAwMDAwMDAwMDAwMDAwMDBlKzAJMS4wMDAwMDAwMDAwMDAwMDAwZSsw
CTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJMC4wMDAwMDAwMDAw
MDAwMDAwZSswCi0JWzFdCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjA1NzU2NDAyMDE1Njg2MDRl
KzAJMS4wNTc1NjQwMjAxNTY4NjA0ZSswCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkwLjAwMDAwMDAw
MDAwMDAwMDBlKzAKLQlbMl0JMC4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMTE0OTM3MTg2MjQxMTQ5
OWUrMAkxLjExNDkzNzE4NjI0MTE0OTllKzAJMS4wMDAwMDAwMDAwMDAwMDAwZSswCTAuMDAwMDAw
MDAwMDAwMDAwMGUrMAotCVszXQkwLjAwMDAwMDAwMDAwMDAwMDBlKzAJMS4xNzE5MjkxMjEwMTc0
NTYxZSswCTEuMTcxOTI5MTIxMDE3NDU2MWUrMAkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJMC4wMDAw
MDAwMDAwMDAwMDAwZSswCi0JWzRdCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjIyODM1MDg3Nzc2
MTg0MDhlKzAJMS4yMjgzNTA4Nzc3NjE4NDA4ZSswCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkwLjAw
MDAwMDAwMDAwMDAwMDBlKzAKLQkuLi5hbmQgMTIzIG1vcmUgZXJyb3JzLgotCU1heCBBYnNFcnJv
ciBvZiAxLjk5OTg3NjQ5OTE3NjAyNTRlKzAgYXQgaW5kZXggb2YgMjcuCi0JWzI3XQkwLjAwMDAw
MDAwMDAwMDAwMDBlKzAJMS45OTk4NzY0OTkxNzYwMjU0ZSswCTEuOTk5ODc2NDk5MTc2MDI1NGUr
MAkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJMC4wMDAwMDAwMDAwMDAwMDAwZSswCi0JTWF4IFJlbEVy
cm9yIG9mIDEuMDAwMDAwMDAwMDAwMDAwMGUrMCBhdCBpbmRleCBvZiAwLgotIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIEF1ZGlvV29ya2xldCBvdXRwdXRbMTI4
Ol06IEV4cGVjdGVkIDEgZm9yIGFsbCB2YWx1ZXMgYnV0IGZvdW5kIDQ3ODcyIHVuZXhwZWN0ZWQg
dmFsdWVzOgotCUluZGV4CUFjdHVhbAotCVswXQkwCi0JWzFdCTAKLQlbMl0JMAotCVszXQkwCi0J
Li4uYW5kIDQ3ODY4IG1vcmUgZXJyb3JzLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKLUZBSUwgPCBbdGVzdF0gMiBvdXQgb2YgMiBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgIyBBVURJVCBUQVNLIFJV
Tk5FUiBGSU5JU0hFRDogMSBvdXQgb2YgMiB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgQXVkaW9Xb3JrbGV0IG91dHB1dFswOjEy
N10gZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNl
IG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4KK1BBU1Mg
ICBBdWRpb1dvcmtsZXQgb3V0cHV0WzEyODpdIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDEu
CitQQVNTIDwgW3Rlc3RdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9u
cykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3VjY2Vz
c2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNoYW5uZWxtZXJnZXJub2RlLWlu
dGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLWNoYW5uZWxtZXJnZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggMWE1ZTU4OTQyNzAyYjZmZmM0Zjc2NjJjM2Q4MmYzNmRkZjZmMTcy
ZC4uMTYzYWM1YmY1OGFhMmI1Nzk0MmY2NGFmMWE4ZmJlOGM3MjZjZDNlYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1jaGFubmVsbWVyZ2Vybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3Np
bmcuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5v
ZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwx
MiArMSwxNSBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQog
UEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuCiBQQVNTIEV4ZWN1dGluZyAiaW5pdGlh
bGl6ZSIKLVRJTUVPVVQgRXhlY3V0aW5nICJ0ZXN0IiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIEF1
ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgInRlc3QiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFT
UyA+IFtpbml0aWFsaXplXQogUEFTUyAgIEF1ZGlvV29ya2xldCBtb2R1bGUgbG9hZGluZyByZXNv
bHZlZCBjb3JyZWN0bHkuCiBQQVNTIDwgW2luaXRpYWxpemVdIEFsbCBhc3NlcnRpb25zIHBhc3Nl
ZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKIFBBU1MgPiBbdGVzdF0KK1BBU1MgICBUZXN0IDA6IE51
bWJlciBvZiBjb252b2x2ZXIgb3V0cHV0IGNoYW5uZWxzIGlzIGVxdWFsIHRvIDcuCitGQUlMIFgg
VGVzdCAxOiBOdW1iZXIgb2YgY29udm9sdmVyIG91dHB1dCBjaGFubmVscyBpcyBub3QgZXF1YWwg
dG8gMS4gR290IDAuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAg
IE51bWJlciBvZiBkaXN0aW5jdCB2YWx1ZXMgaXMgZXF1YWwgdG8gMi4KK0ZBSUwgPCBbdGVzdF0g
MSBvdXQgb2YgMyBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSBvdXQg
b2YgMiB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY29udm9sdmVybm9kZS1pbnRlcmZhY2Uv
YWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jb252
b2x2ZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggMWE1ZTU4OTQyNzAyYjZmZmM0Zjc2NjJjM2Q4MmYzNmRkZjZmMTcyZC4uYjIxZTdjYWMy
YzA2NjUwZjdjMmUxMzU5ZWZkMzViMWUyMmJmZDc0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9hY3RpdmUt
cHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMTQgQEAKIAotSGFybmVz
cyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJV
Tk5FUiBTVEFSVEVELgogUEFTUyBFeGVjdXRpbmcgImluaXRpYWxpemUiCi1USU1FT1VUIEV4ZWN1
dGluZyAidGVzdCIgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBBdWRpdCByZXBvcnQKK1BBU1MgRXhl
Y3V0aW5nICJ0ZXN0IgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbaW5pdGlhbGl6ZV0KIFBB
U1MgICBBdWRpb1dvcmtsZXQgbW9kdWxlIGxvYWRpbmcgcmVzb2x2ZWQgY29ycmVjdGx5LgogUEFT
UyA8IFtpbml0aWFsaXplXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlv
bnMpCiBQQVNTID4gW3Rlc3RdCitQQVNTICAgVGVzdCAwOiBOdW1iZXIgb2YgY29udm9sdmVyIG91
dHB1dCBjaGFubmVscyBpcyBlcXVhbCB0byAyLgorRkFJTCBYIE51bWJlciBvZiBkaXN0aW5jdCB2
YWx1ZXMgaXMgbm90IGVxdWFsIHRvIDIuIEdvdCAxLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKK0ZBSUwgPCBbdGVzdF0gMSBvdXQgb2YgMiBhc3NlcnRpb25zIHdlcmUgZmFp
bGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgIyBBVURJVCBU
QVNLIFJVTk5FUiBGSU5JU0hFRDogMSBvdXQgb2YgMiB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9jb3JzLWNoZWNrLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2Rl
LWludGVyZmFjZS9jb3JzLWNoZWNrLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmZTJkNzlkZjE2
MDhkZmY0YzM5OWE3YjMwZDM0MjRmM2EzYjBjOGE2Li4zYTQ5MmVlYWFmNWEzNzI3NzRkNTE5M2M3
YmU4ODllNzIwZDMwOTlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1
ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvY29ycy1jaGVjay5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL2Nv
cnMtY2hlY2suaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDE1IEBACiAKLUhhcm5lc3Mg
RXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTICMgQVVESVQgVEFTSyBSVU5O
RVIgU1RBUlRFRC4KIFBBU1MgRXhlY3V0aW5nICJzZXR0aW5nLXVwLWdyYXBoIgotVElNRU9VVCBF
eGVjdXRpbmcgInN0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlIiBUZXN0IHRpbWVkIG91dAotTk9U
UlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgInN0YXJ0LXBsYXliYWNrLWFuZC1jYXB0
dXJlIgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbc2V0dGluZy11cC1ncmFwaF0KIFBBU1Mg
PCBbc2V0dGluZy11cC1ncmFwaF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMCBhc3Nl
cnRpb25zKQogUEFTUyA+IFtzdGFydC1wbGF5YmFjay1hbmQtY2FwdHVyZV0KK1BBU1MgICBSZWNv
cmRlZCBjaGFubmVsICMwIGlzIG5vdCBjb25zdGFudGx5IDAgKGNvbnRhaW5zIDMzMDg4IGRpZmZl
cmVudCB2YWx1ZXMpLgorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzEgaXMgbm90IGNvbnN0YW50
bHkgMCAoY29udGFpbnMgMzMwOTAgZGlmZmVyZW50IHZhbHVlcykuCitQQVNTICAgUmVjb3JkZWQg
Y2hhbm5lbCAjMiBpcyBub3QgY29uc3RhbnRseSAwIChjb250YWlucyAzMzA4OSBkaWZmZXJlbnQg
dmFsdWVzKS4KK1BBU1MgICBSZWNvcmRlZCBjaGFubmVsICMzIGlzIG5vdCBjb25zdGFudGx5IDAg
KGNvbnRhaW5zIDMzMDkwIGRpZmZlcmVudCB2YWx1ZXMpLgorUEFTUyA8IFtzdGFydC1wbGF5YmFj
ay1hbmQtY2FwdHVyZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25z
KQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNz
ZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3Vy
Y2Vub2RlLWludGVyZmFjZS9uby1jb3JzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9uby1jb3JzLmh0dHBzLWV4
cGVjdGVkLnR4dAppbmRleCBmZTJkNzlkZjE2MDhkZmY0YzM5OWE3YjMwZDM0MjRmM2EzYjBjOGE2
Li40ZDEzOWQ5ZWRlNzAxNjBhYTM4MmIyYzAyNTNkNjZlNmJmNzg1M2YyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1h
dWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2Uvbm8tY29y
cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRp
b3NvdXJjZW5vZGUtaW50ZXJmYWNlL25vLWNvcnMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDEx
ICsxLDE1IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQ
QVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KIFBBU1MgRXhlY3V0aW5nICJzZXR0aW5n
LXVwLWdyYXBoIgotVElNRU9VVCBFeGVjdXRpbmcgInN0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJl
IiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgInN0
YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlIgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbc2V0
dGluZy11cC1ncmFwaF0KIFBBU1MgPCBbc2V0dGluZy11cC1ncmFwaF0gQWxsIGFzc2VydGlvbnMg
cGFzc2VkLiAodG90YWwgMCBhc3NlcnRpb25zKQogUEFTUyA+IFtzdGFydC1wbGF5YmFjay1hbmQt
Y2FwdHVyZV0KK1BBU1MgICBSZWNvcmRlZCBjaGFubmVsICMwIGNvbnRhaW5zIG9ubHkgdGhlIGNv
bnN0YW50IDAuCitQQVNTICAgUmVjb3JkZWQgY2hhbm5lbCAjMSBjb250YWlucyBvbmx5IHRoZSBj
b25zdGFudCAwLgorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzIgY29udGFpbnMgb25seSB0aGUg
Y29uc3RhbnQgMC4KK1BBU1MgICBSZWNvcmRlZCBjaGFubmVsICMzIGNvbnRhaW5zIG9ubHkgdGhl
IGNvbnN0YW50IDAuCitQQVNTIDwgW3N0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlXSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQgVEFTSyBS
VU5ORVIgRklOSVNIRUQ6IDIgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIAo=
</data>
<flag name="commit-queue"
          id="427096"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410985</attachid>
            <date>2020-10-09 17:11:36 -0700</date>
            <delta_ts>2020-10-09 17:21:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217531-20201009171135.patch</filename>
            <type>text/plain</type>
            <size>63712</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiODVhZDY4MWE3ZWMx
YWNiM2E2OTkzMzJmOWY3NjU2NmNlMTk5MS4uNGMxMzRkNjU1OWQxMTIxZjRjZWU5ZjljZmMwY2Qw
ZGNjNzA0MWVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNyBAQAorMjAyMC0xMC0wOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IgdG8gcHJvY2VzcyBhdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIEF1ZGlvV29ya2xldFByb2Nlc3NvciB0byBwcm9jZXNzIGF1
ZGlvOgorICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlv
d29ya2xldHByb2Nlc3Nvci1wcm9jZXNzCisKKyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE5vZGUg
bG9naWMgaXMgYmFzZWQgb24gdGhlIEJsaW5rIGltcGxlbWVudGF0aW9uIGF0OgorICAgICAgICAt
IGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJvbWl1bS9jaHJvbWl1bS9ibG9iL21hc3Rlci90aGlyZF9w
YXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL3dlYmF1ZGlvL2F1ZGlvX3dvcmtsZXRfbm9kZS5j
YworCisgICAgICAgIFRoaXMgd2FzIHRoZSBsYXN0IHBpZWNlIG9mIGxvZ2ljIG5lZWRlZCB0byBt
YWtlIEF1ZGlvV29ya2xldCBmdW5jdGlvbmFsLgorICAgICAgICBJIGRpZCBub3QgZW5hYmxlIEF1
ZGlvV29ya2xldHMgYnkgZGVmYXVsdCBpbiB0aGlzIHBhdGNoIHRob3VnaCBiZWNhdXNlCisgICAg
ICAgIHRoZXJlIGFyZSBzdGlsbCBzb21lIHRlc3QgZmFpbHVyZXMgdGhhdCB3ZSBzaG91bGQgaW52
ZXN0aWdhdGUgZmlyc3QuCisgICAgICAgIE1vc3QgQXVkaW9Xb3JrbGV0IHRlc3RzIGFyZSBwYXNz
aW5nIHRob3VnaC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmg6CisgICAg
ICAgIFJldHVybiBhIGNvbnN0IHJlZmVyZW5jZSB0byBhdm9pZCByZWZjb3VudGluZyBjaHVybi4K
KworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNyZWF0ZVByb2Nl
c3Nvcik6CisgICAgICAgIEFmdGVyIHRoZSBKU0F1ZGlvV29ya2xldFByb2Nlc3Nvciwgd2UgY29u
c3RydWN0IGEgSlNDYWxsYmFja0RhdGEgZnJvbSB0aGUKKyAgICAgICAgSlNBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IgYW5kIHRoZSBnbG9iYWwgb2JqZWN0IGFuZCBjYWxsIGEgc2V0dGVyIG9uIHRoZQor
ICAgICAgICBBdWRpb1dvcmtsZXRQcm9jZXNzb3IuIFRoZSBwcm9jZXNzb3Igd2lsbCB1c2UgdGhp
cyB3aGVuIHByb2Nlc3MoKSBpcyBjYWxsZWQKKyAgICAgICAgdG8gZm9yd2FyZCB0aGUgY2FsbCB0
byBwcm9jZXNzKCkgaW4gSmF2YVNjcmlwdC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2Rl
OjpjcmVhdGUpOgorICAgICAgICAtIE1vdmUgdGhlIGxvZ2ljIGRlYWxpbmcgd2l0aCBBdWRpb1Bh
cmFtIG9iamVjdHMgdG8gaXRzIG93biBpbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJzKCkKKyAgICAg
ICAgZnVuY3Rpb24uCisgICAgICAgIC0gQ2FsbCBjb250ZXh0LnJlZk5vZGUobm9kZSkgc28gdGhh
dCB0aGUgbm9kZSBpcyBrZXB0IGFsaXZlIGJ5IHRoZSBhdWRpbyBjb250ZXh0CisgICAgICAgICAg
dW50aWwgcGxheWJhY2sgaXMgZmluaXNoZWQuIFRoZSBjYWxsIHRvIGNvbnRleHQoKS5ub3RpZnlO
b2RlRmluaXNoZWRQcm9jZXNzaW5nKHRoaXMpCisgICAgICAgICAgaW4gZGlkRmluaXNoUHJvY2Vz
c2luZ09uUmVuZGVyaW5nVGhyZWFkKCkgaXMgd2hhdCBub3RpZmllcyB0aGUgY29udGV4dCB0aGF0
IHdlIGZpbmlzaGVkCisgICAgICAgICAgcGxheWJhY2sgYW5kIGFsbG93cyB0aGUgbm9kZSB0byBn
ZXQgZGVzdHJveWVkLiBUaGlzIGlzIHNpbWlsYXIgdG8gd2hhdCBpcyBkb25lIGZvcgorICAgICAg
ICAgIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZXMuCisgICAgICAgIC0gQ2FsbCB1cGRhdGVQdWxs
U3RhdHVzKCkgc28gdGhhdCB0aGUgbm9kZSBnZXRzIGFkZGVkIHRvIHRoZSBhdXRvbWF0aWMgcHVs
bCBsaXN0IGlmIGl0CisgICAgICAgICAgZG9lcyBub3QgaGF2ZSBhbnkgb3V0cHV0cy4gT3RoZXJ3
aXNlLCB0aGUgbm9kZSB3b3VsZCBub3QgYmUgdXNlZCBmb3IgcmVuZGVyaW5nIGlmIGl0CisgICAg
ICAgICAgZGlkIG5vdCBoYXZlIGFueSBvdXRwdXRzLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
V29ya2xldE5vZGU6On5BdWRpb1dvcmtsZXROb2RlKToKKworICAgICAgICAoV2ViQ29yZTo6QXVk
aW9Xb3JrbGV0Tm9kZTo6aW5pdGlhbGl6ZUF1ZGlvUGFyYW1ldGVycyk6CisgICAgICAgIFRoaXMg
bG9naWMgd2FzIG1vc3RseSBtb3ZlZCBmcm9tIHRoZSBjcmVhdGUoKSBmdW5jdGlvbi4gVGhlIHBh
cnQgdGhhdCdzIG5ldyBpcyB0aGUKKyAgICAgICAgaW5pdGlhbGl6YXRpb24gb2YgbV9wYXJhbVZh
bHVlc01hcCB0byBmaWxsIGl0IHdpdGggZW1wdHkgYXVkaW8gYXJyYXlzLiBUaGVzZSBhcnJheXMK
KyAgICAgICAgYXJlIHVzZWQgaW4gcHJvY2VzcygpIHRvIHN0b3JlIHRoZSBzYW1wbGVzIGZyb20g
QXVkaW9QYXJhbSBvYmplY3RzLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2Rl
OjpzZXRQcm9jZXNzb3IpOgorICAgICAgICBGaXJlIGEgcHJvY2Vzc29yIGVycm9yIGlmIHRoZSBw
cm9jZXNzb3IgZ2V0cyBzZXQgdG8gbnVsbHB0ciwgaW5kaWNhdGluZyB0aGF0IHdlIGZhaWxlZAor
ICAgICAgICB0byBjb25zdHJ1Y3QgdGhlIEF1ZGlvV29ya2xldFByb2Nlc3NvciBvYmplY3QuCisK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6OnByb2Nlc3MpOgorICAgICAgICBG
aWxsIG1fcGFyYW1WYWx1ZXNNYXAgd2l0aCBzYW1wbGVzIGZyb20gYXNzb2NpYXRlZCBBdWRpb1Bh
cmFtIG9iamVjdHMgdGhlbiBjYWxsCisgICAgICAgIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJv
Y2VzcygpIHdpdGggaW5wdXQgJiBvdXRwdXQgQXVkaW9CdXMgb2JqZWN0cywgYXMgd2VsbAorICAg
ICAgICBhcyBtX3BhcmFtVmFsdWVzTWFwLiBJZiBwcm9jZXNzKCkgcmV0dXJucyBmYWxzZSBvciBl
bmNvdW50ZXJlZCBhbiBlcnJvciwgd2UgZmluaXNoCisgICAgICAgIHJlbmRlcmluZy4KKworICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6ZGlkRmluaXNoUHJvY2Vzc2luZ09uUmVu
ZGVyaW5nVGhyZWFkKToKKyAgICAgICAgVGhpcyBpcyBjYWxsZWQgYnkgcHJvY2VzcygpIHdoZW5l
dmVyIHByb2Nlc3MoKSByZXR1cm5zIGZhbHNlIG9yIGVuY291bnRlcmVkIGFuIGVycm9yLgorICAg
ICAgICBJZiBwcm9jZXNzKCkgZW5jb3VudGVyZWQgYW4gZXJyb3IsIHdlIG1ha2Ugc3VyZSB0byBm
aXJlIGEgcHJvY2Vzc29yZXZlbnQgZXZlbnQgdG8KKyAgICAgICAgbGV0IHRoZSBzY3JpcHQga25v
dy4gVGhlbiB3ZSBudWxsIG91dCB0aGUgcHJvY2Vzc29yIGFuZCBmaW5pc2ggcmVuZGVyaW5nLgor
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjp1cGRhdGVQdWxsU3RhdHVzKToK
KyAgICAgICAgSWYgdGhlIG5vZGUgaGFzIG5vIG91dHB1dCwgd2UgbmVlZCB0byBtYWtlIHN1cmUg
dG8gYWRkIGl0IHRvIHRoZSBhdXRvbWF0aWMgcHVsbAorICAgICAgICBsaXN0IGluIHRoZSBjb250
ZXh0IHNvIHRoYXQgaXQgaXMgdXNlZCBmb3IgcmVuZGVyaW5nLgorCisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1dvcmtsZXROb2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dCk6CisgICAg
ICAgIFVzZSBzYW1lIGxvZ2ljIGFzIEJsaW5rIGhlcmUuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvV29ya2xldE5vZGU6OmZpcmVQcm9jZXNzb3JFcnJvck9uTWFpblRocmVhZCk6CisgICAgICAg
IExvZ2ljIHRvIGZpcmUgYSBwcm9jZXNzb3JlcnJvciBldmVudCBvbiB0aGUgbWFpbiB0aHJlYWQg
d2l0aCBhIGRlY2VudCBlcnJvciBtZXNzYWdlLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dv
cmtsZXROb2RlOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvV29ya2xldE5vZGU6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAg
ICAgICBBY3RpdmVET01PYmplY3Qgb3ZlcnJpZGVzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmg6CisgICAgICAgIFN1YmNsYXNzIEF1ZGlvV29ya2xldE5v
ZGUgc2luY2Ugd2UgY2FuIGZpcmUgcHJvY2Vzc29yZXJyb3IgZXZlbnRzCisgICAgICAgIGF0IGFu
eSBwb2ludCBkdXJpbmcgcmVuZGVyaW5nLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmlkbDoKKyAgICAgICAgTWFrZSBpdCBhbiBBY3RpdmVET01PYmplY3Qu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheSk6CisgICAgICAgIChX
ZWJDb3JlOjpjb25zdHJ1Y3RKU01hcCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RGcm96
ZW5KU0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlEYXRhRnJvbUpTQXJyYXlUb0J1c2Vz
KToKKyAgICAgICAgQSBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyB0byBjb252ZXJ0IFdlYkNv
cmUgdHlwZXMgaW50byB0aGUgc3VpdGFibGUKKyAgICAgICAgSmF2YVNjcmlwdCB0eXBlcyB0aGF0
IGFyZSBleHBlY3RlZCBieSB0aGUgcHJvY2VzcygpIGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICBQcm92aWRlIGlt
cGxlbWVudGF0aW9uIGZvciBwcm9jZXNzKCk6CisgICAgICAgIC0gaHR0cHM6Ly93d3cudzMub3Jn
L1RSL3dlYmF1ZGlvLyNkb20tYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MKKyAgICAgICAg
V2UgY29udmVydCB0aGUgcGFyYW1ldGVycyBpbnRvIHRoZSBKYXZhU2NyaXB0IHR5cGVzIHRoYXQg
dGhlIEpTIHByb2Nlc3MoKQorICAgICAgICBmdW5jdGlvbiBleHBlY3RzLCB0aGVuIGNhbGwgdGhl
IHByb2Nlc3MoKSBmdW5jdGlvbiBhbmQgZmluYWxseSByZXR1cm4KKyAgICAgICAgdGhlIHZhbHVl
IHJldHVybmVkIGJ5IHRoZSBKUyBwcm9jZXNzKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6c2V0UHJvY2Vzc0NhbGxiYWNrKToKKyAgICAgICAg
VGhpcyBpcyBjYWxsZWQgYnkgdGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIHJpZ2h0IGFmdGVy
IHRoZSBBdWRpb1dvcmtsZXRQcm9jZXNzb3IKKyAgICAgICAgd3JhcHBlciBnZXRzIGNvbnN0cnVj
dGVkIHRvIHNldCB0aGUgSlNDYWxsYmFja0RhdGEgb2JqZWN0IHRoYXQgaXMgdXNlZAorICAgICAg
ICBieSBwcm9jZXNzKCkgdG8gY2FsbCB0aGUgSlMgcHJvY2VzcygpIGZ1bmN0aW9uLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaDoKKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0Nh
bGxiYWNrRGF0YVN0cm9uZzo6SlNDYWxsYmFja0RhdGFTdHJvbmcpOgorICAgICAgICBNYWtlIEpT
Q2FsbGJhY2tEYXRhIGZhc3QgYWxsb2NhdGVkLiBUaGUgYmluZGluZ3MgYW5kIG15IG5ldyBjb2Rl
IGhlYXAtYWxsb2NhdGUgaXQuCisKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFcnJvckV2ZW50OjpFcnJvckV2ZW50KToKKyAgICAgICAgKiBkb20vRXJy
b3JFdmVudC5oOgorICAgICAgICBBZGQgYW4gZXZlbnRUeXBlIHBhcmFtZXRlciBzaW5jZSBBdWRp
b1dvcmtsZXROb2RlIG5vdyBuZWVkcyB0byBkaXNwYXRjaCBhbiBFcnJvckV2ZW50CisgICAgICAg
IHdob3NlIHR5cGUgaXMgInByb2Nlc3NvcmVycm9yIiwgbm90IHRoZSBnZW5lcmljICJlcnJvciIu
CisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVz
c2FnZVBvcnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICBGaXgg
TWVzc2FnZVBvcnQgZ2FyYmFzZSBjb2xsZWN0aW9uIGxvZ2ljIHRvIHByb3Blcmx5IGRlYWwgd2l0
aCBNZXNzYWdlUG9ydHMgZnJvbQorICAgICAgICB3b3JrbGV0cy4gVGhpcyBhZGRyZXNzZXMgY3Jh
c2hlcyBmb3VuZCBieSB0aGUgdW5za2lwcGVkIGxheW91dCB0ZXN0cy4KKwogMjAyMC0xMC0wOSAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0
aW9uXSBPdmVyZmxvdyBjbGlwIGJsb2NrcyB2aXN1YWwgb3ZlcmZsb3cKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmgKaW5kZXggZjRlOTNkNjhiZTZlNGQ2ODhl
NzRkMGIyNjM5ODYxNTM1NGU4NmJmMS4uMTZiNDMyNTViNjNlMjc3NzE4Mzg1MjcxMDRiZDdhZjlh
MDYxNDI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFt
LmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIC8vIE11c3QgYmUgY2FsbGVkIGluIHRo
ZSBhdWRpbyB0aHJlYWQuCiAgICAgZmxvYXQgZmluYWxWYWx1ZSgpOwogCi0gICAgU3RyaW5nIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBj
b25zdCB7IHJldHVybiBtX25hbWU7IH0KIAogICAgIGZsb2F0IG1pblZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9taW5WYWx1ZTsgfQogICAgIGZsb2F0IG1heFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9tYXhWYWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCA0NTMwNjIwMzAwMWM0ZWQz
MmMxMTUwZmU4MDQ3YTA4Yzg5N2RiZDJiLi4yYTMwNmQ0ZjQxYzk3NDRiOWU2NTdjY2NjYTEyZjk2
YjllYzU0MWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIFJl
ZlB0cjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpjcmVh
dGVQcm9jZXNzb3IoY29uc3QgU3RyCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgSlND
OjpKU09iamVjdCoganNDb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yLT5jYWxsYmFja0RhdGEoKS0+
Y2FsbGJhY2soKTsKLSAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBqc0NvbnN0cnVjdG9yLT5nbG9i
YWxPYmplY3QoKTsKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBjb25zdHJ1Y3Rvci0+Y2FsbGJh
Y2tEYXRhKCktPmdsb2JhbE9iamVjdCgpOwogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrIHsgZ2xvYmFsT2JqZWN0IH07CkBAIC0xMzYsNiArMTM2LDgg
QEAgUmVmUHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nvcj4gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6
OmNyZWF0ZVByb2Nlc3Nvcihjb25zdCBTdHIKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKIAogICAgIGF1dG8mIGpzUHJvY2Vzc29yID0gKkpTQzo6anNDYXN0PEpTQXVk
aW9Xb3JrbGV0UHJvY2Vzc29yKj4ob2JqZWN0KTsKKyAgICBqc1Byb2Nlc3Nvci53cmFwcGVkKCku
c2V0UHJvY2Vzc0NhbGxiYWNrKG1ha2VVbmlxdWU8SlNDYWxsYmFja0RhdGFTdHJvbmc+KCZqc1By
b2Nlc3NvciwgZ2xvYmFsT2JqZWN0KSk7CisKICAgICByZXR1cm4gJmpzUHJvY2Vzc29yLndyYXBw
ZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggNmJlNzliOTkzZmI2NTk5YTgyNjMwODllZTA4NDNjYmMz
MjUxNmY5OS4uODA3NmIzNmRhY2ZhYWRhZjYzZDJlNTA5Yzg0MGJiN2IwN2MyZTczYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUu
Y3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0Tm9kZS5oIgogCiAj
aW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCisjaW5jbHVkZSAiQXVkaW9Ob2RlSW5wdXQuaCIKICNp
bmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKICNpbmNsdWRlICJBdWRpb1BhcmFtLmgiCiAjaW5j
bHVkZSAiQXVkaW9QYXJhbU1hcC5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIkF1ZGlv
V29ya2xldE5vZGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgi
CiAjaW5jbHVkZSAiQmFzZUF1ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIK
ICNpbmNsdWRlICJKU0F1ZGlvV29ya2xldE5vZGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZUNoYW5uZWwuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgpAQCAtOTAsMzMgKzkyLDM1IEBA
IEV4Y2VwdGlvbk9yPFJlZjxBdWRpb1dvcmtsZXROb2RlPj4gQXVkaW9Xb3JrbGV0Tm9kZTo6Y3Jl
YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmCiAKICAgICBhdXRvIHBhcmFtZXRlckRhdGEgPSBXVEZN
b3ZlKG9wdGlvbnMucGFyYW1ldGVyRGF0YSk7CiAgICAgYXV0byBub2RlID0gYWRvcHRSZWYoKm5l
dyBBdWRpb1dvcmtsZXROb2RlKGNvbnRleHQsIG5hbWUsIFdURk1vdmUob3B0aW9ucyksICpub2Rl
TWVzc2FnZVBvcnQpKTsKKyAgICBub2RlLT5zdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIGF1dG8g
cmVzdWx0ID0gbm9kZS0+aGFuZGxlQXVkaW9Ob2RlT3B0aW9ucyhvcHRpb25zLCB7IDIsIENoYW5u
ZWxDb3VudE1vZGU6Ok1heCwgQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VycyB9KTsKICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKTsKIAotICAgIGZvciAoYXV0byYgZGVzY3JpcHRvciA6IHBhcmFtZXRlckRl
c2NyaXB0b3JzKSB7Ci0gICAgICAgIGF1dG8gcGFyYW1ldGVyID0gQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsIGRlc2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5kZWZhdWx0VmFsdWUsIGRlc2Ny
aXB0b3IubWluVmFsdWUsIGRlc2NyaXB0b3IubWF4VmFsdWUsIGRlc2NyaXB0b3IuYXV0b21hdGlv
blJhdGUpOwotICAgICAgICBub2RlLT5wYXJhbWV0ZXJzKCkuYWRkKGRlc2NyaXB0b3IubmFtZSwg
V1RGTW92ZShwYXJhbWV0ZXIpKTsKLSAgICB9CisgICAgbm9kZS0+aW5pdGlhbGl6ZUF1ZGlvUGFy
YW1ldGVycyhwYXJhbWV0ZXJEZXNjcmlwdG9ycywgcGFyYW1ldGVyRGF0YSk7CiAKLSAgICBpZiAo
cGFyYW1ldGVyRGF0YSkgewotICAgICAgICBmb3IgKGF1dG8mIHBhcmFtZXRlciA6ICpwYXJhbWV0
ZXJEYXRhKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byogYXVkaW9QYXJhbSA9IG5vZGUtPnBhcmFt
ZXRlcnMoKS5tYXAoKS5nZXQocGFyYW1ldGVyLmtleSkpCi0gICAgICAgICAgICAgICAgYXVkaW9Q
YXJhbS0+c2V0VmFsdWUocGFyYW1ldGVyLnZhbHVlKTsKLSAgICAgICAgfQotICAgIH0KKyAgICAv
LyBXaWxsIGNhdXNlIHRoZSBjb250ZXh0IHRvIHJlZiB0aGUgbm9kZSB1bnRpbCBwbGF5YmFjayBo
YXMgZmluaXNoZWQuCisgICAgY29udGV4dC5yZWZOb2RlKG5vZGUpOwogCiAgICAgY29udGV4dC5h
dWRpb1dvcmtsZXQoKS5jcmVhdGVQcm9jZXNzb3IobmFtZSwgcHJvY2Vzc29yTWVzc2FnZVBvcnQt
PmRpc2VudGFuZ2xlKCksIHNlcmlhbGl6ZWRPcHRpb25zLnJlbGVhc2VOb25OdWxsKCksIG5vZGUp
OwogCisgICAgeworICAgICAgICAvLyBUaGUgbm9kZSBzaG91bGQgYmUgbWFudWFsbHkgYWRkZWQg
dG8gdGhlIGF1dG9tYXRpYyBwdWxsIG5vZGUgbGlzdCwgZXZlbiB3aXRob3V0IGEgY29ubmVjdCgp
IGNhbGwuCisgICAgICAgIEJhc2VBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tl
cihjb250ZXh0KTsKKyAgICAgICAgbm9kZS0+dXBkYXRlUHVsbFN0YXR1cygpOworICAgIH0KKwog
ICAgIHJldHVybiBub2RlOwogfQogCiBBdWRpb1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2Rl
KEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQXVkaW9Xb3Jr
bGV0Tm9kZU9wdGlvbnMmJiBvcHRpb25zLCBSZWY8TWVzc2FnZVBvcnQ+JiYgcG9ydCkKICAgICA6
IEF1ZGlvTm9kZShjb250ZXh0LCBOb2RlVHlwZVdvcmtsZXQpCisgICAgLCBBY3RpdmVET01PYmpl
Y3QoY29udGV4dC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgLCBtX25hbWUobmFtZSkK
ICAgICAsIG1fcGFyYW1ldGVycyhBdWRpb1BhcmFtTWFwOjpjcmVhdGUoKSkKICAgICAsIG1fcG9y
dChXVEZNb3ZlKHBvcnQpKQorICAgICwgbV93YXNPdXRwdXRDaGFubmVsQ291bnRHaXZlbighIW9w
dGlvbnMub3V0cHV0Q2hhbm5lbENvdW50KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG9wdGlvbnMubnVtYmVyT2ZJbnB1dHM7ICsr
aSkKQEAgLTEyNCw2ICsxMjgsOSBAQCBBdWRpb1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2Rl
KEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZQogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBvcHRpb25zLm51bWJlck9mT3V0cHV0czsgKytpKQogICAgICAg
ICBhZGRPdXRwdXQob3B0aW9ucy5vdXRwdXRDaGFubmVsQ291bnQgPyBvcHRpb25zLm91dHB1dENo
YW5uZWxDb3VudC0+YXQoaSk6IDEpOwogCisgICAgbV9pbnB1dHMucmVzaXplKG9wdGlvbnMubnVt
YmVyT2ZJbnB1dHMpOworICAgIG1fb3V0cHV0cy5yZXNpemUob3B0aW9ucy5udW1iZXJPZk91dHB1
dHMpOworCiAgICAgaW5pdGlhbGl6ZSgpOwogfQogCkBAIC0xMzEsNyArMTM4LDcgQEAgQXVkaW9X
b3JrbGV0Tm9kZTo6fkF1ZGlvV29ya2xldE5vZGUoKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc29y
TG9jayk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNzTG9jayk7CiAg
ICAgICAgIGlmIChtX3Byb2Nlc3NvcikgewogICAgICAgICAgICAgaWYgKGF1dG8qIHdvcmtsZXRQ
cm94eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5wcm94eSgpKQogICAgICAgICAgICAgICAg
IHdvcmtsZXRQcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoW21fcHJv
Y2Vzc29yID0gV1RGTW92ZShtX3Byb2Nlc3NvcildKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7
IH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwpAQCAtMTQwLDIxICsxNDcsMTQ3IEBA
IEF1ZGlvV29ya2xldE5vZGU6On5BdWRpb1dvcmtsZXROb2RlKCkKICAgICB1bmluaXRpYWxpemUo
KTsKIH0KIAordm9pZCBBdWRpb1dvcmtsZXROb2RlOjppbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJz
KGNvbnN0IFZlY3RvcjxBdWRpb1BhcmFtRGVzY3JpcHRvcj4mIGRlc2NyaXB0b3JzLCBjb25zdCBP
cHRpb25hbDxWZWN0b3I8V1RGOjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBkb3VibGU+Pj4mIHBhcmFt
VmFsdWVzKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fcGFy
YW1ldGVycy0+bWFwKCkuaXNFbXB0eSgpKTsKKworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9wcm9jZXNzTG9jayk7CisKKyAgICBmb3IgKGF1dG8mIGRlc2NyaXB0b3IgOiBkZXNjcmlwdG9y
cykgeworICAgICAgICBhdXRvIHBhcmFtZXRlciA9IEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0
KCksIGRlc2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5kZWZhdWx0VmFsdWUsIGRlc2NyaXB0b3Iu
bWluVmFsdWUsIGRlc2NyaXB0b3IubWF4VmFsdWUsIGRlc2NyaXB0b3IuYXV0b21hdGlvblJhdGUp
OworICAgICAgICBtX3BhcmFtZXRlcnMtPmFkZChkZXNjcmlwdG9yLm5hbWUsIFdURk1vdmUocGFy
YW1ldGVyKSk7CisgICAgfQorCisgICAgaWYgKHBhcmFtVmFsdWVzKSB7CisgICAgICAgIGZvciAo
YXV0byYgcGFyYW1WYWx1ZSA6ICpwYXJhbVZhbHVlcykgeworICAgICAgICAgICAgaWYgKGF1dG8q
IGF1ZGlvUGFyYW0gPSBtX3BhcmFtZXRlcnMtPm1hcCgpLmdldChwYXJhbVZhbHVlLmtleSkpCisg
ICAgICAgICAgICAgICAgYXVkaW9QYXJhbS0+c2V0VmFsdWUocGFyYW1WYWx1ZS52YWx1ZSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIHBhcmFtZXRlck5hbWUgOiBtX3BhcmFt
ZXRlcnMtPm1hcCgpLmtleXMoKSkKKyAgICAgICAgbV9wYXJhbVZhbHVlc01hcC5hZGQocGFyYW1l
dGVyTmFtZSwgbWFrZVVuaXF1ZTxBdWRpb0Zsb2F0QXJyYXk+KEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSkpOworfQorCiB2b2lkIEF1ZGlvV29ya2xldE5vZGU6OnNldFByb2Nlc3Nv
cihSZWZQdHI8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yPiYmIHByb2Nlc3NvcikKIHsKICAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vz
c29yTG9jayk7Ci0gICAgbV9wcm9jZXNzb3IgPSBXVEZNb3ZlKHByb2Nlc3Nvcik7CisgICAgaWYg
KHByb2Nlc3NvcikgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc0xv
Y2spOworICAgICAgICBtX3Byb2Nlc3NvciA9IFdURk1vdmUocHJvY2Vzc29yKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3NvckVycm9y
OjpDb25zdHJ1Y3RvckVycm9yKTsKIH0KIAogdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpwcm9jZXNz
KHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lc1RvUHJvY2Vzcyk7CiAKLSAgICAvLyBGSVhNRTogRG8g
YWN0dWFsIHByb2Nlc3NpbmcgdmlhIG1fcHJvY2Vzc29yLgorICAgIGF1dG8gbG9ja2VyID0gdHJ5
SG9sZExvY2sobV9wcm9jZXNzTG9jayk7CisgICAgaWYgKCFsb2NrZXIgfHwgIW1fcHJvY2Vzc29y
KSB7CisgICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5ZXQgb3Igd2UgYXJlIGdldHRpbmcgZGVz
dHJveWVkLiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBzaWxlbmNlLgorICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7ICsraSkKKyAgICAgICAgICAgIG91
dHB1dChpKS0+YnVzKCktPnplcm8oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8v
IElmIHRoZSBpbnB1dCBpcyBub3QgY29ubmVjdGVkLCBwYXNzIG51bGxwdHIgdG8gdGhlIHByb2Nl
c3Nvci4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZJbnB1dHMoKTsgKytp
KQorICAgICAgICBtX2lucHV0c1tpXSA9IGlucHV0KGkpLT5pc0Nvbm5lY3RlZCgpID8gaW5wdXQo
aSktPmJ1cygpIDogbnVsbHB0cjsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVy
T2ZPdXRwdXRzKCk7ICsraSkKLSAgICAgICAgb3V0cHV0KGkpLT5idXMoKS0+emVybygpOworICAg
ICAgICBtX291dHB1dHNbaV0gPSBvdXRwdXQoaSktPmJ1cygpOworCisgICAgZm9yIChhdXRvJiBh
dWRpb1BhcmFtIDogbV9wYXJhbWV0ZXJzLT5tYXAoKS52YWx1ZXMoKSkgeworICAgICAgICBhdXRv
KiBwYXJhbVZhbHVlcyA9IG1fcGFyYW1WYWx1ZXNNYXAuZ2V0KGF1ZGlvUGFyYW0tPm5hbWUoKSk7
CisgICAgICAgIEFTU0VSVChwYXJhbVZhbHVlcyk7CisgICAgICAgIGlmIChhdWRpb1BhcmFtLT5o
YXNTYW1wbGVBY2N1cmF0ZVZhbHVlcygpICYmIGF1ZGlvUGFyYW0tPmF1dG9tYXRpb25SYXRlKCkg
PT0gQXV0b21hdGlvblJhdGU6OkFSYXRlKQorICAgICAgICAgICAgYXVkaW9QYXJhbS0+Y2FsY3Vs
YXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXMocGFyYW1WYWx1ZXMtPmRhdGEoKSwgZnJhbWVzVG9Qcm9j
ZXNzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RkOjpmaWxsKHBhcmFtVmFsdWVzLT5k
YXRhKCksIHBhcmFtVmFsdWVzLT5kYXRhKCkgKyBmcmFtZXNUb1Byb2Nlc3MsIGF1ZGlvUGFyYW0t
PmZpbmFsVmFsdWUoKSk7CisgICAgfQorCisgICAgYm9vbCB0aHJld0V4Y2VwdGlvbiA9IGZhbHNl
OworICAgIGlmICghbV9wcm9jZXNzb3ItPnByb2Nlc3MobV9pbnB1dHMsIG1fb3V0cHV0cywgbV9w
YXJhbVZhbHVlc01hcCwgdGhyZXdFeGNlcHRpb24pKQorICAgICAgICBkaWRGaW5pc2hQcm9jZXNz
aW5nT25SZW5kZXJpbmdUaHJlYWQodGhyZXdFeGNlcHRpb24pOworfQorCit2b2lkIEF1ZGlvV29y
a2xldE5vZGU6OmRpZEZpbmlzaFByb2Nlc3NpbmdPblJlbmRlcmluZ1RocmVhZChib29sIHRocmV3
RXhjZXB0aW9uKQoreworICAgIGlmICh0aHJld0V4Y2VwdGlvbikKKyAgICAgICAgZmlyZVByb2Nl
c3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3NvckVycm9yOjpQcm9jZXNzRXJyb3IpOworCisg
ICAgbV9wcm9jZXNzb3IgPSBudWxscHRyOworICAgIG1fdGFpbFRpbWUgPSAwOworICAgIGNvbnRl
eHQoKS5ub3RpZnlOb2RlRmluaXNoZWRQcm9jZXNzaW5nKHRoaXMpOworfQorCit2b2lkIEF1ZGlv
V29ya2xldE5vZGU6OnVwZGF0ZVB1bGxTdGF0dXMoKQoreworICAgIEFTU0VSVChjb250ZXh0KCku
aXNHcmFwaE93bmVyKCkpOworCisgICAgYm9vbCBoYXNDb25uZWN0ZWRPdXRwdXQgPSBmYWxzZTsK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7ICsraSkgewor
ICAgICAgICBpZiAob3V0cHV0KGkpLT5pc0Nvbm5lY3RlZCgpKSB7CisgICAgICAgICAgICBoYXND
b25uZWN0ZWRPdXRwdXQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICAvLyBJZiBubyBvdXRwdXQgaXMgY29ubmVjdGVkLCBhZGQgdGhlIG5vZGUgdG8g
dGhlIGF1dG9tYXRpYyBwdWxsIGxpc3QuCisgICAgLy8gT3RoZXJ3aXNlLCByZW1vdmUgaXQgb3V0
IG9mIHRoZSBsaXN0LgorICAgIGlmICghaGFzQ29ubmVjdGVkT3V0cHV0KQorICAgICAgICBjb250
ZXh0KCkuYWRkQXV0b21hdGljUHVsbE5vZGUoKnRoaXMpOworICAgIGVsc2UKKyAgICAgICAgY29u
dGV4dCgpLnJlbW92ZUF1dG9tYXRpY1B1bGxOb2RlKCp0aGlzKTsKK30KKwordm9pZCBBdWRpb1dv
cmtsZXROb2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dChBdWRpb05vZGVJbnB1dCog
aW5wdXQpCit7CisgICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkgJiYgY29udGV4
dCgpLmlzR3JhcGhPd25lcigpKTsKKworICAgIC8vIER5bmFtaWMgY2hhbm5lbCBjb3VudCBvbmx5
IHdvcmtzIHdoZW4gdGhlIG5vZGUgaGFzIDEgaW5wdXQsIDEgb3V0cHV0IGFuZCB8b3V0cHV0Q2hh
bm5lbENvdW50fAorICAgIC8vIGlzIG5vdCBnaXZlbi4gT3RoZXJ3aXNlIHRoZSBjaGFubmVsIGNv
dW50KHMpIHNob3VsZCBub3QgYmUgZHluYW1pY2FsbHkgY2hhbmdlZC4KKyAgICBpZiAobnVtYmVy
T2ZJbnB1dHMoKSA9PSAxICYmIG51bWJlck9mT3V0cHV0cygpID09IDEgJiYgIW1fd2FzT3V0cHV0
Q2hhbm5lbENvdW50R2l2ZW4pIHsKKyAgICAgICAgQVNTRVJUKGlucHV0ID09IHRoaXMtPmlucHV0
KDApKTsKKyAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzID0gaW5wdXQtPm51
bWJlck9mQ2hhbm5lbHMoKTsKKyAgICAgICAgaWYgKG51bWJlck9mSW5wdXRDaGFubmVscyAhPSBv
dXRwdXQoMCktPm51bWJlck9mQ2hhbm5lbHMoKSkgeworICAgICAgICAgICAgLy8gVGhpcyB3aWxs
IHByb3BhZ2F0ZSB0aGUgY2hhbm5lbCBjb3VudCB0byBhbnkgbm9kZXMgY29ubmVjdGVkIGZ1cnRo
ZXIgZG93bnN0cmVhbSBpbiB0aGUgZ3JhcGguCisgICAgICAgICAgICBvdXRwdXQoMCktPnNldE51
bWJlck9mQ2hhbm5lbHMobnVtYmVyT2ZJbnB1dENoYW5uZWxzKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIC8vIFVwZGF0ZSB0aGUgaW5wdXQncyBpbnRlcm5hbCBidXMgaWYgbmVlZGVkLgorICAg
IEF1ZGlvTm9kZTo6Y2hlY2tOdW1iZXJPZkNoYW5uZWxzRm9ySW5wdXQoaW5wdXQpOworICAgIHVw
ZGF0ZVB1bGxTdGF0dXMoKTsKK30KKwordm9pZCBBdWRpb1dvcmtsZXROb2RlOjpmaXJlUHJvY2Vz
c29yRXJyb3JPbk1haW5UaHJlYWQoUHJvY2Vzc29yRXJyb3IgZXJyb3IpCit7CisgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVycm9yXSgpIG11dGFibGUgeworICAgICAgICBTdHJp
bmcgZXJyb3JNZXNzYWdlOworICAgICAgICBzd2l0Y2ggKGVycm9yKSB7CisgICAgICAgIGNhc2Ug
UHJvY2Vzc29yRXJyb3I6OkNvbnN0cnVjdG9yRXJyb3I6CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSAiQW4gZXJyb3Igd2FzIHRocm93biBmcm9tIEF1ZGlvV29ya2xldFByb2Nlc3NvciBjb25z
dHJ1Y3RvciJfczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFByb2Nlc3NvckVy
cm9yOjpQcm9jZXNzRXJyb3I6CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAiQW4gZXJyb3Ig
d2FzIHRocm93biBmcm9tIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2VzcygpIG1ldGhvZCJf
czsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHF1ZXVlVGFza1RvRGlz
cGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBFcnJvckV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnByb2Nlc3NvcmVycm9yRXZlbnQsIGVycm9yTWVzc2FnZSwgeyB9
LCAwLCAwLCB7IH0pKTsKKyAgICB9KTsKK30KKworY29uc3QgY2hhciogQXVkaW9Xb3JrbGV0Tm9k
ZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJBdWRpb1dvcmts
ZXROb2RlIjsKK30KKworYm9vbCBBdWRpb1dvcmtsZXROb2RlOjp2aXJ0dWFsSGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWNvbnRleHQoKS5pc0Nsb3NlZCgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCmluZGV4IDk1YzdmNjc1MGYwNWYxMmYzOTc2MjQ1
ZGFkYjcxMzFmMTE0ODU0OTcuLjdkNjg4N2M0ZGM5N2ZlY2E0OTcyNmJjZWMwNzlmM2Q2NTFmYTEy
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5oCkBAIC0zMCw2ICszMCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCisj
aW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgogI2lu
Y2x1ZGUgIkF1ZGlvTm9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKQEAgLTM5LDkgKzQx
LDExIEBAIGNsYXNzIEF1ZGlvUGFyYW1NYXA7CiBjbGFzcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3I7
CiBjbGFzcyBNZXNzYWdlUG9ydDsKIAorc3RydWN0IEF1ZGlvUGFyYW1EZXNjcmlwdG9yOworCiBz
dHJ1Y3QgQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnM7CiAKLWNsYXNzIEF1ZGlvV29ya2xldE5vZGUg
OiBwdWJsaWMgQXVkaW9Ob2RlIHsKK2NsYXNzIEF1ZGlvV29ya2xldE5vZGUgOiBwdWJsaWMgQXVk
aW9Ob2RlLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKEF1ZGlvV29ya2xldE5vZGUpOwogcHVibGljOgogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxS
ZWY8QXVkaW9Xb3JrbGV0Tm9kZT4+IGNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgQmFzZUF1
ZGlvQ29udGV4dCYsIFN0cmluZyYmIG5hbWUsIEF1ZGlvV29ya2xldE5vZGVPcHRpb25zJiYpOwpA
QCAtNTEsMjEgKzU1LDQxIEBAIHB1YmxpYzoKICAgICBNZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0
dXJuIG1fcG9ydC5nZXQoKTsgfQogCiAgICAgdm9pZCBzZXRQcm9jZXNzb3IoUmVmUHRyPEF1ZGlv
V29ya2xldFByb2Nlc3Nvcj4mJik7CisgICAgdm9pZCBpbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJz
KGNvbnN0IFZlY3RvcjxBdWRpb1BhcmFtRGVzY3JpcHRvcj4mLCBjb25zdCBPcHRpb25hbDxWZWN0
b3I8V1RGOjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBkb3VibGU+Pj4mIHBhcmFtVmFsdWVzKTsKIAog
cHJpdmF0ZToKICAgICBBdWRpb1dvcmtsZXROb2RlKEJhc2VBdWRpb0NvbnRleHQmLCBjb25zdCBT
dHJpbmcmIG5hbWUsIEF1ZGlvV29ya2xldE5vZGVPcHRpb25zJiYsIFJlZjxNZXNzYWdlUG9ydD4m
Jik7CiAKKyAgICBlbnVtIGNsYXNzIFByb2Nlc3NvckVycm9yIHsgQ29uc3RydWN0b3JFcnJvciwg
UHJvY2Vzc0Vycm9yIH07CisgICAgdm9pZCBmaXJlUHJvY2Vzc29yRXJyb3JPbk1haW5UaHJlYWQo
UHJvY2Vzc29yRXJyb3IpOworICAgIHZvaWQgZGlkRmluaXNoUHJvY2Vzc2luZ09uUmVuZGVyaW5n
VGhyZWFkKGJvb2wgdGhyZXdFeGNlcHRpb24pOworCiAgICAgLy8gQXVkaW9Ob2RlLgogICAgIHZv
aWQgcHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBmaW5hbDsKLSAgICBkb3VibGUgdGFp
bFRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9IC8vIEZJWE1FOiBSZXR1cm4gYSBjb3Jy
ZWN0IHZhbHVlLgorICAgIGRvdWJsZSB0YWlsVGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
dGFpbFRpbWU7IH0KICAgICBkb3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biAwOyB9CiAgICAgYm9vbCByZXF1aXJlc1RhaWxQcm9jZXNzaW5nKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgY2hlY2tOdW1iZXJPZkNoYW5uZWxzRm9ySW5wdXQoQXVk
aW9Ob2RlSW5wdXQqKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVB1bGxTdGF0dXMoKSBmaW5hbDsK
KworICAgIC8vIEFjdGl2ZURPTU9iamVjdC4KKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCB2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QgZmluYWw7CiAKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIFJlZjxBdWRpb1BhcmFt
TWFwPiBtX3BhcmFtZXRlcnM7CiAgICAgUmVmPE1lc3NhZ2VQb3J0PiBtX3BvcnQ7Ci0gICAgTG9j
ayBtX3Byb2Nlc3NvckxvY2s7CisgICAgTG9jayBtX3Byb2Nlc3NMb2NrOwogICAgIFJlZlB0cjxB
dWRpb1dvcmtsZXRQcm9jZXNzb3I+IG1fcHJvY2Vzc29yOyAvLyBTaG91bGQgb25seSBiZSB1c2Vk
IG9uIHRoZSByZW5kZXJpbmcgdGhyZWFkLgorICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4gbV9wYXJhbVZhbHVlc01hcDsKKworICAgIC8vIEtlZXBz
IHRoZSByZWZlcmVuY2Ugb2YgQXVkaW9CdXMgb2JqZWN0cyBmcm9tIEF1ZGlvTm9kZUlucHV0IGFu
ZCBBdWRpb05vZGVPdXRwdXQgaW4gb3JkZXIKKyAgICAvLyB0byBwYXNzIHRoZW0gdG8gQXVkaW9X
b3JrbGV0UHJvY2Vzc29yLgorICAgIFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiBtX2lucHV0czsK
KyAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4gbV9vdXRwdXRzOworCisgICAgZG91YmxlIG1f
dGFpbFRpbWUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkgfTsKKyAg
ICBib29sIG1fd2FzT3V0cHV0Q2hhbm5lbENvdW50R2l2ZW4geyBmYWxzZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKaW5kZXggNzExNWFmY2UwMzljNmU1ZTI2Nzg3YzEz
ZGYxY2YwN2U4ZDZmZjBmOC4uOTIxNWM5OGUxZDNmNmQxMGU1MWY4YjgxMzY5ZjJmNTYzMWNjMTYz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldE5vZGUuaWRsCkBAIC0yNyw2ICsyNyw3IEBACiAgKi8KIAogWworICAgIEFjdGl2ZURPTU9i
amVjdCwKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAgRW5hYmxlZEJ5U2V0dGluZz1B
dWRpb1dvcmtsZXQsCiAgICAgRXhwb3NlZD1XaW5kb3csCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKaW5kZXgg
NDVhOTc4ZTg5NzgyYzEzOGY5NTIzZTJhODlmODRhNzcxZThkZmQ1YS4uOTk2YTk2ZjUzZDE3ZjM1
ZTA5YmE3NzU4MTA1OGIyZTYwOTIwZjllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcApAQCAtMzEsMTIg
KzMxLDc1IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICNpbmNsdWRlICJBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IuaCIKIAorI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCisjaW5jbHVkZSAiQXVkaW9DaGFu
bmVsLmgiCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJB
dWRpb1dvcmtsZXRQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhLmgiCisjaW5jbHVkZSAiSlNDYWxs
YmFja0RhdGEuaCIKKyNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU01hcC5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTVHlwZWRBcnJheXMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitzdGF0aWMgSlNGbG9hdDMyQXJyYXkqIGNv
bnN0cnVjdEpTRmxvYXQzMkFycmF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2ln
bmVkIGxlbmd0aCwgY29uc3QgZmxvYXQqIGRhdGEgPSBudWxscHRyKQoreworICAgIGF1dG8qIGpz
QXJyYXkgPSBKU0Zsb2F0MzJBcnJheTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
LT50eXBlZEFycmF5U3RydWN0dXJlKFR5cGVGbG9hdDMyKSwgbGVuZ3RoKTsKKyAgICBpZiAoZGF0
YSkKKyAgICAgICAgbWVtY3B5KGpzQXJyYXktPnR5cGVkVmVjdG9yKCksIGRhdGEsIHNpemVvZihm
bG9hdCkgKiBsZW5ndGgpOworICAgIHJldHVybiBqc0FycmF5OworfQorCitzdGF0aWMgSlNNYXAq
IGNvbnN0cnVjdEpTTWFwKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFy
YW1WYWx1ZXNNYXApCit7CisgICAgYXV0byogbWFwID0gSlNNYXA6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIHZtLCBnbG9iYWxPYmplY3QtPm1hcFN0cnVjdHVyZSgpKTsKKyAgICBmb3IgKGF1dG8mIHBh
aXIgOiBwYXJhbVZhbHVlc01hcCkKKyAgICAgICAgbWFwLT5zZXQoZ2xvYmFsT2JqZWN0LCBqc1N0
cmluZ1dpdGhDYWNoZSh2bSwgcGFpci5rZXkpLCBjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheShnbG9i
YWxPYmplY3QsIHBhaXIudmFsdWUtPnNpemUoKSwgcGFpci52YWx1ZS0+ZGF0YSgpKSk7CisgICAg
cmV0dXJuIG1hcDsKK30KKworZW51bSBjbGFzcyBTaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhIDog
Ym9vbCB7IE5vLCBZZXMgfTsKK3N0YXRpYyBKU0FycmF5KiBjb25zdHJ1Y3RGcm96ZW5KU0FycmF5
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQXVkaW9CdXMqIGJ1cywgU2hv
dWxkUG9wdWxhdGVXaXRoQnVzRGF0YSBzaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhKQoreworICAg
IHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMgPSBidXMgPyBidXMtPm51bWJlck9mQ2hhbm5lbHMo
KSA6IDA7CisgICAgYXV0byogY2hhbm5lbHNEYXRhID0gSlNBcnJheTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QtPm9yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGUoQXJyYXlXaXRo
Q29udGlndW91cyksIG51bWJlck9mQ2hhbm5lbHMpOworICAgIGZvciAodW5zaWduZWQgaiA9IDA7
IGogPCBudW1iZXJPZkNoYW5uZWxzOyArK2opIHsKKyAgICAgICAgYXV0byogY2hhbm5lbCA9IGJ1
cy0+Y2hhbm5lbChqKTsKKyAgICAgICAgY2hhbm5lbHNEYXRhLT5zZXRJbmRleFF1aWNrbHkodm0s
IGosIGNvbnN0cnVjdEpTRmxvYXQzMkFycmF5KGdsb2JhbE9iamVjdCwgY2hhbm5lbC0+bGVuZ3Ro
KCksIHNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGEgPT0gU2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0
YTo6WWVzID8gY2hhbm5lbC0+ZGF0YSgpIDogbnVsbHB0cikpOworICAgIH0KKyAgICBKU0M6Om9i
amVjdENvbnN0cnVjdG9yRnJlZXplKGdsb2JhbE9iamVjdCwgY2hhbm5lbHNEYXRhKTsKKyAgICBy
ZXR1cm4gY2hhbm5lbHNEYXRhOworfQorCitzdGF0aWMgSlNBcnJheSogY29uc3RydWN0RnJvemVu
SlNBcnJheShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3Rv
cjxSZWZQdHI8QXVkaW9CdXM+PiYgYnVzZXMsIFNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGEgc2hv
dWxkUG9wdWxhdGVXaXRoQnVzRGF0YSkKK3sKKyAgICBhdXRvKiBhcnJheSA9IEpTQXJyYXk6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5vcmlnaW5hbEFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdU
eXBlKEFycmF5V2l0aENvbnRpZ3VvdXMpLCBidXNlcy5zaXplKCkpOworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBidXNlcy5zaXplKCk7ICsraSkKKyAgICAgICAgYXJyYXktPnNldEluZGV4
UXVpY2tseSh2bSwgaSwgY29uc3RydWN0RnJvemVuSlNBcnJheSh2bSwgZ2xvYmFsT2JqZWN0LCBi
dXNlc1tpXS5nZXQoKSwgc2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YSkpOworICAgIEpTQzo6b2Jq
ZWN0Q29uc3RydWN0b3JGcmVlemUoZ2xvYmFsT2JqZWN0LCBhcnJheSk7CisgICAgcmV0dXJuIGFy
cmF5OworfQorCitzdGF0aWMgdm9pZCBjb3B5RGF0YUZyb21KU0FycmF5VG9CdXNlcyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5KiBqc0FycmF5LCBWZWN0b3I8UmVmUHRyPEF1
ZGlvQnVzPj4mIGJ1c2VzKQoreworICAgIC8vIFdlIGNhbiBzYWZlbHkgbWFrZSBhc3N1bXB0aW9u
cyBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBKU0FycmF5IHNpbmNlIHdlIHVzZSBmcm96ZW4g
YXJyYXlzLgorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBidXNlcy5zaXplKCk7ICsraSkg
eworICAgICAgICBhdXRvJiBidXMgPSBidXNlc1tpXTsKKyAgICAgICAgYXV0byogY2hhbm5lbHNB
cnJheSA9IGFzT2JqZWN0KGpzQXJyYXktPmdldEluZGV4KGdsb2JhbE9iamVjdCwgaSkpOworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgYnVzLT5udW1iZXJPZkNoYW5uZWxzKCk7ICsr
aikgeworICAgICAgICAgICAgYXV0byogY2hhbm5lbCA9IGJ1cy0+Y2hhbm5lbChqKTsKKyAgICAg
ICAgICAgIGF1dG8qIGpzQ2hhbm5lbERhdGEgPSBqc0Nhc3Q8SlNGbG9hdDMyQXJyYXkqPihjaGFu
bmVsc0FycmF5LT5nZXRJbmRleChnbG9iYWxPYmplY3QsIGopKTsKKyAgICAgICAgICAgIGlmIChq
c0NoYW5uZWxEYXRhLT5sZW5ndGgoKSA9PSBjaGFubmVsLT5sZW5ndGgoKSkKKyAgICAgICAgICAg
ICAgICBtZW1jcHkoY2hhbm5lbC0+bXV0YWJsZURhdGEoKSwganNDaGFubmVsRGF0YS0+dHlwZWRW
ZWN0b3IoKSwgc2l6ZW9mKGZsb2F0KSAqIGNoYW5uZWwtPmxlbmd0aCgpKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBjaGFubmVsLT56ZXJvKCk7CisgICAgICAgIH0KKyAgICB9
Cit9CisKIEV4Y2VwdGlvbk9yPFJlZjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+PiBBdWRpb1dvcmts
ZXRQcm9jZXNzb3I6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewog
ICAgIGF1dG8gY29uc3RydWN0aW9uRGF0YSA9IGRvd25jYXN0PEF1ZGlvV29ya2xldEdsb2JhbFNj
b3BlPihjb250ZXh0KS50YWtlUGVuZGluZ1Byb2Nlc3NvckNvbnN0cnVjdGlvbkRhdGEoKTsKQEAg
LTU1LDYgKzExOCw0MiBAQCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OkF1ZGlvV29ya2xldFByb2Nl
c3Nvcihjb25zdCBBdWRpb1dvcmtsZXRQcm9jZXNzb3JDb25zdHJ1YwogICAgIEFTU0VSVCghaXNN
YWluVGhyZWFkKCkpOwogfQogCitib29sIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2Vzcyhj
b25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZlB0cjxBdWRp
b0J1cz4+JiBvdXRwdXRzLCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1
ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24pCit7
CisgICAgQVNTRVJUKG1fcHJvY2Vzc0NhbGxiYWNrKTsKKyAgICBhdXRvKiBnbG9iYWxPYmplY3Qg
PSBtX3Byb2Nlc3NDYWxsYmFjay0+Z2xvYmFsT2JqZWN0KCk7CisgICAgQVNTRVJUKGdsb2JhbE9i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKKworICAgIGF1
dG8mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsK
KworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBjb25zaWRlciBjYWNoaW5nIHRoZSBKU0FycmF5cyAmIEpTTWFwIGFuZCBvbmx5IHVwZGF0ZSB0
aGVpciBpdGVtcworICAgIC8vIGV2ZXJ5IHRpbWUgcHJvY2VzcygpIGlzIGNhbGxlZCwgZm9yIHBl
cmZvcm1hbmNlIHJlYXNvbnMuCisgICAgYXJncy5hcHBlbmQoY29uc3RydWN0RnJvemVuSlNBcnJh
eSh2bSwgZ2xvYmFsT2JqZWN0LCBpbnB1dHMsIFNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGE6Olll
cykpOworICAgIGF1dG8qIG91cHV0SlNBcnJheSA9IGNvbnN0cnVjdEZyb3plbkpTQXJyYXkodm0s
IGdsb2JhbE9iamVjdCwgb3V0cHV0cywgU2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YTo6Tm8pOwor
ICAgIGFyZ3MuYXBwZW5kKG91cHV0SlNBcnJheSk7CisgICAgYXJncy5hcHBlbmQoY29uc3RydWN0
SlNNYXAodm0sIGdsb2JhbE9iamVjdCwgcGFyYW1WYWx1ZXNNYXApKTsKKworICAgIE5ha2VkUHRy
PEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICBhdXRvIHJlc3VsdCA9IG1f
cHJvY2Vzc0NhbGxiYWNrLT5pbnZva2VDYWxsYmFjayhqc1VuZGVmaW5lZCgpLCBhcmdzLCBKU0Nh
bGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJwcm9jZXNzIiksIHJldHVybmVkRXhjZXB0aW9uKTsKKyAgICBpZiAocmV0dXJuZWRFeGNl
cHRpb24pIHsKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgcmV0dXJuZWRF
eGNlcHRpb24pOworICAgICAgICB0aHJld0V4Y2VwdGlvbiA9IHRydWU7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICBjb3B5RGF0YUZyb21KU0FycmF5VG9CdXNlcyhnbG9iYWxP
YmplY3QsIG91cHV0SlNBcnJheSwgb3V0cHV0cyk7CisKKyAgICByZXR1cm4gcmVzdWx0LnRvQm9v
bGVhbihnbG9iYWxPYmplY3QpOworfQorCit2b2lkIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6c2V0
UHJvY2Vzc0NhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxKU0NhbGxiYWNrRGF0YVN0cm9uZz4mJiBw
cm9jZXNzQ2FsbGJhY2spCit7CisgICAgbV9wcm9jZXNzQ2FsbGJhY2sgPSBXVEZNb3ZlKHByb2Nl
c3NDYWxsYmFjayk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaAppbmRleCA1ZmQzYTllZGIzMDQxNmExMWI0NDVh
YjU2MzQyM2JkMzcyYzkyNDZlLi44ZDExZTNmZTQzNDU1NWE3ZmMyMTkzMTIyMTc1NmU2ZmJiNmFh
YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFByb2Nlc3Nvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0UHJvY2Vzc29yLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNwcmFnbWEgb25jZQogCiAj
aWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJBdWRpb0FycmF5LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KQEAgLTM2LDcgKzM3LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBB
dWRpb0J1czsKIGNsYXNzIEF1ZGlvV29ya2xldFByb2Nlc3NvckNvbnN0cnVjdGlvbkRhdGE7Citj
bGFzcyBKU0NhbGxiYWNrRGF0YVN0cm9uZzsKIGNsYXNzIE1lc3NhZ2VQb3J0OwogY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIApAQCAtNDgsMTEgKzUxLDE2IEBAIHB1YmxpYzoKICAgICBj
b25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICBNZXNzYWdl
UG9ydCYgcG9ydCgpIHsgcmV0dXJuIG1fcG9ydC5nZXQoKTsgfQogCisgICAgYm9vbCBwcm9jZXNz
KGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmUHRyPEF1
ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2VwdGlvbik7
CisKKyAgICB2b2lkIHNldFByb2Nlc3NDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8SlNDYWxsYmFj
a0RhdGFTdHJvbmc+JiYpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEF1ZGlvV29ya2xldFBy
b2Nlc3Nvcihjb25zdCBBdWRpb1dvcmtsZXRQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhJik7CiAK
ICAgICBTdHJpbmcgbV9uYW1lOwogICAgIFJlZjxNZXNzYWdlUG9ydD4gbV9wb3J0OworICAgIHN0
ZDo6dW5pcXVlX3B0cjxKU0NhbGxiYWNrRGF0YVN0cm9uZz4gbV9wcm9jZXNzQ2FsbGJhY2s7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDYWxsYmFja0RhdGEuaAppbmRleCAzZWIzYzFiNDhmNjlkMjM3YWM5NTAzODEzMjkwODdiOGZh
MzhhNWE4Li5jNWU4NmU3ZTZmNjUwNjFlYTQ1Y2YxNDlmYjE5MmI5OGIyYzYzNzZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmgKQEAgLTQzLDYgKzQzLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gKGFuZCBzeW5jaHJvbml6YXRpb24gd291bGQgYmUg
c2xvdykuCiAKIGNsYXNzIEpTQ2FsbGJhY2tEYXRhIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIENhbGxiYWNrVHlwZSB7IEZ1bmN0aW9uLCBP
YmplY3QsIEZ1bmN0aW9uT3JPYmplY3QgfTsKIApAQCAtNzIsNyArNzMsNyBAQCBwcml2YXRlOgog
CiBjbGFzcyBKU0NhbGxiYWNrRGF0YVN0cm9uZyA6IHB1YmxpYyBKU0NhbGxiYWNrRGF0YSB7CiBw
dWJsaWM6Ci0gICAgSlNDYWxsYmFja0RhdGFTdHJvbmcoSlNDOjpKU09iamVjdCogY2FsbGJhY2ss
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqKQorICAgIEpTQ2FsbGJhY2tE
YXRhU3Ryb25nKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCB2b2lkKiA9IG51bGxwdHIpCiAgICAgICAgIDogSlNDYWxsYmFja0RhdGEoZ2xv
YmFsT2JqZWN0KQogICAgICAgICAsIG1fY2FsbGJhY2soZ2xvYmFsT2JqZWN0LT52bSgpLCBjYWxs
YmFjaykKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5jcHAKaW5kZXggYTE0YTQyMWYxYTVh
ZTdlMzVjMTUxMzU1NDIxMmU3NGIwZGM1OGE0Ni4uOWE3YmY0OThlOWVjMDI1YTkzYmZlYjEzYzdi
Mjg0OTZiODRiMmY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmNwcApAQCAtNTMsOCArNTMs
OCBAQCBFcnJvckV2ZW50OjpFcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0
IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZQogewogfQogCi1FcnJvckV2ZW50OjpFcnJvckV2
ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWdu
ZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVu
a25vd24+IGVycm9yKQotICAgIDogRXZlbnQoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIENhbkJ1
YmJsZTo6Tm8sIElzQ2FuY2VsYWJsZTo6WWVzKQorRXJyb3JFdmVudDo6RXJyb3JFdmVudChjb25z
dCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlND
OjpTdHJvbmc8SlNDOjpVbmtub3duPiBlcnJvcikKKyAgICA6IEV2ZW50KHR5cGUsIENhbkJ1YmJs
ZTo6Tm8sIElzQ2FuY2VsYWJsZTo6WWVzKQogICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCiAgICAg
LCBtX2ZpbGVOYW1lKGZpbGVOYW1lKQogICAgICwgbV9saW5lTnVtYmVyKGxpbmVOdW1iZXIpCkBA
IC02Myw2ICs2MywxMSBAQCBFcnJvckV2ZW50OjpFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbAogewogfQogCitFcnJvckV2
ZW50OjpFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxl
TmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0
cm9uZzxKU0M6OlVua25vd24+IGVycm9yKQorICAgIDogRXJyb3JFdmVudChldmVudE5hbWVzKCku
ZXJyb3JFdmVudCwgbWVzc2FnZSwgZmlsZU5hbWUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwg
ZXJyb3IpCit7Cit9CisKIEVycm9yRXZlbnQ6On5FcnJvckV2ZW50KCkgPSBkZWZhdWx0OwogCiBF
dmVudEludGVyZmFjZSBFcnJvckV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0Vycm9yRXZlbnQuaAppbmRleCBkZjEzMWUzMWY2YmMyYjVkNzUzNWEzZmQ1OTM4NGRkODgyYjJm
ODY3Li5jNmMyYzQ0OGI4NjMzN2NiM2UwMmM3OTU3MDc2ZDVlYzEzNTdlZjhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FcnJvckV2ZW50LmgKQEAgLTQ3LDYgKzQ3LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRXJyb3JFdmVudChtZXNzYWdlLCBmaWxlTmFtZSwgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyLCBlcnJvcikpOwogICAgIH0KIAorICAgIHN0YXRpYyBSZWY8RXJyb3JFdmVu
dD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29s
dW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXJyb3JFdmVudCh0eXBlLCBtZXNzYWdlLCBmaWxlTmFt
ZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvcikpOworICAgIH0KKwogICAgIHN0cnVj
dCBJbml0IDogRXZlbnRJbml0IHsKICAgICAgICAgU3RyaW5nIG1lc3NhZ2U7CiAgICAgICAgIFN0
cmluZyBmaWxlbmFtZTsKQEAgLTc2LDYgKzgxLDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHRyeVNlcmlhbGl6ZUVycm9yKEpTQzo6SlNHbG9iYWxPYmplY3Qm
KTsKIAogcHJpdmF0ZToKKyAgICBFcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGlu
ZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+
IGVycm9yKTsKICAgICBFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVy
LCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yKTsKICAgICBFcnJvckV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNz
YWdlUG9ydC5jcHAKaW5kZXggOWRmOGZjZDI5ZGRjM2Y5OGYxMDI1OTVjMGMzZWZhNDQzZTY4NWFl
Mi4uYjQxODI4NWRlMWZkMDNjZjE5OGYxYTE4ZTczNTllODFiNzgwNjc5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVzc2FnZVBvcnQuY3BwCkBAIC0zMjgsMTkgKzMyOCwxOSBAQCBib29sIE1lc3NhZ2VQb3J0
Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIAogICAgIC8vIElmIHdlJ3JlIG5v
dCBpbiB0aGUgbWlkZGxlIG9mIGFza2luZyB0aGUgcmVtb3RlIHBvcnQgYWJvdXQgY29sbGVjdGFi
aWxpdHksIGRvIHNvIG5vdy4KICAgICBpZiAoIW1faXNBc2tpbmdSZW1vdGVBYm91dEdDKSB7Ci0g
ICAgICAgIFJlZlB0cjxXb3JrZXJUaHJlYWQ+IHdvcmtlclRocmVhZDsKLSAgICAgICAgaWYgKGlz
PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKLSAgICAgICAg
ICAgIHdvcmtlclRocmVhZCA9ICZkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkudGhyZWFkKCk7CisgICAgICAgIFJlZlB0cjxXb3JrZXJPcldvcmts
ZXRUaHJlYWQ+IHdvcmtlck9yV29ya2xldFRocmVhZDsKKyAgICAgICAgaWYgKGlzPFdvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAg
ICAgIHdvcmtlck9yV29ya2xldFRocmVhZCA9IGRvd25jYXN0PFdvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS53b3JrZXJPcldvcmtsZXRUaHJlYWQo
KTsKIAotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtyZW1vdGVJZGVudGlmaWVyID0gbV9yZW1v
dGVJZGVudGlmaWVyLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKGNvbnN0X2Nhc3Q8TWVzc2FnZVBv
cnQqPih0aGlzKSksIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oKSBtdXRh
YmxlIHsKLSAgICAgICAgICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpzaW5nbGV0b24o
KS5jaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShyZW1vdGVJZGVudGlmaWVyLCBbd2Vha1RoaXMg
PSBXVEZNb3ZlKHdlYWtUaGlzKSwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQp
XShhdXRvIGhhc0FjdGl2aXR5KSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBpZiAoIXdvcmtl
clRocmVhZCkgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtyZW1vdGVJZGVudGlmaWVyID0g
bV9yZW1vdGVJZGVudGlmaWVyLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKGNvbnN0X2Nhc3Q8TWVz
c2FnZVBvcnQqPih0aGlzKSksIHdvcmtlck9yV29ya2xldFRocmVhZCA9IFdURk1vdmUod29ya2Vy
T3JXb3JrbGV0VGhyZWFkKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIE1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyOjpzaW5nbGV0b24oKS5jaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShyZW1v
dGVJZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgd29ya2VyT3JXb3Jr
bGV0VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJPcldvcmtsZXRUaHJlYWQpXShhdXRvIGhhc0FjdGl2
aXR5KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoIXdvcmtlck9yV29ya2xldFRocmVh
ZCkgewogICAgICAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAgICAg
ICAgICAgICB3ZWFrVGhpcy0+dXBkYXRlQWN0aXZpdHkoaGFzQWN0aXZpdHkpOwogICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
d29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFt3ZWFrVGhpcyA9IFdURk1v
dmUod2Vha1RoaXMpLCBoYXNBY3Rpdml0eV0oYXV0byYpIG11dGFibGUgeworICAgICAgICAgICAg
ICAgIHdvcmtlck9yV29ya2xldFRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbd2Vh
a1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgaGFzQWN0aXZpdHldKGF1dG8mKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgICAgICAg
ICAgd2Vha1RoaXMtPnVwZGF0ZUFjdGl2aXR5KGhhc0FjdGl2aXR5KTsKICAgICAgICAgICAgICAg
ICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNGJiNDU2Nzg3ZDI4
ZDZjMThiYmRhZTZhYzM5Y2M1NzQ5ZDlmODAwLi4yMzY4Mzc4NzE3MTdjZTlkYzNhMjhjOTM0Njkw
ZWRjNmNiOTBiYTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMDkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQXVkaW9Xb3JrbGV0UHJvY2Vz
c29yIHRvIHByb2Nlc3MgYXVkaW8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzUzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVuc2tpcCBhbGwgQXVkaW9Xb3JrbGV0IHRlc3RzIG5vdyB0aGF0IHRoZXkg
YXJlIG5vIGxvbmdlciB0aW1pbmcgb3V0LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAyMC0xMC0wOSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW21hY09TXSBBZGQgZWRpdGFiaWxpdHkgdG8gaW5wdXQgdHlwZT1tb250aApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNmRjOTQzOWQ2NmUxY2E3ZDk4ODYyYWY3OGY3OGU5
MmQwODE0MGZjOS4uNTJkMmE1ODU5Mzg5NWEwZGE1ODAzMDQ0MWRkYzA4YWRhNjE3NTdhNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjAtMTAtMDkg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yIHRvIHByb2Nlc3MgYXVkaW8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzUzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgV1BUIHRlc3RzIG5vdyB0aGF0IG1vcmUg
Y2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVyc291cmNlbm9kZS1pbnRlcmZhY2UvYWN0
aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNl
L2F1ZGlvd29ya2xldG5vZGUtYXV0b21hdGljLXB1bGwuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtZGlzY29ubmVjdGVkLWlucHV0Lmh0
dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2Rl
LW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlv
d29ya2xldG5vZGUtb3V0cHV0LWNoYW5uZWwtY291bnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLWZyb3plbi1h
cnJheS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3Jr
bGV0cHJvY2Vzc29yLXByb2Nlc3MtemVyby1vdXRwdXRzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvbWlzZXMuaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3MtZ2V0dGVyLmh0dHBz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzb3ItY29uc3RydWN0
aW9uLXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3NpbXBs
ZS1pbnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jaGFubmVsbWVyZ2Vybm9kZS1pbnRl
cmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2ZXJub2Rl
LWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxl
bWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvY29ycy1jaGVjay5odHRwcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2Uvbm8tY29ycy5odHRwcy1l
eHBlY3RlZC50eHQ6CisKIDIwMjAtMTAtMDkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQ1NTIHRyYW5zZm9ybSBjb21wdXRlZCBzdHlsZSBzaG91bGQgbm90
IHJlZmxlY3QgaW5kaXZpZHVhbCB0cmFuc2Zvcm0gcHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggODExYzI5OGY1M2ZmZDJjYzQ5MGQwY2Q0NDkxNTZkYmJkNzg1MGIxNy4uYTg5MWE2NmNh
NDI2MTY2NTVlOTZkZmQ5ODBjZTk3MTBjYjlhOWRlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0z
MjAsMTkgKzMyMCwxNCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2Vi
YXBwYXBpcy9zY3JpcHRpbmcvZXZlbnQtbG9vcHMvZnVsbHlfYWN0aQogIyBTa2lwIFdQVCB3ZWJh
dWRpbyB0ZXN0cyB0aGF0IGFyZSB0aW1pbmcgb3V0LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYXN0cmVhbWF1ZGlvc291cmNl
bm9kZS1pbnRlcmZhY2UvbWVkaWFzdHJlYW1hdWRpb3NvdXJjZW5vZGUtcm91dGluZy5odG1sIFsg
U2tpcCBdCiAKLSMgVGhlc2Ugd2ViYXVkaW8gdGVzdHMgYXJlIHRpbWluZyBvdXQgZHVlIHRvIGxh
Y2sgZm9yIHN1cHBvcnQgZm9yIEF1ZGlvV29ya2xldC4KKyMgVGhpcyB0ZXN0IGlzIHRpbWluZyBv
dXQgZHVlIHRvIGxhY2sgb2Ygc3VwcG9ydCBmb3IgU2hhcmVkQXJyYXlCdWZmZXIuCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
d29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0LXBvc3RtZXNzYWdlLXNoYXJlZGFycmF5YnVm
ZmVyLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dv
cmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3Jr
bGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMuaHRtbCBbIFNraXAg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb3V0cHV0LWNoYW5u
ZWwtY291bnQuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1
ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLWZyb3plbi1hcnJheS5odHRwcy5odG1sIFsgU2tp
cCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nl
c3MtemVyby1vdXRwdXRzLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVy
ZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvbWlzZXMuaHR0cHMuaHRtbCBbIFNraXAgXQot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3MtZ2V0dGVyLmh0dHBzLmh0bWwgWyBTa2lw
IF0KKworIyBUaGlzIHRlc3QgaXMgdGltaW5nIG91dCBiZWNhdXNlIGl0IGNhbGxzIHN1c3BlbmQo
KSB0aGVuIHJlc3VtZSgpIG9uZSB3aXRob3V0IHlpZWxkaW5nLiBzdXNwZW5kKCkgc2V0cyBzdGF0
ZSB0byBzdXNwZW5kZWQgYXN5bmNocm9ub3VzbHkKKyMgc28gcmVzdW1lKCkgZG9lcyBub3Qga25v
dyB0aGVyZSBpcyBhIHBlbmRpbmcgc3VzcGVuZCgpIGFuZCByZXR1cm5zIGVhcmx5LgogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3MtcGFyYW1ldGVycy5odHRwcy5odG1sIFsgU2tpcCBd
Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLWNoYW5uZWxtZXJnZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy5o
dG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5n
Lmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVy
ZmFjZS9jb3JzLWNoZWNrLmh0dHBzLmh0bWwgWyBTa2lwIF0KKworIyBUaGlzIFdlYkF1ZGlvIHRl
c3QgaXMgdGltaW5nIG91dCwgcG90ZW50aWFsbHkgZHVlIHRvIGFuIEF1ZGlvV29ya2xldCBidWcu
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2Uvbm8tY29ycy5odHRwcy5o
dG1sIFsgU2tpcCBdCiAKICMgVGhpcyB3ZWJhdWRpbyB0ZXN0IGhhcyBiZWVuIHRpbWluZyBvdXQg
c2luY2UgaXRzIGltcG9ydCBmcm9tIEJsaW5rLgpAQCAtMzQxLDYgKzMzNiw3IEBAIHdlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UvbWVkaWFzdHJlYW1hdWRpb3NvdXJjZW5vZGUuaHRtbCBb
IFNraXAgXQogIyBXZWJhdWRpbyB0ZXN0cyB0aGF0IGFyZSBmbGFreS4KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1p
bnRlcmZhY2Uvay1yYXRlLXN0ZXJlby1wYW5uZXIuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWFu
YWx5c2Vybm9kZS1pbnRlcmZhY2UvdGVzdC1hbmFseXNlci1vdXRwdXQuaHRtbCBbIFBhc3MgRmFp
bHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvY29ycy1jaGVj
ay5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogIyBUaGlzIHRlc3QgaXMgcGFzc2luZyBi
dXQgdGhlIHByaW50ZWQgU05SIHZhbHVlIGRpZmZlcnMgZnJvbSBtYWNoaW5lIHRvIG1hY2hpbmUu
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLWF1ZGlvYnVmZmVyc291cmNlbm9kZS1pbnRlcmZhY2Uvc3ViLXNhbXBsZS1idWZmZXItc3Rp
dGNoaW5nLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpAQCAtMzQ4LDcgKzM0NCw2IEBAIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9i
dWZmZXJzb3VyY2Vub2RlCiAjIFZhbHVlcyBpbiBGQUlMIGxpbmVzIGRpZmZlciBmcm9tIG1hY2hp
bmUgdG8gbWFjaGluZSwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gdW5za2lwIHRoZW0gb25jZSB0aGV5
IHBhc3MuCiB3ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZS9hdWRpb2J1ZmZlcnNvdXJjZS1kZXR1
bmUtbW9kdWxhdGlvbi5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHdlYmF1ZGlvL0F1ZGlvQnVmZmVy
U291cmNlL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrcmF0ZS1tb2R1bGF0aW9uLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRw
dXQuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNzY5MjkgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5LXN0YXRlcy9hdXRvcGxheS13aXRoLXNsb3ctdGV4dC10
cmFja3MuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
YXVkaW9idWZmZXJzb3VyY2Vub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVyc291cmNlbm9kZS1pbnRlcmZh
Y2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGVjNzBlMDkzOTQ0
OTBmOTEyNmJiNWI2MDE0MzYxOWRhYWQ3ZmQ0YTguLjM1MWVkZjkyYWM3ZDJhNzY1YzAwYjhjMDA2
NzZjMzlkNTRjNTA1MjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9idWZmZXJzb3Vy
Y2Vub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1w
cm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtOSwxMyArOSwxMyBAQCBQQVNTIDwgW1Nl
dHVwIGdyYXBoXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCiBQ
QVNTID4gW3ZlcmlmeSBjb3VudCBjaGFuZ2VdCiBGQUlMIFggTnVtYmVyIG9mIGNoYW5uZWxzIGNo
YW5nZWQgaXMgbm90IHRydWUuIEdvdCBmYWxzZS4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCiBQQVNTICAgSW5kZXggd2hlcmUgaW5wdXQgY2hhbm5lbCBjb3VudCBjaGFuZ2Vk
IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxMjgwLgotRkFJTCBYIE51bWJlciBvZiBjaGFubmVs
cyBpbiBpbnB1dFswOi0yXTogRXhwZWN0ZWQgNyBmb3IgYWxsIHZhbHVlcyBidXQgZm91bmQgMTI3
OSB1bmV4cGVjdGVkIHZhbHVlczoKK0ZBSUwgWCBOdW1iZXIgb2YgY2hhbm5lbHMgaW4gaW5wdXRb
MDotMl06IEV4cGVjdGVkIDcgZm9yIGFsbCB2YWx1ZXMgYnV0IGZvdW5kIDEwMjMgdW5leHBlY3Rl
ZCB2YWx1ZXM6CiAJSW5kZXgJQWN0dWFsCi0JWzBdCTAKLQlbMV0JMAotCVsyXQkwCi0JWzNdCTAK
LQkuLi5hbmQgMTI3NSBtb3JlIGVycm9ycy4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCisJWzI1Nl0JMAorCVsyNTddCTAKKwlbMjU4XQkwCisJWzI1OV0JMAorCS4uLmFuZCAx
MDE5IG1vcmUgZXJyb3JzLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZB
SUwgWCBOdW1iZXIgb2YgY2hhbm5lbHMgaW4gaW5wdXRbLTE6XTogRXhwZWN0ZWQgMSBmb3IgYWxs
IHZhbHVlcyBidXQgZm91bmQgMSB1bmV4cGVjdGVkIHZhbHVlczoKIAlJbmRleAlBY3R1YWwKIAlb
MF0JMCBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9t
YXRpYy1wdWxsLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLWV4cGVjdGVk
LnR4dAppbmRleCAzMTg2MmRmMWE0YTdiNmFkMmE2YzZkNjM3MjY5MjQ0NTEyMTY1NWNiLi4zNTk1
NWNkYjMyZmVmODQxNzdiZmZjZjFlNTgxZjhiYTZiMTQwODI2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1hdXRvbWF0aWMt
cHVsbC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQt
aW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtYXV0b21hdGljLXB1bGwuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0xLDggKzEsMTAgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2Ug
PSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELgotVElNRU9VVCBFeGVj
dXRpbmcgInNldHVwLXdvcmtsZXQiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0
CitQQVNTIEV4ZWN1dGluZyAic2V0dXAtd29ya2xldCIKK1BBU1MgQXVkaXQgcmVwb3J0CiBQQVNT
ID4gW3NldHVwLXdvcmtsZXRdCitQQVNTICAgVGhlIGZpcnN0IGhhbGYgb2YgdGhlIGNhcHR1cmVk
IGJ1ZmZlciBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUuCitQQVNTICAgVGhlIHNlY29u
ZCBoYWxmIG9mIHRoZSBjYXB0dXJlZCBidWZmZXIgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQg
MC4KK1BBU1MgPCBbc2V0dXAtd29ya2xldF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
MiBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tz
IHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3Jr
bGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWRpc2Nvbm5lY3RlZC1pbnB1dC5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93
b3JrbGV0bm9kZS1kaXNjb25uZWN0ZWQtaW5wdXQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDJh
ODY2NjdhMTgzZjEwNDM5ZmIwMmNlNzRkZjY1OTA1ZjNlY2U2MjUuLjdmY2I4Y2VkODgzNWRhNmFm
NDViYjgxYThhYzJiMmRkMzY5MjdiNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93
b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWRpc2Nvbm5lY3RlZC1pbnB1dC5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNl
L2F1ZGlvd29ya2xldG5vZGUtZGlzY29ubmVjdGVkLWlucHV0Lmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtNCw5ICs0LDkgQEAgUEFTUyBFeGVjdXRpbmcgInRlc3QiCiBQQVNTIEF1ZGl0IHJlcG9ydAog
UEFTUyA+IFt0ZXN0XSBJbnB1dCBhcnJheSBsZW5ndGggc2hvdWxkIGJlIHplcm8gZm9yIGRpc2Nv
bm5lY3RlZCBpbnB1dAogUEFTUyAgIEJlZm9yZSBjb25uZWN0aW5nIHRoZSBzb3VyY2U6IElucHV0
IGFycmF5IGxlbmd0aCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgotRkFJTCBYIEZpcnN0
IG5vbi16ZXJvIG91dHB1dCBpcyBub3QgZXF1YWwgdG8gMTI4LiBHb3QgLTEuIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIEZpcnN0IG5vbi16ZXJvIG91dHB1dCBp
cyBlcXVhbCB0byAxMjguCiBQQVNTICAgV2hpbGUgc291cmNlIGlzIGNvbm5lY3RlZDogSW5wdXQg
YXJyYXkgbGVuZ3RoIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDEyOC4KIFBBU1MgICBBZnRl
ciBkaXNjb25uZWN0aW5nIHRoZSBzb3VyY2U6IElucHV0IGFycmF5IGxlbmd0aCBjb250YWlucyBv
bmx5IHRoZSBjb25zdGFudCAwLgotRkFJTCA8IFt0ZXN0XSAxIG91dCBvZiA0IGFzc2VydGlvbnMg
d2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCAj
IEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAxIHRhc2tzIHdlcmUgZmFpbGVk
LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPCBbdGVzdF0gQWxs
IGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRB
U0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2Rl
LW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQt
aW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb25lcnJvci5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggYzI2YWExMzM0NjUzOGMxYjI1NGEwM2QxOWY0ZWMwYTNjY2FlNWFkMi4uOTY3MTIxMzg5NzQ5
ZmQwYWFmMjY3ZmViZTRkYjI4OWU2MTJhNGRlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb25lcnJvci5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlv
d29ya2xldG5vZGUtb25lcnJvci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOSArMSwxNiBAQAog
Ci1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyAjIEFVRElU
IFRBU0sgUlVOTkVSIFNUQVJURUQuCi1USU1FT1VUIEV4ZWN1dGluZyAiY29uc3RydWN0b3ItZXJy
b3IiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gRXhlY3V0aW5nICJwcm9jZXNzLWVycm9yIgotTk9U
UlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgImNvbnN0cnVjdG9yLWVycm9yIgorUEFT
UyBFeGVjdXRpbmcgInByb2Nlc3MtZXJyb3IiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtj
b25zdHJ1Y3Rvci1lcnJvcl0KK1BBU1MgICBvbnByb2Nlc3NvcmVycm9yIGFyZ3VtZW50IHNob3Vs
ZCBiZSBhbiBFcnJvckV2ZW50IHdoZW4KKyAgICAgICAgICAgICAgICB0aGUgY29uc3RydWN0b3Ig
b2YgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIGhhcyBhbiBlcnJvci4gaXMgdHJ1ZS4KK1BBU1MgPCBb
Y29uc3RydWN0b3ItZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0
aW9ucykKK1BBU1MgPiBbcHJvY2Vzcy1lcnJvcl0KK1BBU1MgICBvbnByb2Nlc3NvcmVycm9yIGFy
Z3VtZW50IHNob3VsZCBiZSBhbiBFcnJvckV2ZW50IHdoZW4KKyAgICAgICAgICAgICAgICB0aGUg
cHJvY2VzcyBtZXRob2Qgb2YgdGhlIEF1ZGlvV29ya2xldFByb2Nlc3NvciBtZXRob2QKKyAgICAg
ICAgICAgICAgICBoYXMgYW4gZXJyb3IuIGlzIHRydWUuCitQQVNTIDwgW3Byb2Nlc3MtZXJyb3Jd
IEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJ
VCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0
bm9kZS1vdXRwdXQtY2hhbm5lbC1jb3VudC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vdXRwdXQtY2hhbm5l
bC1jb3VudC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMzg3YTc4NGQwNDcxOThmYTdjN2ZiMzVj
YTlmM2YxMmQ0MjJhMDkwZi4uMWZkMzBjN2E4ZDQ2MmQxN2IzY2FmOTAwODk5ZGQ5ZmQxMTY0N2Yy
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlv
d29ya2xldG5vZGUtb3V0cHV0LWNoYW5uZWwtY291bnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW91
dHB1dC1jaGFubmVsLWNvdW50Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDEzIEBACiAK
LUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTICMgQVVESVQg
VEFTSyBSVU5ORVIgU1RBUlRFRC4KLVRJTUVPVVQgRXhlY3V0aW5nICJEeW5hbWljYWxseSBjaGFu
Z2UgdGhlIGNoYW5uZWwgY291bnQgdG8gaWYgdW5zcGVjaWZpZWQuIiBUZXN0IHRpbWVkIG91dAot
Tk9UUlVOIEV4ZWN1dGluZyAiR2l2aWVuIG91dHB1dENoYW5uZWxDb3VudCBtdXN0IGJlIGhvbm9y
ZWQuIgotTk9UUlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgIkR5bmFtaWNhbGx5IGNo
YW5nZSB0aGUgY2hhbm5lbCBjb3VudCB0byBpZiB1bnNwZWNpZmllZC4iCitQQVNTIEV4ZWN1dGlu
ZyAiR2l2aWVuIG91dHB1dENoYW5uZWxDb3VudCBtdXN0IGJlIGhvbm9yZWQuIgorUEFTUyBBdWRp
dCByZXBvcnQKIFBBU1MgPiBbRHluYW1pY2FsbHkgY2hhbmdlIHRoZSBjaGFubmVsIGNvdW50IHRv
IGlmIHVuc3BlY2lmaWVkLl0KK1BBU1MgICBUaGUgZXhwZWN0ZWQgb3V0cHV0IGNoYW5uZWwgY291
bnQgaXMgZXF1YWwgdG8gMTcuCitQQVNTIDwgW0R5bmFtaWNhbGx5IGNoYW5nZSB0aGUgY2hhbm5l
bCBjb3VudCB0byBpZiB1bnNwZWNpZmllZC5dIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDEgYXNzZXJ0aW9ucykKK1BBU1MgPiBbR2l2aWVuIG91dHB1dENoYW5uZWxDb3VudCBtdXN0IGJl
IGhvbm9yZWQuXQorUEFTUyAgIFRoZSBleHBlY3RlZCBvdXRwdXQgY2hhbm5lbCBjb3VudCBpcyBl
cXVhbCB0byAyLgorUEFTUyA8IFtHaXZpZW4gb3V0cHV0Q2hhbm5lbENvdW50IG11c3QgYmUgaG9u
b3JlZC5dIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKK1BBU1Mg
IyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5Lgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93
b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtZnJvemVuLWFycmF5Lmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNz
b3ItcHJvY2Vzcy1mcm96ZW4tYXJyYXkuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDBkZjA0ZDc2
ZTBkOWU2ZjVkNDRiNDUwMjIyN2YxOTZmZjBiNzBlNzcuLjM0YzA2OTkwYWY4MWZhMDVjYmVmM2Jl
OTNkMmUxZGRhODIyYjAyM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy1mcm96ZW4tYXJyYXkuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFj
ZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy1mcm96ZW4tYXJyYXkuaHR0cHMtZXhwZWN0
ZWQudHh0CkBAIC0xLDkgKzEsMTUgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3Nh
Z2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELgotVElNRU9VVCBF
eGVjdXRpbmcgImNoZWNrLWZyb3plbi1hcnJheSIgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBFeGVj
dXRpbmcgInRyYW5zZmVyLWZyb3plbi1hcnJheSIKLU5PVFJVTiBBdWRpdCByZXBvcnQKK1BBU1Mg
RXhlY3V0aW5nICJjaGVjay1mcm96ZW4tYXJyYXkiCitQQVNTIEV4ZWN1dGluZyAidHJhbnNmZXIt
ZnJvemVuLWFycmF5IgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbY2hlY2stZnJvemVuLWFy
cmF5XQorUEFTUyAgIHxpbnB1dHN8IGlzIGZyb3plbiBpcyB0cnVlLgorUEFTUyAgIHxvdXRwdXRz
fCBpcyBmcm96ZW4gaXMgdHJ1ZS4KK1BBU1MgPCBbY2hlY2stZnJvemVuLWFycmF5XSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpCitQQVNTID4gW3RyYW5zZmVyLWZy
b3plbi1hcnJheV0KK1BBU1MgICBUcmFuc2ZlcnJpbmcgaW5wdXRzL291dHB1dHMsIGFuIGluZGl2
aWR1YWwgaW5wdXQvb3V0cHV0IGFycmF5LCBvciBhIGNoYW5uZWwgRmxvYXQzMkFycmF5IGlzIG5v
dCBhbGxvd2VkIGFzIGV4cGVjdGVkLiBpcyB0cnVlLgorUEFTUyAgIFRyYW5zZmVycmluZyBBcnJh
eUJ1ZmZlcnMgd2FzIHN1Y2Nlc3NmdWwgYXMgZXhwZWN0ZWQuIGlzIHRydWUuCitQQVNTIDwgW3Ry
YW5zZmVyLWZyb3plbi1hcnJheV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3Nl
cnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBz
dWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWlu
dGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy16ZXJvLW91dHB1dHMuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlv
d29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLXplcm8tb3V0cHV0cy5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggM2M3ZjAwMzZjMzgxMTU1ZWQyOGUwMTI5ZTFjN2Y4YzAxNWJmZjJiZi4uODJjZGZiZDZj
M2IzMDFiZGM4ZWNkM2M3YjE4MWFjM2U5NDc0NzUwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLXpl
cm8tb3V0cHV0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dv
cmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLXplcm8tb3V0cHV0
cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw5IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJ
TUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRF
RC4KLVRJTUVPVVQgRXhlY3V0aW5nICJjaGVjay16ZXJvLW91dHB1dHMiIFRlc3QgdGltZWQgb3V0
Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAiY2hlY2stemVyby1vdXRwdXRz
IgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbY2hlY2stemVyby1vdXRwdXRzXQorUEFTUyAg
IHxvdXRwdXRzfCBoYXMgYmVlbiBhbGwgemVyb3MgZm9yIDEgc2Vjb25kcyBhcyBleHBlY3RlZC4g
aXMgdHJ1ZS4KK1BBU1MgPCBbY2hlY2stemVyby1vdXRwdXRzXSBBbGwgYXNzZXJ0aW9ucyBwYXNz
ZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNI
RUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9taXNlcy5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uv
YXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb21pc2VzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAz
NjU0MWJmYTk2ZGZlMThkZmI1ZjQzYjJjZjBjYjkzNGZkMGVhNzRiLi4xZGExNzFjNjhjOTU3YTYx
MzdmMTQ5YWFjMTg0ZmRkMWI5NDRlZjM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
d29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb21pc2VzLmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVk
aW93b3JrbGV0cHJvY2Vzc29yLXByb21pc2VzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsx
LDQgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVP
VVQgdGVzdCBUZXN0IHRpbWVkIG91dAorRkFJTCB0ZXN0IGFzc2VydF90cnVlOiBNaWNyb3Rhc2sg
Y2hlY2twb2ludHMgYXJlIHBlcmZvcm1lZAorICAgICAgICAgICAgICAgICAgICAgICBpbiBiZXR3
ZWVuIHJlbmRlciBxdWFudHVtIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzLWdldHRlci5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJv
Y2Vzcy1nZXR0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDZhN2M2ZGUzMjUzYmZkMGZlZWU4
MDJiOTc1ZDdhYmRiZTVhN2IzY2YuLmE5NjRhM2I0NzU2NDQzMjVmYWVkZWYxZTAzN2U4NDExYmUw
MTdjNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9w
cm9jZXNzLWdldHRlci5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3MtZ2V0dGVyLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MSw2ICsxLDQgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0K
LVRJTUVPVVQgJ3Byb2Nlc3MnIGdldHRlciBvbiBwcm90b3R5cGUgVGVzdCB0aW1lZCBvdXQKLU5P
VFJVTiAncHJvY2VzcycgZ2V0dGVyIG9uIGluc3RhbmNlCitQQVNTICdwcm9jZXNzJyBnZXR0ZXIg
b24gcHJvdG90eXBlCitQQVNTICdwcm9jZXNzJyBnZXR0ZXIgb24gaW5zdGFuY2UKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3Nvci1jb25z
dHJ1Y3Rpb24tcG9ydC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29y
a2xldC1pbnRlcmZhY2UvcHJvY2Vzc29yLWNvbnN0cnVjdGlvbi1wb3J0Lmh0dHBzLWV4cGVjdGVk
LnR4dAppbmRleCBmNjBlYzhjMjA0NDQwZmUwZTBhYjBhNDg3NjUzZDVkOTE1NWRkYzE2Li42MDhk
YTA5MWE4MWQ4YWUyOTk2N2NlMDU2ZWE3OTFhN2Y0OTk2MzVhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzc29yLWNvbnN0cnVjdGlvbi1wb3J0
Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRl
cmZhY2UvcHJvY2Vzc29yLWNvbnN0cnVjdGlvbi1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MSw4ICsxLDYgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0K
IFBBU1Mgc3VwZXIoKSBhZnRlciBuZXcgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yKCkKIFBBU1MgbmV3
IEF1ZGlvV29ya2xldFByb2Nlc3NvcigpIGFmdGVyIHN1cGVyKCkKIFBBU1MgbmV3IEF1ZGlvV29y
a2xldFByb2Nlc3NvcigpIGFmdGVyIG5ldyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IoKQotVElNRU9V
VCBTaW5nbGV0b24gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIFRlc3QgdGltZWQgb3V0CitQQVNTIFNp
bmdsZXRvbiBBdWRpb1dvcmtsZXRQcm9jZXNzb3IKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJh
dWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3NpbXBsZS1pbnB1
dC1vdXRwdXQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGIwZGFjMmQ3MmRmMmRiMjJlZDlhZDkz
ODc2ZTQyODBjZDYyZTFiYmUuLjQ3NTM3YjY3ZWQ1OWQzNzllNjYwYWU3OTczYmFkYTgzZThlOTRk
ZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9zaW1w
bGUtaW5wdXQtb3V0cHV0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1
ZGlvd29ya2xldC1pbnRlcmZhY2Uvc2ltcGxlLWlucHV0LW91dHB1dC5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTcsMjUgKzcsOCBAQCBQQVNTID4gW0luaXRpYWxpemUgd29ya2xldF0KIFBBU1MgICBD
cmVhdGlvbiBvZiBBdWRpb1dvcmtsZXQgcmVzb2x2ZWQgY29ycmVjdGx5LgogUEFTUyA8IFtJbml0
aWFsaXplIHdvcmtsZXRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9u
cykKIFBBU1MgPiBbdGVzdF0gU2ltcGxlIEF1ZGlvV29ya2xldCBJL08KLUZBSUwgWCBBdWRpb1dv
cmtsZXQgb3V0cHV0WzA6MTI3XSBkb2VzIG5vdCBlcXVhbCBbMSwxLjA1NzU2NDAyMDE1Njg2MDQs
MS4xMTQ5MzcxODYyNDExNSwxLjE3MTkyOTEyMTAxNzQ1NiwxLjIyODM1MDg3Nzc2MTg0MDgsMS4y
ODQwMTUxNzg2ODA0MiwxLjMzODczNzg0NTQyMDgzNzQsMS4zOTIzMzY5NjQ2MDcyMzg4LDEuNDQ0
NjM1MDMzNjA3NDgzLDEuNDk1NDU4NjAyOTA1MjczNCwxLjU0NDYzODc1MjkzNzMxNywxLjU5MjAx
MzEyMDY1MTI0NTEsMS42Mzc0MjM3NTM3Mzg0MDMzLDEuNjgwNzIwODA2MTIxODI2MiwxLjcyMTc2
MDAzNDU2MTE1NzIsMS43NjA0MDU4OTgwOTQxNzcyLi4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0
b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9
LgotCUluZGV4CUFjdHVhbAkJCUV4cGVjdGVkCQlBYnNFcnJvcgkJUmVsRXJyb3IJCVRlc3QgdGhy
ZXNob2xkCi0JWzBdCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJ
MS4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkwLjAwMDAwMDAwMDAw
MDAwMDBlKzAKLQlbMV0JMC4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMDU3NTY0MDIwMTU2ODYwNGUr
MAkxLjA1NzU2NDAyMDE1Njg2MDRlKzAJMS4wMDAwMDAwMDAwMDAwMDAwZSswCTAuMDAwMDAwMDAw
MDAwMDAwMGUrMAotCVsyXQkwLjAwMDAwMDAwMDAwMDAwMDBlKzAJMS4xMTQ5MzcxODYyNDExNDk5
ZSswCTEuMTE0OTM3MTg2MjQxMTQ5OWUrMAkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJMC4wMDAwMDAw
MDAwMDAwMDAwZSswCi0JWzNdCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjE3MTkyOTEyMTAxNzQ1
NjFlKzAJMS4xNzE5MjkxMjEwMTc0NTYxZSswCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkwLjAwMDAw
MDAwMDAwMDAwMDBlKzAKLQlbNF0JMC4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMjI4MzUwODc3NzYx
ODQwOGUrMAkxLjIyODM1MDg3Nzc2MTg0MDhlKzAJMS4wMDAwMDAwMDAwMDAwMDAwZSswCTAuMDAw
MDAwMDAwMDAwMDAwMGUrMAotCS4uLmFuZCAxMjMgbW9yZSBlcnJvcnMuCi0JTWF4IEFic0Vycm9y
IG9mIDEuOTk5ODc2NDk5MTc2MDI1NGUrMCBhdCBpbmRleCBvZiAyNy4KLQlbMjddCTAuMDAwMDAw
MDAwMDAwMDAwMGUrMAkxLjk5OTg3NjQ5OTE3NjAyNTRlKzAJMS45OTk4NzY0OTkxNzYwMjU0ZSsw
CTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKLQlNYXggUmVsRXJy
b3Igb2YgMS4wMDAwMDAwMDAwMDAwMDAwZSswIGF0IGluZGV4IG9mIDAuCi0gYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggQXVkaW9Xb3JrbGV0IG91dHB1dFsxMjg6
XTogRXhwZWN0ZWQgMSBmb3IgYWxsIHZhbHVlcyBidXQgZm91bmQgNDc4NzIgdW5leHBlY3RlZCB2
YWx1ZXM6Ci0JSW5kZXgJQWN0dWFsCi0JWzBdCTAKLQlbMV0JMAotCVsyXQkwCi0JWzNdCTAKLQku
Li5hbmQgNDc4NjggbW9yZSBlcnJvcnMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCA8IFt0ZXN0XSAyIG91dCBvZiAyIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFz
c2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCAjIEFVRElUIFRBU0sgUlVO
TkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBBdWRpb1dvcmtsZXQgb3V0cHV0WzA6MTI3
XSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ug
b2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgorUEFTUyAg
IEF1ZGlvV29ya2xldCBvdXRwdXRbMTI4Ol0gY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMS4K
K1BBU1MgPCBbdGVzdF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25z
KQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNz
ZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50
ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4
cGVjdGVkLnR4dAppbmRleCAxYTVlNTg5NDI3MDJiNmZmYzRmNzY2MmMzZDgyZjM2ZGRmNmYxNzJk
Li4xNjNhYzViZjU4YWEyYjU3OTQyZjY0YWYxYThmYmU4YzcyNmNkM2ViIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1h
dWRpby1hcGkvdGhlLWNoYW5uZWxtZXJnZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2lu
Zy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jaGFubmVsbWVyZ2Vybm9k
ZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDEy
ICsxLDE1IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQ
QVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KIFBBU1MgRXhlY3V0aW5nICJpbml0aWFs
aXplIgotVElNRU9VVCBFeGVjdXRpbmcgInRlc3QiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVk
aXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAidGVzdCIKK1BBU1MgQXVkaXQgcmVwb3J0CiBQQVNT
ID4gW2luaXRpYWxpemVdCiBQQVNTICAgQXVkaW9Xb3JrbGV0IG1vZHVsZSBsb2FkaW5nIHJlc29s
dmVkIGNvcnJlY3RseS4KIFBBU1MgPCBbaW5pdGlhbGl6ZV0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgMSBhc3NlcnRpb25zKQogUEFTUyA+IFt0ZXN0XQorUEFTUyAgIFRlc3QgMDogTnVt
YmVyIG9mIGNvbnZvbHZlciBvdXRwdXQgY2hhbm5lbHMgaXMgZXF1YWwgdG8gNy4KK0ZBSUwgWCBU
ZXN0IDE6IE51bWJlciBvZiBjb252b2x2ZXIgb3V0cHV0IGNoYW5uZWxzIGlzIG5vdCBlcXVhbCB0
byAxLiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAg
TnVtYmVyIG9mIGRpc3RpbmN0IHZhbHVlcyBpcyBlcXVhbCB0byAyLgorRkFJTCA8IFt0ZXN0XSAx
IG91dCBvZiAzIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBv
ZiAyIHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9h
Y3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZv
bHZlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApp
bmRleCAxYTVlNTg5NDI3MDJiNmZmYzRmNzY2MmMzZDgyZjM2ZGRmNmYxNzJkLi5iMjFlN2NhYzJj
MDY2NTBmN2MyZTEzNTllZmQzNWIxZTIyYmZkNzRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1w
cm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxNCBAQAogCi1IYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyAjIEFVRElUIFRBU0sgUlVO
TkVSIFNUQVJURUQuCiBQQVNTIEV4ZWN1dGluZyAiaW5pdGlhbGl6ZSIKLVRJTUVPVVQgRXhlY3V0
aW5nICJ0ZXN0IiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVj
dXRpbmcgInRlc3QiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtpbml0aWFsaXplXQogUEFT
UyAgIEF1ZGlvV29ya2xldCBtb2R1bGUgbG9hZGluZyByZXNvbHZlZCBjb3JyZWN0bHkuCiBQQVNT
IDwgW2luaXRpYWxpemVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9u
cykKIFBBU1MgPiBbdGVzdF0KK1BBU1MgICBUZXN0IDA6IE51bWJlciBvZiBjb252b2x2ZXIgb3V0
cHV0IGNoYW5uZWxzIGlzIGVxdWFsIHRvIDIuCitGQUlMIFggTnVtYmVyIG9mIGRpc3RpbmN0IHZh
bHVlcyBpcyBub3QgZXF1YWwgdG8gMi4gR290IDEuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorRkFJTCA8IFt0ZXN0XSAxIG91dCBvZiAyIGFzc2VydGlvbnMgd2VyZSBmYWls
ZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCAjIEFVRElUIFRB
U0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL2NvcnMtY2hlY2suaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUt
aW50ZXJmYWNlL2NvcnMtY2hlY2suaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGZlMmQ3OWRmMTYw
OGRmZjRjMzk5YTdiMzBkMzQyNGYzYTNiMGM4YTYuLjNhNDkyZWVhYWY1YTM3Mjc3NGQ1MTkzYzdi
ZTg4OWU3MjBkMzA5OWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVk
aW9zb3VyY2Vub2RlLWludGVyZmFjZS9jb3JzLWNoZWNrLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvY29y
cy1jaGVjay5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTUgQEAKIAotSGFybmVzcyBF
cnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5F
UiBTVEFSVEVELgogUEFTUyBFeGVjdXRpbmcgInNldHRpbmctdXAtZ3JhcGgiCi1USU1FT1VUIEV4
ZWN1dGluZyAic3RhcnQtcGxheWJhY2stYW5kLWNhcHR1cmUiIFRlc3QgdGltZWQgb3V0Ci1OT1RS
VU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAic3RhcnQtcGxheWJhY2stYW5kLWNhcHR1
cmUiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtzZXR0aW5nLXVwLWdyYXBoXQogUEFTUyA8
IFtzZXR0aW5nLXVwLWdyYXBoXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAwIGFzc2Vy
dGlvbnMpCiBQQVNTID4gW3N0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlXQorUEFTUyAgIFJlY29y
ZGVkIGNoYW5uZWwgIzAgaXMgbm90IGNvbnN0YW50bHkgMCAoY29udGFpbnMgMzMwODggZGlmZmVy
ZW50IHZhbHVlcykuCitQQVNTICAgUmVjb3JkZWQgY2hhbm5lbCAjMSBpcyBub3QgY29uc3RhbnRs
eSAwIChjb250YWlucyAzMzA5MCBkaWZmZXJlbnQgdmFsdWVzKS4KK1BBU1MgICBSZWNvcmRlZCBj
aGFubmVsICMyIGlzIG5vdCBjb25zdGFudGx5IDAgKGNvbnRhaW5zIDMzMDg5IGRpZmZlcmVudCB2
YWx1ZXMpLgorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzMgaXMgbm90IGNvbnN0YW50bHkgMCAo
Y29udGFpbnMgMzMwOTAgZGlmZmVyZW50IHZhbHVlcykuCitQQVNTIDwgW3N0YXJ0LXBsYXliYWNr
LWFuZC1jYXB0dXJlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMp
CitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDIgdGFza3MgcmFuIHN1Y2Nlc3Nm
dWxseS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJj
ZW5vZGUtaW50ZXJmYWNlL25vLWNvcnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL25vLWNvcnMuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IGZlMmQ3OWRmMTYwOGRmZjRjMzk5YTdiMzBkMzQyNGYzYTNiMGM4YTYu
LjRkMTM5ZDllZGU3MDE2MGFhMzgyYjJjMDI1M2Q2NmU2YmY3ODUzZjIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9uby1jb3Jz
Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlv
c291cmNlbm9kZS1pbnRlcmZhY2Uvbm8tY29ycy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEg
KzEsMTUgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBB
U1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELgogUEFTUyBFeGVjdXRpbmcgInNldHRpbmct
dXAtZ3JhcGgiCi1USU1FT1VUIEV4ZWN1dGluZyAic3RhcnQtcGxheWJhY2stYW5kLWNhcHR1cmUi
IFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAic3Rh
cnQtcGxheWJhY2stYW5kLWNhcHR1cmUiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtzZXR0
aW5nLXVwLWdyYXBoXQogUEFTUyA8IFtzZXR0aW5nLXVwLWdyYXBoXSBBbGwgYXNzZXJ0aW9ucyBw
YXNzZWQuICh0b3RhbCAwIGFzc2VydGlvbnMpCiBQQVNTID4gW3N0YXJ0LXBsYXliYWNrLWFuZC1j
YXB0dXJlXQorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzAgY29udGFpbnMgb25seSB0aGUgY29u
c3RhbnQgMC4KK1BBU1MgICBSZWNvcmRlZCBjaGFubmVsICMxIGNvbnRhaW5zIG9ubHkgdGhlIGNv
bnN0YW50IDAuCitQQVNTICAgUmVjb3JkZWQgY2hhbm5lbCAjMiBjb250YWlucyBvbmx5IHRoZSBj
b25zdGFudCAwLgorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzMgY29udGFpbnMgb25seSB0aGUg
Y29uc3RhbnQgMC4KK1BBU1MgPCBbc3RhcnQtcGxheWJhY2stYW5kLWNhcHR1cmVdIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJV
Tk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCg==
</data>
<flag name="commit-queue"
          id="427098"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410986</attachid>
            <date>2020-10-09 17:17:37 -0700</date>
            <delta_ts>2020-10-09 17:23:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217531-20201009171737.patch</filename>
            <type>text/plain</type>
            <size>63793</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiODVhZDY4MWE3ZWMx
YWNiM2E2OTkzMzJmOWY3NjU2NmNlMTk5MS4uNGMxMzRkNjU1OWQxMTIxZjRjZWU5ZjljZmMwY2Qw
ZGNjNzA0MWVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNyBAQAorMjAyMC0xMC0wOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IgdG8gcHJvY2VzcyBhdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIEF1ZGlvV29ya2xldFByb2Nlc3NvciB0byBwcm9jZXNzIGF1
ZGlvOgorICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlv
d29ya2xldHByb2Nlc3Nvci1wcm9jZXNzCisKKyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE5vZGUg
bG9naWMgaXMgYmFzZWQgb24gdGhlIEJsaW5rIGltcGxlbWVudGF0aW9uIGF0OgorICAgICAgICAt
IGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJvbWl1bS9jaHJvbWl1bS9ibG9iL21hc3Rlci90aGlyZF9w
YXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL3dlYmF1ZGlvL2F1ZGlvX3dvcmtsZXRfbm9kZS5j
YworCisgICAgICAgIFRoaXMgd2FzIHRoZSBsYXN0IHBpZWNlIG9mIGxvZ2ljIG5lZWRlZCB0byBt
YWtlIEF1ZGlvV29ya2xldCBmdW5jdGlvbmFsLgorICAgICAgICBJIGRpZCBub3QgZW5hYmxlIEF1
ZGlvV29ya2xldHMgYnkgZGVmYXVsdCBpbiB0aGlzIHBhdGNoIHRob3VnaCBiZWNhdXNlCisgICAg
ICAgIHRoZXJlIGFyZSBzdGlsbCBzb21lIHRlc3QgZmFpbHVyZXMgdGhhdCB3ZSBzaG91bGQgaW52
ZXN0aWdhdGUgZmlyc3QuCisgICAgICAgIE1vc3QgQXVkaW9Xb3JrbGV0IHRlc3RzIGFyZSBwYXNz
aW5nIHRob3VnaC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmg6CisgICAg
ICAgIFJldHVybiBhIGNvbnN0IHJlZmVyZW5jZSB0byBhdm9pZCByZWZjb3VudGluZyBjaHVybi4K
KworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNyZWF0ZVByb2Nl
c3Nvcik6CisgICAgICAgIEFmdGVyIHRoZSBKU0F1ZGlvV29ya2xldFByb2Nlc3Nvciwgd2UgY29u
c3RydWN0IGEgSlNDYWxsYmFja0RhdGEgZnJvbSB0aGUKKyAgICAgICAgSlNBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IgYW5kIHRoZSBnbG9iYWwgb2JqZWN0IGFuZCBjYWxsIGEgc2V0dGVyIG9uIHRoZQor
ICAgICAgICBBdWRpb1dvcmtsZXRQcm9jZXNzb3IuIFRoZSBwcm9jZXNzb3Igd2lsbCB1c2UgdGhp
cyB3aGVuIHByb2Nlc3MoKSBpcyBjYWxsZWQKKyAgICAgICAgdG8gZm9yd2FyZCB0aGUgY2FsbCB0
byBwcm9jZXNzKCkgaW4gSmF2YVNjcmlwdC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2Rl
OjpjcmVhdGUpOgorICAgICAgICAtIE1vdmUgdGhlIGxvZ2ljIGRlYWxpbmcgd2l0aCBBdWRpb1Bh
cmFtIG9iamVjdHMgdG8gaXRzIG93biBpbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJzKCkKKyAgICAg
ICAgZnVuY3Rpb24uCisgICAgICAgIC0gQ2FsbCBjb250ZXh0LnJlZk5vZGUobm9kZSkgc28gdGhh
dCB0aGUgbm9kZSBpcyBrZXB0IGFsaXZlIGJ5IHRoZSBhdWRpbyBjb250ZXh0CisgICAgICAgICAg
dW50aWwgcGxheWJhY2sgaXMgZmluaXNoZWQuIFRoZSBjYWxsIHRvIGNvbnRleHQoKS5ub3RpZnlO
b2RlRmluaXNoZWRQcm9jZXNzaW5nKHRoaXMpCisgICAgICAgICAgaW4gZGlkRmluaXNoUHJvY2Vz
c2luZ09uUmVuZGVyaW5nVGhyZWFkKCkgaXMgd2hhdCBub3RpZmllcyB0aGUgY29udGV4dCB0aGF0
IHdlIGZpbmlzaGVkCisgICAgICAgICAgcGxheWJhY2sgYW5kIGFsbG93cyB0aGUgbm9kZSB0byBn
ZXQgZGVzdHJveWVkLiBUaGlzIGlzIHNpbWlsYXIgdG8gd2hhdCBpcyBkb25lIGZvcgorICAgICAg
ICAgIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZXMuCisgICAgICAgIC0gQ2FsbCB1cGRhdGVQdWxs
U3RhdHVzKCkgc28gdGhhdCB0aGUgbm9kZSBnZXRzIGFkZGVkIHRvIHRoZSBhdXRvbWF0aWMgcHVs
bCBsaXN0IGlmIGl0CisgICAgICAgICAgZG9lcyBub3QgaGF2ZSBhbnkgb3V0cHV0cy4gT3RoZXJ3
aXNlLCB0aGUgbm9kZSB3b3VsZCBub3QgYmUgdXNlZCBmb3IgcmVuZGVyaW5nIGlmIGl0CisgICAg
ICAgICAgZGlkIG5vdCBoYXZlIGFueSBvdXRwdXRzLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
V29ya2xldE5vZGU6On5BdWRpb1dvcmtsZXROb2RlKToKKworICAgICAgICAoV2ViQ29yZTo6QXVk
aW9Xb3JrbGV0Tm9kZTo6aW5pdGlhbGl6ZUF1ZGlvUGFyYW1ldGVycyk6CisgICAgICAgIFRoaXMg
bG9naWMgd2FzIG1vc3RseSBtb3ZlZCBmcm9tIHRoZSBjcmVhdGUoKSBmdW5jdGlvbi4gVGhlIHBh
cnQgdGhhdCdzIG5ldyBpcyB0aGUKKyAgICAgICAgaW5pdGlhbGl6YXRpb24gb2YgbV9wYXJhbVZh
bHVlc01hcCB0byBmaWxsIGl0IHdpdGggZW1wdHkgYXVkaW8gYXJyYXlzLiBUaGVzZSBhcnJheXMK
KyAgICAgICAgYXJlIHVzZWQgaW4gcHJvY2VzcygpIHRvIHN0b3JlIHRoZSBzYW1wbGVzIGZyb20g
QXVkaW9QYXJhbSBvYmplY3RzLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2Rl
OjpzZXRQcm9jZXNzb3IpOgorICAgICAgICBGaXJlIGEgcHJvY2Vzc29yIGVycm9yIGlmIHRoZSBw
cm9jZXNzb3IgZ2V0cyBzZXQgdG8gbnVsbHB0ciwgaW5kaWNhdGluZyB0aGF0IHdlIGZhaWxlZAor
ICAgICAgICB0byBjb25zdHJ1Y3QgdGhlIEF1ZGlvV29ya2xldFByb2Nlc3NvciBvYmplY3QuCisK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6OnByb2Nlc3MpOgorICAgICAgICBG
aWxsIG1fcGFyYW1WYWx1ZXNNYXAgd2l0aCBzYW1wbGVzIGZyb20gYXNzb2NpYXRlZCBBdWRpb1Bh
cmFtIG9iamVjdHMgdGhlbiBjYWxsCisgICAgICAgIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJv
Y2VzcygpIHdpdGggaW5wdXQgJiBvdXRwdXQgQXVkaW9CdXMgb2JqZWN0cywgYXMgd2VsbAorICAg
ICAgICBhcyBtX3BhcmFtVmFsdWVzTWFwLiBJZiBwcm9jZXNzKCkgcmV0dXJucyBmYWxzZSBvciBl
bmNvdW50ZXJlZCBhbiBlcnJvciwgd2UgZmluaXNoCisgICAgICAgIHJlbmRlcmluZy4KKworICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6ZGlkRmluaXNoUHJvY2Vzc2luZ09uUmVu
ZGVyaW5nVGhyZWFkKToKKyAgICAgICAgVGhpcyBpcyBjYWxsZWQgYnkgcHJvY2VzcygpIHdoZW5l
dmVyIHByb2Nlc3MoKSByZXR1cm5zIGZhbHNlIG9yIGVuY291bnRlcmVkIGFuIGVycm9yLgorICAg
ICAgICBJZiBwcm9jZXNzKCkgZW5jb3VudGVyZWQgYW4gZXJyb3IsIHdlIG1ha2Ugc3VyZSB0byBm
aXJlIGEgcHJvY2Vzc29yZXZlbnQgZXZlbnQgdG8KKyAgICAgICAgbGV0IHRoZSBzY3JpcHQga25v
dy4gVGhlbiB3ZSBudWxsIG91dCB0aGUgcHJvY2Vzc29yIGFuZCBmaW5pc2ggcmVuZGVyaW5nLgor
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjp1cGRhdGVQdWxsU3RhdHVzKToK
KyAgICAgICAgSWYgdGhlIG5vZGUgaGFzIG5vIG91dHB1dCwgd2UgbmVlZCB0byBtYWtlIHN1cmUg
dG8gYWRkIGl0IHRvIHRoZSBhdXRvbWF0aWMgcHVsbAorICAgICAgICBsaXN0IGluIHRoZSBjb250
ZXh0IHNvIHRoYXQgaXQgaXMgdXNlZCBmb3IgcmVuZGVyaW5nLgorCisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1dvcmtsZXROb2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dCk6CisgICAg
ICAgIFVzZSBzYW1lIGxvZ2ljIGFzIEJsaW5rIGhlcmUuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvV29ya2xldE5vZGU6OmZpcmVQcm9jZXNzb3JFcnJvck9uTWFpblRocmVhZCk6CisgICAgICAg
IExvZ2ljIHRvIGZpcmUgYSBwcm9jZXNzb3JlcnJvciBldmVudCBvbiB0aGUgbWFpbiB0aHJlYWQg
d2l0aCBhIGRlY2VudCBlcnJvciBtZXNzYWdlLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dv
cmtsZXROb2RlOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvV29ya2xldE5vZGU6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAg
ICAgICBBY3RpdmVET01PYmplY3Qgb3ZlcnJpZGVzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmg6CisgICAgICAgIFN1YmNsYXNzIEF1ZGlvV29ya2xldE5v
ZGUgc2luY2Ugd2UgY2FuIGZpcmUgcHJvY2Vzc29yZXJyb3IgZXZlbnRzCisgICAgICAgIGF0IGFu
eSBwb2ludCBkdXJpbmcgcmVuZGVyaW5nLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmlkbDoKKyAgICAgICAgTWFrZSBpdCBhbiBBY3RpdmVET01PYmplY3Qu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheSk6CisgICAgICAgIChX
ZWJDb3JlOjpjb25zdHJ1Y3RKU01hcCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RGcm96
ZW5KU0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlEYXRhRnJvbUpTQXJyYXlUb0J1c2Vz
KToKKyAgICAgICAgQSBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyB0byBjb252ZXJ0IFdlYkNv
cmUgdHlwZXMgaW50byB0aGUgc3VpdGFibGUKKyAgICAgICAgSmF2YVNjcmlwdCB0eXBlcyB0aGF0
IGFyZSBleHBlY3RlZCBieSB0aGUgcHJvY2VzcygpIGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICBQcm92aWRlIGlt
cGxlbWVudGF0aW9uIGZvciBwcm9jZXNzKCk6CisgICAgICAgIC0gaHR0cHM6Ly93d3cudzMub3Jn
L1RSL3dlYmF1ZGlvLyNkb20tYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MKKyAgICAgICAg
V2UgY29udmVydCB0aGUgcGFyYW1ldGVycyBpbnRvIHRoZSBKYXZhU2NyaXB0IHR5cGVzIHRoYXQg
dGhlIEpTIHByb2Nlc3MoKQorICAgICAgICBmdW5jdGlvbiBleHBlY3RzLCB0aGVuIGNhbGwgdGhl
IHByb2Nlc3MoKSBmdW5jdGlvbiBhbmQgZmluYWxseSByZXR1cm4KKyAgICAgICAgdGhlIHZhbHVl
IHJldHVybmVkIGJ5IHRoZSBKUyBwcm9jZXNzKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6c2V0UHJvY2Vzc0NhbGxiYWNrKToKKyAgICAgICAg
VGhpcyBpcyBjYWxsZWQgYnkgdGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIHJpZ2h0IGFmdGVy
IHRoZSBBdWRpb1dvcmtsZXRQcm9jZXNzb3IKKyAgICAgICAgd3JhcHBlciBnZXRzIGNvbnN0cnVj
dGVkIHRvIHNldCB0aGUgSlNDYWxsYmFja0RhdGEgb2JqZWN0IHRoYXQgaXMgdXNlZAorICAgICAg
ICBieSBwcm9jZXNzKCkgdG8gY2FsbCB0aGUgSlMgcHJvY2VzcygpIGZ1bmN0aW9uLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaDoKKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0Nh
bGxiYWNrRGF0YVN0cm9uZzo6SlNDYWxsYmFja0RhdGFTdHJvbmcpOgorICAgICAgICBNYWtlIEpT
Q2FsbGJhY2tEYXRhIGZhc3QgYWxsb2NhdGVkLiBUaGUgYmluZGluZ3MgYW5kIG15IG5ldyBjb2Rl
IGhlYXAtYWxsb2NhdGUgaXQuCisKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFcnJvckV2ZW50OjpFcnJvckV2ZW50KToKKyAgICAgICAgKiBkb20vRXJy
b3JFdmVudC5oOgorICAgICAgICBBZGQgYW4gZXZlbnRUeXBlIHBhcmFtZXRlciBzaW5jZSBBdWRp
b1dvcmtsZXROb2RlIG5vdyBuZWVkcyB0byBkaXNwYXRjaCBhbiBFcnJvckV2ZW50CisgICAgICAg
IHdob3NlIHR5cGUgaXMgInByb2Nlc3NvcmVycm9yIiwgbm90IHRoZSBnZW5lcmljICJlcnJvciIu
CisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVz
c2FnZVBvcnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICBGaXgg
TWVzc2FnZVBvcnQgZ2FyYmFzZSBjb2xsZWN0aW9uIGxvZ2ljIHRvIHByb3Blcmx5IGRlYWwgd2l0
aCBNZXNzYWdlUG9ydHMgZnJvbQorICAgICAgICB3b3JrbGV0cy4gVGhpcyBhZGRyZXNzZXMgY3Jh
c2hlcyBmb3VuZCBieSB0aGUgdW5za2lwcGVkIGxheW91dCB0ZXN0cy4KKwogMjAyMC0xMC0wOSAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0
aW9uXSBPdmVyZmxvdyBjbGlwIGJsb2NrcyB2aXN1YWwgb3ZlcmZsb3cKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmgKaW5kZXggZjRlOTNkNjhiZTZlNGQ2ODhl
NzRkMGIyNjM5ODYxNTM1NGU4NmJmMS4uMTZiNDMyNTViNjNlMjc3NzE4Mzg1MjcxMDRiZDdhZjlh
MDYxNDI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFt
LmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIC8vIE11c3QgYmUgY2FsbGVkIGluIHRo
ZSBhdWRpbyB0aHJlYWQuCiAgICAgZmxvYXQgZmluYWxWYWx1ZSgpOwogCi0gICAgU3RyaW5nIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBj
b25zdCB7IHJldHVybiBtX25hbWU7IH0KIAogICAgIGZsb2F0IG1pblZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9taW5WYWx1ZTsgfQogICAgIGZsb2F0IG1heFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9tYXhWYWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCA0NTMwNjIwMzAwMWM0ZWQz
MmMxMTUwZmU4MDQ3YTA4Yzg5N2RiZDJiLi4yYTMwNmQ0ZjQxYzk3NDRiOWU2NTdjY2NjYTEyZjk2
YjllYzU0MWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIFJl
ZlB0cjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpjcmVh
dGVQcm9jZXNzb3IoY29uc3QgU3RyCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgSlND
OjpKU09iamVjdCoganNDb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yLT5jYWxsYmFja0RhdGEoKS0+
Y2FsbGJhY2soKTsKLSAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBqc0NvbnN0cnVjdG9yLT5nbG9i
YWxPYmplY3QoKTsKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBjb25zdHJ1Y3Rvci0+Y2FsbGJh
Y2tEYXRhKCktPmdsb2JhbE9iamVjdCgpOwogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrIHsgZ2xvYmFsT2JqZWN0IH07CkBAIC0xMzYsNiArMTM2LDgg
QEAgUmVmUHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nvcj4gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6
OmNyZWF0ZVByb2Nlc3Nvcihjb25zdCBTdHIKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKIAogICAgIGF1dG8mIGpzUHJvY2Vzc29yID0gKkpTQzo6anNDYXN0PEpTQXVk
aW9Xb3JrbGV0UHJvY2Vzc29yKj4ob2JqZWN0KTsKKyAgICBqc1Byb2Nlc3Nvci53cmFwcGVkKCku
c2V0UHJvY2Vzc0NhbGxiYWNrKG1ha2VVbmlxdWU8SlNDYWxsYmFja0RhdGFTdHJvbmc+KCZqc1By
b2Nlc3NvciwgZ2xvYmFsT2JqZWN0KSk7CisKICAgICByZXR1cm4gJmpzUHJvY2Vzc29yLndyYXBw
ZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggNmJlNzliOTkzZmI2NTk5YTgyNjMwODllZTA4NDNjYmMz
MjUxNmY5OS4uNDEyMWMyZTYyZTY3MjI5NWEzMzYxOTg0MmRjNTJlMmQ2NWFiMDk5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUu
Y3BwCkBAIC0zMiwxNCArMzIsMTcgQEAKICNpbmNsdWRlICJBdWRpb1dvcmtsZXROb2RlLmgiCiAK
ICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKKyNpbmNsdWRlICJBdWRpb05vZGVJbnB1dC5oIgog
I2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgogI2luY2x1ZGUgIkF1ZGlvUGFyYW0uaCIKICNp
bmNsdWRlICJBdWRpb1BhcmFtTWFwLmgiCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNp
bmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKICNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5oIgogI2luY2x1ZGUgIkF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmgiCiAjaW5jbHVkZSAi
QXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgiCiAjaW5jbHVkZSAiQmFzZUF1ZGlvQ29udGV4dC5oIgor
I2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJKU0F1ZGlvV29ya2xldE5vZGVPcHRp
b25zLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUNoYW5uZWwuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9y
dC5oIgpAQCAtOTAsMzMgKzkzLDM1IEBAIEV4Y2VwdGlvbk9yPFJlZjxBdWRpb1dvcmtsZXROb2Rl
Pj4gQXVkaW9Xb3JrbGV0Tm9kZTo6Y3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmCiAKICAgICBh
dXRvIHBhcmFtZXRlckRhdGEgPSBXVEZNb3ZlKG9wdGlvbnMucGFyYW1ldGVyRGF0YSk7CiAgICAg
YXV0byBub2RlID0gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXROb2RlKGNvbnRleHQsIG5hbWUs
IFdURk1vdmUob3B0aW9ucyksICpub2RlTWVzc2FnZVBvcnQpKTsKKyAgICBub2RlLT5zdXNwZW5k
SWZOZWVkZWQoKTsKIAogICAgIGF1dG8gcmVzdWx0ID0gbm9kZS0+aGFuZGxlQXVkaW9Ob2RlT3B0
aW9ucyhvcHRpb25zLCB7IDIsIENoYW5uZWxDb3VudE1vZGU6Ok1heCwgQ2hhbm5lbEludGVycHJl
dGF0aW9uOjpTcGVha2VycyB9KTsKICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKIAotICAgIGZvciAoYXV0byYg
ZGVzY3JpcHRvciA6IHBhcmFtZXRlckRlc2NyaXB0b3JzKSB7Ci0gICAgICAgIGF1dG8gcGFyYW1l
dGVyID0gQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsIGRlc2NyaXB0b3IubmFtZSwgZGVzY3Jp
cHRvci5kZWZhdWx0VmFsdWUsIGRlc2NyaXB0b3IubWluVmFsdWUsIGRlc2NyaXB0b3IubWF4VmFs
dWUsIGRlc2NyaXB0b3IuYXV0b21hdGlvblJhdGUpOwotICAgICAgICBub2RlLT5wYXJhbWV0ZXJz
KCkuYWRkKGRlc2NyaXB0b3IubmFtZSwgV1RGTW92ZShwYXJhbWV0ZXIpKTsKLSAgICB9CisgICAg
bm9kZS0+aW5pdGlhbGl6ZUF1ZGlvUGFyYW1ldGVycyhwYXJhbWV0ZXJEZXNjcmlwdG9ycywgcGFy
YW1ldGVyRGF0YSk7CiAKLSAgICBpZiAocGFyYW1ldGVyRGF0YSkgewotICAgICAgICBmb3IgKGF1
dG8mIHBhcmFtZXRlciA6ICpwYXJhbWV0ZXJEYXRhKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byog
YXVkaW9QYXJhbSA9IG5vZGUtPnBhcmFtZXRlcnMoKS5tYXAoKS5nZXQocGFyYW1ldGVyLmtleSkp
Ci0gICAgICAgICAgICAgICAgYXVkaW9QYXJhbS0+c2V0VmFsdWUocGFyYW1ldGVyLnZhbHVlKTsK
LSAgICAgICAgfQotICAgIH0KKyAgICAvLyBXaWxsIGNhdXNlIHRoZSBjb250ZXh0IHRvIHJlZiB0
aGUgbm9kZSB1bnRpbCBwbGF5YmFjayBoYXMgZmluaXNoZWQuCisgICAgY29udGV4dC5yZWZOb2Rl
KG5vZGUpOwogCiAgICAgY29udGV4dC5hdWRpb1dvcmtsZXQoKS5jcmVhdGVQcm9jZXNzb3IobmFt
ZSwgcHJvY2Vzc29yTWVzc2FnZVBvcnQtPmRpc2VudGFuZ2xlKCksIHNlcmlhbGl6ZWRPcHRpb25z
LnJlbGVhc2VOb25OdWxsKCksIG5vZGUpOwogCisgICAgeworICAgICAgICAvLyBUaGUgbm9kZSBz
aG91bGQgYmUgbWFudWFsbHkgYWRkZWQgdG8gdGhlIGF1dG9tYXRpYyBwdWxsIG5vZGUgbGlzdCwg
ZXZlbiB3aXRob3V0IGEgY29ubmVjdCgpIGNhbGwuCisgICAgICAgIEJhc2VBdWRpb0NvbnRleHQ6
OkF1dG9Mb2NrZXIgY29udGV4dExvY2tlcihjb250ZXh0KTsKKyAgICAgICAgbm9kZS0+dXBkYXRl
UHVsbFN0YXR1cygpOworICAgIH0KKwogICAgIHJldHVybiBub2RlOwogfQogCiBBdWRpb1dvcmts
ZXROb2RlOjpBdWRpb1dvcmtsZXROb2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMmJiBvcHRpb25zLCBSZWY8TWVz
c2FnZVBvcnQ+JiYgcG9ydCkKICAgICA6IEF1ZGlvTm9kZShjb250ZXh0LCBOb2RlVHlwZVdvcmts
ZXQpCisgICAgLCBBY3RpdmVET01PYmplY3QoY29udGV4dC5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpCiAgICAgLCBtX25hbWUobmFtZSkKICAgICAsIG1fcGFyYW1ldGVycyhBdWRpb1BhcmFtTWFw
OjpjcmVhdGUoKSkKICAgICAsIG1fcG9ydChXVEZNb3ZlKHBvcnQpKQorICAgICwgbV93YXNPdXRw
dXRDaGFubmVsQ291bnRHaXZlbighIW9wdGlvbnMub3V0cHV0Q2hhbm5lbENvdW50KQogewogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG9w
dGlvbnMubnVtYmVyT2ZJbnB1dHM7ICsraSkKQEAgLTEyNCw2ICsxMjksOSBAQCBBdWRpb1dvcmts
ZXROb2RlOjpBdWRpb1dvcmtsZXROb2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgbmFtZQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBvcHRpb25zLm51bWJl
ck9mT3V0cHV0czsgKytpKQogICAgICAgICBhZGRPdXRwdXQob3B0aW9ucy5vdXRwdXRDaGFubmVs
Q291bnQgPyBvcHRpb25zLm91dHB1dENoYW5uZWxDb3VudC0+YXQoaSk6IDEpOwogCisgICAgbV9p
bnB1dHMucmVzaXplKG9wdGlvbnMubnVtYmVyT2ZJbnB1dHMpOworICAgIG1fb3V0cHV0cy5yZXNp
emUob3B0aW9ucy5udW1iZXJPZk91dHB1dHMpOworCiAgICAgaW5pdGlhbGl6ZSgpOwogfQogCkBA
IC0xMzEsNyArMTM5LDcgQEAgQXVkaW9Xb3JrbGV0Tm9kZTo6fkF1ZGlvV29ya2xldE5vZGUoKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgewotICAgICAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fcHJvY2Vzc29yTG9jayk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9wcm9jZXNzTG9jayk7CiAgICAgICAgIGlmIChtX3Byb2Nlc3NvcikgewogICAgICAg
ICAgICAgaWYgKGF1dG8qIHdvcmtsZXRQcm94eSA9IGNvbnRleHQoKS5hdWRpb1dvcmtsZXQoKS5w
cm94eSgpKQogICAgICAgICAgICAgICAgIHdvcmtsZXRQcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9X
b3JrbGV0R2xvYmFsU2NvcGUoW21fcHJvY2Vzc29yID0gV1RGTW92ZShtX3Byb2Nlc3NvcildKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7IH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkp
OwpAQCAtMTQwLDIxICsxNDgsMTQ3IEBAIEF1ZGlvV29ya2xldE5vZGU6On5BdWRpb1dvcmtsZXRO
b2RlKCkKICAgICB1bmluaXRpYWxpemUoKTsKIH0KIAordm9pZCBBdWRpb1dvcmtsZXROb2RlOjpp
bml0aWFsaXplQXVkaW9QYXJhbWV0ZXJzKGNvbnN0IFZlY3RvcjxBdWRpb1BhcmFtRGVzY3JpcHRv
cj4mIGRlc2NyaXB0b3JzLCBjb25zdCBPcHRpb25hbDxWZWN0b3I8V1RGOjpLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBkb3VibGU+Pj4mIHBhcmFtVmFsdWVzKQoreworICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisgICAgQVNTRVJUKG1fcGFyYW1ldGVycy0+bWFwKCkuaXNFbXB0eSgpKTsKKworICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNzTG9jayk7CisKKyAgICBmb3IgKGF1dG8m
IGRlc2NyaXB0b3IgOiBkZXNjcmlwdG9ycykgeworICAgICAgICBhdXRvIHBhcmFtZXRlciA9IEF1
ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0KCksIGRlc2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5k
ZWZhdWx0VmFsdWUsIGRlc2NyaXB0b3IubWluVmFsdWUsIGRlc2NyaXB0b3IubWF4VmFsdWUsIGRl
c2NyaXB0b3IuYXV0b21hdGlvblJhdGUpOworICAgICAgICBtX3BhcmFtZXRlcnMtPmFkZChkZXNj
cmlwdG9yLm5hbWUsIFdURk1vdmUocGFyYW1ldGVyKSk7CisgICAgfQorCisgICAgaWYgKHBhcmFt
VmFsdWVzKSB7CisgICAgICAgIGZvciAoYXV0byYgcGFyYW1WYWx1ZSA6ICpwYXJhbVZhbHVlcykg
eworICAgICAgICAgICAgaWYgKGF1dG8qIGF1ZGlvUGFyYW0gPSBtX3BhcmFtZXRlcnMtPm1hcCgp
LmdldChwYXJhbVZhbHVlLmtleSkpCisgICAgICAgICAgICAgICAgYXVkaW9QYXJhbS0+c2V0VmFs
dWUocGFyYW1WYWx1ZS52YWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKGF1dG8m
IHBhcmFtZXRlck5hbWUgOiBtX3BhcmFtZXRlcnMtPm1hcCgpLmtleXMoKSkKKyAgICAgICAgbV9w
YXJhbVZhbHVlc01hcC5hZGQocGFyYW1ldGVyTmFtZSwgbWFrZVVuaXF1ZTxBdWRpb0Zsb2F0QXJy
YXk+KEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkpOworfQorCiB2b2lkIEF1ZGlv
V29ya2xldE5vZGU6OnNldFByb2Nlc3NvcihSZWZQdHI8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yPiYm
IHByb2Nlc3NvcikKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc29yTG9jayk7Ci0gICAgbV9wcm9jZXNzb3IgPSBXVEZN
b3ZlKHByb2Nlc3Nvcik7CisgICAgaWYgKHByb2Nlc3NvcikgeworICAgICAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOworICAgICAgICBtX3Byb2Nlc3NvciA9IFdURk1v
dmUocHJvY2Vzc29yKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZmlyZVByb2Nlc3NvckVycm9yT25N
YWluVGhyZWFkKFByb2Nlc3NvckVycm9yOjpDb25zdHJ1Y3RvckVycm9yKTsKIH0KIAogdm9pZCBB
dWRpb1dvcmtsZXROb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7CiAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lc1RvUHJvY2Vz
cyk7CiAKLSAgICAvLyBGSVhNRTogRG8gYWN0dWFsIHByb2Nlc3NpbmcgdmlhIG1fcHJvY2Vzc29y
LgorICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7CisgICAgaWYg
KCFsb2NrZXIgfHwgIW1fcHJvY2Vzc29yKSB7CisgICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5
ZXQgb3Igd2UgYXJlIGdldHRpbmcgZGVzdHJveWVkLiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBz
aWxlbmNlLgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRz
KCk7ICsraSkKKyAgICAgICAgICAgIG91dHB1dChpKS0+YnVzKCktPnplcm8oKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIC8vIElmIHRoZSBpbnB1dCBpcyBub3QgY29ubmVjdGVkLCBw
YXNzIG51bGxwdHIgdG8gdGhlIHByb2Nlc3Nvci4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbnVtYmVyT2ZJbnB1dHMoKTsgKytpKQorICAgICAgICBtX2lucHV0c1tpXSA9IGlucHV0KGkp
LT5pc0Nvbm5lY3RlZCgpID8gaW5wdXQoaSktPmJ1cygpIDogbnVsbHB0cjsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7ICsraSkKLSAgICAgICAgb3V0cHV0
KGkpLT5idXMoKS0+emVybygpOworICAgICAgICBtX291dHB1dHNbaV0gPSBvdXRwdXQoaSktPmJ1
cygpOworCisgICAgZm9yIChhdXRvJiBhdWRpb1BhcmFtIDogbV9wYXJhbWV0ZXJzLT5tYXAoKS52
YWx1ZXMoKSkgeworICAgICAgICBhdXRvKiBwYXJhbVZhbHVlcyA9IG1fcGFyYW1WYWx1ZXNNYXAu
Z2V0KGF1ZGlvUGFyYW0tPm5hbWUoKSk7CisgICAgICAgIEFTU0VSVChwYXJhbVZhbHVlcyk7Cisg
ICAgICAgIGlmIChhdWRpb1BhcmFtLT5oYXNTYW1wbGVBY2N1cmF0ZVZhbHVlcygpICYmIGF1ZGlv
UGFyYW0tPmF1dG9tYXRpb25SYXRlKCkgPT0gQXV0b21hdGlvblJhdGU6OkFSYXRlKQorICAgICAg
ICAgICAgYXVkaW9QYXJhbS0+Y2FsY3VsYXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXMocGFyYW1WYWx1
ZXMtPmRhdGEoKSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
c3RkOjpmaWxsKHBhcmFtVmFsdWVzLT5kYXRhKCksIHBhcmFtVmFsdWVzLT5kYXRhKCkgKyBmcmFt
ZXNUb1Byb2Nlc3MsIGF1ZGlvUGFyYW0tPmZpbmFsVmFsdWUoKSk7CisgICAgfQorCisgICAgYm9v
bCB0aHJld0V4Y2VwdGlvbiA9IGZhbHNlOworICAgIGlmICghbV9wcm9jZXNzb3ItPnByb2Nlc3Mo
bV9pbnB1dHMsIG1fb3V0cHV0cywgbV9wYXJhbVZhbHVlc01hcCwgdGhyZXdFeGNlcHRpb24pKQor
ICAgICAgICBkaWRGaW5pc2hQcm9jZXNzaW5nT25SZW5kZXJpbmdUaHJlYWQodGhyZXdFeGNlcHRp
b24pOworfQorCit2b2lkIEF1ZGlvV29ya2xldE5vZGU6OmRpZEZpbmlzaFByb2Nlc3NpbmdPblJl
bmRlcmluZ1RocmVhZChib29sIHRocmV3RXhjZXB0aW9uKQoreworICAgIGlmICh0aHJld0V4Y2Vw
dGlvbikKKyAgICAgICAgZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3NvckVy
cm9yOjpQcm9jZXNzRXJyb3IpOworCisgICAgbV9wcm9jZXNzb3IgPSBudWxscHRyOworICAgIG1f
dGFpbFRpbWUgPSAwOworICAgIGNvbnRleHQoKS5ub3RpZnlOb2RlRmluaXNoZWRQcm9jZXNzaW5n
KHRoaXMpOworfQorCit2b2lkIEF1ZGlvV29ya2xldE5vZGU6OnVwZGF0ZVB1bGxTdGF0dXMoKQor
eworICAgIEFTU0VSVChjb250ZXh0KCkuaXNHcmFwaE93bmVyKCkpOworCisgICAgYm9vbCBoYXND
b25uZWN0ZWRPdXRwdXQgPSBmYWxzZTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVt
YmVyT2ZPdXRwdXRzKCk7ICsraSkgeworICAgICAgICBpZiAob3V0cHV0KGkpLT5pc0Nvbm5lY3Rl
ZCgpKSB7CisgICAgICAgICAgICBoYXNDb25uZWN0ZWRPdXRwdXQgPSB0cnVlOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJZiBubyBvdXRwdXQgaXMgY29u
bmVjdGVkLCBhZGQgdGhlIG5vZGUgdG8gdGhlIGF1dG9tYXRpYyBwdWxsIGxpc3QuCisgICAgLy8g
T3RoZXJ3aXNlLCByZW1vdmUgaXQgb3V0IG9mIHRoZSBsaXN0LgorICAgIGlmICghaGFzQ29ubmVj
dGVkT3V0cHV0KQorICAgICAgICBjb250ZXh0KCkuYWRkQXV0b21hdGljUHVsbE5vZGUoKnRoaXMp
OworICAgIGVsc2UKKyAgICAgICAgY29udGV4dCgpLnJlbW92ZUF1dG9tYXRpY1B1bGxOb2RlKCp0
aGlzKTsKK30KKwordm9pZCBBdWRpb1dvcmtsZXROb2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNG
b3JJbnB1dChBdWRpb05vZGVJbnB1dCogaW5wdXQpCit7CisgICAgQVNTRVJUKGNvbnRleHQoKS5p
c0F1ZGlvVGhyZWFkKCkgJiYgY29udGV4dCgpLmlzR3JhcGhPd25lcigpKTsKKworICAgIC8vIER5
bmFtaWMgY2hhbm5lbCBjb3VudCBvbmx5IHdvcmtzIHdoZW4gdGhlIG5vZGUgaGFzIDEgaW5wdXQs
IDEgb3V0cHV0IGFuZCB8b3V0cHV0Q2hhbm5lbENvdW50fAorICAgIC8vIGlzIG5vdCBnaXZlbi4g
T3RoZXJ3aXNlIHRoZSBjaGFubmVsIGNvdW50KHMpIHNob3VsZCBub3QgYmUgZHluYW1pY2FsbHkg
Y2hhbmdlZC4KKyAgICBpZiAobnVtYmVyT2ZJbnB1dHMoKSA9PSAxICYmIG51bWJlck9mT3V0cHV0
cygpID09IDEgJiYgIW1fd2FzT3V0cHV0Q2hhbm5lbENvdW50R2l2ZW4pIHsKKyAgICAgICAgQVNT
RVJUKGlucHV0ID09IHRoaXMtPmlucHV0KDApKTsKKyAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZJ
bnB1dENoYW5uZWxzID0gaW5wdXQtPm51bWJlck9mQ2hhbm5lbHMoKTsKKyAgICAgICAgaWYgKG51
bWJlck9mSW5wdXRDaGFubmVscyAhPSBvdXRwdXQoMCktPm51bWJlck9mQ2hhbm5lbHMoKSkgewor
ICAgICAgICAgICAgLy8gVGhpcyB3aWxsIHByb3BhZ2F0ZSB0aGUgY2hhbm5lbCBjb3VudCB0byBh
bnkgbm9kZXMgY29ubmVjdGVkIGZ1cnRoZXIgZG93bnN0cmVhbSBpbiB0aGUgZ3JhcGguCisgICAg
ICAgICAgICBvdXRwdXQoMCktPnNldE51bWJlck9mQ2hhbm5lbHMobnVtYmVyT2ZJbnB1dENoYW5u
ZWxzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFVwZGF0ZSB0aGUgaW5wdXQncyBpbnRl
cm5hbCBidXMgaWYgbmVlZGVkLgorICAgIEF1ZGlvTm9kZTo6Y2hlY2tOdW1iZXJPZkNoYW5uZWxz
Rm9ySW5wdXQoaW5wdXQpOworICAgIHVwZGF0ZVB1bGxTdGF0dXMoKTsKK30KKwordm9pZCBBdWRp
b1dvcmtsZXROb2RlOjpmaXJlUHJvY2Vzc29yRXJyb3JPbk1haW5UaHJlYWQoUHJvY2Vzc29yRXJy
b3IgZXJyb3IpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisKKyAgICBjYWxsT25N
YWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVycm9yXSgp
IG11dGFibGUgeworICAgICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgICAgICBzd2l0Y2gg
KGVycm9yKSB7CisgICAgICAgIGNhc2UgUHJvY2Vzc29yRXJyb3I6OkNvbnN0cnVjdG9yRXJyb3I6
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAiQW4gZXJyb3Igd2FzIHRocm93biBmcm9tIEF1
ZGlvV29ya2xldFByb2Nlc3NvciBjb25zdHJ1Y3RvciJfczsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFByb2Nlc3NvckVycm9yOjpQcm9jZXNzRXJyb3I6CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSAiQW4gZXJyb3Igd2FzIHRocm93biBmcm9tIEF1ZGlvV29ya2xldFByb2Nl
c3Nvcjo6cHJvY2VzcygpIG1ldGhvZCJfczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVk
aWFFbGVtZW50LCBFcnJvckV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnByb2Nlc3NvcmVycm9y
RXZlbnQsIGVycm9yTWVzc2FnZSwgeyB9LCAwLCAwLCB7IH0pKTsKKyAgICB9KTsKK30KKworY29u
c3QgY2hhciogQXVkaW9Xb3JrbGV0Tm9kZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuICJBdWRpb1dvcmtsZXROb2RlIjsKK30KKworYm9vbCBBdWRpb1dvcmtsZXRO
b2RlOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWNv
bnRleHQoKS5pc0Nsb3NlZCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCmluZGV4
IDk1YzdmNjc1MGYwNWYxMmYzOTc2MjQ1ZGFkYjcxMzFmMTE0ODU0OTcuLjdkNjg4N2M0ZGM5N2Zl
Y2E0OTcyNmJjZWMwNzlmM2Q2NTFmYTEyMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCkBAIC0zMCw2ICszMCw4IEBACiAKICNp
ZiBFTkFCTEUoV0VCX0FVRElPKQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5j
bHVkZSAiQXVkaW9BcnJheS5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZS5oIgogI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CiAKQEAgLTM5LDkgKzQxLDExIEBAIGNsYXNzIEF1ZGlvUGFyYW1NYXA7CiBjbGFz
cyBBdWRpb1dvcmtsZXRQcm9jZXNzb3I7CiBjbGFzcyBNZXNzYWdlUG9ydDsKIAorc3RydWN0IEF1
ZGlvUGFyYW1EZXNjcmlwdG9yOworCiBzdHJ1Y3QgQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnM7CiAK
LWNsYXNzIEF1ZGlvV29ya2xldE5vZGUgOiBwdWJsaWMgQXVkaW9Ob2RlIHsKK2NsYXNzIEF1ZGlv
V29ya2xldE5vZGUgOiBwdWJsaWMgQXVkaW9Ob2RlLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsK
ICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEF1ZGlvV29ya2xldE5vZGUpOwogcHVibGljOgog
ICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8QXVkaW9Xb3JrbGV0Tm9kZT4+IGNyZWF0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0JiwgQmFzZUF1ZGlvQ29udGV4dCYsIFN0cmluZyYmIG5hbWUsIEF1ZGlv
V29ya2xldE5vZGVPcHRpb25zJiYpOwpAQCAtNTEsMjEgKzU1LDQxIEBAIHB1YmxpYzoKICAgICBN
ZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0dXJuIG1fcG9ydC5nZXQoKTsgfQogCiAgICAgdm9pZCBz
ZXRQcm9jZXNzb3IoUmVmUHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nvcj4mJik7CisgICAgdm9pZCBp
bml0aWFsaXplQXVkaW9QYXJhbWV0ZXJzKGNvbnN0IFZlY3RvcjxBdWRpb1BhcmFtRGVzY3JpcHRv
cj4mLCBjb25zdCBPcHRpb25hbDxWZWN0b3I8V1RGOjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBkb3Vi
bGU+Pj4mIHBhcmFtVmFsdWVzKTsKIAogcHJpdmF0ZToKICAgICBBdWRpb1dvcmtsZXROb2RlKEJh
c2VBdWRpb0NvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5hbWUsIEF1ZGlvV29ya2xldE5vZGVPcHRp
b25zJiYsIFJlZjxNZXNzYWdlUG9ydD4mJik7CiAKKyAgICBlbnVtIGNsYXNzIFByb2Nlc3NvckVy
cm9yIHsgQ29uc3RydWN0b3JFcnJvciwgUHJvY2Vzc0Vycm9yIH07CisgICAgdm9pZCBmaXJlUHJv
Y2Vzc29yRXJyb3JPbk1haW5UaHJlYWQoUHJvY2Vzc29yRXJyb3IpOworICAgIHZvaWQgZGlkRmlu
aXNoUHJvY2Vzc2luZ09uUmVuZGVyaW5nVGhyZWFkKGJvb2wgdGhyZXdFeGNlcHRpb24pOworCiAg
ICAgLy8gQXVkaW9Ob2RlLgogICAgIHZvaWQgcHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNz
KSBmaW5hbDsKLSAgICBkb3VibGUgdGFpbFRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9
IC8vIEZJWE1FOiBSZXR1cm4gYSBjb3JyZWN0IHZhbHVlLgorICAgIGRvdWJsZSB0YWlsVGltZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdGFpbFRpbWU7IH0KICAgICBkb3VibGUgbGF0ZW5jeVRp
bWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAgICAgYm9vbCByZXF1aXJlc1RhaWxQcm9j
ZXNzaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgY2hlY2tOdW1i
ZXJPZkNoYW5uZWxzRm9ySW5wdXQoQXVkaW9Ob2RlSW5wdXQqKSBmaW5hbDsKKyAgICB2b2lkIHVw
ZGF0ZVB1bGxTdGF0dXMoKSBmaW5hbDsKKworICAgIC8vIEFjdGl2ZURPTU9iamVjdC4KKyAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCB2
aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CiAKICAgICBTdHJpbmcgbV9u
YW1lOwogICAgIFJlZjxBdWRpb1BhcmFtTWFwPiBtX3BhcmFtZXRlcnM7CiAgICAgUmVmPE1lc3Nh
Z2VQb3J0PiBtX3BvcnQ7Ci0gICAgTG9jayBtX3Byb2Nlc3NvckxvY2s7CisgICAgTG9jayBtX3By
b2Nlc3NMb2NrOwogICAgIFJlZlB0cjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+IG1fcHJvY2Vzc29y
OyAvLyBTaG91bGQgb25seSBiZSB1c2VkIG9uIHRoZSByZW5kZXJpbmcgdGhyZWFkLgorICAgIEhh
c2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4gbV9wYXJhbVZh
bHVlc01hcDsKKworICAgIC8vIEtlZXBzIHRoZSByZWZlcmVuY2Ugb2YgQXVkaW9CdXMgb2JqZWN0
cyBmcm9tIEF1ZGlvTm9kZUlucHV0IGFuZCBBdWRpb05vZGVPdXRwdXQgaW4gb3JkZXIKKyAgICAv
LyB0byBwYXNzIHRoZW0gdG8gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLgorICAgIFZlY3RvcjxSZWZQ
dHI8QXVkaW9CdXM+PiBtX2lucHV0czsKKyAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4gbV9v
dXRwdXRzOworCisgICAgZG91YmxlIG1fdGFpbFRpbWUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRv
dWJsZT46OmluZmluaXR5KCkgfTsKKyAgICBib29sIG1fd2FzT3V0cHV0Q2hhbm5lbENvdW50R2l2
ZW4geyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKaW5kZXgg
NzExNWFmY2UwMzljNmU1ZTI2Nzg3YzEzZGYxY2YwN2U4ZDZmZjBmOC4uOTIxNWM5OGUxZDNmNmQx
MGU1MWY4YjgxMzY5ZjJmNTYzMWNjMTYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaWRsCkBAIC0yNyw2ICsyNyw3IEBACiAg
Ki8KIAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8s
CiAgICAgRW5hYmxlZEJ5U2V0dGluZz1BdWRpb1dvcmtsZXQsCiAgICAgRXhwb3NlZD1XaW5kb3cs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dFByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFByb2Nlc3Nvci5jcHAKaW5kZXggNDVhOTc4ZTg5NzgyYzEzOGY5NTIzZTJhODlmODRhNzcx
ZThkZmQ1YS4uOTk2YTk2ZjUzZDE3ZjM1ZTA5YmE3NzU4MTA1OGIyZTYwOTIwZjllYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNz
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
UHJvY2Vzc29yLmNwcApAQCAtMzEsMTIgKzMxLDc1IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJTykK
ICNpbmNsdWRlICJBdWRpb1dvcmtsZXRQcm9jZXNzb3IuaCIKIAorI2luY2x1ZGUgIkF1ZGlvQnVz
LmgiCisjaW5jbHVkZSAiQXVkaW9DaGFubmVsLmgiCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUuaCIKICNpbmNsdWRlICJBdWRpb1dvcmtsZXRQcm9jZXNzb3JDb25zdHJ1Y3Rpb25E
YXRhLmgiCisjaW5jbHVkZSAiSlNDYWxsYmFja0RhdGEuaCIKKyNpbmNsdWRlICJKU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU01hcC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTVHlwZWRBcnJh
eXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitz
dGF0aWMgSlNGbG9hdDMyQXJyYXkqIGNvbnN0cnVjdEpTRmxvYXQzMkFycmF5KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGxlbmd0aCwgY29uc3QgZmxvYXQqIGRhdGEgPSBu
dWxscHRyKQoreworICAgIGF1dG8qIGpzQXJyYXkgPSBKU0Zsb2F0MzJBcnJheTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT50eXBlZEFycmF5U3RydWN0dXJlKFR5cGVGbG9hdDMy
KSwgbGVuZ3RoKTsKKyAgICBpZiAoZGF0YSkKKyAgICAgICAgbWVtY3B5KGpzQXJyYXktPnR5cGVk
VmVjdG9yKCksIGRhdGEsIHNpemVvZihmbG9hdCkgKiBsZW5ndGgpOworICAgIHJldHVybiBqc0Fy
cmF5OworfQorCitzdGF0aWMgSlNNYXAqIGNvbnN0cnVjdEpTTWFwKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0
cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXApCit7CisgICAgYXV0byogbWFwID0g
SlNNYXA6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPm1hcFN0cnVjdHVy
ZSgpKTsKKyAgICBmb3IgKGF1dG8mIHBhaXIgOiBwYXJhbVZhbHVlc01hcCkKKyAgICAgICAgbWFw
LT5zZXQoZ2xvYmFsT2JqZWN0LCBqc1N0cmluZ1dpdGhDYWNoZSh2bSwgcGFpci5rZXkpLCBjb25z
dHJ1Y3RKU0Zsb2F0MzJBcnJheShnbG9iYWxPYmplY3QsIHBhaXIudmFsdWUtPnNpemUoKSwgcGFp
ci52YWx1ZS0+ZGF0YSgpKSk7CisgICAgcmV0dXJuIG1hcDsKK30KKworZW51bSBjbGFzcyBTaG91
bGRQb3B1bGF0ZVdpdGhCdXNEYXRhIDogYm9vbCB7IE5vLCBZZXMgfTsKK3N0YXRpYyBKU0FycmF5
KiBjb25zdHJ1Y3RGcm96ZW5KU0FycmF5KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQXVkaW9CdXMqIGJ1cywgU2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YSBzaG91bGRQb3B1
bGF0ZVdpdGhCdXNEYXRhKQoreworICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMgPSBidXMg
PyBidXMtPm51bWJlck9mQ2hhbm5lbHMoKSA6IDA7CisgICAgYXV0byogY2hhbm5lbHNEYXRhID0g
SlNBcnJheTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPm9yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVG
b3JJbmRleGluZ1R5cGUoQXJyYXlXaXRoQ29udGlndW91cyksIG51bWJlck9mQ2hhbm5lbHMpOwor
ICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCBudW1iZXJPZkNoYW5uZWxzOyArK2opIHsKKyAg
ICAgICAgYXV0byogY2hhbm5lbCA9IGJ1cy0+Y2hhbm5lbChqKTsKKyAgICAgICAgY2hhbm5lbHNE
YXRhLT5zZXRJbmRleFF1aWNrbHkodm0sIGosIGNvbnN0cnVjdEpTRmxvYXQzMkFycmF5KGdsb2Jh
bE9iamVjdCwgY2hhbm5lbC0+bGVuZ3RoKCksIHNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGEgPT0g
U2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YTo6WWVzID8gY2hhbm5lbC0+ZGF0YSgpIDogbnVsbHB0
cikpOworICAgIH0KKyAgICBKU0M6Om9iamVjdENvbnN0cnVjdG9yRnJlZXplKGdsb2JhbE9iamVj
dCwgY2hhbm5lbHNEYXRhKTsKKyAgICByZXR1cm4gY2hhbm5lbHNEYXRhOworfQorCitzdGF0aWMg
SlNBcnJheSogY29uc3RydWN0RnJvemVuSlNBcnJheShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgYnVzZXMsIFNob3Vs
ZFBvcHVsYXRlV2l0aEJ1c0RhdGEgc2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YSkKK3sKKyAgICBh
dXRvKiBhcnJheSA9IEpTQXJyYXk6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5vcmlnaW5hbEFy
cmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlKEFycmF5V2l0aENvbnRpZ3VvdXMpLCBidXNlcy5z
aXplKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBidXNlcy5zaXplKCk7ICsraSkK
KyAgICAgICAgYXJyYXktPnNldEluZGV4UXVpY2tseSh2bSwgaSwgY29uc3RydWN0RnJvemVuSlNB
cnJheSh2bSwgZ2xvYmFsT2JqZWN0LCBidXNlc1tpXS5nZXQoKSwgc2hvdWxkUG9wdWxhdGVXaXRo
QnVzRGF0YSkpOworICAgIEpTQzo6b2JqZWN0Q29uc3RydWN0b3JGcmVlemUoZ2xvYmFsT2JqZWN0
LCBhcnJheSk7CisgICAgcmV0dXJuIGFycmF5OworfQorCitzdGF0aWMgdm9pZCBjb3B5RGF0YUZy
b21KU0FycmF5VG9CdXNlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5KiBq
c0FycmF5LCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGJ1c2VzKQoreworICAgIC8vIFdlIGNh
biBzYWZlbHkgbWFrZSBhc3N1bXB0aW9ucyBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBKU0Fy
cmF5IHNpbmNlIHdlIHVzZSBmcm96ZW4gYXJyYXlzLgorICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBidXNlcy5zaXplKCk7ICsraSkgeworICAgICAgICBhdXRvJiBidXMgPSBidXNlc1tpXTsK
KyAgICAgICAgYXV0byogY2hhbm5lbHNBcnJheSA9IGFzT2JqZWN0KGpzQXJyYXktPmdldEluZGV4
KGdsb2JhbE9iamVjdCwgaSkpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgYnVz
LT5udW1iZXJPZkNoYW5uZWxzKCk7ICsraikgeworICAgICAgICAgICAgYXV0byogY2hhbm5lbCA9
IGJ1cy0+Y2hhbm5lbChqKTsKKyAgICAgICAgICAgIGF1dG8qIGpzQ2hhbm5lbERhdGEgPSBqc0Nh
c3Q8SlNGbG9hdDMyQXJyYXkqPihjaGFubmVsc0FycmF5LT5nZXRJbmRleChnbG9iYWxPYmplY3Qs
IGopKTsKKyAgICAgICAgICAgIGlmIChqc0NoYW5uZWxEYXRhLT5sZW5ndGgoKSA9PSBjaGFubmVs
LT5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICBtZW1jcHkoY2hhbm5lbC0+bXV0YWJsZURhdGEo
KSwganNDaGFubmVsRGF0YS0+dHlwZWRWZWN0b3IoKSwgc2l6ZW9mKGZsb2F0KSAqIGNoYW5uZWwt
Pmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjaGFubmVsLT56
ZXJvKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIEV4Y2VwdGlvbk9yPFJlZjxBdWRpb1dvcmts
ZXRQcm9jZXNzb3I+PiBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OmNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0KQogewogICAgIGF1dG8gY29uc3RydWN0aW9uRGF0YSA9IGRvd25j
YXN0PEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS50YWtlUGVuZGluZ1Byb2Nlc3Nv
ckNvbnN0cnVjdGlvbkRhdGEoKTsKQEAgLTU1LDYgKzExOCw0MiBAQCBBdWRpb1dvcmtsZXRQcm9j
ZXNzb3I6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcihjb25zdCBBdWRpb1dvcmtsZXRQcm9jZXNzb3JD
b25zdHJ1YwogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogfQogCitib29sIEF1ZGlvV29y
a2xldFByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGlu
cHV0cywgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBvdXRwdXRzLCBjb25zdCBIYXNoTWFwPFN0
cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCwg
Ym9vbCYgdGhyZXdFeGNlcHRpb24pCit7CisgICAgQVNTRVJUKG1fcHJvY2Vzc0NhbGxiYWNrKTsK
KyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBtX3Byb2Nlc3NDYWxsYmFjay0+Z2xvYmFsT2JqZWN0
KCk7CisgICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29u
dGV4dFRocmVhZCgpKTsKKworICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAg
IEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKKworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7
CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb25zaWRlciBjYWNoaW5nIHRoZSBKU0FycmF5cyAm
IEpTTWFwIGFuZCBvbmx5IHVwZGF0ZSB0aGVpciBpdGVtcworICAgIC8vIGV2ZXJ5IHRpbWUgcHJv
Y2VzcygpIGlzIGNhbGxlZCwgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuCisgICAgYXJncy5hcHBl
bmQoY29uc3RydWN0RnJvemVuSlNBcnJheSh2bSwgZ2xvYmFsT2JqZWN0LCBpbnB1dHMsIFNob3Vs
ZFBvcHVsYXRlV2l0aEJ1c0RhdGE6OlllcykpOworICAgIGF1dG8qIG91cHV0SlNBcnJheSA9IGNv
bnN0cnVjdEZyb3plbkpTQXJyYXkodm0sIGdsb2JhbE9iamVjdCwgb3V0cHV0cywgU2hvdWxkUG9w
dWxhdGVXaXRoQnVzRGF0YTo6Tm8pOworICAgIGFyZ3MuYXBwZW5kKG91cHV0SlNBcnJheSk7Cisg
ICAgYXJncy5hcHBlbmQoY29uc3RydWN0SlNNYXAodm0sIGdsb2JhbE9iamVjdCwgcGFyYW1WYWx1
ZXNNYXApKTsKKworICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlv
bjsKKyAgICBhdXRvIHJlc3VsdCA9IG1fcHJvY2Vzc0NhbGxiYWNrLT5pbnZva2VDYWxsYmFjayhq
c1VuZGVmaW5lZCgpLCBhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpPYmplY3Qs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJwcm9jZXNzIiksIHJldHVybmVkRXhjZXB0aW9u
KTsKKyAgICBpZiAocmV0dXJuZWRFeGNlcHRpb24pIHsKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9u
KGdsb2JhbE9iamVjdCwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgICAgICB0aHJld0V4Y2VwdGlv
biA9IHRydWU7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBjb3B5RGF0YUZy
b21KU0FycmF5VG9CdXNlcyhnbG9iYWxPYmplY3QsIG91cHV0SlNBcnJheSwgb3V0cHV0cyk7CisK
KyAgICByZXR1cm4gcmVzdWx0LnRvQm9vbGVhbihnbG9iYWxPYmplY3QpOworfQorCit2b2lkIEF1
ZGlvV29ya2xldFByb2Nlc3Nvcjo6c2V0UHJvY2Vzc0NhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxK
U0NhbGxiYWNrRGF0YVN0cm9uZz4mJiBwcm9jZXNzQ2FsbGJhY2spCit7CisgICAgbV9wcm9jZXNz
Q2FsbGJhY2sgPSBXVEZNb3ZlKHByb2Nlc3NDYWxsYmFjayk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaAppbmRl
eCA1ZmQzYTllZGIzMDQxNmExMWI0NDVhYjU2MzQyM2JkMzcyYzkyNDZlLi44ZDExZTNmZTQzNDU1
NWE3ZmMyMTkzMTIyMTc1NmU2ZmJiNmFhYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgKQEAgLTI5LDYgKzI5
LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKKyNpbmNsdWRlICJB
dWRpb0FycmF5LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTM2LDcgKzM3LDkgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBBdWRpb0J1czsKIGNsYXNzIEF1ZGlvV29ya2xldFByb2Nl
c3NvckNvbnN0cnVjdGlvbkRhdGE7CitjbGFzcyBKU0NhbGxiYWNrRGF0YVN0cm9uZzsKIGNsYXNz
IE1lc3NhZ2VQb3J0OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIApAQCAtNDgsMTEg
KzUxLDE2IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVy
biBtX25hbWU7IH0KICAgICBNZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0dXJuIG1fcG9ydC5nZXQo
KTsgfQogCisgICAgYm9vbCBwcm9jZXNzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYg
aW5wdXRzLCBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8
U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFw
LCBib29sJiB0aHJld0V4Y2VwdGlvbik7CisKKyAgICB2b2lkIHNldFByb2Nlc3NDYWxsYmFjayhz
dGQ6OnVuaXF1ZV9wdHI8SlNDYWxsYmFja0RhdGFTdHJvbmc+JiYpOworCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IEF1ZGlvV29ya2xldFByb2Nlc3Nvcihjb25zdCBBdWRpb1dvcmtsZXRQcm9jZXNz
b3JDb25zdHJ1Y3Rpb25EYXRhJik7CiAKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIFJlZjxNZXNz
YWdlUG9ydD4gbV9wb3J0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0NhbGxiYWNrRGF0YVN0cm9u
Zz4gbV9wcm9jZXNzQ2FsbGJhY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaAppbmRleCAzZWIzYzFiNDhm
NjlkMjM3YWM5NTAzODEzMjkwODdiOGZhMzhhNWE4Li5jNWU4NmU3ZTZmNjUwNjFlYTQ1Y2YxNDlm
YjE5MmI5OGIyYzYzNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NhbGxiYWNrRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJh
Y2tEYXRhLmgKQEAgLTQzLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gKGFuZCBz
eW5jaHJvbml6YXRpb24gd291bGQgYmUgc2xvdykuCiAKIGNsYXNzIEpTQ2FsbGJhY2tEYXRhIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIENh
bGxiYWNrVHlwZSB7IEZ1bmN0aW9uLCBPYmplY3QsIEZ1bmN0aW9uT3JPYmplY3QgfTsKIApAQCAt
NzIsNyArNzMsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBKU0NhbGxiYWNrRGF0YVN0cm9uZyA6IHB1
YmxpYyBKU0NhbGxiYWNrRGF0YSB7CiBwdWJsaWM6Ci0gICAgSlNDYWxsYmFja0RhdGFTdHJvbmco
SlNDOjpKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IHZvaWQqKQorICAgIEpTQ2FsbGJhY2tEYXRhU3Ryb25nKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNr
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiA9IG51bGxwdHIpCiAgICAg
ICAgIDogSlNDYWxsYmFja0RhdGEoZ2xvYmFsT2JqZWN0KQogICAgICAgICAsIG1fY2FsbGJhY2so
Z2xvYmFsT2JqZWN0LT52bSgpLCBjYWxsYmFjaykKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXJyb3JFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVu
dC5jcHAKaW5kZXggYTE0YTQyMWYxYTVhZTdlMzVjMTUxMzU1NDIxMmU3NGIwZGM1OGE0Ni4uOWE3
YmY0OThlOWVjMDI1YTkzYmZlYjEzYzdiMjg0OTZiODRiMmY2ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJv
ckV2ZW50LmNwcApAQCAtNTMsOCArNTMsOCBAQCBFcnJvckV2ZW50OjpFcnJvckV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZQogewog
fQogCi1FcnJvckV2ZW50OjpFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVt
YmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yKQotICAgIDogRXZlbnQoZXZlbnRO
YW1lcygpLmVycm9yRXZlbnQsIENhbkJ1YmJsZTo6Tm8sIElzQ2FuY2VsYWJsZTo6WWVzKQorRXJy
b3JFdmVudDo6RXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVu
c2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBlcnJvcikKKyAg
ICA6IEV2ZW50KHR5cGUsIENhbkJ1YmJsZTo6Tm8sIElzQ2FuY2VsYWJsZTo6WWVzKQogICAgICwg
bV9tZXNzYWdlKG1lc3NhZ2UpCiAgICAgLCBtX2ZpbGVOYW1lKGZpbGVOYW1lKQogICAgICwgbV9s
aW5lTnVtYmVyKGxpbmVOdW1iZXIpCkBAIC02Myw2ICs2MywxMSBAQCBFcnJvckV2ZW50OjpFcnJv
ckV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5z
aWduZWQgbAogewogfQogCitFcnJvckV2ZW50OjpFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWdu
ZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yKQorICAgIDog
RXJyb3JFdmVudChldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgbWVzc2FnZSwgZmlsZU5hbWUsIGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlciwgZXJyb3IpCit7Cit9CisKIEVycm9yRXZlbnQ6On5FcnJv
ckV2ZW50KCkgPSBkZWZhdWx0OwogCiBFdmVudEludGVyZmFjZSBFcnJvckV2ZW50OjpldmVudElu
dGVyZmFjZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaAppbmRleCBkZjEzMWUzMWY2YmMy
YjVkNzUzNWEzZmQ1OTM4NGRkODgyYjJmODY3Li5jNmMyYzQ0OGI4NjMzN2NiM2UwMmM3OTU3MDc2
ZDVlYzEzNTdlZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgKQEAgLTQ3LDYgKzQ3LDExIEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXJyb3JFdmVudChtZXNzYWdl
LCBmaWxlTmFtZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvcikpOwogICAgIH0KIAor
ICAgIHN0YXRpYyBSZWY8RXJyb3JFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25v
d24+IGVycm9yKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXJyb3JFdmVu
dCh0eXBlLCBtZXNzYWdlLCBmaWxlTmFtZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJv
cikpOworICAgIH0KKwogICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKICAgICAgICAgU3Ry
aW5nIG1lc3NhZ2U7CiAgICAgICAgIFN0cmluZyBmaWxlbmFtZTsKQEAgLTc2LDYgKzgxLDcgQEAg
cHVibGljOgogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHRyeVNlcmlhbGl6ZUVy
cm9yKEpTQzo6SlNHbG9iYWxPYmplY3QmKTsKIAogcHJpdmF0ZToKKyAgICBFcnJvckV2ZW50KGNv
bnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBK
U0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yKTsKICAgICBFcnJvckV2ZW50KGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJl
ciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9y
KTsKICAgICBFcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVz
dGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKaW5kZXggOWRmOGZjZDI5ZGRjM2Y5
OGYxMDI1OTVjMGMzZWZhNDQzZTY4NWFlMi4uYjQxODI4NWRlMWZkMDNjZjE5OGYxYTE4ZTczNTll
ODFiNzgwNjc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCkBAIC0zMjgsMTkgKzMy
OCwxOSBAQCBib29sIE1lc3NhZ2VQb3J0Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29u
c3QKIAogICAgIC8vIElmIHdlJ3JlIG5vdCBpbiB0aGUgbWlkZGxlIG9mIGFza2luZyB0aGUgcmVt
b3RlIHBvcnQgYWJvdXQgY29sbGVjdGFiaWxpdHksIGRvIHNvIG5vdy4KICAgICBpZiAoIW1faXNB
c2tpbmdSZW1vdGVBYm91dEdDKSB7Ci0gICAgICAgIFJlZlB0cjxXb3JrZXJUaHJlYWQ+IHdvcmtl
clRocmVhZDsKLSAgICAgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KSkKLSAgICAgICAgICAgIHdvcmtlclRocmVhZCA9ICZkb3duY2FzdDxXb3Jr
ZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkudGhyZWFkKCk7CisgICAg
ICAgIFJlZlB0cjxXb3JrZXJPcldvcmtsZXRUaHJlYWQ+IHdvcmtlck9yV29ya2xldFRocmVhZDsK
KyAgICAgICAgaWYgKGlzPFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KSkKKyAgICAgICAgICAgIHdvcmtlck9yV29ya2xldFRocmVhZCA9IGRvd25j
YXN0PFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KS53b3JrZXJPcldvcmtsZXRUaHJlYWQoKTsKIAotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFty
ZW1vdGVJZGVudGlmaWVyID0gbV9yZW1vdGVJZGVudGlmaWVyLCB3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKGNvbnN0X2Nhc3Q8TWVzc2FnZVBvcnQqPih0aGlzKSksIHdvcmtlclRocmVhZCA9IFdURk1v
dmUod29ya2VyVGhyZWFkKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIE1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyOjpzaW5nbGV0b24oKS5jaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShyZW1v
dGVJZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgd29ya2VyVGhyZWFk
ID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIGhhc0FjdGl2aXR5KSBtdXRhYmxlIHsKLSAg
ICAgICAgICAgICAgICBpZiAoIXdvcmtlclRocmVhZCkgeworICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFtyZW1vdGVJZGVudGlmaWVyID0gbV9yZW1vdGVJZGVudGlmaWVyLCB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKGNvbnN0X2Nhc3Q8TWVzc2FnZVBvcnQqPih0aGlzKSksIHdvcmtlck9yV29ya2xl
dFRocmVhZCA9IFdURk1vdmUod29ya2VyT3JXb3JrbGV0VGhyZWFkKV0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpzaW5nbGV0b24oKS5jaGVja1Jl
bW90ZVBvcnRGb3JBY3Rpdml0eShyZW1vdGVJZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBXVEZNb3Zl
KHdlYWtUaGlzKSwgd29ya2VyT3JXb3JrbGV0VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJPcldvcmts
ZXRUaHJlYWQpXShhdXRvIGhhc0FjdGl2aXR5KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIXdvcmtlck9yV29ya2xldFRocmVhZCkgewogICAgICAgICAgICAgICAgICAgICBpZiAod2Vh
a1RoaXMpCiAgICAgICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+dXBkYXRlQWN0aXZpdHko
aGFzQWN0aXZpdHkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tG
b3JNb2RlKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBoYXNBY3Rpdml0eV0oYXV0byYp
IG11dGFibGUgeworICAgICAgICAgICAgICAgIHdvcmtlck9yV29ya2xldFRocmVhZC0+cnVuTG9v
cCgpLnBvc3RUYXNrRm9yTW9kZShbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgaGFzQWN0
aXZpdHldKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlz
KQogICAgICAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPnVwZGF0ZUFjdGl2aXR5KGhhc0Fj
dGl2aXR5KTsKICAgICAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgp
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAxNGJiNDU2Nzg3ZDI4ZDZjMThiYmRhZTZhYzM5Y2M1NzQ5ZDlmODAwLi4yMzY4
Mzc4NzE3MTdjZTlkYzNhMjhjOTM0NjkwZWRjNmNiOTBiYTgwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMjAtMTAtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBVc2UgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHRvIHByb2Nlc3MgYXVkaW8KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzUzMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuc2tpcCBhbGwgQXVkaW9Xb3Jr
bGV0IHRlc3RzIG5vdyB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciB0aW1pbmcgb3V0LgorCisgICAg
ICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0xMC0wOSAgQWRpdHlhIEtlZXJ0aGkgIDxh
a2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBBZGQgZWRpdGFiaWxpdHkgdG8g
aW5wdXQgdHlwZT1tb250aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNmRjOTQz
OWQ2NmUxY2E3ZDk4ODYyYWY3OGY3OGU5MmQwODE0MGZjOS4uNTJkMmE1ODU5Mzg5NWEwZGE1ODAz
MDQ0MWRkYzA4YWRhNjE3NTdhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjggQEAKKzIwMjAtMTAtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBVc2UgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHRvIHByb2Nlc3MgYXVkaW8KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzUzMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUg
V1BUIHRlc3RzIG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVy
c291cmNlbm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtYXV0b21hdGljLXB1bGwu
aHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5v
ZGUtZGlzY29ubmVjdGVkLWlucHV0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWlu
dGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb3V0cHV0LWNoYW5uZWwtY291bnQu
aHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHBy
b2Nlc3Nvci1wcm9jZXNzLWZyb3plbi1hcnJheS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29y
a2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtemVyby1vdXRwdXRz
Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRw
cm9jZXNzb3ItcHJvbWlzZXMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJm
YWNlL3Byb2Nlc3MtZ2V0dGVyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVy
ZmFjZS9wcm9jZXNzb3ItY29uc3RydWN0aW9uLXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1jaGFubmVsbWVyZ2Vybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVk
aW8tYXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRw
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvY29y
cy1jaGVjay5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1p
bnRlcmZhY2Uvbm8tY29ycy5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMTAtMDkgIEFudG9p
bmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTIHRyYW5zZm9ybSBj
b21wdXRlZCBzdHlsZSBzaG91bGQgbm90IHJlZmxlY3QgaW5kaXZpZHVhbCB0cmFuc2Zvcm0gcHJv
cGVydGllcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODExYzI5OGY1M2ZmZDJjYzQ5MGQwY2Q0NDkx
NTZkYmJkNzg1MGIxNy4uYTg5MWE2NmNhNDI2MTY2NTVlOTZkZmQ5ODBjZTk3MTBjYjlhOWRlYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMjAsMTkgKzMyMCwxNCBAQCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnQtbG9vcHMvZnVs
bHlfYWN0aQogIyBTa2lwIFdQVCB3ZWJhdWRpbyB0ZXN0cyB0aGF0IGFyZSB0aW1pbmcgb3V0Lgog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1tZWRpYXN0cmVhbWF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvbWVkaWFzdHJlYW1hdWRpb3Nv
dXJjZW5vZGUtcm91dGluZy5odG1sIFsgU2tpcCBdCiAKLSMgVGhlc2Ugd2ViYXVkaW8gdGVzdHMg
YXJlIHRpbWluZyBvdXQgZHVlIHRvIGxhY2sgZm9yIHN1cHBvcnQgZm9yIEF1ZGlvV29ya2xldC4K
KyMgVGhpcyB0ZXN0IGlzIHRpbWluZyBvdXQgZHVlIHRvIGxhY2sgb2Ygc3VwcG9ydCBmb3IgU2hh
cmVkQXJyYXlCdWZmZXIuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0LXBv
c3RtZXNzYWdlLXNoYXJlZGFycmF5YnVmZmVyLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93
b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLmh0
bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW9u
ZXJyb3IuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlv
d29ya2xldG5vZGUtb3V0cHV0LWNoYW5uZWwtY291bnQuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLWZyb3pl
bi1hcnJheS5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVk
aW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtemVyby1vdXRwdXRzLmh0dHBzLmh0bWwgWyBTa2lw
IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFw
aS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvbWlz
ZXMuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3Mt
Z2V0dGVyLmh0dHBzLmh0bWwgWyBTa2lwIF0KKworIyBUaGlzIHRlc3QgaXMgdGltaW5nIG91dCBi
ZWNhdXNlIGl0IGNhbGxzIHN1c3BlbmQoKSB0aGVuIHJlc3VtZSgpIG9uZSB3aXRob3V0IHlpZWxk
aW5nLiBzdXNwZW5kKCkgc2V0cyBzdGF0ZSB0byBzdXNwZW5kZWQgYXN5bmNocm9ub3VzbHkKKyMg
c28gcmVzdW1lKCkgZG9lcyBub3Qga25vdyB0aGVyZSBpcyBhIHBlbmRpbmcgc3VzcGVuZCgpIGFu
ZCByZXR1cm5zIGVhcmx5LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3MtcGFyYW1l
dGVycy5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNoYW5uZWxtZXJnZXJub2RlLWludGVyZmFjZS9h
Y3RpdmUtcHJvY2Vzc2luZy5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50
ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVt
ZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9jb3JzLWNoZWNrLmh0dHBzLmh0bWwgWyBTa2lw
IF0KKworIyBUaGlzIFdlYkF1ZGlvIHRlc3QgaXMgdGltaW5nIG91dCwgcG90ZW50aWFsbHkgZHVl
IHRvIGFuIEF1ZGlvV29ya2xldCBidWcuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1p
bnRlcmZhY2Uvbm8tY29ycy5odHRwcy5odG1sIFsgU2tpcCBdCiAKICMgVGhpcyB3ZWJhdWRpbyB0
ZXN0IGhhcyBiZWVuIHRpbWluZyBvdXQgc2luY2UgaXRzIGltcG9ydCBmcm9tIEJsaW5rLgpAQCAt
MzQxLDYgKzMzNiw3IEBAIHdlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UvbWVkaWFzdHJl
YW1hdWRpb3NvdXJjZW5vZGUuaHRtbCBbIFNraXAgXQogIyBXZWJhdWRpbyB0ZXN0cyB0aGF0IGFy
ZSBmbGFreS4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2Uvay1yYXRlLXN0ZXJlby1wYW5uZXIuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWFuYWx5c2Vybm9kZS1pbnRlcmZhY2UvdGVzdC1hbmFseXNl
ci1vdXRwdXQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNl
bm9kZS1pbnRlcmZhY2UvY29ycy1jaGVjay5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAog
IyBUaGlzIHRlc3QgaXMgcGFzc2luZyBidXQgdGhlIHByaW50ZWQgU05SIHZhbHVlIGRpZmZlcnMg
ZnJvbSBtYWNoaW5lIHRvIG1hY2hpbmUuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVyc291cmNlbm9kZS1pbnRlcmZh
Y2Uvc3ViLXNhbXBsZS1idWZmZXItc3RpdGNoaW5nLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpAQCAt
MzQ4LDcgKzM0NCw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9idWZmZXJzb3VyY2Vub2RlCiAjIFZhbHVlcyBpbiBGQUlM
IGxpbmVzIGRpZmZlciBmcm9tIG1hY2hpbmUgdG8gbWFjaGluZSwgd2Ugc2hvdWxkIGJlIGFibGUg
dG8gdW5za2lwIHRoZW0gb25jZSB0aGV5IHBhc3MuCiB3ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZS9hdWRpb2J1ZmZlcnNvdXJjZS1kZXR1bmUtbW9kdWxhdGlvbi5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KIHdlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNr
cmF0ZS1tb2R1bGF0aW9uLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50
ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAK
IHdlYmtpdC5vcmcvYi8xNzY5MjkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5LXN0YXRlcy9h
dXRvcGxheS13aXRoLXNsb3ctdGV4dC10cmFja3MuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9idWZmZXJzb3VyY2Vub2RlLWludGVyZmFjZS9h
Y3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
YnVmZmVyc291cmNlbm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0
ZWQudHh0CmluZGV4IGVjNzBlMDkzOTQ0OTBmOTEyNmJiNWI2MDE0MzYxOWRhYWQ3ZmQ0YTguLjM1
MWVkZjkyYWM3ZDJhNzY1YzAwYjhjMDA2NzZjMzlkNTRjNTA1MjEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtYXVkaW9idWZmZXJzb3VyY2Vub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2lu
Zy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2J1ZmZlcnNvdXJj
ZW5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
OSwxMyArOSwxMyBAQCBQQVNTIDwgW1NldHVwIGdyYXBoXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQu
ICh0b3RhbCAxIGFzc2VydGlvbnMpCiBQQVNTID4gW3ZlcmlmeSBjb3VudCBjaGFuZ2VdCiBGQUlM
IFggTnVtYmVyIG9mIGNoYW5uZWxzIGNoYW5nZWQgaXMgbm90IHRydWUuIEdvdCBmYWxzZS4gYXNz
ZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTICAgSW5kZXggd2hlcmUgaW5w
dXQgY2hhbm5lbCBjb3VudCBjaGFuZ2VkIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxMjgwLgot
RkFJTCBYIE51bWJlciBvZiBjaGFubmVscyBpbiBpbnB1dFswOi0yXTogRXhwZWN0ZWQgNyBmb3Ig
YWxsIHZhbHVlcyBidXQgZm91bmQgMTI3OSB1bmV4cGVjdGVkIHZhbHVlczoKK0ZBSUwgWCBOdW1i
ZXIgb2YgY2hhbm5lbHMgaW4gaW5wdXRbMDotMl06IEV4cGVjdGVkIDcgZm9yIGFsbCB2YWx1ZXMg
YnV0IGZvdW5kIDEwMjMgdW5leHBlY3RlZCB2YWx1ZXM6CiAJSW5kZXgJQWN0dWFsCi0JWzBdCTAK
LQlbMV0JMAotCVsyXQkwCi0JWzNdCTAKLQkuLi5hbmQgMTI3NSBtb3JlIGVycm9ycy4gYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisJWzI1Nl0JMAorCVsyNTddCTAKKwlbMjU4
XQkwCisJWzI1OV0JMAorCS4uLmFuZCAxMDE5IG1vcmUgZXJyb3JzLiBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgWCBOdW1iZXIgb2YgY2hhbm5lbHMgaW4gaW5wdXRb
LTE6XTogRXhwZWN0ZWQgMSBmb3IgYWxsIHZhbHVlcyBidXQgZm91bmQgMSB1bmV4cGVjdGVkIHZh
bHVlczoKIAlJbmRleAlBY3R1YWwKIAlbMF0JMCBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFj
ZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9t
YXRpYy1wdWxsLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAzMTg2MmRmMWE0YTdiNmFkMmE2YzZk
NjM3MjY5MjQ0NTEyMTY1NWNiLi4zNTk1NWNkYjMyZmVmODQxNzdiZmZjZjFlNTgxZjhiYTZiMTQw
ODI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVk
aW93b3JrbGV0bm9kZS1hdXRvbWF0aWMtcHVsbC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVk
aW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtYXV0b21h
dGljLXB1bGwuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsMTAgQEAKIAotSGFybmVzcyBF
cnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5F
UiBTVEFSVEVELgotVElNRU9VVCBFeGVjdXRpbmcgInNldHVwLXdvcmtsZXQiIFRlc3QgdGltZWQg
b3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAic2V0dXAtd29ya2xldCIK
K1BBU1MgQXVkaXQgcmVwb3J0CiBQQVNTID4gW3NldHVwLXdvcmtsZXRdCitQQVNTICAgVGhlIGZp
cnN0IGhhbGYgb2YgdGhlIGNhcHR1cmVkIGJ1ZmZlciBjb250YWlucyBvbmx5IHRoZSBjb25zdGFu
dCAwLjUuCitQQVNTICAgVGhlIHNlY29uZCBoYWxmIG9mIHRoZSBjYXB0dXJlZCBidWZmZXIgY29u
dGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KK1BBU1MgPCBbc2V0dXAtd29ya2xldF0gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sg
UlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWRp
c2Nvbm5lY3RlZC1pbnB1dC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
d29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1kaXNjb25uZWN0ZWQtaW5wdXQuaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IDJhODY2NjdhMTgzZjEwNDM5ZmIwMmNlNzRkZjY1OTA1ZjNl
Y2U2MjUuLjdmY2I4Y2VkODgzNWRhNmFmNDViYjgxYThhYzJiMmRkMzY5MjdiNDQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2Rl
LWRpc2Nvbm5lY3RlZC1pbnB1dC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtZGlzY29ubmVjdGVkLWlu
cHV0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNCw5ICs0LDkgQEAgUEFTUyBFeGVjdXRpbmcgInRl
c3QiCiBQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFt0ZXN0XSBJbnB1dCBhcnJheSBsZW5ndGgg
c2hvdWxkIGJlIHplcm8gZm9yIGRpc2Nvbm5lY3RlZCBpbnB1dAogUEFTUyAgIEJlZm9yZSBjb25u
ZWN0aW5nIHRoZSBzb3VyY2U6IElucHV0IGFycmF5IGxlbmd0aCBjb250YWlucyBvbmx5IHRoZSBj
b25zdGFudCAwLgotRkFJTCBYIEZpcnN0IG5vbi16ZXJvIG91dHB1dCBpcyBub3QgZXF1YWwgdG8g
MTI4LiBHb3QgLTEuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAg
IEZpcnN0IG5vbi16ZXJvIG91dHB1dCBpcyBlcXVhbCB0byAxMjguCiBQQVNTICAgV2hpbGUgc291
cmNlIGlzIGNvbm5lY3RlZDogSW5wdXQgYXJyYXkgbGVuZ3RoIGNvbnRhaW5zIG9ubHkgdGhlIGNv
bnN0YW50IDEyOC4KIFBBU1MgICBBZnRlciBkaXNjb25uZWN0aW5nIHRoZSBzb3VyY2U6IElucHV0
IGFycmF5IGxlbmd0aCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgotRkFJTCA8IFt0ZXN0
XSAxIG91dCBvZiA0IGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91
dCBvZiAxIHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK1BBU1MgPCBbdGVzdF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3Nl
cnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBz
dWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWlu
dGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVk
aW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb25lcnJv
ci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYzI2YWExMzM0NjUzOGMxYjI1NGEwM2QxOWY0ZWMw
YTNjY2FlNWFkMi4uOTY3MTIxMzg5NzQ5ZmQwYWFmMjY3ZmViZTRkYjI4OWU2MTJhNGRlNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJh
dWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xl
dG5vZGUtb25lcnJvci5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb25lcnJvci5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTEsOSArMSwxNiBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2Fn
ZSA9IG51bGwKLQogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuCi1USU1FT1VUIEV4
ZWN1dGluZyAiY29uc3RydWN0b3ItZXJyb3IiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gRXhlY3V0
aW5nICJwcm9jZXNzLWVycm9yIgotTk9UUlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcg
ImNvbnN0cnVjdG9yLWVycm9yIgorUEFTUyBFeGVjdXRpbmcgInByb2Nlc3MtZXJyb3IiCitQQVNT
IEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtjb25zdHJ1Y3Rvci1lcnJvcl0KK1BBU1MgICBvbnByb2Nl
c3NvcmVycm9yIGFyZ3VtZW50IHNob3VsZCBiZSBhbiBFcnJvckV2ZW50IHdoZW4KKyAgICAgICAg
ICAgICAgICB0aGUgY29uc3RydWN0b3Igb2YgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIGhhcyBhbiBl
cnJvci4gaXMgdHJ1ZS4KK1BBU1MgPCBbY29uc3RydWN0b3ItZXJyb3JdIEFsbCBhc3NlcnRpb25z
IHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKK1BBU1MgPiBbcHJvY2Vzcy1lcnJvcl0KK1BB
U1MgICBvbnByb2Nlc3NvcmVycm9yIGFyZ3VtZW50IHNob3VsZCBiZSBhbiBFcnJvckV2ZW50IHdo
ZW4KKyAgICAgICAgICAgICAgICB0aGUgcHJvY2VzcyBtZXRob2Qgb2YgdGhlIEF1ZGlvV29ya2xl
dFByb2Nlc3NvciBtZXRob2QKKyAgICAgICAgICAgICAgICBoYXMgYW4gZXJyb3IuIGlzIHRydWUu
CitQQVNTIDwgW3Byb2Nlc3MtZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEg
YXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyBy
YW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xl
dC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vdXRwdXQtY2hhbm5lbC1jb3VudC5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93
b3JrbGV0bm9kZS1vdXRwdXQtY2hhbm5lbC1jb3VudC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
Mzg3YTc4NGQwNDcxOThmYTdjN2ZiMzVjYTlmM2YxMmQ0MjJhMDkwZi4uMWZkMzBjN2E4ZDQ2MmQx
N2IzY2FmOTAwODk5ZGQ5ZmQxMTY0N2YyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb3V0cHV0LWNoYW5uZWwtY291bnQu
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVy
ZmFjZS9hdWRpb3dvcmtsZXRub2RlLW91dHB1dC1jaGFubmVsLWNvdW50Lmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMSw5ICsxLDEzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdl
ID0gbnVsbAotCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KLVRJTUVPVVQgRXhl
Y3V0aW5nICJEeW5hbWljYWxseSBjaGFuZ2UgdGhlIGNoYW5uZWwgY291bnQgdG8gaWYgdW5zcGVj
aWZpZWQuIiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIEV4ZWN1dGluZyAiR2l2aWVuIG91dHB1dENo
YW5uZWxDb3VudCBtdXN0IGJlIGhvbm9yZWQuIgotTk9UUlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBF
eGVjdXRpbmcgIkR5bmFtaWNhbGx5IGNoYW5nZSB0aGUgY2hhbm5lbCBjb3VudCB0byBpZiB1bnNw
ZWNpZmllZC4iCitQQVNTIEV4ZWN1dGluZyAiR2l2aWVuIG91dHB1dENoYW5uZWxDb3VudCBtdXN0
IGJlIGhvbm9yZWQuIgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbRHluYW1pY2FsbHkgY2hh
bmdlIHRoZSBjaGFubmVsIGNvdW50IHRvIGlmIHVuc3BlY2lmaWVkLl0KK1BBU1MgICBUaGUgZXhw
ZWN0ZWQgb3V0cHV0IGNoYW5uZWwgY291bnQgaXMgZXF1YWwgdG8gMTcuCitQQVNTIDwgW0R5bmFt
aWNhbGx5IGNoYW5nZSB0aGUgY2hhbm5lbCBjb3VudCB0byBpZiB1bnNwZWNpZmllZC5dIEFsbCBh
c3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKK1BBU1MgPiBbR2l2aWVuIG91
dHB1dENoYW5uZWxDb3VudCBtdXN0IGJlIGhvbm9yZWQuXQorUEFTUyAgIFRoZSBleHBlY3RlZCBv
dXRwdXQgY2hhbm5lbCBjb3VudCBpcyBlcXVhbCB0byAyLgorUEFTUyA8IFtHaXZpZW4gb3V0cHV0
Q2hhbm5lbENvdW50IG11c3QgYmUgaG9ub3JlZC5dIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRv
dGFsIDEgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0
YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
d29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtZnJvemVuLWFy
cmF5Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVy
ZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy1mcm96ZW4tYXJyYXkuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDBkZjA0ZDc2ZTBkOWU2ZjVkNDRiNDUwMjIyN2YxOTZmZjBiNzBlNzcu
LjM0YzA2OTkwYWY4MWZhMDVjYmVmM2JlOTNkMmUxZGRhODIyYjAyM2YgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3It
cHJvY2Vzcy1mcm96ZW4tYXJyYXkuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy1m
cm96ZW4tYXJyYXkuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsMTUgQEAKIAotSGFybmVz
cyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJV
Tk5FUiBTVEFSVEVELgotVElNRU9VVCBFeGVjdXRpbmcgImNoZWNrLWZyb3plbi1hcnJheSIgVGVz
dCB0aW1lZCBvdXQKLU5PVFJVTiBFeGVjdXRpbmcgInRyYW5zZmVyLWZyb3plbi1hcnJheSIKLU5P
VFJVTiBBdWRpdCByZXBvcnQKK1BBU1MgRXhlY3V0aW5nICJjaGVjay1mcm96ZW4tYXJyYXkiCitQ
QVNTIEV4ZWN1dGluZyAidHJhbnNmZXItZnJvemVuLWFycmF5IgorUEFTUyBBdWRpdCByZXBvcnQK
IFBBU1MgPiBbY2hlY2stZnJvemVuLWFycmF5XQorUEFTUyAgIHxpbnB1dHN8IGlzIGZyb3plbiBp
cyB0cnVlLgorUEFTUyAgIHxvdXRwdXRzfCBpcyBmcm96ZW4gaXMgdHJ1ZS4KK1BBU1MgPCBbY2hl
Y2stZnJvemVuLWFycmF5XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlv
bnMpCitQQVNTID4gW3RyYW5zZmVyLWZyb3plbi1hcnJheV0KK1BBU1MgICBUcmFuc2ZlcnJpbmcg
aW5wdXRzL291dHB1dHMsIGFuIGluZGl2aWR1YWwgaW5wdXQvb3V0cHV0IGFycmF5LCBvciBhIGNo
YW5uZWwgRmxvYXQzMkFycmF5IGlzIG5vdCBhbGxvd2VkIGFzIGV4cGVjdGVkLiBpcyB0cnVlLgor
UEFTUyAgIFRyYW5zZmVycmluZyBBcnJheUJ1ZmZlcnMgd2FzIHN1Y2Nlc3NmdWwgYXMgZXhwZWN0
ZWQuIGlzIHRydWUuCitQQVNTIDwgW3RyYW5zZmVyLWZyb3plbi1hcnJheV0gQWxsIGFzc2VydGlv
bnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVS
IEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJv
Y2Vzcy16ZXJvLW91dHB1dHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLXplcm8tb3V0
cHV0cy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggM2M3ZjAwMzZjMzgxMTU1ZWQyOGUwMTI5ZTFj
N2Y4YzAxNWJmZjJiZi4uODJjZGZiZDZjM2IzMDFiZGM4ZWNkM2M3YjE4MWFjM2U5NDc0NzUwMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29y
a2xldHByb2Nlc3Nvci1wcm9jZXNzLXplcm8tb3V0cHV0cy5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nl
c3Nvci1wcm9jZXNzLXplcm8tb3V0cHV0cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw5
IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTICMg
QVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KLVRJTUVPVVQgRXhlY3V0aW5nICJjaGVjay16ZXJv
LW91dHB1dHMiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1
dGluZyAiY2hlY2stemVyby1vdXRwdXRzIgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbY2hl
Y2stemVyby1vdXRwdXRzXQorUEFTUyAgIHxvdXRwdXRzfCBoYXMgYmVlbiBhbGwgemVyb3MgZm9y
IDEgc2Vjb25kcyBhcyBleHBlY3RlZC4gaXMgdHJ1ZS4KK1BBU1MgPCBbY2hlY2stemVyby1vdXRw
dXRzXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCitQQVNTICMg
QVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29y
a2xldHByb2Nlc3Nvci1wcm9taXNlcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb21pc2VzLmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCAzNjU0MWJmYTk2ZGZlMThkZmI1ZjQzYjJjZjBjYjkzNGZk
MGVhNzRiLi4xZGExNzFjNjhjOTU3YTYxMzdmMTQ5YWFjMTg0ZmRkMWI5NDRlZjM4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJv
Y2Vzc29yLXByb21pc2VzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1
ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb21pc2VzLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDQgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCks
IG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgdGVzdCBUZXN0IHRpbWVkIG91dAorRkFJTCB0ZXN0
IGFzc2VydF90cnVlOiBNaWNyb3Rhc2sgY2hlY2twb2ludHMgYXJlIHBlcmZvcm1lZAorICAgICAg
ICAgICAgICAgICAgICAgICBpbiBiZXR3ZWVuIHJlbmRlciBxdWFudHVtIGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVy
ZmFjZS9wcm9jZXNzLWdldHRlci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1
ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzcy1nZXR0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDZhN2M2ZGUzMjUzYmZkMGZlZWU4MDJiOTc1ZDdhYmRiZTVhN2IzY2YuLmE5NjRhM2I0NzU2
NDQzMjVmYWVkZWYxZTAzN2U4NDExYmUwMTdjNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
YXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzLWdldHRlci5odHRwcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3MtZ2V0dGVy
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDQgQEAKIAotSGFybmVzcyBFcnJvciAoVElN
RU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgJ3Byb2Nlc3MnIGdldHRlciBvbiBwcm90
b3R5cGUgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiAncHJvY2VzcycgZ2V0dGVyIG9uIGluc3RhbmNl
CitQQVNTICdwcm9jZXNzJyBnZXR0ZXIgb24gcHJvdG90eXBlCitQQVNTICdwcm9jZXNzJyBnZXR0
ZXIgb24gaW5zdGFuY2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQt
aW50ZXJmYWNlL3Byb2Nlc3Nvci1jb25zdHJ1Y3Rpb24tcG9ydC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzc29yLWNvbnN0cnVj
dGlvbi1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmNjBlYzhjMjA0NDQwZmUwZTBhYjBh
NDg3NjUzZDVkOTE1NWRkYzE2Li42MDhkYTA5MWE4MWQ4YWUyOTk2N2NlMDU2ZWE3OTFhN2Y0OTk2
MzVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJv
Y2Vzc29yLWNvbnN0cnVjdGlvbi1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzc29yLWNvbnN0cnVjdGlvbi1wb3J0
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDYgQEAKIAotSGFybmVzcyBFcnJvciAoVElN
RU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1Mgc3VwZXIoKSBhZnRlciBuZXcgQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yKCkKIFBBU1MgbmV3IEF1ZGlvV29ya2xldFByb2Nlc3NvcigpIGFmdGVyIHN1
cGVyKCkKIFBBU1MgbmV3IEF1ZGlvV29ya2xldFByb2Nlc3NvcigpIGFmdGVyIG5ldyBBdWRpb1dv
cmtsZXRQcm9jZXNzb3IoKQotVElNRU9VVCBTaW5nbGV0b24gQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
IFRlc3QgdGltZWQgb3V0CitQQVNTIFNpbmdsZXRvbiBBdWRpb1dvcmtsZXRQcm9jZXNzb3IKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3NpbXBsZS1p
bnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmts
ZXQtaW50ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IGIwZGFjMmQ3MmRmMmRiMjJlZDlhZDkzODc2ZTQyODBjZDYyZTFiYmUuLjQ3NTM3YjY3ZWQ1OWQz
NzllNjYwYWU3OTczYmFkYTgzZThlOTRkZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW93b3JrbGV0LWludGVyZmFjZS9zaW1wbGUtaW5wdXQtb3V0cHV0Lmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uvc2ltcGxlLWlucHV0
LW91dHB1dC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTcsMjUgKzcsOCBAQCBQQVNTID4gW0luaXRp
YWxpemUgd29ya2xldF0KIFBBU1MgICBDcmVhdGlvbiBvZiBBdWRpb1dvcmtsZXQgcmVzb2x2ZWQg
Y29ycmVjdGx5LgogUEFTUyA8IFtJbml0aWFsaXplIHdvcmtsZXRdIEFsbCBhc3NlcnRpb25zIHBh
c3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKIFBBU1MgPiBbdGVzdF0gU2ltcGxlIEF1ZGlvV29y
a2xldCBJL08KLUZBSUwgWCBBdWRpb1dvcmtsZXQgb3V0cHV0WzA6MTI3XSBkb2VzIG5vdCBlcXVh
bCBbMSwxLjA1NzU2NDAyMDE1Njg2MDQsMS4xMTQ5MzcxODYyNDExNSwxLjE3MTkyOTEyMTAxNzQ1
NiwxLjIyODM1MDg3Nzc2MTg0MDgsMS4yODQwMTUxNzg2ODA0MiwxLjMzODczNzg0NTQyMDgzNzQs
MS4zOTIzMzY5NjQ2MDcyMzg4LDEuNDQ0NjM1MDMzNjA3NDgzLDEuNDk1NDU4NjAyOTA1MjczNCwx
LjU0NDYzODc1MjkzNzMxNywxLjU5MjAxMzEyMDY1MTI0NTEsMS42Mzc0MjM3NTM3Mzg0MDMzLDEu
NjgwNzIwODA2MTIxODI2MiwxLjcyMTc2MDAzNDU2MTE1NzIsMS43NjA0MDU4OTgwOTQxNzcyLi4u
XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6
MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgotCUluZGV4CUFjdHVhbAkJCUV4cGVjdGVkCQlBYnNF
cnJvcgkJUmVsRXJyb3IJCVRlc3QgdGhyZXNob2xkCi0JWzBdCTAuMDAwMDAwMDAwMDAwMDAwMGUr
MAkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJMS4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMDAwMDAwMDAw
MDAwMDAwMGUrMAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKLQlbMV0JMC4wMDAwMDAwMDAwMDAwMDAw
ZSswCTEuMDU3NTY0MDIwMTU2ODYwNGUrMAkxLjA1NzU2NDAyMDE1Njg2MDRlKzAJMS4wMDAwMDAw
MDAwMDAwMDAwZSswCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAotCVsyXQkwLjAwMDAwMDAwMDAwMDAw
MDBlKzAJMS4xMTQ5MzcxODYyNDExNDk5ZSswCTEuMTE0OTM3MTg2MjQxMTQ5OWUrMAkxLjAwMDAw
MDAwMDAwMDAwMDBlKzAJMC4wMDAwMDAwMDAwMDAwMDAwZSswCi0JWzNdCTAuMDAwMDAwMDAwMDAw
MDAwMGUrMAkxLjE3MTkyOTEyMTAxNzQ1NjFlKzAJMS4xNzE5MjkxMjEwMTc0NTYxZSswCTEuMDAw
MDAwMDAwMDAwMDAwMGUrMAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKLQlbNF0JMC4wMDAwMDAwMDAw
MDAwMDAwZSswCTEuMjI4MzUwODc3NzYxODQwOGUrMAkxLjIyODM1MDg3Nzc2MTg0MDhlKzAJMS4w
MDAwMDAwMDAwMDAwMDAwZSswCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAotCS4uLmFuZCAxMjMgbW9y
ZSBlcnJvcnMuCi0JTWF4IEFic0Vycm9yIG9mIDEuOTk5ODc2NDk5MTc2MDI1NGUrMCBhdCBpbmRl
eCBvZiAyNy4KLQlbMjddCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjk5OTg3NjQ5OTE3NjAyNTRl
KzAJMS45OTk4NzY0OTkxNzYwMjU0ZSswCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkwLjAwMDAwMDAw
MDAwMDAwMDBlKzAKLQlNYXggUmVsRXJyb3Igb2YgMS4wMDAwMDAwMDAwMDAwMDAwZSswIGF0IGlu
ZGV4IG9mIDAuCi0gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFgg
QXVkaW9Xb3JrbGV0IG91dHB1dFsxMjg6XTogRXhwZWN0ZWQgMSBmb3IgYWxsIHZhbHVlcyBidXQg
Zm91bmQgNDc4NzIgdW5leHBlY3RlZCB2YWx1ZXM6Ci0JSW5kZXgJQWN0dWFsCi0JWzBdCTAKLQlb
MV0JMAotCVsyXQkwCi0JWzNdCTAKLQkuLi5hbmQgNDc4NjggbW9yZSBlcnJvcnMuIGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCA8IFt0ZXN0XSAyIG91dCBvZiAyIGFz
c2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRhc2tzIHdl
cmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBB
dWRpb1dvcmtsZXQgb3V0cHV0WzA6MTI3XSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFu
IGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRp
dmVUaHJlc2hvbGQiOjB9LgorUEFTUyAgIEF1ZGlvV29ya2xldCBvdXRwdXRbMTI4Ol0gY29udGFp
bnMgb25seSB0aGUgY29uc3RhbnQgMS4KK1BBU1MgPCBbdGVzdF0gQWxsIGFzc2VydGlvbnMgcGFz
c2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklT
SEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJmYWNlL2Fj
dGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxYTVlNTg5NDI3MDJiNmZm
YzRmNzY2MmMzZDgyZjM2ZGRmNmYxNzJkLi4xNjNhYzViZjU4YWEyYjU3OTQyZjY0YWYxYThmYmU4
YzcyNmNkM2ViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNoYW5uZWxtZXJnZXJub2RlLWlu
dGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1jaGFubmVsbWVyZ2Vybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDE1IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4K
IFBBU1MgRXhlY3V0aW5nICJpbml0aWFsaXplIgotVElNRU9VVCBFeGVjdXRpbmcgInRlc3QiIFRl
c3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAidGVzdCIK
K1BBU1MgQXVkaXQgcmVwb3J0CiBQQVNTID4gW2luaXRpYWxpemVdCiBQQVNTICAgQXVkaW9Xb3Jr
bGV0IG1vZHVsZSBsb2FkaW5nIHJlc29sdmVkIGNvcnJlY3RseS4KIFBBU1MgPCBbaW5pdGlhbGl6
ZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKQogUEFTUyA+IFt0
ZXN0XQorUEFTUyAgIFRlc3QgMDogTnVtYmVyIG9mIGNvbnZvbHZlciBvdXRwdXQgY2hhbm5lbHMg
aXMgZXF1YWwgdG8gNy4KK0ZBSUwgWCBUZXN0IDE6IE51bWJlciBvZiBjb252b2x2ZXIgb3V0cHV0
IGNoYW5uZWxzIGlzIG5vdCBlcXVhbCB0byAxLiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitQQVNTICAgTnVtYmVyIG9mIGRpc3RpbmN0IHZhbHVlcyBpcyBlcXVh
bCB0byAyLgorRkFJTCA8IFt0ZXN0XSAxIG91dCBvZiAzIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCAjIEFVRElUIFRBU0sg
UlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1
ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1j
b252b2x2ZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNz
aW5nLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxYTVlNTg5NDI3MDJiNmZmYzRmNzY2MmMzZDgy
ZjM2ZGRmNmYxNzJkLi5iMjFlN2NhYzJjMDY2NTBmN2MyZTEzNTllZmQzNWIxZTIyYmZkNzRlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1w
cm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZl
cm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MSwxMiArMSwxNCBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwK
LQogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuCiBQQVNTIEV4ZWN1dGluZyAiaW5p
dGlhbGl6ZSIKLVRJTUVPVVQgRXhlY3V0aW5nICJ0ZXN0IiBUZXN0IHRpbWVkIG91dAotTk9UUlVO
IEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgInRlc3QiCitQQVNTIEF1ZGl0IHJlcG9ydAog
UEFTUyA+IFtpbml0aWFsaXplXQogUEFTUyAgIEF1ZGlvV29ya2xldCBtb2R1bGUgbG9hZGluZyBy
ZXNvbHZlZCBjb3JyZWN0bHkuCiBQQVNTIDwgW2luaXRpYWxpemVdIEFsbCBhc3NlcnRpb25zIHBh
c3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKIFBBU1MgPiBbdGVzdF0KK1BBU1MgICBUZXN0IDA6
IE51bWJlciBvZiBjb252b2x2ZXIgb3V0cHV0IGNoYW5uZWxzIGlzIGVxdWFsIHRvIDIuCitGQUlM
IFggTnVtYmVyIG9mIGRpc3RpbmN0IHZhbHVlcyBpcyBub3QgZXF1YWwgdG8gMi4gR290IDEuIGFz
c2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCA8IFt0ZXN0XSAxIG91dCBv
ZiAyIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRh
c2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50
ZXJmYWNlL2NvcnMtY2hlY2suaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRp
YWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL2NvcnMtY2hlY2suaHR0cHMtZXhwZWN0
ZWQudHh0CmluZGV4IGZlMmQ3OWRmMTYwOGRmZjRjMzk5YTdiMzBkMzQyNGYzYTNiMGM4YTYuLjNh
NDkyZWVhYWY1YTM3Mjc3NGQ1MTkzYzdiZTg4OWU3MjBkMzA5OWYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9jb3JzLWNoZWNr
Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlv
c291cmNlbm9kZS1pbnRlcmZhY2UvY29ycy1jaGVjay5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEs
MTEgKzEsMTUgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0K
IFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELgogUEFTUyBFeGVjdXRpbmcgInNldHRp
bmctdXAtZ3JhcGgiCi1USU1FT1VUIEV4ZWN1dGluZyAic3RhcnQtcGxheWJhY2stYW5kLWNhcHR1
cmUiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAi
c3RhcnQtcGxheWJhY2stYW5kLWNhcHR1cmUiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtz
ZXR0aW5nLXVwLWdyYXBoXQogUEFTUyA8IFtzZXR0aW5nLXVwLWdyYXBoXSBBbGwgYXNzZXJ0aW9u
cyBwYXNzZWQuICh0b3RhbCAwIGFzc2VydGlvbnMpCiBQQVNTID4gW3N0YXJ0LXBsYXliYWNrLWFu
ZC1jYXB0dXJlXQorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzAgaXMgbm90IGNvbnN0YW50bHkg
MCAoY29udGFpbnMgMzMwODggZGlmZmVyZW50IHZhbHVlcykuCitQQVNTICAgUmVjb3JkZWQgY2hh
bm5lbCAjMSBpcyBub3QgY29uc3RhbnRseSAwIChjb250YWlucyAzMzA5MCBkaWZmZXJlbnQgdmFs
dWVzKS4KK1BBU1MgICBSZWNvcmRlZCBjaGFubmVsICMyIGlzIG5vdCBjb25zdGFudGx5IDAgKGNv
bnRhaW5zIDMzMDg5IGRpZmZlcmVudCB2YWx1ZXMpLgorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwg
IzMgaXMgbm90IGNvbnN0YW50bHkgMCAoY29udGFpbnMgMzMwOTAgZGlmZmVyZW50IHZhbHVlcyku
CitQQVNTIDwgW3N0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlXSBBbGwgYXNzZXJ0aW9ucyBwYXNz
ZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNI
RUQ6IDIgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL25vLWNvcnMuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50
ZXJmYWNlL25vLWNvcnMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGZlMmQ3OWRmMTYwOGRmZjRj
Mzk5YTdiMzBkMzQyNGYzYTNiMGM4YTYuLjRkMTM5ZDllZGU3MDE2MGFhMzgyYjJjMDI1M2Q2NmU2
YmY3ODUzZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3Vy
Y2Vub2RlLWludGVyZmFjZS9uby1jb3JzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2Uvbm8tY29ycy5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTUgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9V
VCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELgog
UEFTUyBFeGVjdXRpbmcgInNldHRpbmctdXAtZ3JhcGgiCi1USU1FT1VUIEV4ZWN1dGluZyAic3Rh
cnQtcGxheWJhY2stYW5kLWNhcHR1cmUiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVw
b3J0CitQQVNTIEV4ZWN1dGluZyAic3RhcnQtcGxheWJhY2stYW5kLWNhcHR1cmUiCitQQVNTIEF1
ZGl0IHJlcG9ydAogUEFTUyA+IFtzZXR0aW5nLXVwLWdyYXBoXQogUEFTUyA8IFtzZXR0aW5nLXVw
LWdyYXBoXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAwIGFzc2VydGlvbnMpCiBQQVNT
ID4gW3N0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlXQorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwg
IzAgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KK1BBU1MgICBSZWNvcmRlZCBjaGFubmVs
ICMxIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCitQQVNTICAgUmVjb3JkZWQgY2hhbm5l
bCAjMiBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgorUEFTUyAgIFJlY29yZGVkIGNoYW5u
ZWwgIzMgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KK1BBU1MgPCBbc3RhcnQtcGxheWJh
Y2stYW5kLWNhcHR1cmVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9u
cykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3VjY2Vz
c2Z1bGx5LgogCg==
</data>
<flag name="commit-queue"
          id="427099"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410987</attachid>
            <date>2020-10-09 17:20:41 -0700</date>
            <delta_ts>2020-10-12 08:40:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217531-20201009172040.patch</filename>
            <type>text/plain</type>
            <size>63818</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiODVhZDY4MWE3ZWMx
YWNiM2E2OTkzMzJmOWY3NjU2NmNlMTk5MS4uNGMxMzRkNjU1OWQxMTIxZjRjZWU5ZjljZmMwY2Qw
ZGNjNzA0MWVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNyBAQAorMjAyMC0xMC0wOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IgdG8gcHJvY2VzcyBhdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIEF1ZGlvV29ya2xldFByb2Nlc3NvciB0byBwcm9jZXNzIGF1
ZGlvOgorICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlv
d29ya2xldHByb2Nlc3Nvci1wcm9jZXNzCisKKyAgICAgICAgVGhlIEF1ZGlvV29ya2xldE5vZGUg
bG9naWMgaXMgYmFzZWQgb24gdGhlIEJsaW5rIGltcGxlbWVudGF0aW9uIGF0OgorICAgICAgICAt
IGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJvbWl1bS9jaHJvbWl1bS9ibG9iL21hc3Rlci90aGlyZF9w
YXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL3dlYmF1ZGlvL2F1ZGlvX3dvcmtsZXRfbm9kZS5j
YworCisgICAgICAgIFRoaXMgd2FzIHRoZSBsYXN0IHBpZWNlIG9mIGxvZ2ljIG5lZWRlZCB0byBt
YWtlIEF1ZGlvV29ya2xldCBmdW5jdGlvbmFsLgorICAgICAgICBJIGRpZCBub3QgZW5hYmxlIEF1
ZGlvV29ya2xldHMgYnkgZGVmYXVsdCBpbiB0aGlzIHBhdGNoIHRob3VnaCBiZWNhdXNlCisgICAg
ICAgIHRoZXJlIGFyZSBzdGlsbCBzb21lIHRlc3QgZmFpbHVyZXMgdGhhdCB3ZSBzaG91bGQgaW52
ZXN0aWdhdGUgZmlyc3QuCisgICAgICAgIE1vc3QgQXVkaW9Xb3JrbGV0IHRlc3RzIGFyZSBwYXNz
aW5nIHRob3VnaC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmg6CisgICAg
ICAgIFJldHVybiBhIGNvbnN0IHJlZmVyZW5jZSB0byBhdm9pZCByZWZjb3VudGluZyBjaHVybi4K
KworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNyZWF0ZVByb2Nl
c3Nvcik6CisgICAgICAgIEFmdGVyIHRoZSBKU0F1ZGlvV29ya2xldFByb2Nlc3Nvciwgd2UgY29u
c3RydWN0IGEgSlNDYWxsYmFja0RhdGEgZnJvbSB0aGUKKyAgICAgICAgSlNBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IgYW5kIHRoZSBnbG9iYWwgb2JqZWN0IGFuZCBjYWxsIGEgc2V0dGVyIG9uIHRoZQor
ICAgICAgICBBdWRpb1dvcmtsZXRQcm9jZXNzb3IuIFRoZSBwcm9jZXNzb3Igd2lsbCB1c2UgdGhp
cyB3aGVuIHByb2Nlc3MoKSBpcyBjYWxsZWQKKyAgICAgICAgdG8gZm9yd2FyZCB0aGUgY2FsbCB0
byBwcm9jZXNzKCkgaW4gSmF2YVNjcmlwdC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2Rl
OjpjcmVhdGUpOgorICAgICAgICAtIE1vdmUgdGhlIGxvZ2ljIGRlYWxpbmcgd2l0aCBBdWRpb1Bh
cmFtIG9iamVjdHMgdG8gaXRzIG93biBpbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJzKCkKKyAgICAg
ICAgZnVuY3Rpb24uCisgICAgICAgIC0gQ2FsbCBjb250ZXh0LnJlZk5vZGUobm9kZSkgc28gdGhh
dCB0aGUgbm9kZSBpcyBrZXB0IGFsaXZlIGJ5IHRoZSBhdWRpbyBjb250ZXh0CisgICAgICAgICAg
dW50aWwgcGxheWJhY2sgaXMgZmluaXNoZWQuIFRoZSBjYWxsIHRvIGNvbnRleHQoKS5ub3RpZnlO
b2RlRmluaXNoZWRQcm9jZXNzaW5nKHRoaXMpCisgICAgICAgICAgaW4gZGlkRmluaXNoUHJvY2Vz
c2luZ09uUmVuZGVyaW5nVGhyZWFkKCkgaXMgd2hhdCBub3RpZmllcyB0aGUgY29udGV4dCB0aGF0
IHdlIGZpbmlzaGVkCisgICAgICAgICAgcGxheWJhY2sgYW5kIGFsbG93cyB0aGUgbm9kZSB0byBn
ZXQgZGVzdHJveWVkLiBUaGlzIGlzIHNpbWlsYXIgdG8gd2hhdCBpcyBkb25lIGZvcgorICAgICAg
ICAgIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZXMuCisgICAgICAgIC0gQ2FsbCB1cGRhdGVQdWxs
U3RhdHVzKCkgc28gdGhhdCB0aGUgbm9kZSBnZXRzIGFkZGVkIHRvIHRoZSBhdXRvbWF0aWMgcHVs
bCBsaXN0IGlmIGl0CisgICAgICAgICAgZG9lcyBub3QgaGF2ZSBhbnkgb3V0cHV0cy4gT3RoZXJ3
aXNlLCB0aGUgbm9kZSB3b3VsZCBub3QgYmUgdXNlZCBmb3IgcmVuZGVyaW5nIGlmIGl0CisgICAg
ICAgICAgZGlkIG5vdCBoYXZlIGFueSBvdXRwdXRzLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
V29ya2xldE5vZGU6On5BdWRpb1dvcmtsZXROb2RlKToKKworICAgICAgICAoV2ViQ29yZTo6QXVk
aW9Xb3JrbGV0Tm9kZTo6aW5pdGlhbGl6ZUF1ZGlvUGFyYW1ldGVycyk6CisgICAgICAgIFRoaXMg
bG9naWMgd2FzIG1vc3RseSBtb3ZlZCBmcm9tIHRoZSBjcmVhdGUoKSBmdW5jdGlvbi4gVGhlIHBh
cnQgdGhhdCdzIG5ldyBpcyB0aGUKKyAgICAgICAgaW5pdGlhbGl6YXRpb24gb2YgbV9wYXJhbVZh
bHVlc01hcCB0byBmaWxsIGl0IHdpdGggZW1wdHkgYXVkaW8gYXJyYXlzLiBUaGVzZSBhcnJheXMK
KyAgICAgICAgYXJlIHVzZWQgaW4gcHJvY2VzcygpIHRvIHN0b3JlIHRoZSBzYW1wbGVzIGZyb20g
QXVkaW9QYXJhbSBvYmplY3RzLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2Rl
OjpzZXRQcm9jZXNzb3IpOgorICAgICAgICBGaXJlIGEgcHJvY2Vzc29yIGVycm9yIGlmIHRoZSBw
cm9jZXNzb3IgZ2V0cyBzZXQgdG8gbnVsbHB0ciwgaW5kaWNhdGluZyB0aGF0IHdlIGZhaWxlZAor
ICAgICAgICB0byBjb25zdHJ1Y3QgdGhlIEF1ZGlvV29ya2xldFByb2Nlc3NvciBvYmplY3QuCisK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6OnByb2Nlc3MpOgorICAgICAgICBG
aWxsIG1fcGFyYW1WYWx1ZXNNYXAgd2l0aCBzYW1wbGVzIGZyb20gYXNzb2NpYXRlZCBBdWRpb1Bh
cmFtIG9iamVjdHMgdGhlbiBjYWxsCisgICAgICAgIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJv
Y2VzcygpIHdpdGggaW5wdXQgJiBvdXRwdXQgQXVkaW9CdXMgb2JqZWN0cywgYXMgd2VsbAorICAg
ICAgICBhcyBtX3BhcmFtVmFsdWVzTWFwLiBJZiBwcm9jZXNzKCkgcmV0dXJucyBmYWxzZSBvciBl
bmNvdW50ZXJlZCBhbiBlcnJvciwgd2UgZmluaXNoCisgICAgICAgIHJlbmRlcmluZy4KKworICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6ZGlkRmluaXNoUHJvY2Vzc2luZ09uUmVu
ZGVyaW5nVGhyZWFkKToKKyAgICAgICAgVGhpcyBpcyBjYWxsZWQgYnkgcHJvY2VzcygpIHdoZW5l
dmVyIHByb2Nlc3MoKSByZXR1cm5zIGZhbHNlIG9yIGVuY291bnRlcmVkIGFuIGVycm9yLgorICAg
ICAgICBJZiBwcm9jZXNzKCkgZW5jb3VudGVyZWQgYW4gZXJyb3IsIHdlIG1ha2Ugc3VyZSB0byBm
aXJlIGEgcHJvY2Vzc29yZXZlbnQgZXZlbnQgdG8KKyAgICAgICAgbGV0IHRoZSBzY3JpcHQga25v
dy4gVGhlbiB3ZSBudWxsIG91dCB0aGUgcHJvY2Vzc29yIGFuZCBmaW5pc2ggcmVuZGVyaW5nLgor
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjp1cGRhdGVQdWxsU3RhdHVzKToK
KyAgICAgICAgSWYgdGhlIG5vZGUgaGFzIG5vIG91dHB1dCwgd2UgbmVlZCB0byBtYWtlIHN1cmUg
dG8gYWRkIGl0IHRvIHRoZSBhdXRvbWF0aWMgcHVsbAorICAgICAgICBsaXN0IGluIHRoZSBjb250
ZXh0IHNvIHRoYXQgaXQgaXMgdXNlZCBmb3IgcmVuZGVyaW5nLgorCisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1dvcmtsZXROb2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dCk6CisgICAg
ICAgIFVzZSBzYW1lIGxvZ2ljIGFzIEJsaW5rIGhlcmUuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvV29ya2xldE5vZGU6OmZpcmVQcm9jZXNzb3JFcnJvck9uTWFpblRocmVhZCk6CisgICAgICAg
IExvZ2ljIHRvIGZpcmUgYSBwcm9jZXNzb3JlcnJvciBldmVudCBvbiB0aGUgbWFpbiB0aHJlYWQg
d2l0aCBhIGRlY2VudCBlcnJvciBtZXNzYWdlLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dv
cmtsZXROb2RlOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvV29ya2xldE5vZGU6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAg
ICAgICBBY3RpdmVET01PYmplY3Qgb3ZlcnJpZGVzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmg6CisgICAgICAgIFN1YmNsYXNzIEF1ZGlvV29ya2xldE5v
ZGUgc2luY2Ugd2UgY2FuIGZpcmUgcHJvY2Vzc29yZXJyb3IgZXZlbnRzCisgICAgICAgIGF0IGFu
eSBwb2ludCBkdXJpbmcgcmVuZGVyaW5nLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmlkbDoKKyAgICAgICAgTWFrZSBpdCBhbiBBY3RpdmVET01PYmplY3Qu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheSk6CisgICAgICAgIChX
ZWJDb3JlOjpjb25zdHJ1Y3RKU01hcCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RGcm96
ZW5KU0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlEYXRhRnJvbUpTQXJyYXlUb0J1c2Vz
KToKKyAgICAgICAgQSBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyB0byBjb252ZXJ0IFdlYkNv
cmUgdHlwZXMgaW50byB0aGUgc3VpdGFibGUKKyAgICAgICAgSmF2YVNjcmlwdCB0eXBlcyB0aGF0
IGFyZSBleHBlY3RlZCBieSB0aGUgcHJvY2VzcygpIGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICBQcm92aWRlIGlt
cGxlbWVudGF0aW9uIGZvciBwcm9jZXNzKCk6CisgICAgICAgIC0gaHR0cHM6Ly93d3cudzMub3Jn
L1RSL3dlYmF1ZGlvLyNkb20tYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MKKyAgICAgICAg
V2UgY29udmVydCB0aGUgcGFyYW1ldGVycyBpbnRvIHRoZSBKYXZhU2NyaXB0IHR5cGVzIHRoYXQg
dGhlIEpTIHByb2Nlc3MoKQorICAgICAgICBmdW5jdGlvbiBleHBlY3RzLCB0aGVuIGNhbGwgdGhl
IHByb2Nlc3MoKSBmdW5jdGlvbiBhbmQgZmluYWxseSByZXR1cm4KKyAgICAgICAgdGhlIHZhbHVl
IHJldHVybmVkIGJ5IHRoZSBKUyBwcm9jZXNzKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6c2V0UHJvY2Vzc0NhbGxiYWNrKToKKyAgICAgICAg
VGhpcyBpcyBjYWxsZWQgYnkgdGhlIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlIHJpZ2h0IGFmdGVy
IHRoZSBBdWRpb1dvcmtsZXRQcm9jZXNzb3IKKyAgICAgICAgd3JhcHBlciBnZXRzIGNvbnN0cnVj
dGVkIHRvIHNldCB0aGUgSlNDYWxsYmFja0RhdGEgb2JqZWN0IHRoYXQgaXMgdXNlZAorICAgICAg
ICBieSBwcm9jZXNzKCkgdG8gY2FsbCB0aGUgSlMgcHJvY2VzcygpIGZ1bmN0aW9uLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaDoKKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0Nh
bGxiYWNrRGF0YVN0cm9uZzo6SlNDYWxsYmFja0RhdGFTdHJvbmcpOgorICAgICAgICBNYWtlIEpT
Q2FsbGJhY2tEYXRhIGZhc3QgYWxsb2NhdGVkLiBUaGUgYmluZGluZ3MgYW5kIG15IG5ldyBjb2Rl
IGhlYXAtYWxsb2NhdGUgaXQuCisKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFcnJvckV2ZW50OjpFcnJvckV2ZW50KToKKyAgICAgICAgKiBkb20vRXJy
b3JFdmVudC5oOgorICAgICAgICBBZGQgYW4gZXZlbnRUeXBlIHBhcmFtZXRlciBzaW5jZSBBdWRp
b1dvcmtsZXROb2RlIG5vdyBuZWVkcyB0byBkaXNwYXRjaCBhbiBFcnJvckV2ZW50CisgICAgICAg
IHdob3NlIHR5cGUgaXMgInByb2Nlc3NvcmVycm9yIiwgbm90IHRoZSBnZW5lcmljICJlcnJvciIu
CisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVz
c2FnZVBvcnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICBGaXgg
TWVzc2FnZVBvcnQgZ2FyYmFzZSBjb2xsZWN0aW9uIGxvZ2ljIHRvIHByb3Blcmx5IGRlYWwgd2l0
aCBNZXNzYWdlUG9ydHMgZnJvbQorICAgICAgICB3b3JrbGV0cy4gVGhpcyBhZGRyZXNzZXMgY3Jh
c2hlcyBmb3VuZCBieSB0aGUgdW5za2lwcGVkIGxheW91dCB0ZXN0cy4KKwogMjAyMC0xMC0wOSAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0
aW9uXSBPdmVyZmxvdyBjbGlwIGJsb2NrcyB2aXN1YWwgb3ZlcmZsb3cKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmgKaW5kZXggZjRlOTNkNjhiZTZlNGQ2ODhl
NzRkMGIyNjM5ODYxNTM1NGU4NmJmMS4uMTZiNDMyNTViNjNlMjc3NzE4Mzg1MjcxMDRiZDdhZjlh
MDYxNDI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFt
LmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIC8vIE11c3QgYmUgY2FsbGVkIGluIHRo
ZSBhdWRpbyB0aHJlYWQuCiAgICAgZmxvYXQgZmluYWxWYWx1ZSgpOwogCi0gICAgU3RyaW5nIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBj
b25zdCB7IHJldHVybiBtX25hbWU7IH0KIAogICAgIGZsb2F0IG1pblZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9taW5WYWx1ZTsgfQogICAgIGZsb2F0IG1heFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9tYXhWYWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCA0NTMwNjIwMzAwMWM0ZWQz
MmMxMTUwZmU4MDQ3YTA4Yzg5N2RiZDJiLi4yYTMwNmQ0ZjQxYzk3NDRiOWU2NTdjY2NjYTEyZjk2
YjllYzU0MWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIFJl
ZlB0cjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+IEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpjcmVh
dGVQcm9jZXNzb3IoY29uc3QgU3RyCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgSlND
OjpKU09iamVjdCoganNDb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yLT5jYWxsYmFja0RhdGEoKS0+
Y2FsbGJhY2soKTsKLSAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBqc0NvbnN0cnVjdG9yLT5nbG9i
YWxPYmplY3QoKTsKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBjb25zdHJ1Y3Rvci0+Y2FsbGJh
Y2tEYXRhKCktPmdsb2JhbE9iamVjdCgpOwogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrIHsgZ2xvYmFsT2JqZWN0IH07CkBAIC0xMzYsNiArMTM2LDgg
QEAgUmVmUHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nvcj4gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6
OmNyZWF0ZVByb2Nlc3Nvcihjb25zdCBTdHIKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKIAogICAgIGF1dG8mIGpzUHJvY2Vzc29yID0gKkpTQzo6anNDYXN0PEpTQXVk
aW9Xb3JrbGV0UHJvY2Vzc29yKj4ob2JqZWN0KTsKKyAgICBqc1Byb2Nlc3Nvci53cmFwcGVkKCku
c2V0UHJvY2Vzc0NhbGxiYWNrKG1ha2VVbmlxdWU8SlNDYWxsYmFja0RhdGFTdHJvbmc+KCZqc1By
b2Nlc3NvciwgZ2xvYmFsT2JqZWN0KSk7CisKICAgICByZXR1cm4gJmpzUHJvY2Vzc29yLndyYXBw
ZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggNmJlNzliOTkzZmI2NTk5YTgyNjMwODllZTA4NDNjYmMz
MjUxNmY5OS4uOWNhN2MyNDk4ZGVlYjZiOTA5MmY5MmEyODk3MjE1MzNjNzE5MGVlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUu
Y3BwCkBAIC0zMiwxNCArMzIsMTggQEAKICNpbmNsdWRlICJBdWRpb1dvcmtsZXROb2RlLmgiCiAK
ICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKKyNpbmNsdWRlICJBdWRpb05vZGVJbnB1dC5oIgog
I2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgogI2luY2x1ZGUgIkF1ZGlvUGFyYW0uaCIKICNp
bmNsdWRlICJBdWRpb1BhcmFtTWFwLmgiCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNp
bmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKICNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNzYWdpbmdQ
cm94eS5oIgogI2luY2x1ZGUgIkF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmgiCiAjaW5jbHVkZSAi
QXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgiCiAjaW5jbHVkZSAiQmFzZUF1ZGlvQ29udGV4dC5oIgor
I2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVk
ZSAiSlNBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VDaGFubmVs
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKQEAgLTkwLDMzICs5NCwzNSBAQCBFeGNlcHRp
b25PcjxSZWY8QXVkaW9Xb3JrbGV0Tm9kZT4+IEF1ZGlvV29ya2xldE5vZGU6OmNyZWF0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0JgogCiAgICAgYXV0byBwYXJhbWV0ZXJEYXRhID0gV1RGTW92ZShvcHRp
b25zLnBhcmFtZXRlckRhdGEpOwogICAgIGF1dG8gbm9kZSA9IGFkb3B0UmVmKCpuZXcgQXVkaW9X
b3JrbGV0Tm9kZShjb250ZXh0LCBuYW1lLCBXVEZNb3ZlKG9wdGlvbnMpLCAqbm9kZU1lc3NhZ2VQ
b3J0KSk7CisgICAgbm9kZS0+c3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICBhdXRvIHJlc3VsdCA9
IG5vZGUtPmhhbmRsZUF1ZGlvTm9kZU9wdGlvbnMob3B0aW9ucywgeyAyLCBDaGFubmVsQ291bnRN
b2RlOjpNYXgsIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnMgfSk7CiAgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCk7CiAKLSAgICBmb3IgKGF1dG8mIGRlc2NyaXB0b3IgOiBwYXJhbWV0ZXJEZXNjcmlwdG9y
cykgewotICAgICAgICBhdXRvIHBhcmFtZXRlciA9IEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0
LCBkZXNjcmlwdG9yLm5hbWUsIGRlc2NyaXB0b3IuZGVmYXVsdFZhbHVlLCBkZXNjcmlwdG9yLm1p
blZhbHVlLCBkZXNjcmlwdG9yLm1heFZhbHVlLCBkZXNjcmlwdG9yLmF1dG9tYXRpb25SYXRlKTsK
LSAgICAgICAgbm9kZS0+cGFyYW1ldGVycygpLmFkZChkZXNjcmlwdG9yLm5hbWUsIFdURk1vdmUo
cGFyYW1ldGVyKSk7Ci0gICAgfQorICAgIG5vZGUtPmluaXRpYWxpemVBdWRpb1BhcmFtZXRlcnMo
cGFyYW1ldGVyRGVzY3JpcHRvcnMsIHBhcmFtZXRlckRhdGEpOwogCi0gICAgaWYgKHBhcmFtZXRl
ckRhdGEpIHsKLSAgICAgICAgZm9yIChhdXRvJiBwYXJhbWV0ZXIgOiAqcGFyYW1ldGVyRGF0YSkg
ewotICAgICAgICAgICAgaWYgKGF1dG8qIGF1ZGlvUGFyYW0gPSBub2RlLT5wYXJhbWV0ZXJzKCku
bWFwKCkuZ2V0KHBhcmFtZXRlci5rZXkpKQotICAgICAgICAgICAgICAgIGF1ZGlvUGFyYW0tPnNl
dFZhbHVlKHBhcmFtZXRlci52YWx1ZSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgLy8gV2lsbCBj
YXVzZSB0aGUgY29udGV4dCB0byByZWYgdGhlIG5vZGUgdW50aWwgcGxheWJhY2sgaGFzIGZpbmlz
aGVkLgorICAgIGNvbnRleHQucmVmTm9kZShub2RlKTsKIAogICAgIGNvbnRleHQuYXVkaW9Xb3Jr
bGV0KCkuY3JlYXRlUHJvY2Vzc29yKG5hbWUsIHByb2Nlc3Nvck1lc3NhZ2VQb3J0LT5kaXNlbnRh
bmdsZSgpLCBzZXJpYWxpemVkT3B0aW9ucy5yZWxlYXNlTm9uTnVsbCgpLCBub2RlKTsKIAorICAg
IHsKKyAgICAgICAgLy8gVGhlIG5vZGUgc2hvdWxkIGJlIG1hbnVhbGx5IGFkZGVkIHRvIHRoZSBh
dXRvbWF0aWMgcHVsbCBub2RlIGxpc3QsIGV2ZW4gd2l0aG91dCBhIGNvbm5lY3QoKSBjYWxsLgor
ICAgICAgICBCYXNlQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGNvbnRleHRMb2NrZXIoY29udGV4
dCk7CisgICAgICAgIG5vZGUtPnVwZGF0ZVB1bGxTdGF0dXMoKTsKKyAgICB9CisKICAgICByZXR1
cm4gbm9kZTsKIH0KIAogQXVkaW9Xb3JrbGV0Tm9kZTo6QXVkaW9Xb3JrbGV0Tm9kZShCYXNlQXVk
aW9Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEF1ZGlvV29ya2xldE5vZGVP
cHRpb25zJiYgb3B0aW9ucywgUmVmPE1lc3NhZ2VQb3J0PiYmIHBvcnQpCiAgICAgOiBBdWRpb05v
ZGUoY29udGV4dCwgTm9kZVR5cGVXb3JrbGV0KQorICAgICwgQWN0aXZlRE9NT2JqZWN0KGNvbnRl
eHQuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICwgbV9uYW1lKG5hbWUpCiAgICAgLCBt
X3BhcmFtZXRlcnMoQXVkaW9QYXJhbU1hcDo6Y3JlYXRlKCkpCiAgICAgLCBtX3BvcnQoV1RGTW92
ZShwb3J0KSkKKyAgICAsIG1fd2FzT3V0cHV0Q2hhbm5lbENvdW50R2l2ZW4oISFvcHRpb25zLm91
dHB1dENoYW5uZWxDb3VudCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBvcHRpb25zLm51bWJlck9mSW5wdXRzOyArK2kpCkBAIC0x
MjQsNiArMTMwLDkgQEAgQXVkaW9Xb3JrbGV0Tm9kZTo6QXVkaW9Xb3JrbGV0Tm9kZShCYXNlQXVk
aW9Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgb3B0aW9ucy5udW1iZXJPZk91dHB1dHM7ICsraSkKICAgICAgICAgYWRkT3V0
cHV0KG9wdGlvbnMub3V0cHV0Q2hhbm5lbENvdW50ID8gb3B0aW9ucy5vdXRwdXRDaGFubmVsQ291
bnQtPmF0KGkpOiAxKTsKIAorICAgIG1faW5wdXRzLnJlc2l6ZShvcHRpb25zLm51bWJlck9mSW5w
dXRzKTsKKyAgICBtX291dHB1dHMucmVzaXplKG9wdGlvbnMubnVtYmVyT2ZPdXRwdXRzKTsKKwog
ICAgIGluaXRpYWxpemUoKTsKIH0KIApAQCAtMTMxLDcgKzE0MCw3IEBAIEF1ZGlvV29ya2xldE5v
ZGU6On5BdWRpb1dvcmtsZXROb2RlKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
ICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Byb2Nlc3NvckxvY2spOwor
ICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwogICAgICAgICBp
ZiAobV9wcm9jZXNzb3IpIHsKICAgICAgICAgICAgIGlmIChhdXRvKiB3b3JrbGV0UHJveHkgPSBj
b250ZXh0KCkuYXVkaW9Xb3JrbGV0KCkucHJveHkoKSkKICAgICAgICAgICAgICAgICB3b3JrbGV0
UHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFttX3Byb2Nlc3NvciA9
IFdURk1vdmUobV9wcm9jZXNzb3IpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeyB9LCBXb3Jr
ZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKQEAgLTE0MCwyMSArMTQ5LDE0NyBAQCBBdWRpb1dv
cmtsZXROb2RlOjp+QXVkaW9Xb3JrbGV0Tm9kZSgpCiAgICAgdW5pbml0aWFsaXplKCk7CiB9CiAK
K3ZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6aW5pdGlhbGl6ZUF1ZGlvUGFyYW1ldGVycyhjb25zdCBW
ZWN0b3I8QXVkaW9QYXJhbURlc2NyaXB0b3I+JiBkZXNjcmlwdG9ycywgY29uc3QgT3B0aW9uYWw8
VmVjdG9yPFdURjo6S2V5VmFsdWVQYWlyPFN0cmluZywgZG91YmxlPj4+JiBwYXJhbVZhbHVlcykK
K3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChtX3BhcmFtZXRlcnMt
Pm1hcCgpLmlzRW1wdHkoKSk7CisKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vz
c0xvY2spOworCisgICAgZm9yIChhdXRvJiBkZXNjcmlwdG9yIDogZGVzY3JpcHRvcnMpIHsKKyAg
ICAgICAgYXV0byBwYXJhbWV0ZXIgPSBBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCgpLCBkZXNj
cmlwdG9yLm5hbWUsIGRlc2NyaXB0b3IuZGVmYXVsdFZhbHVlLCBkZXNjcmlwdG9yLm1pblZhbHVl
LCBkZXNjcmlwdG9yLm1heFZhbHVlLCBkZXNjcmlwdG9yLmF1dG9tYXRpb25SYXRlKTsKKyAgICAg
ICAgbV9wYXJhbWV0ZXJzLT5hZGQoZGVzY3JpcHRvci5uYW1lLCBXVEZNb3ZlKHBhcmFtZXRlcikp
OworICAgIH0KKworICAgIGlmIChwYXJhbVZhbHVlcykgeworICAgICAgICBmb3IgKGF1dG8mIHBh
cmFtVmFsdWUgOiAqcGFyYW1WYWx1ZXMpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBhdWRpb1Bh
cmFtID0gbV9wYXJhbWV0ZXJzLT5tYXAoKS5nZXQocGFyYW1WYWx1ZS5rZXkpKQorICAgICAgICAg
ICAgICAgIGF1ZGlvUGFyYW0tPnNldFZhbHVlKHBhcmFtVmFsdWUudmFsdWUpOworICAgICAgICB9
CisgICAgfQorCisgICAgZm9yIChhdXRvJiBwYXJhbWV0ZXJOYW1lIDogbV9wYXJhbWV0ZXJzLT5t
YXAoKS5rZXlzKCkpCisgICAgICAgIG1fcGFyYW1WYWx1ZXNNYXAuYWRkKHBhcmFtZXRlck5hbWUs
IG1ha2VVbmlxdWU8QXVkaW9GbG9hdEFycmF5PihBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemUpKTsKK30KKwogdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpzZXRQcm9jZXNzb3IoUmVmUHRy
PEF1ZGlvV29ya2xldFByb2Nlc3Nvcj4mJiBwcm9jZXNzb3IpCiB7CiAgICAgQVNTRVJUKCFpc01h
aW5UaHJlYWQoKSk7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Byb2Nlc3NvckxvY2sp
OwotICAgIG1fcHJvY2Vzc29yID0gV1RGTW92ZShwcm9jZXNzb3IpOworICAgIGlmIChwcm9jZXNz
b3IpIHsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKKyAg
ICAgICAgbV9wcm9jZXNzb3IgPSBXVEZNb3ZlKHByb2Nlc3Nvcik7CisgICAgfSBlbHNlCisgICAg
ICAgIGZpcmVQcm9jZXNzb3JFcnJvck9uTWFpblRocmVhZChQcm9jZXNzb3JFcnJvcjo6Q29uc3Ry
dWN0b3JFcnJvcik7CiB9CiAKIHZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6cHJvY2VzcyhzaXplX3Qg
ZnJhbWVzVG9Qcm9jZXNzKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIFVO
VVNFRF9QQVJBTShmcmFtZXNUb1Byb2Nlc3MpOwogCi0gICAgLy8gRklYTUU6IERvIGFjdHVhbCBw
cm9jZXNzaW5nIHZpYSBtX3Byb2Nlc3Nvci4KKyAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2Nr
KG1fcHJvY2Vzc0xvY2spOworICAgIGlmICghbG9ja2VyIHx8ICFtX3Byb2Nlc3NvcikgeworICAg
ICAgICAvLyBXZSdyZSBub3QgcmVhZHkgeWV0IG9yIHdlIGFyZSBnZXR0aW5nIGRlc3Ryb3llZC4g
SW4gdGhpcyBjYXNlLCB3ZSBvdXRwdXQgc2lsZW5jZS4KKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG51bWJlck9mT3V0cHV0cygpOyArK2kpCisgICAgICAgICAgICBvdXRwdXQoaSkt
PmJ1cygpLT56ZXJvKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBJZiB0aGUg
aW5wdXQgaXMgbm90IGNvbm5lY3RlZCwgcGFzcyBudWxscHRyIHRvIHRoZSBwcm9jZXNzb3IuCisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mSW5wdXRzKCk7ICsraSkKKyAgICAg
ICAgbV9pbnB1dHNbaV0gPSBpbnB1dChpKS0+aXNDb25uZWN0ZWQoKSA/IGlucHV0KGkpLT5idXMo
KSA6IG51bGxwdHI7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mT3V0cHV0
cygpOyArK2kpCi0gICAgICAgIG91dHB1dChpKS0+YnVzKCktPnplcm8oKTsKKyAgICAgICAgbV9v
dXRwdXRzW2ldID0gb3V0cHV0KGkpLT5idXMoKTsKKworICAgIGZvciAoYXV0byYgYXVkaW9QYXJh
bSA6IG1fcGFyYW1ldGVycy0+bWFwKCkudmFsdWVzKCkpIHsKKyAgICAgICAgYXV0byogcGFyYW1W
YWx1ZXMgPSBtX3BhcmFtVmFsdWVzTWFwLmdldChhdWRpb1BhcmFtLT5uYW1lKCkpOworICAgICAg
ICBBU1NFUlQocGFyYW1WYWx1ZXMpOworICAgICAgICBpZiAoYXVkaW9QYXJhbS0+aGFzU2FtcGxl
QWNjdXJhdGVWYWx1ZXMoKSAmJiBhdWRpb1BhcmFtLT5hdXRvbWF0aW9uUmF0ZSgpID09IEF1dG9t
YXRpb25SYXRlOjpBUmF0ZSkKKyAgICAgICAgICAgIGF1ZGlvUGFyYW0tPmNhbGN1bGF0ZVNhbXBs
ZUFjY3VyYXRlVmFsdWVzKHBhcmFtVmFsdWVzLT5kYXRhKCksIGZyYW1lc1RvUHJvY2Vzcyk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN0ZDo6ZmlsbChwYXJhbVZhbHVlcy0+ZGF0YSgpLCBw
YXJhbVZhbHVlcy0+ZGF0YSgpICsgZnJhbWVzVG9Qcm9jZXNzLCBhdWRpb1BhcmFtLT5maW5hbFZh
bHVlKCkpOworICAgIH0KKworICAgIGJvb2wgdGhyZXdFeGNlcHRpb24gPSBmYWxzZTsKKyAgICBp
ZiAoIW1fcHJvY2Vzc29yLT5wcm9jZXNzKG1faW5wdXRzLCBtX291dHB1dHMsIG1fcGFyYW1WYWx1
ZXNNYXAsIHRocmV3RXhjZXB0aW9uKSkKKyAgICAgICAgZGlkRmluaXNoUHJvY2Vzc2luZ09uUmVu
ZGVyaW5nVGhyZWFkKHRocmV3RXhjZXB0aW9uKTsKK30KKwordm9pZCBBdWRpb1dvcmtsZXROb2Rl
OjpkaWRGaW5pc2hQcm9jZXNzaW5nT25SZW5kZXJpbmdUaHJlYWQoYm9vbCB0aHJld0V4Y2VwdGlv
bikKK3sKKyAgICBpZiAodGhyZXdFeGNlcHRpb24pCisgICAgICAgIGZpcmVQcm9jZXNzb3JFcnJv
ck9uTWFpblRocmVhZChQcm9jZXNzb3JFcnJvcjo6UHJvY2Vzc0Vycm9yKTsKKworICAgIG1fcHJv
Y2Vzc29yID0gbnVsbHB0cjsKKyAgICBtX3RhaWxUaW1lID0gMDsKKyAgICBjb250ZXh0KCkubm90
aWZ5Tm9kZUZpbmlzaGVkUHJvY2Vzc2luZyh0aGlzKTsKK30KKwordm9pZCBBdWRpb1dvcmtsZXRO
b2RlOjp1cGRhdGVQdWxsU3RhdHVzKCkKK3sKKyAgICBBU1NFUlQoY29udGV4dCgpLmlzR3JhcGhP
d25lcigpKTsKKworICAgIGJvb2wgaGFzQ29ubmVjdGVkT3V0cHV0ID0gZmFsc2U7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mT3V0cHV0cygpOyArK2kpIHsKKyAgICAgICAg
aWYgKG91dHB1dChpKS0+aXNDb25uZWN0ZWQoKSkgeworICAgICAgICAgICAgaGFzQ29ubmVjdGVk
T3V0cHV0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisg
ICAgLy8gSWYgbm8gb3V0cHV0IGlzIGNvbm5lY3RlZCwgYWRkIHRoZSBub2RlIHRvIHRoZSBhdXRv
bWF0aWMgcHVsbCBsaXN0LgorICAgIC8vIE90aGVyd2lzZSwgcmVtb3ZlIGl0IG91dCBvZiB0aGUg
bGlzdC4KKyAgICBpZiAoIWhhc0Nvbm5lY3RlZE91dHB1dCkKKyAgICAgICAgY29udGV4dCgpLmFk
ZEF1dG9tYXRpY1B1bGxOb2RlKCp0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIGNvbnRleHQoKS5y
ZW1vdmVBdXRvbWF0aWNQdWxsTm9kZSgqdGhpcyk7Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0Tm9k
ZTo6Y2hlY2tOdW1iZXJPZkNoYW5uZWxzRm9ySW5wdXQoQXVkaW9Ob2RlSW5wdXQqIGlucHV0KQor
eworICAgIEFTU0VSVChjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgpICYmIGNvbnRleHQoKS5pc0dy
YXBoT3duZXIoKSk7CisKKyAgICAvLyBEeW5hbWljIGNoYW5uZWwgY291bnQgb25seSB3b3JrcyB3
aGVuIHRoZSBub2RlIGhhcyAxIGlucHV0LCAxIG91dHB1dCBhbmQgfG91dHB1dENoYW5uZWxDb3Vu
dHwKKyAgICAvLyBpcyBub3QgZ2l2ZW4uIE90aGVyd2lzZSB0aGUgY2hhbm5lbCBjb3VudChzKSBz
aG91bGQgbm90IGJlIGR5bmFtaWNhbGx5IGNoYW5nZWQuCisgICAgaWYgKG51bWJlck9mSW5wdXRz
KCkgPT0gMSAmJiBudW1iZXJPZk91dHB1dHMoKSA9PSAxICYmICFtX3dhc091dHB1dENoYW5uZWxD
b3VudEdpdmVuKSB7CisgICAgICAgIEFTU0VSVChpbnB1dCA9PSB0aGlzLT5pbnB1dCgwKSk7Cisg
ICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscyA9IGlucHV0LT5udW1iZXJPZkNo
YW5uZWxzKCk7CisgICAgICAgIGlmIChudW1iZXJPZklucHV0Q2hhbm5lbHMgIT0gb3V0cHV0KDAp
LT5udW1iZXJPZkNoYW5uZWxzKCkpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBwcm9wYWdh
dGUgdGhlIGNoYW5uZWwgY291bnQgdG8gYW55IG5vZGVzIGNvbm5lY3RlZCBmdXJ0aGVyIGRvd25z
dHJlYW0gaW4gdGhlIGdyYXBoLgorICAgICAgICAgICAgb3V0cHV0KDApLT5zZXROdW1iZXJPZkNo
YW5uZWxzKG51bWJlck9mSW5wdXRDaGFubmVscyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAv
LyBVcGRhdGUgdGhlIGlucHV0J3MgaW50ZXJuYWwgYnVzIGlmIG5lZWRlZC4KKyAgICBBdWRpb05v
ZGU6OmNoZWNrTnVtYmVyT2ZDaGFubmVsc0ZvcklucHV0KGlucHV0KTsKKyAgICB1cGRhdGVQdWxs
U3RhdHVzKCk7Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6ZmlyZVByb2Nlc3NvckVycm9y
T25NYWluVGhyZWFkKFByb2Nlc3NvckVycm9yIGVycm9yKQoreworICAgIEFTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBlcnJvcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgU3RyaW5nIGVycm9y
TWVzc2FnZTsKKyAgICAgICAgc3dpdGNoIChlcnJvcikgeworICAgICAgICBjYXNlIFByb2Nlc3Nv
ckVycm9yOjpDb25zdHJ1Y3RvckVycm9yOgorICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIkFu
IGVycm9yIHdhcyB0aHJvd24gZnJvbSBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgY29uc3RydWN0b3Ii
X3M7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQcm9jZXNzb3JFcnJvcjo6UHJv
Y2Vzc0Vycm9yOgorICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIkFuIGVycm9yIHdhcyB0aHJv
d24gZnJvbSBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoKSBtZXRob2QiX3M7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZl
bnQoKnRoaXMsIFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgRXJyb3JFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5wcm9jZXNzb3JlcnJvckV2ZW50LCBlcnJvck1lc3NhZ2UsIHsgfSwgMCwgMCwg
eyB9KSk7CisgICAgfSk7Cit9CisKK2NvbnN0IGNoYXIqIEF1ZGlvV29ya2xldE5vZGU6OmFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiQXVkaW9Xb3JrbGV0Tm9kZSI7
Cit9CisKK2Jvb2wgQXVkaW9Xb3JrbGV0Tm9kZTo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuICFjb250ZXh0KCkuaXNDbG9zZWQoKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE5vZGUuaAppbmRleCA5NWM3ZjY3NTBmMDVmMTJmMzk3NjI0NWRhZGI3MTMx
ZjExNDg1NDk3Li43ZDY4ODdjNGRjOTdmZWNhNDk3MjZiY2VjMDc5ZjNkNjUxZmExMjAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUu
aApAQCAtMzAsNiArMzAsOCBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAorI2luY2x1ZGUg
IkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkF1ZGlvQXJyYXkuaCIKICNpbmNsdWRlICJB
dWRpb05vZGUuaCIKICNpbmNsdWRlIDx3dGYvTG9jay5oPgogCkBAIC0zOSw5ICs0MSwxMSBAQCBj
bGFzcyBBdWRpb1BhcmFtTWFwOwogY2xhc3MgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOwogY2xhc3Mg
TWVzc2FnZVBvcnQ7CiAKK3N0cnVjdCBBdWRpb1BhcmFtRGVzY3JpcHRvcjsKKwogc3RydWN0IEF1
ZGlvV29ya2xldE5vZGVPcHRpb25zOwogCi1jbGFzcyBBdWRpb1dvcmtsZXROb2RlIDogcHVibGlj
IEF1ZGlvTm9kZSB7CitjbGFzcyBBdWRpb1dvcmtsZXROb2RlIDogcHVibGljIEF1ZGlvTm9kZSwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChBdWRp
b1dvcmtsZXROb2RlKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEF1ZGlv
V29ya2xldE5vZGU+PiBjcmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEJhc2VBdWRpb0NvbnRl
eHQmLCBTdHJpbmcmJiBuYW1lLCBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucyYmKTsKQEAgLTUxLDIx
ICs1NSw0MSBAQCBwdWJsaWM6CiAgICAgTWVzc2FnZVBvcnQmIHBvcnQoKSB7IHJldHVybiBtX3Bv
cnQuZ2V0KCk7IH0KIAogICAgIHZvaWQgc2V0UHJvY2Vzc29yKFJlZlB0cjxBdWRpb1dvcmtsZXRQ
cm9jZXNzb3I+JiYpOworICAgIHZvaWQgaW5pdGlhbGl6ZUF1ZGlvUGFyYW1ldGVycyhjb25zdCBW
ZWN0b3I8QXVkaW9QYXJhbURlc2NyaXB0b3I+JiwgY29uc3QgT3B0aW9uYWw8VmVjdG9yPFdURjo6
S2V5VmFsdWVQYWlyPFN0cmluZywgZG91YmxlPj4+JiBwYXJhbVZhbHVlcyk7CiAKIHByaXZhdGU6
CiAgICAgQXVkaW9Xb3JrbGV0Tm9kZShCYXNlQXVkaW9Db250ZXh0JiwgY29uc3QgU3RyaW5nJiBu
YW1lLCBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucyYmLCBSZWY8TWVzc2FnZVBvcnQ+JiYpOwogCisg
ICAgZW51bSBjbGFzcyBQcm9jZXNzb3JFcnJvciB7IENvbnN0cnVjdG9yRXJyb3IsIFByb2Nlc3NF
cnJvciB9OworICAgIHZvaWQgZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3Nv
ckVycm9yKTsKKyAgICB2b2lkIGRpZEZpbmlzaFByb2Nlc3NpbmdPblJlbmRlcmluZ1RocmVhZChi
b29sIHRocmV3RXhjZXB0aW9uKTsKKwogICAgIC8vIEF1ZGlvTm9kZS4KICAgICB2b2lkIHByb2Nl
c3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykgZmluYWw7Ci0gICAgZG91YmxlIHRhaWxUaW1lKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gMDsgfSAvLyBGSVhNRTogUmV0dXJuIGEgY29ycmVjdCB2YWx1
ZS4KKyAgICBkb3VibGUgdGFpbFRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3RhaWxUaW1l
OyB9CiAgICAgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQog
ICAgIGJvb2wgcmVxdWlyZXNUYWlsUHJvY2Vzc2luZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2b2lkIGNoZWNrTnVtYmVyT2ZDaGFubmVsc0ZvcklucHV0KEF1ZGlvTm9kZUlu
cHV0KikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVQdWxsU3RhdHVzKCkgZmluYWw7CisKKyAgICAv
LyBBY3RpdmVET01PYmplY3QuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0IGZpbmFsOworICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0
IGZpbmFsOwogCiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBSZWY8QXVkaW9QYXJhbU1hcD4gbV9w
YXJhbWV0ZXJzOwogICAgIFJlZjxNZXNzYWdlUG9ydD4gbV9wb3J0OwotICAgIExvY2sgbV9wcm9j
ZXNzb3JMb2NrOworICAgIExvY2sgbV9wcm9jZXNzTG9jazsKICAgICBSZWZQdHI8QXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yPiBtX3Byb2Nlc3NvcjsgLy8gU2hvdWxkIG9ubHkgYmUgdXNlZCBvbiB0aGUg
cmVuZGVyaW5nIHRocmVhZC4KKyAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1
ZGlvRmxvYXRBcnJheT4+IG1fcGFyYW1WYWx1ZXNNYXA7CisKKyAgICAvLyBLZWVwcyB0aGUgcmVm
ZXJlbmNlIG9mIEF1ZGlvQnVzIG9iamVjdHMgZnJvbSBBdWRpb05vZGVJbnB1dCBhbmQgQXVkaW9O
b2RlT3V0cHV0IGluIG9yZGVyCisgICAgLy8gdG8gcGFzcyB0aGVtIHRvIEF1ZGlvV29ya2xldFBy
b2Nlc3Nvci4KKyAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4gbV9pbnB1dHM7CisgICAgVmVj
dG9yPFJlZlB0cjxBdWRpb0J1cz4+IG1fb3V0cHV0czsKKworICAgIGRvdWJsZSBtX3RhaWxUaW1l
IHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpIH07CisgICAgYm9vbCBt
X3dhc091dHB1dENoYW5uZWxDb3VudEdpdmVuIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0Tm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuaWRsCmluZGV4IDcxMTVhZmNlMDM5YzZlNWUyNjc4N2MxM2RmMWNmMDdl
OGQ2ZmYwZjguLjkyMTVjOThlMWQzZjZkMTBlNTFmOGI4MTM2OWYyZjU2MzFjYzE2MzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2Rl
LmlkbApAQCAtMjcsNiArMjcsNyBAQAogICovCiAKIFsKKyAgICBBY3RpdmVET01PYmplY3QsCiAg
ICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3Jr
bGV0LAogICAgIEV4cG9zZWQ9V2luZG93LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCmluZGV4IDQ1YTk3OGU4
OTc4MmMxMzhmOTUyM2UyYTg5Zjg0YTc3MWU4ZGZkNWEuLjk5NmE5NmY1M2QxN2YzNWUwOWJhNzc1
ODEwNThiMmU2MDkyMGY5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKQEAgLTMxLDEyICszMSw3NSBA
QAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
LmgiCiAKKyNpbmNsdWRlICJBdWRpb0J1cy5oIgorI2luY2x1ZGUgIkF1ZGlvQ2hhbm5lbC5oIgog
I2luY2x1ZGUgIkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yQ29uc3RydWN0aW9uRGF0YS5oIgorI2luY2x1ZGUgIkpTQ2FsbGJhY2tEYXRh
LmgiCisjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VQb3J0LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNYXAuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU1R5cGVkQXJyYXlzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
dXNpbmcgbmFtZXNwYWNlIEpTQzsKKworc3RhdGljIEpTRmxvYXQzMkFycmF5KiBjb25zdHJ1Y3RK
U0Zsb2F0MzJBcnJheShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBsZW5n
dGgsIGNvbnN0IGZsb2F0KiBkYXRhID0gbnVsbHB0cikKK3sKKyAgICBhdXRvKiBqc0FycmF5ID0g
SlNGbG9hdDMyQXJyYXk6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dHlwZWRB
cnJheVN0cnVjdHVyZShUeXBlRmxvYXQzMiksIGxlbmd0aCk7CisgICAgaWYgKGRhdGEpCisgICAg
ICAgIG1lbWNweShqc0FycmF5LT50eXBlZFZlY3RvcigpLCBkYXRhLCBzaXplb2YoZmxvYXQpICog
bGVuZ3RoKTsKKyAgICByZXR1cm4ganNBcnJheTsKK30KKworc3RhdGljIEpTTWFwKiBjb25zdHJ1
Y3RKU01hcChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEhhc2hN
YXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVz
TWFwKQoreworICAgIGF1dG8qIG1hcCA9IEpTTWFwOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwg
Z2xvYmFsT2JqZWN0LT5tYXBTdHJ1Y3R1cmUoKSk7CisgICAgZm9yIChhdXRvJiBwYWlyIDogcGFy
YW1WYWx1ZXNNYXApCisgICAgICAgIG1hcC0+c2V0KGdsb2JhbE9iamVjdCwganNTdHJpbmdXaXRo
Q2FjaGUodm0sIHBhaXIua2V5KSwgY29uc3RydWN0SlNGbG9hdDMyQXJyYXkoZ2xvYmFsT2JqZWN0
LCBwYWlyLnZhbHVlLT5zaXplKCksIHBhaXIudmFsdWUtPmRhdGEoKSkpOworICAgIHJldHVybiBt
YXA7Cit9CisKK2VudW0gY2xhc3MgU2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YSA6IGJvb2wgeyBO
bywgWWVzIH07CitzdGF0aWMgSlNBcnJheSogY29uc3RydWN0RnJvemVuSlNBcnJheShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEF1ZGlvQnVzKiBidXMsIFNob3VsZFBvcHVs
YXRlV2l0aEJ1c0RhdGEgc2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YSkKK3sKKyAgICB1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzID0gYnVzID8gYnVzLT5udW1iZXJPZkNoYW5uZWxzKCkgOiAwOwor
ICAgIGF1dG8qIGNoYW5uZWxzRGF0YSA9IEpTQXJyYXk6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LT5vcmlnaW5hbEFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlKEFycmF5V2l0aENvbnRpZ3Vv
dXMpLCBudW1iZXJPZkNoYW5uZWxzKTsKKyAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgbnVt
YmVyT2ZDaGFubmVsczsgKytqKSB7CisgICAgICAgIGF1dG8qIGNoYW5uZWwgPSBidXMtPmNoYW5u
ZWwoaik7CisgICAgICAgIGNoYW5uZWxzRGF0YS0+c2V0SW5kZXhRdWlja2x5KHZtLCBqLCBjb25z
dHJ1Y3RKU0Zsb2F0MzJBcnJheShnbG9iYWxPYmplY3QsIGNoYW5uZWwtPmxlbmd0aCgpLCBzaG91
bGRQb3B1bGF0ZVdpdGhCdXNEYXRhID09IFNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGE6OlllcyA/
IGNoYW5uZWwtPmRhdGEoKSA6IG51bGxwdHIpKTsKKyAgICB9CisgICAgSlNDOjpvYmplY3RDb25z
dHJ1Y3RvckZyZWV6ZShnbG9iYWxPYmplY3QsIGNoYW5uZWxzRGF0YSk7CisgICAgcmV0dXJuIGNo
YW5uZWxzRGF0YTsKK30KKworc3RhdGljIEpTQXJyYXkqIGNvbnN0cnVjdEZyb3plbkpTQXJyYXko
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0b3I8UmVmUHRy
PEF1ZGlvQnVzPj4mIGJ1c2VzLCBTaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhIHNob3VsZFBvcHVs
YXRlV2l0aEJ1c0RhdGEpCit7CisgICAgYXV0byogYXJyYXkgPSBKU0FycmF5OjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdC0+b3JpZ2luYWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZShBcnJh
eVdpdGhDb250aWd1b3VzKSwgYnVzZXMuc2l6ZSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgYnVzZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGFycmF5LT5zZXRJbmRleFF1aWNrbHko
dm0sIGksIGNvbnN0cnVjdEZyb3plbkpTQXJyYXkodm0sIGdsb2JhbE9iamVjdCwgYnVzZXNbaV0u
Z2V0KCksIHNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGEpKTsKKyAgICBKU0M6Om9iamVjdENvbnN0
cnVjdG9yRnJlZXplKGdsb2JhbE9iamVjdCwgYXJyYXkpOworICAgIHJldHVybiBhcnJheTsKK30K
Kworc3RhdGljIHZvaWQgY29weURhdGFGcm9tSlNBcnJheVRvQnVzZXMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNBcnJheSoganNBcnJheSwgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+
JiBidXNlcykKK3sKKyAgICAvLyBXZSBjYW4gc2FmZWx5IG1ha2UgYXNzdW1wdGlvbnMgYWJvdXQg
dGhlIHN0cnVjdHVyZSBvZiB0aGUgSlNBcnJheSBzaW5jZSB3ZSB1c2UgZnJvemVuIGFycmF5cy4K
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVzZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgYXV0byYgYnVzID0gYnVzZXNbaV07CisgICAgICAgIGF1dG8qIGNoYW5uZWxzQXJyYXkgPSBh
c09iamVjdChqc0FycmF5LT5nZXRJbmRleChnbG9iYWxPYmplY3QsIGkpKTsKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBqID0gMDsgaiA8IGJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOyArK2opIHsKKyAg
ICAgICAgICAgIGF1dG8qIGNoYW5uZWwgPSBidXMtPmNoYW5uZWwoaik7CisgICAgICAgICAgICBh
dXRvKiBqc0NoYW5uZWxEYXRhID0ganNDYXN0PEpTRmxvYXQzMkFycmF5Kj4oY2hhbm5lbHNBcnJh
eS0+Z2V0SW5kZXgoZ2xvYmFsT2JqZWN0LCBqKSk7CisgICAgICAgICAgICBpZiAoanNDaGFubmVs
RGF0YS0+bGVuZ3RoKCkgPT0gY2hhbm5lbC0+bGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgbWVt
Y3B5KGNoYW5uZWwtPm11dGFibGVEYXRhKCksIGpzQ2hhbm5lbERhdGEtPnR5cGVkVmVjdG9yKCks
IHNpemVvZihmbG9hdCkgKiBjaGFubmVsLT5sZW5ndGgoKSk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgY2hhbm5lbC0+emVybygpOworICAgICAgICB9CisgICAgfQorfQorCiBF
eGNlcHRpb25PcjxSZWY8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yPj4gQXVkaW9Xb3JrbGV0UHJvY2Vz
c29yOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBhdXRv
IGNvbnN0cnVjdGlvbkRhdGEgPSBkb3duY2FzdDxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4oY29u
dGV4dCkudGFrZVBlbmRpbmdQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhKCk7CkBAIC01NSw2ICsx
MTgsNDIgQEAgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3IoY29u
c3QgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWMKICAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKIH0KIAorYm9vbCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgVmVj
dG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYg
b3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0
QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIGJvb2wmIHRocmV3RXhjZXB0aW9uKQoreworICAgIEFT
U0VSVChtX3Byb2Nlc3NDYWxsYmFjayk7CisgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gbV9wcm9j
ZXNzQ2FsbGJhY2stPmdsb2JhbE9iamVjdCgpOworICAgIEFTU0VSVChnbG9iYWxPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7CisKKyAgICBhdXRvJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CisKKyAgICBN
YXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY29uc2lk
ZXIgY2FjaGluZyB0aGUgSlNBcnJheXMgJiBKU01hcCBhbmQgb25seSB1cGRhdGUgdGhlaXIgaXRl
bXMKKyAgICAvLyBldmVyeSB0aW1lIHByb2Nlc3MoKSBpcyBjYWxsZWQsIGZvciBwZXJmb3JtYW5j
ZSByZWFzb25zLgorICAgIGFyZ3MuYXBwZW5kKGNvbnN0cnVjdEZyb3plbkpTQXJyYXkodm0sIGds
b2JhbE9iamVjdCwgaW5wdXRzLCBTaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhOjpZZXMpKTsKKyAg
ICBhdXRvKiBvdXB1dEpTQXJyYXkgPSBjb25zdHJ1Y3RGcm96ZW5KU0FycmF5KHZtLCBnbG9iYWxP
YmplY3QsIG91dHB1dHMsIFNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGE6Ok5vKTsKKyAgICBhcmdz
LmFwcGVuZChvdXB1dEpTQXJyYXkpOworICAgIGFyZ3MuYXBwZW5kKGNvbnN0cnVjdEpTTWFwKHZt
LCBnbG9iYWxPYmplY3QsIHBhcmFtVmFsdWVzTWFwKSk7CisKKyAgICBOYWtlZFB0cjxKU0M6OkV4
Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247CisgICAgYXV0byByZXN1bHQgPSBtX3Byb2Nlc3ND
YWxsYmFjay0+aW52b2tlQ2FsbGJhY2soanNVbmRlZmluZWQoKSwgYXJncywgSlNDYWxsYmFja0Rh
dGE6OkNhbGxiYWNrVHlwZTo6T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicHJv
Y2VzcyIpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7
CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHJldHVybmVkRXhjZXB0aW9u
KTsKKyAgICAgICAgdGhyZXdFeGNlcHRpb24gPSB0cnVlOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgY29weURhdGFGcm9tSlNBcnJheVRvQnVzZXMoZ2xvYmFsT2JqZWN0LCBv
dXB1dEpTQXJyYXksIG91dHB1dHMpOworCisgICAgcmV0dXJuIHJlc3VsdC50b0Jvb2xlYW4oZ2xv
YmFsT2JqZWN0KTsKK30KKwordm9pZCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnNldFByb2Nlc3ND
YWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8SlNDYWxsYmFja0RhdGFTdHJvbmc+JiYgcHJvY2Vzc0Nh
bGxiYWNrKQoreworICAgIG1fcHJvY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShwcm9jZXNzQ2FsbGJh
Y2spOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0UHJvY2Vzc29yLmgKaW5kZXggNWZkM2E5ZWRiMzA0MTZhMTFiNDQ1YWI1NjM0MjNi
ZDM3MmM5MjQ2ZS4uOGQxMWUzZmU0MzQ1NTVhN2ZjMjE5MzEyMjE3NTZlNmZiYjZhYWE1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9j
ZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dFByb2Nlc3Nvci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJM
RShXRUJfQVVESU8pCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlv
bk9yLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBA
IC0zNiw3ICszNyw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQXVkaW9CdXM7
CiBjbGFzcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhOworY2xhc3MgSlND
YWxsYmFja0RhdGFTdHJvbmc7CiBjbGFzcyBNZXNzYWdlUG9ydDsKIGNsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CiAKQEAgLTQ4LDExICs1MSwxNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3Ry
aW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgTWVzc2FnZVBvcnQmIHBv
cnQoKSB7IHJldHVybiBtX3BvcnQuZ2V0KCk7IH0KIAorICAgIGJvb2wgcHJvY2Vzcyhjb25zdCBW
ZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+
JiBvdXRwdXRzLCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxv
YXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24pOworCisgICAg
dm9pZCBzZXRQcm9jZXNzQ2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJhY2tEYXRhU3Ry
b25nPiYmKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBdWRpb1dvcmtsZXRQcm9jZXNzb3Io
Y29uc3QgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWN0aW9uRGF0YSYpOwogCiAgICAgU3Ry
aW5nIG1fbmFtZTsKICAgICBSZWY8TWVzc2FnZVBvcnQ+IG1fcG9ydDsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8SlNDYWxsYmFja0RhdGFTdHJvbmc+IG1fcHJvY2Vzc0NhbGxiYWNrOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDYWxsYmFja0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJh
Y2tEYXRhLmgKaW5kZXggM2ViM2MxYjQ4ZjY5ZDIzN2FjOTUwMzgxMzI5MDg3YjhmYTM4YTVhOC4u
YzVlODZlN2U2ZjY1MDYxZWE0NWNmMTQ5ZmIxOTJiOThiMmM2Mzc2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oCkBAIC00Myw2ICs0Myw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIC8vIChhbmQgc3luY2hyb25pemF0aW9uIHdvdWxkIGJlIHNsb3cpLgog
CiBjbGFzcyBKU0NhbGxiYWNrRGF0YSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgZW51bSBjbGFzcyBDYWxsYmFja1R5cGUgeyBGdW5jdGlvbiwgT2JqZWN0LCBG
dW5jdGlvbk9yT2JqZWN0IH07CiAKQEAgLTcyLDcgKzczLDcgQEAgcHJpdmF0ZToKIAogY2xhc3Mg
SlNDYWxsYmFja0RhdGFTdHJvbmcgOiBwdWJsaWMgSlNDYWxsYmFja0RhdGEgewogcHVibGljOgot
ICAgIEpTQ2FsbGJhY2tEYXRhU3Ryb25nKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKikKKyAgICBKU0NhbGxiYWNrRGF0YVN0cm9u
ZyhKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgdm9pZCogPSBudWxscHRyKQogICAgICAgICA6IEpTQ2FsbGJhY2tEYXRhKGdsb2JhbE9iamVj
dCkKICAgICAgICAgLCBtX2NhbGxiYWNrKGdsb2JhbE9iamVjdC0+dm0oKSwgY2FsbGJhY2spCiAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCmluZGV4IGExNGE0MjFmMWE1YWU3ZTM1YzE1
MTM1NTQyMTJlNzRiMGRjNThhNDYuLjlhN2JmNDk4ZTllYzAyNWE5M2JmZWIxM2M3YjI4NDk2Yjg0
YjJmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5jcHAKQEAgLTUzLDggKzUzLDggQEAgRXJy
b3JFdmVudDo6RXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBp
bml0aWFsaXplciwgSXNUcnVzdGUKIHsKIH0KIAotRXJyb3JFdmVudDo6RXJyb3JFdmVudChjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBl
cnJvcikKLSAgICA6IEV2ZW50KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBDYW5CdWJibGU6Ok5v
LCBJc0NhbmNlbGFibGU6OlllcykKK0Vycm9yRXZlbnQ6OkVycm9yRXZlbnQoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1l
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6U3Ryb25n
PEpTQzo6VW5rbm93bj4gZXJyb3IpCisgICAgOiBFdmVudCh0eXBlLCBDYW5CdWJibGU6Ok5vLCBJ
c0NhbmNlbGFibGU6OlllcykKICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQogICAgICwgbV9maWxl
TmFtZShmaWxlTmFtZSkKICAgICAsIG1fbGluZU51bWJlcihsaW5lTnVtYmVyKQpAQCAtNjMsNiAr
NjMsMTEgQEAgRXJyb3JFdmVudDo6RXJyb3JFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGwKIHsKIH0KIAorRXJyb3JFdmVudDo6RXJy
b3JFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpTdHJvbmc8SlND
OjpVbmtub3duPiBlcnJvcikKKyAgICA6IEVycm9yRXZlbnQoZXZlbnROYW1lcygpLmVycm9yRXZl
bnQsIG1lc3NhZ2UsIGZpbGVOYW1lLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGVycm9yKQor
eworfQorCiBFcnJvckV2ZW50Ojp+RXJyb3JFdmVudCgpID0gZGVmYXVsdDsKIAogRXZlbnRJbnRl
cmZhY2UgRXJyb3JFdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2
ZW50LmgKaW5kZXggZGYxMzFlMzFmNmJjMmI1ZDc1MzVhM2ZkNTkzODRkZDg4MmIyZjg2Ny4uYzZj
MmM0NDhiODYzMzdjYjNlMDJjNzk1NzA3NmQ1ZWMxMzU3ZWY4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JF
dmVudC5oCkBAIC00Nyw2ICs0NywxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEVycm9yRXZlbnQobWVzc2FnZSwgZmlsZU5hbWUsIGxpbmVOdW1iZXIsIGNvbHVtbk51
bWJlciwgZXJyb3IpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUmVmPEVycm9yRXZlbnQ+IGNyZWF0
ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJl
ciwgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBlcnJvcikKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEVycm9yRXZlbnQodHlwZSwgbWVzc2FnZSwgZmlsZU5hbWUsIGxpbmVO
dW1iZXIsIGNvbHVtbk51bWJlciwgZXJyb3IpKTsKKyAgICB9CisKICAgICBzdHJ1Y3QgSW5pdCA6
IEV2ZW50SW5pdCB7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlOwogICAgICAgICBTdHJpbmcgZmls
ZW5hbWU7CkBAIC03Niw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiB0cnlTZXJpYWxpemVFcnJvcihKU0M6OkpTR2xvYmFsT2JqZWN0Jik7CiAKIHBy
aXZhdGU6CisgICAgRXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBlcnJvcik7
CiAgICAgRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpT
dHJvbmc8SlNDOjpVbmtub3duPiBlcnJvcik7CiAgICAgRXJyb3JFdmVudChjb25zdCBBdG9tU3Ry
aW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQu
Y3BwCmluZGV4IDlkZjhmY2QyOWRkYzNmOThmMTAyNTk1YzBjM2VmYTQ0M2U2ODVhZTIuLmI0MTgy
ODVkZTFmZDAzY2YxOThmMWExOGU3MzU5ZTgxYjc4MDY3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3Nh
Z2VQb3J0LmNwcApAQCAtMzI4LDE5ICszMjgsMTkgQEAgYm9vbCBNZXNzYWdlUG9ydDo6dmlydHVh
bEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiAKICAgICAvLyBJZiB3ZSdyZSBub3QgaW4gdGhl
IG1pZGRsZSBvZiBhc2tpbmcgdGhlIHJlbW90ZSBwb3J0IGFib3V0IGNvbGxlY3RhYmlsaXR5LCBk
byBzbyBub3cuCiAgICAgaWYgKCFtX2lzQXNraW5nUmVtb3RlQWJvdXRHQykgewotICAgICAgICBS
ZWZQdHI8V29ya2VyVGhyZWFkPiB3b3JrZXJUaHJlYWQ7Ci0gICAgICAgIGlmIChpczxXb3JrZXJH
bG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpCi0gICAgICAgICAgICB3b3Jr
ZXJUaHJlYWQgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpLnRocmVhZCgpOworICAgICAgICBSZWZQdHI8V29ya2VyT3JXb3JrbGV0VGhyZWFk
PiB3b3JrZXJPcldvcmtsZXRUaHJlYWQ7CisgICAgICAgIGlmIChpczxXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpCisgICAgICAgICAgICB3b3Jr
ZXJPcldvcmtsZXRUaHJlYWQgPSBkb3duY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZT4o
Km1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkud29ya2VyT3JXb3JrbGV0VGhyZWFkKCk7CiAKLSAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChbcmVtb3RlSWRlbnRpZmllciA9IG1fcmVtb3RlSWRlbnRp
Zmllciwgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cihjb25zdF9jYXN0PE1lc3NhZ2VQb3J0Kj4odGhp
cykpLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKCkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6c2luZ2xldG9uKCkuY2hlY2tS
ZW1vdGVQb3J0Rm9yQWN0aXZpdHkocmVtb3RlSWRlbnRpZmllciwgW3dlYWtUaGlzID0gV1RGTW92
ZSh3ZWFrVGhpcyksIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byBo
YXNBY3Rpdml0eSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF3b3JrZXJUaHJlYWQp
IHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcmVtb3RlSWRlbnRpZmllciA9IG1fcmVtb3Rl
SWRlbnRpZmllciwgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cihjb25zdF9jYXN0PE1lc3NhZ2VQb3J0
Kj4odGhpcykpLCB3b3JrZXJPcldvcmtsZXRUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlck9yV29ya2xl
dFRocmVhZCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlcjo6c2luZ2xldG9uKCkuY2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkocmVtb3RlSWRlbnRp
ZmllciwgW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHdvcmtlck9yV29ya2xldFRocmVh
ZCA9IFdURk1vdmUod29ya2VyT3JXb3JrbGV0VGhyZWFkKV0oYXV0byBoYXNBY3Rpdml0eSkgbXV0
YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKCF3b3JrZXJPcldvcmtsZXRUaHJlYWQpIHsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgICAgICAgICAg
d2Vha1RoaXMtPnVwZGF0ZUFjdGl2aXR5KGhhc0FjdGl2aXR5KTsKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHdvcmtlclRo
cmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtU
aGlzKSwgaGFzQWN0aXZpdHldKGF1dG8mKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICB3b3Jr
ZXJPcldvcmtsZXRUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW3dlYWtUaGlzID0g
V1RGTW92ZSh3ZWFrVGhpcyksIGhhc0FjdGl2aXR5XShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAg
ICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtU
aGlzLT51cGRhdGVBY3Rpdml0eShoYXNBY3Rpdml0eSk7CiAgICAgICAgICAgICAgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTRiYjQ1Njc4N2QyOGQ2YzE4YmJk
YWU2YWMzOWNjNTc0OWQ5ZjgwMC4uMjM2ODM3ODcxNzE3Y2U5ZGMzYTI4YzkzNDY5MGVkYzZjYjkw
YmE4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTEwLTA5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIEF1ZGlvV29ya2xldFByb2Nlc3NvciB0byBw
cm9jZXNzIGF1ZGlvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc1MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVbnNraXAgYWxsIEF1ZGlvV29ya2xldCB0ZXN0cyBub3cgdGhhdCB0aGV5IGFyZSBubyBs
b25nZXIgdGltaW5nIG91dC4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAt
MTAtMDkgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtt
YWNPU10gQWRkIGVkaXRhYmlsaXR5IHRvIGlucHV0IHR5cGU9bW9udGgKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IDZkYzk0MzlkNjZlMWNhN2Q5ODg2MmFmNzhmNzhlOTJkMDgxNDBm
YzkuLjUyZDJhNTg1OTM4OTVhMGRhNTgwMzA0NDFkZGMwOGFkYTYxNzU3YTcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTEwLTA5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIEF1ZGlvV29ya2xldFByb2Nl
c3NvciB0byBwcm9jZXNzIGF1ZGlvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTc1MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0cyBub3cgdGhhdCBtb3JlIGNoZWNrcyBh
cmUgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9j
ZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dv
cmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWRpc2Nvbm5lY3RlZC1pbnB1dC5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vbmVycm9y
Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRu
b2RlLW91dHB1dC1jaGFubmVsLWNvdW50Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy1mcm96ZW4tYXJyYXkuaHR0
cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nl
c3Nvci1wcm9jZXNzLXplcm8tb3V0cHV0cy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xl
dC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb21pc2VzLmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFw
aS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzLWdldHRlci5odHRwcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzc29yLWNvbnN0cnVjdGlvbi1wb3J0
Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9zaW1wbGUtaW5wdXQt
b3V0cHV0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJmYWNlL2Fj
dGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY29udm9sdmVybm9kZS1pbnRlcmZh
Y2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRp
b3NvdXJjZW5vZGUtaW50ZXJmYWNlL2NvcnMtY2hlY2suaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRp
YWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL25vLWNvcnMuaHR0cHMtZXhwZWN0ZWQu
dHh0OgorCiAyMDIwLTEwLTA5ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgog
CiAgICAgICAgIENTUyB0cmFuc2Zvcm0gY29tcHV0ZWQgc3R5bGUgc2hvdWxkIG5vdCByZWZsZWN0
IGluZGl2aWR1YWwgdHJhbnNmb3JtIHByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDgx
MWMyOThmNTNmZmQyY2M0OTBkMGNkNDQ5MTU2ZGJiZDc4NTBiMTcuLmE4OTFhNjZjYTQyNjE2NjU1
ZTk2ZGZkOTgwY2U5NzEwY2I5YTlkZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzIwLDE5ICsz
MjAsMTQgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMv
c2NyaXB0aW5nL2V2ZW50LWxvb3BzL2Z1bGx5X2FjdGkKICMgU2tpcCBXUFQgd2ViYXVkaW8gdGVz
dHMgdGhhdCBhcmUgdGltaW5nIG91dC4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFzdHJlYW1hdWRpb3NvdXJjZW5vZGUtaW50
ZXJmYWNlL21lZGlhc3RyZWFtYXVkaW9zb3VyY2Vub2RlLXJvdXRpbmcuaHRtbCBbIFNraXAgXQog
Ci0jIFRoZXNlIHdlYmF1ZGlvIHRlc3RzIGFyZSB0aW1pbmcgb3V0IGR1ZSB0byBsYWNrIGZvciBz
dXBwb3J0IGZvciBBdWRpb1dvcmtsZXQuCisjIFRoaXMgdGVzdCBpcyB0aW1pbmcgb3V0IGR1ZSB0
byBsYWNrIG9mIHN1cHBvcnQgZm9yIFNoYXJlZEFycmF5QnVmZmVyLgogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQt
aW50ZXJmYWNlL2F1ZGlvd29ya2xldC1wb3N0bWVzc2FnZS1zaGFyZWRhcnJheWJ1ZmZlci5odHRw
cy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9k
ZS1hdXRvbWF0aWMtcHVsbC5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRl
cmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vbmVycm9yLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW91dHB1dC1jaGFubmVsLWNvdW50
Lmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmts
ZXRwcm9jZXNzb3ItcHJvY2Vzcy1mcm96ZW4tYXJyYXkuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLXplcm8t
b3V0cHV0cy5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVk
aW93b3JrbGV0cHJvY2Vzc29yLXByb21pc2VzLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93
b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzLWdldHRlci5odHRwcy5odG1sIFsgU2tpcCBdCisKKyMg
VGhpcyB0ZXN0IGlzIHRpbWluZyBvdXQgYmVjYXVzZSBpdCBjYWxscyBzdXNwZW5kKCkgdGhlbiBy
ZXN1bWUoKSBvbmUgd2l0aG91dCB5aWVsZGluZy4gc3VzcGVuZCgpIHNldHMgc3RhdGUgdG8gc3Vz
cGVuZGVkIGFzeW5jaHJvbm91c2x5CisjIHNvIHJlc3VtZSgpIGRvZXMgbm90IGtub3cgdGhlcmUg
aXMgYSBwZW5kaW5nIHN1c3BlbmQoKSBhbmQgcmV0dXJucyBlYXJseS4KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9wcm9jZXNzLXBhcmFtZXRlcnMuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jaGFu
bmVsbWVyZ2Vybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMuaHRtbCBbIFNr
aXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy5o
dG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvY29y
cy1jaGVjay5odHRwcy5odG1sIFsgU2tpcCBdCisKKyMgVGhpcyBXZWJBdWRpbyB0ZXN0IGlzIHRp
bWluZyBvdXQsIHBvdGVudGlhbGx5IGR1ZSB0byBhbiBBdWRpb1dvcmtsZXQgYnVnLgogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRp
YWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL25vLWNvcnMuaHR0cHMuaHRtbCBbIFNr
aXAgXQogCiAjIFRoaXMgd2ViYXVkaW8gdGVzdCBoYXMgYmVlbiB0aW1pbmcgb3V0IHNpbmNlIGl0
cyBpbXBvcnQgZnJvbSBCbGluay4KQEAgLTM0MSw2ICszMzYsNyBAQCB3ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlL21lZGlhc3RyZWFtYXVkaW9zb3VyY2Vub2RlLmh0bWwgWyBTa2lwIF0K
ICMgV2ViYXVkaW8gdGVzdHMgdGhhdCBhcmUgZmxha3kuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvcGFyYW0taW50ZXJmYWNl
L2stcmF0ZS1zdGVyZW8tcGFubmVyLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hbmFseXNlcm5v
ZGUtaW50ZXJmYWNlL3Rlc3QtYW5hbHlzZXItb3V0cHV0Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQor
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL2NvcnMtY2hlY2suaHR0cHMu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKICMgVGhpcyB0ZXN0IGlzIHBhc3NpbmcgYnV0IHRoZSBw
cmludGVkIFNOUiB2YWx1ZSBkaWZmZXJzIGZyb20gbWFjaGluZSB0byBtYWNoaW5lLgogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b2J1ZmZlcnNvdXJjZW5vZGUtaW50ZXJmYWNlL3N1Yi1zYW1wbGUtYnVmZmVyLXN0aXRjaGluZy5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KQEAgLTM0OCw3ICszNDQsNiBAQCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVyc291
cmNlbm9kZQogIyBWYWx1ZXMgaW4gRkFJTCBsaW5lcyBkaWZmZXIgZnJvbSBtYWNoaW5lIHRvIG1h
Y2hpbmUsIHdlIHNob3VsZCBiZSBhYmxlIHRvIHVuc2tpcCB0aGVtIG9uY2UgdGhleSBwYXNzLgog
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2UvYXVkaW9idWZmZXJzb3VyY2UtZGV0dW5lLW1vZHVs
YXRpb24uaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZS9h
dWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUtbW9kdWxhdGlvbi5odG1sIFsgUGFzcyBGYWls
dXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9zaW1wbGUtaW5wdXQtb3V0cHV0Lmh0dHBz
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTc2OTI5IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9yZWFkeS1zdGF0ZXMvYXV0b3BsYXktd2l0aC1zbG93LXRleHQtdHJhY2tzLmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVm
ZmVyc291cmNlbm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtaW50ZXJmYWNlL2FjdGl2
ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBlYzcwZTA5Mzk0NDkwZjkxMjZi
YjViNjAxNDM2MTlkYWFkN2ZkNGE4Li4zNTFlZGY5MmFjN2QyYTc2NWMwMGI4YzAwNjc2YzM5ZDU0
YzUwNTIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVyc291cmNlbm9kZS1p
bnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtYXVkaW9idWZmZXJzb3VyY2Vub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2lu
Zy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTksMTMgKzksMTMgQEAgUEFTUyA8IFtTZXR1cCBncmFw
aF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKQogUEFTUyA+IFt2
ZXJpZnkgY291bnQgY2hhbmdlXQogRkFJTCBYIE51bWJlciBvZiBjaGFubmVscyBjaGFuZ2VkIGlz
IG5vdCB0cnVlLiBHb3QgZmFsc2UuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQogUEFTUyAgIEluZGV4IHdoZXJlIGlucHV0IGNoYW5uZWwgY291bnQgY2hhbmdlZCBpcyBsZXNz
IHRoYW4gb3IgZXF1YWwgdG8gMTI4MC4KLUZBSUwgWCBOdW1iZXIgb2YgY2hhbm5lbHMgaW4gaW5w
dXRbMDotMl06IEV4cGVjdGVkIDcgZm9yIGFsbCB2YWx1ZXMgYnV0IGZvdW5kIDEyNzkgdW5leHBl
Y3RlZCB2YWx1ZXM6CitGQUlMIFggTnVtYmVyIG9mIGNoYW5uZWxzIGluIGlucHV0WzA6LTJdOiBF
eHBlY3RlZCA3IGZvciBhbGwgdmFsdWVzIGJ1dCBmb3VuZCAxMDIzIHVuZXhwZWN0ZWQgdmFsdWVz
OgogCUluZGV4CUFjdHVhbAotCVswXQkwCi0JWzFdCTAKLQlbMl0JMAotCVszXQkwCi0JLi4uYW5k
IDEyNzUgbW9yZSBlcnJvcnMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
CVsyNTZdCTAKKwlbMjU3XQkwCisJWzI1OF0JMAorCVsyNTldCTAKKwkuLi5hbmQgMTAxOSBtb3Jl
IGVycm9ycy4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFggTnVt
YmVyIG9mIGNoYW5uZWxzIGluIGlucHV0Wy0xOl06IEV4cGVjdGVkIDEgZm9yIGFsbCB2YWx1ZXMg
YnV0IGZvdW5kIDEgdW5leHBlY3RlZCB2YWx1ZXM6CiAJSW5kZXgJQWN0dWFsCiAJWzBdCTAgYXNz
ZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1hdXRvbWF0aWMtcHVs
bC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZh
Y2UvYXVkaW93b3JrbGV0bm9kZS1hdXRvbWF0aWMtcHVsbC5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggMzE4NjJkZjFhNGE3YjZhZDJhNmM2ZDYzNzI2OTI0NDUxMjE2NTVjYi4uMzU5NTVjZGIzMmZl
Zjg0MTc3YmZmY2YxZTU4MWY4YmE2YjE0MDgyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtYXV0b21hdGljLXB1bGwuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFj
ZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MSw4ICsxLDEwIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAot
CiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KLVRJTUVPVVQgRXhlY3V0aW5nICJz
ZXR1cC13b3JrbGV0IiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBF
eGVjdXRpbmcgInNldHVwLXdvcmtsZXQiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtzZXR1
cC13b3JrbGV0XQorUEFTUyAgIFRoZSBmaXJzdCBoYWxmIG9mIHRoZSBjYXB0dXJlZCBidWZmZXIg
Y29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41LgorUEFTUyAgIFRoZSBzZWNvbmQgaGFsZiBv
ZiB0aGUgY2FwdHVyZWQgYnVmZmVyIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCitQQVNT
IDwgW3NldHVwLXdvcmtsZXRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0
aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyByYW4gc3Vj
Y2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRl
cmZhY2UvYXVkaW93b3JrbGV0bm9kZS1kaXNjb25uZWN0ZWQtaW5wdXQuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5v
ZGUtZGlzY29ubmVjdGVkLWlucHV0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAyYTg2NjY3YTE4
M2YxMDQzOWZiMDJjZTc0ZGY2NTkwNWYzZWNlNjI1Li43ZmNiOGNlZDg4MzVkYTZhZjQ1YmI4MWE4
YWMyYjJkZDM2OTI3YjQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1p
bnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1kaXNjb25uZWN0ZWQtaW5wdXQuaHR0cHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dv
cmtsZXRub2RlLWRpc2Nvbm5lY3RlZC1pbnB1dC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTQsOSAr
NCw5IEBAIFBBU1MgRXhlY3V0aW5nICJ0ZXN0IgogUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBb
dGVzdF0gSW5wdXQgYXJyYXkgbGVuZ3RoIHNob3VsZCBiZSB6ZXJvIGZvciBkaXNjb25uZWN0ZWQg
aW5wdXQKIFBBU1MgICBCZWZvcmUgY29ubmVjdGluZyB0aGUgc291cmNlOiBJbnB1dCBhcnJheSBs
ZW5ndGggY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KLUZBSUwgWCBGaXJzdCBub24temVy
byBvdXRwdXQgaXMgbm90IGVxdWFsIHRvIDEyOC4gR290IC0xLiBhc3NlcnRfdHJ1ZTogZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBGaXJzdCBub24temVybyBvdXRwdXQgaXMgZXF1YWwg
dG8gMTI4LgogUEFTUyAgIFdoaWxlIHNvdXJjZSBpcyBjb25uZWN0ZWQ6IElucHV0IGFycmF5IGxl
bmd0aCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAxMjguCiBQQVNTICAgQWZ0ZXIgZGlzY29u
bmVjdGluZyB0aGUgc291cmNlOiBJbnB1dCBhcnJheSBsZW5ndGggY29udGFpbnMgb25seSB0aGUg
Y29uc3RhbnQgMC4KLUZBSUwgPCBbdGVzdF0gMSBvdXQgb2YgNCBhc3NlcnRpb25zIHdlcmUgZmFp
bGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgIyBBVURJVCBU
QVNLIFJVTk5FUiBGSU5JU0hFRDogMSBvdXQgb2YgMSB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIDwgW3Rlc3RdIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5F
UiBGSU5JU0hFRDogMSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vbmVycm9y
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFj
ZS9hdWRpb3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGMyNmFh
MTMzNDY1MzhjMWIyNTRhMDNkMTlmNGVjMGEzY2NhZTVhZDIuLjk2NzEyMTM4OTc0OWZkMGFhZjI2
N2ZlYmU0ZGIyODllNjEyYTRkZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3Jr
bGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRu
b2RlLW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsMTYgQEAKIAotSGFybmVz
cyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJV
Tk5FUiBTVEFSVEVELgotVElNRU9VVCBFeGVjdXRpbmcgImNvbnN0cnVjdG9yLWVycm9yIiBUZXN0
IHRpbWVkIG91dAotTk9UUlVOIEV4ZWN1dGluZyAicHJvY2Vzcy1lcnJvciIKLU5PVFJVTiBBdWRp
dCByZXBvcnQKK1BBU1MgRXhlY3V0aW5nICJjb25zdHJ1Y3Rvci1lcnJvciIKK1BBU1MgRXhlY3V0
aW5nICJwcm9jZXNzLWVycm9yIgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbY29uc3RydWN0
b3ItZXJyb3JdCitQQVNTICAgb25wcm9jZXNzb3JlcnJvciBhcmd1bWVudCBzaG91bGQgYmUgYW4g
RXJyb3JFdmVudCB3aGVuCisgICAgICAgICAgICAgICAgdGhlIGNvbnN0cnVjdG9yIG9mIEF1ZGlv
V29ya2xldFByb2Nlc3NvciBoYXMgYW4gZXJyb3IuIGlzIHRydWUuCitQQVNTIDwgW2NvbnN0cnVj
dG9yLWVycm9yXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCitQ
QVNTID4gW3Byb2Nlc3MtZXJyb3JdCitQQVNTICAgb25wcm9jZXNzb3JlcnJvciBhcmd1bWVudCBz
aG91bGQgYmUgYW4gRXJyb3JFdmVudCB3aGVuCisgICAgICAgICAgICAgICAgdGhlIHByb2Nlc3Mg
bWV0aG9kIG9mIHRoZSBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgbWV0aG9kCisgICAgICAgICAgICAg
ICAgaGFzIGFuIGVycm9yLiBpcyB0cnVlLgorUEFTUyA8IFtwcm9jZXNzLWVycm9yXSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQgVEFTSyBS
VU5ORVIgRklOSVNIRUQ6IDIgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb3V0
cHV0LWNoYW5uZWwtY291bnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb3V0cHV0LWNoYW5uZWwtY291bnQu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDM4N2E3ODRkMDQ3MTk4ZmE3YzdmYjM1Y2E5ZjNmMTJk
NDIyYTA5MGYuLjFmZDMwYzdhOGQ0NjJkMTdiM2NhZjkwMDg5OWRkOWZkMTE2NDdmMmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRu
b2RlLW91dHB1dC1jaGFubmVsLWNvdW50Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vdXRwdXQtY2hh
bm5lbC1jb3VudC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOSArMSwxMyBAQAogCi1IYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyAjIEFVRElUIFRBU0sgUlVO
TkVSIFNUQVJURUQuCi1USU1FT1VUIEV4ZWN1dGluZyAiRHluYW1pY2FsbHkgY2hhbmdlIHRoZSBj
aGFubmVsIGNvdW50IHRvIGlmIHVuc3BlY2lmaWVkLiIgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBF
eGVjdXRpbmcgIkdpdmllbiBvdXRwdXRDaGFubmVsQ291bnQgbXVzdCBiZSBob25vcmVkLiIKLU5P
VFJVTiBBdWRpdCByZXBvcnQKK1BBU1MgRXhlY3V0aW5nICJEeW5hbWljYWxseSBjaGFuZ2UgdGhl
IGNoYW5uZWwgY291bnQgdG8gaWYgdW5zcGVjaWZpZWQuIgorUEFTUyBFeGVjdXRpbmcgIkdpdmll
biBvdXRwdXRDaGFubmVsQ291bnQgbXVzdCBiZSBob25vcmVkLiIKK1BBU1MgQXVkaXQgcmVwb3J0
CiBQQVNTID4gW0R5bmFtaWNhbGx5IGNoYW5nZSB0aGUgY2hhbm5lbCBjb3VudCB0byBpZiB1bnNw
ZWNpZmllZC5dCitQQVNTICAgVGhlIGV4cGVjdGVkIG91dHB1dCBjaGFubmVsIGNvdW50IGlzIGVx
dWFsIHRvIDE3LgorUEFTUyA8IFtEeW5hbWljYWxseSBjaGFuZ2UgdGhlIGNoYW5uZWwgY291bnQg
dG8gaWYgdW5zcGVjaWZpZWQuXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2Vy
dGlvbnMpCitQQVNTID4gW0dpdmllbiBvdXRwdXRDaGFubmVsQ291bnQgbXVzdCBiZSBob25vcmVk
Ll0KK1BBU1MgICBUaGUgZXhwZWN0ZWQgb3V0cHV0IGNoYW5uZWwgY291bnQgaXMgZXF1YWwgdG8g
Mi4KK1BBU1MgPCBbR2l2aWVuIG91dHB1dENoYW5uZWxDb3VudCBtdXN0IGJlIGhvbm9yZWQuXSBB
bGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQg
VEFTSyBSVU5ORVIgRklOSVNIRUQ6IDIgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHBy
b2Nlc3Nvci1wcm9jZXNzLWZyb3plbi1hcnJheS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nl
c3MtZnJvemVuLWFycmF5Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwZGYwNGQ3NmUwZDllNmY1
ZDQ0YjQ1MDIyMjdmMTk2ZmYwYjcwZTc3Li4zNGMwNjk5MGFmODFmYTA1Y2JlZjNiZTkzZDJlMWRk
YTgyMmIwMjNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZh
Y2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtZnJvemVuLWFycmF5Lmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93
b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtZnJvemVuLWFycmF5Lmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMSw5ICsxLDE1IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVs
bAotCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KLVRJTUVPVVQgRXhlY3V0aW5n
ICJjaGVjay1mcm96ZW4tYXJyYXkiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gRXhlY3V0aW5nICJ0
cmFuc2Zlci1mcm96ZW4tYXJyYXkiCi1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGlu
ZyAiY2hlY2stZnJvemVuLWFycmF5IgorUEFTUyBFeGVjdXRpbmcgInRyYW5zZmVyLWZyb3plbi1h
cnJheSIKK1BBU1MgQXVkaXQgcmVwb3J0CiBQQVNTID4gW2NoZWNrLWZyb3plbi1hcnJheV0KK1BB
U1MgICB8aW5wdXRzfCBpcyBmcm96ZW4gaXMgdHJ1ZS4KK1BBU1MgICB8b3V0cHV0c3wgaXMgZnJv
emVuIGlzIHRydWUuCitQQVNTIDwgW2NoZWNrLWZyb3plbi1hcnJheV0gQWxsIGFzc2VydGlvbnMg
cGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQorUEFTUyA+IFt0cmFuc2Zlci1mcm96ZW4tYXJy
YXldCitQQVNTICAgVHJhbnNmZXJyaW5nIGlucHV0cy9vdXRwdXRzLCBhbiBpbmRpdmlkdWFsIGlu
cHV0L291dHB1dCBhcnJheSwgb3IgYSBjaGFubmVsIEZsb2F0MzJBcnJheSBpcyBub3QgYWxsb3dl
ZCBhcyBleHBlY3RlZC4gaXMgdHJ1ZS4KK1BBU1MgICBUcmFuc2ZlcnJpbmcgQXJyYXlCdWZmZXJz
IHdhcyBzdWNjZXNzZnVsIGFzIGV4cGVjdGVkLiBpcyB0cnVlLgorUEFTUyA8IFt0cmFuc2Zlci1m
cm96ZW4tYXJyYXldIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykK
K1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3VjY2Vzc2Z1
bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uv
YXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtemVyby1vdXRwdXRzLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRw
cm9jZXNzb3ItcHJvY2Vzcy16ZXJvLW91dHB1dHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDNj
N2YwMDM2YzM4MTE1NWVkMjhlMDEyOWUxYzdmOGMwMTViZmYyYmYuLjgyY2RmYmQ2YzNiMzAxYmRj
OGVjZDNjN2IxODFhYzNlOTQ3NDc1MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93
b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy16ZXJvLW91dHB1
dHMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWlu
dGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy16ZXJvLW91dHB1dHMuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOSBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwg
bWVzc2FnZSA9IG51bGwKLQogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuCi1USU1F
T1VUIEV4ZWN1dGluZyAiY2hlY2stemVyby1vdXRwdXRzIiBUZXN0IHRpbWVkIG91dAotTk9UUlVO
IEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgImNoZWNrLXplcm8tb3V0cHV0cyIKK1BBU1Mg
QXVkaXQgcmVwb3J0CiBQQVNTID4gW2NoZWNrLXplcm8tb3V0cHV0c10KK1BBU1MgICB8b3V0cHV0
c3wgaGFzIGJlZW4gYWxsIHplcm9zIGZvciAxIHNlY29uZHMgYXMgZXhwZWN0ZWQuIGlzIHRydWUu
CitQQVNTIDwgW2NoZWNrLXplcm8tb3V0cHV0c10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90
YWwgMSBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIHRh
c2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93
b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvbWlzZXMuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29y
a2xldHByb2Nlc3Nvci1wcm9taXNlcy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMzY1NDFiZmE5
NmRmZTE4ZGZiNWY0M2IyY2YwY2I5MzRmZDBlYTc0Yi4uMWRhMTcxYzY4Yzk1N2E2MTM3ZjE0OWFh
YzE4NGZkZDFiOTQ0ZWYzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQt
aW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9taXNlcy5odHRwcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJh
dWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xl
dHByb2Nlc3Nvci1wcm9taXNlcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw0IEBACiAK
LUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIHRlc3Qg
VGVzdCB0aW1lZCBvdXQKK0ZBSUwgdGVzdCBhc3NlcnRfdHJ1ZTogTWljcm90YXNrIGNoZWNrcG9p
bnRzIGFyZSBwZXJmb3JtZWQKKyAgICAgICAgICAgICAgICAgICAgICAgaW4gYmV0d2VlbiByZW5k
ZXIgcXVhbnR1bSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzcy1nZXR0ZXIuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJh
dWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3MtZ2V0
dGVyLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA2YTdjNmRlMzI1M2JmZDBmZWVlODAyYjk3NWQ3
YWJkYmU1YTdiM2NmLi5hOTY0YTNiNDc1NjQ0MzI1ZmFlZGVmMWUwMzdlODQxMWJlMDE3YzczIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzcy1n
ZXR0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9wcm9jZXNzLWdldHRlci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw0
IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VU
ICdwcm9jZXNzJyBnZXR0ZXIgb24gcHJvdG90eXBlIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gJ3By
b2Nlc3MnIGdldHRlciBvbiBpbnN0YW5jZQorUEFTUyAncHJvY2VzcycgZ2V0dGVyIG9uIHByb3Rv
dHlwZQorUEFTUyAncHJvY2VzcycgZ2V0dGVyIG9uIGluc3RhbmNlCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzb3ItY29uc3RydWN0aW9u
LXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50
ZXJmYWNlL3Byb2Nlc3Nvci1jb25zdHJ1Y3Rpb24tcG9ydC5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggZjYwZWM4YzIwNDQ0MGZlMGUwYWIwYTQ4NzY1M2Q1ZDkxNTVkZGMxNi4uNjA4ZGEwOTFhODFk
OGFlMjk5NjdjZTA1NmVhNzkxYTdmNDk5NjM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3Nvci1jb25zdHJ1Y3Rpb24tcG9ydC5odHRwcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3By
b2Nlc3Nvci1jb25zdHJ1Y3Rpb24tcG9ydC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw2
IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTIHN1
cGVyKCkgYWZ0ZXIgbmV3IEF1ZGlvV29ya2xldFByb2Nlc3NvcigpCiBQQVNTIG5ldyBBdWRpb1dv
cmtsZXRQcm9jZXNzb3IoKSBhZnRlciBzdXBlcigpCiBQQVNTIG5ldyBBdWRpb1dvcmtsZXRQcm9j
ZXNzb3IoKSBhZnRlciBuZXcgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yKCkKLVRJTUVPVVQgU2luZ2xl
dG9uIEF1ZGlvV29ya2xldFByb2Nlc3NvciBUZXN0IHRpbWVkIG91dAorUEFTUyBTaW5nbGV0b24g
QXVkaW9Xb3JrbGV0UHJvY2Vzc29yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93
b3JrbGV0LWludGVyZmFjZS9zaW1wbGUtaW5wdXQtb3V0cHV0Lmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9zaW1wbGUtaW5wdXQtb3V0cHV0
Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBiMGRhYzJkNzJkZjJkYjIyZWQ5YWQ5Mzg3NmU0Mjgw
Y2Q2MmUxYmJlLi40NzUzN2I2N2VkNTlkMzc5ZTY2MGFlNzk3M2JhZGE4M2U4ZTk0ZGQ4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uvc2ltcGxlLWlucHV0
LW91dHB1dC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmts
ZXQtaW50ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC03
LDI1ICs3LDggQEAgUEFTUyA+IFtJbml0aWFsaXplIHdvcmtsZXRdCiBQQVNTICAgQ3JlYXRpb24g
b2YgQXVkaW9Xb3JrbGV0IHJlc29sdmVkIGNvcnJlY3RseS4KIFBBU1MgPCBbSW5pdGlhbGl6ZSB3
b3JrbGV0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCiBQQVNT
ID4gW3Rlc3RdIFNpbXBsZSBBdWRpb1dvcmtsZXQgSS9PCi1GQUlMIFggQXVkaW9Xb3JrbGV0IG91
dHB1dFswOjEyN10gZG9lcyBub3QgZXF1YWwgWzEsMS4wNTc1NjQwMjAxNTY4NjA0LDEuMTE0OTM3
MTg2MjQxMTUsMS4xNzE5MjkxMjEwMTc0NTYsMS4yMjgzNTA4Nzc3NjE4NDA4LDEuMjg0MDE1MTc4
NjgwNDIsMS4zMzg3Mzc4NDU0MjA4Mzc0LDEuMzkyMzM2OTY0NjA3MjM4OCwxLjQ0NDYzNTAzMzYw
NzQ4MywxLjQ5NTQ1ODYwMjkwNTI3MzQsMS41NDQ2Mzg3NTI5MzczMTcsMS41OTIwMTMxMjA2NTEy
NDUxLDEuNjM3NDIzNzUzNzM4NDAzMywxLjY4MDcyMDgwNjEyMTgyNjIsMS43MjE3NjAwMzQ1NjEx
NTcyLDEuNzYwNDA1ODk4MDk0MTc3Mi4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNl
IG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4KLQlJbmRl
eAlBY3R1YWwJCQlFeHBlY3RlZAkJQWJzRXJyb3IJCVJlbEVycm9yCQlUZXN0IHRocmVzaG9sZAot
CVswXQkwLjAwMDAwMDAwMDAwMDAwMDBlKzAJMS4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMDAwMDAw
MDAwMDAwMDAwMGUrMAkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJMC4wMDAwMDAwMDAwMDAwMDAwZSsw
Ci0JWzFdCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjA1NzU2NDAyMDE1Njg2MDRlKzAJMS4wNTc1
NjQwMjAxNTY4NjA0ZSswCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkwLjAwMDAwMDAwMDAwMDAwMDBl
KzAKLQlbMl0JMC4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMTE0OTM3MTg2MjQxMTQ5OWUrMAkxLjEx
NDkzNzE4NjI0MTE0OTllKzAJMS4wMDAwMDAwMDAwMDAwMDAwZSswCTAuMDAwMDAwMDAwMDAwMDAw
MGUrMAotCVszXQkwLjAwMDAwMDAwMDAwMDAwMDBlKzAJMS4xNzE5MjkxMjEwMTc0NTYxZSswCTEu
MTcxOTI5MTIxMDE3NDU2MWUrMAkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJMC4wMDAwMDAwMDAwMDAw
MDAwZSswCi0JWzRdCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjIyODM1MDg3Nzc2MTg0MDhlKzAJ
MS4yMjgzNTA4Nzc3NjE4NDA4ZSswCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkwLjAwMDAwMDAwMDAw
MDAwMDBlKzAKLQkuLi5hbmQgMTIzIG1vcmUgZXJyb3JzLgotCU1heCBBYnNFcnJvciBvZiAxLjk5
OTg3NjQ5OTE3NjAyNTRlKzAgYXQgaW5kZXggb2YgMjcuCi0JWzI3XQkwLjAwMDAwMDAwMDAwMDAw
MDBlKzAJMS45OTk4NzY0OTkxNzYwMjU0ZSswCTEuOTk5ODc2NDk5MTc2MDI1NGUrMAkxLjAwMDAw
MDAwMDAwMDAwMDBlKzAJMC4wMDAwMDAwMDAwMDAwMDAwZSswCi0JTWF4IFJlbEVycm9yIG9mIDEu
MDAwMDAwMDAwMDAwMDAwMGUrMCBhdCBpbmRleCBvZiAwLgotIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIEF1ZGlvV29ya2xldCBvdXRwdXRbMTI4Ol06IEV4cGVj
dGVkIDEgZm9yIGFsbCB2YWx1ZXMgYnV0IGZvdW5kIDQ3ODcyIHVuZXhwZWN0ZWQgdmFsdWVzOgot
CUluZGV4CUFjdHVhbAotCVswXQkwCi0JWzFdCTAKLQlbMl0JMAotCVszXQkwCi0JLi4uYW5kIDQ3
ODY4IG1vcmUgZXJyb3JzLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgPCBbdGVzdF0gMiBvdXQgb2YgMiBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1
ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5J
U0hFRDogMSBvdXQgb2YgMiB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitQQVNTICAgQXVkaW9Xb3JrbGV0IG91dHB1dFswOjEyN10gZXF1YWxz
IFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJz
b2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4KK1BBU1MgICBBdWRpb1dv
cmtsZXQgb3V0cHV0WzEyODpdIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDEuCitQQVNTIDwg
W3Rlc3RdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykKK1BBU1Mg
IyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5Lgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNoYW5uZWxtZXJnZXJub2RlLWludGVyZmFjZS9h
Y3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNoYW5u
ZWxtZXJnZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggMWE1ZTU4OTQyNzAyYjZmZmM0Zjc2NjJjM2Q4MmYzNmRkZjZmMTcyZC4uMTYzYWM1
YmY1OGFhMmI1Nzk0MmY2NGFmMWE4ZmJlOGM3MjZjZDNlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1jaGFubmVsbWVyZ2Vybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJm
YWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxNSBA
QAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyAjIEFV
RElUIFRBU0sgUlVOTkVSIFNUQVJURUQuCiBQQVNTIEV4ZWN1dGluZyAiaW5pdGlhbGl6ZSIKLVRJ
TUVPVVQgRXhlY3V0aW5nICJ0ZXN0IiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIEF1ZGl0IHJlcG9y
dAorUEFTUyBFeGVjdXRpbmcgInRlc3QiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtpbml0
aWFsaXplXQogUEFTUyAgIEF1ZGlvV29ya2xldCBtb2R1bGUgbG9hZGluZyByZXNvbHZlZCBjb3Jy
ZWN0bHkuCiBQQVNTIDwgW2luaXRpYWxpemVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDEgYXNzZXJ0aW9ucykKIFBBU1MgPiBbdGVzdF0KK1BBU1MgICBUZXN0IDA6IE51bWJlciBvZiBj
b252b2x2ZXIgb3V0cHV0IGNoYW5uZWxzIGlzIGVxdWFsIHRvIDcuCitGQUlMIFggVGVzdCAxOiBO
dW1iZXIgb2YgY29udm9sdmVyIG91dHB1dCBjaGFubmVscyBpcyBub3QgZXF1YWwgdG8gMS4gR290
IDAuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIE51bWJlciBv
ZiBkaXN0aW5jdCB2YWx1ZXMgaXMgZXF1YWwgdG8gMi4KK0ZBSUwgPCBbdGVzdF0gMSBvdXQgb2Yg
MyBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK0ZBSUwgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSBvdXQgb2YgMiB0YXNr
cyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY29udm9sdmVybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXBy
b2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2ZXJub2Rl
LWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMWE1
ZTU4OTQyNzAyYjZmZmM0Zjc2NjJjM2Q4MmYzNmRkZjZmMTcyZC4uYjIxZTdjYWMyYzA2NjUwZjdj
MmUxMzU5ZWZkMzViMWUyMmJmZDc0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2
ZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2lu
Zy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMTQgQEAKIAotSGFybmVzcyBFcnJvciAo
VElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFS
VEVELgogUEFTUyBFeGVjdXRpbmcgImluaXRpYWxpemUiCi1USU1FT1VUIEV4ZWN1dGluZyAidGVz
dCIgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBBdWRpdCByZXBvcnQKK1BBU1MgRXhlY3V0aW5nICJ0
ZXN0IgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbaW5pdGlhbGl6ZV0KIFBBU1MgICBBdWRp
b1dvcmtsZXQgbW9kdWxlIGxvYWRpbmcgcmVzb2x2ZWQgY29ycmVjdGx5LgogUEFTUyA8IFtpbml0
aWFsaXplXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCiBQQVNT
ID4gW3Rlc3RdCitQQVNTICAgVGVzdCAwOiBOdW1iZXIgb2YgY29udm9sdmVyIG91dHB1dCBjaGFu
bmVscyBpcyBlcXVhbCB0byAyLgorRkFJTCBYIE51bWJlciBvZiBkaXN0aW5jdCB2YWx1ZXMgaXMg
bm90IGVxdWFsIHRvIDIuIEdvdCAxLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK0ZBSUwgPCBbdGVzdF0gMSBvdXQgb2YgMiBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgIyBBVURJVCBUQVNLIFJVTk5F
UiBGSU5JU0hFRDogMSBvdXQgb2YgMiB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFl
bGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9jb3JzLWNoZWNrLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFj
ZS9jb3JzLWNoZWNrLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmZTJkNzlkZjE2MDhkZmY0YzM5
OWE3YjMwZDM0MjRmM2EzYjBjOGE2Li4zYTQ5MmVlYWFmNWEzNzI3NzRkNTE5M2M3YmU4ODllNzIw
ZDMwOTlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNl
bm9kZS1pbnRlcmZhY2UvY29ycy1jaGVjay5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL2NvcnMtY2hlY2su
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDE1IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJ
TUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRF
RC4KIFBBU1MgRXhlY3V0aW5nICJzZXR0aW5nLXVwLWdyYXBoIgotVElNRU9VVCBFeGVjdXRpbmcg
InN0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlIiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIEF1ZGl0
IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgInN0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlIgorUEFT
UyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbc2V0dGluZy11cC1ncmFwaF0KIFBBU1MgPCBbc2V0dGlu
Zy11cC1ncmFwaF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMCBhc3NlcnRpb25zKQog
UEFTUyA+IFtzdGFydC1wbGF5YmFjay1hbmQtY2FwdHVyZV0KK1BBU1MgICBSZWNvcmRlZCBjaGFu
bmVsICMwIGlzIG5vdCBjb25zdGFudGx5IDAgKGNvbnRhaW5zIDMzMDg4IGRpZmZlcmVudCB2YWx1
ZXMpLgorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzEgaXMgbm90IGNvbnN0YW50bHkgMCAoY29u
dGFpbnMgMzMwOTAgZGlmZmVyZW50IHZhbHVlcykuCitQQVNTICAgUmVjb3JkZWQgY2hhbm5lbCAj
MiBpcyBub3QgY29uc3RhbnRseSAwIChjb250YWlucyAzMzA4OSBkaWZmZXJlbnQgdmFsdWVzKS4K
K1BBU1MgICBSZWNvcmRlZCBjaGFubmVsICMzIGlzIG5vdCBjb25zdGFudGx5IDAgKGNvbnRhaW5z
IDMzMDkwIGRpZmZlcmVudCB2YWx1ZXMpLgorUEFTUyA8IFtzdGFydC1wbGF5YmFjay1hbmQtY2Fw
dHVyZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKQorUEFTUyAj
IEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWlu
dGVyZmFjZS9uby1jb3JzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFl
bGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9uby1jb3JzLmh0dHBzLWV4cGVjdGVkLnR4
dAppbmRleCBmZTJkNzlkZjE2MDhkZmY0YzM5OWE3YjMwZDM0MjRmM2EzYjBjOGE2Li40ZDEzOWQ5
ZWRlNzAxNjBhYTM4MmIyYzAyNTNkNjZlNmJmNzg1M2YyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2Uvbm8tY29ycy5odHRwcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5v
ZGUtaW50ZXJmYWNlL25vLWNvcnMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDE1IEBA
CiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTICMgQVVE
SVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KIFBBU1MgRXhlY3V0aW5nICJzZXR0aW5nLXVwLWdyYXBo
IgotVElNRU9VVCBFeGVjdXRpbmcgInN0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlIiBUZXN0IHRp
bWVkIG91dAotTk9UUlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgInN0YXJ0LXBsYXli
YWNrLWFuZC1jYXB0dXJlIgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbc2V0dGluZy11cC1n
cmFwaF0KIFBBU1MgPCBbc2V0dGluZy11cC1ncmFwaF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAo
dG90YWwgMCBhc3NlcnRpb25zKQogUEFTUyA+IFtzdGFydC1wbGF5YmFjay1hbmQtY2FwdHVyZV0K
K1BBU1MgICBSZWNvcmRlZCBjaGFubmVsICMwIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAu
CitQQVNTICAgUmVjb3JkZWQgY2hhbm5lbCAjMSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAw
LgorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzIgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQg
MC4KK1BBU1MgICBSZWNvcmRlZCBjaGFubmVsICMzIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50
IDAuCitQQVNTIDwgW3N0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlXSBBbGwgYXNzZXJ0aW9ucyBw
YXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklO
SVNIRUQ6IDIgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411118</attachid>
            <date>2020-10-12 08:40:44 -0700</date>
            <delta_ts>2020-10-12 10:41:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217531-20201012084043.patch</filename>
            <type>text/plain</type>
            <size>63952</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiODVhZDY4MWE3ZWMx
YWNiM2E2OTkzMzJmOWY3NjU2NmNlMTk5MS4uNjZiODA1ZmVmYjg1NDVjZWVlNTBiOTM1MTkyMDI4
OTM0OTE1NmU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNyBAQAorMjAyMC0xMC0wOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IgdG8gcHJvY2VzcyBhdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZh
YmxldC4KKworICAgICAgICBVc2UgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHRvIHByb2Nlc3MgYXVk
aW86CisgICAgICAgIC0gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1ZGlvLyNkb20tYXVkaW93
b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MKKworICAgICAgICBUaGUgQXVkaW9Xb3JrbGV0Tm9kZSBs
b2dpYyBpcyBiYXNlZCBvbiB0aGUgQmxpbmsgaW1wbGVtZW50YXRpb24gYXQ6CisgICAgICAgIC0g
aHR0cHM6Ly9naXRodWIuY29tL2Nocm9taXVtL2Nocm9taXVtL2Jsb2IvbWFzdGVyL3RoaXJkX3Bh
cnR5L2JsaW5rL3JlbmRlcmVyL21vZHVsZXMvd2ViYXVkaW8vYXVkaW9fd29ya2xldF9ub2RlLmNj
CisKKyAgICAgICAgVGhpcyB3YXMgdGhlIGxhc3QgcGllY2Ugb2YgbG9naWMgbmVlZGVkIHRvIG1h
a2UgQXVkaW9Xb3JrbGV0IGZ1bmN0aW9uYWwuCisgICAgICAgIEkgZGlkIG5vdCBlbmFibGUgQXVk
aW9Xb3JrbGV0cyBieSBkZWZhdWx0IGluIHRoaXMgcGF0Y2ggdGhvdWdoIGJlY2F1c2UKKyAgICAg
ICAgdGhlcmUgYXJlIHN0aWxsIHNvbWUgdGVzdCBmYWlsdXJlcyB0aGF0IHdlIHNob3VsZCBpbnZl
c3RpZ2F0ZSBmaXJzdC4KKyAgICAgICAgTW9zdCBBdWRpb1dvcmtsZXQgdGVzdHMgYXJlIHBhc3Np
bmcgdGhvdWdoLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmViYXNlbGluZWQgZXhpc3Rpbmcg
dGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaDoKKyAgICAg
ICAgUmV0dXJuIGEgY29uc3QgcmVmZXJlbmNlIHRvIGF2b2lkIHJlZmNvdW50aW5nIGNodXJuLgor
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6Y3JlYXRlUHJvY2Vz
c29yKToKKyAgICAgICAgQWZ0ZXIgdGhlIEpTQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLCB3ZSBjb25z
dHJ1Y3QgYSBKU0NhbGxiYWNrRGF0YSBmcm9tIHRoZQorICAgICAgICBKU0F1ZGlvV29ya2xldFBy
b2Nlc3NvciBhbmQgdGhlIGdsb2JhbCBvYmplY3QgYW5kIGNhbGwgYSBzZXR0ZXIgb24gdGhlCisg
ICAgICAgIEF1ZGlvV29ya2xldFByb2Nlc3Nvci4gVGhlIHByb2Nlc3NvciB3aWxsIHVzZSB0aGlz
IHdoZW4gcHJvY2VzcygpIGlzIGNhbGxlZAorICAgICAgICB0byBmb3J3YXJkIHRoZSBjYWxsIHRv
IHByb2Nlc3MoKSBpbiBKYXZhU2NyaXB0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6
OmNyZWF0ZSk6CisgICAgICAgIC0gTW92ZSB0aGUgbG9naWMgZGVhbGluZyB3aXRoIEF1ZGlvUGFy
YW0gb2JqZWN0cyB0byBpdHMgb3duIGluaXRpYWxpemVBdWRpb1BhcmFtZXRlcnMoKQorICAgICAg
ICBmdW5jdGlvbi4KKyAgICAgICAgLSBDYWxsIGNvbnRleHQucmVmTm9kZShub2RlKSBzbyB0aGF0
IHRoZSBub2RlIGlzIGtlcHQgYWxpdmUgYnkgdGhlIGF1ZGlvIGNvbnRleHQKKyAgICAgICAgICB1
bnRpbCBwbGF5YmFjayBpcyBmaW5pc2hlZC4gVGhlIGNhbGwgdG8gY29udGV4dCgpLm5vdGlmeU5v
ZGVGaW5pc2hlZFByb2Nlc3NpbmcodGhpcykKKyAgICAgICAgICBpbiBkaWRGaW5pc2hQcm9jZXNz
aW5nT25SZW5kZXJpbmdUaHJlYWQoKSBpcyB3aGF0IG5vdGlmaWVzIHRoZSBjb250ZXh0IHRoYXQg
d2UgZmluaXNoZWQKKyAgICAgICAgICBwbGF5YmFjayBhbmQgYWxsb3dzIHRoZSBub2RlIHRvIGdl
dCBkZXN0cm95ZWQuIFRoaXMgaXMgc2ltaWxhciB0byB3aGF0IGlzIGRvbmUgZm9yCisgICAgICAg
ICAgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rlcy4KKyAgICAgICAgLSBDYWxsIHVwZGF0ZVB1bGxT
dGF0dXMoKSBzbyB0aGF0IHRoZSBub2RlIGdldHMgYWRkZWQgdG8gdGhlIGF1dG9tYXRpYyBwdWxs
IGxpc3QgaWYgaXQKKyAgICAgICAgICBkb2VzIG5vdCBoYXZlIGFueSBvdXRwdXRzLiBPdGhlcndp
c2UsIHRoZSBub2RlIHdvdWxkIG5vdCBiZSB1c2VkIGZvciByZW5kZXJpbmcgaWYgaXQKKyAgICAg
ICAgICBkaWQgbm90IGhhdmUgYW55IG91dHB1dHMuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
V29ya2xldE5vZGU6OkF1ZGlvV29ya2xldE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9X
b3JrbGV0Tm9kZTo6fkF1ZGlvV29ya2xldE5vZGUpOgorCisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1dvcmtsZXROb2RlOjppbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJzKToKKyAgICAgICAgVGhpcyBs
b2dpYyB3YXMgbW9zdGx5IG1vdmVkIGZyb20gdGhlIGNyZWF0ZSgpIGZ1bmN0aW9uLiBUaGUgcGFy
dCB0aGF0J3MgbmV3IGlzIHRoZQorICAgICAgICBpbml0aWFsaXphdGlvbiBvZiBtX3BhcmFtVmFs
dWVzTWFwIHRvIGZpbGwgaXQgd2l0aCBlbXB0eSBhdWRpbyBhcnJheXMuIFRoZXNlIGFycmF5cwor
ICAgICAgICBhcmUgdXNlZCBpbiBwcm9jZXNzKCkgdG8gc3RvcmUgdGhlIHNhbXBsZXMgZnJvbSBB
dWRpb1BhcmFtIG9iamVjdHMuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6
OnNldFByb2Nlc3Nvcik6CisgICAgICAgIEZpcmUgYSBwcm9jZXNzb3IgZXJyb3IgaWYgdGhlIHBy
b2Nlc3NvciBnZXRzIHNldCB0byBudWxscHRyLCBpbmRpY2F0aW5nIHRoYXQgd2UgZmFpbGVkCisg
ICAgICAgIHRvIGNvbnN0cnVjdCB0aGUgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIG9iamVjdC4KKwor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6cHJvY2Vzcyk6CisgICAgICAgIEZp
bGwgbV9wYXJhbVZhbHVlc01hcCB3aXRoIHNhbXBsZXMgZnJvbSBhc3NvY2lhdGVkIEF1ZGlvUGFy
YW0gb2JqZWN0cyB0aGVuIGNhbGwKKyAgICAgICAgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpwcm9j
ZXNzKCkgd2l0aCBpbnB1dCAmIG91dHB1dCBBdWRpb0J1cyBvYmplY3RzLCBhcyB3ZWxsCisgICAg
ICAgIGFzIG1fcGFyYW1WYWx1ZXNNYXAuIElmIHByb2Nlc3MoKSByZXR1cm5zIGZhbHNlIG9yIGVu
Y291bnRlcmVkIGFuIGVycm9yLCB3ZSBmaW5pc2gKKyAgICAgICAgcmVuZGVyaW5nLgorCisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjpkaWRGaW5pc2hQcm9jZXNzaW5nT25SZW5k
ZXJpbmdUaHJlYWQpOgorICAgICAgICBUaGlzIGlzIGNhbGxlZCBieSBwcm9jZXNzKCkgd2hlbmV2
ZXIgcHJvY2VzcygpIHJldHVybnMgZmFsc2Ugb3IgZW5jb3VudGVyZWQgYW4gZXJyb3IuCisgICAg
ICAgIElmIHByb2Nlc3MoKSBlbmNvdW50ZXJlZCBhbiBlcnJvciwgd2UgbWFrZSBzdXJlIHRvIGZp
cmUgYSBwcm9jZXNzb3JldmVudCBldmVudCB0bworICAgICAgICBsZXQgdGhlIHNjcmlwdCBrbm93
LiBUaGVuIHdlIG51bGwgb3V0IHRoZSBwcm9jZXNzb3IgYW5kIGZpbmlzaCByZW5kZXJpbmcuCisK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6OnVwZGF0ZVB1bGxTdGF0dXMpOgor
ICAgICAgICBJZiB0aGUgbm9kZSBoYXMgbm8gb3V0cHV0LCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0
byBhZGQgaXQgdG8gdGhlIGF1dG9tYXRpYyBwdWxsCisgICAgICAgIGxpc3QgaW4gdGhlIGNvbnRl
eHQgc28gdGhhdCBpdCBpcyB1c2VkIGZvciByZW5kZXJpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvV29ya2xldE5vZGU6OmNoZWNrTnVtYmVyT2ZDaGFubmVsc0ZvcklucHV0KToKKyAgICAg
ICAgVXNlIHNhbWUgbG9naWMgYXMgQmxpbmsgaGVyZS4KKworICAgICAgICAoV2ViQ29yZTo6QXVk
aW9Xb3JrbGV0Tm9kZTo6ZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhyZWFkKToKKyAgICAgICAg
TG9naWMgdG8gZmlyZSBhIHByb2Nlc3NvcmVycm9yIGV2ZW50IG9uIHRoZSBtYWluIHRocmVhZCB3
aXRoIGEgZGVjZW50IGVycm9yIG1lc3NhZ2UuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29y
a2xldE5vZGU6OmFjdGl2ZURPTU9iamVjdE5hbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9Xb3JrbGV0Tm9kZTo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAg
ICAgIEFjdGl2ZURPTU9iamVjdCBvdmVycmlkZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldE5vZGUuaDoKKyAgICAgICAgU3ViY2xhc3MgQXVkaW9Xb3JrbGV0Tm9k
ZSBzaW5jZSB3ZSBjYW4gZmlyZSBwcm9jZXNzb3JlcnJvciBldmVudHMKKyAgICAgICAgYXQgYW55
IHBvaW50IGR1cmluZyByZW5kZXJpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuaWRsOgorICAgICAgICBNYWtlIGl0IGFuIEFjdGl2ZURPTU9iamVjdC4K
KworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEpTRmxvYXQzMkFycmF5KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnN0cnVjdEpTTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEZyb3pl
bkpTQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29weURhdGFGcm9tSlNBcnJheVRvQnVzZXMp
OgorICAgICAgICBBIGJ1bmNoIG9mIHV0aWxpdHkgZnVuY3Rpb25zIHRvIGNvbnZlcnQgV2ViQ29y
ZSB0eXBlcyBpbnRvIHRoZSBzdWl0YWJsZQorICAgICAgICBKYXZhU2NyaXB0IHR5cGVzIHRoYXQg
YXJlIGV4cGVjdGVkIGJ5IHRoZSBwcm9jZXNzKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2Vzcyk6CisgICAgICAgIFByb3ZpZGUgaW1w
bGVtZW50YXRpb24gZm9yIHByb2Nlc3MoKToKKyAgICAgICAgLSBodHRwczovL3d3dy53My5vcmcv
VFIvd2ViYXVkaW8vI2RvbS1hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2VzcworICAgICAgICBX
ZSBjb252ZXJ0IHRoZSBwYXJhbWV0ZXJzIGludG8gdGhlIEphdmFTY3JpcHQgdHlwZXMgdGhhdCB0
aGUgSlMgcHJvY2VzcygpCisgICAgICAgIGZ1bmN0aW9uIGV4cGVjdHMsIHRoZW4gY2FsbCB0aGUg
cHJvY2VzcygpIGZ1bmN0aW9uIGFuZCBmaW5hbGx5IHJldHVybgorICAgICAgICB0aGUgdmFsdWUg
cmV0dXJuZWQgYnkgdGhlIEpTIHByb2Nlc3MoKSBmdW5jdGlvbi4KKworICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpzZXRQcm9jZXNzQ2FsbGJhY2spOgorICAgICAgICBU
aGlzIGlzIGNhbGxlZCBieSB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgcmlnaHQgYWZ0ZXIg
dGhlIEF1ZGlvV29ya2xldFByb2Nlc3NvcgorICAgICAgICB3cmFwcGVyIGdldHMgY29uc3RydWN0
ZWQgdG8gc2V0IHRoZSBKU0NhbGxiYWNrRGF0YSBvYmplY3QgdGhhdCBpcyB1c2VkCisgICAgICAg
IGJ5IHByb2Nlc3MoKSB0byBjYWxsIHRoZSBKUyBwcm9jZXNzKCkgZnVuY3Rpb24uCisKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oOgorCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ2Fs
bGJhY2tEYXRhU3Ryb25nOjpKU0NhbGxiYWNrRGF0YVN0cm9uZyk6CisgICAgICAgIE1ha2UgSlND
YWxsYmFja0RhdGEgZmFzdCBhbGxvY2F0ZWQuIFRoZSBiaW5kaW5ncyBhbmQgbXkgbmV3IGNvZGUg
aGVhcC1hbGxvY2F0ZSBpdC4KKworICAgICAgICAqIGRvbS9FcnJvckV2ZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVycm9yRXZlbnQ6OkVycm9yRXZlbnQpOgorICAgICAgICAqIGRvbS9FcnJv
ckV2ZW50Lmg6CisgICAgICAgIEFkZCBhbiBldmVudFR5cGUgcGFyYW1ldGVyIHNpbmNlIEF1ZGlv
V29ya2xldE5vZGUgbm93IG5lZWRzIHRvIGRpc3BhdGNoIGFuIEVycm9yRXZlbnQKKyAgICAgICAg
d2hvc2UgdHlwZSBpcyAicHJvY2Vzc29yZXJyb3IiLCBub3QgdGhlIGdlbmVyaWMgImVycm9yIi4K
KworICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNz
YWdlUG9ydDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIEZpeCBN
ZXNzYWdlUG9ydCBnYXJiYXNlIGNvbGxlY3Rpb24gbG9naWMgdG8gcHJvcGVybHkgZGVhbCB3aXRo
IE1lc3NhZ2VQb3J0cyBmcm9tCisgICAgICAgIHdvcmtsZXRzLiBUaGlzIGFkZHJlc3NlcyBjcmFz
aGVzIGZvdW5kIGJ5IHRoZSB1bnNraXBwZWQgbGF5b3V0IHRlc3RzLgorCiAyMDIwLTEwLTA5ICBa
YWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRp
b25dIE92ZXJmbG93IGNsaXAgYmxvY2tzIHZpc3VhbCBvdmVyZmxvdwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaAppbmRleCBmNGU5M2Q2OGJlNmU0ZDY4OGU3
NGQwYjI2Mzk4NjE1MzU0ZTg2YmYxLi4xNmI0MzI1NWI2M2UyNzc3MTgzODUyNzEwNGJkN2FmOWEw
NjE0MjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
UGFyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0u
aApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgLy8gTXVzdCBiZSBjYWxsZWQgaW4gdGhl
IGF1ZGlvIHRocmVhZC4KICAgICBmbG9hdCBmaW5hbFZhbHVlKCk7CiAKLSAgICBTdHJpbmcgbmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogCiAgICAgZmxvYXQgbWluVmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX21pblZhbHVlOyB9CiAgICAgZmxvYXQgbWF4VmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X21heFZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDQ1MzA2MjAzMDAxYzRlZDMy
YzExNTBmZTgwNDdhMDhjODk3ZGJkMmIuLjJhMzA2ZDRmNDFjOTc0NGI5ZTY1N2NjY2NhMTJmOTZi
OWVjNTQxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgUmVm
UHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nvcj4gQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmNyZWF0
ZVByb2Nlc3Nvcihjb25zdCBTdHIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBKU0M6
OkpTT2JqZWN0KiBqc0NvbnN0cnVjdG9yID0gY29uc3RydWN0b3ItPmNhbGxiYWNrRGF0YSgpLT5j
YWxsYmFjaygpOwotICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGpzQ29uc3RydWN0b3ItPmdsb2Jh
bE9iamVjdCgpOworICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGNvbnN0cnVjdG9yLT5jYWxsYmFj
a0RhdGEoKS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2sgeyBnbG9iYWxPYmplY3QgfTsKQEAgLTEzNiw2ICsxMzYsOCBA
QCBSZWZQdHI8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yPiBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6
Y3JlYXRlUHJvY2Vzc29yKGNvbnN0IFN0cgogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IG51bGxwdHIpOwogCiAgICAgYXV0byYganNQcm9jZXNzb3IgPSAqSlNDOjpqc0Nhc3Q8SlNBdWRp
b1dvcmtsZXRQcm9jZXNzb3IqPihvYmplY3QpOworICAgIGpzUHJvY2Vzc29yLndyYXBwZWQoKS5z
ZXRQcm9jZXNzQ2FsbGJhY2sobWFrZVVuaXF1ZTxKU0NhbGxiYWNrRGF0YVN0cm9uZz4oJmpzUHJv
Y2Vzc29yLCBnbG9iYWxPYmplY3QpKTsKKwogICAgIHJldHVybiAmanNQcm9jZXNzb3Iud3JhcHBl
ZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXROb2RlLmNwcAppbmRleCA2YmU3OWI5OTNmYjY1OTlhODI2MzA4OWVlMDg0M2NiYzMy
NTE2Zjk5Li42MTQ5ZTdhMDFjNjI3MDZjODNjZDdhMjQxOTQ3MTM5MzZkYTc1NjFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5j
cHAKQEAgLTMxLDE1ICszMSwyMCBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAjaW5jbHVkZSAi
QXVkaW9Xb3JrbGV0Tm9kZS5oIgogCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgogI2luY2x1ZGUg
IkF1ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgIkF1ZGlvTm9kZUlucHV0LmgiCiAjaW5jbHVkZSAi
QXVkaW9Ob2RlT3V0cHV0LmgiCiAjaW5jbHVkZSAiQXVkaW9QYXJhbS5oIgogI2luY2x1ZGUgIkF1
ZGlvUGFyYW1NYXAuaCIKKyNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkF1
ZGlvV29ya2xldC5oIgogI2luY2x1ZGUgIkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmgiCiAj
aW5jbHVkZSAiQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuaCIKICNpbmNsdWRlICJBdWRpb1dvcmts
ZXRQcm9jZXNzb3IuaCIKICNpbmNsdWRlICJCYXNlQXVkaW9Db250ZXh0LmgiCisjaW5jbHVkZSAi
RXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJKU0F1ZGlv
V29ya2xldE5vZGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUNoYW5uZWwuaCIKICNpbmNs
dWRlICJNZXNzYWdlUG9ydC5oIgpAQCAtOTAsMzMgKzk1LDM1IEBAIEV4Y2VwdGlvbk9yPFJlZjxB
dWRpb1dvcmtsZXROb2RlPj4gQXVkaW9Xb3JrbGV0Tm9kZTo6Y3JlYXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QmCiAKICAgICBhdXRvIHBhcmFtZXRlckRhdGEgPSBXVEZNb3ZlKG9wdGlvbnMucGFyYW1l
dGVyRGF0YSk7CiAgICAgYXV0byBub2RlID0gYWRvcHRSZWYoKm5ldyBBdWRpb1dvcmtsZXROb2Rl
KGNvbnRleHQsIG5hbWUsIFdURk1vdmUob3B0aW9ucyksICpub2RlTWVzc2FnZVBvcnQpKTsKKyAg
ICBub2RlLT5zdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIGF1dG8gcmVzdWx0ID0gbm9kZS0+aGFu
ZGxlQXVkaW9Ob2RlT3B0aW9ucyhvcHRpb25zLCB7IDIsIENoYW5uZWxDb3VudE1vZGU6Ok1heCwg
Q2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VycyB9KTsKICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKIAot
ICAgIGZvciAoYXV0byYgZGVzY3JpcHRvciA6IHBhcmFtZXRlckRlc2NyaXB0b3JzKSB7Ci0gICAg
ICAgIGF1dG8gcGFyYW1ldGVyID0gQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsIGRlc2NyaXB0
b3IubmFtZSwgZGVzY3JpcHRvci5kZWZhdWx0VmFsdWUsIGRlc2NyaXB0b3IubWluVmFsdWUsIGRl
c2NyaXB0b3IubWF4VmFsdWUsIGRlc2NyaXB0b3IuYXV0b21hdGlvblJhdGUpOwotICAgICAgICBu
b2RlLT5wYXJhbWV0ZXJzKCkuYWRkKGRlc2NyaXB0b3IubmFtZSwgV1RGTW92ZShwYXJhbWV0ZXIp
KTsKLSAgICB9CisgICAgbm9kZS0+aW5pdGlhbGl6ZUF1ZGlvUGFyYW1ldGVycyhwYXJhbWV0ZXJE
ZXNjcmlwdG9ycywgcGFyYW1ldGVyRGF0YSk7CiAKLSAgICBpZiAocGFyYW1ldGVyRGF0YSkgewot
ICAgICAgICBmb3IgKGF1dG8mIHBhcmFtZXRlciA6ICpwYXJhbWV0ZXJEYXRhKSB7Ci0gICAgICAg
ICAgICBpZiAoYXV0byogYXVkaW9QYXJhbSA9IG5vZGUtPnBhcmFtZXRlcnMoKS5tYXAoKS5nZXQo
cGFyYW1ldGVyLmtleSkpCi0gICAgICAgICAgICAgICAgYXVkaW9QYXJhbS0+c2V0VmFsdWUocGFy
YW1ldGVyLnZhbHVlKTsKLSAgICAgICAgfQotICAgIH0KKyAgICAvLyBXaWxsIGNhdXNlIHRoZSBj
b250ZXh0IHRvIHJlZiB0aGUgbm9kZSB1bnRpbCBwbGF5YmFjayBoYXMgZmluaXNoZWQuCisgICAg
Y29udGV4dC5yZWZOb2RlKG5vZGUpOwogCiAgICAgY29udGV4dC5hdWRpb1dvcmtsZXQoKS5jcmVh
dGVQcm9jZXNzb3IobmFtZSwgcHJvY2Vzc29yTWVzc2FnZVBvcnQtPmRpc2VudGFuZ2xlKCksIHNl
cmlhbGl6ZWRPcHRpb25zLnJlbGVhc2VOb25OdWxsKCksIG5vZGUpOwogCisgICAgeworICAgICAg
ICAvLyBUaGUgbm9kZSBzaG91bGQgYmUgbWFudWFsbHkgYWRkZWQgdG8gdGhlIGF1dG9tYXRpYyBw
dWxsIG5vZGUgbGlzdCwgZXZlbiB3aXRob3V0IGEgY29ubmVjdCgpIGNhbGwuCisgICAgICAgIEJh
c2VBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tlcihjb250ZXh0KTsKKyAgICAg
ICAgbm9kZS0+dXBkYXRlUHVsbFN0YXR1cygpOworICAgIH0KKwogICAgIHJldHVybiBub2RlOwog
fQogCiBBdWRpb1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2RlKEJhc2VBdWRpb0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMmJiBv
cHRpb25zLCBSZWY8TWVzc2FnZVBvcnQ+JiYgcG9ydCkKICAgICA6IEF1ZGlvTm9kZShjb250ZXh0
LCBOb2RlVHlwZVdvcmtsZXQpCisgICAgLCBBY3RpdmVET01PYmplY3QoY29udGV4dC5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpCiAgICAgLCBtX25hbWUobmFtZSkKICAgICAsIG1fcGFyYW1ldGVy
cyhBdWRpb1BhcmFtTWFwOjpjcmVhdGUoKSkKICAgICAsIG1fcG9ydChXVEZNb3ZlKHBvcnQpKQor
ICAgICwgbV93YXNPdXRwdXRDaGFubmVsQ291bnRHaXZlbighIW9wdGlvbnMub3V0cHV0Q2hhbm5l
bENvdW50KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG9wdGlvbnMubnVtYmVyT2ZJbnB1dHM7ICsraSkKQEAgLTEyNCw2ICsxMzEs
OSBAQCBBdWRpb1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2RlKEJhc2VBdWRpb0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBvcHRpb25zLm51bWJlck9mT3V0cHV0czsgKytpKQogICAgICAgICBhZGRPdXRwdXQob3B0aW9u
cy5vdXRwdXRDaGFubmVsQ291bnQgPyBvcHRpb25zLm91dHB1dENoYW5uZWxDb3VudC0+YXQoaSk6
IDEpOwogCisgICAgbV9pbnB1dHMucmVzaXplKG9wdGlvbnMubnVtYmVyT2ZJbnB1dHMpOworICAg
IG1fb3V0cHV0cy5yZXNpemUob3B0aW9ucy5udW1iZXJPZk91dHB1dHMpOworCiAgICAgaW5pdGlh
bGl6ZSgpOwogfQogCkBAIC0xMzEsNyArMTQxLDcgQEAgQXVkaW9Xb3JrbGV0Tm9kZTo6fkF1ZGlv
V29ya2xldE5vZGUoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgewotICAg
ICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc29yTG9jayk7CisgICAgICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNzTG9jayk7CiAgICAgICAgIGlmIChtX3Byb2Nl
c3NvcikgewogICAgICAgICAgICAgaWYgKGF1dG8qIHdvcmtsZXRQcm94eSA9IGNvbnRleHQoKS5h
dWRpb1dvcmtsZXQoKS5wcm94eSgpKQogICAgICAgICAgICAgICAgIHdvcmtsZXRQcm94eS0+cG9z
dFRhc2tGb3JNb2RlVG9Xb3JrbGV0R2xvYmFsU2NvcGUoW21fcHJvY2Vzc29yID0gV1RGTW92ZSht
X3Byb2Nlc3NvcildKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7IH0sIFdvcmtlclJ1bkxvb3A6
OmRlZmF1bHRNb2RlKCkpOwpAQCAtMTQwLDIxICsxNTAsMTQ3IEBAIEF1ZGlvV29ya2xldE5vZGU6
On5BdWRpb1dvcmtsZXROb2RlKCkKICAgICB1bmluaXRpYWxpemUoKTsKIH0KIAordm9pZCBBdWRp
b1dvcmtsZXROb2RlOjppbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJzKGNvbnN0IFZlY3RvcjxBdWRp
b1BhcmFtRGVzY3JpcHRvcj4mIGRlc2NyaXB0b3JzLCBjb25zdCBPcHRpb25hbDxWZWN0b3I8V1RG
OjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBkb3VibGU+Pj4mIHBhcmFtVmFsdWVzKQoreworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fcGFyYW1ldGVycy0+bWFwKCkuaXNF
bXB0eSgpKTsKKworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNzTG9jayk7CisK
KyAgICBmb3IgKGF1dG8mIGRlc2NyaXB0b3IgOiBkZXNjcmlwdG9ycykgeworICAgICAgICBhdXRv
IHBhcmFtZXRlciA9IEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0KCksIGRlc2NyaXB0b3IubmFt
ZSwgZGVzY3JpcHRvci5kZWZhdWx0VmFsdWUsIGRlc2NyaXB0b3IubWluVmFsdWUsIGRlc2NyaXB0
b3IubWF4VmFsdWUsIGRlc2NyaXB0b3IuYXV0b21hdGlvblJhdGUpOworICAgICAgICBtX3BhcmFt
ZXRlcnMtPmFkZChkZXNjcmlwdG9yLm5hbWUsIFdURk1vdmUocGFyYW1ldGVyKSk7CisgICAgfQor
CisgICAgaWYgKHBhcmFtVmFsdWVzKSB7CisgICAgICAgIGZvciAoYXV0byYgcGFyYW1WYWx1ZSA6
ICpwYXJhbVZhbHVlcykgeworICAgICAgICAgICAgaWYgKGF1dG8qIGF1ZGlvUGFyYW0gPSBtX3Bh
cmFtZXRlcnMtPm1hcCgpLmdldChwYXJhbVZhbHVlLmtleSkpCisgICAgICAgICAgICAgICAgYXVk
aW9QYXJhbS0+c2V0VmFsdWUocGFyYW1WYWx1ZS52YWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBmb3IgKGF1dG8mIHBhcmFtZXRlck5hbWUgOiBtX3BhcmFtZXRlcnMtPm1hcCgpLmtleXMo
KSkKKyAgICAgICAgbV9wYXJhbVZhbHVlc01hcC5hZGQocGFyYW1ldGVyTmFtZSwgbWFrZVVuaXF1
ZTxBdWRpb0Zsb2F0QXJyYXk+KEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkpOwor
fQorCiB2b2lkIEF1ZGlvV29ya2xldE5vZGU6OnNldFByb2Nlc3NvcihSZWZQdHI8QXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yPiYmIHByb2Nlc3NvcikKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc29yTG9jayk7Ci0gICAgbV9w
cm9jZXNzb3IgPSBXVEZNb3ZlKHByb2Nlc3Nvcik7CisgICAgaWYgKHByb2Nlc3NvcikgeworICAg
ICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOworICAgICAgICBtX3By
b2Nlc3NvciA9IFdURk1vdmUocHJvY2Vzc29yKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZmlyZVBy
b2Nlc3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3NvckVycm9yOjpDb25zdHJ1Y3RvckVycm9y
KTsKIH0KIAogdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgVU5VU0VEX1BBUkFN
KGZyYW1lc1RvUHJvY2Vzcyk7CiAKLSAgICAvLyBGSVhNRTogRG8gYWN0dWFsIHByb2Nlc3Npbmcg
dmlhIG1fcHJvY2Vzc29yLgorICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNz
TG9jayk7CisgICAgaWYgKCFsb2NrZXIgfHwgIW1fcHJvY2Vzc29yKSB7CisgICAgICAgIC8vIFdl
J3JlIG5vdCByZWFkeSB5ZXQgb3Igd2UgYXJlIGdldHRpbmcgZGVzdHJveWVkLiBJbiB0aGlzIGNh
c2UsIHdlIG91dHB1dCBzaWxlbmNlLgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bnVtYmVyT2ZPdXRwdXRzKCk7ICsraSkKKyAgICAgICAgICAgIG91dHB1dChpKS0+YnVzKCktPnpl
cm8oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIElmIHRoZSBpbnB1dCBpcyBu
b3QgY29ubmVjdGVkLCBwYXNzIG51bGxwdHIgdG8gdGhlIHByb2Nlc3Nvci4KKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZJbnB1dHMoKTsgKytpKQorICAgICAgICBtX2lucHV0
c1tpXSA9IGlucHV0KGkpLT5pc0Nvbm5lY3RlZCgpID8gaW5wdXQoaSktPmJ1cygpIDogbnVsbHB0
cjsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7ICsraSkK
LSAgICAgICAgb3V0cHV0KGkpLT5idXMoKS0+emVybygpOworICAgICAgICBtX291dHB1dHNbaV0g
PSAqb3V0cHV0KGkpLT5idXMoKTsKKworICAgIGZvciAoYXV0byYgYXVkaW9QYXJhbSA6IG1fcGFy
YW1ldGVycy0+bWFwKCkudmFsdWVzKCkpIHsKKyAgICAgICAgYXV0byogcGFyYW1WYWx1ZXMgPSBt
X3BhcmFtVmFsdWVzTWFwLmdldChhdWRpb1BhcmFtLT5uYW1lKCkpOworICAgICAgICBBU1NFUlQo
cGFyYW1WYWx1ZXMpOworICAgICAgICBpZiAoYXVkaW9QYXJhbS0+aGFzU2FtcGxlQWNjdXJhdGVW
YWx1ZXMoKSAmJiBhdWRpb1BhcmFtLT5hdXRvbWF0aW9uUmF0ZSgpID09IEF1dG9tYXRpb25SYXRl
OjpBUmF0ZSkKKyAgICAgICAgICAgIGF1ZGlvUGFyYW0tPmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRl
VmFsdWVzKHBhcmFtVmFsdWVzLT5kYXRhKCksIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHN0ZDo6ZmlsbChwYXJhbVZhbHVlcy0+ZGF0YSgpLCBwYXJhbVZhbHVl
cy0+ZGF0YSgpICsgZnJhbWVzVG9Qcm9jZXNzLCBhdWRpb1BhcmFtLT5maW5hbFZhbHVlKCkpOwor
ICAgIH0KKworICAgIGJvb2wgdGhyZXdFeGNlcHRpb24gPSBmYWxzZTsKKyAgICBpZiAoIW1fcHJv
Y2Vzc29yLT5wcm9jZXNzKG1faW5wdXRzLCBtX291dHB1dHMsIG1fcGFyYW1WYWx1ZXNNYXAsIHRo
cmV3RXhjZXB0aW9uKSkKKyAgICAgICAgZGlkRmluaXNoUHJvY2Vzc2luZ09uUmVuZGVyaW5nVGhy
ZWFkKHRocmV3RXhjZXB0aW9uKTsKK30KKwordm9pZCBBdWRpb1dvcmtsZXROb2RlOjpkaWRGaW5p
c2hQcm9jZXNzaW5nT25SZW5kZXJpbmdUaHJlYWQoYm9vbCB0aHJld0V4Y2VwdGlvbikKK3sKKyAg
ICBpZiAodGhyZXdFeGNlcHRpb24pCisgICAgICAgIGZpcmVQcm9jZXNzb3JFcnJvck9uTWFpblRo
cmVhZChQcm9jZXNzb3JFcnJvcjo6UHJvY2Vzc0Vycm9yKTsKKworICAgIG1fcHJvY2Vzc29yID0g
bnVsbHB0cjsKKyAgICBtX3RhaWxUaW1lID0gMDsKKyAgICBjb250ZXh0KCkubm90aWZ5Tm9kZUZp
bmlzaGVkUHJvY2Vzc2luZyh0aGlzKTsKK30KKwordm9pZCBBdWRpb1dvcmtsZXROb2RlOjp1cGRh
dGVQdWxsU3RhdHVzKCkKK3sKKyAgICBBU1NFUlQoY29udGV4dCgpLmlzR3JhcGhPd25lcigpKTsK
KworICAgIGJvb2wgaGFzQ29ubmVjdGVkT3V0cHV0ID0gZmFsc2U7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG51bWJlck9mT3V0cHV0cygpOyArK2kpIHsKKyAgICAgICAgaWYgKG91dHB1
dChpKS0+aXNDb25uZWN0ZWQoKSkgeworICAgICAgICAgICAgaGFzQ29ubmVjdGVkT3V0cHV0ID0g
dHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gSWYg
bm8gb3V0cHV0IGlzIGNvbm5lY3RlZCwgYWRkIHRoZSBub2RlIHRvIHRoZSBhdXRvbWF0aWMgcHVs
bCBsaXN0LgorICAgIC8vIE90aGVyd2lzZSwgcmVtb3ZlIGl0IG91dCBvZiB0aGUgbGlzdC4KKyAg
ICBpZiAoIWhhc0Nvbm5lY3RlZE91dHB1dCkKKyAgICAgICAgY29udGV4dCgpLmFkZEF1dG9tYXRp
Y1B1bGxOb2RlKCp0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIGNvbnRleHQoKS5yZW1vdmVBdXRv
bWF0aWNQdWxsTm9kZSgqdGhpcyk7Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6Y2hlY2tO
dW1iZXJPZkNoYW5uZWxzRm9ySW5wdXQoQXVkaW9Ob2RlSW5wdXQqIGlucHV0KQoreworICAgIEFT
U0VSVChjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgpICYmIGNvbnRleHQoKS5pc0dyYXBoT3duZXIo
KSk7CisKKyAgICAvLyBEeW5hbWljIGNoYW5uZWwgY291bnQgb25seSB3b3JrcyB3aGVuIHRoZSBu
b2RlIGhhcyAxIGlucHV0LCAxIG91dHB1dCBhbmQgfG91dHB1dENoYW5uZWxDb3VudHwKKyAgICAv
LyBpcyBub3QgZ2l2ZW4uIE90aGVyd2lzZSB0aGUgY2hhbm5lbCBjb3VudChzKSBzaG91bGQgbm90
IGJlIGR5bmFtaWNhbGx5IGNoYW5nZWQuCisgICAgaWYgKG51bWJlck9mSW5wdXRzKCkgPT0gMSAm
JiBudW1iZXJPZk91dHB1dHMoKSA9PSAxICYmICFtX3dhc091dHB1dENoYW5uZWxDb3VudEdpdmVu
KSB7CisgICAgICAgIEFTU0VSVChpbnB1dCA9PSB0aGlzLT5pbnB1dCgwKSk7CisgICAgICAgIHVu
c2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscyA9IGlucHV0LT5udW1iZXJPZkNoYW5uZWxzKCk7
CisgICAgICAgIGlmIChudW1iZXJPZklucHV0Q2hhbm5lbHMgIT0gb3V0cHV0KDApLT5udW1iZXJP
ZkNoYW5uZWxzKCkpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBwcm9wYWdhdGUgdGhlIGNo
YW5uZWwgY291bnQgdG8gYW55IG5vZGVzIGNvbm5lY3RlZCBmdXJ0aGVyIGRvd25zdHJlYW0gaW4g
dGhlIGdyYXBoLgorICAgICAgICAgICAgb3V0cHV0KDApLT5zZXROdW1iZXJPZkNoYW5uZWxzKG51
bWJlck9mSW5wdXRDaGFubmVscyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBVcGRhdGUg
dGhlIGlucHV0J3MgaW50ZXJuYWwgYnVzIGlmIG5lZWRlZC4KKyAgICBBdWRpb05vZGU6OmNoZWNr
TnVtYmVyT2ZDaGFubmVsc0ZvcklucHV0KGlucHV0KTsKKyAgICB1cGRhdGVQdWxsU3RhdHVzKCk7
Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6ZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhy
ZWFkKFByb2Nlc3NvckVycm9yIGVycm9yKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OworCisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBlcnJvcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsK
KyAgICAgICAgc3dpdGNoIChlcnJvcikgeworICAgICAgICBjYXNlIFByb2Nlc3NvckVycm9yOjpD
b25zdHJ1Y3RvckVycm9yOgorICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIkFuIGVycm9yIHdh
cyB0aHJvd24gZnJvbSBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgY29uc3RydWN0b3IiX3M7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQcm9jZXNzb3JFcnJvcjo6UHJvY2Vzc0Vycm9y
OgorICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIkFuIGVycm9yIHdhcyB0aHJvd24gZnJvbSBB
dWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoKSBtZXRob2QiX3M7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMs
IFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5wcm9jZXNzb3JlcnJvckV2ZW50LCBlcnJvck1lc3NhZ2UsIHsgfSwgMCwgMCwgeyB9KSk7Cisg
ICAgfSk7Cit9CisKK2NvbnN0IGNoYXIqIEF1ZGlvV29ya2xldE5vZGU6OmFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiQXVkaW9Xb3JrbGV0Tm9kZSI7Cit9CisKK2Jv
b2wgQXVkaW9Xb3JrbGV0Tm9kZTo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuICFjb250ZXh0KCkuaXNDbG9zZWQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldE5vZGUuaAppbmRleCA5NWM3ZjY3NTBmMDVmMTJmMzk3NjI0NWRhZGI3MTMxZjExNDg1NDk3
Li5mMjQ5N2Y5MTBhMGFlZTc5YzQ5NzQzNDk5OGUwNTMwN2IxYzhjNmViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaApAQCAtMzAs
NiArMzAsNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAorI2luY2x1ZGUgIkFjdGl2ZURP
TU9iamVjdC5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CiAKQEAgLTM5LDkgKzQwLDEzIEBAIGNsYXNzIEF1ZGlvUGFyYW1NYXA7CiBjbGFzcyBBdWRpb1dv
cmtsZXRQcm9jZXNzb3I7CiBjbGFzcyBNZXNzYWdlUG9ydDsKIAorc3RydWN0IEF1ZGlvUGFyYW1E
ZXNjcmlwdG9yOwogc3RydWN0IEF1ZGlvV29ya2xldE5vZGVPcHRpb25zOwogCi1jbGFzcyBBdWRp
b1dvcmtsZXROb2RlIDogcHVibGljIEF1ZGlvTm9kZSB7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xh
c3MgQXVkaW9BcnJheTsKK3R5cGVkZWYgQXVkaW9BcnJheTxmbG9hdD4gQXVkaW9GbG9hdEFycmF5
OworCitjbGFzcyBBdWRpb1dvcmtsZXROb2RlIDogcHVibGljIEF1ZGlvTm9kZSwgcHVibGljIEFj
dGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChBdWRpb1dvcmtsZXRO
b2RlKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEF1ZGlvV29ya2xldE5v
ZGU+PiBjcmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEJhc2VBdWRpb0NvbnRleHQmLCBTdHJp
bmcmJiBuYW1lLCBBdWRpb1dvcmtsZXROb2RlT3B0aW9ucyYmKTsKQEAgLTUxLDIxICs1Niw0MSBA
QCBwdWJsaWM6CiAgICAgTWVzc2FnZVBvcnQmIHBvcnQoKSB7IHJldHVybiBtX3BvcnQuZ2V0KCk7
IH0KIAogICAgIHZvaWQgc2V0UHJvY2Vzc29yKFJlZlB0cjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+
JiYpOworICAgIHZvaWQgaW5pdGlhbGl6ZUF1ZGlvUGFyYW1ldGVycyhjb25zdCBWZWN0b3I8QXVk
aW9QYXJhbURlc2NyaXB0b3I+JiwgY29uc3QgT3B0aW9uYWw8VmVjdG9yPFdURjo6S2V5VmFsdWVQ
YWlyPFN0cmluZywgZG91YmxlPj4+JiBwYXJhbVZhbHVlcyk7CiAKIHByaXZhdGU6CiAgICAgQXVk
aW9Xb3JrbGV0Tm9kZShCYXNlQXVkaW9Db250ZXh0JiwgY29uc3QgU3RyaW5nJiBuYW1lLCBBdWRp
b1dvcmtsZXROb2RlT3B0aW9ucyYmLCBSZWY8TWVzc2FnZVBvcnQ+JiYpOwogCisgICAgZW51bSBj
bGFzcyBQcm9jZXNzb3JFcnJvciB7IENvbnN0cnVjdG9yRXJyb3IsIFByb2Nlc3NFcnJvciB9Owor
ICAgIHZvaWQgZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3NvckVycm9yKTsK
KyAgICB2b2lkIGRpZEZpbmlzaFByb2Nlc3NpbmdPblJlbmRlcmluZ1RocmVhZChib29sIHRocmV3
RXhjZXB0aW9uKTsKKwogICAgIC8vIEF1ZGlvTm9kZS4KICAgICB2b2lkIHByb2Nlc3Moc2l6ZV90
IGZyYW1lc1RvUHJvY2VzcykgZmluYWw7Ci0gICAgZG91YmxlIHRhaWxUaW1lKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gMDsgfSAvLyBGSVhNRTogUmV0dXJuIGEgY29ycmVjdCB2YWx1ZS4KKyAgICBk
b3VibGUgdGFpbFRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3RhaWxUaW1lOyB9CiAgICAg
ZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQogICAgIGJvb2wg
cmVxdWlyZXNUYWlsUHJvY2Vzc2luZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2b2lkIGNoZWNrTnVtYmVyT2ZDaGFubmVsc0ZvcklucHV0KEF1ZGlvTm9kZUlucHV0KikgZmlu
YWw7CisgICAgdm9pZCB1cGRhdGVQdWxsU3RhdHVzKCkgZmluYWw7CisKKyAgICAvLyBBY3RpdmVE
T01PYmplY3QuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZp
bmFsOworICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IGZpbmFsOwog
CiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBSZWY8QXVkaW9QYXJhbU1hcD4gbV9wYXJhbWV0ZXJz
OwogICAgIFJlZjxNZXNzYWdlUG9ydD4gbV9wb3J0OwotICAgIExvY2sgbV9wcm9jZXNzb3JMb2Nr
OworICAgIExvY2sgbV9wcm9jZXNzTG9jazsKICAgICBSZWZQdHI8QXVkaW9Xb3JrbGV0UHJvY2Vz
c29yPiBtX3Byb2Nlc3NvcjsgLy8gU2hvdWxkIG9ubHkgYmUgdXNlZCBvbiB0aGUgcmVuZGVyaW5n
IHRocmVhZC4KKyAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRB
cnJheT4+IG1fcGFyYW1WYWx1ZXNNYXA7CisKKyAgICAvLyBLZWVwcyB0aGUgcmVmZXJlbmNlIG9m
IEF1ZGlvQnVzIG9iamVjdHMgZnJvbSBBdWRpb05vZGVJbnB1dCBhbmQgQXVkaW9Ob2RlT3V0cHV0
IGluIG9yZGVyCisgICAgLy8gdG8gcGFzcyB0aGVtIHRvIEF1ZGlvV29ya2xldFByb2Nlc3Nvci4K
KyAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4gbV9pbnB1dHM7CisgICAgVmVjdG9yPFJlZjxB
dWRpb0J1cz4+IG1fb3V0cHV0czsKKworICAgIGRvdWJsZSBtX3RhaWxUaW1lIHsgc3RkOjpudW1l
cmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpIH07CisgICAgYm9vbCBtX3dhc091dHB1dENo
YW5uZWxDb3VudEdpdmVuIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
Tm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5v
ZGUuaWRsCmluZGV4IDcxMTVhZmNlMDM5YzZlNWUyNjc4N2MxM2RmMWNmMDdlOGQ2ZmYwZjguLjky
MTVjOThlMWQzZjZkMTBlNTFmOGI4MTM2OWYyZjU2MzFjYzE2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbApAQCAtMjcs
NiArMjcsNyBAQAogICovCiAKIFsKKyAgICBBY3RpdmVET01PYmplY3QsCiAgICAgQ29uZGl0aW9u
YWw9V0VCX0FVRElPLAogICAgIEVuYWJsZWRCeVNldHRpbmc9QXVkaW9Xb3JrbGV0LAogICAgIEV4
cG9zZWQ9V2luZG93LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCmluZGV4IDQ1YTk3OGU4OTc4MmMxMzhmOTUy
M2UyYTg5Zjg0YTc3MWU4ZGZkNWEuLjQ2OTk2OGUzZTU3ODdjN2VkM2FiNzg2MWQ2ZTAzMzVjN2Q3
ZTc0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKQEAgLTMxLDEyICszMSw3NyBAQAogI2lmIEVOQUJM
RShXRUJfQVVESU8pCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgiCiAKKyNpbmNs
dWRlICJBdWRpb0J1cy5oIgorI2luY2x1ZGUgIkF1ZGlvQ2hhbm5lbC5oIgogI2luY2x1ZGUgIkF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
Q29uc3RydWN0aW9uRGF0YS5oIgorI2luY2x1ZGUgIkpTQ2FsbGJhY2tEYXRhLmgiCisjaW5jbHVk
ZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNYXAuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU1R5cGVkQXJyYXlzLmg+CisjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK3N0YXRpYyBKU0Zsb2F0MzJBcnJh
eSogY29uc3RydWN0SlNGbG9hdDMyQXJyYXkoSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwg
dW5zaWduZWQgbGVuZ3RoLCBjb25zdCBmbG9hdCogZGF0YSA9IG51bGxwdHIpCit7CisgICAgYXV0
byoganNBcnJheSA9IEpTRmxvYXQzMkFycmF5OjpjcmVhdGUoJmdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LnR5cGVkQXJyYXlTdHJ1Y3R1cmUoVHlwZUZsb2F0MzIpLCBsZW5ndGgpOworICAgIGlm
IChkYXRhKQorICAgICAgICBtZW1jcHkoanNBcnJheS0+dHlwZWRWZWN0b3IoKSwgZGF0YSwgc2l6
ZW9mKGZsb2F0KSAqIGxlbmd0aCk7CisgICAgcmV0dXJuIGpzQXJyYXk7Cit9CisKK3N0YXRpYyBK
U01hcCogY29uc3RydWN0SlNNYXAoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
LCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+
JiBwYXJhbVZhbHVlc01hcCkKK3sKKyAgICBhdXRvKiBtYXAgPSBKU01hcDo6Y3JlYXRlKCZnbG9i
YWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QubWFwU3RydWN0dXJlKCkpOworICAgIGZvciAoYXV0
byYgcGFpciA6IHBhcmFtVmFsdWVzTWFwKQorICAgICAgICBtYXAtPnNldCgmZ2xvYmFsT2JqZWN0
LCBqc1N0cmluZ1dpdGhDYWNoZSh2bSwgcGFpci5rZXkpLCBjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJh
eShnbG9iYWxPYmplY3QsIHBhaXIudmFsdWUtPnNpemUoKSwgcGFpci52YWx1ZS0+ZGF0YSgpKSk7
CisgICAgcmV0dXJuIG1hcDsKK30KKworZW51bSBjbGFzcyBTaG91bGRQb3B1bGF0ZVdpdGhCdXNE
YXRhIDogYm9vbCB7IE5vLCBZZXMgfTsKK3N0YXRpYyBKU0FycmF5KiBjb25zdHJ1Y3RGcm96ZW5K
U0FycmF5KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgQXVkaW9CdXMqIGJ1
cywgU2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YSBzaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhKQor
eworICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMgPSBidXMgPyBidXMtPm51bWJlck9mQ2hh
bm5lbHMoKSA6IDA7CisgICAgYXV0byogY2hhbm5lbHNEYXRhID0gSlNBcnJheTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3Qub3JpZ2luYWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZShBcnJh
eVdpdGhDb250aWd1b3VzKSwgbnVtYmVyT2ZDaGFubmVscyk7CisgICAgZm9yICh1bnNpZ25lZCBq
ID0gMDsgaiA8IG51bWJlck9mQ2hhbm5lbHM7ICsraikgeworICAgICAgICBhdXRvKiBjaGFubmVs
ID0gYnVzLT5jaGFubmVsKGopOworICAgICAgICBjaGFubmVsc0RhdGEtPnNldEluZGV4UXVpY2ts
eSh2bSwgaiwgY29uc3RydWN0SlNGbG9hdDMyQXJyYXkoZ2xvYmFsT2JqZWN0LCBjaGFubmVsLT5s
ZW5ndGgoKSwgc2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YSA9PSBTaG91bGRQb3B1bGF0ZVdpdGhC
dXNEYXRhOjpZZXMgPyBjaGFubmVsLT5kYXRhKCkgOiBudWxscHRyKSk7CisgICAgfQorICAgIEpT
Qzo6b2JqZWN0Q29uc3RydWN0b3JGcmVlemUoJmdsb2JhbE9iamVjdCwgY2hhbm5lbHNEYXRhKTsK
KyAgICByZXR1cm4gY2hhbm5lbHNEYXRhOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0
YXRpYyBKU0FycmF5KiBjb25zdHJ1Y3RGcm96ZW5KU0FycmF5KFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFQ+JiBidXNlcywgU2hvdWxkUG9wdWxhdGVX
aXRoQnVzRGF0YSBzaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhKQoreworICAgIGF1dG8qIGFycmF5
ID0gSlNBcnJheTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qub3JpZ2luYWxBcnJheVN0cnVjdHVy
ZUZvckluZGV4aW5nVHlwZShBcnJheVdpdGhDb250aWd1b3VzKSwgYnVzZXMuc2l6ZSgpKTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVzZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGFy
cmF5LT5zZXRJbmRleFF1aWNrbHkodm0sIGksIGNvbnN0cnVjdEZyb3plbkpTQXJyYXkodm0sIGds
b2JhbE9iamVjdCwgV1RGOjpnZXRQdHIoYnVzZXNbaV0pLCBzaG91bGRQb3B1bGF0ZVdpdGhCdXNE
YXRhKSk7CisgICAgSlNDOjpvYmplY3RDb25zdHJ1Y3RvckZyZWV6ZSgmZ2xvYmFsT2JqZWN0LCBh
cnJheSk7CisgICAgcmV0dXJuIGFycmF5OworfQorCitzdGF0aWMgdm9pZCBjb3B5RGF0YUZyb21K
U0FycmF5VG9CdXNlcyhKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBKU0FycmF5JiBqc0Fy
cmF5LCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIGJ1c2VzKQoreworICAgIC8vIFdlIGNhbiBzYWZl
bHkgbWFrZSBhc3N1bXB0aW9ucyBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBKU0FycmF5IHNp
bmNlIHdlIHVzZSBmcm96ZW4gYXJyYXlzLgorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBi
dXNlcy5zaXplKCk7ICsraSkgeworICAgICAgICBhdXRvJiBidXMgPSBidXNlc1tpXTsKKyAgICAg
ICAgYXV0byogY2hhbm5lbHNBcnJheSA9IGFzT2JqZWN0KGpzQXJyYXkuZ2V0SW5kZXgoJmdsb2Jh
bE9iamVjdCwgaSkpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgYnVzLT5udW1i
ZXJPZkNoYW5uZWxzKCk7ICsraikgeworICAgICAgICAgICAgYXV0byogY2hhbm5lbCA9IGJ1cy0+
Y2hhbm5lbChqKTsKKyAgICAgICAgICAgIGF1dG8qIGpzQ2hhbm5lbERhdGEgPSBqc0Nhc3Q8SlNG
bG9hdDMyQXJyYXkqPihjaGFubmVsc0FycmF5LT5nZXRJbmRleCgmZ2xvYmFsT2JqZWN0LCBqKSk7
CisgICAgICAgICAgICBpZiAoanNDaGFubmVsRGF0YS0+bGVuZ3RoKCkgPT0gY2hhbm5lbC0+bGVu
Z3RoKCkpCisgICAgICAgICAgICAgICAgbWVtY3B5KGNoYW5uZWwtPm11dGFibGVEYXRhKCksIGpz
Q2hhbm5lbERhdGEtPnR5cGVkVmVjdG9yKCksIHNpemVvZihmbG9hdCkgKiBjaGFubmVsLT5sZW5n
dGgoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2hhbm5lbC0+emVybygp
OworICAgICAgICB9CisgICAgfQorfQorCiBFeGNlcHRpb25PcjxSZWY8QXVkaW9Xb3JrbGV0UHJv
Y2Vzc29yPj4gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCkKIHsKICAgICBhdXRvIGNvbnN0cnVjdGlvbkRhdGEgPSBkb3duY2FzdDxB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkudGFrZVBlbmRpbmdQcm9jZXNzb3JDb25z
dHJ1Y3Rpb25EYXRhKCk7CkBAIC01NSw2ICsxMjAsNDIgQEAgQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
OjpBdWRpb1dvcmtsZXRQcm9jZXNzb3IoY29uc3QgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3Ry
dWMKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIH0KIAorYm9vbCBBdWRpb1dvcmtsZXRQ
cm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMs
IFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIGJvb2wmIHRo
cmV3RXhjZXB0aW9uKQoreworICAgIEFTU0VSVChtX3Byb2Nlc3NDYWxsYmFjayk7CisgICAgYXV0
byYgZ2xvYmFsT2JqZWN0ID0gKm1fcHJvY2Vzc0NhbGxiYWNrLT5nbG9iYWxPYmplY3QoKTsKKyAg
ICBBU1NFUlQoZ2xvYmFsT2JqZWN0LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgQVNT
RVJUKGdsb2JhbE9iamVjdC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVh
ZCgpKTsKKworICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9s
ZGVyIGxvY2sodm0pOworCisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIGNvbnNpZGVyIGNhY2hpbmcgdGhlIEpTQXJyYXlzICYgSlNNYXAgYW5k
IG9ubHkgdXBkYXRlIHRoZWlyIGl0ZW1zCisgICAgLy8gZXZlcnkgdGltZSBwcm9jZXNzKCkgaXMg
Y2FsbGVkLCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4KKyAgICBhcmdzLmFwcGVuZChjb25zdHJ1
Y3RGcm96ZW5KU0FycmF5KHZtLCBnbG9iYWxPYmplY3QsIGlucHV0cywgU2hvdWxkUG9wdWxhdGVX
aXRoQnVzRGF0YTo6WWVzKSk7CisgICAgYXV0byogb3VwdXRKU0FycmF5ID0gY29uc3RydWN0RnJv
emVuSlNBcnJheSh2bSwgZ2xvYmFsT2JqZWN0LCBvdXRwdXRzLCBTaG91bGRQb3B1bGF0ZVdpdGhC
dXNEYXRhOjpObyk7CisgICAgYXJncy5hcHBlbmQob3VwdXRKU0FycmF5KTsKKyAgICBhcmdzLmFw
cGVuZChjb25zdHJ1Y3RKU01hcCh2bSwgZ2xvYmFsT2JqZWN0LCBwYXJhbVZhbHVlc01hcCkpOwor
CisgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9uOworICAgIGF1
dG8gcmVzdWx0ID0gbV9wcm9jZXNzQ2FsbGJhY2stPmludm9rZUNhbGxiYWNrKGpzVW5kZWZpbmVk
KCksIGFyZ3MsIEpTQ2FsbGJhY2tEYXRhOjpDYWxsYmFja1R5cGU6Ok9iamVjdCwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgInByb2Nlc3MiKSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgIGlm
IChyZXR1cm5lZEV4Y2VwdGlvbikgeworICAgICAgICByZXBvcnRFeGNlcHRpb24oJmdsb2JhbE9i
amVjdCwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgICAgICB0aHJld0V4Y2VwdGlvbiA9IHRydWU7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBjb3B5RGF0YUZyb21KU0FycmF5
VG9CdXNlcyhnbG9iYWxPYmplY3QsICpvdXB1dEpTQXJyYXksIG91dHB1dHMpOworCisgICAgcmV0
dXJuIHJlc3VsdC50b0Jvb2xlYW4oJmdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yOjpzZXRQcm9jZXNzQ2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJh
Y2tEYXRhU3Ryb25nPiYmIHByb2Nlc3NDYWxsYmFjaykKK3sKKyAgICBtX3Byb2Nlc3NDYWxsYmFj
ayA9IFdURk1vdmUocHJvY2Vzc0NhbGxiYWNrKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5oCmluZGV4IDVmZDNh
OWVkYjMwNDE2YTExYjQ0NWFiNTYzNDIzYmQzNzJjOTI0NmUuLjdiMzhmZjIxNWMxNGE2Yzk1MWNm
YTc5NGYyOGY3OTIwNjE2OTYzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuaApAQCAtMjksNiArMjksNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIkF1ZGlvQXJy
YXkuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtMzYsNyArMzcsOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIEF1ZGlvQnVzOwogY2xhc3MgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29u
c3RydWN0aW9uRGF0YTsKK2NsYXNzIEpTQ2FsbGJhY2tEYXRhU3Ryb25nOwogY2xhc3MgTWVzc2Fn
ZVBvcnQ7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCkBAIC00OCwxMSArNTEsMTYg
QEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFt
ZTsgfQogICAgIE1lc3NhZ2VQb3J0JiBwb3J0KCkgeyByZXR1cm4gbV9wb3J0LmdldCgpOyB9CiAK
KyAgICBib29sIHByb2Nlc3MoY29uc3QgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMs
IFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAsIGJvb2wmIHRo
cmV3RXhjZXB0aW9uKTsKKworICAgIHZvaWQgc2V0UHJvY2Vzc0NhbGxiYWNrKHN0ZDo6dW5pcXVl
X3B0cjxKU0NhbGxiYWNrRGF0YVN0cm9uZz4mJik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
QXVkaW9Xb3JrbGV0UHJvY2Vzc29yKGNvbnN0IEF1ZGlvV29ya2xldFByb2Nlc3NvckNvbnN0cnVj
dGlvbkRhdGEmKTsKIAogICAgIFN0cmluZyBtX25hbWU7CiAgICAgUmVmPE1lc3NhZ2VQb3J0PiBt
X3BvcnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJhY2tEYXRhU3Ryb25nPiBtX3Byb2Nl
c3NDYWxsYmFjazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oCmluZGV4IDNlYjNjMWI0OGY2OWQyMzdhYzk1
MDM4MTMyOTA4N2I4ZmEzOGE1YTguLmM1ZTg2ZTdlNmY2NTA2MWVhNDVjZjE0OWZiMTkyYjk4YjJj
NjM3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaApA
QCAtNDMsNiArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyAoYW5kIHN5bmNocm9uaXph
dGlvbiB3b3VsZCBiZSBzbG93KS4KIAogY2xhc3MgSlNDYWxsYmFja0RhdGEgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGVudW0gY2xhc3MgQ2FsbGJhY2tUeXBl
IHsgRnVuY3Rpb24sIE9iamVjdCwgRnVuY3Rpb25Pck9iamVjdCB9OwogCkBAIC03Miw3ICs3Myw3
IEBAIHByaXZhdGU6CiAKIGNsYXNzIEpTQ2FsbGJhY2tEYXRhU3Ryb25nIDogcHVibGljIEpTQ2Fs
bGJhY2tEYXRhIHsKIHB1YmxpYzoKLSAgICBKU0NhbGxiYWNrRGF0YVN0cm9uZyhKU0M6OkpTT2Jq
ZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdm9pZCopCisg
ICAgSlNDYWxsYmFja0RhdGFTdHJvbmcoSlNDOjpKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqID0gbnVsbHB0cikKICAgICAgICAgOiBKU0Nh
bGxiYWNrRGF0YShnbG9iYWxPYmplY3QpCiAgICAgICAgICwgbV9jYWxsYmFjayhnbG9iYWxPYmpl
Y3QtPnZtKCksIGNhbGxiYWNrKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FcnJvckV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmNwcAppbmRl
eCBhMTRhNDIxZjFhNWFlN2UzNWMxNTEzNTU0MjEyZTc0YjBkYzU4YTQ2Li45YTdiZjQ5OGU5ZWMw
MjVhOTNiZmViMTNjN2IyODQ5NmI4NGIyZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXJyb3JFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3Bw
CkBAIC01Myw4ICs1Myw4IEBAIEVycm9yRXZlbnQ6OkVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmlu
ZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlCiB7CiB9CiAKLUVycm9y
RXZlbnQ6OkVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZp
bGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6
U3Ryb25nPEpTQzo6VW5rbm93bj4gZXJyb3IpCi0gICAgOiBFdmVudChldmVudE5hbWVzKCkuZXJy
b3JFdmVudCwgQ2FuQnViYmxlOjpObywgSXNDYW5jZWxhYmxlOjpZZXMpCitFcnJvckV2ZW50OjpF
cnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29s
dW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yKQorICAgIDogRXZlbnQo
dHlwZSwgQ2FuQnViYmxlOjpObywgSXNDYW5jZWxhYmxlOjpZZXMpCiAgICAgLCBtX21lc3NhZ2Uo
bWVzc2FnZSkKICAgICAsIG1fZmlsZU5hbWUoZmlsZU5hbWUpCiAgICAgLCBtX2xpbmVOdW1iZXIo
bGluZU51bWJlcikKQEAgLTYzLDYgKzYzLDExIEBAIEVycm9yRXZlbnQ6OkVycm9yRXZlbnQoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsCiB7
CiB9CiAKK0Vycm9yRXZlbnQ6OkVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5O
dW1iZXIsIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gZXJyb3IpCisgICAgOiBFcnJvckV2ZW50
KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBtZXNzYWdlLCBmaWxlTmFtZSwgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyLCBlcnJvcikKK3sKK30KKwogRXJyb3JFdmVudDo6fkVycm9yRXZlbnQoKSA9
IGRlZmF1bHQ7CiAKIEV2ZW50SW50ZXJmYWNlIEVycm9yRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5oCmluZGV4IGRmMTMxZTMxZjZiYzJiNWQ3NTM1YTNm
ZDU5Mzg0ZGQ4ODJiMmY4NjcuLmM2YzJjNDQ4Yjg2MzM3Y2IzZTAyYzc5NTcwNzZkNWVjMTM1N2Vm
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaApAQCAtNDcsNiArNDcsMTEgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFcnJvckV2ZW50KG1lc3NhZ2UsIGZpbGVOYW1l
LCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGVycm9yKSk7CiAgICAgfQogCisgICAgc3RhdGlj
IFJlZjxFcnJvckV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gZXJyb3Ip
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFcnJvckV2ZW50KHR5cGUsIG1l
c3NhZ2UsIGZpbGVOYW1lLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGVycm9yKSk7CisgICAg
fQorCiAgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgewogICAgICAgICBTdHJpbmcgbWVzc2Fn
ZTsKICAgICAgICAgU3RyaW5nIGZpbGVuYW1lOwpAQCAtNzYsNiArODEsNyBAQCBwdWJsaWM6CiAg
ICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdHJ5U2VyaWFsaXplRXJyb3IoSlNDOjpK
U0dsb2JhbE9iamVjdCYpOwogCiBwcml2YXRlOgorICAgIEVycm9yRXZlbnQoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1l
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6U3Ryb25n
PEpTQzo6VW5rbm93bj4gZXJyb3IpOwogICAgIEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBjb2x1bW5OdW1iZXIsIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gZXJyb3IpOwogICAgIEVy
cm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAppbmRleCA5ZGY4ZmNkMjlkZGMzZjk4ZjEwMjU5NWMw
YzNlZmE0NDNlNjg1YWUyLi5iNDE4Mjg1ZGUxZmQwM2NmMTk4ZjFhMThlNzM1OWU4MWI3ODA2Nzkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKQEAgLTMyOCwxOSArMzI4LDE5IEBAIGJv
b2wgTWVzc2FnZVBvcnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogCiAgICAg
Ly8gSWYgd2UncmUgbm90IGluIHRoZSBtaWRkbGUgb2YgYXNraW5nIHRoZSByZW1vdGUgcG9ydCBh
Ym91dCBjb2xsZWN0YWJpbGl0eSwgZG8gc28gbm93LgogICAgIGlmICghbV9pc0Fza2luZ1JlbW90
ZUFib3V0R0MpIHsKLSAgICAgICAgUmVmUHRyPFdvcmtlclRocmVhZD4gd29ya2VyVGhyZWFkOwot
ICAgICAgICBpZiAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpKQotICAgICAgICAgICAgd29ya2VyVGhyZWFkID0gJmRvd25jYXN0PFdvcmtlckdsb2JhbFNj
b3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJlYWQoKTsKKyAgICAgICAgUmVmUHRy
PFdvcmtlck9yV29ya2xldFRocmVhZD4gd29ya2VyT3JXb3JrbGV0VGhyZWFkOworICAgICAgICBp
ZiAoaXM8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpKQorICAgICAgICAgICAgd29ya2VyT3JXb3JrbGV0VGhyZWFkID0gZG93bmNhc3Q8V29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLndvcmtlck9y
V29ya2xldFRocmVhZCgpOwogCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3JlbW90ZUlkZW50
aWZpZXIgPSBtX3JlbW90ZUlkZW50aWZpZXIsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoY29uc3Rf
Y2FzdDxNZXNzYWdlUG9ydCo+KHRoaXMpKSwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJU
aHJlYWQpXSgpIG11dGFibGUgewotICAgICAgICAgICAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXI6OnNpbmdsZXRvbigpLmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KHJlbW90ZUlkZW50aWZp
ZXIsIFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3Zl
KHdvcmtlclRocmVhZCldKGF1dG8gaGFzQWN0aXZpdHkpIG11dGFibGUgewotICAgICAgICAgICAg
ICAgIGlmICghd29ya2VyVGhyZWFkKSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3JlbW90
ZUlkZW50aWZpZXIgPSBtX3JlbW90ZUlkZW50aWZpZXIsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
Y29uc3RfY2FzdDxNZXNzYWdlUG9ydCo+KHRoaXMpKSwgd29ya2VyT3JXb3JrbGV0VGhyZWFkID0g
V1RGTW92ZSh3b3JrZXJPcldvcmtsZXRUaHJlYWQpXSgpIG11dGFibGUgeworICAgICAgICAgICAg
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLmNoZWNrUmVtb3RlUG9ydEZv
ckFjdGl2aXR5KHJlbW90ZUlkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMp
LCB3b3JrZXJPcldvcmtsZXRUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlck9yV29ya2xldFRocmVhZCld
KGF1dG8gaGFzQWN0aXZpdHkpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmICghd29ya2Vy
T3JXb3JrbGV0VGhyZWFkKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAg
ICAgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT51cGRhdGVBY3Rpdml0eShoYXNBY3Rpdml0
eSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW3dl
YWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGhhc0FjdGl2aXR5XShhdXRvJikgbXV0YWJsZSB7
CisgICAgICAgICAgICAgICAgd29ya2VyT3JXb3JrbGV0VGhyZWFkLT5ydW5Mb29wKCkucG9zdFRh
c2tGb3JNb2RlKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBoYXNBY3Rpdml0eV0oYXV0
byYpIG11dGFibGUgewogICAgICAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAg
ICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+dXBkYXRlQWN0aXZpdHkoaGFzQWN0aXZpdHkpOwog
ICAgICAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDE0YmI0NTY3ODdkMjhkNmMxOGJiZGFlNmFjMzljYzU3NDlkOWY4MDAuLjQ4N2M3ZmQwOWIzOTEw
MTI3ZDA5ZTJkZjZhYTc0ZTQ0YjVjNDhiYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0x
MC0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBdWRp
b1dvcmtsZXRQcm9jZXNzb3IgdG8gcHJvY2VzcyBhdWRpbworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICBVbnNraXAgYWxsIEF1ZGlvV29ya2xldCB0ZXN0cyBu
b3cgdGhhdCB0aGV5IGFyZSBubyBsb25nZXIgdGltaW5nIG91dC4KKworICAgICAgICAqIFRlc3RF
eHBlY3RhdGlvbnM6CisKIDIwMjAtMTAtMDkgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWRkIGVkaXRhYmlsaXR5IHRvIGlucHV0IHR5cGU9
bW9udGgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDZkYzk0MzlkNjZlMWNhN2Q5
ODg2MmFmNzhmNzhlOTJkMDgxNDBmYzkuLjU1YTQ4MjI2MGNmMzVjNDViZTE3N2EwNzRjYjIwNmNj
ZTMxZDQ2YTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBA
CisyMDIwLTEwLTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
VXNlIEF1ZGlvV29ya2xldFByb2Nlc3NvciB0byBwcm9jZXNzIGF1ZGlvCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFJlYmFzZWxpbmUgV1BUIHRlc3RzIG5v
dyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVyc291cmNlbm9kZS1p
bnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmts
ZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtYXV0b21hdGljLXB1bGwuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtZGlzY29ubmVj
dGVkLWlucHV0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRp
b3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50
ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb3V0cHV0LWNoYW5uZWwtY291bnQuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9j
ZXNzLWZyb3plbi1hcnJheS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZh
Y2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtemVyby1vdXRwdXRzLmh0dHBzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJv
bWlzZXMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3Mt
Z2V0dGVyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNz
b3ItY29uc3RydWN0aW9uLXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50
ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jaGFubmVsbWVy
Z2Vybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1j
b252b2x2ZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvY29ycy1jaGVjay5odHRw
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2Uvbm8t
Y29ycy5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMTAtMDkgIEFudG9pbmUgUXVpbnQgIDxn
cmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTIHRyYW5zZm9ybSBjb21wdXRlZCBzdHls
ZSBzaG91bGQgbm90IHJlZmxlY3QgaW5kaXZpZHVhbCB0cmFuc2Zvcm0gcHJvcGVydGllcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggODExYzI5OGY1M2ZmZDJjYzQ5MGQwY2Q0NDkxNTZkYmJkNzg1MGIx
Ny4uYTg5MWE2NmNhNDI2MTY2NTVlOTZkZmQ5ODBjZTk3MTBjYjlhOWRlYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0zMjAsMTkgKzMyMCwxNCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnQtbG9vcHMvZnVsbHlfYWN0aQogIyBT
a2lwIFdQVCB3ZWJhdWRpbyB0ZXN0cyB0aGF0IGFyZSB0aW1pbmcgb3V0LgogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYXN0cmVh
bWF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvbWVkaWFzdHJlYW1hdWRpb3NvdXJjZW5vZGUtcm91
dGluZy5odG1sIFsgU2tpcCBdCiAKLSMgVGhlc2Ugd2ViYXVkaW8gdGVzdHMgYXJlIHRpbWluZyBv
dXQgZHVlIHRvIGxhY2sgZm9yIHN1cHBvcnQgZm9yIEF1ZGlvV29ya2xldC4KKyMgVGhpcyB0ZXN0
IGlzIHRpbWluZyBvdXQgZHVlIHRvIGxhY2sgb2Ygc3VwcG9ydCBmb3IgU2hhcmVkQXJyYXlCdWZm
ZXIuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0LXBvc3RtZXNzYWdlLXNo
YXJlZGFycmF5YnVmZmVyLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVy
ZmFjZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLmh0bWwgWyBTa2lwIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMu
aHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUt
b3V0cHV0LWNoYW5uZWwtY291bnQuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQt
aW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLWZyb3plbi1hcnJheS5odHRw
cy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJv
Y2Vzc29yLXByb2Nlc3MtemVyby1vdXRwdXRzLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93
b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvbWlzZXMuaHR0cHMuaHRt
bCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3MtZ2V0dGVyLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KKworIyBUaGlzIHRlc3QgaXMgdGltaW5nIG91dCBiZWNhdXNlIGl0IGNh
bGxzIHN1c3BlbmQoKSB0aGVuIHJlc3VtZSgpIG9uZSB3aXRob3V0IHlpZWxkaW5nLiBzdXNwZW5k
KCkgc2V0cyBzdGF0ZSB0byBzdXNwZW5kZWQgYXN5bmNocm9ub3VzbHkKKyMgc28gcmVzdW1lKCkg
ZG9lcyBub3Qga25vdyB0aGVyZSBpcyBhIHBlbmRpbmcgc3VzcGVuZCgpIGFuZCByZXR1cm5zIGVh
cmx5LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3MtcGFyYW1ldGVycy5odHRwcy5o
dG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWNoYW5uZWxtZXJnZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vz
c2luZy5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL2FjdGl2
ZS1wcm9jZXNzaW5nLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3Vy
Y2Vub2RlLWludGVyZmFjZS9jb3JzLWNoZWNrLmh0dHBzLmh0bWwgWyBTa2lwIF0KKworIyBUaGlz
IFdlYkF1ZGlvIHRlc3QgaXMgdGltaW5nIG91dCwgcG90ZW50aWFsbHkgZHVlIHRvIGFuIEF1ZGlv
V29ya2xldCBidWcuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2Uvbm8t
Y29ycy5odHRwcy5odG1sIFsgU2tpcCBdCiAKICMgVGhpcyB3ZWJhdWRpbyB0ZXN0IGhhcyBiZWVu
IHRpbWluZyBvdXQgc2luY2UgaXRzIGltcG9ydCBmcm9tIEJsaW5rLgpAQCAtMzQxLDYgKzMzNiw3
IEBAIHdlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UvbWVkaWFzdHJlYW1hdWRpb3NvdXJj
ZW5vZGUuaHRtbCBbIFNraXAgXQogIyBXZWJhdWRpbyB0ZXN0cyB0aGF0IGFyZSBmbGFreS4KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
YXVkaW9wYXJhbS1pbnRlcmZhY2Uvay1yYXRlLXN0ZXJlby1wYW5uZXIuaHRtbCBbIFBhc3MgRmFp
bHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLWFuYWx5c2Vybm9kZS1pbnRlcmZhY2UvdGVzdC1hbmFseXNlci1vdXRwdXQuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZh
Y2UvY29ycy1jaGVjay5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogIyBUaGlzIHRlc3Qg
aXMgcGFzc2luZyBidXQgdGhlIHByaW50ZWQgU05SIHZhbHVlIGRpZmZlcnMgZnJvbSBtYWNoaW5l
IHRvIG1hY2hpbmUuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVyc291cmNlbm9kZS1pbnRlcmZhY2Uvc3ViLXNhbXBs
ZS1idWZmZXItc3RpdGNoaW5nLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpAQCAtMzQ4LDcgKzM0NCw2
IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFw
aS90aGUtYXVkaW9idWZmZXJzb3VyY2Vub2RlCiAjIFZhbHVlcyBpbiBGQUlMIGxpbmVzIGRpZmZl
ciBmcm9tIG1hY2hpbmUgdG8gbWFjaGluZSwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gdW5za2lwIHRo
ZW0gb25jZSB0aGV5IHBhc3MuCiB3ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZS9hdWRpb2J1ZmZl
cnNvdXJjZS1kZXR1bmUtbW9kdWxhdGlvbi5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHdlYmF1ZGlv
L0F1ZGlvQnVmZmVyU291cmNlL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrcmF0ZS1tb2R1bGF0
aW9uLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3NpbXBs
ZS1pbnB1dC1vdXRwdXQuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcv
Yi8xNzY5MjkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5LXN0YXRlcy9hdXRvcGxheS13aXRo
LXNsb3ctdGV4dC10cmFja3MuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYXVkaW9idWZmZXJzb3VyY2Vub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vz
c2luZy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVyc291cmNl
bm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IGVjNzBlMDkzOTQ0OTBmOTEyNmJiNWI2MDE0MzYxOWRhYWQ3ZmQ0YTguLjM1MWVkZjkyYWM3ZDJh
NzY1YzAwYjhjMDA2NzZjMzlkNTRjNTA1MjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW9idWZmZXJzb3VyY2Vub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtaW50ZXJm
YWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtOSwxMyArOSwxMyBA
QCBQQVNTIDwgW1NldHVwIGdyYXBoXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFz
c2VydGlvbnMpCiBQQVNTID4gW3ZlcmlmeSBjb3VudCBjaGFuZ2VdCiBGQUlMIFggTnVtYmVyIG9m
IGNoYW5uZWxzIGNoYW5nZWQgaXMgbm90IHRydWUuIEdvdCBmYWxzZS4gYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTICAgSW5kZXggd2hlcmUgaW5wdXQgY2hhbm5lbCBj
b3VudCBjaGFuZ2VkIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxMjgwLgotRkFJTCBYIE51bWJl
ciBvZiBjaGFubmVscyBpbiBpbnB1dFswOi0yXTogRXhwZWN0ZWQgNyBmb3IgYWxsIHZhbHVlcyBi
dXQgZm91bmQgMTI3OSB1bmV4cGVjdGVkIHZhbHVlczoKK0ZBSUwgWCBOdW1iZXIgb2YgY2hhbm5l
bHMgaW4gaW5wdXRbMDotMl06IEV4cGVjdGVkIDcgZm9yIGFsbCB2YWx1ZXMgYnV0IGZvdW5kIDEw
MjMgdW5leHBlY3RlZCB2YWx1ZXM6CiAJSW5kZXgJQWN0dWFsCi0JWzBdCTAKLQlbMV0JMAotCVsy
XQkwCi0JWzNdCTAKLQkuLi5hbmQgMTI3NSBtb3JlIGVycm9ycy4gYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCisJWzI1Nl0JMAorCVsyNTddCTAKKwlbMjU4XQkwCisJWzI1OV0J
MAorCS4uLmFuZCAxMDE5IG1vcmUgZXJyb3JzLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKIEZBSUwgWCBOdW1iZXIgb2YgY2hhbm5lbHMgaW4gaW5wdXRbLTE6XTogRXhwZWN0
ZWQgMSBmb3IgYWxsIHZhbHVlcyBidXQgZm91bmQgMSB1bmV4cGVjdGVkIHZhbHVlczoKIAlJbmRl
eAlBY3R1YWwKIAlbMF0JMCBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmts
ZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
YXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCAzMTg2MmRmMWE0YTdiNmFkMmE2YzZkNjM3MjY5MjQ0NTEy
MTY1NWNiLi4zNTk1NWNkYjMyZmVmODQxNzdiZmZjZjFlNTgxZjhiYTZiMTQwODI2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9k
ZS1hdXRvbWF0aWMtcHVsbC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtYXV0b21hdGljLXB1bGwuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsMTAgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9V
VCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELgot
VElNRU9VVCBFeGVjdXRpbmcgInNldHVwLXdvcmtsZXQiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4g
QXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAic2V0dXAtd29ya2xldCIKK1BBU1MgQXVkaXQg
cmVwb3J0CiBQQVNTID4gW3NldHVwLXdvcmtsZXRdCitQQVNTICAgVGhlIGZpcnN0IGhhbGYgb2Yg
dGhlIGNhcHR1cmVkIGJ1ZmZlciBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUuCitQQVNT
ICAgVGhlIHNlY29uZCBoYWxmIG9mIHRoZSBjYXB0dXJlZCBidWZmZXIgY29udGFpbnMgb25seSB0
aGUgY29uc3RhbnQgMC4KK1BBU1MgPCBbc2V0dXAtd29ya2xldF0gQWxsIGFzc2VydGlvbnMgcGFz
c2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklT
SEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWRpc2Nvbm5lY3RlZC1p
bnB1dC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRl
cmZhY2UvYXVkaW93b3JrbGV0bm9kZS1kaXNjb25uZWN0ZWQtaW5wdXQuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IDJhODY2NjdhMTgzZjEwNDM5ZmIwMmNlNzRkZjY1OTA1ZjNlY2U2MjUuLjdmY2I4
Y2VkODgzNWRhNmFmNDViYjgxYThhYzJiMmRkMzY5MjdiNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFw
aS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWRpc2Nvbm5lY3Rl
ZC1pbnB1dC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmts
ZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtZGlzY29ubmVjdGVkLWlucHV0Lmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtNCw5ICs0LDkgQEAgUEFTUyBFeGVjdXRpbmcgInRlc3QiCiBQQVNTIEF1
ZGl0IHJlcG9ydAogUEFTUyA+IFt0ZXN0XSBJbnB1dCBhcnJheSBsZW5ndGggc2hvdWxkIGJlIHpl
cm8gZm9yIGRpc2Nvbm5lY3RlZCBpbnB1dAogUEFTUyAgIEJlZm9yZSBjb25uZWN0aW5nIHRoZSBz
b3VyY2U6IElucHV0IGFycmF5IGxlbmd0aCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgot
RkFJTCBYIEZpcnN0IG5vbi16ZXJvIG91dHB1dCBpcyBub3QgZXF1YWwgdG8gMTI4LiBHb3QgLTEu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIEZpcnN0IG5vbi16
ZXJvIG91dHB1dCBpcyBlcXVhbCB0byAxMjguCiBQQVNTICAgV2hpbGUgc291cmNlIGlzIGNvbm5l
Y3RlZDogSW5wdXQgYXJyYXkgbGVuZ3RoIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDEyOC4K
IFBBU1MgICBBZnRlciBkaXNjb25uZWN0aW5nIHRoZSBzb3VyY2U6IElucHV0IGFycmF5IGxlbmd0
aCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgotRkFJTCA8IFt0ZXN0XSAxIG91dCBvZiA0
IGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAxIHRhc2tz
IHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
PCBbdGVzdF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKQorUEFT
UyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHku
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRp
b3dvcmtsZXRub2RlLW9uZXJyb3IuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb25lcnJvci5odHRwcy1leHBl
Y3RlZC50eHQKaW5kZXggYzI2YWExMzM0NjUzOGMxYjI1NGEwM2QxOWY0ZWMwYTNjY2FlNWFkMi4u
OTY3MTIxMzg5NzQ5ZmQwYWFmMjY3ZmViZTRkYjI4OWU2MTJhNGRlNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVk
aW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb25lcnJv
ci5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50
ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb25lcnJvci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEs
OSArMSwxNiBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQog
UEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuCi1USU1FT1VUIEV4ZWN1dGluZyAiY29u
c3RydWN0b3ItZXJyb3IiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gRXhlY3V0aW5nICJwcm9jZXNz
LWVycm9yIgotTk9UUlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgImNvbnN0cnVjdG9y
LWVycm9yIgorUEFTUyBFeGVjdXRpbmcgInByb2Nlc3MtZXJyb3IiCitQQVNTIEF1ZGl0IHJlcG9y
dAogUEFTUyA+IFtjb25zdHJ1Y3Rvci1lcnJvcl0KK1BBU1MgICBvbnByb2Nlc3NvcmVycm9yIGFy
Z3VtZW50IHNob3VsZCBiZSBhbiBFcnJvckV2ZW50IHdoZW4KKyAgICAgICAgICAgICAgICB0aGUg
Y29uc3RydWN0b3Igb2YgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIGhhcyBhbiBlcnJvci4gaXMgdHJ1
ZS4KK1BBU1MgPCBbY29uc3RydWN0b3ItZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRv
dGFsIDEgYXNzZXJ0aW9ucykKK1BBU1MgPiBbcHJvY2Vzcy1lcnJvcl0KK1BBU1MgICBvbnByb2Nl
c3NvcmVycm9yIGFyZ3VtZW50IHNob3VsZCBiZSBhbiBFcnJvckV2ZW50IHdoZW4KKyAgICAgICAg
ICAgICAgICB0aGUgcHJvY2VzcyBtZXRob2Qgb2YgdGhlIEF1ZGlvV29ya2xldFByb2Nlc3NvciBt
ZXRob2QKKyAgICAgICAgICAgICAgICBoYXMgYW4gZXJyb3IuIGlzIHRydWUuCitQQVNTIDwgW3By
b2Nlc3MtZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykK
K1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3VjY2Vzc2Z1
bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uv
YXVkaW93b3JrbGV0bm9kZS1vdXRwdXQtY2hhbm5lbC1jb3VudC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1v
dXRwdXQtY2hhbm5lbC1jb3VudC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMzg3YTc4NGQwNDcx
OThmYTdjN2ZiMzVjYTlmM2YxMmQ0MjJhMDkwZi4uMWZkMzBjN2E4ZDQ2MmQxN2IzY2FmOTAwODk5
ZGQ5ZmQxMTY0N2YyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50
ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb3V0cHV0LWNoYW5uZWwtY291bnQuaHR0cHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dv
cmtsZXRub2RlLW91dHB1dC1jaGFubmVsLWNvdW50Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw5
ICsxLDEzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQ
QVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KLVRJTUVPVVQgRXhlY3V0aW5nICJEeW5h
bWljYWxseSBjaGFuZ2UgdGhlIGNoYW5uZWwgY291bnQgdG8gaWYgdW5zcGVjaWZpZWQuIiBUZXN0
IHRpbWVkIG91dAotTk9UUlVOIEV4ZWN1dGluZyAiR2l2aWVuIG91dHB1dENoYW5uZWxDb3VudCBt
dXN0IGJlIGhvbm9yZWQuIgotTk9UUlVOIEF1ZGl0IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgIkR5
bmFtaWNhbGx5IGNoYW5nZSB0aGUgY2hhbm5lbCBjb3VudCB0byBpZiB1bnNwZWNpZmllZC4iCitQ
QVNTIEV4ZWN1dGluZyAiR2l2aWVuIG91dHB1dENoYW5uZWxDb3VudCBtdXN0IGJlIGhvbm9yZWQu
IgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbRHluYW1pY2FsbHkgY2hhbmdlIHRoZSBjaGFu
bmVsIGNvdW50IHRvIGlmIHVuc3BlY2lmaWVkLl0KK1BBU1MgICBUaGUgZXhwZWN0ZWQgb3V0cHV0
IGNoYW5uZWwgY291bnQgaXMgZXF1YWwgdG8gMTcuCitQQVNTIDwgW0R5bmFtaWNhbGx5IGNoYW5n
ZSB0aGUgY2hhbm5lbCBjb3VudCB0byBpZiB1bnNwZWNpZmllZC5dIEFsbCBhc3NlcnRpb25zIHBh
c3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKK1BBU1MgPiBbR2l2aWVuIG91dHB1dENoYW5uZWxD
b3VudCBtdXN0IGJlIGhvbm9yZWQuXQorUEFTUyAgIFRoZSBleHBlY3RlZCBvdXRwdXQgY2hhbm5l
bCBjb3VudCBpcyBlcXVhbCB0byAyLgorUEFTUyA8IFtHaXZpZW4gb3V0cHV0Q2hhbm5lbENvdW50
IG11c3QgYmUgaG9ub3JlZC5dIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0
aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3Vj
Y2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRl
cmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtZnJvemVuLWFycmF5Lmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dv
cmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy1mcm96ZW4tYXJyYXkuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDBkZjA0ZDc2ZTBkOWU2ZjVkNDRiNDUwMjIyN2YxOTZmZjBiNzBlNzcuLjM0YzA2OTkwYWY4
MWZhMDVjYmVmM2JlOTNkMmUxZGRhODIyYjAyM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
YXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy1mcm96
ZW4tYXJyYXkuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3Jr
bGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy1mcm96ZW4tYXJyYXku
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsMTUgQEAKIAotSGFybmVzcyBFcnJvciAoVElN
RU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVE
LgotVElNRU9VVCBFeGVjdXRpbmcgImNoZWNrLWZyb3plbi1hcnJheSIgVGVzdCB0aW1lZCBvdXQK
LU5PVFJVTiBFeGVjdXRpbmcgInRyYW5zZmVyLWZyb3plbi1hcnJheSIKLU5PVFJVTiBBdWRpdCBy
ZXBvcnQKK1BBU1MgRXhlY3V0aW5nICJjaGVjay1mcm96ZW4tYXJyYXkiCitQQVNTIEV4ZWN1dGlu
ZyAidHJhbnNmZXItZnJvemVuLWFycmF5IgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbY2hl
Y2stZnJvemVuLWFycmF5XQorUEFTUyAgIHxpbnB1dHN8IGlzIGZyb3plbiBpcyB0cnVlLgorUEFT
UyAgIHxvdXRwdXRzfCBpcyBmcm96ZW4gaXMgdHJ1ZS4KK1BBU1MgPCBbY2hlY2stZnJvemVuLWFy
cmF5XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpCitQQVNTID4g
W3RyYW5zZmVyLWZyb3plbi1hcnJheV0KK1BBU1MgICBUcmFuc2ZlcnJpbmcgaW5wdXRzL291dHB1
dHMsIGFuIGluZGl2aWR1YWwgaW5wdXQvb3V0cHV0IGFycmF5LCBvciBhIGNoYW5uZWwgRmxvYXQz
MkFycmF5IGlzIG5vdCBhbGxvd2VkIGFzIGV4cGVjdGVkLiBpcyB0cnVlLgorUEFTUyAgIFRyYW5z
ZmVycmluZyBBcnJheUJ1ZmZlcnMgd2FzIHN1Y2Nlc3NmdWwgYXMgZXhwZWN0ZWQuIGlzIHRydWUu
CitQQVNTIDwgW3RyYW5zZmVyLWZyb3plbi1hcnJheV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAo
dG90YWwgMiBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAy
IHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy16ZXJvLW91
dHB1dHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50
ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLXplcm8tb3V0cHV0cy5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggM2M3ZjAwMzZjMzgxMTU1ZWQyOGUwMTI5ZTFjN2Y4YzAxNWJmZjJi
Zi4uODJjZGZiZDZjM2IzMDFiZGM4ZWNkM2M3YjE4MWFjM2U5NDc0NzUwMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nv
ci1wcm9jZXNzLXplcm8tb3V0cHV0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNz
LXplcm8tb3V0cHV0cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw5IEBACiAKLUhhcm5l
c3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTICMgQVVESVQgVEFTSyBS
VU5ORVIgU1RBUlRFRC4KLVRJTUVPVVQgRXhlY3V0aW5nICJjaGVjay16ZXJvLW91dHB1dHMiIFRl
c3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAiY2hlY2st
emVyby1vdXRwdXRzIgorUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbY2hlY2stemVyby1vdXRw
dXRzXQorUEFTUyAgIHxvdXRwdXRzfCBoYXMgYmVlbiBhbGwgemVyb3MgZm9yIDEgc2Vjb25kcyBh
cyBleHBlY3RlZC4gaXMgdHJ1ZS4KK1BBU1MgPCBbY2hlY2stemVyby1vdXRwdXRzXSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQgVEFTSyBS
VU5ORVIgRklOSVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nv
ci1wcm9taXNlcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xl
dC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb21pc2VzLmh0dHBzLWV4cGVjdGVk
LnR4dAppbmRleCAzNjU0MWJmYTk2ZGZlMThkZmI1ZjQzYjJjZjBjYjkzNGZkMGVhNzRiLi4xZGEx
NzFjNjhjOTU3YTYxMzdmMTQ5YWFjMTg0ZmRkMWI5NDRlZjM4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb21p
c2VzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1p
bnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb21pc2VzLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMSw1ICsxLDQgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBu
dWxsCi0KLVRJTUVPVVQgdGVzdCBUZXN0IHRpbWVkIG91dAorRkFJTCB0ZXN0IGFzc2VydF90cnVl
OiBNaWNyb3Rhc2sgY2hlY2twb2ludHMgYXJlIHBlcmZvcm1lZAorICAgICAgICAgICAgICAgICAg
ICAgICBpbiBiZXR3ZWVuIHJlbmRlciBxdWFudHVtIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNz
LWdldHRlci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1p
bnRlcmZhY2UvcHJvY2Vzcy1nZXR0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDZhN2M2ZGUz
MjUzYmZkMGZlZWU4MDJiOTc1ZDdhYmRiZTVhN2IzY2YuLmE5NjRhM2I0NzU2NDQzMjVmYWVkZWYx
ZTAzN2U4NDExYmUwMTdjNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9wcm9jZXNzLWdldHRlci5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nlc3MtZ2V0dGVyLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMSw2ICsxLDQgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3Nh
Z2UgPSBudWxsCi0KLVRJTUVPVVQgJ3Byb2Nlc3MnIGdldHRlciBvbiBwcm90b3R5cGUgVGVzdCB0
aW1lZCBvdXQKLU5PVFJVTiAncHJvY2VzcycgZ2V0dGVyIG9uIGluc3RhbmNlCitQQVNTICdwcm9j
ZXNzJyBnZXR0ZXIgb24gcHJvdG90eXBlCitQQVNTICdwcm9jZXNzJyBnZXR0ZXIgb24gaW5zdGFu
Y2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3By
b2Nlc3Nvci1jb25zdHJ1Y3Rpb24tcG9ydC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzc29yLWNvbnN0cnVjdGlvbi1wb3J0Lmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmNjBlYzhjMjA0NDQwZmUwZTBhYjBhNDg3NjUzZDVkOTE1
NWRkYzE2Li42MDhkYTA5MWE4MWQ4YWUyOTk2N2NlMDU2ZWE3OTFhN2Y0OTk2MzVhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzc29yLWNvbnN0
cnVjdGlvbi1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
d29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzc29yLWNvbnN0cnVjdGlvbi1wb3J0Lmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMSw4ICsxLDYgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3Nh
Z2UgPSBudWxsCi0KIFBBU1Mgc3VwZXIoKSBhZnRlciBuZXcgQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
KCkKIFBBU1MgbmV3IEF1ZGlvV29ya2xldFByb2Nlc3NvcigpIGFmdGVyIHN1cGVyKCkKIFBBU1Mg
bmV3IEF1ZGlvV29ya2xldFByb2Nlc3NvcigpIGFmdGVyIG5ldyBBdWRpb1dvcmtsZXRQcm9jZXNz
b3IoKQotVElNRU9VVCBTaW5nbGV0b24gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIFRlc3QgdGltZWQg
b3V0CitQQVNTIFNpbmdsZXRvbiBBdWRpb1dvcmtsZXRQcm9jZXNzb3IKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRwdXQu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNl
L3NpbXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGIwZGFjMmQ3MmRm
MmRiMjJlZDlhZDkzODc2ZTQyODBjZDYyZTFiYmUuLjQ3NTM3YjY3ZWQ1OWQzNzllNjYwYWU3OTcz
YmFkYTgzZThlOTRkZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWlu
dGVyZmFjZS9zaW1wbGUtaW5wdXQtb3V0cHV0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uvc2ltcGxlLWlucHV0LW91dHB1dC5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTcsMjUgKzcsOCBAQCBQQVNTID4gW0luaXRpYWxpemUgd29ya2xl
dF0KIFBBU1MgICBDcmVhdGlvbiBvZiBBdWRpb1dvcmtsZXQgcmVzb2x2ZWQgY29ycmVjdGx5Lgog
UEFTUyA8IFtJbml0aWFsaXplIHdvcmtsZXRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDEgYXNzZXJ0aW9ucykKIFBBU1MgPiBbdGVzdF0gU2ltcGxlIEF1ZGlvV29ya2xldCBJL08KLUZB
SUwgWCBBdWRpb1dvcmtsZXQgb3V0cHV0WzA6MTI3XSBkb2VzIG5vdCBlcXVhbCBbMSwxLjA1NzU2
NDAyMDE1Njg2MDQsMS4xMTQ5MzcxODYyNDExNSwxLjE3MTkyOTEyMTAxNzQ1NiwxLjIyODM1MDg3
Nzc2MTg0MDgsMS4yODQwMTUxNzg2ODA0MiwxLjMzODczNzg0NTQyMDgzNzQsMS4zOTIzMzY5NjQ2
MDcyMzg4LDEuNDQ0NjM1MDMzNjA3NDgzLDEuNDk1NDU4NjAyOTA1MjczNCwxLjU0NDYzODc1Mjkz
NzMxNywxLjU5MjAxMzEyMDY1MTI0NTEsMS42Mzc0MjM3NTM3Mzg0MDMzLDEuNjgwNzIwODA2MTIx
ODI2MiwxLjcyMTc2MDAzNDU2MTE1NzIsMS43NjA0MDU4OTgwOTQxNzcyLi4uXSB3aXRoIGFuIGVs
ZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVU
aHJlc2hvbGQiOjB9LgotCUluZGV4CUFjdHVhbAkJCUV4cGVjdGVkCQlBYnNFcnJvcgkJUmVsRXJy
b3IJCVRlc3QgdGhyZXNob2xkCi0JWzBdCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjAwMDAwMDAw
MDAwMDAwMDBlKzAJMS4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkw
LjAwMDAwMDAwMDAwMDAwMDBlKzAKLQlbMV0JMC4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMDU3NTY0
MDIwMTU2ODYwNGUrMAkxLjA1NzU2NDAyMDE1Njg2MDRlKzAJMS4wMDAwMDAwMDAwMDAwMDAwZSsw
CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAotCVsyXQkwLjAwMDAwMDAwMDAwMDAwMDBlKzAJMS4xMTQ5
MzcxODYyNDExNDk5ZSswCTEuMTE0OTM3MTg2MjQxMTQ5OWUrMAkxLjAwMDAwMDAwMDAwMDAwMDBl
KzAJMC4wMDAwMDAwMDAwMDAwMDAwZSswCi0JWzNdCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjE3
MTkyOTEyMTAxNzQ1NjFlKzAJMS4xNzE5MjkxMjEwMTc0NTYxZSswCTEuMDAwMDAwMDAwMDAwMDAw
MGUrMAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKLQlbNF0JMC4wMDAwMDAwMDAwMDAwMDAwZSswCTEu
MjI4MzUwODc3NzYxODQwOGUrMAkxLjIyODM1MDg3Nzc2MTg0MDhlKzAJMS4wMDAwMDAwMDAwMDAw
MDAwZSswCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAotCS4uLmFuZCAxMjMgbW9yZSBlcnJvcnMuCi0J
TWF4IEFic0Vycm9yIG9mIDEuOTk5ODc2NDk5MTc2MDI1NGUrMCBhdCBpbmRleCBvZiAyNy4KLQlb
MjddCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjk5OTg3NjQ5OTE3NjAyNTRlKzAJMS45OTk4NzY0
OTkxNzYwMjU0ZSswCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAK
LQlNYXggUmVsRXJyb3Igb2YgMS4wMDAwMDAwMDAwMDAwMDAwZSswIGF0IGluZGV4IG9mIDAuCi0g
YXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggQXVkaW9Xb3JrbGV0
IG91dHB1dFsxMjg6XTogRXhwZWN0ZWQgMSBmb3IgYWxsIHZhbHVlcyBidXQgZm91bmQgNDc4NzIg
dW5leHBlY3RlZCB2YWx1ZXM6Ci0JSW5kZXgJQWN0dWFsCi0JWzBdCTAKLQlbMV0JMAotCVsyXQkw
Ci0JWzNdCTAKLQkuLi5hbmQgNDc4NjggbW9yZSBlcnJvcnMuIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCA8IFt0ZXN0XSAyIG91dCBvZiAyIGFzc2VydGlvbnMgd2Vy
ZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCAjIEFV
RElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRhc2tzIHdlcmUgZmFpbGVkLiBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBBdWRpb1dvcmtsZXQg
b3V0cHV0WzA6MTI3XSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lz
ZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQi
OjB9LgorUEFTUyAgIEF1ZGlvV29ya2xldCBvdXRwdXRbMTI4Ol0gY29udGFpbnMgb25seSB0aGUg
Y29uc3RhbnQgMS4KK1BBU1MgPCBbdGVzdF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
MiBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAyIHRhc2tz
IHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1l
cmdlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNz
aW5nLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxYTVlNTg5NDI3MDJiNmZmYzRmNzY2MmMzZDgy
ZjM2ZGRmNmYxNzJkLi4xNjNhYzViZjU4YWEyYjU3OTQyZjY0YWYxYThmYmU4YzcyNmNkM2ViIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNoYW5uZWxtZXJnZXJub2RlLWludGVyZmFjZS9hY3Rp
dmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jaGFu
bmVsbWVyZ2Vybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0xLDEyICsxLDE1IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdl
ID0gbnVsbAotCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KIFBBU1MgRXhlY3V0
aW5nICJpbml0aWFsaXplIgotVElNRU9VVCBFeGVjdXRpbmcgInRlc3QiIFRlc3QgdGltZWQgb3V0
Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAidGVzdCIKK1BBU1MgQXVkaXQg
cmVwb3J0CiBQQVNTID4gW2luaXRpYWxpemVdCiBQQVNTICAgQXVkaW9Xb3JrbGV0IG1vZHVsZSBs
b2FkaW5nIHJlc29sdmVkIGNvcnJlY3RseS4KIFBBU1MgPCBbaW5pdGlhbGl6ZV0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKQogUEFTUyA+IFt0ZXN0XQorUEFTUyAg
IFRlc3QgMDogTnVtYmVyIG9mIGNvbnZvbHZlciBvdXRwdXQgY2hhbm5lbHMgaXMgZXF1YWwgdG8g
Ny4KK0ZBSUwgWCBUZXN0IDE6IE51bWJlciBvZiBjb252b2x2ZXIgb3V0cHV0IGNoYW5uZWxzIGlz
IG5vdCBlcXVhbCB0byAxLiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitQQVNTICAgTnVtYmVyIG9mIGRpc3RpbmN0IHZhbHVlcyBpcyBlcXVhbCB0byAyLgorRkFJ
TCA8IFt0ZXN0XSAxIG91dCBvZiAzIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklT
SEVEOiAxIG91dCBvZiAyIHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2ZXJub2Rl
LWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4
cGVjdGVkLnR4dAppbmRleCAxYTVlNTg5NDI3MDJiNmZmYzRmNzY2MmMzZDgyZjM2ZGRmNmYxNzJk
Li5iMjFlN2NhYzJjMDY2NTBmN2MyZTEzNTllZmQzNWIxZTIyYmZkNzRlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1h
dWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJm
YWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxNCBA
QAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyAjIEFV
RElUIFRBU0sgUlVOTkVSIFNUQVJURUQuCiBQQVNTIEV4ZWN1dGluZyAiaW5pdGlhbGl6ZSIKLVRJ
TUVPVVQgRXhlY3V0aW5nICJ0ZXN0IiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIEF1ZGl0IHJlcG9y
dAorUEFTUyBFeGVjdXRpbmcgInRlc3QiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtpbml0
aWFsaXplXQogUEFTUyAgIEF1ZGlvV29ya2xldCBtb2R1bGUgbG9hZGluZyByZXNvbHZlZCBjb3Jy
ZWN0bHkuCiBQQVNTIDwgW2luaXRpYWxpemVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDEgYXNzZXJ0aW9ucykKIFBBU1MgPiBbdGVzdF0KK1BBU1MgICBUZXN0IDA6IE51bWJlciBvZiBj
b252b2x2ZXIgb3V0cHV0IGNoYW5uZWxzIGlzIGVxdWFsIHRvIDIuCitGQUlMIFggTnVtYmVyIG9m
IGRpc3RpbmN0IHZhbHVlcyBpcyBub3QgZXF1YWwgdG8gMi4gR290IDEuIGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCA8IFt0ZXN0XSAxIG91dCBvZiAyIGFzc2VydGlv
bnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJ
TCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRhc2tzIHdlcmUgZmFp
bGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL2NvcnMt
Y2hlY2suaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRp
b3NvdXJjZW5vZGUtaW50ZXJmYWNlL2NvcnMtY2hlY2suaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IGZlMmQ3OWRmMTYwOGRmZjRjMzk5YTdiMzBkMzQyNGYzYTNiMGM4YTYuLjNhNDkyZWVhYWY1YTM3
Mjc3NGQ1MTkzYzdiZTg4OWU3MjBkMzA5OWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVk
aWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9jb3JzLWNoZWNrLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1p
bnRlcmZhY2UvY29ycy1jaGVjay5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTUgQEAK
IAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJ
VCBUQVNLIFJVTk5FUiBTVEFSVEVELgogUEFTUyBFeGVjdXRpbmcgInNldHRpbmctdXAtZ3JhcGgi
Ci1USU1FT1VUIEV4ZWN1dGluZyAic3RhcnQtcGxheWJhY2stYW5kLWNhcHR1cmUiIFRlc3QgdGlt
ZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAic3RhcnQtcGxheWJh
Y2stYW5kLWNhcHR1cmUiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtzZXR0aW5nLXVwLWdy
YXBoXQogUEFTUyA8IFtzZXR0aW5nLXVwLWdyYXBoXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0
b3RhbCAwIGFzc2VydGlvbnMpCiBQQVNTID4gW3N0YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlXQor
UEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzAgaXMgbm90IGNvbnN0YW50bHkgMCAoY29udGFpbnMg
MzMwODggZGlmZmVyZW50IHZhbHVlcykuCitQQVNTICAgUmVjb3JkZWQgY2hhbm5lbCAjMSBpcyBu
b3QgY29uc3RhbnRseSAwIChjb250YWlucyAzMzA5MCBkaWZmZXJlbnQgdmFsdWVzKS4KK1BBU1Mg
ICBSZWNvcmRlZCBjaGFubmVsICMyIGlzIG5vdCBjb25zdGFudGx5IDAgKGNvbnRhaW5zIDMzMDg5
IGRpZmZlcmVudCB2YWx1ZXMpLgorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzMgaXMgbm90IGNv
bnN0YW50bHkgMCAoY29udGFpbnMgMzMwOTAgZGlmZmVyZW50IHZhbHVlcykuCitQQVNTIDwgW3N0
YXJ0LXBsYXliYWNrLWFuZC1jYXB0dXJlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0
IGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDIgdGFza3Mg
cmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1l
bnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL25vLWNvcnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL25vLWNv
cnMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGZlMmQ3OWRmMTYwOGRmZjRjMzk5YTdiMzBkMzQy
NGYzYTNiMGM4YTYuLjRkMTM5ZDllZGU3MDE2MGFhMzgyYjJjMDI1M2Q2NmU2YmY3ODUzZjIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVy
ZmFjZS9uby1jb3JzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlh
ZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2Uvbm8tY29ycy5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTEsMTEgKzEsMTUgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2Ug
PSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELgogUEFTUyBFeGVjdXRp
bmcgInNldHRpbmctdXAtZ3JhcGgiCi1USU1FT1VUIEV4ZWN1dGluZyAic3RhcnQtcGxheWJhY2st
YW5kLWNhcHR1cmUiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4
ZWN1dGluZyAic3RhcnQtcGxheWJhY2stYW5kLWNhcHR1cmUiCitQQVNTIEF1ZGl0IHJlcG9ydAog
UEFTUyA+IFtzZXR0aW5nLXVwLWdyYXBoXQogUEFTUyA8IFtzZXR0aW5nLXVwLWdyYXBoXSBBbGwg
YXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAwIGFzc2VydGlvbnMpCiBQQVNTID4gW3N0YXJ0LXBs
YXliYWNrLWFuZC1jYXB0dXJlXQorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzAgY29udGFpbnMg
b25seSB0aGUgY29uc3RhbnQgMC4KK1BBU1MgICBSZWNvcmRlZCBjaGFubmVsICMxIGNvbnRhaW5z
IG9ubHkgdGhlIGNvbnN0YW50IDAuCitQQVNTICAgUmVjb3JkZWQgY2hhbm5lbCAjMiBjb250YWlu
cyBvbmx5IHRoZSBjb25zdGFudCAwLgorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzMgY29udGFp
bnMgb25seSB0aGUgY29uc3RhbnQgMC4KK1BBU1MgPCBbc3RhcnQtcGxheWJhY2stYW5kLWNhcHR1
cmVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykKK1BBU1MgIyBB
VURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411129</attachid>
            <date>2020-10-12 10:41:14 -0700</date>
            <delta_ts>2020-10-12 11:37:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217531-20201012104113.patch</filename>
            <type>text/plain</type>
            <size>64182</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiODVhZDY4MWE3ZWMx
YWNiM2E2OTkzMzJmOWY3NjU2NmNlMTk5MS4uMzcwZTUxN2EzZTIzZjllNTE2OWI1MGQwNDg5ZDI5
NGQ4NzFhZmM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNyBAQAorMjAyMC0xMC0wOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBdWRpb1dvcmtsZXRQ
cm9jZXNzb3IgdG8gcHJvY2VzcyBhdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZh
YmxldCBhbmQgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgVXNlIEF1ZGlvV29ya2xldFByb2Nlc3Nv
ciB0byBwcm9jZXNzIGF1ZGlvOgorICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJh
dWRpby8jZG9tLWF1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzCisKKyAgICAgICAgVGhlIEF1
ZGlvV29ya2xldE5vZGUgbG9naWMgaXMgYmFzZWQgb24gdGhlIEJsaW5rIGltcGxlbWVudGF0aW9u
IGF0OgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJvbWl1bS9jaHJvbWl1bS9ibG9i
L21hc3Rlci90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL3dlYmF1ZGlvL2F1ZGlv
X3dvcmtsZXRfbm9kZS5jYworCisgICAgICAgIFRoaXMgd2FzIHRoZSBsYXN0IHBpZWNlIG9mIGxv
Z2ljIG5lZWRlZCB0byBtYWtlIEF1ZGlvV29ya2xldCBmdW5jdGlvbmFsLgorICAgICAgICBJIGRp
ZCBub3QgZW5hYmxlIEF1ZGlvV29ya2xldHMgYnkgZGVmYXVsdCBpbiB0aGlzIHBhdGNoIHRob3Vn
aCBiZWNhdXNlCisgICAgICAgIHRoZXJlIGFyZSBzdGlsbCBzb21lIHRlc3QgZmFpbHVyZXMgdGhh
dCB3ZSBzaG91bGQgaW52ZXN0aWdhdGUgZmlyc3QuCisgICAgICAgIE1vc3QgQXVkaW9Xb3JrbGV0
IHRlc3RzIGFyZSBwYXNzaW5nIHRob3VnaC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFz
ZWxpbmVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtLmg6CisgICAgICAgIFJldHVybiBhIGNvbnN0IHJlZmVyZW5jZSB0byBhdm9pZCByZWZj
b3VudGluZyBjaHVybi4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGU6OmNyZWF0ZVByb2Nlc3Nvcik6CisgICAgICAgIEFmdGVyIHRoZSBKU0F1ZGlvV29ya2xldFBy
b2Nlc3Nvciwgd2UgY29uc3RydWN0IGEgSlNDYWxsYmFja0RhdGEgZnJvbSB0aGUKKyAgICAgICAg
SlNBdWRpb1dvcmtsZXRQcm9jZXNzb3IgYW5kIHRoZSBnbG9iYWwgb2JqZWN0IGFuZCBjYWxsIGEg
c2V0dGVyIG9uIHRoZQorICAgICAgICBBdWRpb1dvcmtsZXRQcm9jZXNzb3IuIFRoZSBwcm9jZXNz
b3Igd2lsbCB1c2UgdGhpcyB3aGVuIHByb2Nlc3MoKSBpcyBjYWxsZWQKKyAgICAgICAgdG8gZm9y
d2FyZCB0aGUgY2FsbCB0byBwcm9jZXNzKCkgaW4gSmF2YVNjcmlwdC4KKworICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1dvcmtsZXROb2RlOjpjcmVhdGUpOgorICAgICAgICAtIE1vdmUgdGhlIGxvZ2ljIGRlYWxp
bmcgd2l0aCBBdWRpb1BhcmFtIG9iamVjdHMgdG8gaXRzIG93biBpbml0aWFsaXplQXVkaW9QYXJh
bWV0ZXJzKCkKKyAgICAgICAgZnVuY3Rpb24uCisgICAgICAgIC0gQ2FsbCBjb250ZXh0LnJlZk5v
ZGUobm9kZSkgc28gdGhhdCB0aGUgbm9kZSBpcyBrZXB0IGFsaXZlIGJ5IHRoZSBhdWRpbyBjb250
ZXh0CisgICAgICAgICAgdW50aWwgcGxheWJhY2sgaXMgZmluaXNoZWQuIFRoZSBjYWxsIHRvIGNv
bnRleHQoKS5ub3RpZnlOb2RlRmluaXNoZWRQcm9jZXNzaW5nKHRoaXMpCisgICAgICAgICAgaW4g
ZGlkRmluaXNoUHJvY2Vzc2luZ09uUmVuZGVyaW5nVGhyZWFkKCkgaXMgd2hhdCBub3RpZmllcyB0
aGUgY29udGV4dCB0aGF0IHdlIGZpbmlzaGVkCisgICAgICAgICAgcGxheWJhY2sgYW5kIGFsbG93
cyB0aGUgbm9kZSB0byBnZXQgZGVzdHJveWVkLiBUaGlzIGlzIHNpbWlsYXIgdG8gd2hhdCBpcyBk
b25lIGZvcgorICAgICAgICAgIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZXMuCisgICAgICAgIC0g
Q2FsbCB1cGRhdGVQdWxsU3RhdHVzKCkgc28gdGhhdCB0aGUgbm9kZSBnZXRzIGFkZGVkIHRvIHRo
ZSBhdXRvbWF0aWMgcHVsbCBsaXN0IGlmIGl0CisgICAgICAgICAgZG9lcyBub3QgaGF2ZSBhbnkg
b3V0cHV0cy4gT3RoZXJ3aXNlLCB0aGUgbm9kZSB3b3VsZCBub3QgYmUgdXNlZCBmb3IgcmVuZGVy
aW5nIGlmIGl0CisgICAgICAgICAgZGlkIG5vdCBoYXZlIGFueSBvdXRwdXRzLgorCisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjpBdWRpb1dvcmtsZXROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6On5BdWRpb1dvcmtsZXROb2RlKToKKworICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6aW5pdGlhbGl6ZUF1ZGlvUGFyYW1ldGVycyk6
CisgICAgICAgIFRoaXMgbG9naWMgd2FzIG1vc3RseSBtb3ZlZCBmcm9tIHRoZSBjcmVhdGUoKSBm
dW5jdGlvbi4gVGhlIHBhcnQgdGhhdCdzIG5ldyBpcyB0aGUKKyAgICAgICAgaW5pdGlhbGl6YXRp
b24gb2YgbV9wYXJhbVZhbHVlc01hcCB0byBmaWxsIGl0IHdpdGggZW1wdHkgYXVkaW8gYXJyYXlz
LiBUaGVzZSBhcnJheXMKKyAgICAgICAgYXJlIHVzZWQgaW4gcHJvY2VzcygpIHRvIHN0b3JlIHRo
ZSBzYW1wbGVzIGZyb20gQXVkaW9QYXJhbSBvYmplY3RzLgorCisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1dvcmtsZXROb2RlOjpzZXRQcm9jZXNzb3IpOgorICAgICAgICBGaXJlIGEgcHJvY2Vzc29y
IGVycm9yIGlmIHRoZSBwcm9jZXNzb3IgZ2V0cyBzZXQgdG8gbnVsbHB0ciwgaW5kaWNhdGluZyB0
aGF0IHdlIGZhaWxlZAorICAgICAgICB0byBjb25zdHJ1Y3QgdGhlIEF1ZGlvV29ya2xldFByb2Nl
c3NvciBvYmplY3QuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6OnByb2Nl
c3MpOgorICAgICAgICBGaWxsIG1fcGFyYW1WYWx1ZXNNYXAgd2l0aCBzYW1wbGVzIGZyb20gYXNz
b2NpYXRlZCBBdWRpb1BhcmFtIG9iamVjdHMgdGhlbiBjYWxsCisgICAgICAgIEF1ZGlvV29ya2xl
dFByb2Nlc3Nvcjo6cHJvY2VzcygpIHdpdGggaW5wdXQgJiBvdXRwdXQgQXVkaW9CdXMgb2JqZWN0
cywgYXMgd2VsbAorICAgICAgICBhcyBtX3BhcmFtVmFsdWVzTWFwLiBJZiBwcm9jZXNzKCkgcmV0
dXJucyBmYWxzZSBvciBlbmNvdW50ZXJlZCBhbiBlcnJvciwgd2UgZmluaXNoCisgICAgICAgIHJl
bmRlcmluZy4KKworICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6ZGlkRmluaXNo
UHJvY2Vzc2luZ09uUmVuZGVyaW5nVGhyZWFkKToKKyAgICAgICAgVGhpcyBpcyBjYWxsZWQgYnkg
cHJvY2VzcygpIHdoZW5ldmVyIHByb2Nlc3MoKSByZXR1cm5zIGZhbHNlIG9yIGVuY291bnRlcmVk
IGFuIGVycm9yLgorICAgICAgICBJZiBwcm9jZXNzKCkgZW5jb3VudGVyZWQgYW4gZXJyb3IsIHdl
IG1ha2Ugc3VyZSB0byBmaXJlIGEgcHJvY2Vzc29yZXZlbnQgZXZlbnQgdG8KKyAgICAgICAgbGV0
IHRoZSBzY3JpcHQga25vdy4gVGhlbiB3ZSBudWxsIG91dCB0aGUgcHJvY2Vzc29yIGFuZCBmaW5p
c2ggcmVuZGVyaW5nLgorCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjp1cGRh
dGVQdWxsU3RhdHVzKToKKyAgICAgICAgSWYgdGhlIG5vZGUgaGFzIG5vIG91dHB1dCwgd2UgbmVl
ZCB0byBtYWtlIHN1cmUgdG8gYWRkIGl0IHRvIHRoZSBhdXRvbWF0aWMgcHVsbAorICAgICAgICBs
aXN0IGluIHRoZSBjb250ZXh0IHNvIHRoYXQgaXQgaXMgdXNlZCBmb3IgcmVuZGVyaW5nLgorCisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNG
b3JJbnB1dCk6CisgICAgICAgIFVzZSBzYW1lIGxvZ2ljIGFzIEJsaW5rIGhlcmUuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6OmZpcmVQcm9jZXNzb3JFcnJvck9uTWFpblRo
cmVhZCk6CisgICAgICAgIExvZ2ljIHRvIGZpcmUgYSBwcm9jZXNzb3JlcnJvciBldmVudCBvbiB0
aGUgbWFpbiB0aHJlYWQgd2l0aCBhIGRlY2VudCBlcnJvciBtZXNzYWdlLgorCisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE5vZGU6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZp
dHkgY29uc3QpOgorICAgICAgICBBY3RpdmVET01PYmplY3Qgb3ZlcnJpZGVzLgorCisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmg6CisgICAgICAgIFN1YmNsYXNz
IEF1ZGlvV29ya2xldE5vZGUgc2luY2Ugd2UgY2FuIGZpcmUgcHJvY2Vzc29yZXJyb3IgZXZlbnRz
CisgICAgICAgIGF0IGFueSBwb2ludCBkdXJpbmcgcmVuZGVyaW5nLgorCisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmlkbDoKKyAgICAgICAgTWFrZSBpdCBhbiBB
Y3RpdmVET01PYmplY3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJh
eSk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RKU01hcCk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb25zdHJ1Y3RGcm96ZW5KU0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlEYXRhRnJv
bUpTQXJyYXlUb0J1c2VzKToKKyAgICAgICAgQSBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyB0
byBjb252ZXJ0IFdlYkNvcmUgdHlwZXMgaW50byB0aGUgc3VpdGFibGUKKyAgICAgICAgSmF2YVNj
cmlwdCB0eXBlcyB0aGF0IGFyZSBleHBlY3RlZCBieSB0aGUgcHJvY2VzcygpIGZ1bmN0aW9uLgor
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAg
ICAgICBQcm92aWRlIGltcGxlbWVudGF0aW9uIGZvciBwcm9jZXNzKCk6CisgICAgICAgIC0gaHR0
cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1ZGlvLyNkb20tYXVkaW93b3JrbGV0cHJvY2Vzc29yLXBy
b2Nlc3MKKyAgICAgICAgV2UgY29udmVydCB0aGUgcGFyYW1ldGVycyBpbnRvIHRoZSBKYXZhU2Ny
aXB0IHR5cGVzIHRoYXQgdGhlIEpTIHByb2Nlc3MoKQorICAgICAgICBmdW5jdGlvbiBleHBlY3Rz
LCB0aGVuIGNhbGwgdGhlIHByb2Nlc3MoKSBmdW5jdGlvbiBhbmQgZmluYWxseSByZXR1cm4KKyAg
ICAgICAgdGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBKUyBwcm9jZXNzKCkgZnVuY3Rpb24uCisK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6c2V0UHJvY2Vzc0NhbGxi
YWNrKToKKyAgICAgICAgVGhpcyBpcyBjYWxsZWQgYnkgdGhlIEF1ZGlvV29ya2xldEdsb2JhbFNj
b3BlIHJpZ2h0IGFmdGVyIHRoZSBBdWRpb1dvcmtsZXRQcm9jZXNzb3IKKyAgICAgICAgd3JhcHBl
ciBnZXRzIGNvbnN0cnVjdGVkIHRvIHNldCB0aGUgSlNDYWxsYmFja0RhdGEgb2JqZWN0IHRoYXQg
aXMgdXNlZAorICAgICAgICBieSBwcm9jZXNzKCkgdG8gY2FsbCB0aGUgSlMgcHJvY2VzcygpIGZ1
bmN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNz
b3IuaDoKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmg6CisgICAgICAg
IChXZWJDb3JlOjpKU0NhbGxiYWNrRGF0YVN0cm9uZzo6SlNDYWxsYmFja0RhdGFTdHJvbmcpOgor
ICAgICAgICBNYWtlIEpTQ2FsbGJhY2tEYXRhIGZhc3QgYWxsb2NhdGVkLiBUaGUgYmluZGluZ3Mg
YW5kIG15IG5ldyBjb2RlIGhlYXAtYWxsb2NhdGUgaXQuCisKKyAgICAgICAgKiBkb20vRXJyb3JF
dmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFcnJvckV2ZW50OjpFcnJvckV2ZW50KToKKyAg
ICAgICAgKiBkb20vRXJyb3JFdmVudC5oOgorICAgICAgICBBZGQgYW4gZXZlbnRUeXBlIHBhcmFt
ZXRlciBzaW5jZSBBdWRpb1dvcmtsZXROb2RlIG5vdyBuZWVkcyB0byBkaXNwYXRjaCBhbiBFcnJv
ckV2ZW50CisgICAgICAgIHdob3NlIHR5cGUgaXMgInByb2Nlc3NvcmVycm9yIiwgbm90IHRoZSBn
ZW5lcmljICJlcnJvciIuCisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVzc2FnZVBvcnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3Qp
OgorICAgICAgICBGaXggTWVzc2FnZVBvcnQgZ2FyYmFzZSBjb2xsZWN0aW9uIGxvZ2ljIHRvIHBy
b3Blcmx5IGRlYWwgd2l0aCBNZXNzYWdlUG9ydHMgZnJvbQorICAgICAgICB3b3JrbGV0cy4gVGhp
cyBhZGRyZXNzZXMgY3Jhc2hlcyBmb3VuZCBieSB0aGUgdW5za2lwcGVkIGxheW91dCB0ZXN0cy4K
KwogMjAyMC0xMC0wOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtMRkNdW0ludGVncmF0aW9uXSBPdmVyZmxvdyBjbGlwIGJsb2NrcyB2aXN1YWwgb3ZlcmZsb3cK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmgKaW5kZXggZjRl
OTNkNjhiZTZlNGQ2ODhlNzRkMGIyNjM5ODYxNTM1NGU4NmJmMS4uMTZiNDMyNTViNjNlMjc3NzE4
Mzg1MjcxMDRiZDdhZjlhMDYxNDI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1BhcmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1BhcmFtLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIC8vIE11c3Qg
YmUgY2FsbGVkIGluIHRoZSBhdWRpbyB0aHJlYWQuCiAgICAgZmxvYXQgZmluYWxWYWx1ZSgpOwog
Ci0gICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBjb25zdCBT
dHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KIAogICAgIGZsb2F0IG1pblZh
bHVlKCkgY29uc3QgeyByZXR1cm4gbV9taW5WYWx1ZTsgfQogICAgIGZsb2F0IG1heFZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV9tYXhWYWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCA0
NTMwNjIwMzAwMWM0ZWQzMmMxMTUwZmU4MDQ3YTA4Yzg5N2RiZDJiLi4yYTMwNmQ0ZjQxYzk3NDRi
OWU2NTdjY2NjYTEyZjk2YjllYzU0MWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMTE4
LDcgKzExOCw3IEBAIFJlZlB0cjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+IEF1ZGlvV29ya2xldEds
b2JhbFNjb3BlOjpjcmVhdGVQcm9jZXNzb3IoY29uc3QgU3RyCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgSlNDOjpKU09iamVjdCoganNDb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yLT5j
YWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTsKLSAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBqc0Nv
bnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKTsKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBjb25z
dHJ1Y3Rvci0+Y2FsbGJhY2tEYXRhKCktPmdsb2JhbE9iamVjdCgpOwogICAgIEpTQzo6Vk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrIHsgZ2xvYmFsT2JqZWN0IH07CkBA
IC0xMzYsNiArMTM2LDggQEAgUmVmUHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nvcj4gQXVkaW9Xb3Jr
bGV0R2xvYmFsU2NvcGU6OmNyZWF0ZVByb2Nlc3Nvcihjb25zdCBTdHIKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAgIGF1dG8mIGpzUHJvY2Vzc29yID0gKkpT
Qzo6anNDYXN0PEpTQXVkaW9Xb3JrbGV0UHJvY2Vzc29yKj4ob2JqZWN0KTsKKyAgICBqc1Byb2Nl
c3Nvci53cmFwcGVkKCkuc2V0UHJvY2Vzc0NhbGxiYWNrKG1ha2VVbmlxdWU8SlNDYWxsYmFja0Rh
dGFTdHJvbmc+KCZqc1Byb2Nlc3NvciwgZ2xvYmFsT2JqZWN0KSk7CisKICAgICByZXR1cm4gJmpz
UHJvY2Vzc29yLndyYXBwZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggNmJlNzliOTkzZmI2NTk5YTgy
NjMwODllZTA4NDNjYmMzMjUxNmY5OS4uNjE0OWU3YTAxYzYyNzA2YzgzY2Q3YTI0MTk0NzEzOTM2
ZGE3NTYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuY3BwCkBAIC0zMSwxNSArMzEsMjAgQEAKICNpZiBFTkFCTEUoV0VCX0FV
RElPKQogI2luY2x1ZGUgIkF1ZGlvV29ya2xldE5vZGUuaCIKIAorI2luY2x1ZGUgIkF1ZGlvQXJy
YXkuaCIKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKKyNpbmNsdWRlICJBdWRpb05vZGVJbnB1
dC5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgogI2luY2x1ZGUgIkF1ZGlvUGFyYW0u
aCIKICNpbmNsdWRlICJBdWRpb1BhcmFtTWFwLmgiCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMu
aCIKICNpbmNsdWRlICJBdWRpb1dvcmtsZXQuaCIKICNpbmNsdWRlICJBdWRpb1dvcmtsZXRNZXNz
YWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIkF1ZGlvV29ya2xldE5vZGVPcHRpb25zLmgiCiAjaW5j
bHVkZSAiQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmgiCiAjaW5jbHVkZSAiQmFzZUF1ZGlvQ29udGV4
dC5oIgorI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAj
aW5jbHVkZSAiSlNBdWRpb1dvcmtsZXROb2RlT3B0aW9ucy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VD
aGFubmVsLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKQEAgLTkwLDMzICs5NSwzNSBAQCBF
eGNlcHRpb25PcjxSZWY8QXVkaW9Xb3JrbGV0Tm9kZT4+IEF1ZGlvV29ya2xldE5vZGU6OmNyZWF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0JgogCiAgICAgYXV0byBwYXJhbWV0ZXJEYXRhID0gV1RGTW92
ZShvcHRpb25zLnBhcmFtZXRlckRhdGEpOwogICAgIGF1dG8gbm9kZSA9IGFkb3B0UmVmKCpuZXcg
QXVkaW9Xb3JrbGV0Tm9kZShjb250ZXh0LCBuYW1lLCBXVEZNb3ZlKG9wdGlvbnMpLCAqbm9kZU1l
c3NhZ2VQb3J0KSk7CisgICAgbm9kZS0+c3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICBhdXRvIHJl
c3VsdCA9IG5vZGUtPmhhbmRsZUF1ZGlvTm9kZU9wdGlvbnMob3B0aW9ucywgeyAyLCBDaGFubmVs
Q291bnRNb2RlOjpNYXgsIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnMgfSk7CiAgICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCk7CiAKLSAgICBmb3IgKGF1dG8mIGRlc2NyaXB0b3IgOiBwYXJhbWV0ZXJEZXNj
cmlwdG9ycykgewotICAgICAgICBhdXRvIHBhcmFtZXRlciA9IEF1ZGlvUGFyYW06OmNyZWF0ZShj
b250ZXh0LCBkZXNjcmlwdG9yLm5hbWUsIGRlc2NyaXB0b3IuZGVmYXVsdFZhbHVlLCBkZXNjcmlw
dG9yLm1pblZhbHVlLCBkZXNjcmlwdG9yLm1heFZhbHVlLCBkZXNjcmlwdG9yLmF1dG9tYXRpb25S
YXRlKTsKLSAgICAgICAgbm9kZS0+cGFyYW1ldGVycygpLmFkZChkZXNjcmlwdG9yLm5hbWUsIFdU
Rk1vdmUocGFyYW1ldGVyKSk7Ci0gICAgfQorICAgIG5vZGUtPmluaXRpYWxpemVBdWRpb1BhcmFt
ZXRlcnMocGFyYW1ldGVyRGVzY3JpcHRvcnMsIHBhcmFtZXRlckRhdGEpOwogCi0gICAgaWYgKHBh
cmFtZXRlckRhdGEpIHsKLSAgICAgICAgZm9yIChhdXRvJiBwYXJhbWV0ZXIgOiAqcGFyYW1ldGVy
RGF0YSkgewotICAgICAgICAgICAgaWYgKGF1dG8qIGF1ZGlvUGFyYW0gPSBub2RlLT5wYXJhbWV0
ZXJzKCkubWFwKCkuZ2V0KHBhcmFtZXRlci5rZXkpKQotICAgICAgICAgICAgICAgIGF1ZGlvUGFy
YW0tPnNldFZhbHVlKHBhcmFtZXRlci52YWx1ZSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgLy8g
V2lsbCBjYXVzZSB0aGUgY29udGV4dCB0byByZWYgdGhlIG5vZGUgdW50aWwgcGxheWJhY2sgaGFz
IGZpbmlzaGVkLgorICAgIGNvbnRleHQucmVmTm9kZShub2RlKTsKIAogICAgIGNvbnRleHQuYXVk
aW9Xb3JrbGV0KCkuY3JlYXRlUHJvY2Vzc29yKG5hbWUsIHByb2Nlc3Nvck1lc3NhZ2VQb3J0LT5k
aXNlbnRhbmdsZSgpLCBzZXJpYWxpemVkT3B0aW9ucy5yZWxlYXNlTm9uTnVsbCgpLCBub2RlKTsK
IAorICAgIHsKKyAgICAgICAgLy8gVGhlIG5vZGUgc2hvdWxkIGJlIG1hbnVhbGx5IGFkZGVkIHRv
IHRoZSBhdXRvbWF0aWMgcHVsbCBub2RlIGxpc3QsIGV2ZW4gd2l0aG91dCBhIGNvbm5lY3QoKSBj
YWxsLgorICAgICAgICBCYXNlQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGNvbnRleHRMb2NrZXIo
Y29udGV4dCk7CisgICAgICAgIG5vZGUtPnVwZGF0ZVB1bGxTdGF0dXMoKTsKKyAgICB9CisKICAg
ICByZXR1cm4gbm9kZTsKIH0KIAogQXVkaW9Xb3JrbGV0Tm9kZTo6QXVkaW9Xb3JrbGV0Tm9kZShC
YXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEF1ZGlvV29ya2xl
dE5vZGVPcHRpb25zJiYgb3B0aW9ucywgUmVmPE1lc3NhZ2VQb3J0PiYmIHBvcnQpCiAgICAgOiBB
dWRpb05vZGUoY29udGV4dCwgTm9kZVR5cGVXb3JrbGV0KQorICAgICwgQWN0aXZlRE9NT2JqZWN0
KGNvbnRleHQuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICwgbV9uYW1lKG5hbWUpCiAg
ICAgLCBtX3BhcmFtZXRlcnMoQXVkaW9QYXJhbU1hcDo6Y3JlYXRlKCkpCiAgICAgLCBtX3BvcnQo
V1RGTW92ZShwb3J0KSkKKyAgICAsIG1fd2FzT3V0cHV0Q2hhbm5lbENvdW50R2l2ZW4oISFvcHRp
b25zLm91dHB1dENoYW5uZWxDb3VudCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBvcHRpb25zLm51bWJlck9mSW5wdXRzOyArK2kp
CkBAIC0xMjQsNiArMTMxLDkgQEAgQXVkaW9Xb3JrbGV0Tm9kZTo6QXVkaW9Xb3JrbGV0Tm9kZShC
YXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgb3B0aW9ucy5udW1iZXJPZk91dHB1dHM7ICsraSkKICAgICAgICAg
YWRkT3V0cHV0KG9wdGlvbnMub3V0cHV0Q2hhbm5lbENvdW50ID8gb3B0aW9ucy5vdXRwdXRDaGFu
bmVsQ291bnQtPmF0KGkpOiAxKTsKIAorICAgIG1faW5wdXRzLnJlc2l6ZShvcHRpb25zLm51bWJl
ck9mSW5wdXRzKTsKKyAgICBtX291dHB1dHMucmVzaXplKG9wdGlvbnMubnVtYmVyT2ZPdXRwdXRz
KTsKKwogICAgIGluaXRpYWxpemUoKTsKIH0KIApAQCAtMTMxLDcgKzE0MSw3IEBAIEF1ZGlvV29y
a2xldE5vZGU6On5BdWRpb1dvcmtsZXROb2RlKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Byb2Nlc3Nvckxv
Y2spOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwogICAg
ICAgICBpZiAobV9wcm9jZXNzb3IpIHsKICAgICAgICAgICAgIGlmIChhdXRvKiB3b3JrbGV0UHJv
eHkgPSBjb250ZXh0KCkuYXVkaW9Xb3JrbGV0KCkucHJveHkoKSkKICAgICAgICAgICAgICAgICB3
b3JrbGV0UHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2xldEdsb2JhbFNjb3BlKFttX3Byb2Nl
c3NvciA9IFdURk1vdmUobV9wcm9jZXNzb3IpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeyB9
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKQEAgLTE0MCwyMSArMTUwLDE0NyBAQCBB
dWRpb1dvcmtsZXROb2RlOjp+QXVkaW9Xb3JrbGV0Tm9kZSgpCiAgICAgdW5pbml0aWFsaXplKCk7
CiB9CiAKK3ZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6aW5pdGlhbGl6ZUF1ZGlvUGFyYW1ldGVycyhj
b25zdCBWZWN0b3I8QXVkaW9QYXJhbURlc2NyaXB0b3I+JiBkZXNjcmlwdG9ycywgY29uc3QgT3B0
aW9uYWw8VmVjdG9yPFdURjo6S2V5VmFsdWVQYWlyPFN0cmluZywgZG91YmxlPj4+JiBwYXJhbVZh
bHVlcykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChtX3BhcmFt
ZXRlcnMtPm1hcCgpLmlzRW1wdHkoKSk7CisKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1f
cHJvY2Vzc0xvY2spOworCisgICAgZm9yIChhdXRvJiBkZXNjcmlwdG9yIDogZGVzY3JpcHRvcnMp
IHsKKyAgICAgICAgYXV0byBwYXJhbWV0ZXIgPSBBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCgp
LCBkZXNjcmlwdG9yLm5hbWUsIGRlc2NyaXB0b3IuZGVmYXVsdFZhbHVlLCBkZXNjcmlwdG9yLm1p
blZhbHVlLCBkZXNjcmlwdG9yLm1heFZhbHVlLCBkZXNjcmlwdG9yLmF1dG9tYXRpb25SYXRlKTsK
KyAgICAgICAgbV9wYXJhbWV0ZXJzLT5hZGQoZGVzY3JpcHRvci5uYW1lLCBXVEZNb3ZlKHBhcmFt
ZXRlcikpOworICAgIH0KKworICAgIGlmIChwYXJhbVZhbHVlcykgeworICAgICAgICBmb3IgKGF1
dG8mIHBhcmFtVmFsdWUgOiAqcGFyYW1WYWx1ZXMpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBh
dWRpb1BhcmFtID0gbV9wYXJhbWV0ZXJzLT5tYXAoKS5nZXQocGFyYW1WYWx1ZS5rZXkpKQorICAg
ICAgICAgICAgICAgIGF1ZGlvUGFyYW0tPnNldFZhbHVlKHBhcmFtVmFsdWUudmFsdWUpOworICAg
ICAgICB9CisgICAgfQorCisgICAgZm9yIChhdXRvJiBwYXJhbWV0ZXJOYW1lIDogbV9wYXJhbWV0
ZXJzLT5tYXAoKS5rZXlzKCkpCisgICAgICAgIG1fcGFyYW1WYWx1ZXNNYXAuYWRkKHBhcmFtZXRl
ck5hbWUsIG1ha2VVbmlxdWU8QXVkaW9GbG9hdEFycmF5PihBdWRpb1V0aWxpdGllczo6cmVuZGVy
UXVhbnR1bVNpemUpKTsKK30KKwogdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpzZXRQcm9jZXNzb3Io
UmVmUHRyPEF1ZGlvV29ya2xldFByb2Nlc3Nvcj4mJiBwcm9jZXNzb3IpCiB7CiAgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Byb2Nlc3Nv
ckxvY2spOwotICAgIG1fcHJvY2Vzc29yID0gV1RGTW92ZShwcm9jZXNzb3IpOworICAgIGlmIChw
cm9jZXNzb3IpIHsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Byb2Nlc3NMb2Nr
KTsKKyAgICAgICAgbV9wcm9jZXNzb3IgPSBXVEZNb3ZlKHByb2Nlc3Nvcik7CisgICAgfSBlbHNl
CisgICAgICAgIGZpcmVQcm9jZXNzb3JFcnJvck9uTWFpblRocmVhZChQcm9jZXNzb3JFcnJvcjo6
Q29uc3RydWN0b3JFcnJvcik7CiB9CiAKIHZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6cHJvY2Vzcyhz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwot
ICAgIFVOVVNFRF9QQVJBTShmcmFtZXNUb1Byb2Nlc3MpOwogCi0gICAgLy8gRklYTUU6IERvIGFj
dHVhbCBwcm9jZXNzaW5nIHZpYSBtX3Byb2Nlc3Nvci4KKyAgICBhdXRvIGxvY2tlciA9IHRyeUhv
bGRMb2NrKG1fcHJvY2Vzc0xvY2spOworICAgIGlmICghbG9ja2VyIHx8ICFtX3Byb2Nlc3Nvcikg
eworICAgICAgICAvLyBXZSdyZSBub3QgcmVhZHkgeWV0IG9yIHdlIGFyZSBnZXR0aW5nIGRlc3Ry
b3llZC4gSW4gdGhpcyBjYXNlLCB3ZSBvdXRwdXQgc2lsZW5jZS4KKyAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG51bWJlck9mT3V0cHV0cygpOyArK2kpCisgICAgICAgICAgICBvdXRw
dXQoaSktPmJ1cygpLT56ZXJvKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBJ
ZiB0aGUgaW5wdXQgaXMgbm90IGNvbm5lY3RlZCwgcGFzcyBudWxscHRyIHRvIHRoZSBwcm9jZXNz
b3IuCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mSW5wdXRzKCk7ICsraSkK
KyAgICAgICAgbV9pbnB1dHNbaV0gPSBpbnB1dChpKS0+aXNDb25uZWN0ZWQoKSA/IGlucHV0KGkp
LT5idXMoKSA6IG51bGxwdHI7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9m
T3V0cHV0cygpOyArK2kpCi0gICAgICAgIG91dHB1dChpKS0+YnVzKCktPnplcm8oKTsKKyAgICAg
ICAgbV9vdXRwdXRzW2ldID0gKm91dHB1dChpKS0+YnVzKCk7CisKKyAgICBmb3IgKGF1dG8mIGF1
ZGlvUGFyYW0gOiBtX3BhcmFtZXRlcnMtPm1hcCgpLnZhbHVlcygpKSB7CisgICAgICAgIGF1dG8q
IHBhcmFtVmFsdWVzID0gbV9wYXJhbVZhbHVlc01hcC5nZXQoYXVkaW9QYXJhbS0+bmFtZSgpKTsK
KyAgICAgICAgQVNTRVJUKHBhcmFtVmFsdWVzKTsKKyAgICAgICAgaWYgKGF1ZGlvUGFyYW0tPmhh
c1NhbXBsZUFjY3VyYXRlVmFsdWVzKCkgJiYgYXVkaW9QYXJhbS0+YXV0b21hdGlvblJhdGUoKSA9
PSBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpCisgICAgICAgICAgICBhdWRpb1BhcmFtLT5jYWxjdWxh
dGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyhwYXJhbVZhbHVlcy0+ZGF0YSgpLCBmcmFtZXNUb1Byb2Nl
c3MpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzdGQ6OmZpbGwocGFyYW1WYWx1ZXMtPmRh
dGEoKSwgcGFyYW1WYWx1ZXMtPmRhdGEoKSArIGZyYW1lc1RvUHJvY2VzcywgYXVkaW9QYXJhbS0+
ZmluYWxWYWx1ZSgpKTsKKyAgICB9CisKKyAgICBib29sIHRocmV3RXhjZXB0aW9uID0gZmFsc2U7
CisgICAgaWYgKCFtX3Byb2Nlc3Nvci0+cHJvY2VzcyhtX2lucHV0cywgbV9vdXRwdXRzLCBtX3Bh
cmFtVmFsdWVzTWFwLCB0aHJld0V4Y2VwdGlvbikpCisgICAgICAgIGRpZEZpbmlzaFByb2Nlc3Np
bmdPblJlbmRlcmluZ1RocmVhZCh0aHJld0V4Y2VwdGlvbik7Cit9CisKK3ZvaWQgQXVkaW9Xb3Jr
bGV0Tm9kZTo6ZGlkRmluaXNoUHJvY2Vzc2luZ09uUmVuZGVyaW5nVGhyZWFkKGJvb2wgdGhyZXdF
eGNlcHRpb24pCit7CisgICAgaWYgKHRocmV3RXhjZXB0aW9uKQorICAgICAgICBmaXJlUHJvY2Vz
c29yRXJyb3JPbk1haW5UaHJlYWQoUHJvY2Vzc29yRXJyb3I6OlByb2Nlc3NFcnJvcik7CisKKyAg
ICBtX3Byb2Nlc3NvciA9IG51bGxwdHI7CisgICAgbV90YWlsVGltZSA9IDA7CisgICAgY29udGV4
dCgpLm5vdGlmeU5vZGVGaW5pc2hlZFByb2Nlc3NpbmcodGhpcyk7Cit9CisKK3ZvaWQgQXVkaW9X
b3JrbGV0Tm9kZTo6dXBkYXRlUHVsbFN0YXR1cygpCit7CisgICAgQVNTRVJUKGNvbnRleHQoKS5p
c0dyYXBoT3duZXIoKSk7CisKKyAgICBib29sIGhhc0Nvbm5lY3RlZE91dHB1dCA9IGZhbHNlOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZk91dHB1dHMoKTsgKytpKSB7Cisg
ICAgICAgIGlmIChvdXRwdXQoaSktPmlzQ29ubmVjdGVkKCkpIHsKKyAgICAgICAgICAgIGhhc0Nv
bm5lY3RlZE91dHB1dCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
IH0KKworICAgIC8vIElmIG5vIG91dHB1dCBpcyBjb25uZWN0ZWQsIGFkZCB0aGUgbm9kZSB0byB0
aGUgYXV0b21hdGljIHB1bGwgbGlzdC4KKyAgICAvLyBPdGhlcndpc2UsIHJlbW92ZSBpdCBvdXQg
b2YgdGhlIGxpc3QuCisgICAgaWYgKCFoYXNDb25uZWN0ZWRPdXRwdXQpCisgICAgICAgIGNvbnRl
eHQoKS5hZGRBdXRvbWF0aWNQdWxsTm9kZSgqdGhpcyk7CisgICAgZWxzZQorICAgICAgICBjb250
ZXh0KCkucmVtb3ZlQXV0b21hdGljUHVsbE5vZGUoKnRoaXMpOworfQorCit2b2lkIEF1ZGlvV29y
a2xldE5vZGU6OmNoZWNrTnVtYmVyT2ZDaGFubmVsc0ZvcklucHV0KEF1ZGlvTm9kZUlucHV0KiBp
bnB1dCkKK3sKKyAgICBBU1NFUlQoY29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSAmJiBjb250ZXh0
KCkuaXNHcmFwaE93bmVyKCkpOworCisgICAgLy8gRHluYW1pYyBjaGFubmVsIGNvdW50IG9ubHkg
d29ya3Mgd2hlbiB0aGUgbm9kZSBoYXMgMSBpbnB1dCwgMSBvdXRwdXQgYW5kIHxvdXRwdXRDaGFu
bmVsQ291bnR8CisgICAgLy8gaXMgbm90IGdpdmVuLiBPdGhlcndpc2UgdGhlIGNoYW5uZWwgY291
bnQocykgc2hvdWxkIG5vdCBiZSBkeW5hbWljYWxseSBjaGFuZ2VkLgorICAgIGlmIChudW1iZXJP
ZklucHV0cygpID09IDEgJiYgbnVtYmVyT2ZPdXRwdXRzKCkgPT0gMSAmJiAhbV93YXNPdXRwdXRD
aGFubmVsQ291bnRHaXZlbikgeworICAgICAgICBBU1NFUlQoaW5wdXQgPT0gdGhpcy0+aW5wdXQo
MCkpOworICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMgPSBpbnB1dC0+bnVt
YmVyT2ZDaGFubmVscygpOworICAgICAgICBpZiAobnVtYmVyT2ZJbnB1dENoYW5uZWxzICE9IG91
dHB1dCgwKS0+bnVtYmVyT2ZDaGFubmVscygpKSB7CisgICAgICAgICAgICAvLyBUaGlzIHdpbGwg
cHJvcGFnYXRlIHRoZSBjaGFubmVsIGNvdW50IHRvIGFueSBub2RlcyBjb25uZWN0ZWQgZnVydGhl
ciBkb3duc3RyZWFtIGluIHRoZSBncmFwaC4KKyAgICAgICAgICAgIG91dHB1dCgwKS0+c2V0TnVt
YmVyT2ZDaGFubmVscyhudW1iZXJPZklucHV0Q2hhbm5lbHMpOworICAgICAgICB9CisgICAgfQor
CisgICAgLy8gVXBkYXRlIHRoZSBpbnB1dCdzIGludGVybmFsIGJ1cyBpZiBuZWVkZWQuCisgICAg
QXVkaW9Ob2RlOjpjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dChpbnB1dCk7CisgICAgdXBk
YXRlUHVsbFN0YXR1cygpOworfQorCit2b2lkIEF1ZGlvV29ya2xldE5vZGU6OmZpcmVQcm9jZXNz
b3JFcnJvck9uTWFpblRocmVhZChQcm9jZXNzb3JFcnJvciBlcnJvcikKK3sKKyAgICBBU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZXJyb3JdKCkgbXV0YWJsZSB7CisgICAgICAgIFN0cmlu
ZyBlcnJvck1lc3NhZ2U7CisgICAgICAgIHN3aXRjaCAoZXJyb3IpIHsKKyAgICAgICAgY2FzZSBQ
cm9jZXNzb3JFcnJvcjo6Q29uc3RydWN0b3JFcnJvcjoKKyAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9ICJBbiBlcnJvciB3YXMgdGhyb3duIGZyb20gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIGNvbnN0
cnVjdG9yIl9zOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUHJvY2Vzc29yRXJy
b3I6OlByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJBbiBlcnJvciB3
YXMgdGhyb3duIGZyb20gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpwcm9jZXNzKCkgbWV0aG9kIl9z
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcXVldWVUYXNrVG9EaXNw
YXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIEVycm9yRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkucHJvY2Vzc29yZXJyb3JFdmVudCwgZXJyb3JNZXNzYWdlLCB7IH0s
IDAsIDAsIHsgfSkpOworICAgIH0pOworfQorCitjb25zdCBjaGFyKiBBdWRpb1dvcmtsZXROb2Rl
OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIkF1ZGlvV29ya2xl
dE5vZGUiOworfQorCitib29sIEF1ZGlvV29ya2xldE5vZGU6OnZpcnR1YWxIYXNQZW5kaW5nQWN0
aXZpdHkoKSBjb25zdAoreworICAgIHJldHVybiAhY29udGV4dCgpLmlzQ2xvc2VkKCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmgKaW5kZXggOTVjN2Y2NzUwZjA1ZjEyZjM5NzYyNDVk
YWRiNzEzMWYxMTQ4NTQ5Ny4uZjI0OTdmOTEwYTBhZWU3OWM0OTc0MzQ5OThlMDUzMDdiMWM4YzZl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKKyNp
bmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJBdWRpb05vZGUuaCIKICNpbmNs
dWRlIDx3dGYvTG9jay5oPgogCkBAIC0zOSw5ICs0MCwxMyBAQCBjbGFzcyBBdWRpb1BhcmFtTWFw
OwogY2xhc3MgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOwogY2xhc3MgTWVzc2FnZVBvcnQ7CiAKK3N0
cnVjdCBBdWRpb1BhcmFtRGVzY3JpcHRvcjsKIHN0cnVjdCBBdWRpb1dvcmtsZXROb2RlT3B0aW9u
czsKIAotY2xhc3MgQXVkaW9Xb3JrbGV0Tm9kZSA6IHB1YmxpYyBBdWRpb05vZGUgewordGVtcGxh
dGU8dHlwZW5hbWU+IGNsYXNzIEF1ZGlvQXJyYXk7Cit0eXBlZGVmIEF1ZGlvQXJyYXk8ZmxvYXQ+
IEF1ZGlvRmxvYXRBcnJheTsKKworY2xhc3MgQXVkaW9Xb3JrbGV0Tm9kZSA6IHB1YmxpYyBBdWRp
b05vZGUsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoQXVkaW9Xb3JrbGV0Tm9kZSk7CiBwdWJsaWM6CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJl
ZjxBdWRpb1dvcmtsZXROb2RlPj4gY3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBCYXNlQXVk
aW9Db250ZXh0JiwgU3RyaW5nJiYgbmFtZSwgQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMmJik7CkBA
IC01MSwyMSArNTYsNDEgQEAgcHVibGljOgogICAgIE1lc3NhZ2VQb3J0JiBwb3J0KCkgeyByZXR1
cm4gbV9wb3J0LmdldCgpOyB9CiAKICAgICB2b2lkIHNldFByb2Nlc3NvcihSZWZQdHI8QXVkaW9X
b3JrbGV0UHJvY2Vzc29yPiYmKTsKKyAgICB2b2lkIGluaXRpYWxpemVBdWRpb1BhcmFtZXRlcnMo
Y29uc3QgVmVjdG9yPEF1ZGlvUGFyYW1EZXNjcmlwdG9yPiYsIGNvbnN0IE9wdGlvbmFsPFZlY3Rv
cjxXVEY6OktleVZhbHVlUGFpcjxTdHJpbmcsIGRvdWJsZT4+PiYgcGFyYW1WYWx1ZXMpOwogCiBw
cml2YXRlOgogICAgIEF1ZGlvV29ya2xldE5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIGNvbnN0IFN0
cmluZyYgbmFtZSwgQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMmJiwgUmVmPE1lc3NhZ2VQb3J0PiYm
KTsKIAorICAgIGVudW0gY2xhc3MgUHJvY2Vzc29yRXJyb3IgeyBDb25zdHJ1Y3RvckVycm9yLCBQ
cm9jZXNzRXJyb3IgfTsKKyAgICB2b2lkIGZpcmVQcm9jZXNzb3JFcnJvck9uTWFpblRocmVhZChQ
cm9jZXNzb3JFcnJvcik7CisgICAgdm9pZCBkaWRGaW5pc2hQcm9jZXNzaW5nT25SZW5kZXJpbmdU
aHJlYWQoYm9vbCB0aHJld0V4Y2VwdGlvbik7CisKICAgICAvLyBBdWRpb05vZGUuCiAgICAgdm9p
ZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIGZpbmFsOwotICAgIGRvdWJsZSB0YWls
VGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0gLy8gRklYTUU6IFJldHVybiBhIGNvcnJl
Y3QgdmFsdWUuCisgICAgZG91YmxlIHRhaWxUaW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90
YWlsVGltZTsgfQogICAgIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IDA7IH0KICAgICBib29sIHJlcXVpcmVzVGFpbFByb2Nlc3NpbmcoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CisgICAgdm9pZCBjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dChBdWRp
b05vZGVJbnB1dCopIGZpbmFsOworICAgIHZvaWQgdXBkYXRlUHVsbFN0YXR1cygpIGZpbmFsOwor
CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0LgorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHko
KSBjb25zdCBmaW5hbDsKIAogICAgIFN0cmluZyBtX25hbWU7CiAgICAgUmVmPEF1ZGlvUGFyYW1N
YXA+IG1fcGFyYW1ldGVyczsKICAgICBSZWY8TWVzc2FnZVBvcnQ+IG1fcG9ydDsKLSAgICBMb2Nr
IG1fcHJvY2Vzc29yTG9jazsKKyAgICBMb2NrIG1fcHJvY2Vzc0xvY2s7CiAgICAgUmVmUHRyPEF1
ZGlvV29ya2xldFByb2Nlc3Nvcj4gbV9wcm9jZXNzb3I7IC8vIFNob3VsZCBvbmx5IGJlIHVzZWQg
b24gdGhlIHJlbmRlcmluZyB0aHJlYWQuCisgICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVl
X3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiBtX3BhcmFtVmFsdWVzTWFwOworCisgICAgLy8gS2VlcHMg
dGhlIHJlZmVyZW5jZSBvZiBBdWRpb0J1cyBvYmplY3RzIGZyb20gQXVkaW9Ob2RlSW5wdXQgYW5k
IEF1ZGlvTm9kZU91dHB1dCBpbiBvcmRlcgorICAgIC8vIHRvIHBhc3MgdGhlbSB0byBBdWRpb1dv
cmtsZXRQcm9jZXNzb3IuCisgICAgVmVjdG9yPFJlZlB0cjxBdWRpb0J1cz4+IG1faW5wdXRzOwor
ICAgIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiBtX291dHB1dHM7CisKKyAgICBkb3VibGUgbV90YWls
VGltZSB7IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSB9OworICAgIGJv
b2wgbV93YXNPdXRwdXRDaGFubmVsQ291bnRHaXZlbiB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldE5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmlkbAppbmRleCA3MTE1YWZjZTAzOWM2ZTVlMjY3ODdjMTNkZjFj
ZjA3ZThkNmZmMGY4Li45MjE1Yzk4ZTFkM2Y2ZDEwZTUxZjhiODEzNjlmMmY1NjMxY2MxNjM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5v
ZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
Tm9kZS5pZGwKQEAgLTI3LDYgKzI3LDcgQEAKICAqLwogCiBbCisgICAgQWN0aXZlRE9NT2JqZWN0
LAogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKICAgICBFbmFibGVkQnlTZXR0aW5nPUF1ZGlv
V29ya2xldCwKICAgICBFeHBvc2VkPVdpbmRvdywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAppbmRleCA0NWE5
NzhlODk3ODJjMTM4Zjk1MjNlMmE4OWY4NGE3NzFlOGRmZDVhLi44ZGQwMTUzMDg3NjU1YzhhZGU5
ODdiMzM1Yzc4NGE0OGE0MTZmNTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCkBAIC0zMSwxMiArMzEs
ODAgQEAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogI2luY2x1ZGUgIkF1ZGlvV29ya2xldFByb2Nl
c3Nvci5oIgogCisjaW5jbHVkZSAiQXVkaW9CdXMuaCIKKyNpbmNsdWRlICJBdWRpb0NoYW5uZWwu
aCIKICNpbmNsdWRlICJBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkF1ZGlv
V29ya2xldFByb2Nlc3NvckNvbnN0cnVjdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJKU0NhbGxiYWNr
RGF0YS5oIgorI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJN
ZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTWFwLmg+CisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNUeXBlZEFycmF5cy5oPgorI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitzdGF0
aWMgSlNGbG9hdDMyQXJyYXkqIGNvbnN0cnVjdEpTRmxvYXQzMkFycmF5KEpTR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGxlbmd0aCwgY29uc3QgZmxvYXQqIGRhdGEgPSBudWxs
cHRyKQoreworICAgIGF1dG8qIGpzQXJyYXkgPSBKU0Zsb2F0MzJBcnJheTo6Y3JlYXRlKCZnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC50eXBlZEFycmF5U3RydWN0dXJlKFR5cGVGbG9hdDMyKSwg
bGVuZ3RoKTsKKyAgICBpZiAoZGF0YSkKKyAgICAgICAgbWVtY3B5KGpzQXJyYXktPnR5cGVkVmVj
dG9yKCksIGRhdGEsIHNpemVvZihmbG9hdCkgKiBsZW5ndGgpOworICAgIHJldHVybiBqc0FycmF5
OworfQorCitzdGF0aWMgSlNNYXAqIGNvbnN0cnVjdEpTTWFwKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXApCit7CisgICAgYXV0byogbWFwID0gSlNN
YXA6OmNyZWF0ZSgmZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0Lm1hcFN0cnVjdHVyZSgp
KTsKKyAgICBmb3IgKGF1dG8mIHBhaXIgOiBwYXJhbVZhbHVlc01hcCkKKyAgICAgICAgbWFwLT5z
ZXQoJmdsb2JhbE9iamVjdCwganNTdHJpbmdXaXRoQ2FjaGUodm0sIHBhaXIua2V5KSwgY29uc3Ry
dWN0SlNGbG9hdDMyQXJyYXkoZ2xvYmFsT2JqZWN0LCBwYWlyLnZhbHVlLT5zaXplKCksIHBhaXIu
dmFsdWUtPmRhdGEoKSkpOworICAgIHJldHVybiBtYXA7Cit9CisKK2VudW0gY2xhc3MgU2hvdWxk
UG9wdWxhdGVXaXRoQnVzRGF0YSA6IGJvb2wgeyBObywgWWVzIH07CitzdGF0aWMgSlNBcnJheSog
Y29uc3RydWN0RnJvemVuSlNBcnJheShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIEF1ZGlvQnVzKiBidXMsIFNob3VsZFBvcHVsYXRl
V2l0aEJ1c0RhdGEgc2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YSkKK3sKKyAgICB1bnNpZ25lZCBu
dW1iZXJPZkNoYW5uZWxzID0gYnVzID8gYnVzLT5udW1iZXJPZkNoYW5uZWxzKCkgOiAwOworICAg
IGF1dG8qIGNoYW5uZWxzRGF0YSA9IEpTQXJyYXk6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0Lm9y
aWdpbmFsQXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGUoQXJyYXlXaXRoQ29udGlndW91cyks
IG51bWJlck9mQ2hhbm5lbHMpOworICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCBudW1iZXJP
ZkNoYW5uZWxzOyArK2opIHsKKyAgICAgICAgYXV0byogY2hhbm5lbCA9IGJ1cy0+Y2hhbm5lbChq
KTsKKyAgICAgICAgY2hhbm5lbHNEYXRhLT5zZXRJbmRleFF1aWNrbHkodm0sIGosIGNvbnN0cnVj
dEpTRmxvYXQzMkFycmF5KGdsb2JhbE9iamVjdCwgY2hhbm5lbC0+bGVuZ3RoKCksIHNob3VsZFBv
cHVsYXRlV2l0aEJ1c0RhdGEgPT0gU2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YTo6WWVzID8gY2hh
bm5lbC0+ZGF0YSgpIDogbnVsbHB0cikpOworICAgIH0KKyAgICBKU0M6Om9iamVjdENvbnN0cnVj
dG9yRnJlZXplKCZnbG9iYWxPYmplY3QsIGNoYW5uZWxzRGF0YSk7CisgICAgRVhDRVBUSU9OX0FT
U0VSVF9VTlVTRUQoc2NvcGUsICFzY29wZS5leGNlcHRpb24oKSk7CisgICAgcmV0dXJuIGNoYW5u
ZWxzRGF0YTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdGF0aWMgSlNBcnJheSogY29u
c3RydWN0RnJvemVuSlNBcnJheShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qs
IGNvbnN0IFZlY3RvcjxUPiYgYnVzZXMsIFNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGEgc2hvdWxk
UG9wdWxhdGVXaXRoQnVzRGF0YSkKK3sKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CisgICAgYXV0byogYXJyYXkgPSBKU0FycmF5OjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdC5vcmlnaW5hbEFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlKEFycmF5V2l0aENvbnRp
Z3VvdXMpLCBidXNlcy5zaXplKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBidXNl
cy5zaXplKCk7ICsraSkKKyAgICAgICAgYXJyYXktPnNldEluZGV4UXVpY2tseSh2bSwgaSwgY29u
c3RydWN0RnJvemVuSlNBcnJheSh2bSwgZ2xvYmFsT2JqZWN0LCBzY29wZSwgV1RGOjpnZXRQdHIo
YnVzZXNbaV0pLCBzaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhKSk7CisgICAgSlNDOjpvYmplY3RD
b25zdHJ1Y3RvckZyZWV6ZSgmZ2xvYmFsT2JqZWN0LCBhcnJheSk7CisgICAgRVhDRVBUSU9OX0FT
U0VSVCghc2NvcGUuZXhjZXB0aW9uKCkpOworICAgIHJldHVybiBhcnJheTsKK30KKworc3RhdGlj
IHZvaWQgY29weURhdGFGcm9tSlNBcnJheVRvQnVzZXMoSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCwgSlNBcnJheSYganNBcnJheSwgVmVjdG9yPFJlZjxBdWRpb0J1cz4+JiBidXNlcykKK3sK
KyAgICAvLyBXZSBjYW4gc2FmZWx5IG1ha2UgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIHN0cnVjdHVy
ZSBvZiB0aGUgSlNBcnJheSBzaW5jZSB3ZSB1c2UgZnJvemVuIGFycmF5cy4KKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgYnVzZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYXV0byYgYnVz
ID0gYnVzZXNbaV07CisgICAgICAgIGF1dG8qIGNoYW5uZWxzQXJyYXkgPSBqc0Nhc3Q8SlNBcnJh
eSo+KGpzQXJyYXkuZ2V0SW5kZXgoJmdsb2JhbE9iamVjdCwgaSkpOworICAgICAgICBmb3IgKHVu
c2lnbmVkIGogPSAwOyBqIDwgYnVzLT5udW1iZXJPZkNoYW5uZWxzKCk7ICsraikgeworICAgICAg
ICAgICAgYXV0byogY2hhbm5lbCA9IGJ1cy0+Y2hhbm5lbChqKTsKKyAgICAgICAgICAgIGF1dG8q
IGpzQ2hhbm5lbERhdGEgPSBqc0Nhc3Q8SlNGbG9hdDMyQXJyYXkqPihjaGFubmVsc0FycmF5LT5n
ZXRJbmRleCgmZ2xvYmFsT2JqZWN0LCBqKSk7CisgICAgICAgICAgICBpZiAoanNDaGFubmVsRGF0
YS0+bGVuZ3RoKCkgPT0gY2hhbm5lbC0+bGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgbWVtY3B5
KGNoYW5uZWwtPm11dGFibGVEYXRhKCksIGpzQ2hhbm5lbERhdGEtPnR5cGVkVmVjdG9yKCksIHNp
emVvZihmbG9hdCkgKiBjaGFubmVsLT5sZW5ndGgoKSk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgY2hhbm5lbC0+emVybygpOworICAgICAgICB9CisgICAgfQorfQorCiBFeGNl
cHRpb25PcjxSZWY8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yPj4gQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBhdXRvIGNv
bnN0cnVjdGlvbkRhdGEgPSBkb3duY2FzdDxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4
dCkudGFrZVBlbmRpbmdQcm9jZXNzb3JDb25zdHJ1Y3Rpb25EYXRhKCk7CkBAIC01NSw2ICsxMjMs
NDIgQEAgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3IoY29uc3Qg
QXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWMKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKIH0KIAorYm9vbCBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgVmVjdG9y
PFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0
cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+
PiYgcGFyYW1WYWx1ZXNNYXAsIGJvb2wmIHRocmV3RXhjZXB0aW9uKQoreworICAgIEFTU0VSVCht
X3Byb2Nlc3NDYWxsYmFjayk7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1fcHJvY2Vzc0Nh
bGxiYWNrLT5nbG9iYWxPYmplY3QoKTsKKyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgQVNTRVJUKGdsb2JhbE9iamVjdC5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKKworICAgIGF1dG8mIHZtID0gZ2xvYmFs
T2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOworCisgICAgTWFya2VkQXJn
dW1lbnRCdWZmZXIgYXJnczsKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNvbnNpZGVyIGNhY2hp
bmcgdGhlIEpTQXJyYXlzICYgSlNNYXAgYW5kIG9ubHkgdXBkYXRlIHRoZWlyIGl0ZW1zCisgICAg
Ly8gZXZlcnkgdGltZSBwcm9jZXNzKCkgaXMgY2FsbGVkLCBmb3IgcGVyZm9ybWFuY2UgcmVhc29u
cy4KKyAgICBhcmdzLmFwcGVuZChjb25zdHJ1Y3RGcm96ZW5KU0FycmF5KHZtLCBnbG9iYWxPYmpl
Y3QsIGlucHV0cywgU2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YTo6WWVzKSk7CisgICAgYXV0byog
b3VwdXRKU0FycmF5ID0gY29uc3RydWN0RnJvemVuSlNBcnJheSh2bSwgZ2xvYmFsT2JqZWN0LCBv
dXRwdXRzLCBTaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhOjpObyk7CisgICAgYXJncy5hcHBlbmQo
b3VwdXRKU0FycmF5KTsKKyAgICBhcmdzLmFwcGVuZChjb25zdHJ1Y3RKU01hcCh2bSwgZ2xvYmFs
T2JqZWN0LCBwYXJhbVZhbHVlc01hcCkpOworCisgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+
IHJldHVybmVkRXhjZXB0aW9uOworICAgIGF1dG8gcmVzdWx0ID0gbV9wcm9jZXNzQ2FsbGJhY2st
Pmludm9rZUNhbGxiYWNrKGpzVW5kZWZpbmVkKCksIGFyZ3MsIEpTQ2FsbGJhY2tEYXRhOjpDYWxs
YmFja1R5cGU6Ok9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInByb2Nlc3MiKSwg
cmV0dXJuZWRFeGNlcHRpb24pOworICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbikgeworICAgICAg
ICByZXBvcnRFeGNlcHRpb24oJmdsb2JhbE9iamVjdCwgcmV0dXJuZWRFeGNlcHRpb24pOworICAg
ICAgICB0aHJld0V4Y2VwdGlvbiA9IHRydWU7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBjb3B5RGF0YUZyb21KU0FycmF5VG9CdXNlcyhnbG9iYWxPYmplY3QsICpvdXB1dEpT
QXJyYXksIG91dHB1dHMpOworCisgICAgcmV0dXJuIHJlc3VsdC50b0Jvb2xlYW4oJmdsb2JhbE9i
amVjdCk7Cit9CisKK3ZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpzZXRQcm9jZXNzQ2FsbGJh
Y2soc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJhY2tEYXRhU3Ryb25nPiYmIHByb2Nlc3NDYWxsYmFj
aykKK3sKKyAgICBtX3Byb2Nlc3NDYWxsYmFjayA9IFdURk1vdmUocHJvY2Vzc0NhbGxiYWNrKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJ
TykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldFByb2Nlc3Nvci5oCmluZGV4IDVmZDNhOWVkYjMwNDE2YTExYjQ0NWFiNTYzNDIzYmQzNzJj
OTI0NmUuLjdiMzhmZjIxNWMxNGE2Yzk1MWNmYTc5NGYyOGY3OTIwNjE2OTYzYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9j
ZXNzb3IuaApAQCAtMjksNiArMjksNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoV0VC
X0FVRElPKQorI2luY2x1ZGUgIkF1ZGlvQXJyYXkuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtMzYs
NyArMzcsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEF1ZGlvQnVzOwogY2xh
c3MgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWN0aW9uRGF0YTsKK2NsYXNzIEpTQ2FsbGJh
Y2tEYXRhU3Ryb25nOwogY2xhc3MgTWVzc2FnZVBvcnQ7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogCkBAIC00OCwxMSArNTEsMTYgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYg
bmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgIE1lc3NhZ2VQb3J0JiBwb3J0KCkg
eyByZXR1cm4gbV9wb3J0LmdldCgpOyB9CiAKKyAgICBib29sIHByb2Nlc3MoY29uc3QgVmVjdG9y
PFJlZlB0cjxBdWRpb0J1cz4+JiBpbnB1dHMsIFZlY3RvcjxSZWY8QXVkaW9CdXM+PiYgb3V0cHV0
cywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+
PiYgcGFyYW1WYWx1ZXNNYXAsIGJvb2wmIHRocmV3RXhjZXB0aW9uKTsKKworICAgIHZvaWQgc2V0
UHJvY2Vzc0NhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxKU0NhbGxiYWNrRGF0YVN0cm9uZz4mJik7
CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yKGNvbnN0IEF1
ZGlvV29ya2xldFByb2Nlc3NvckNvbnN0cnVjdGlvbkRhdGEmKTsKIAogICAgIFN0cmluZyBtX25h
bWU7CiAgICAgUmVmPE1lc3NhZ2VQb3J0PiBtX3BvcnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEpT
Q2FsbGJhY2tEYXRhU3Ryb25nPiBtX3Byb2Nlc3NDYWxsYmFjazsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2Fs
bGJhY2tEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5o
CmluZGV4IDNlYjNjMWI0OGY2OWQyMzdhYzk1MDM4MTMyOTA4N2I4ZmEzOGE1YTguLmM1ZTg2ZTdl
NmY2NTA2MWVhNDVjZjE0OWZiMTkyYjk4YjJjNjM3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaApAQCAtNDMsNiArNDMsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAvLyAoYW5kIHN5bmNocm9uaXphdGlvbiB3b3VsZCBiZSBzbG93KS4KIAogY2xhc3Mg
SlNDYWxsYmFja0RhdGEgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIGVudW0gY2xhc3MgQ2FsbGJhY2tUeXBlIHsgRnVuY3Rpb24sIE9iamVjdCwgRnVuY3Rpb25P
ck9iamVjdCB9OwogCkBAIC03Miw3ICs3Myw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEpTQ2FsbGJh
Y2tEYXRhU3Ryb25nIDogcHVibGljIEpTQ2FsbGJhY2tEYXRhIHsKIHB1YmxpYzoKLSAgICBKU0Nh
bGxiYWNrRGF0YVN0cm9uZyhKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgdm9pZCopCisgICAgSlNDYWxsYmFja0RhdGFTdHJvbmcoSlNDOjpK
U09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQq
ID0gbnVsbHB0cikKICAgICAgICAgOiBKU0NhbGxiYWNrRGF0YShnbG9iYWxPYmplY3QpCiAgICAg
ICAgICwgbV9jYWxsYmFjayhnbG9iYWxPYmplY3QtPnZtKCksIGNhbGxiYWNrKQogICAgIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FcnJvckV2ZW50LmNwcAppbmRleCBhMTRhNDIxZjFhNWFlN2UzNWMxNTEzNTU0MjEy
ZTc0YjBkYzU4YTQ2Li45YTdiZjQ5OGU5ZWMwMjVhOTNiZmViMTNjN2IyODQ5NmI4NGIyZjZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCkBAIC01Myw4ICs1Myw4IEBAIEVycm9yRXZlbnQ6
OkVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6
ZXIsIElzVHJ1c3RlCiB7CiB9CiAKLUVycm9yRXZlbnQ6OkVycm9yRXZlbnQoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1
bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gZXJyb3IpCi0g
ICAgOiBFdmVudChldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgQ2FuQnViYmxlOjpObywgSXNDYW5j
ZWxhYmxlOjpZZXMpCitFcnJvckV2ZW50OjpFcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWdu
ZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVu
a25vd24+IGVycm9yKQorICAgIDogRXZlbnQodHlwZSwgQ2FuQnViYmxlOjpObywgSXNDYW5jZWxh
YmxlOjpZZXMpCiAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKICAgICAsIG1fZmlsZU5hbWUoZmls
ZU5hbWUpCiAgICAgLCBtX2xpbmVOdW1iZXIobGluZU51bWJlcikKQEAgLTYzLDYgKzYzLDExIEBA
IEVycm9yRXZlbnQ6OkVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsCiB7CiB9CiAKK0Vycm9yRXZlbnQ6OkVycm9yRXZlbnQo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBs
aW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93
bj4gZXJyb3IpCisgICAgOiBFcnJvckV2ZW50KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBtZXNz
YWdlLCBmaWxlTmFtZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvcikKK3sKK30KKwog
RXJyb3JFdmVudDo6fkVycm9yRXZlbnQoKSA9IGRlZmF1bHQ7CiAKIEV2ZW50SW50ZXJmYWNlIEVy
cm9yRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FcnJvckV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5oCmlu
ZGV4IGRmMTMxZTMxZjZiYzJiNWQ3NTM1YTNmZDU5Mzg0ZGQ4ODJiMmY4NjcuLmM2YzJjNDQ4Yjg2
MzM3Y2IzZTAyYzc5NTcwNzZkNWVjMTM1N2VmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FcnJvckV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaApA
QCAtNDcsNiArNDcsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBF
cnJvckV2ZW50KG1lc3NhZ2UsIGZpbGVOYW1lLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGVy
cm9yKSk7CiAgICAgfQogCisgICAgc3RhdGljIFJlZjxFcnJvckV2ZW50PiBjcmVhdGUoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZp
bGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6
U3Ryb25nPEpTQzo6VW5rbm93bj4gZXJyb3IpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBFcnJvckV2ZW50KHR5cGUsIG1lc3NhZ2UsIGZpbGVOYW1lLCBsaW5lTnVtYmVyLCBj
b2x1bW5OdW1iZXIsIGVycm9yKSk7CisgICAgfQorCiAgICAgc3RydWN0IEluaXQgOiBFdmVudElu
aXQgewogICAgICAgICBTdHJpbmcgbWVzc2FnZTsKICAgICAgICAgU3RyaW5nIGZpbGVuYW1lOwpA
QCAtNzYsNiArODEsNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gdHJ5U2VyaWFsaXplRXJyb3IoSlNDOjpKU0dsb2JhbE9iamVjdCYpOwogCiBwcml2YXRlOgor
ICAgIEVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBjb2x1bW5OdW1iZXIsIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gZXJyb3IpOwogICAgIEVy
cm9yRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1
bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6U3Ryb25nPEpT
Qzo6VW5rbm93bj4gZXJyb3IpOwogICAgIEVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNv
bnN0IEluaXQmLCBJc1RydXN0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
TWVzc2FnZVBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAppbmRl
eCA5ZGY4ZmNkMjlkZGMzZjk4ZjEwMjU5NWMwYzNlZmE0NDNlNjg1YWUyLi5iNDE4Mjg1ZGUxZmQw
M2NmMTk4ZjFhMThlNzM1OWU4MWI3ODA2NzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVzc2FnZVBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5j
cHAKQEAgLTMyOCwxOSArMzI4LDE5IEBAIGJvb2wgTWVzc2FnZVBvcnQ6OnZpcnR1YWxIYXNQZW5k
aW5nQWN0aXZpdHkoKSBjb25zdAogCiAgICAgLy8gSWYgd2UncmUgbm90IGluIHRoZSBtaWRkbGUg
b2YgYXNraW5nIHRoZSByZW1vdGUgcG9ydCBhYm91dCBjb2xsZWN0YWJpbGl0eSwgZG8gc28gbm93
LgogICAgIGlmICghbV9pc0Fza2luZ1JlbW90ZUFib3V0R0MpIHsKLSAgICAgICAgUmVmUHRyPFdv
cmtlclRocmVhZD4gd29ya2VyVGhyZWFkOwotICAgICAgICBpZiAoaXM8V29ya2VyR2xvYmFsU2Nv
cGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKQotICAgICAgICAgICAgd29ya2VyVGhyZWFk
ID0gJmRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KS50aHJlYWQoKTsKKyAgICAgICAgUmVmUHRyPFdvcmtlck9yV29ya2xldFRocmVhZD4gd29ya2Vy
T3JXb3JrbGV0VGhyZWFkOworICAgICAgICBpZiAoaXM8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKQorICAgICAgICAgICAgd29ya2VyT3JXb3Jr
bGV0VGhyZWFkID0gZG93bmNhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KCptX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQpLndvcmtlck9yV29ya2xldFRocmVhZCgpOwogCi0gICAgICAgIGNh
bGxPbk1haW5UaHJlYWQoW3JlbW90ZUlkZW50aWZpZXIgPSBtX3JlbW90ZUlkZW50aWZpZXIsIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIoY29uc3RfY2FzdDxNZXNzYWdlUG9ydCo+KHRoaXMpKSwgd29y
a2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXSgpIG11dGFibGUgewotICAgICAgICAg
ICAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLmNoZWNrUmVtb3RlUG9y
dEZvckFjdGl2aXR5KHJlbW90ZUlkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1Ro
aXMpLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gaGFzQWN0aXZp
dHkpIG11dGFibGUgewotICAgICAgICAgICAgICAgIGlmICghd29ya2VyVGhyZWFkKSB7CisgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3JlbW90ZUlkZW50aWZpZXIgPSBtX3JlbW90ZUlkZW50aWZp
ZXIsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoY29uc3RfY2FzdDxNZXNzYWdlUG9ydCo+KHRoaXMp
KSwgd29ya2VyT3JXb3JrbGV0VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJPcldvcmtsZXRUaHJlYWQp
XSgpIG11dGFibGUgeworICAgICAgICAgICAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNp
bmdsZXRvbigpLmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KHJlbW90ZUlkZW50aWZpZXIsIFt3
ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB3b3JrZXJPcldvcmtsZXRUaHJlYWQgPSBXVEZN
b3ZlKHdvcmtlck9yV29ya2xldFRocmVhZCldKGF1dG8gaGFzQWN0aXZpdHkpIG11dGFibGUgewor
ICAgICAgICAgICAgICAgIGlmICghd29ya2VyT3JXb3JrbGV0VGhyZWFkKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlz
LT51cGRhdGVBY3Rpdml0eShoYXNBY3Rpdml0eSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1
bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGhh
c0FjdGl2aXR5XShhdXRvJikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgd29ya2VyT3JXb3Jr
bGV0VGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFt3ZWFrVGhpcyA9IFdURk1vdmUo
d2Vha1RoaXMpLCBoYXNBY3Rpdml0eV0oYXV0byYpIG11dGFibGUgewogICAgICAgICAgICAgICAg
ICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+dXBk
YXRlQWN0aXZpdHkoaGFzQWN0aXZpdHkpOwogICAgICAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxv
b3A6OmRlZmF1bHRNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE0YmI0NTY3ODdkMjhkNmMxOGJiZGFlNmFjMzlj
YzU3NDlkOWY4MDAuLmY5ZWI2NDdiMDM3NmU0ZjZiZjZmYmJhNWY2ZDBlMGIyYWVhZmU1ZjQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMC0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFVzZSBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgdG8gcHJvY2VzcyBh
dWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3
NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldCBhbmQgU2FhbSBCYXJhdGku
CisKKyAgICAgICAgVW5za2lwIGFsbCBBdWRpb1dvcmtsZXQgdGVzdHMgbm93IHRoYXQgdGhleSBh
cmUgbm8gbG9uZ2VyIHRpbWluZyBvdXQuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgor
CiAyMDIwLTEwLTA5ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbbWFjT1NdIEFkZCBlZGl0YWJpbGl0eSB0byBpbnB1dCB0eXBlPW1vbnRoCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA2ZGM5NDM5ZDY2ZTFjYTdkOTg4NjJhZjc4Zjc4ZTky
ZDA4MTQwZmM5Li5lZDUzMjdiMWMzNmQzMDA1OWJhYmRhOTU4OWU5YzkxOTI3MWRiYzE3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMC0xMC0wOSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBBdWRpb1dvcmts
ZXRQcm9jZXNzb3IgdG8gcHJvY2VzcyBhdWRpbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldCBhbmQgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgUmViYXNlbGluZSBXUFQgdGVzdHMg
bm93IHRoYXQgbW9yZSBjaGVja3MgYXJlIHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9idWZmZXJzb3VyY2Vub2Rl
LWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29y
a2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1hdXRvbWF0aWMtcHVsbC5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1kaXNjb25u
ZWN0ZWQtaW5wdXQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1
ZGlvd29ya2xldG5vZGUtb25lcnJvci5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1p
bnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vdXRwdXQtY2hhbm5lbC1jb3VudC5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXBy
b2Nlc3MtZnJvemVuLWFycmF5Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVy
ZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy16ZXJvLW91dHB1dHMuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVk
aW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1w
cm9taXNlcy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vz
cy1nZXR0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nl
c3Nvci1jb25zdHJ1Y3Rpb24tcG9ydC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1p
bnRlcmZhY2Uvc2ltcGxlLWlucHV0LW91dHB1dC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNoYW5uZWxt
ZXJnZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFw
aS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9jb3JzLWNoZWNrLmh0
dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9u
by1jb3JzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0xMC0wOSAgQW50b2luZSBRdWludCAg
PGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBDU1MgdHJhbnNmb3JtIGNvbXB1dGVkIHN0
eWxlIHNob3VsZCBub3QgcmVmbGVjdCBpbmRpdmlkdWFsIHRyYW5zZm9ybSBwcm9wZXJ0aWVzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCA4MTFjMjk4ZjUzZmZkMmNjNDkwZDBjZDQ0OTE1NmRiYmQ3ODUw
YjE3Li5hODkxYTY2Y2E0MjYxNjY1NWU5NmRmZDk4MGNlOTcxMGNiOWE5ZGVjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTMyMCwxOSArMzIwLDE0IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudC1sb29wcy9mdWxseV9hY3RpCiAj
IFNraXAgV1BUIHdlYmF1ZGlvIHRlc3RzIHRoYXQgYXJlIHRpbWluZyBvdXQuCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhc3Ry
ZWFtYXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9tZWRpYXN0cmVhbWF1ZGlvc291cmNlbm9kZS1y
b3V0aW5nLmh0bWwgWyBTa2lwIF0KIAotIyBUaGVzZSB3ZWJhdWRpbyB0ZXN0cyBhcmUgdGltaW5n
IG91dCBkdWUgdG8gbGFjayBmb3Igc3VwcG9ydCBmb3IgQXVkaW9Xb3JrbGV0LgorIyBUaGlzIHRl
c3QgaXMgdGltaW5nIG91dCBkdWUgdG8gbGFjayBvZiBzdXBwb3J0IGZvciBTaGFyZWRBcnJheUJ1
ZmZlci4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXQtcG9zdG1lc3NhZ2Ut
c2hhcmVkYXJyYXlidWZmZXIuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50
ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtYXV0b21hdGljLXB1bGwuaHR0cHMuaHRtbCBbIFNraXAg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtb25lcnJvci5odHRw
cy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9k
ZS1vdXRwdXQtY2hhbm5lbC1jb3VudC5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xl
dC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtZnJvemVuLWFycmF5Lmh0
dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRw
cm9jZXNzb3ItcHJvY2Vzcy16ZXJvLW91dHB1dHMuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9taXNlcy5odHRwcy5o
dG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzcy1nZXR0ZXIuaHR0
cHMuaHRtbCBbIFNraXAgXQorCisjIFRoaXMgdGVzdCBpcyB0aW1pbmcgb3V0IGJlY2F1c2UgaXQg
Y2FsbHMgc3VzcGVuZCgpIHRoZW4gcmVzdW1lKCkgb25lIHdpdGhvdXQgeWllbGRpbmcuIHN1c3Bl
bmQoKSBzZXRzIHN0YXRlIHRvIHN1c3BlbmRlZCBhc3luY2hyb25vdXNseQorIyBzbyByZXN1bWUo
KSBkb2VzIG5vdCBrbm93IHRoZXJlIGlzIGEgcGVuZGluZyBzdXNwZW5kKCkgYW5kIHJldHVybnMg
ZWFybHkuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzcy1wYXJhbWV0ZXJzLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9j
ZXNzaW5nLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY29udm9sdmVybm9kZS1pbnRlcmZhY2UvYWN0
aXZlLXByb2Nlc3NpbmcuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3Nv
dXJjZW5vZGUtaW50ZXJmYWNlL2NvcnMtY2hlY2suaHR0cHMuaHRtbCBbIFNraXAgXQorCisjIFRo
aXMgV2ViQXVkaW8gdGVzdCBpcyB0aW1pbmcgb3V0LCBwb3RlbnRpYWxseSBkdWUgdG8gYW4gQXVk
aW9Xb3JrbGV0IGJ1Zy4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9u
by1jb3JzLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAogIyBUaGlzIHdlYmF1ZGlvIHRlc3QgaGFzIGJl
ZW4gdGltaW5nIG91dCBzaW5jZSBpdHMgaW1wb3J0IGZyb20gQmxpbmsuCkBAIC0zNDEsNiArMzM2
LDcgQEAgd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS9tZWRpYXN0cmVhbWF1ZGlvc291
cmNlbm9kZS5odG1sIFsgU2tpcCBdCiAjIFdlYmF1ZGlvIHRlc3RzIHRoYXQgYXJlIGZsYWt5Lgog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3BhcmFtLWludGVyZmFjZS9rLXJhdGUtc3RlcmVvLXBhbm5lci5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYW5hbHlzZXJub2RlLWludGVyZmFjZS90ZXN0LWFuYWx5c2VyLW91dHB1dC5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVy
ZmFjZS9jb3JzLWNoZWNrLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiAjIFRoaXMgdGVz
dCBpcyBwYXNzaW5nIGJ1dCB0aGUgcHJpbnRlZCBTTlIgdmFsdWUgZGlmZmVycyBmcm9tIG1hY2hp
bmUgdG8gbWFjaGluZS4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9idWZmZXJzb3VyY2Vub2RlLWludGVyZmFjZS9zdWItc2Ft
cGxlLWJ1ZmZlci1zdGl0Y2hpbmcuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCkBAIC0zNDgsNyArMzQ0
LDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb2J1ZmZlcnNvdXJjZW5vZGUKICMgVmFsdWVzIGluIEZBSUwgbGluZXMgZGlm
ZmVyIGZyb20gbWFjaGluZSB0byBtYWNoaW5lLCB3ZSBzaG91bGQgYmUgYWJsZSB0byB1bnNraXAg
dGhlbSBvbmNlIHRoZXkgcGFzcy4KIHdlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlL2F1ZGlvYnVm
ZmVyc291cmNlLWRldHVuZS1tb2R1bGF0aW9uLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogd2ViYXVk
aW8vQXVkaW9CdWZmZXJTb3VyY2UvYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tyYXRlLW1vZHVs
YXRpb24uaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uvc2lt
cGxlLWlucHV0LW91dHB1dC5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9y
Zy9iLzE3NjkyOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHktc3RhdGVzL2F1dG9wbGF5LXdp
dGgtc2xvdy10ZXh0LXRyYWNrcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9j
ZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9idWZmZXJzb3Vy
Y2Vub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggZWM3MGUwOTM5NDQ5MGY5MTI2YmI1YjYwMTQzNjE5ZGFhZDdmZDRhOC4uMzUxZWRmOTJhYzdk
MmE3NjVjMDBiOGMwMDY3NmMzOWQ1NGM1MDUyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb2J1ZmZlcnNvdXJjZW5vZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvYnVmZmVyc291cmNlbm9kZS1pbnRl
cmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC05LDEzICs5LDEz
IEBAIFBBU1MgPCBbU2V0dXAgZ3JhcGhdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEg
YXNzZXJ0aW9ucykKIFBBU1MgPiBbdmVyaWZ5IGNvdW50IGNoYW5nZV0KIEZBSUwgWCBOdW1iZXIg
b2YgY2hhbm5lbHMgY2hhbmdlZCBpcyBub3QgdHJ1ZS4gR290IGZhbHNlLiBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgICBJbmRleCB3aGVyZSBpbnB1dCBjaGFubmVs
IGNvdW50IGNoYW5nZWQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEyODAuCi1GQUlMIFggTnVt
YmVyIG9mIGNoYW5uZWxzIGluIGlucHV0WzA6LTJdOiBFeHBlY3RlZCA3IGZvciBhbGwgdmFsdWVz
IGJ1dCBmb3VuZCAxMjc5IHVuZXhwZWN0ZWQgdmFsdWVzOgorRkFJTCBYIE51bWJlciBvZiBjaGFu
bmVscyBpbiBpbnB1dFswOi0yXTogRXhwZWN0ZWQgNyBmb3IgYWxsIHZhbHVlcyBidXQgZm91bmQg
MTAyMyB1bmV4cGVjdGVkIHZhbHVlczoKIAlJbmRleAlBY3R1YWwKLQlbMF0JMAotCVsxXQkwCi0J
WzJdCTAKLQlbM10JMAotCS4uLmFuZCAxMjc1IG1vcmUgZXJyb3JzLiBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwlbMjU2XQkwCisJWzI1N10JMAorCVsyNThdCTAKKwlbMjU5
XQkwCisJLi4uYW5kIDEwMTkgbW9yZSBlcnJvcnMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQogRkFJTCBYIE51bWJlciBvZiBjaGFubmVscyBpbiBpbnB1dFstMTpdOiBFeHBl
Y3RlZCAxIGZvciBhbGwgdmFsdWVzIGJ1dCBmb3VuZCAxIHVuZXhwZWN0ZWQgdmFsdWVzOgogCUlu
ZGV4CUFjdHVhbAogCVswXQkwIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29y
a2xldG5vZGUtYXV0b21hdGljLXB1bGwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtYXV0b21hdGljLXB1bGwu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDMxODYyZGYxYTRhN2I2YWQyYTZjNmQ2MzcyNjkyNDQ1
MTIxNjU1Y2IuLjM1OTU1Y2RiMzJmZWY4NDE3N2JmZmNmMWU1ODFmOGJhNmIxNDA4MjYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRu
b2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1hdXRvbWF0aWMtcHVsbC5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSwxMCBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1F
T1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQu
Ci1USU1FT1VUIEV4ZWN1dGluZyAic2V0dXAtd29ya2xldCIgVGVzdCB0aW1lZCBvdXQKLU5PVFJV
TiBBdWRpdCByZXBvcnQKK1BBU1MgRXhlY3V0aW5nICJzZXR1cC13b3JrbGV0IgorUEFTUyBBdWRp
dCByZXBvcnQKIFBBU1MgPiBbc2V0dXAtd29ya2xldF0KK1BBU1MgICBUaGUgZmlyc3QgaGFsZiBv
ZiB0aGUgY2FwdHVyZWQgYnVmZmVyIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNS4KK1BB
U1MgICBUaGUgc2Vjb25kIGhhbGYgb2YgdGhlIGNhcHR1cmVkIGJ1ZmZlciBjb250YWlucyBvbmx5
IHRoZSBjb25zdGFudCAwLgorUEFTUyA8IFtzZXR1cC13b3JrbGV0XSBBbGwgYXNzZXJ0aW9ucyBw
YXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklO
SVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtZGlzY29ubmVjdGVk
LWlucHV0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWlu
dGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWRpc2Nvbm5lY3RlZC1pbnB1dC5odHRwcy1leHBlY3Rl
ZC50eHQKaW5kZXggMmE4NjY2N2ExODNmMTA0MzlmYjAyY2U3NGRmNjU5MDVmM2VjZTYyNS4uN2Zj
YjhjZWQ4ODM1ZGE2YWY0NWJiODFhOGFjMmIyZGQzNjkyN2I0NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtZGlzY29ubmVj
dGVkLWlucHV0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29y
a2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1kaXNjb25uZWN0ZWQtaW5wdXQuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC00LDkgKzQsOSBAQCBQQVNTIEV4ZWN1dGluZyAidGVzdCIKIFBBU1Mg
QXVkaXQgcmVwb3J0CiBQQVNTID4gW3Rlc3RdIElucHV0IGFycmF5IGxlbmd0aCBzaG91bGQgYmUg
emVybyBmb3IgZGlzY29ubmVjdGVkIGlucHV0CiBQQVNTICAgQmVmb3JlIGNvbm5lY3RpbmcgdGhl
IHNvdXJjZTogSW5wdXQgYXJyYXkgbGVuZ3RoIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAu
Ci1GQUlMIFggRmlyc3Qgbm9uLXplcm8gb3V0cHV0IGlzIG5vdCBlcXVhbCB0byAxMjguIEdvdCAt
MS4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgRmlyc3Qgbm9u
LXplcm8gb3V0cHV0IGlzIGVxdWFsIHRvIDEyOC4KIFBBU1MgICBXaGlsZSBzb3VyY2UgaXMgY29u
bmVjdGVkOiBJbnB1dCBhcnJheSBsZW5ndGggY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMTI4
LgogUEFTUyAgIEFmdGVyIGRpc2Nvbm5lY3RpbmcgdGhlIHNvdXJjZTogSW5wdXQgYXJyYXkgbGVu
Z3RoIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCi1GQUlMIDwgW3Rlc3RdIDEgb3V0IG9m
IDQgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCi1GQUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgb3V0IG9mIDEgdGFz
a3Mgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyA8IFt0ZXN0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpCitQ
QVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3NmdWxs
eS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1
ZGlvd29ya2xldG5vZGUtb25lcnJvci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vbmVycm9yLmh0dHBzLWV4
cGVjdGVkLnR4dAppbmRleCBjMjZhYTEzMzQ2NTM4YzFiMjU0YTAzZDE5ZjRlYzBhM2NjYWU1YWQy
Li45NjcxMjEzODk3NDlmZDBhYWYyNjdmZWJlNGRiMjg5ZTYxMmE0ZGU2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1h
dWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vbmVy
cm9yLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1p
bnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vbmVycm9yLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MSw5ICsxLDE2IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAot
CiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KLVRJTUVPVVQgRXhlY3V0aW5nICJj
b25zdHJ1Y3Rvci1lcnJvciIgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBFeGVjdXRpbmcgInByb2Nl
c3MtZXJyb3IiCi1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAiY29uc3RydWN0
b3ItZXJyb3IiCitQQVNTIEV4ZWN1dGluZyAicHJvY2Vzcy1lcnJvciIKK1BBU1MgQXVkaXQgcmVw
b3J0CiBQQVNTID4gW2NvbnN0cnVjdG9yLWVycm9yXQorUEFTUyAgIG9ucHJvY2Vzc29yZXJyb3Ig
YXJndW1lbnQgc2hvdWxkIGJlIGFuIEVycm9yRXZlbnQgd2hlbgorICAgICAgICAgICAgICAgIHRo
ZSBjb25zdHJ1Y3RvciBvZiBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgaGFzIGFuIGVycm9yLiBpcyB0
cnVlLgorUEFTUyA8IFtjb25zdHJ1Y3Rvci1lcnJvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAo
dG90YWwgMSBhc3NlcnRpb25zKQorUEFTUyA+IFtwcm9jZXNzLWVycm9yXQorUEFTUyAgIG9ucHJv
Y2Vzc29yZXJyb3IgYXJndW1lbnQgc2hvdWxkIGJlIGFuIEVycm9yRXZlbnQgd2hlbgorICAgICAg
ICAgICAgICAgIHRoZSBwcm9jZXNzIG1ldGhvZCBvZiB0aGUgQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
IG1ldGhvZAorICAgICAgICAgICAgICAgIGhhcyBhbiBlcnJvci4gaXMgdHJ1ZS4KK1BBU1MgPCBb
cHJvY2Vzcy1lcnJvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25z
KQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNz
ZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFj
ZS9hdWRpb3dvcmtsZXRub2RlLW91dHB1dC1jaGFubmVsLWNvdW50Lmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2Rl
LW91dHB1dC1jaGFubmVsLWNvdW50Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAzODdhNzg0ZDA0
NzE5OGZhN2M3ZmIzNWNhOWYzZjEyZDQyMmEwOTBmLi4xZmQzMGM3YThkNDYyZDE3YjNjYWY5MDA4
OTlkZDlmZDExNjQ3ZjJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1p
bnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vdXRwdXQtY2hhbm5lbC1jb3VudC5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlv
d29ya2xldG5vZGUtb3V0cHV0LWNoYW5uZWwtY291bnQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0x
LDkgKzEsMTMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0K
IFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELgotVElNRU9VVCBFeGVjdXRpbmcgIkR5
bmFtaWNhbGx5IGNoYW5nZSB0aGUgY2hhbm5lbCBjb3VudCB0byBpZiB1bnNwZWNpZmllZC4iIFRl
c3QgdGltZWQgb3V0Ci1OT1RSVU4gRXhlY3V0aW5nICJHaXZpZW4gb3V0cHV0Q2hhbm5lbENvdW50
IG11c3QgYmUgaG9ub3JlZC4iCi1OT1RSVU4gQXVkaXQgcmVwb3J0CitQQVNTIEV4ZWN1dGluZyAi
RHluYW1pY2FsbHkgY2hhbmdlIHRoZSBjaGFubmVsIGNvdW50IHRvIGlmIHVuc3BlY2lmaWVkLiIK
K1BBU1MgRXhlY3V0aW5nICJHaXZpZW4gb3V0cHV0Q2hhbm5lbENvdW50IG11c3QgYmUgaG9ub3Jl
ZC4iCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtEeW5hbWljYWxseSBjaGFuZ2UgdGhlIGNo
YW5uZWwgY291bnQgdG8gaWYgdW5zcGVjaWZpZWQuXQorUEFTUyAgIFRoZSBleHBlY3RlZCBvdXRw
dXQgY2hhbm5lbCBjb3VudCBpcyBlcXVhbCB0byAxNy4KK1BBU1MgPCBbRHluYW1pY2FsbHkgY2hh
bmdlIHRoZSBjaGFubmVsIGNvdW50IHRvIGlmIHVuc3BlY2lmaWVkLl0gQWxsIGFzc2VydGlvbnMg
cGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKQorUEFTUyA+IFtHaXZpZW4gb3V0cHV0Q2hhbm5l
bENvdW50IG11c3QgYmUgaG9ub3JlZC5dCitQQVNTICAgVGhlIGV4cGVjdGVkIG91dHB1dCBjaGFu
bmVsIGNvdW50IGlzIGVxdWFsIHRvIDIuCitQQVNTIDwgW0dpdmllbiBvdXRwdXRDaGFubmVsQ291
bnQgbXVzdCBiZSBob25vcmVkLl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3Nl
cnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBz
dWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWlu
dGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvY2Vzcy1mcm96ZW4tYXJyYXkuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlv
d29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLWZyb3plbi1hcnJheS5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggMGRmMDRkNzZlMGQ5ZTZmNWQ0NGI0NTAyMjI3ZjE5NmZmMGI3MGU3Ny4uMzRjMDY5OTBh
ZjgxZmEwNWNiZWYzYmU5M2QyZTFkZGE4MjJiMDIzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLWZy
b3plbi1hcnJheS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dv
cmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLWZyb3plbi1hcnJh
eS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOSArMSwxNSBAQAogCi1IYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJU
RUQuCi1USU1FT1VUIEV4ZWN1dGluZyAiY2hlY2stZnJvemVuLWFycmF5IiBUZXN0IHRpbWVkIG91
dAotTk9UUlVOIEV4ZWN1dGluZyAidHJhbnNmZXItZnJvemVuLWFycmF5IgotTk9UUlVOIEF1ZGl0
IHJlcG9ydAorUEFTUyBFeGVjdXRpbmcgImNoZWNrLWZyb3plbi1hcnJheSIKK1BBU1MgRXhlY3V0
aW5nICJ0cmFuc2Zlci1mcm96ZW4tYXJyYXkiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtj
aGVjay1mcm96ZW4tYXJyYXldCitQQVNTICAgfGlucHV0c3wgaXMgZnJvemVuIGlzIHRydWUuCitQ
QVNTICAgfG91dHB1dHN8IGlzIGZyb3plbiBpcyB0cnVlLgorUEFTUyA8IFtjaGVjay1mcm96ZW4t
YXJyYXldIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykKK1BBU1Mg
PiBbdHJhbnNmZXItZnJvemVuLWFycmF5XQorUEFTUyAgIFRyYW5zZmVycmluZyBpbnB1dHMvb3V0
cHV0cywgYW4gaW5kaXZpZHVhbCBpbnB1dC9vdXRwdXQgYXJyYXksIG9yIGEgY2hhbm5lbCBGbG9h
dDMyQXJyYXkgaXMgbm90IGFsbG93ZWQgYXMgZXhwZWN0ZWQuIGlzIHRydWUuCitQQVNTICAgVHJh
bnNmZXJyaW5nIEFycmF5QnVmZmVycyB3YXMgc3VjY2Vzc2Z1bCBhcyBleHBlY3RlZC4gaXMgdHJ1
ZS4KK1BBU1MgPCBbdHJhbnNmZXItZnJvemVuLWFycmF5XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQu
ICh0b3RhbCAyIGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6
IDIgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldHByb2Nlc3Nvci1wcm9jZXNzLXplcm8t
b3V0cHV0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1p
bnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtemVyby1vdXRwdXRzLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCAzYzdmMDAzNmMzODExNTVlZDI4ZTAxMjllMWM3ZjhjMDE1YmZm
MmJmLi44MmNkZmJkNmMzYjMwMWJkYzhlY2QzYzdiMTgxYWMzZTk0NzQ3NTAwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vz
c29yLXByb2Nlc3MtemVyby1vdXRwdXRzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nl
c3MtemVyby1vdXRwdXRzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDkgQEAKIAotSGFy
bmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNL
IFJVTk5FUiBTVEFSVEVELgotVElNRU9VVCBFeGVjdXRpbmcgImNoZWNrLXplcm8tb3V0cHV0cyIg
VGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBBdWRpdCByZXBvcnQKK1BBU1MgRXhlY3V0aW5nICJjaGVj
ay16ZXJvLW91dHB1dHMiCitQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtjaGVjay16ZXJvLW91
dHB1dHNdCitQQVNTICAgfG91dHB1dHN8IGhhcyBiZWVuIGFsbCB6ZXJvcyBmb3IgMSBzZWNvbmRz
IGFzIGV4cGVjdGVkLiBpcyB0cnVlLgorUEFTUyA8IFtjaGVjay16ZXJvLW91dHB1dHNdIEFsbCBh
c3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNL
IFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0cHJvY2Vz
c29yLXByb21pc2VzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3Jr
bGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvbWlzZXMuaHR0cHMtZXhwZWN0
ZWQudHh0CmluZGV4IDM2NTQxYmZhOTZkZmUxOGRmYjVmNDNiMmNmMGNiOTM0ZmQwZWE3NGIuLjFk
YTE3MWM2OGM5NTdhNjEzN2YxNDlhYWMxODRmZGQxYjk0NGVmMzggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJv
bWlzZXMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9hdWRpb3dvcmtsZXRwcm9jZXNzb3ItcHJvbWlzZXMuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0xLDUgKzEsNCBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9
IG51bGwKLQotVElNRU9VVCB0ZXN0IFRlc3QgdGltZWQgb3V0CitGQUlMIHRlc3QgYXNzZXJ0X3Ry
dWU6IE1pY3JvdGFzayBjaGVja3BvaW50cyBhcmUgcGVyZm9ybWVkCisgICAgICAgICAgICAgICAg
ICAgICAgIGluIGJldHdlZW4gcmVuZGVyIHF1YW50dW0gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL3Byb2Nl
c3MtZ2V0dGVyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9wcm9jZXNzLWdldHRlci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNmE3YzZk
ZTMyNTNiZmQwZmVlZTgwMmI5NzVkN2FiZGJlNWE3YjNjZi4uYTk2NGEzYjQ3NTY0NDMyNWZhZWRl
ZjFlMDM3ZTg0MTFiZTAxN2M3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmts
ZXQtaW50ZXJmYWNlL3Byb2Nlc3MtZ2V0dGVyLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvcHJvY2Vzcy1nZXR0ZXIuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDYgKzEsNCBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVz
c2FnZSA9IG51bGwKLQotVElNRU9VVCAncHJvY2VzcycgZ2V0dGVyIG9uIHByb3RvdHlwZSBUZXN0
IHRpbWVkIG91dAotTk9UUlVOICdwcm9jZXNzJyBnZXR0ZXIgb24gaW5zdGFuY2UKK1BBU1MgJ3By
b2Nlc3MnIGdldHRlciBvbiBwcm90b3R5cGUKK1BBU1MgJ3Byb2Nlc3MnIGdldHRlciBvbiBpbnN0
YW5jZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uv
cHJvY2Vzc29yLWNvbnN0cnVjdGlvbi1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFw
aS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzb3ItY29uc3RydWN0aW9uLXBvcnQu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGY2MGVjOGMyMDQ0NDBmZTBlMGFiMGE0ODc2NTNkNWQ5
MTU1ZGRjMTYuLjYwOGRhMDkxYTgxZDhhZTI5OTY3Y2UwNTZlYTc5MWE3ZjQ5OTYzNWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzb3ItY29u
c3RydWN0aW9uLXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVk
aW93b3JrbGV0LWludGVyZmFjZS9wcm9jZXNzb3ItY29uc3RydWN0aW9uLXBvcnQuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDggKzEsNiBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVz
c2FnZSA9IG51bGwKLQogUEFTUyBzdXBlcigpIGFmdGVyIG5ldyBBdWRpb1dvcmtsZXRQcm9jZXNz
b3IoKQogUEFTUyBuZXcgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yKCkgYWZ0ZXIgc3VwZXIoKQogUEFT
UyBuZXcgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yKCkgYWZ0ZXIgbmV3IEF1ZGlvV29ya2xldFByb2Nl
c3NvcigpCi1USU1FT1VUIFNpbmdsZXRvbiBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgVGVzdCB0aW1l
ZCBvdXQKK1BBU1MgU2luZ2xldG9uIEF1ZGlvV29ya2xldFByb2Nlc3NvcgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2Uvc2ltcGxlLWlucHV0LW91dHB1
dC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZh
Y2Uvc2ltcGxlLWlucHV0LW91dHB1dC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYjBkYWMyZDcy
ZGYyZGIyMmVkOWFkOTM4NzZlNDI4MGNkNjJlMWJiZS4uNDc1MzdiNjdlZDU5ZDM3OWU2NjBhZTc5
NzNiYWRhODNlOGU5NGRkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQt
aW50ZXJmYWNlL3NpbXBsZS1pbnB1dC1vdXRwdXQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9zaW1wbGUtaW5wdXQtb3V0cHV0Lmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtNywyNSArNyw4IEBAIFBBU1MgPiBbSW5pdGlhbGl6ZSB3b3Jr
bGV0XQogUEFTUyAgIENyZWF0aW9uIG9mIEF1ZGlvV29ya2xldCByZXNvbHZlZCBjb3JyZWN0bHku
CiBQQVNTIDwgW0luaXRpYWxpemUgd29ya2xldF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90
YWwgMSBhc3NlcnRpb25zKQogUEFTUyA+IFt0ZXN0XSBTaW1wbGUgQXVkaW9Xb3JrbGV0IEkvTwot
RkFJTCBYIEF1ZGlvV29ya2xldCBvdXRwdXRbMDoxMjddIGRvZXMgbm90IGVxdWFsIFsxLDEuMDU3
NTY0MDIwMTU2ODYwNCwxLjExNDkzNzE4NjI0MTE1LDEuMTcxOTI5MTIxMDE3NDU2LDEuMjI4MzUw
ODc3NzYxODQwOCwxLjI4NDAxNTE3ODY4MDQyLDEuMzM4NzM3ODQ1NDIwODM3NCwxLjM5MjMzNjk2
NDYwNzIzODgsMS40NDQ2MzUwMzM2MDc0ODMsMS40OTU0NTg2MDI5MDUyNzM0LDEuNTQ0NjM4NzUy
OTM3MzE3LDEuNTkyMDEzMTIwNjUxMjQ1MSwxLjYzNzQyMzc1MzczODQwMzMsMS42ODA3MjA4MDYx
MjE4MjYyLDEuNzIxNzYwMDM0NTYxMTU3MiwxLjc2MDQwNTg5ODA5NDE3NzIuLi5dIHdpdGggYW4g
ZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2
ZVRocmVzaG9sZCI6MH0uCi0JSW5kZXgJQWN0dWFsCQkJRXhwZWN0ZWQJCUFic0Vycm9yCQlSZWxF
cnJvcgkJVGVzdCB0aHJlc2hvbGQKLQlbMF0JMC4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMDAwMDAw
MDAwMDAwMDAwMGUrMAkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJMS4wMDAwMDAwMDAwMDAwMDAwZSsw
CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAotCVsxXQkwLjAwMDAwMDAwMDAwMDAwMDBlKzAJMS4wNTc1
NjQwMjAxNTY4NjA0ZSswCTEuMDU3NTY0MDIwMTU2ODYwNGUrMAkxLjAwMDAwMDAwMDAwMDAwMDBl
KzAJMC4wMDAwMDAwMDAwMDAwMDAwZSswCi0JWzJdCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjEx
NDkzNzE4NjI0MTE0OTllKzAJMS4xMTQ5MzcxODYyNDExNDk5ZSswCTEuMDAwMDAwMDAwMDAwMDAw
MGUrMAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKLQlbM10JMC4wMDAwMDAwMDAwMDAwMDAwZSswCTEu
MTcxOTI5MTIxMDE3NDU2MWUrMAkxLjE3MTkyOTEyMTAxNzQ1NjFlKzAJMS4wMDAwMDAwMDAwMDAw
MDAwZSswCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAotCVs0XQkwLjAwMDAwMDAwMDAwMDAwMDBlKzAJ
MS4yMjgzNTA4Nzc3NjE4NDA4ZSswCTEuMjI4MzUwODc3NzYxODQwOGUrMAkxLjAwMDAwMDAwMDAw
MDAwMDBlKzAJMC4wMDAwMDAwMDAwMDAwMDAwZSswCi0JLi4uYW5kIDEyMyBtb3JlIGVycm9ycy4K
LQlNYXggQWJzRXJyb3Igb2YgMS45OTk4NzY0OTkxNzYwMjU0ZSswIGF0IGluZGV4IG9mIDI3Lgot
CVsyN10JMC4wMDAwMDAwMDAwMDAwMDAwZSswCTEuOTk5ODc2NDk5MTc2MDI1NGUrMAkxLjk5OTg3
NjQ5OTE3NjAyNTRlKzAJMS4wMDAwMDAwMDAwMDAwMDAwZSswCTAuMDAwMDAwMDAwMDAwMDAwMGUr
MAotCU1heCBSZWxFcnJvciBvZiAxLjAwMDAwMDAwMDAwMDAwMDBlKzAgYXQgaW5kZXggb2YgMC4K
LSBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBBdWRpb1dvcmts
ZXQgb3V0cHV0WzEyODpdOiBFeHBlY3RlZCAxIGZvciBhbGwgdmFsdWVzIGJ1dCBmb3VuZCA0Nzg3
MiB1bmV4cGVjdGVkIHZhbHVlczoKLQlJbmRleAlBY3R1YWwKLQlbMF0JMAotCVsxXQkwCi0JWzJd
CTAKLQlbM10JMAotCS4uLmFuZCA0Nzg2OCBtb3JlIGVycm9ycy4gYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIDwgW3Rlc3RdIDIgb3V0IG9mIDIgYXNzZXJ0aW9ucyB3
ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMICMg
QVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgb3V0IG9mIDIgdGFza3Mgd2VyZSBmYWlsZWQu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIEF1ZGlvV29ya2xl
dCBvdXRwdXRbMDoxMjddIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13
aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9s
ZCI6MH0uCitQQVNTICAgQXVkaW9Xb3JrbGV0IG91dHB1dFsxMjg6XSBjb250YWlucyBvbmx5IHRo
ZSBjb25zdGFudCAxLgorUEFTUyA8IFt0ZXN0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3Rh
bCAyIGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDIgdGFz
a3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jaGFubmVs
bWVyZ2Vybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1jaGFubmVsbWVyZ2Vybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nl
c3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDFhNWU1ODk0MjcwMmI2ZmZjNGY3NjYyYzNk
ODJmMzZkZGY2ZjE3MmQuLjE2M2FjNWJmNThhYTJiNTc5NDJmNjRhZjFhOGZiZThjNzI2Y2QzZWIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJmYWNlL2Fj
dGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNo
YW5uZWxtZXJnZXJub2RlLWludGVyZmFjZS9hY3RpdmUtcHJvY2Vzc2luZy5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTEsMTIgKzEsMTUgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3Nh
Z2UgPSBudWxsCi0KIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELgogUEFTUyBFeGVj
dXRpbmcgImluaXRpYWxpemUiCi1USU1FT1VUIEV4ZWN1dGluZyAidGVzdCIgVGVzdCB0aW1lZCBv
dXQKLU5PVFJVTiBBdWRpdCByZXBvcnQKK1BBU1MgRXhlY3V0aW5nICJ0ZXN0IgorUEFTUyBBdWRp
dCByZXBvcnQKIFBBU1MgPiBbaW5pdGlhbGl6ZV0KIFBBU1MgICBBdWRpb1dvcmtsZXQgbW9kdWxl
IGxvYWRpbmcgcmVzb2x2ZWQgY29ycmVjdGx5LgogUEFTUyA8IFtpbml0aWFsaXplXSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCiBQQVNTID4gW3Rlc3RdCitQQVNT
ICAgVGVzdCAwOiBOdW1iZXIgb2YgY29udm9sdmVyIG91dHB1dCBjaGFubmVscyBpcyBlcXVhbCB0
byA3LgorRkFJTCBYIFRlc3QgMTogTnVtYmVyIG9mIGNvbnZvbHZlciBvdXRwdXQgY2hhbm5lbHMg
aXMgbm90IGVxdWFsIHRvIDEuIEdvdCAwLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK1BBU1MgICBOdW1iZXIgb2YgZGlzdGluY3QgdmFsdWVzIGlzIGVxdWFsIHRvIDIuCitG
QUlMIDwgW3Rlc3RdIDEgb3V0IG9mIDMgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklO
SVNIRUQ6IDEgb3V0IG9mIDIgdGFza3Mgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5v
ZGUtaW50ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtY29udm9sdmVybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMt
ZXhwZWN0ZWQudHh0CmluZGV4IDFhNWU1ODk0MjcwMmI2ZmZjNGY3NjYyYzNkODJmMzZkZGY2ZjE3
MmQuLmIyMWU3Y2FjMmMwNjY1MGY3YzJlMTM1OWVmZDM1YjFlMjJiZmQ3NGUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhl
LWF1ZGlvLWFwaS90aGUtY29udm9sdmVybm9kZS1pbnRlcmZhY2UvYWN0aXZlLXByb2Nlc3Npbmcu
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY29udm9sdmVybm9kZS1pbnRl
cmZhY2UvYWN0aXZlLXByb2Nlc3NpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDE0
IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTICMg
QVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4KIFBBU1MgRXhlY3V0aW5nICJpbml0aWFsaXplIgot
VElNRU9VVCBFeGVjdXRpbmcgInRlc3QiIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gQXVkaXQgcmVw
b3J0CitQQVNTIEV4ZWN1dGluZyAidGVzdCIKK1BBU1MgQXVkaXQgcmVwb3J0CiBQQVNTID4gW2lu
aXRpYWxpemVdCiBQQVNTICAgQXVkaW9Xb3JrbGV0IG1vZHVsZSBsb2FkaW5nIHJlc29sdmVkIGNv
cnJlY3RseS4KIFBBU1MgPCBbaW5pdGlhbGl6ZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90
YWwgMSBhc3NlcnRpb25zKQogUEFTUyA+IFt0ZXN0XQorUEFTUyAgIFRlc3QgMDogTnVtYmVyIG9m
IGNvbnZvbHZlciBvdXRwdXQgY2hhbm5lbHMgaXMgZXF1YWwgdG8gMi4KK0ZBSUwgWCBOdW1iZXIg
b2YgZGlzdGluY3QgdmFsdWVzIGlzIG5vdCBlcXVhbCB0byAyLiBHb3QgMS4gYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIDwgW3Rlc3RdIDEgb3V0IG9mIDIgYXNzZXJ0
aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitG
QUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgb3V0IG9mIDIgdGFza3Mgd2VyZSBm
YWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvY29y
cy1jaGVjay5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1
ZGlvc291cmNlbm9kZS1pbnRlcmZhY2UvY29ycy1jaGVjay5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggZmUyZDc5ZGYxNjA4ZGZmNGMzOTlhN2IzMGQzNDI0ZjNhM2IwYzhhNi4uM2E0OTJlZWFhZjVh
MzcyNzc0ZDUxOTNjN2JlODg5ZTcyMGQzMDk5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1t
ZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50ZXJmYWNlL2NvcnMtY2hlY2suaHR0cHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2Rl
LWludGVyZmFjZS9jb3JzLWNoZWNrLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMSArMSwxNSBA
QAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyAjIEFV
RElUIFRBU0sgUlVOTkVSIFNUQVJURUQuCiBQQVNTIEV4ZWN1dGluZyAic2V0dGluZy11cC1ncmFw
aCIKLVRJTUVPVVQgRXhlY3V0aW5nICJzdGFydC1wbGF5YmFjay1hbmQtY2FwdHVyZSIgVGVzdCB0
aW1lZCBvdXQKLU5PVFJVTiBBdWRpdCByZXBvcnQKK1BBU1MgRXhlY3V0aW5nICJzdGFydC1wbGF5
YmFjay1hbmQtY2FwdHVyZSIKK1BBU1MgQXVkaXQgcmVwb3J0CiBQQVNTID4gW3NldHRpbmctdXAt
Z3JhcGhdCiBQQVNTIDwgW3NldHRpbmctdXAtZ3JhcGhdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4g
KHRvdGFsIDAgYXNzZXJ0aW9ucykKIFBBU1MgPiBbc3RhcnQtcGxheWJhY2stYW5kLWNhcHR1cmVd
CitQQVNTICAgUmVjb3JkZWQgY2hhbm5lbCAjMCBpcyBub3QgY29uc3RhbnRseSAwIChjb250YWlu
cyAzMzA4OCBkaWZmZXJlbnQgdmFsdWVzKS4KK1BBU1MgICBSZWNvcmRlZCBjaGFubmVsICMxIGlz
IG5vdCBjb25zdGFudGx5IDAgKGNvbnRhaW5zIDMzMDkwIGRpZmZlcmVudCB2YWx1ZXMpLgorUEFT
UyAgIFJlY29yZGVkIGNoYW5uZWwgIzIgaXMgbm90IGNvbnN0YW50bHkgMCAoY29udGFpbnMgMzMw
ODkgZGlmZmVyZW50IHZhbHVlcykuCitQQVNTICAgUmVjb3JkZWQgY2hhbm5lbCAjMyBpcyBub3Qg
Y29uc3RhbnRseSAwIChjb250YWlucyAzMzA5MCBkaWZmZXJlbnQgdmFsdWVzKS4KK1BBU1MgPCBb
c3RhcnQtcGxheWJhY2stYW5kLWNhcHR1cmVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDQgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNr
cyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxl
bWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2Uvbm8tY29ycy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLW1lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1pbnRlcmZhY2Uvbm8t
Y29ycy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZmUyZDc5ZGYxNjA4ZGZmNGMzOTlhN2IzMGQz
NDI0ZjNhM2IwYzhhNi4uNGQxMzlkOWVkZTcwMTYwYWEzODJiMmMwMjUzZDY2ZTZiZjc4NTNmMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtaW50
ZXJmYWNlL25vLWNvcnMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtbWVk
aWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWludGVyZmFjZS9uby1jb3JzLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMSwxMSArMSwxNSBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2Fn
ZSA9IG51bGwKLQogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuCiBQQVNTIEV4ZWN1
dGluZyAic2V0dGluZy11cC1ncmFwaCIKLVRJTUVPVVQgRXhlY3V0aW5nICJzdGFydC1wbGF5YmFj
ay1hbmQtY2FwdHVyZSIgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBBdWRpdCByZXBvcnQKK1BBU1Mg
RXhlY3V0aW5nICJzdGFydC1wbGF5YmFjay1hbmQtY2FwdHVyZSIKK1BBU1MgQXVkaXQgcmVwb3J0
CiBQQVNTID4gW3NldHRpbmctdXAtZ3JhcGhdCiBQQVNTIDwgW3NldHRpbmctdXAtZ3JhcGhdIEFs
bCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDAgYXNzZXJ0aW9ucykKIFBBU1MgPiBbc3RhcnQt
cGxheWJhY2stYW5kLWNhcHR1cmVdCitQQVNTICAgUmVjb3JkZWQgY2hhbm5lbCAjMCBjb250YWlu
cyBvbmx5IHRoZSBjb25zdGFudCAwLgorUEFTUyAgIFJlY29yZGVkIGNoYW5uZWwgIzEgY29udGFp
bnMgb25seSB0aGUgY29uc3RhbnQgMC4KK1BBU1MgICBSZWNvcmRlZCBjaGFubmVsICMyIGNvbnRh
aW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCitQQVNTICAgUmVjb3JkZWQgY2hhbm5lbCAjMyBjb250
YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgorUEFTUyA8IFtzdGFydC1wbGF5YmFjay1hbmQtY2Fw
dHVyZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKQorUEFTUyAj
IEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>