<?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>214615</bug_id>
          
          <creation_ts>2020-07-21 14:48:35 -0700</creation_ts>
          <short_desc>Added PeriodicWave constructor according to spec</short_desc>
          <delta_ts>2020-07-23 12:23:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Clark Wang">clark_wang</reporter>
          <assigned_to name="Clark Wang">clark_wang</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</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>1673630</commentid>
    <comment_count>0</comment_count>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-21 14:48:35 -0700</bug_when>
    <thetext>Added PeriodicWave constructor according to spec. Added PeriodicWaveConstraints, PeriodicWaveOptions files. Added updated createPeriodicWave method in BaseAudioContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673633</commentid>
    <comment_count>1</comment_count>
      <attachid>404865</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-21 14:54:43 -0700</bug_when>
    <thetext>Created attachment 404865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673642</commentid>
    <comment_count>2</comment_count>
      <attachid>404865</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-21 15:30:03 -0700</bug_when>
    <thetext>Comment on attachment 404865
Patch

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

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:652
&gt; +ExceptionOr&lt;Ref&lt;PeriodicWave&gt;&gt; BaseAudioContext::createPeriodicWave(Vector&lt;float&gt;&amp; real, Vector&lt;float&gt;&amp; imaginary, const PeriodicWaveConstraints&amp; constraints)

Vector&lt;float&gt;&amp;&amp;

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:663
&gt; +    PeriodicWaveOptions* options = new PeriodicWaveOptions();

This is a memory leak. This should be:
PeriodicWaveOptions options;

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:664
&gt; +    options-&gt;real = real;

WTFMove(real)

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:665
&gt; +    options-&gt;imag = imaginary;

WTFMove(imaginary)

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.h:157
&gt;      ExceptionOr&lt;Ref&lt;PeriodicWave&gt;&gt; createPeriodicWave(Float32Array&amp; real, Float32Array&amp; imaginary);

What&apos;s this one? We should probably drop it in favor of your new one, no?

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.h:158
&gt; +    ExceptionOr&lt;Ref&lt;PeriodicWave&gt;&gt; createPeriodicWave(Vector&lt;float&gt;&amp; real, Vector&lt;float&gt;&amp; imaginary, const PeriodicWaveConstraints&amp; = { });

Why add it to the C++ implementation but not the IDL? What&apos;s the point?

&gt; Source/WebCore/Modules/webaudio/PeriodicWave.cpp:57
&gt; +ExceptionOr&lt;Ref&lt;PeriodicWave&gt;&gt; PeriodicWave::create(BaseAudioContext&amp; context, const PeriodicWaveOptions&amp; options)

PeriodicWaveOptions&amp;&amp;

&gt; Source/WebCore/Modules/webaudio/PeriodicWave.cpp:62
&gt; +    if (options.real.hasValue()) {

Can we format this as in the spec? I also mentioned this in previous comments but you don&apos;t need hasValue() and value(), it results in less concise code.
if (options.real &amp;&amp; options.imag) {
    real = WTFMove(*options.real);
    imag = WTFMove(*options.imag);
} else if (options.real) {

} else if ...

&gt; Source/WebCore/Modules/webaudio/PeriodicWave.cpp:72
&gt; +        real.resize(2);

I could be wrong but I don&apos;t think this code is safe. I do not believe those 2 vector items will be 0 initialized.
Vector::fill() is your friend here I think.

&gt; Source/WebCore/Modules/webaudio/PeriodicWave.h:99
&gt; +    void createBandLimitedTables(const float* real, const float* imag, unsigned numberOfComponents, bool = false);

We don&apos;t like boolean parameters in WebKit because this result is not very readable code like this. We prefer using enum classes:
enum class ShouldDisableNormalization : bool { No, Yes };

&gt; Source/WebCore/Modules/webaudio/PeriodicWave.idl:30
&gt; +    [MayThrowException] constructor(BaseAudioContext context, optional PeriodicWaveOptions options);

You&apos;re changing the behavior of the shipping API. This should be behind a flag:
[EnabledBySetting=ModernUnprefixedWebAudio]

&gt; Source/WebCore/Modules/webaudio/PeriodicWaveOptions.h:34
&gt; +struct PeriodicWaveOptions : PeriodicWaveConstraints {

public PeriodicWaveConstraints</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673643</commentid>
    <comment_count>3</comment_count>
      <attachid>404865</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-21 15:35:56 -0700</bug_when>
    <thetext>Comment on attachment 404865
Patch

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

&gt; Source/WebCore/Modules/webaudio/PeriodicWave.cpp:77
&gt; +    if (real.size() != imag.size() || real.size() &lt; 2 || imag.size() &lt; 2)

Can you please do the checks exactly as in the specification and thus provide a more accurate exception message when it makes sense? If the client did not provide a &apos;real&apos; sequence, only an &apos;imag&apos; sequence, then no point in saying that both have incorrect length.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673937</commentid>
    <comment_count>4</comment_count>
      <attachid>404952</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-22 12:56:51 -0700</bug_when>
    <thetext>Created attachment 404952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673946</commentid>
    <comment_count>5</comment_count>
      <attachid>404952</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-22 13:14:35 -0700</bug_when>
    <thetext>Comment on attachment 404952
Patch

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

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:301
&gt; +unsigned BaseAudioContext::getMaxPeriodicWaveLength() const

WebKit getters never start with &quot;get&quot;. Also, I don&apos;t think we should have a getter for a constant. MaxPeriodicWaveLength does not seem to be used in this file anymore, can&apos;t you simply move MaxPeriodicWaveLength definition to WebKitAudioContext.cpp?

&gt; Source/WebCore/Modules/webaudio/PeriodicWave.h:40
&gt; +enum class ShouldDisableNormalization : bool {

I believe we prefer these on one line.

&gt; Source/WebCore/Modules/webaudio/PeriodicWave.h:42
&gt; +    Yes,

No need for comma.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673976</commentid>
    <comment_count>6</comment_count>
      <attachid>404965</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-22 14:30:48 -0700</bug_when>
    <thetext>Created attachment 404965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673984</commentid>
    <comment_count>7</comment_count>
      <attachid>404969</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-22 14:53:49 -0700</bug_when>
    <thetext>Created attachment 404969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673985</commentid>
    <comment_count>8</comment_count>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-22 14:54:32 -0700</bug_when>
    <thetext>Added #include &quot;BaseAudioContext.h&quot; to PeriodicWave.h to hopefully get past build errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673987</commentid>
    <comment_count>9</comment_count>
      <attachid>404969</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-22 14:55:56 -0700</bug_when>
    <thetext>Comment on attachment 404969
Patch

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

&gt; Source/WebCore/Modules/webaudio/PeriodicWave.h:32
&gt; +#include &quot;BaseAudioContext.h&quot;

This should have been added to the cpp, not the header. It should remain a forward declaration in the header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673993</commentid>
    <comment_count>10</comment_count>
      <attachid>404974</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-22 15:01:28 -0700</bug_when>
    <thetext>Created attachment 404974
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674003</commentid>
    <comment_count>11</comment_count>
      <attachid>404974</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-22 15:10:57 -0700</bug_when>
    <thetext>Comment on attachment 404974
Patch

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

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.h:38
&gt; +#include &quot;PeriodicWaveOptions.h&quot;

Where is this used in this header?

&gt; Source/WebCore/Modules/webaudio/PeriodicWaveOptions.h:30
&gt; +#include &quot;ExceptionOr.h&quot;

This does not make sense, there is not ExceptionOr in this header...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674014</commentid>
    <comment_count>12</comment_count>
      <attachid>404982</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-22 15:21:36 -0700</bug_when>
    <thetext>Created attachment 404982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674190</commentid>
    <comment_count>13</comment_count>
      <attachid>404982</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-07-23 06:02:23 -0700</bug_when>
    <thetext>Comment on attachment 404982
Patch

Some nits below.
It also seems some tests might need new baselines.

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

&gt; Source/WebCore/Modules/webaudio/PeriodicWave.cpp:89
&gt; +    imag[0] = 0;

There are cases where these two lines may not be necessary, should we move them where they are useful.

&gt; Source/WebCore/Modules/webaudio/PeriodicWave.cpp:91
&gt; +    auto waveTable = adoptRef(*new PeriodicWave(context.sampleRate()));

Why not passing sampleRate directly, context does not seem used anywhere else.

&gt; Source/WebCore/Modules/webaudio/PeriodicWave.h:56
&gt; +    static ExceptionOr&lt;Ref&lt;PeriodicWave&gt;&gt; create(BaseAudioContext&amp;, PeriodicWaveOptions&amp;&amp; = { });

Do we need { }.
Could we forward declare PeriodicWaveOptions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674208</commentid>
    <comment_count>14</comment_count>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-23 07:54:31 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #13)
&gt; Comment on attachment 404982 [details]
&gt; Patch
&gt; 
&gt; Some nits below.
&gt; It also seems some tests might need new baselines.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=404982&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/PeriodicWave.cpp:89
&gt; &gt; +    imag[0] = 0;
&gt; 
&gt; There are cases where these two lines may not be necessary, should we move
&gt; them where they are useful.
 
Got it, I adjusted this code.

&gt; &gt; Source/WebCore/Modules/webaudio/PeriodicWave.cpp:91
&gt; &gt; +    auto waveTable = adoptRef(*new PeriodicWave(context.sampleRate()));
&gt; 
&gt; Why not passing sampleRate directly, context does not seem used anywhere
&gt; else.
 
Yeah, I agree that context is not used anywhere. I thought I needed to match this constructor spec here: https://www.w3.org/TR/webaudio/#periodicwave, which takes in context as a parameter. 

&gt; &gt; Source/WebCore/Modules/webaudio/PeriodicWave.h:56
&gt; &gt; +    static ExceptionOr&lt;Ref&lt;PeriodicWave&gt;&gt; create(BaseAudioContext&amp;, PeriodicWaveOptions&amp;&amp; = { });
&gt; 
&gt; Do we need { }.
&gt; Could we forward declare PeriodicWaveOptions?

I thought I should pass in { } for options, since according to spec: https://www.w3.org/TR/webaudio/#dom-periodicwave-periodicwave, options is an optional parameter. Though, I think I could move = { } to IDL file, if that is preferred.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674217</commentid>
    <comment_count>15</comment_count>
      <attachid>404982</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-23 08:26:56 -0700</bug_when>
    <thetext>Comment on attachment 404982
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/webaudio/PeriodicWave.cpp:89
&gt;&gt;&gt; +    imag[0] = 0;
&gt;&gt; 
&gt;&gt; There are cases where these two lines may not be necessary, should we move them where they are useful.
&gt; 
&gt; Got it, I adjusted this code.

This was matching the spec text so I liked it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674218</commentid>
    <comment_count>16</comment_count>
      <attachid>404982</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-23 08:28:55 -0700</bug_when>
    <thetext>Comment on attachment 404982
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/webaudio/PeriodicWave.cpp:91
&gt;&gt;&gt; +    auto waveTable = adoptRef(*new PeriodicWave(context.sampleRate()));
&gt;&gt; 
&gt;&gt; Why not passing sampleRate directly, context does not seem used anywhere else.
&gt; 
&gt; Yeah, I agree that context is not used anywhere. I thought I needed to match this constructor spec here: https://www.w3.org/TR/webaudio/#periodicwave, which takes in context as a parameter.

Yes, Clark is correct. The factor takes a context in because that is what the IDL says.

&gt;&gt;&gt; Source/WebCore/Modules/webaudio/PeriodicWave.h:56
&gt;&gt;&gt; +    static ExceptionOr&lt;Ref&lt;PeriodicWave&gt;&gt; create(BaseAudioContext&amp;, PeriodicWaveOptions&amp;&amp; = { });
&gt;&gt; 
&gt;&gt; Do we need { }.
&gt;&gt; Could we forward declare PeriodicWaveOptions?
&gt; 
&gt; I thought I should pass in { } for options, since according to spec: https://www.w3.org/TR/webaudio/#dom-periodicwave-periodicwave, options is an optional parameter. Though, I think I could move = { } to IDL file, if that is preferred.

I like it with a default value. No reason you have to specify options and they are indeed optional in the IDL as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674235</commentid>
    <comment_count>17</comment_count>
      <attachid>405043</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-23 08:54:20 -0700</bug_when>
    <thetext>Created attachment 405043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674246</commentid>
    <comment_count>18</comment_count>
      <attachid>405045</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-23 09:10:08 -0700</bug_when>
    <thetext>Created attachment 405045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674258</commentid>
    <comment_count>19</comment_count>
      <attachid>405048</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-23 10:06:15 -0700</bug_when>
    <thetext>Created attachment 405048
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674318</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-23 12:22:44 -0700</bug_when>
    <thetext>Committed r264782: &lt;https://trac.webkit.org/changeset/264782&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405048.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674319</commentid>
    <comment_count>21</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-23 12:23:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/66005752&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404865</attachid>
            <date>2020-07-21 14:54:43 -0700</date>
            <delta_ts>2020-07-22 12:56:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214615-20200721175442.patch</filename>
            <type>text/plain</type>
            <size>28804</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVlMDMzNTY2NDhiZjAx
OTczNDgwY2YwMmZhNGNhY2I2NTRmZmM5NS4uZTk3ZDYyZWI4OWI0YTRiMWY5Y2RmNTVjN2UyMjcx
NjE2ZTk0ZDcwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTA3LTIxICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgUGVyaW9kaWNX
YXZlIGNvbnN0cnVjdG9yIGFjY29yZGluZyB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZS1iYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdGhh
dCBub3cgcGFzcy4KKworICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmUgY29uc3RydWN0b3IgYWNj
b3JkaW5nIHRvIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jcGVyaW9kaWN3
YXZlLgorICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cywgUGVyaW9kaWNXYXZl
T3B0aW9ucyBmaWxlcy4gVXBkYXRlZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFi
bGVzCisgICAgICAgIHRvIG5vcm1hbGl6ZSB3YXZlZm9ybSBiYXNlZCBvbiBzcGVjOiBodHRwczov
L3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI3dhdmVmb3JtLW5vcm1hbGl6YXRpb24uCisgICAgICAg
IEFkZGVkIHVwZGF0ZWQgY3JlYXRlUGVyaW9kaWNXYXZlIG1ldGhvZCBpbiBCYXNlQXVkaW9Db250
ZXh0LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNl
QXVkaW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUF1ZGlvQ29u
dGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Bl
cmlvZGljV2F2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJpb2RpY1dhdmU6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVz
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5oOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmlkbDogQWRkZWQuCisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDIwLTA3LTIxICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlz
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bMS4xOF0gbWVkaWFzdHJlYW1zcmMg
ZWxlbWVudCBoaXRzIGFzc2VydCBpbiBnc3QgLWNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
MmE1YTQxMWRiY2NhZjIzYzVmODlhNzg0ODljNTg1NDFmYzQ0ZTAwZS4uZGNkMjUzMmUwZGMwNTY1
MzEzOGQwNGFhNDFmZWJhYzJlMjM4ZWQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ4MSw2
ICs0ODEsOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2Vi
YXVkaW8vUGFubmVyT3B0aW9ucy5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL1Bhbm5pbmdNb2Rl
bFR5cGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaWRsCisgICAgTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5pZGwKKyAgICBNb2R1bGVzL3dl
YmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9TY3Jp
cHRQcm9jZXNzb3JOb2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUu
aWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaWRsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBjOTM2MzI5
YzRmMDYwYjM0NjE5Y2FjYzY5YTM3Nzg4ZTIxOWZmN2U4Li4wNDQ4NDdlMWNlNTYwZDhhYzYyZTYx
ZmRiMWQ5ZTk0ODI0NWQ4NDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKQEAgLTMzMCw2ICszMzAsOCBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1
ZGlvL1Bhbm5lck9wdGlvbnMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1Bh
bm5pbmdNb2RlbFR5cGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1Blcmlv
ZGljV2F2ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZl
Q29uc3RyYWludHMuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGlj
V2F2ZU9wdGlvbnMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFBy
b2Nlc3Nvck5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFw
ZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0Nv
bnRleHQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IGMwMDI1OTVlNjExNTExMzEyZDBlNzBlNWQzNWVhYzIyMjZlOWFiZTEuLjc1
OGQ4ZmMwOTgxZmQ0OTQzZTVhYmVjNWI5OTllZjlhOWY1YjE3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzE2LDYgKzEzMTYs
MTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJm
b3JtYW5jZVRpbWluZy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTUGVyZm9ybWFuY2VUaW1pbmcuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlcmlvZGljV2F2ZS5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRz
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJp
b2RpY1dhdmVDb25zdHJhaW50cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1BlcmlvZGljV2F2ZU9wdGlvbnMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlcmlvZGljV2F2ZU9wdGlvbnMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQaWN0dXJlSW5QaWN0dXJl
V2luZG93LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUGxheWJhY2tEaXJlY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCBkNjVmYzJlOGI3YTczNjY0YjUwYmQ2ZTU4M2U2N2U2MThkYTNiNjhk
Li4yMjI0NDAxNzk4MWQ1MzNiOTljZjE2ZDQ4NzE0NjgyMzA2OTM1ZmFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQxMyw2ICs0MTMsOCBAQCBKU19CSU5ESU5HX0lETFMgPSBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck9wdGlvbnMuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vUGFubmluZ01vZGVsVHlwZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaWRsIFwKKyAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAKaW5kZXggYzk3ZjE4OGU0OTAyYzQ0Zjc3OWE0ZGY0OTU3Y2I3M2M1NTJmNWI4My4uNTk3
YjA2YWRlNTI2OTEyYWIxMjQ4NWE3YTZjOGFlZGNiMzI1MjA5MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCkBAIC02NDks
NiArNjQ5LDI1IEBAIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBCYXNlQXVkaW9Db250
ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUoRmxvYXQzMkFycmF5CiAgICAgcmV0dXJuIFBlcmlvZGlj
V2F2ZTo6Y3JlYXRlKHNhbXBsZVJhdGUoKSwgcmVhbCwgaW1hZ2luYXJ5KTsKIH0KIAorRXhjZXB0
aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IEJhc2VBdWRpb0NvbnRleHQ6OmNyZWF0ZVBlcmlvZGlj
V2F2ZShWZWN0b3I8ZmxvYXQ+JiByZWFsLCBWZWN0b3I8ZmxvYXQ+JiBpbWFnaW5hcnksIGNvbnN0
IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKK3sKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOworICAgIAorICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
aWYgKG1faXNTdG9wU2NoZWR1bGVkKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IgfTsKKyAgICAKKyAgICBpZiAocmVhbC5zaXplKCkgIT0gaW1hZ2luYXJ5LnNp
emUoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAicmVhbCBh
bmQgaW1hZ2luYXJ5IG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGgiX3MgfTsKKyAgICAKKyAgICBQ
ZXJpb2RpY1dhdmVPcHRpb25zKiBvcHRpb25zID0gbmV3IFBlcmlvZGljV2F2ZU9wdGlvbnMoKTsK
KyAgICBvcHRpb25zLT5yZWFsID0gcmVhbDsKKyAgICBvcHRpb25zLT5pbWFnID0gaW1hZ2luYXJ5
OworICAgIG9wdGlvbnMtPmRpc2FibGVOb3JtYWxpemF0aW9uID0gY29uc3RyYWludHMuZGlzYWJs
ZU5vcm1hbGl6YXRpb247CisgICAgbGF6eUluaXRpYWxpemUoKTsKKyAgICByZXR1cm4gUGVyaW9k
aWNXYXZlOjpjcmVhdGUoKnRoaXMsICpvcHRpb25zKTsKK30KKwogdm9pZCBCYXNlQXVkaW9Db250
ZXh0Ojpub3RpZnlOb2RlRmluaXNoZWRQcm9jZXNzaW5nKEF1ZGlvTm9kZSogbm9kZSkKIHsKICAg
ICBBU1NFUlQoaXNBdWRpb1RocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKaW5kZXggNDllN2UzYTkzZWRlNTczMmI0ODgx
MmFlMjg0YmJmOGZkZDlhZTYwMi4uZWMzNTUwNzczZjI5ODU1ODQ2NDAwMmFjZTdkYTFiMTQ5ZWU3
YTlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmgKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgog
I2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVj
ZXIuaCIKKyNpbmNsdWRlICJQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oIgorI2luY2x1ZGUgIlBl
cmlvZGljV2F2ZU9wdGlvbnMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJWaXNpYmlsaXR5
Q2hhbmdlQ2xpZW50LmgiCkBAIC0xNTMsNiArMTU1LDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlv
bk9yPFJlZjxDaGFubmVsTWVyZ2VyTm9kZT4+IGNyZWF0ZUNoYW5uZWxNZXJnZXIoc2l6ZV90IG51
bWJlck9mSW5wdXRzKTsKICAgICBFeGNlcHRpb25PcjxSZWY8T3NjaWxsYXRvck5vZGU+PiBjcmVh
dGVPc2NpbGxhdG9yKCk7CiAgICAgRXhjZXB0aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IGNyZWF0
ZVBlcmlvZGljV2F2ZShGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0MzJBcnJheSYgaW1hZ2luYXJ5
KTsKKyAgICBFeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNXYXZlPj4gY3JlYXRlUGVyaW9kaWNXYXZl
KFZlY3RvcjxmbG9hdD4mIHJlYWwsIFZlY3RvcjxmbG9hdD4mIGltYWdpbmFyeSwgY29uc3QgUGVy
aW9kaWNXYXZlQ29uc3RyYWludHMmID0geyB9KTsKIAogICAgIC8vIFdoZW4gYSBzb3VyY2Ugbm9k
ZSBoYXMgbm8gbW9yZSBwcm9jZXNzaW5nIHRvIGRvIChoYXMgZmluaXNoZWQgcGxheWluZyksIHRo
ZW4gaXQgdGVsbHMgdGhlIGNvbnRleHQgdG8gZGVyZWZlcmVuY2UgaXQuCiAgICAgdm9pZCBub3Rp
ZnlOb2RlRmluaXNoZWRQcm9jZXNzaW5nKEF1ZGlvTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuY3BwCmluZGV4IGVjOWExN2M0ZjU2ZWI5
OTY2ZGMxNzYyN2U5MzQwNWJhMWZkNDhjNDYuLjE2YTI1YzVhNTBlMmZiOTM5MDI1ZjllZWUxNGRl
ODAwYWUzNjk5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
UGVyaW9kaWNXYXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bl
cmlvZGljV2F2ZS5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IAogdXNpbmcgbmFtZXNwYWNlIFZlY3Rvck1hdGg7CiAKKy8vIEZJWE1FOiBSZW1vdmUgb25jZSBv
bGQgY29uc3RydWN0b3IgaXMgcGhhc2VkIG91dAogUmVmPFBlcmlvZGljV2F2ZT4gUGVyaW9kaWNX
YXZlOjpjcmVhdGUoZmxvYXQgc2FtcGxlUmF0ZSwgRmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMy
QXJyYXkmIGltYWdpbmFyeSkKIHsKICAgICBBU1NFUlQocmVhbC5sZW5ndGgoKSA9PSBpbWFnaW5h
cnkubGVuZ3RoKCkpOwpAQCAtNTMsNiArNTQsMzQgQEAgUmVmPFBlcmlvZGljV2F2ZT4gUGVyaW9k
aWNXYXZlOjpjcmVhdGUoZmxvYXQgc2FtcGxlUmF0ZSwgRmxvYXQzMkFycmF5JiByZWFsLCBGbG8K
ICAgICByZXR1cm4gd2F2ZVRhYmxlOwogfQogCitFeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNXYXZl
Pj4gUGVyaW9kaWNXYXZlOjpjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
UGVyaW9kaWNXYXZlT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBWZWN0b3I8ZmxvYXQ+IHJlYWw7
CisgICAgVmVjdG9yPGZsb2F0PiBpbWFnOworCisgICAgaWYgKG9wdGlvbnMucmVhbC5oYXNWYWx1
ZSgpKSB7CisgICAgICAgIHJlYWwgPSBvcHRpb25zLnJlYWwudmFsdWUoKTsKKyAgICAgICAgaWYg
KG9wdGlvbnMuaW1hZy5oYXNWYWx1ZSgpKQorICAgICAgICAgICAgaW1hZyA9IG9wdGlvbnMuaW1h
Zy52YWx1ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbWFnLnJlc2l6ZShyZWFsLnNp
emUoKSk7CisgICAgfSBlbHNlIGlmIChvcHRpb25zLmltYWcuaGFzVmFsdWUoKSkgeworICAgICAg
ICBpbWFnID0gb3B0aW9ucy5pbWFnLnZhbHVlKCk7CisgICAgICAgIHJlYWwucmVzaXplKGltYWcu
c2l6ZSgpKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZWFsLnJlc2l6ZSgyKTsKKyAgICAgICAg
aW1hZy5yZXNpemUoMik7CisgICAgICAgIGltYWdbMV0gPSAxOworICAgIH0KKworICAgIGlmIChy
ZWFsLnNpemUoKSAhPSBpbWFnLnNpemUoKSB8fCByZWFsLnNpemUoKSA8IDIgfHwgaW1hZy5zaXpl
KCkgPCAyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IsICJpbWFn
IGFuZCByZWFsIGhhdmUgaW5jb3JyZWN0IGxlbmd0aHMiX3MgfTsKKyAgICAKKyAgICBhdXRvIHdh
dmVUYWJsZSA9IGFkb3B0UmVmKCpuZXcgUGVyaW9kaWNXYXZlKGNvbnRleHQuc2FtcGxlUmF0ZSgp
KSk7CisgICAgd2F2ZVRhYmxlLT5jcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhyZWFsLmRhdGEoKSwg
aW1hZy5kYXRhKCksIHJlYWwuc2l6ZSgpLCBvcHRpb25zLmRpc2FibGVOb3JtYWxpemF0aW9uKTsK
KyAgICByZXR1cm4gd2F2ZVRhYmxlOworfQorCiBSZWY8UGVyaW9kaWNXYXZlPiBQZXJpb2RpY1dh
dmU6OmNyZWF0ZVNpbmUoZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICBSZWY8UGVyaW9kaWNXYXZl
PiB3YXZlVGFibGUgPSBhZG9wdFJlZigqbmV3IFBlcmlvZGljV2F2ZShzYW1wbGVSYXRlKSk7CkBA
IC0xNDIsNyArMTcxLDcgQEAgdW5zaWduZWQgUGVyaW9kaWNXYXZlOjpudW1iZXJPZlBhcnRpYWxz
Rm9yUmFuZ2UodW5zaWduZWQgcmFuZ2VJbmRleCkgY29uc3QKIC8vIENvbnZlcnQgaW50byB0aW1l
LWRvbWFpbiB3YXZlIHRhYmxlcy4KIC8vIE9uZSB0YWJsZSBpcyBjcmVhdGVkIGZvciBlYWNoIHJh
bmdlIGZvciBub24tYWxpYXNpbmcgcGxheWJhY2sgYXQgZGlmZmVyZW50IHBsYXliYWNrIHJhdGVz
LgogLy8gVGh1cywgaGlnaGVyIHJhbmdlcyBoYXZlIG1vcmUgaGlnaC1mcmVxdWVuY3kgcGFydGlh
bHMgY3VsbGVkIG91dC4KLXZvaWQgUGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRlZFRhYmxl
cyhjb25zdCBmbG9hdCogcmVhbERhdGEsIGNvbnN0IGZsb2F0KiBpbWFnRGF0YSwgdW5zaWduZWQg
bnVtYmVyT2ZDb21wb25lbnRzKQordm9pZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVk
VGFibGVzKGNvbnN0IGZsb2F0KiByZWFsRGF0YSwgY29uc3QgZmxvYXQqIGltYWdEYXRhLCB1bnNp
Z25lZCBudW1iZXJPZkNvbXBvbmVudHMsIGJvb2wgZGlzYWJsZU5vcm1hbGl6YXRpb24pCiB7CiAg
ICAgZmxvYXQgbm9ybWFsaXphdGlvblNjYWxlID0gMTsKIApAQCAtMTk5LDEyICsyMjgsMTQgQEAg
dm9pZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVzKGNvbnN0IGZsb2F0KiBy
ZWFsRGF0YSwgY29uc3QgZmxvYXQqIGkKICAgICAgICAgZnJhbWUuZG9JbnZlcnNlRkZUKGRhdGEp
OwogCiAgICAgICAgIC8vIEZvciB0aGUgZmlyc3QgcmFuZ2UgKHdoaWNoIGhhcyB0aGUgaGlnaGVz
dCBwb3dlciksIGNhbGN1bGF0ZSBpdHMgcGVhayB2YWx1ZSB0aGVuIGNvbXB1dGUgbm9ybWFsaXph
dGlvbiBzY2FsZS4KLSAgICAgICAgaWYgKCFyYW5nZUluZGV4KSB7Ci0gICAgICAgICAgICBmbG9h
dCBtYXhWYWx1ZTsKLSAgICAgICAgICAgIHZtYXhtZ3YoZGF0YSwgMSwgJm1heFZhbHVlLCBtX3Bl
cmlvZGljV2F2ZVNpemUpOwotCi0gICAgICAgICAgICBpZiAobWF4VmFsdWUpCi0gICAgICAgICAg
ICAgICAgbm9ybWFsaXphdGlvblNjYWxlID0gMS4wZiAvIG1heFZhbHVlOworICAgICAgICBpZiAo
IWRpc2FibGVOb3JtYWxpemF0aW9uKSB7CisgICAgICAgICAgICBpZiAoIXJhbmdlSW5kZXgpIHsK
KyAgICAgICAgICAgICAgICBmbG9hdCBtYXhWYWx1ZTsKKyAgICAgICAgICAgICAgICB2bWF4bWd2
KGRhdGEsIDEsICZtYXhWYWx1ZSwgbV9wZXJpb2RpY1dhdmVTaXplKTsKKworICAgICAgICAgICAg
ICAgIGlmIChtYXhWYWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXphdGlvblNjYWxl
ID0gMS4wZiAvIG1heFZhbHVlOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAg
Ly8gQXBwbHkgbm9ybWFsaXphdGlvbiBzY2FsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5oCmluZGV4IDc5YTJkODJhYzZjYzMxZjU0NmY5OGQ0MmEx
YzUxZjI1NzVkNTY0NDEuLmU5YzRjNjI3NGJjNGQxZDY2NjYxNjc5NGMwZDdiNmU5YmEwZDYxMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaApA
QCAtMjksNiArMjksNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdWRpb0FycmF5Lmgi
CisjaW5jbHVkZSAiUGVyaW9kaWNXYXZlT3B0aW9ucy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0Zsb2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgpAQCAtNDQsNyArNDUsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVy
aW9kaWNXYXZlPiBjcmVhdGVUcmlhbmdsZShmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIENy
ZWF0ZXMgYW4gYXJiaXRyYXJ5IHdhdmUgZ2l2ZW4gdGhlIGZyZXF1ZW5jeSBjb21wb25lbnRzIChG
b3VyaWVyIGNvZWZmaWNpZW50cykuCisgICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIG9sZCBjb25z
dHJ1Y3RvciBpcyBwaGFzZWQgb3V0CiAgICAgc3RhdGljIFJlZjxQZXJpb2RpY1dhdmU+IGNyZWF0
ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0MzJBcnJheSYgaW1h
Zyk7CisgICAgCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBjcmVh
dGUoQmFzZUF1ZGlvQ29udGV4dCYsIGNvbnN0IFBlcmlvZGljV2F2ZU9wdGlvbnMmID0geyB9KTsK
IAogICAgIC8vIFJldHVybnMgcG9pbnRlcnMgdG8gdGhlIGxvd2VyIGFuZCBoaWdoZXIgd2F2ZSBk
YXRhIGZvciB0aGUgcGl0Y2ggcmFuZ2UgY29udGFpbmluZwogICAgIC8vIHRoZSBnaXZlbiBmdW5k
YW1lbnRhbCBmcmVxdWVuY3kuIFRoZXNlIHR3byB0YWJsZXMgYXJlIGluIGFkamFjZW50ICJwaXRj
aCIgcmFuZ2VzCkBAIC05Miw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbnVtYmVy
T2ZQYXJ0aWFsc0ZvclJhbmdlKHVuc2lnbmVkIHJhbmdlSW5kZXgpIGNvbnN0OwogCiAgICAgLy8g
Q3JlYXRlcyB0YWJsZXMgYmFzZWQgb24gbnVtYmVyT2ZDb21wb25lbnRzIEZvdXJpZXIgY29lZmZp
Y2llbnRzLgotICAgIHZvaWQgY3JlYXRlQmFuZExpbWl0ZWRUYWJsZXMoY29uc3QgZmxvYXQqIHJl
YWwsIGNvbnN0IGZsb2F0KiBpbWFnLCB1bnNpZ25lZCBudW1iZXJPZkNvbXBvbmVudHMpOworICAg
IHZvaWQgY3JlYXRlQmFuZExpbWl0ZWRUYWJsZXMoY29uc3QgZmxvYXQqIHJlYWwsIGNvbnN0IGZs
b2F0KiBpbWFnLCB1bnNpZ25lZCBudW1iZXJPZkNvbXBvbmVudHMsIGJvb2wgPSBmYWxzZSk7CiAg
ICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiBtX2JhbmRMaW1pdGVk
VGFibGVzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9QZXJpb2RpY1dhdmUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJp
b2RpY1dhdmUuaWRsCmluZGV4IDBiZjA5MjIyMWFkN2FkMGFmNjdjZjI0NDc5OTY4YzRjNjg4Y2M3
NTYuLjM3ODg0ZGVjOWJhOTQxZmE4NDA5M2E0ZmViZjkzMDk4YjM1NjUwOWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGwKQEAgLTI3LDUg
KzI3LDUgQEAKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAgSW1wbGVtZW50YXRpb25M
YWNrc1ZUYWJsZQogXSBpbnRlcmZhY2UgUGVyaW9kaWNXYXZlIHsKLQorICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gY29uc3RydWN0b3IoQmFzZUF1ZGlvQ29udGV4dCBjb250ZXh0LCBvcHRpb25hbCBQ
ZXJpb2RpY1dhdmVPcHRpb25zIG9wdGlvbnMpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMjY1NzUyYjAzYWMxMjBiYTU5NGI4ZjU2MmU3MjNjOTMxNjQ3NmJmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25z
dHJhaW50cy5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShXRUJfQVVESU8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFBl
cmlvZGljV2F2ZUNvbnN0cmFpbnRzIHsKKyAgICBib29sIGRpc2FibGVOb3JtYWxpemF0aW9uID0g
ZmFsc2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Q
ZXJpb2RpY1dhdmVDb25zdHJhaW50cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYmI1ZjgyYTRhYjFj
MzVjOGVkZGI3NDE2ZmNkZGRkOGYwNjRiMDdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5pZGwKQEAgLTAs
MCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorXSBk
aWN0aW9uYXJ5IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzIHsKKyAgICBib29sZWFuIGRpc2FibGVO
b3JtYWxpemF0aW9uID0gZmFsc2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGFkMWE4N2Qy
ZDllZGM1MmI0OGQ2MWEzNjVlMGM1MGM4YWJkYzBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmgKQEAgLTAsMCAr
MSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJ
TykKKworI2luY2x1ZGUgIlBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RydWN0IFBlcmlvZGljV2F2ZU9wdGlvbnMgOiBQZXJpb2RpY1dhdmVDb25z
dHJhaW50cyB7CisgICAgT3B0aW9uYWw8VmVjdG9yPGZsb2F0Pj4gcmVhbDsKKyAgICBPcHRpb25h
bDxWZWN0b3I8ZmxvYXQ+PiBpbWFnOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxYjRl
NDk2ZGQxNWVhMTg4MzQ1NGYxMGYwY2RmMmE0YTNlYzRkZGEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaWRsCkBA
IC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworWworICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywK
K10gZGljdGlvbmFyeSBQZXJpb2RpY1dhdmVPcHRpb25zIDogUGVyaW9kaWNXYXZlQ29uc3RyYWlu
dHMgeworICAgIHNlcXVlbmNlPGZsb2F0PiByZWFsOworICAgIHNlcXVlbmNlPGZsb2F0PiBpbWFn
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKaW5kZXggZmQwMTIxOTk1NDE5NmFlOTRjMmEzMmY2YjFhNTQ5ZGM1
NjJiMGI4Yi4uMTQ2NmEwN2NmMjliM2Y4ZTZkNGIxMDllMTQwYWVlZTdmOGFjNzU5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKQEAgLTMxNzAsNiArMzE3MCw4IEBAIEpTUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5jcHAKIEpTUGVyZm9ybWFuY2VTZXJ2ZXJUaW1pbmcuY3BwCiBKU1BlcmZvcm1hbmNlVGltaW5n
LmNwcAogSlNQZXJpb2RpY1dhdmUuY3BwCitKU1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmNwcAor
SlNQZXJpb2RpY1dhdmVPcHRpb25zLmNwcAogSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcAog
SlNQbGF5YmFja0RpcmVjdGlvbi5jcHAKIEpTUG9pbnRlckV2ZW50LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdkOTQzOWEx
ZWU4ZjVhNzIxZmYwOTNmYmRjMTNiYzg0ZDU4NWY1MmEuLjdkMTUwMmIxZDM4YzhlN2I1NmViYmQ4
NGMyYWM4ZDk0MzI3MTUyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwNDUsNiArNTA0NSw4IEBACiAJCUU1QkE3RDYzMTUx
NDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1QkE3RDYyMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5n
dGhGdW5jdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFNzE0NjdCMzI0QUJBRUYyMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjEyNEFC
QUVGMTAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaCAqLzsgfTsKIAkJRTcxNDY3QjYyNEFC
QUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3MTQ2N0I1MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJP
cHRpb25zLmggKi87IH07CisJCUU3NTVFODkyMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dh
dmVDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTc1NUU4OEYyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRz
LmggKi87IH07CisJCUU3NTVFODk5MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRp
b25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzU1
RTg5NjI0Qzc0NjFEMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0aW9ucy5oICovOyB9OwogCQlF
Nzg1RDkxNTI0QjREMUNBMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5MTEyNEI0RDFCMTAwMTRE
QjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaCAqLzsgfTsKIAkJRTc4NUQ5MzQyNEI2MzZGRjAwMTRE
QjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5MzEyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJ
bnRlcnByZXRhdGlvbi5oICovOyB9OwogCQlFNzg1RDk2MTI0QjdGNzM1MDAxNERCMjEgLyogQXVk
aW9Db250ZXh0T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTc4NUQ5NUYyNEI3RjczNDAwMTREQjIxIC8qIEF1ZGlvQ29udGV4dE9wdGlvbnMu
aCAqLzsgfTsKQEAgLTE1ODAwLDYgKzE1ODAyLDEwIEBACiAJCUU3MTQ2N0I0MjRBQkFGMEIwMEZC
MkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb05vZGVPcHRpb25zLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUwIC8q
IFBhbm5lck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFubmVy
T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNzI0QUJBRjJD
MDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGFu
bmVyT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3NTVFODhGMjRD
NzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFNzU1RTg5MTI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTc1NUU4OTYyNEM3NDYxRDAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZU9wdGlvbnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGVyaW9kaWNXYXZlT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFNzU1RTg5ODI0Qzc0NjFEMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0
aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU3ODVEOTExMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENoYW5uZWxDb3VudE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTc4NUQ5MTMyNEI0RDFCMTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IENoYW5uZWxDb3VudE1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNzg1RDkzMTI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENoYW5uZWxJbnRlcnByZXRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjk0NjMsNiArMjk0NjksMTAgQEAKIAkJCQlGRDU4MUZCMTE1MjBGOTNC
MDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmNwcCAqLywKIAkJCQlGRDU4MUZCMjE1MjBGOTNCMDAz
QTdBNzUgLyogUGVyaW9kaWNXYXZlLmggKi8sCiAJCQkJRkQ1ODFGQjMxNTIwRjkzQjAwM0E3QTc1
IC8qIFBlcmlvZGljV2F2ZS5pZGwgKi8sCisJCQkJRTc1NUU4OEYyNEM3NDM0QjAwOUY3QzIzIC8q
IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggKi8sCisJCQkJRTc1NUU4OTEyNEM3NDM0QjAwOUY3
QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCAqLywKKwkJCQlFNzU1RTg5NjI0Qzc0
NjFEMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0aW9ucy5oICovLAorCQkJCUU3NTVFODk4MjRD
NzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRpb25zLmlkbCAqLywKIAkJCQlGRDMxNUZG
MTEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5jcHAgKi8sCiAJCQkJRkQzMTVG
RjIxMkIwMjY3NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuaCAqLywKIAkJCQlGRDMxNUZF
QjEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAgKi8sCkBAIC0zMjYz
Nyw2ICszMjY0Nyw4IEBACiAJCQkJOEFGNEU1NUMxMURDNUE2MzAwMEVEM0RFIC8qIFBlcmZvcm1h
bmNlVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTU0QjVGMzFFMzgzOTNBMDAxRDRFMDMg
LyogUGVyZm9ybWFuY2VVc2VyVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDU4MUZCNTE1
MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNzU1
RTg5MjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUU3NTVFODk5MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRp
b25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUQ1REMyRTBGNDIzQTczMDA4RjIwRkQgLyogUGVy
c3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFEQkMxQjU2
MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFEMkM4MkI3MjM2QTNGNkEwMDU1RDZDNSAvKiBQaWN0dXJlSW5QaWN0dXJlU3Vw
cG9ydC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAz
NjkzNmE4MmZiNTU5MGE2MGNhYzM3MjY0ODE2NWUwY2MxNWRjMjAzLi5iMDg4MTQzM2ViZjMyZDVi
MWU0YWNiOWQ0Y2JjOTY5N2MyNTA2NmM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNy0yMSAgQ2xhcmsgV2FuZyAgPGNsYXJrX3dhbmdAYXBw
bGUuY29tPgorCisgICAgICAgIEFkZGVkIFBlcmlvZGljV2F2ZSBjb25zdHJ1Y3RvciBhY2NvcmRp
bmcgdG8gc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE0NjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmUtYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzIHRoYXQgbm93IHBhc3MuCisKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhw
ZWN0ZWQudHh0OgorCiAyMDIwLTA3LTIwICBDbGFyayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgRml4ZXMgdG8gbWF0Y2ggQmFzZUF1ZGlvQ29udGV4dC5pZGwgdG8gc3Bl
YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3Mu
aHR0cHMud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCA5OWY0YzBjYzEzN2E0YmI3MWMwYjMzZGFi
NGQ0M2UyOTBiOGRhZTZmLi41NmZmODA1Y2I4Yjc1YmE1MWQ1Y2FlNjM3Zjk2ZmExNjg3ZjNiNDAw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5l
c3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dApAQCAtOTY4LDEzICs5NjgsMTMgQEAgUEFTUyBB
dWRpb05vZGUgaW50ZXJmYWNlOiBuZXcgUGFubmVyTm9kZShjb250ZXh0KSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImNoYW5uZWwKIFBBU1MgQXVkaW9Ob2RlIGludGVyZmFjZTogbmV3IFBhbm5lck5v
ZGUoY29udGV4dCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVsQ291bnRNb2RlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgQXVkaW9Ob2RlIGludGVyZmFjZTogbmV3IFBhbm5lck5v
ZGUoY29udGV4dCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVsSW50ZXJwcmV0YXRpb24i
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBQZXJpb2RpY1dhdmUgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgUGVyaW9kaWNX
YXZlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9lcXVhbHM6IHdyb25nIHZhbHVlIGZv
ciBQZXJpb2RpY1dhdmUubGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIFBlcmlvZGlj
V2F2ZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgUGVyaW9kaWNXYXZlIGludGVyZmFj
ZSBvYmplY3QgbmFtZSAKIFBBU1MgUGVyaW9kaWNXYXZlIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBQZXJpb2Rp
Y1dhdmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAogUEFTUyBQZXJpb2RpY1dh
dmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotRkFJTCBQZXJpb2RpY1dhdmUg
bXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgUGVyaW9kaWNXYXZlKGNvbnRleHQpIGFz
c2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3Qg
ZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiVHlwZUVycm9yOiBmdW5jdGlvbiBpcyBub3Qg
YSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IFBlcmlvZGljV2F2ZShjb250ZXh0KScpIgot
RkFJTCBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFBlcmlvZGljV2F2ZShjb250ZXh0KSBhc3NlcnRf
ZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVj
dGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlR5cGVFcnJvcjogZnVuY3Rpb24gaXMgbm90IGEgY29u
c3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyBQZXJpb2RpY1dhdmUoY29udGV4dCknKSIKK1BBU1Mg
UGVyaW9kaWNXYXZlIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFBlcmlvZGljV2F2
ZShjb250ZXh0KSAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBQZXJpb2RpY1dhdmUoY29u
dGV4dCkgCiBQQVNTIFNjcmlwdFByb2Nlc3Nvck5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgU2NyaXB0UHJvY2Vzc29yTm9k
ZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgU2NyaXB0UHJvY2Vzc29yTm9kZSBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404952</attachid>
            <date>2020-07-22 12:56:51 -0700</date>
            <delta_ts>2020-07-22 14:30:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214615-20200722155650.patch</filename>
            <type>text/plain</type>
            <size>34396</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVlMDMzNTY2NDhiZjAx
OTczNDgwY2YwMmZhNGNhY2I2NTRmZmM5NS4uYTVmZThjNDcxYzEyMjdiYWQzYTIxNjIyOGUxNDFj
OWIzNjg3YTRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIwLTA3LTIyICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgUGVyaW9kaWNX
YXZlIGNvbnN0cnVjdG9yIGFjY29yZGluZyB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZS1iYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdGhh
dCBub3cgcGFzcy4KKworICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmUgY29uc3RydWN0b3IgYWNj
b3JkaW5nIHRvIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jcGVyaW9kaWN3
YXZlLgorICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cywgUGVyaW9kaWNXYXZl
T3B0aW9ucyBmaWxlcy4gVXBkYXRlZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFi
bGVzCisgICAgICAgIHRvIG5vcm1hbGl6ZSB3YXZlZm9ybSBiYXNlZCBvbiBzcGVjOiBodHRwczov
L3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI3dhdmVmb3JtLW5vcm1hbGl6YXRpb24uCisgICAgICAg
IEFkZGVkIHVwZGF0ZWQgY3JlYXRlUGVyaW9kaWNXYXZlIG1ldGhvZCBpbiBCYXNlQXVkaW9Db250
ZXh0LCBhbmQgbW92ZWQgb2xkIGNyZWF0ZVBlcmlvZGljV2F2ZSBtZXRob2QKKyAgICAgICAgSW50
byBXZWJLaXRBdWRpb0NvbnRleHQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmdldE1heFBlcmlvZGljV2F2ZUxlbmd0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0OjpjcmVhdGVQZXJpb2Rp
Y1dhdmUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZUF1ZGlvQ29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmlvZGljV2F2ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmlvZGljV2F2ZTo6
Y3JlYXRlQmFuZExpbWl0ZWRUYWJsZXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGVy
aW9kaWNXYXZlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaDog
QWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50
cy5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0
aW9ucy5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9w
dGlvbnMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlv
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBdWRpb0NvbnRleHQ6OmNyZWF0
ZVBlcmlvZGljV2F2ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0Nv
bnRleHQuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMDctMjEgIFhhYmllciBSb2RyaWd1ZXogQ2Fs
dmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXVsxLjE4XSBt
ZWRpYXN0cmVhbXNyYyBlbGVtZW50IGhpdHMgYXNzZXJ0IGluIGdzdCAtY29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCAyYTVhNDExZGJjY2FmMjNjNWY4OWE3ODQ4OWM1ODU0MWZjNDRlMDBlLi5k
Y2QyNTMyZTBkYzA1NjUzMTM4ZDA0YWE0MWZlYmFjMmUyMzhlZDhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtNDgxLDYgKzQ4MSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAg
ICAgTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXVk
aW8vUGFubmluZ01vZGVsVHlwZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2
ZS5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbAor
ICAgIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwKICAgICBNb2R1bGVz
L3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9X
YXZlU2hhcGVyTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4
dC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CmluZGV4IGM5MzYzMjljNGYwNjBiMzQ2MTljYWNjNjlhMzc3ODhlMjE5ZmY3ZTguLjA0NDg0N2Ux
Y2U1NjBkOGFjNjJlNjFmZGIxZDllOTQ4MjQ1ZDg0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMzMwLDYgKzMzMCw4IEBAICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViYXVkaW8vUGFubmVyT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvd2ViYXVkaW8vUGFubmluZ01vZGVsVHlwZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
d2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
YXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
YXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2Vi
YXVkaW8vV2F2ZVNoYXBlck5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlv
L1dlYktpdEF1ZGlvQ29udGV4dC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYzAwMjU5NWU2MTE1MTEzMTJkMGU3MGU1ZDM1ZWFj
MjIyNmU5YWJlMS4uNzU4ZDhmYzA5ODFmZDQ5NDNlNWFiZWM1Yjk5OWVmOWE5ZjViMTcwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAg
LTEzMTYsNiArMTMxNiwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1BlcmZvcm1hbmNlVGltaW5nLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJmb3JtYW5jZVRpbWluZy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlcmlvZGljV2F2ZS5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyaW9kaWNXYXZlLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyaW9kaWNX
YXZlQ29uc3RyYWludHMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyaW9kaWNXYXZlT3B0aW9ucy5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyaW9kaWNXYXZlT3B0
aW9ucy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Bp
Y3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQbGF5YmFja0RpcmVjdGlvbi5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGQ2NWZjMmU4YjdhNzM2NjRiNTBiZDZlNTgz
ZTY3ZTYxOGRhM2I2OGQuLjIyMjQ0MDE3OTgxZDUzM2I5OWNmMTZkNDg3MTQ2ODIzMDY5MzVmYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDEzLDYgKzQxMyw4IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyT3B0
aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9QYW5uaW5nTW9kZWxU
eXBlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJh
aW50cy5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVP
cHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nl
c3Nvck5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBl
ck5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9D
b250ZXh0LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmNwcAppbmRleCBjOTdmMTg4ZTQ5MDJjNDRmNzc5YTRkZjQ5NTdjYjcz
YzU1MmY1YjgzLi4wMDA0MmExMjhiZmIzYzUzZDEyYjEzZTRiOGQxMzI5ZGViNzU5MmFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAKQEAgLTI5OCw2ICsyOTgsMTEgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpzZXRTdGF0
ZShTdGF0ZSBzdGF0ZSkKICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiB9CiAKK3Vuc2lnbmVk
IEJhc2VBdWRpb0NvbnRleHQ6OmdldE1heFBlcmlvZGljV2F2ZUxlbmd0aCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIE1heFBlcmlvZGljV2F2ZUxlbmd0aDsKK30KKwogdm9pZCBCYXNlQXVkaW9Db250
ZXh0OjpzdG9wKCkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwpAQCAtNjM1LDE4
ICs2NDAsMjMgQEAgRXhjZXB0aW9uT3I8UmVmPE9zY2lsbGF0b3JOb2RlPj4gQmFzZUF1ZGlvQ29u
dGV4dDo6Y3JlYXRlT3NjaWxsYXRvcigpCiAgICAgcmV0dXJuIG5vZGU7CiB9CiAKLUV4Y2VwdGlv
bk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBCYXNlQXVkaW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dh
dmUoRmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMyQXJyYXkmIGltYWdpbmFyeSkKK0V4Y2VwdGlv
bk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBCYXNlQXVkaW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dh
dmUoVmVjdG9yPGZsb2F0PiYmIHJlYWwsIFZlY3RvcjxmbG9hdD4mJiBpbWFnaW5hcnksIGNvbnN0
IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwogICAgIAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAg
aWYgKG1faXNTdG9wU2NoZWR1bGVkKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IgfTsKLQotICAgIGlmIChyZWFsLmxlbmd0aCgpICE9IGltYWdpbmFyeS5sZW5n
dGgoKSB8fCAocmVhbC5sZW5ndGgoKSA+IE1heFBlcmlvZGljV2F2ZUxlbmd0aCkgfHwgIXJlYWwu
bGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9Owor
ICAgIAorICAgIGlmIChyZWFsLnNpemUoKSAhPSBpbWFnaW5hcnkuc2l6ZSgpKQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IsICJyZWFsIGFuZCBpbWFnaW5hcnkgbXVz
dCBoYXZlIHRoZSBzYW1lIGxlbmd0aCJfcyB9OworICAgIAorICAgIFBlcmlvZGljV2F2ZU9wdGlv
bnMgb3B0aW9uczsKKyAgICBvcHRpb25zLnJlYWwgPSBXVEZNb3ZlKHJlYWwpOworICAgIG9wdGlv
bnMuaW1hZyA9IFdURk1vdmUoaW1hZ2luYXJ5KTsKKyAgICBvcHRpb25zLmRpc2FibGVOb3JtYWxp
emF0aW9uID0gY29uc3RyYWludHMuZGlzYWJsZU5vcm1hbGl6YXRpb247CiAgICAgbGF6eUluaXRp
YWxpemUoKTsKLSAgICByZXR1cm4gUGVyaW9kaWNXYXZlOjpjcmVhdGUoc2FtcGxlUmF0ZSgpLCBy
ZWFsLCBpbWFnaW5hcnkpOworICAgIHJldHVybiBQZXJpb2RpY1dhdmU6OmNyZWF0ZSgqdGhpcywg
V1RGTW92ZShvcHRpb25zKSk7CiB9CiAKIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6bm90aWZ5Tm9k
ZUZpbmlzaGVkUHJvY2Vzc2luZyhBdWRpb05vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCmluZGV4IDQ5ZTdlM2E5M2Vk
ZTU3MzJiNDg4MTJhZTI4NGJiZjhmZGQ5YWU2MDIuLjEzNjJhZTA1YWQ3NjAzNjg3ODlmZThkZDFk
ZmFkNTJkOTcyMDZlNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5oCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiRXZlbnRU
YXJnZXQuaCIKICNpbmNsdWRlICJNZWRpYUNhblN0YXJ0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJN
ZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCIKKyNp
bmNsdWRlICJQZXJpb2RpY1dhdmVPcHRpb25zLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNl
c3Npb24uaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAi
VmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIgpAQCAtMTUyLDcgKzE1NCw3IEBAIHB1YmxpYzoKICAg
ICBFeGNlcHRpb25PcjxSZWY8Q2hhbm5lbFNwbGl0dGVyTm9kZT4+IGNyZWF0ZUNoYW5uZWxTcGxp
dHRlcihzaXplX3QgbnVtYmVyT2ZPdXRwdXRzKTsKICAgICBFeGNlcHRpb25PcjxSZWY8Q2hhbm5l
bE1lcmdlck5vZGU+PiBjcmVhdGVDaGFubmVsTWVyZ2VyKHNpemVfdCBudW1iZXJPZklucHV0cyk7
CiAgICAgRXhjZXB0aW9uT3I8UmVmPE9zY2lsbGF0b3JOb2RlPj4gY3JlYXRlT3NjaWxsYXRvcigp
OwotICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBjcmVhdGVQZXJpb2RpY1dhdmUo
RmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMyQXJyYXkmIGltYWdpbmFyeSk7CisgICAgRXhjZXB0
aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IGNyZWF0ZVBlcmlvZGljV2F2ZShWZWN0b3I8ZmxvYXQ+
JiYgcmVhbCwgVmVjdG9yPGZsb2F0PiYmIGltYWdpbmFyeSwgY29uc3QgUGVyaW9kaWNXYXZlQ29u
c3RyYWludHMmID0geyB9KTsKIAogICAgIC8vIFdoZW4gYSBzb3VyY2Ugbm9kZSBoYXMgbm8gbW9y
ZSBwcm9jZXNzaW5nIHRvIGRvIChoYXMgZmluaXNoZWQgcGxheWluZyksIHRoZW4gaXQgdGVsbHMg
dGhlIGNvbnRleHQgdG8gZGVyZWZlcmVuY2UgaXQuCiAgICAgdm9pZCBub3RpZnlOb2RlRmluaXNo
ZWRQcm9jZXNzaW5nKEF1ZGlvTm9kZSopOwpAQCAtMzEwLDYgKzMxMiw4IEBAIHByb3RlY3RlZDoK
IAogICAgIHZvaWQgYWRkUmVhY3Rpb24oU3RhdGUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYm
KTsKICAgICB2b2lkIHNldFN0YXRlKFN0YXRlKTsKKyAgICAKKyAgICB1bnNpZ25lZCBnZXRNYXhQ
ZXJpb2RpY1dhdmVMZW5ndGgoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2b2lkIGNvbnN0cnVj
dENvbW1vbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFz
ZUF1ZGlvQ29udGV4dC5pZGwKaW5kZXggNDM1MGIxZTBjZWI1MzVhMWE3YjkwMTA4OGI4NDZmZjFi
MDlhMjM1NC4uMTk4NTMyNDBkZWVlZTBhYzFkMjg2YjAyNDFiMmU4ZGUyMDg0Yjk2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
aWRsCkBAIC02NSw3ICs2NSw3IEBACiAgICAgW01heVRocm93RXhjZXB0aW9uXSBBbmFseXNlck5v
ZGUgY3JlYXRlQW5hbHlzZXIoKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFNjcmlwdFByb2Nl
c3Nvck5vZGUgY3JlYXRlU2NyaXB0UHJvY2Vzc29yKG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgYnVm
ZmVyU2l6ZSA9IDAsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJbnB1dENoYW5uZWxz
ID0gMiwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBudW1iZXJPZk91dHB1dENoYW5uZWxzID0gMik7
CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBPc2NpbGxhdG9yTm9kZSBjcmVhdGVPc2NpbGxhdG9y
KCk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBQZXJpb2RpY1dhdmUgY3JlYXRlUGVyaW9kaWNX
YXZlKEZsb2F0MzJBcnJheSByZWFsLCBGbG9hdDMyQXJyYXkgaW1hZyk7CisgICAgW01heVRocm93
RXhjZXB0aW9uXSBQZXJpb2RpY1dhdmUgY3JlYXRlUGVyaW9kaWNXYXZlKHNlcXVlbmNlPGZsb2F0
PiByZWFsLCBzZXF1ZW5jZTxmbG9hdD4gaW1hZywgb3B0aW9uYWwgUGVyaW9kaWNXYXZlT3B0aW9u
cyBvcHRpb25zKTsKIAogICAgIC8vIENoYW5uZWwgc3BsaXR0aW5nIGFuZCBtZXJnaW5nCiAgICAg
W01heVRocm93RXhjZXB0aW9uXSBDaGFubmVsU3BsaXR0ZXJOb2RlIGNyZWF0ZUNoYW5uZWxTcGxp
dHRlcihvcHRpb25hbCB1bnNpZ25lZCBsb25nIG51bWJlck9mT3V0cHV0cyA9IDYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuY3BwCmluZGV4IGVj
OWExN2M0ZjU2ZWI5OTY2ZGMxNzYyN2U5MzQwNWJhMWZkNDhjNDYuLjMxOWU2YTZjNGM4NWNiZDUz
NDU4ZmQyMjE3ZTg0YjE2YTA3NmM3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIAogdXNpbmcgbmFtZXNwYWNlIFZlY3Rvck1hdGg7CiAKKy8vIEZJWE1FOiBS
ZW1vdmUgb25jZSBvbGQgY29uc3RydWN0b3IgaXMgcGhhc2VkIG91dAogUmVmPFBlcmlvZGljV2F2
ZT4gUGVyaW9kaWNXYXZlOjpjcmVhdGUoZmxvYXQgc2FtcGxlUmF0ZSwgRmxvYXQzMkFycmF5JiBy
ZWFsLCBGbG9hdDMyQXJyYXkmIGltYWdpbmFyeSkKIHsKICAgICBBU1NFUlQocmVhbC5sZW5ndGgo
KSA9PSBpbWFnaW5hcnkubGVuZ3RoKCkpOwpAQCAtNTMsNiArNTQsNDQgQEAgUmVmPFBlcmlvZGlj
V2F2ZT4gUGVyaW9kaWNXYXZlOjpjcmVhdGUoZmxvYXQgc2FtcGxlUmF0ZSwgRmxvYXQzMkFycmF5
JiByZWFsLCBGbG8KICAgICByZXR1cm4gd2F2ZVRhYmxlOwogfQogCitFeGNlcHRpb25PcjxSZWY8
UGVyaW9kaWNXYXZlPj4gUGVyaW9kaWNXYXZlOjpjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgY29u
dGV4dCwgUGVyaW9kaWNXYXZlT3B0aW9ucyYmIG9wdGlvbnMpCit7CisgICAgVmVjdG9yPGZsb2F0
PiByZWFsOworICAgIFZlY3RvcjxmbG9hdD4gaW1hZzsKKyAgICAKKyAgICBpZiAob3B0aW9ucy5y
ZWFsICYmIG9wdGlvbnMuaW1hZykgeworICAgICAgICBpZiAob3B0aW9ucy5yZWFsLT5zaXplKCkg
IT0gb3B0aW9ucy5pbWFnLT5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW5kZXhTaXplRXJyb3IsICJyZWFsIGFuZCBpbWFnIGhhdmUgZGlmZmVyZW50IGxlbmd0aHMiX3Mg
fTsKKyAgICAgICAgaWYgKG9wdGlvbnMucmVhbC0+c2l6ZSgpIDwgMikKKyAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciwgInJlYWwncyBsZW5ndGggY2Fubm90IGJl
IGxlc3MgdGhhbiAyIl9zIH07CisgICAgICAgIGlmIChvcHRpb25zLmltYWctPnNpemUoKSA8IDIp
CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IsICJpbWFnJ3Mg
bGVuZ3RoIGNhbm5vdCBiZSBsZXNzIHRoYW4gMiJfcyB9OworICAgICAgICByZWFsID0gV1RGTW92
ZSgqb3B0aW9ucy5yZWFsKTsKKyAgICAgICAgaW1hZyA9IFdURk1vdmUoKm9wdGlvbnMuaW1hZyk7
CisgICAgfSBlbHNlIGlmIChvcHRpb25zLnJlYWwpIHsKKyAgICAgICAgaWYgKG9wdGlvbnMucmVh
bC0+c2l6ZSgpIDwgMikKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVF
cnJvciwgInJlYWwncyBsZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiAyIl9zIH07CisgICAgICAg
IHJlYWwgPSBXVEZNb3ZlKCpvcHRpb25zLnJlYWwpOworICAgICAgICBpbWFnLmZpbGwoMCwgcmVh
bC5zaXplKCkpOworICAgIH0gZWxzZSBpZiAob3B0aW9ucy5pbWFnKSB7CisgICAgICAgIGlmIChv
cHRpb25zLmltYWctPnNpemUoKSA8IDIpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW5kZXhTaXplRXJyb3IsICJpbWFnJ3MgbGVuZ3RoIGNhbm5vdCBiZSBsZXNzIHRoYW4gMiJfcyB9
OworICAgICAgICBpbWFnID0gV1RGTW92ZSgqb3B0aW9ucy5pbWFnKTsKKyAgICAgICAgcmVhbC5m
aWxsKDAsIGltYWcuc2l6ZSgpKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZWFsLmZpbGwoMCwg
Mik7CisgICAgICAgIGltYWcuZmlsbCgwLCAyKTsKKyAgICAgICAgaW1hZ1sxXSA9IDE7CisgICAg
fQorCisgICAgcmVhbFswXSA9IDA7CisgICAgaW1hZ1swXSA9IDA7CisgICAgCisgICAgYXV0byB3
YXZlVGFibGUgPSBhZG9wdFJlZigqbmV3IFBlcmlvZGljV2F2ZShjb250ZXh0LnNhbXBsZVJhdGUo
KSkpOworICAgIHdhdmVUYWJsZS0+Y3JlYXRlQmFuZExpbWl0ZWRUYWJsZXMocmVhbC5kYXRhKCks
IGltYWcuZGF0YSgpLCByZWFsLnNpemUoKSwgb3B0aW9ucy5kaXNhYmxlTm9ybWFsaXphdGlvbiA/
IFNob3VsZERpc2FibGVOb3JtYWxpemF0aW9uOjpZZXMgOiBTaG91bGREaXNhYmxlTm9ybWFsaXph
dGlvbjo6Tm8pOworICAgIHJldHVybiB3YXZlVGFibGU7Cit9CisKIFJlZjxQZXJpb2RpY1dhdmU+
IFBlcmlvZGljV2F2ZTo6Y3JlYXRlU2luZShmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIFJlZjxQ
ZXJpb2RpY1dhdmU+IHdhdmVUYWJsZSA9IGFkb3B0UmVmKCpuZXcgUGVyaW9kaWNXYXZlKHNhbXBs
ZVJhdGUpKTsKQEAgLTE0Miw3ICsxODEsNyBAQCB1bnNpZ25lZCBQZXJpb2RpY1dhdmU6Om51bWJl
ck9mUGFydGlhbHNGb3JSYW5nZSh1bnNpZ25lZCByYW5nZUluZGV4KSBjb25zdAogLy8gQ29udmVy
dCBpbnRvIHRpbWUtZG9tYWluIHdhdmUgdGFibGVzLgogLy8gT25lIHRhYmxlIGlzIGNyZWF0ZWQg
Zm9yIGVhY2ggcmFuZ2UgZm9yIG5vbi1hbGlhc2luZyBwbGF5YmFjayBhdCBkaWZmZXJlbnQgcGxh
eWJhY2sgcmF0ZXMuCiAvLyBUaHVzLCBoaWdoZXIgcmFuZ2VzIGhhdmUgbW9yZSBoaWdoLWZyZXF1
ZW5jeSBwYXJ0aWFscyBjdWxsZWQgb3V0Lgotdm9pZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRM
aW1pdGVkVGFibGVzKGNvbnN0IGZsb2F0KiByZWFsRGF0YSwgY29uc3QgZmxvYXQqIGltYWdEYXRh
LCB1bnNpZ25lZCBudW1iZXJPZkNvbXBvbmVudHMpCit2b2lkIFBlcmlvZGljV2F2ZTo6Y3JlYXRl
QmFuZExpbWl0ZWRUYWJsZXMoY29uc3QgZmxvYXQqIHJlYWxEYXRhLCBjb25zdCBmbG9hdCogaW1h
Z0RhdGEsIHVuc2lnbmVkIG51bWJlck9mQ29tcG9uZW50cywgU2hvdWxkRGlzYWJsZU5vcm1hbGl6
YXRpb24gZGlzYWJsZU5vcm1hbGl6YXRpb24pCiB7CiAgICAgZmxvYXQgbm9ybWFsaXphdGlvblNj
YWxlID0gMTsKIApAQCAtMTk5LDEyICsyMzgsMTQgQEAgdm9pZCBQZXJpb2RpY1dhdmU6OmNyZWF0
ZUJhbmRMaW1pdGVkVGFibGVzKGNvbnN0IGZsb2F0KiByZWFsRGF0YSwgY29uc3QgZmxvYXQqIGkK
ICAgICAgICAgZnJhbWUuZG9JbnZlcnNlRkZUKGRhdGEpOwogCiAgICAgICAgIC8vIEZvciB0aGUg
Zmlyc3QgcmFuZ2UgKHdoaWNoIGhhcyB0aGUgaGlnaGVzdCBwb3dlciksIGNhbGN1bGF0ZSBpdHMg
cGVhayB2YWx1ZSB0aGVuIGNvbXB1dGUgbm9ybWFsaXphdGlvbiBzY2FsZS4KLSAgICAgICAgaWYg
KCFyYW5nZUluZGV4KSB7Ci0gICAgICAgICAgICBmbG9hdCBtYXhWYWx1ZTsKLSAgICAgICAgICAg
IHZtYXhtZ3YoZGF0YSwgMSwgJm1heFZhbHVlLCBtX3BlcmlvZGljV2F2ZVNpemUpOwotCi0gICAg
ICAgICAgICBpZiAobWF4VmFsdWUpCi0gICAgICAgICAgICAgICAgbm9ybWFsaXphdGlvblNjYWxl
ID0gMS4wZiAvIG1heFZhbHVlOworICAgICAgICBpZiAoZGlzYWJsZU5vcm1hbGl6YXRpb24gPT0g
U2hvdWxkRGlzYWJsZU5vcm1hbGl6YXRpb246Ok5vKSB7CisgICAgICAgICAgICBpZiAoIXJhbmdl
SW5kZXgpIHsKKyAgICAgICAgICAgICAgICBmbG9hdCBtYXhWYWx1ZTsKKyAgICAgICAgICAgICAg
ICB2bWF4bWd2KGRhdGEsIDEsICZtYXhWYWx1ZSwgbV9wZXJpb2RpY1dhdmVTaXplKTsKKworICAg
ICAgICAgICAgICAgIGlmIChtYXhWYWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXph
dGlvblNjYWxlID0gMS4wZiAvIG1heFZhbHVlOworICAgICAgICAgICAgfQogICAgICAgICB9CiAK
ICAgICAgICAgLy8gQXBwbHkgbm9ybWFsaXphdGlvbiBzY2FsZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5oCmluZGV4IDc5YTJkODJhYzZjYzMxZjU0
NmY5OGQ0MmExYzUxZjI1NzVkNTY0NDEuLjhjZTVmZGNmNmJkMjQ4Y2JmNWZlODA1OWMzMDJhNDNh
YTk3NjNlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVy
aW9kaWNXYXZlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmUuaApAQCAtMjksNiArMjksNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdWRp
b0FycmF5LmgiCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZlT3B0aW9ucy5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtMzYsNiArMzcsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitlbnVtIGNsYXNzIFNob3VsZERpc2FibGVOb3JtYWxpemF0aW9uIDogYm9vbCB7Cisg
ICAgTm8sCisgICAgWWVzLAorfTsKKworY2xhc3MgQmFzZUF1ZGlvQ29udGV4dDsKKwogY2xhc3Mg
UGVyaW9kaWNXYXZlIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8UGVyaW9kaWNXYXZlPiB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxQZXJpb2RpY1dhdmU+IGNyZWF0ZVNpbmUoZmxvYXQgc2Ft
cGxlUmF0ZSk7CkBAIC00NCw3ICs1MiwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxQZXJp
b2RpY1dhdmU+IGNyZWF0ZVRyaWFuZ2xlKGZsb2F0IHNhbXBsZVJhdGUpOwogCiAgICAgLy8gQ3Jl
YXRlcyBhbiBhcmJpdHJhcnkgd2F2ZSBnaXZlbiB0aGUgZnJlcXVlbmN5IGNvbXBvbmVudHMgKEZv
dXJpZXIgY29lZmZpY2llbnRzKS4KKyAgICAvLyBGSVhNRTogUmVtb3ZlIG9uY2Ugb2xkIGNvbnN0
cnVjdG9yIGlzIHBoYXNlZCBvdXQKICAgICBzdGF0aWMgUmVmPFBlcmlvZGljV2F2ZT4gY3JlYXRl
KGZsb2F0IHNhbXBsZVJhdGUsIEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFycmF5JiBpbWFn
KTsKKyAgICAKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IGNyZWF0
ZShCYXNlQXVkaW9Db250ZXh0JiwgUGVyaW9kaWNXYXZlT3B0aW9ucyYmID0geyB9KTsKIAogICAg
IC8vIFJldHVybnMgcG9pbnRlcnMgdG8gdGhlIGxvd2VyIGFuZCBoaWdoZXIgd2F2ZSBkYXRhIGZv
ciB0aGUgcGl0Y2ggcmFuZ2UgY29udGFpbmluZwogICAgIC8vIHRoZSBnaXZlbiBmdW5kYW1lbnRh
bCBmcmVxdWVuY3kuIFRoZXNlIHR3byB0YWJsZXMgYXJlIGluIGFkamFjZW50ICJwaXRjaCIgcmFu
Z2VzCkBAIC05Miw3ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG51bWJlck9mUGFy
dGlhbHNGb3JSYW5nZSh1bnNpZ25lZCByYW5nZUluZGV4KSBjb25zdDsKIAogICAgIC8vIENyZWF0
ZXMgdGFibGVzIGJhc2VkIG9uIG51bWJlck9mQ29tcG9uZW50cyBGb3VyaWVyIGNvZWZmaWNpZW50
cy4KLSAgICB2b2lkIGNyZWF0ZUJhbmRMaW1pdGVkVGFibGVzKGNvbnN0IGZsb2F0KiByZWFsLCBj
b25zdCBmbG9hdCogaW1hZywgdW5zaWduZWQgbnVtYmVyT2ZDb21wb25lbnRzKTsKKyAgICB2b2lk
IGNyZWF0ZUJhbmRMaW1pdGVkVGFibGVzKGNvbnN0IGZsb2F0KiByZWFsLCBjb25zdCBmbG9hdCog
aW1hZywgdW5zaWduZWQgbnVtYmVyT2ZDb21wb25lbnRzLCBTaG91bGREaXNhYmxlTm9ybWFsaXph
dGlvbiA9IFNob3VsZERpc2FibGVOb3JtYWxpemF0aW9uOjpObyk7CiAgICAgVmVjdG9yPHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiBtX2JhbmRMaW1pdGVkVGFibGVzOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaWRsCmlu
ZGV4IDBiZjA5MjIyMWFkN2FkMGFmNjdjZjI0NDc5OTY4YzRjNjg4Y2M3NTYuLjM2MDg1MDYxNjMx
Zjk5NTY1NTMzYWQ2Nzc0Y2YyMmJjNWMwNDUyZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGwKQEAgLTI3LDUgKzI3LDUgQEAKICAgICBD
b25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQogXSBp
bnRlcmZhY2UgUGVyaW9kaWNXYXZlIHsKLQorICAgIFtNYXlUaHJvd0V4Y2VwdGlvbiwgRW5hYmxl
ZEJ5U2V0dGluZz1Nb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9dIGNvbnN0cnVjdG9yKEJhc2VBdWRp
b0NvbnRleHQgY29udGV4dCwgb3B0aW9uYWwgUGVyaW9kaWNXYXZlT3B0aW9ucyBvcHRpb25zKTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGlj
V2F2ZUNvbnN0cmFpbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Blcmlv
ZGljV2F2ZUNvbnN0cmFpbnRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzI2NTc1MmIwM2FjMTIwYmE1OTRiOGY1
NjJlNzIzYzkzMTY0NzZiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaApAQCAtMCwwICsxLDM4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cyB7CisgICAg
Ym9vbCBkaXNhYmxlTm9ybWFsaXphdGlvbiA9IGZhbHNlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGJiNWY4MmE0YWIxYzM1YzhlZGRiNzQxNmZjZGRkZDhmMDY0YjA3ZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9k
aWNXYXZlQ29uc3RyYWludHMuaWRsCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworWworICAg
IENvbmRpdGlvbmFsPVdFQl9BVURJTywKK10gZGljdGlvbmFyeSBQZXJpb2RpY1dhdmVDb25zdHJh
aW50cyB7CisgICAgYm9vbGVhbiBkaXNhYmxlTm9ybWFsaXphdGlvbiA9IGZhbHNlOworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0
aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRp
b25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTE4ZDE4ZGVhYzYwMzYyZjYxN2Y1NWUwMzAzZjNhNDg5YjZiNzI2
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVy
aW9kaWNXYXZlT3B0aW9ucy5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisKKyNpbmNsdWRlICJQZXJpb2RpY1dhdmVD
b25zdHJhaW50cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQZXJpb2RpY1dh
dmVPcHRpb25zIDogcHVibGljIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzIHsKKyAgICBPcHRpb25h
bDxWZWN0b3I8ZmxvYXQ+PiByZWFsOworICAgIE9wdGlvbmFsPFZlY3RvcjxmbG9hdD4+IGltYWc7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
RElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmVPcHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9k
aWNXYXZlT3B0aW9ucy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFiNGU0OTZkZDE1ZWExODgzNDU0ZjEwZjBj
ZGYyYTRhM2VjNGRkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorXSBkaWN0aW9uYXJ5IFBlcmlvZGlj
V2F2ZU9wdGlvbnMgOiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cyB7CisgICAgc2VxdWVuY2U8Zmxv
YXQ+IHJlYWw7CisgICAgc2VxdWVuY2U8ZmxvYXQ+IGltYWc7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwCmluZGV4
IDBlM2U2NWE5Y2VkM2EyNzUzOWIzYTg1MTcxMGQxNGZjNmI2ZjAwMzcuLmM0N2I5YTViZjQ4N2Qz
MjdmZTcyMDNiZDg2MzUwMGU0NGFkMmI0MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJXZWJLaXRBdWRpb0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0QXVkaW9QYW5uZXJOb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
IApAQCAtMTY3LDYgKzE2OCwyMCBAQCBFeGNlcHRpb25PcjxSZWY8V2ViS2l0QXVkaW9QYW5uZXJO
b2RlPj4gV2ViS2l0QXVkaW9Db250ZXh0OjpjcmVhdGVXZWJLaXRQYW5uZXIoKQogICAgIHJldHVy
biBXZWJLaXRBdWRpb1Bhbm5lck5vZGU6OmNyZWF0ZSgqdGhpcywgc2FtcGxlUmF0ZSgpKTsKIH0K
IAorRXhjZXB0aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IFdlYktpdEF1ZGlvQ29udGV4dDo6Y3Jl
YXRlUGVyaW9kaWNXYXZlKEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFycmF5JiBpbWFnaW5h
cnkpCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICAKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIGlmIChpc1N0b3BwZWQoKSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAocmVhbC5sZW5ndGgoKSAh
PSBpbWFnaW5hcnkubGVuZ3RoKCkgfHwgcmVhbC5sZW5ndGgoKSA+IGdldE1heFBlcmlvZGljV2F2
ZUxlbmd0aCgpIHx8ICFyZWFsLmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW5kZXhTaXplRXJyb3IgfTsKKyAgICBsYXp5SW5pdGlhbGl6ZSgpOworICAgIHJldHVybiBQZXJp
b2RpY1dhdmU6OmNyZWF0ZShzYW1wbGVSYXRlKCksIHJlYWwsIGltYWdpbmFyeSk7Cit9CisKIHZv
aWQgV2ViS2l0QXVkaW9Db250ZXh0OjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBw
cm9taXNlKQogewogICAgIGlmIChpc09mZmxpbmVDb250ZXh0KCkgfHwgaXNTdG9wcGVkKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9D
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29u
dGV4dC5oCmluZGV4IGQzZDU2OTZlNmRhZjVkNDMwODZhM2Y0ZjM5ZTI2ZTQxYzhkMjhhYTQuLjVm
NzViMDczZGNhM2YwODk1N2RhOWNlNzMyYjFmYTM4NGJkZDJlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaApAQCAtMzYs
NiArMzYsNyBAQCBjbGFzcyBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU7CiBjbGFzcyBNZWRp
YVN0cmVhbTsKIGNsYXNzIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGU7CiBjbGFzcyBN
ZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZTsKK2NsYXNzIFBlcmlvZGljV2F2ZTsKIGNsYXNzIFdl
YktpdEF1ZGlvUGFubmVyTm9kZTsKIAogLy8gQXVkaW9Db250ZXh0IGlzIHRoZSBjb3JuZXJzdG9u
ZSBvZiB0aGUgd2ViIGF1ZGlvIEFQSSBhbmQgYWxsIEF1ZGlvTm9kZXMgYXJlIGNyZWF0ZWQgZnJv
bSBpdC4KQEAgLTYwLDYgKzYxLDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxNZWRp
YVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlPj4gY3JlYXRlTWVkaWFTdHJlYW1EZXN0aW5hdGlv
bigpOwogI2VuZGlmCiAgICAgRXhjZXB0aW9uT3I8UmVmPFdlYktpdEF1ZGlvUGFubmVyTm9kZT4+
IGNyZWF0ZVdlYktpdFBhbm5lcigpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+
PiBjcmVhdGVQZXJpb2RpY1dhdmUoRmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMyQXJyYXkmIGlt
YWdpbmFyeSk7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBXZWJLaXRBdWRpb0NvbnRleHQo
RG9jdW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZmQwMTIxOTk1NDE5NmFlOTRjMmEzMmY2YjFh
NTQ5ZGM1NjJiMGI4Yi4uMTQ2NmEwN2NmMjliM2Y4ZTZkNGIxMDllMTQwYWVlZTdmOGFjNzU5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTMxNzAsNiArMzE3MCw4IEBAIEpTUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5jcHAKIEpTUGVyZm9ybWFuY2VTZXJ2ZXJUaW1pbmcuY3BwCiBKU1BlcmZvcm1hbmNl
VGltaW5nLmNwcAogSlNQZXJpb2RpY1dhdmUuY3BwCitKU1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRz
LmNwcAorSlNQZXJpb2RpY1dhdmVPcHRpb25zLmNwcAogSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93
LmNwcAogSlNQbGF5YmFja0RpcmVjdGlvbi5jcHAKIEpTUG9pbnRlckV2ZW50LmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdk
OTQzOWExZWU4ZjVhNzIxZmYwOTNmYmRjMTNiYzg0ZDU4NWY1MmEuLjdkMTUwMmIxZDM4YzhlN2I1
NmViYmQ4NGMyYWM4ZDk0MzI3MTUyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwNDUsNiArNTA0NSw4IEBACiAJCUU1QkE3
RDYzMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1QkE3RDYyMTUxNDM3Q0EwMEZFMUUzRiAv
KiBMZW5ndGhGdW5jdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlFNzE0NjdCMzI0QUJBRUYyMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3
QjEyNEFCQUVGMTAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaCAqLzsgfTsKIAkJRTcxNDY3
QjYyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3MTQ2N0I1MjRBQkFGMUQwMEZCMkY1MCAvKiBQ
YW5uZXJPcHRpb25zLmggKi87IH07CisJCUU3NTVFODkyMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJp
b2RpY1dhdmVDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTc1NUU4OEYyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0
cmFpbnRzLmggKi87IH07CisJCUU3NTVFODk5MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dh
dmVPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNzU1RTg5NjI0Qzc0NjFEMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0aW9ucy5oICovOyB9
OwogCQlFNzg1RDkxNTI0QjREMUNBMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5MTEyNEI0RDFC
MTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaCAqLzsgfTsKIAkJRTc4NUQ5MzQyNEI2MzZG
RjAwMTREQjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5MzEyNEI2MzZGRjAwMTREQjIxIC8qIENo
YW5uZWxJbnRlcnByZXRhdGlvbi5oICovOyB9OwogCQlFNzg1RDk2MTI0QjdGNzM1MDAxNERCMjEg
LyogQXVkaW9Db250ZXh0T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTc4NUQ5NUYyNEI3RjczNDAwMTREQjIxIC8qIEF1ZGlvQ29udGV4dE9w
dGlvbnMuaCAqLzsgfTsKQEAgLTE1ODAwLDYgKzE1ODAyLDEwIEBACiAJCUU3MTQ2N0I0MjRBQkFG
MEIwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb05vZGVPcHRpb25z
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjUyNEFCQUYxRDAwRkIy
RjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGFubmVyT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNzI0
QUJBRjJDMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUGFubmVyT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3NTVF
ODhGMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFNzU1RTg5MTI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWlu
dHMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTc1NUU4OTYyNEM3NDYxRDAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZU9w
dGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyaW9kaWNXYXZlT3B0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFNzU1RTg5ODI0Qzc0NjFEMDA5RjdDMjMgLyogUGVyaW9kaWNX
YXZlT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU3ODVEOTExMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291
bnRNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYW5uZWxDb3VudE1vZGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTc4NUQ5MTMyNEI0RDFCMTAwMTREQjIxIC8qIENoYW5uZWxDb3Vu
dE1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IENoYW5uZWxDb3VudE1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNzg1RDkzMTI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYW5uZWxJbnRlcnByZXRhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjk0NjMsNiArMjk0NjksMTAgQEAKIAkJCQlGRDU4MUZCMTE1
MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmNwcCAqLywKIAkJCQlGRDU4MUZCMjE1MjBG
OTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmggKi8sCiAJCQkJRkQ1ODFGQjMxNTIwRjkzQjAw
M0E3QTc1IC8qIFBlcmlvZGljV2F2ZS5pZGwgKi8sCisJCQkJRTc1NUU4OEYyNEM3NDM0QjAwOUY3
QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggKi8sCisJCQkJRTc1NUU4OTEyNEM3NDM0
QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCAqLywKKwkJCQlFNzU1RTg5
NjI0Qzc0NjFEMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0aW9ucy5oICovLAorCQkJCUU3NTVF
ODk4MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRpb25zLmlkbCAqLywKIAkJCQlG
RDMxNUZGMTEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5jcHAgKi8sCiAJCQkJ
RkQzMTVGRjIxMkIwMjY3NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuaCAqLywKIAkJCQlG
RDMxNUZFQjEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAgKi8sCkBA
IC0zMjYzNyw2ICszMjY0Nyw4IEBACiAJCQkJOEFGNEU1NUMxMURDNUE2MzAwMEVEM0RFIC8qIFBl
cmZvcm1hbmNlVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTU0QjVGMzFFMzgzOTNBMDAx
RDRFMDMgLyogUGVyZm9ybWFuY2VVc2VyVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDU4
MUZCNTE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFNzU1RTg5MjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCBp
biBIZWFkZXJzICovLAorCQkJCUU3NTVFODk5MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dh
dmVPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUQ1REMyRTBGNDIzQTczMDA4RjIwRkQg
LyogUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFE
QkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFEMkM4MkI3MjM2QTNGNkEwMDU1RDZDNSAvKiBQaWN0dXJlSW5QaWN0
dXJlU3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCAzNjkzNmE4MmZiNTU5MGE2MGNhYzM3MjY0ODE2NWUwY2MxNWRjMjAzLi4zYTRmMTNiNjY0
OGYwNzQ3ZDUzNDlkMTJhZDhiOTk2MTFlNGYzOTY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNy0yMiAgQ2xhcmsgV2FuZyAgPGNsYXJrX3dh
bmdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZGVkIFBlcmlvZGljV2F2ZSBjb25zdHJ1Y3RvciBh
Y2NvcmRpbmcgdG8gc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE0NjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmUtYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzIHRoYXQgbm93IHBhc3MuCisKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5k
b3ctZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA3LTIwICBDbGFyayBXYW5nICA8Y2xhcmtfd2FuZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgRml4ZXMgdG8gbWF0Y2ggQmFzZUF1ZGlvQ29udGV4dC5pZGwg
dG8gc3BlYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhh
cm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCA5OWY0YzBjYzEzN2E0YmI3MWMw
YjMzZGFiNGQ0M2UyOTBiOGRhZTZmLi41NmZmODA1Y2I4Yjc1YmE1MWQ1Y2FlNjM3Zjk2ZmExNjg3
ZjNiNDAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lk
bGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dApAQCAtOTY4LDEzICs5NjgsMTMgQEAg
UEFTUyBBdWRpb05vZGUgaW50ZXJmYWNlOiBuZXcgUGFubmVyTm9kZShjb250ZXh0KSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImNoYW5uZWwKIFBBU1MgQXVkaW9Ob2RlIGludGVyZmFjZTogbmV3IFBh
bm5lck5vZGUoY29udGV4dCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVsQ291bnRNb2Rl
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgQXVkaW9Ob2RlIGludGVyZmFjZTogbmV3IFBh
bm5lck5vZGUoY29udGV4dCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVsSW50ZXJwcmV0
YXRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBQZXJpb2RpY1dhdmUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgUGVy
aW9kaWNXYXZlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9lcXVhbHM6IHdyb25nIHZh
bHVlIGZvciBQZXJpb2RpY1dhdmUubGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIFBl
cmlvZGljV2F2ZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgUGVyaW9kaWNXYXZlIGlu
dGVyZmFjZSBvYmplY3QgbmFtZSAKIFBBU1MgUGVyaW9kaWNXYXZlIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBQ
ZXJpb2RpY1dhdmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAogUEFTUyBQZXJp
b2RpY1dhdmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotRkFJTCBQZXJpb2Rp
Y1dhdmUgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgUGVyaW9kaWNXYXZlKGNvbnRl
eHQpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBv
YmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiVHlwZUVycm9yOiBmdW5jdGlvbiBp
cyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IFBlcmlvZGljV2F2ZShjb250ZXh0
KScpIgotRkFJTCBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFBlcmlvZGljV2F2ZShjb250ZXh0KSBh
c3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0
IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlR5cGVFcnJvcjogZnVuY3Rpb24gaXMgbm90
IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyBQZXJpb2RpY1dhdmUoY29udGV4dCknKSIK
K1BBU1MgUGVyaW9kaWNXYXZlIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFBlcmlv
ZGljV2F2ZShjb250ZXh0KSAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBQZXJpb2RpY1dh
dmUoY29udGV4dCkgCiBQQVNTIFNjcmlwdFByb2Nlc3Nvck5vZGUgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgU2NyaXB0UHJvY2Vz
c29yTm9kZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgU2NyaXB0UHJvY2Vzc29yTm9k
ZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404965</attachid>
            <date>2020-07-22 14:30:48 -0700</date>
            <delta_ts>2020-07-22 14:53:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214615-20200722173047.patch</filename>
            <type>text/plain</type>
            <size>34286</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVlMDMzNTY2NDhiZjAx
OTczNDgwY2YwMmZhNGNhY2I2NTRmZmM5NS4uNjJhYWFlZDBhZTcyYTlhNzBhZTFmZjMxZTE3NmVk
MGQ5Y2U4OThjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA3LTIyICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgUGVyaW9kaWNX
YXZlIGNvbnN0cnVjdG9yIGFjY29yZGluZyB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MTUKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBSZS1iYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdGhhdCBu
b3cgcGFzcy4KKworICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmUgY29uc3RydWN0b3IgYWNjb3Jk
aW5nIHRvIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jcGVyaW9kaWN3YXZl
LgorICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cywgUGVyaW9kaWNXYXZlT3B0
aW9ucyBmaWxlcy4gVXBkYXRlZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVz
CisgICAgICAgIHRvIG5vcm1hbGl6ZSB3YXZlZm9ybSBiYXNlZCBvbiBzcGVjOiBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXVkaW8vI3dhdmVmb3JtLW5vcm1hbGl6YXRpb24uCisgICAgICAgIEFk
ZGVkIHVwZGF0ZWQgY3JlYXRlUGVyaW9kaWNXYXZlIG1ldGhvZCBpbiBCYXNlQXVkaW9Db250ZXh0
LCBhbmQgbW92ZWQgb2xkIGNyZWF0ZVBlcmlvZGljV2F2ZSBtZXRob2QKKyAgICAgICAgSW50byBX
ZWJLaXRBdWRpb0NvbnRleHQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmNyZWF0ZVBlcmlvZGljV2F2ZSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNlQXVkaW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRl
ZFRhYmxlcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYktpdEF1ZGlvQ29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMC0wNy0yMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdWzEuMThdIG1lZGlhc3RyZWFtc3JjIGVs
ZW1lbnQgaGl0cyBhc3NlcnQgaW4gZ3N0IC1jb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJh
NWE0MTFkYmNjYWYyM2M1Zjg5YTc4NDg5YzU4NTQxZmM0NGUwMGUuLmRjZDI1MzJlMGRjMDU2NTMx
MzhkMDRhYTQxZmViYWMyZTIzOGVkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00ODEsNiAr
NDgxLDggQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1
ZGlvL1Bhbm5lck9wdGlvbnMuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9QYW5uaW5nTW9kZWxU
eXBlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAorICAgIE1vZHVs
ZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsCisgICAgTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vU2NyaXB0
UHJvY2Vzc29yTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlk
bAogICAgIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYzkzNjMyOWM0
ZjA2MGIzNDYxOWNhY2M2OWEzNzc4OGUyMTlmZjdlOC4uMDQ0ODQ3ZTFjZTU2MGQ4YWM2MmU2MWZk
YjFkOWU5NDgyNDVkODQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CkBAIC0zMzAsNiArMzMwLDggQEAgJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9QYW5uZXJPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QYW5u
aW5nTW9kZWxUeXBlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNv
bnN0cmFpbnRzLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dh
dmVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVy
Tm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250
ZXh0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCBjMDAyNTk1ZTYxMTUxMTMxMmQwZTcwZTVkMzVlYWMyMjI2ZTlhYmUxLi43NThk
OGZjMDk4MWZkNDk0M2U1YWJlYzViOTk5ZWY5YTlmNWIxNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTMxNiw2ICsxMzE2LDEw
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyZm9y
bWFuY2VUaW1pbmcuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1BlcmZvcm1hbmNlVGltaW5nLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUGVyaW9kaWNXYXZlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmUuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyaW9k
aWNXYXZlQ29uc3RyYWludHMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVPcHRpb25zLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVPcHRpb25zLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGljdHVyZUluUGljdHVyZVdp
bmRvdy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UGljdHVyZUluUGljdHVyZVdpbmRvdy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1BsYXliYWNrRGlyZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggZDY1ZmMyZThiN2E3MzY2NGI1MGJkNmU1ODNlNjdlNjE4ZGEzYjY4ZC4u
MjIyNDQwMTc5ODFkNTMzYjk5Y2YxNmQ0ODcxNDY4MjMwNjkzNWZhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC00MTMsNiArNDEzLDggQEAgSlNfQklORElOR19JRExTID0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJPcHRpb25zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5pbmdNb2RlbFR5cGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaWRsIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwCmluZGV4IGM5N2YxODhlNDkwMmM0NGY3NzlhNGRmNDk1N2NiNzNjNTUyZjViODMuLjg2NjM4
ZDQwZTVjODM4ZDFiNzE0MzAzZWM3N2I4Zjg4MTg3M2M0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtOTEsOCAr
OTEsNiBAQAogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCi1jb25zdCB1bnNpZ25lZCBNYXhQZXJpb2RpY1dhdmVMZW5ndGggPSA0MDk2Owot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChCYXNl
QXVkaW9Db250ZXh0KTsKQEAgLTYzNSwxOCArNjMzLDIzIEBAIEV4Y2VwdGlvbk9yPFJlZjxPc2Np
bGxhdG9yTm9kZT4+IEJhc2VBdWRpb0NvbnRleHQ6OmNyZWF0ZU9zY2lsbGF0b3IoKQogICAgIHJl
dHVybiBub2RlOwogfQogCi1FeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNXYXZlPj4gQmFzZUF1ZGlv
Q29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFy
cmF5JiBpbWFnaW5hcnkpCitFeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNXYXZlPj4gQmFzZUF1ZGlv
Q29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKFZlY3RvcjxmbG9hdD4mJiByZWFsLCBWZWN0b3I8
ZmxvYXQ+JiYgaW1hZ2luYXJ5LCBjb25zdCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cyYgY29uc3Ry
YWludHMpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKICAgICAKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGlmIChtX2lzU3RvcFNjaGVkdWxlZCkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07Ci0KLSAgICBpZiAocmVhbC5s
ZW5ndGgoKSAhPSBpbWFnaW5hcnkubGVuZ3RoKCkgfHwgKHJlYWwubGVuZ3RoKCkgPiBNYXhQZXJp
b2RpY1dhdmVMZW5ndGgpIHx8ICFyZWFsLmxlbmd0aCgpKQotICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKKyAgICAKKyAgICBpZiAocmVhbC5zaXplKCkgIT0gaW1h
Z2luYXJ5LnNpemUoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9y
LCAicmVhbCBhbmQgaW1hZ2luYXJ5IG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGgiX3MgfTsKKyAg
ICAKKyAgICBQZXJpb2RpY1dhdmVPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5yZWFsID0g
V1RGTW92ZShyZWFsKTsKKyAgICBvcHRpb25zLmltYWcgPSBXVEZNb3ZlKGltYWdpbmFyeSk7Cisg
ICAgb3B0aW9ucy5kaXNhYmxlTm9ybWFsaXphdGlvbiA9IGNvbnN0cmFpbnRzLmRpc2FibGVOb3Jt
YWxpemF0aW9uOwogICAgIGxhenlJbml0aWFsaXplKCk7Ci0gICAgcmV0dXJuIFBlcmlvZGljV2F2
ZTo6Y3JlYXRlKHNhbXBsZVJhdGUoKSwgcmVhbCwgaW1hZ2luYXJ5KTsKKyAgICByZXR1cm4gUGVy
aW9kaWNXYXZlOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUob3B0aW9ucykpOwogfQogCiB2b2lkIEJh
c2VBdWRpb0NvbnRleHQ6Om5vdGlmeU5vZGVGaW5pc2hlZFByb2Nlc3NpbmcoQXVkaW9Ob2RlKiBu
b2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaAppbmRleCA0OWU3ZTNhOTNlZGU1NzMyYjQ4ODEyYWUyODRiYmY4ZmRkOWFlNjAyLi4y
NTEzODA4ODhmNDU4ZmJmYjg2N2UyZTY5ODIyYmRhOGYyNzA3YmZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaApAQCAtMzQsNiAr
MzQsOCBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFy
dExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIlBlcmlv
ZGljV2F2ZUNvbnN0cmFpbnRzLmgiCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZlT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCIKQEAgLTE1
Miw3ICsxNTQsNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8UmVmPENoYW5uZWxTcGxpdHRl
ck5vZGU+PiBjcmVhdGVDaGFubmVsU3BsaXR0ZXIoc2l6ZV90IG51bWJlck9mT3V0cHV0cyk7CiAg
ICAgRXhjZXB0aW9uT3I8UmVmPENoYW5uZWxNZXJnZXJOb2RlPj4gY3JlYXRlQ2hhbm5lbE1lcmdl
cihzaXplX3QgbnVtYmVyT2ZJbnB1dHMpOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxPc2NpbGxhdG9y
Tm9kZT4+IGNyZWF0ZU9zY2lsbGF0b3IoKTsKLSAgICBFeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNX
YXZlPj4gY3JlYXRlUGVyaW9kaWNXYXZlKEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFycmF5
JiBpbWFnaW5hcnkpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBjcmVhdGVQ
ZXJpb2RpY1dhdmUoVmVjdG9yPGZsb2F0PiYmIHJlYWwsIFZlY3RvcjxmbG9hdD4mJiBpbWFnaW5h
cnksIGNvbnN0IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzJiA9IHsgfSk7CiAKICAgICAvLyBXaGVu
IGEgc291cmNlIG5vZGUgaGFzIG5vIG1vcmUgcHJvY2Vzc2luZyB0byBkbyAoaGFzIGZpbmlzaGVk
IHBsYXlpbmcpLCB0aGVuIGl0IHRlbGxzIHRoZSBjb250ZXh0IHRvIGRlcmVmZXJlbmNlIGl0Lgog
ICAgIHZvaWQgbm90aWZ5Tm9kZUZpbmlzaGVkUHJvY2Vzc2luZyhBdWRpb05vZGUqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRs
CmluZGV4IDQzNTBiMWUwY2ViNTM1YTFhN2I5MDEwODhiODQ2ZmYxYjA5YTIzNTQuLjE5ODUzMjQw
ZGVlZWUwYWMxZDI4NmIwMjQxYjJlOGRlMjA4NGI5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbApAQCAtNjUsNyArNjUs
NyBAQAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gQW5hbHlzZXJOb2RlIGNyZWF0ZUFuYWx5c2Vy
KCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBTY3JpcHRQcm9jZXNzb3JOb2RlIGNyZWF0ZVNj
cmlwdFByb2Nlc3NvcihvcHRpb25hbCB1bnNpZ25lZCBsb25nIGJ1ZmZlclNpemUgPSAwLCBvcHRp
b25hbCB1bnNpZ25lZCBsb25nIG51bWJlck9mSW5wdXRDaGFubmVscyA9IDIsIG9wdGlvbmFsIHVu
c2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA9IDIpOwogICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gT3NjaWxsYXRvck5vZGUgY3JlYXRlT3NjaWxsYXRvcigpOwotICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gUGVyaW9kaWNXYXZlIGNyZWF0ZVBlcmlvZGljV2F2ZShGbG9hdDMyQXJyYXkg
cmVhbCwgRmxvYXQzMkFycmF5IGltYWcpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gUGVyaW9k
aWNXYXZlIGNyZWF0ZVBlcmlvZGljV2F2ZShzZXF1ZW5jZTxmbG9hdD4gcmVhbCwgc2VxdWVuY2U8
ZmxvYXQ+IGltYWcsIG9wdGlvbmFsIFBlcmlvZGljV2F2ZU9wdGlvbnMgb3B0aW9ucyk7CiAKICAg
ICAvLyBDaGFubmVsIHNwbGl0dGluZyBhbmQgbWVyZ2luZwogICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gQ2hhbm5lbFNwbGl0dGVyTm9kZSBjcmVhdGVDaGFubmVsU3BsaXR0ZXIob3B0aW9uYWwgdW5z
aWduZWQgbG9uZyBudW1iZXJPZk91dHB1dHMgPSA2KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmNwcAppbmRleCBlYzlhMTdjNGY1NmViOTk2NmRj
MTc2MjdlOTM0MDViYTFmZDQ4YzQ2Li4zMTllNmE2YzRjODVjYmQ1MzQ1OGZkMjIxN2U4NGIxNmEw
NzZjNzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Blcmlv
ZGljV2F2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmUuY3BwCkBAIC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIHVz
aW5nIG5hbWVzcGFjZSBWZWN0b3JNYXRoOwogCisvLyBGSVhNRTogUmVtb3ZlIG9uY2Ugb2xkIGNv
bnN0cnVjdG9yIGlzIHBoYXNlZCBvdXQKIFJlZjxQZXJpb2RpY1dhdmU+IFBlcmlvZGljV2F2ZTo6
Y3JlYXRlKGZsb2F0IHNhbXBsZVJhdGUsIEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFycmF5
JiBpbWFnaW5hcnkpCiB7CiAgICAgQVNTRVJUKHJlYWwubGVuZ3RoKCkgPT0gaW1hZ2luYXJ5Lmxl
bmd0aCgpKTsKQEAgLTUzLDYgKzU0LDQ0IEBAIFJlZjxQZXJpb2RpY1dhdmU+IFBlcmlvZGljV2F2
ZTo6Y3JlYXRlKGZsb2F0IHNhbXBsZVJhdGUsIEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvCiAgICAg
cmV0dXJuIHdhdmVUYWJsZTsKIH0KIAorRXhjZXB0aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IFBl
cmlvZGljV2F2ZTo6Y3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIFBlcmlvZGljV2F2
ZU9wdGlvbnMmJiBvcHRpb25zKQoreworICAgIFZlY3RvcjxmbG9hdD4gcmVhbDsKKyAgICBWZWN0
b3I8ZmxvYXQ+IGltYWc7CisgICAgCisgICAgaWYgKG9wdGlvbnMucmVhbCAmJiBvcHRpb25zLmlt
YWcpIHsKKyAgICAgICAgaWYgKG9wdGlvbnMucmVhbC0+c2l6ZSgpICE9IG9wdGlvbnMuaW1hZy0+
c2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAi
cmVhbCBhbmQgaW1hZyBoYXZlIGRpZmZlcmVudCBsZW5ndGhzIl9zIH07CisgICAgICAgIGlmIChv
cHRpb25zLnJlYWwtPnNpemUoKSA8IDIpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW5kZXhTaXplRXJyb3IsICJyZWFsJ3MgbGVuZ3RoIGNhbm5vdCBiZSBsZXNzIHRoYW4gMiJfcyB9
OworICAgICAgICBpZiAob3B0aW9ucy5pbWFnLT5zaXplKCkgPCAyKQorICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAiaW1hZydzIGxlbmd0aCBjYW5ub3QgYmUg
bGVzcyB0aGFuIDIiX3MgfTsKKyAgICAgICAgcmVhbCA9IFdURk1vdmUoKm9wdGlvbnMucmVhbCk7
CisgICAgICAgIGltYWcgPSBXVEZNb3ZlKCpvcHRpb25zLmltYWcpOworICAgIH0gZWxzZSBpZiAo
b3B0aW9ucy5yZWFsKSB7CisgICAgICAgIGlmIChvcHRpb25zLnJlYWwtPnNpemUoKSA8IDIpCisg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IsICJyZWFsJ3MgbGVu
Z3RoIGNhbm5vdCBiZSBsZXNzIHRoYW4gMiJfcyB9OworICAgICAgICByZWFsID0gV1RGTW92ZSgq
b3B0aW9ucy5yZWFsKTsKKyAgICAgICAgaW1hZy5maWxsKDAsIHJlYWwuc2l6ZSgpKTsKKyAgICB9
IGVsc2UgaWYgKG9wdGlvbnMuaW1hZykgeworICAgICAgICBpZiAob3B0aW9ucy5pbWFnLT5zaXpl
KCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAi
aW1hZydzIGxlbmd0aCBjYW5ub3QgYmUgbGVzcyB0aGFuIDIiX3MgfTsKKyAgICAgICAgaW1hZyA9
IFdURk1vdmUoKm9wdGlvbnMuaW1hZyk7CisgICAgICAgIHJlYWwuZmlsbCgwLCBpbWFnLnNpemUo
KSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVhbC5maWxsKDAsIDIpOworICAgICAgICBpbWFn
LmZpbGwoMCwgMik7CisgICAgICAgIGltYWdbMV0gPSAxOworICAgIH0KKworICAgIHJlYWxbMF0g
PSAwOworICAgIGltYWdbMF0gPSAwOworICAgIAorICAgIGF1dG8gd2F2ZVRhYmxlID0gYWRvcHRS
ZWYoKm5ldyBQZXJpb2RpY1dhdmUoY29udGV4dC5zYW1wbGVSYXRlKCkpKTsKKyAgICB3YXZlVGFi
bGUtPmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVzKHJlYWwuZGF0YSgpLCBpbWFnLmRhdGEoKSwgcmVh
bC5zaXplKCksIG9wdGlvbnMuZGlzYWJsZU5vcm1hbGl6YXRpb24gPyBTaG91bGREaXNhYmxlTm9y
bWFsaXphdGlvbjo6WWVzIDogU2hvdWxkRGlzYWJsZU5vcm1hbGl6YXRpb246Ok5vKTsKKyAgICBy
ZXR1cm4gd2F2ZVRhYmxlOworfQorCiBSZWY8UGVyaW9kaWNXYXZlPiBQZXJpb2RpY1dhdmU6OmNy
ZWF0ZVNpbmUoZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICBSZWY8UGVyaW9kaWNXYXZlPiB3YXZl
VGFibGUgPSBhZG9wdFJlZigqbmV3IFBlcmlvZGljV2F2ZShzYW1wbGVSYXRlKSk7CkBAIC0xNDIs
NyArMTgxLDcgQEAgdW5zaWduZWQgUGVyaW9kaWNXYXZlOjpudW1iZXJPZlBhcnRpYWxzRm9yUmFu
Z2UodW5zaWduZWQgcmFuZ2VJbmRleCkgY29uc3QKIC8vIENvbnZlcnQgaW50byB0aW1lLWRvbWFp
biB3YXZlIHRhYmxlcy4KIC8vIE9uZSB0YWJsZSBpcyBjcmVhdGVkIGZvciBlYWNoIHJhbmdlIGZv
ciBub24tYWxpYXNpbmcgcGxheWJhY2sgYXQgZGlmZmVyZW50IHBsYXliYWNrIHJhdGVzLgogLy8g
VGh1cywgaGlnaGVyIHJhbmdlcyBoYXZlIG1vcmUgaGlnaC1mcmVxdWVuY3kgcGFydGlhbHMgY3Vs
bGVkIG91dC4KLXZvaWQgUGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25z
dCBmbG9hdCogcmVhbERhdGEsIGNvbnN0IGZsb2F0KiBpbWFnRGF0YSwgdW5zaWduZWQgbnVtYmVy
T2ZDb21wb25lbnRzKQordm9pZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVz
KGNvbnN0IGZsb2F0KiByZWFsRGF0YSwgY29uc3QgZmxvYXQqIGltYWdEYXRhLCB1bnNpZ25lZCBu
dW1iZXJPZkNvbXBvbmVudHMsIFNob3VsZERpc2FibGVOb3JtYWxpemF0aW9uIGRpc2FibGVOb3Jt
YWxpemF0aW9uKQogewogICAgIGZsb2F0IG5vcm1hbGl6YXRpb25TY2FsZSA9IDE7CiAKQEAgLTE5
OSwxMiArMjM4LDE0IEBAIHZvaWQgUGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRlZFRhYmxl
cyhjb25zdCBmbG9hdCogcmVhbERhdGEsIGNvbnN0IGZsb2F0KiBpCiAgICAgICAgIGZyYW1lLmRv
SW52ZXJzZUZGVChkYXRhKTsKIAogICAgICAgICAvLyBGb3IgdGhlIGZpcnN0IHJhbmdlICh3aGlj
aCBoYXMgdGhlIGhpZ2hlc3QgcG93ZXIpLCBjYWxjdWxhdGUgaXRzIHBlYWsgdmFsdWUgdGhlbiBj
b21wdXRlIG5vcm1hbGl6YXRpb24gc2NhbGUuCi0gICAgICAgIGlmICghcmFuZ2VJbmRleCkgewot
ICAgICAgICAgICAgZmxvYXQgbWF4VmFsdWU7Ci0gICAgICAgICAgICB2bWF4bWd2KGRhdGEsIDEs
ICZtYXhWYWx1ZSwgbV9wZXJpb2RpY1dhdmVTaXplKTsKLQotICAgICAgICAgICAgaWYgKG1heFZh
bHVlKQotICAgICAgICAgICAgICAgIG5vcm1hbGl6YXRpb25TY2FsZSA9IDEuMGYgLyBtYXhWYWx1
ZTsKKyAgICAgICAgaWYgKGRpc2FibGVOb3JtYWxpemF0aW9uID09IFNob3VsZERpc2FibGVOb3Jt
YWxpemF0aW9uOjpObykgeworICAgICAgICAgICAgaWYgKCFyYW5nZUluZGV4KSB7CisgICAgICAg
ICAgICAgICAgZmxvYXQgbWF4VmFsdWU7CisgICAgICAgICAgICAgICAgdm1heG1ndihkYXRhLCAx
LCAmbWF4VmFsdWUsIG1fcGVyaW9kaWNXYXZlU2l6ZSk7CisKKyAgICAgICAgICAgICAgICBpZiAo
bWF4VmFsdWUpCisgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6YXRpb25TY2FsZSA9IDEuMGYg
LyBtYXhWYWx1ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIC8vIEFwcGx5
IG5vcm1hbGl6YXRpb24gc2NhbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9QZXJpb2RpY1dhdmUuaAppbmRleCA3OWEyZDgyYWM2Y2MzMWY1NDZmOThkNDJhMWM1MWYyNTc1
ZDU2NDQxLi5mMmVhMjA3YmE5ODZhODQ3OTk5NWVhZGFlYTg2Y2M2MzU1NjAyMWUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmgKQEAgLTI5LDYg
KzI5LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1
ZGUgIlBlcmlvZGljV2F2ZU9wdGlvbnMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9h
dDMyQXJyYXkuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KQEAgLTM2LDYgKzM3LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFz
cyBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbiA6IGJvb2wgeyBObywgWWVzIH07CisKK2NsYXNz
IEJhc2VBdWRpb0NvbnRleHQ7CisKIGNsYXNzIFBlcmlvZGljV2F2ZSBmaW5hbCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFBlcmlvZGljV2F2ZT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVyaW9k
aWNXYXZlPiBjcmVhdGVTaW5lKGZsb2F0IHNhbXBsZVJhdGUpOwpAQCAtNDQsNyArNDksMTAgQEAg
cHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVyaW9kaWNXYXZlPiBjcmVhdGVUcmlhbmdsZShmbG9h
dCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIENyZWF0ZXMgYW4gYXJiaXRyYXJ5IHdhdmUgZ2l2ZW4g
dGhlIGZyZXF1ZW5jeSBjb21wb25lbnRzIChGb3VyaWVyIGNvZWZmaWNpZW50cykuCisgICAgLy8g
RklYTUU6IFJlbW92ZSBvbmNlIG9sZCBjb25zdHJ1Y3RvciBpcyBwaGFzZWQgb3V0CiAgICAgc3Rh
dGljIFJlZjxQZXJpb2RpY1dhdmU+IGNyZWF0ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMyQXJy
YXkmIHJlYWwsIEZsb2F0MzJBcnJheSYgaW1hZyk7CisgICAgCisgICAgc3RhdGljIEV4Y2VwdGlv
bk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYsIFBlcmlvZGlj
V2F2ZU9wdGlvbnMmJiA9IHsgfSk7CiAKICAgICAvLyBSZXR1cm5zIHBvaW50ZXJzIHRvIHRoZSBs
b3dlciBhbmQgaGlnaGVyIHdhdmUgZGF0YSBmb3IgdGhlIHBpdGNoIHJhbmdlIGNvbnRhaW5pbmcK
ICAgICAvLyB0aGUgZ2l2ZW4gZnVuZGFtZW50YWwgZnJlcXVlbmN5LiBUaGVzZSB0d28gdGFibGVz
IGFyZSBpbiBhZGphY2VudCAicGl0Y2giIHJhbmdlcwpAQCAtOTIsNyArMTAwLDcgQEAgcHJpdmF0
ZToKICAgICB1bnNpZ25lZCBudW1iZXJPZlBhcnRpYWxzRm9yUmFuZ2UodW5zaWduZWQgcmFuZ2VJ
bmRleCkgY29uc3Q7CiAKICAgICAvLyBDcmVhdGVzIHRhYmxlcyBiYXNlZCBvbiBudW1iZXJPZkNv
bXBvbmVudHMgRm91cmllciBjb2VmZmljaWVudHMuCi0gICAgdm9pZCBjcmVhdGVCYW5kTGltaXRl
ZFRhYmxlcyhjb25zdCBmbG9hdCogcmVhbCwgY29uc3QgZmxvYXQqIGltYWcsIHVuc2lnbmVkIG51
bWJlck9mQ29tcG9uZW50cyk7CisgICAgdm9pZCBjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25z
dCBmbG9hdCogcmVhbCwgY29uc3QgZmxvYXQqIGltYWcsIHVuc2lnbmVkIG51bWJlck9mQ29tcG9u
ZW50cywgU2hvdWxkRGlzYWJsZU5vcm1hbGl6YXRpb24gPSBTaG91bGREaXNhYmxlTm9ybWFsaXph
dGlvbjo6Tm8pOwogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4g
bV9iYW5kTGltaXRlZFRhYmxlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAppbmRleCAwYmYwOTIyMjFhZDdhZDBhZjY3Y2YyNDQ3
OTk2OGM0YzY4OGNjNzU2Li4zNjA4NTA2MTYzMWY5OTU2NTUzM2FkNjc3NGNmMjJiYzVjMDQ1MmZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2
ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUu
aWRsCkBAIC0yNyw1ICsyNyw1IEBACiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgIElt
cGxlbWVudGF0aW9uTGFja3NWVGFibGUKIF0gaW50ZXJmYWNlIFBlcmlvZGljV2F2ZSB7Ci0KKyAg
ICBbTWF5VGhyb3dFeGNlcHRpb24sIEVuYWJsZWRCeVNldHRpbmc9TW9kZXJuVW5wcmVmaXhlZFdl
YkF1ZGlvXSBjb25zdHJ1Y3RvcihCYXNlQXVkaW9Db250ZXh0IGNvbnRleHQsIG9wdGlvbmFsIFBl
cmlvZGljV2F2ZU9wdGlvbnMgb3B0aW9ucyk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMyNjU3NTJiMDNhYzEyMGJhNTk0YjhmNTYyZTcyM2M5MzE2NDc2YmYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0
cmFpbnRzLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQl9BVURJTykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGVy
aW9kaWNXYXZlQ29uc3RyYWludHMgeworICAgIGJvb2wgZGlzYWJsZU5vcm1hbGl6YXRpb24gPSBm
YWxzZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bl
cmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiYjVmODJhNGFiMWMz
NWM4ZWRkYjc0MTZmY2RkZGQ4ZjA2NGIwN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbApAQCAtMCww
ICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KK1sKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCitdIGRp
Y3Rpb25hcnkgUGVyaW9kaWNXYXZlQ29uc3RyYWludHMgeworICAgIGJvb2xlYW4gZGlzYWJsZU5v
cm1hbGl6YXRpb24gPSBmYWxzZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNWJmODgxMDUx
ZjQ2YWE5ZWE1NmMwYzZhZTMxNjU1NjdjMGRiN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaApAQCAtMCwwICsx
LDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElP
KQorCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJQZXJpb2RpY1dhdmVDb25z
dHJhaW50cy5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGVyaW9kaWNXYXZlT3B0aW9u
cyA6IHB1YmxpYyBQZXJpb2RpY1dhdmVDb25zdHJhaW50cyB7CisgICAgT3B0aW9uYWw8VmVjdG9y
PGZsb2F0Pj4gcmVhbDsKKyAgICBPcHRpb25hbDxWZWN0b3I8ZmxvYXQ+PiBpbWFnOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0
aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9w
dGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxYjRlNDk2ZGQxNWVhMTg4MzQ1NGYxMGYwY2RmMmE0YTNl
YzRkZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1BlcmlvZGljV2F2ZU9wdGlvbnMuaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworWwor
ICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKK10gZGljdGlvbmFyeSBQZXJpb2RpY1dhdmVPcHRp
b25zIDogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMgeworICAgIHNlcXVlbmNlPGZsb2F0PiByZWFs
OworICAgIHNlcXVlbmNlPGZsb2F0PiBpbWFnOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcAppbmRleCAwZTNlNjVh
OWNlZDNhMjc1MzliM2E4NTE3MTBkMTRmYzZiNmYwMDM3Li4wNGU5Y2E2NGUzZDhjNjUxYjEzYjQ4
Y2VjMGI5ODFkNzljM2ZjMWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiV2ViS2l0QXVkaW9Db250ZXh0LmgiCiAKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZl
cnJlZC5oIgorI2luY2x1ZGUgIlBlcmlvZGljV2F2ZS5oIgogI2luY2x1ZGUgIldlYktpdEF1ZGlv
UGFubmVyTm9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKQEAgLTQ1
LDYgKzQ2LDggQEAKICNpbmNsdWRlICJNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCIKICNl
bmRpZgogCitjb25zdCB1bnNpZ25lZCBNYXhQZXJpb2RpY1dhdmVMZW5ndGggPSA0MDk2OworCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJLaXRB
dWRpb0NvbnRleHQpOwpAQCAtMTY3LDYgKzE3MCwyMCBAQCBFeGNlcHRpb25PcjxSZWY8V2ViS2l0
QXVkaW9QYW5uZXJOb2RlPj4gV2ViS2l0QXVkaW9Db250ZXh0OjpjcmVhdGVXZWJLaXRQYW5uZXIo
KQogICAgIHJldHVybiBXZWJLaXRBdWRpb1Bhbm5lck5vZGU6OmNyZWF0ZSgqdGhpcywgc2FtcGxl
UmF0ZSgpKTsKIH0KIAorRXhjZXB0aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IFdlYktpdEF1ZGlv
Q29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFy
cmF5JiBpbWFnaW5hcnkpCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICAK
KyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmIChpc1N0b3BwZWQoKSkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAocmVh
bC5sZW5ndGgoKSAhPSBpbWFnaW5hcnkubGVuZ3RoKCkgfHwgcmVhbC5sZW5ndGgoKSA+IE1heFBl
cmlvZGljV2F2ZUxlbmd0aCB8fCAhcmVhbC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CisgICAgbGF6eUluaXRpYWxpemUoKTsKKyAgICByZXR1
cm4gUGVyaW9kaWNXYXZlOjpjcmVhdGUoc2FtcGxlUmF0ZSgpLCByZWFsLCBpbWFnaW5hcnkpOwor
fQorCiB2b2lkIFdlYktpdEF1ZGlvQ29udGV4dDo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYgcHJvbWlzZSkKIHsKICAgICBpZiAoaXNPZmZsaW5lQ29udGV4dCgpIHx8IGlzU3RvcHBl
ZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktp
dEF1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRB
dWRpb0NvbnRleHQuaAppbmRleCBkM2Q1Njk2ZTZkYWY1ZDQzMDg2YTNmNGYzOWUyNmU0MWM4ZDI4
YWE0Li41Zjc1YjA3M2RjYTNmMDg5NTdkYTljZTczMmIxZmEzODRiZGQyZTQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmgK
QEAgLTM2LDYgKzM2LDcgQEAgY2xhc3MgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOwogY2xh
c3MgTWVkaWFTdHJlYW07CiBjbGFzcyBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlOwog
Y2xhc3MgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU7CitjbGFzcyBQZXJpb2RpY1dhdmU7CiBj
bGFzcyBXZWJLaXRBdWRpb1Bhbm5lck5vZGU7CiAKIC8vIEF1ZGlvQ29udGV4dCBpcyB0aGUgY29y
bmVyc3RvbmUgb2YgdGhlIHdlYiBhdWRpbyBBUEkgYW5kIGFsbCBBdWRpb05vZGVzIGFyZSBjcmVh
dGVkIGZyb20gaXQuCkBAIC02MCw2ICs2MSw3IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25PcjxS
ZWY8TWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZT4+IGNyZWF0ZU1lZGlhU3RyZWFtRGVz
dGluYXRpb24oKTsKICNlbmRpZgogICAgIEV4Y2VwdGlvbk9yPFJlZjxXZWJLaXRBdWRpb1Bhbm5l
ck5vZGU+PiBjcmVhdGVXZWJLaXRQYW5uZXIoKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8UGVyaW9k
aWNXYXZlPj4gY3JlYXRlUGVyaW9kaWNXYXZlKEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFy
cmF5JiBpbWFnaW5hcnkpOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgV2ViS2l0QXVkaW9D
b250ZXh0KERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGZkMDEyMTk5NTQxOTZhZTk0YzJh
MzJmNmIxYTU0OWRjNTYyYjBiOGIuLjE0NjZhMDdjZjI5YjNmOGU2ZDRiMTA5ZTE0MGFlZWU3Zjhh
Yzc1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zMTcwLDYgKzMxNzAsOCBAQCBKU1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuY3BwCiBKU1BlcmZvcm1hbmNlU2VydmVyVGltaW5nLmNwcAogSlNQZXJm
b3JtYW5jZVRpbWluZy5jcHAKIEpTUGVyaW9kaWNXYXZlLmNwcAorSlNQZXJpb2RpY1dhdmVDb25z
dHJhaW50cy5jcHAKK0pTUGVyaW9kaWNXYXZlT3B0aW9ucy5jcHAKIEpTUGljdHVyZUluUGljdHVy
ZVdpbmRvdy5jcHAKIEpTUGxheWJhY2tEaXJlY3Rpb24uY3BwCiBKU1BvaW50ZXJFdmVudC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA3ZDk0MzlhMWVlOGY1YTcyMWZmMDkzZmJkYzEzYmM4NGQ1ODVmNTJhLi43ZDE1MDJiMWQz
OGM4ZTdiNTZlYmJkODRjMmFjOGQ5NDMyNzE1MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDQ1LDYgKzUwNDUsOCBAQAog
CQlFNUJBN0Q2MzE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUJBN0Q2MjE1MTQzN0NBMDBG
RTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTcxNDY3QjMyNEFCQUVGMjAwRkIyRjUwIC8qIEF1ZGlvTm9k
ZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU3MTQ2N0IxMjRBQkFFRjEwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmggKi87IH07CiAJ
CUU3MTQ2N0I2MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzE0NjdCNTI0QUJBRjFEMDBGQjJG
NTAgLyogUGFubmVyT3B0aW9ucy5oICovOyB9OworCQlFNzU1RTg5MjI0Qzc0MzRCMDA5RjdDMjMg
LyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU3NTVFODhGMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dh
dmVDb25zdHJhaW50cy5oICovOyB9OworCQlFNzU1RTg5OTI0Qzc0NjFEMDA5RjdDMjMgLyogUGVy
aW9kaWNXYXZlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTc1NUU4OTYyNEM3NDYxRDAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZU9wdGlvbnMu
aCAqLzsgfTsKIAkJRTc4NUQ5MTUyNEI0RDFDQTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3ODVEOTEx
MjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmggKi87IH07CiAJCUU3ODVEOTM0
MjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVsSW50ZXJwcmV0YXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3ODVEOTMxMjRCNjM2RkYwMDE0REIy
MSAvKiBDaGFubmVsSW50ZXJwcmV0YXRpb24uaCAqLzsgfTsKIAkJRTc4NUQ5NjEyNEI3RjczNTAw
MTREQjIxIC8qIEF1ZGlvQ29udGV4dE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3ODVEOTVGMjRCN0Y3MzQwMDE0REIyMSAvKiBBdWRpb0Nv
bnRleHRPcHRpb25zLmggKi87IH07CkBAIC0xNTgwMCw2ICsxNTgwMiwxMCBAQAogCQlFNzE0NjdC
NDI0QUJBRjBCMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9Ob2Rl
T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2N0I1MjRBQkFG
MUQwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBhbm5lck9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcx
NDY3QjcyNEFCQUYyQzAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFBhbm5lck9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFNzU1RTg4RjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTc1NUU4OTEyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNv
bnN0cmFpbnRzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3NTVFODk2MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2Rp
Y1dhdmVPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmlvZGljV2F2ZU9wdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTc1NUU4OTgyNEM3NDYxRDAwOUY3QzIzIC8qIFBl
cmlvZGljV2F2ZU9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcmlvZGljV2F2ZU9wdGlvbnMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzg1RDkxMTI0QjREMUIxMDAxNERCMjEgLyogQ2hh
bm5lbENvdW50TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGFubmVsQ291bnRNb2RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3ODVEOTEzMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFu
bmVsQ291bnRNb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDaGFubmVsQ291bnRNb2RlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTc4NUQ5MzEyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRl
cnByZXRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGFubmVsSW50ZXJwcmV0YXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5NDYzLDYgKzI5NDY5LDEwIEBACiAJCQkJRkQ1
ODFGQjExNTIwRjkzQjAwM0E3QTc1IC8qIFBlcmlvZGljV2F2ZS5jcHAgKi8sCiAJCQkJRkQ1ODFG
QjIxNTIwRjkzQjAwM0E3QTc1IC8qIFBlcmlvZGljV2F2ZS5oICovLAogCQkJCUZENTgxRkIzMTUy
MEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuaWRsICovLAorCQkJCUU3NTVFODhGMjRDNzQz
NEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oICovLAorCQkJCUU3NTVFODkx
MjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5pZGwgKi8sCisJCQkJ
RTc1NUU4OTYyNEM3NDYxRDAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZU9wdGlvbnMuaCAqLywKKwkJ
CQlFNzU1RTg5ODI0Qzc0NjFEMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwgKi8s
CiAJCQkJRkQzMTVGRjExMkIwMjY3NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuY3BwICov
LAogCQkJCUZEMzE1RkYyMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmggKi8s
CiAJCQkJRkQzMTVGRUIxMkIwMjY3NjAwQzFBMzU5IC8qIFNjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
ICovLApAQCAtMzI2MzcsNiArMzI2NDcsOCBAQAogCQkJCThBRjRFNTVDMTFEQzVBNjMwMDBFRDNE
RSAvKiBQZXJmb3JtYW5jZVRpbWluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU1NEI1RjMxRTM4
MzkzQTAwMUQ0RTAzIC8qIFBlcmZvcm1hbmNlVXNlclRpbWluZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkQ1ODFGQjUxNTIwRjkzQjAwM0E3QTc1IC8qIFBlcmlvZGljV2F2ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTc1NUU4OTIyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFp
bnRzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNzU1RTg5OTI0Qzc0NjFEMDA5RjdDMjMgLyogUGVy
aW9kaWNXYXZlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlENURDMkUwRjQyM0E3MzAw
OEYyMEZEIC8qIFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxREJDMUI1NjIzNDdCM0QyMDBCOTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRDJDODJCNzIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVy
ZUluUGljdHVyZVN1cHBvcnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKaW5kZXggMzY5MzZhODJmYjU1OTBhNjBjYWMzNzI2NDgxNjVlMGNjMTVkYzIwMy4uZGMx
ZGM2MzEyZWFjZjliMzE5NGQzY2MwZmMxYjZjMWQ3NGEzNThlMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDctMjIgIENsYXJrIFdhbmcgIDxj
bGFya193YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmUgY29uc3Ry
dWN0b3IgYWNjb3JkaW5nIHRvIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNDYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6
LgorCisgICAgICAgIFJlLWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0cyB0aGF0IG5vdyBwYXNzLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMu
d2luZG93LWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNy0yMCAgQ2xhcmsgV2FuZyAgPGNsYXJrX3dh
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeGVzIHRvIG1hdGNoIEJhc2VBdWRpb0NvbnRleHQu
aWRsIHRvIHNwZWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9p
ZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggOTlmNGMwY2MxMzdhNGJi
NzFjMGIzM2RhYjRkNDNlMjkwYjhkYWU2Zi4uNTZmZjgwNWNiOGI3NWJhNTFkNWNhZTYzN2Y5NmZh
MTY4N2YzYjQwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTk2OCwxMyArOTY4LDEz
IEBAIFBBU1MgQXVkaW9Ob2RlIGludGVyZmFjZTogbmV3IFBhbm5lck5vZGUoY29udGV4dCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVsCiBQQVNTIEF1ZGlvTm9kZSBpbnRlcmZhY2U6IG5l
dyBQYW5uZXJOb2RlKGNvbnRleHQpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2hhbm5lbENvdW50
TW9kZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEF1ZGlvTm9kZSBpbnRlcmZhY2U6IG5l
dyBQYW5uZXJOb2RlKGNvbnRleHQpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2hhbm5lbEludGVy
cHJldGF0aW9uIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgUGVyaW9kaWNXYXZlIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1GQUlM
IFBlcmlvZGljV2F2ZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1YWxzOiB3cm9u
ZyB2YWx1ZSBmb3IgUGVyaW9kaWNXYXZlLmxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFT
UyBQZXJpb2RpY1dhdmUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIFBlcmlvZGljV2F2
ZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCiBQQVNTIFBlcmlvZGljV2F2ZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBB
U1MgUGVyaW9kaWNXYXZlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKIFBBU1Mg
UGVyaW9kaWNXYXZlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLUZBSUwgUGVy
aW9kaWNXYXZlIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFBlcmlvZGljV2F2ZShj
b250ZXh0KSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRp
bmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlR5cGVFcnJvcjogZnVuY3Rp
b24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyBQZXJpb2RpY1dhdmUoY29u
dGV4dCknKSIKLUZBSUwgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBQZXJpb2RpY1dhdmUoY29udGV4
dCkgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9i
amVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJUeXBlRXJyb3I6IGZ1bmN0aW9uIGlz
IG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgUGVyaW9kaWNXYXZlKGNvbnRleHQp
JykiCitQQVNTIFBlcmlvZGljV2F2ZSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBQ
ZXJpb2RpY1dhdmUoY29udGV4dCkgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUGVyaW9k
aWNXYXZlKGNvbnRleHQpIAogUEFTUyBTY3JpcHRQcm9jZXNzb3JOb2RlIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIFNjcmlwdFBy
b2Nlc3Nvck5vZGUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIFNjcmlwdFByb2Nlc3Nv
ck5vZGUgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404969</attachid>
            <date>2020-07-22 14:53:49 -0700</date>
            <delta_ts>2020-07-22 15:01:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214615-20200722175347.patch</filename>
            <type>text/plain</type>
            <size>34288</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVlMDMzNTY2NDhiZjAx
OTczNDgwY2YwMmZhNGNhY2I2NTRmZmM5NS4uNjJhYWFlZDBhZTcyYTlhNzBhZTFmZjMxZTE3NmVk
MGQ5Y2U4OThjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA3LTIyICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgUGVyaW9kaWNX
YXZlIGNvbnN0cnVjdG9yIGFjY29yZGluZyB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MTUKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBSZS1iYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdGhhdCBu
b3cgcGFzcy4KKworICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmUgY29uc3RydWN0b3IgYWNjb3Jk
aW5nIHRvIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jcGVyaW9kaWN3YXZl
LgorICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cywgUGVyaW9kaWNXYXZlT3B0
aW9ucyBmaWxlcy4gVXBkYXRlZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVz
CisgICAgICAgIHRvIG5vcm1hbGl6ZSB3YXZlZm9ybSBiYXNlZCBvbiBzcGVjOiBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXVkaW8vI3dhdmVmb3JtLW5vcm1hbGl6YXRpb24uCisgICAgICAgIEFk
ZGVkIHVwZGF0ZWQgY3JlYXRlUGVyaW9kaWNXYXZlIG1ldGhvZCBpbiBCYXNlQXVkaW9Db250ZXh0
LCBhbmQgbW92ZWQgb2xkIGNyZWF0ZVBlcmlvZGljV2F2ZSBtZXRob2QKKyAgICAgICAgSW50byBX
ZWJLaXRBdWRpb0NvbnRleHQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmNyZWF0ZVBlcmlvZGljV2F2ZSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNlQXVkaW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRl
ZFRhYmxlcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYktpdEF1ZGlvQ29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMC0wNy0yMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdWzEuMThdIG1lZGlhc3RyZWFtc3JjIGVs
ZW1lbnQgaGl0cyBhc3NlcnQgaW4gZ3N0IC1jb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJh
NWE0MTFkYmNjYWYyM2M1Zjg5YTc4NDg5YzU4NTQxZmM0NGUwMGUuLmRjZDI1MzJlMGRjMDU2NTMx
MzhkMDRhYTQxZmViYWMyZTIzOGVkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00ODEsNiAr
NDgxLDggQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1
ZGlvL1Bhbm5lck9wdGlvbnMuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9QYW5uaW5nTW9kZWxU
eXBlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAorICAgIE1vZHVs
ZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsCisgICAgTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vU2NyaXB0
UHJvY2Vzc29yTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlk
bAogICAgIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYzkzNjMyOWM0
ZjA2MGIzNDYxOWNhY2M2OWEzNzc4OGUyMTlmZjdlOC4uMDQ0ODQ3ZTFjZTU2MGQ4YWM2MmU2MWZk
YjFkOWU5NDgyNDVkODQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CkBAIC0zMzAsNiArMzMwLDggQEAgJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9QYW5uZXJPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QYW5u
aW5nTW9kZWxUeXBlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNv
bnN0cmFpbnRzLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dh
dmVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVy
Tm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250
ZXh0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCBjMDAyNTk1ZTYxMTUxMTMxMmQwZTcwZTVkMzVlYWMyMjI2ZTlhYmUxLi43NThk
OGZjMDk4MWZkNDk0M2U1YWJlYzViOTk5ZWY5YTlmNWIxNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTMxNiw2ICsxMzE2LDEw
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyZm9y
bWFuY2VUaW1pbmcuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1BlcmZvcm1hbmNlVGltaW5nLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUGVyaW9kaWNXYXZlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmUuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyaW9k
aWNXYXZlQ29uc3RyYWludHMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVPcHRpb25zLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVPcHRpb25zLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGljdHVyZUluUGljdHVyZVdp
bmRvdy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UGljdHVyZUluUGljdHVyZVdpbmRvdy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1BsYXliYWNrRGlyZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggZDY1ZmMyZThiN2E3MzY2NGI1MGJkNmU1ODNlNjdlNjE4ZGEzYjY4ZC4u
MjIyNDQwMTc5ODFkNTMzYjk5Y2YxNmQ0ODcxNDY4MjMwNjkzNWZhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC00MTMsNiArNDEzLDggQEAgSlNfQklORElOR19JRExTID0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJPcHRpb25zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5pbmdNb2RlbFR5cGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaWRsIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwCmluZGV4IGM5N2YxODhlNDkwMmM0NGY3NzlhNGRmNDk1N2NiNzNjNTUyZjViODMuLjg2NjM4
ZDQwZTVjODM4ZDFiNzE0MzAzZWM3N2I4Zjg4MTg3M2M0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtOTEsOCAr
OTEsNiBAQAogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCi1jb25zdCB1bnNpZ25lZCBNYXhQZXJpb2RpY1dhdmVMZW5ndGggPSA0MDk2Owot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChCYXNl
QXVkaW9Db250ZXh0KTsKQEAgLTYzNSwxOCArNjMzLDIzIEBAIEV4Y2VwdGlvbk9yPFJlZjxPc2Np
bGxhdG9yTm9kZT4+IEJhc2VBdWRpb0NvbnRleHQ6OmNyZWF0ZU9zY2lsbGF0b3IoKQogICAgIHJl
dHVybiBub2RlOwogfQogCi1FeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNXYXZlPj4gQmFzZUF1ZGlv
Q29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFy
cmF5JiBpbWFnaW5hcnkpCitFeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNXYXZlPj4gQmFzZUF1ZGlv
Q29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKFZlY3RvcjxmbG9hdD4mJiByZWFsLCBWZWN0b3I8
ZmxvYXQ+JiYgaW1hZ2luYXJ5LCBjb25zdCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cyYgY29uc3Ry
YWludHMpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKICAgICAKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGlmIChtX2lzU3RvcFNjaGVkdWxlZCkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07Ci0KLSAgICBpZiAocmVhbC5s
ZW5ndGgoKSAhPSBpbWFnaW5hcnkubGVuZ3RoKCkgfHwgKHJlYWwubGVuZ3RoKCkgPiBNYXhQZXJp
b2RpY1dhdmVMZW5ndGgpIHx8ICFyZWFsLmxlbmd0aCgpKQotICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKKyAgICAKKyAgICBpZiAocmVhbC5zaXplKCkgIT0gaW1h
Z2luYXJ5LnNpemUoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9y
LCAicmVhbCBhbmQgaW1hZ2luYXJ5IG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGgiX3MgfTsKKyAg
ICAKKyAgICBQZXJpb2RpY1dhdmVPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5yZWFsID0g
V1RGTW92ZShyZWFsKTsKKyAgICBvcHRpb25zLmltYWcgPSBXVEZNb3ZlKGltYWdpbmFyeSk7Cisg
ICAgb3B0aW9ucy5kaXNhYmxlTm9ybWFsaXphdGlvbiA9IGNvbnN0cmFpbnRzLmRpc2FibGVOb3Jt
YWxpemF0aW9uOwogICAgIGxhenlJbml0aWFsaXplKCk7Ci0gICAgcmV0dXJuIFBlcmlvZGljV2F2
ZTo6Y3JlYXRlKHNhbXBsZVJhdGUoKSwgcmVhbCwgaW1hZ2luYXJ5KTsKKyAgICByZXR1cm4gUGVy
aW9kaWNXYXZlOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUob3B0aW9ucykpOwogfQogCiB2b2lkIEJh
c2VBdWRpb0NvbnRleHQ6Om5vdGlmeU5vZGVGaW5pc2hlZFByb2Nlc3NpbmcoQXVkaW9Ob2RlKiBu
b2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaAppbmRleCA0OWU3ZTNhOTNlZGU1NzMyYjQ4ODEyYWUyODRiYmY4ZmRkOWFlNjAyLi4y
NTEzODA4ODhmNDU4ZmJmYjg2N2UyZTY5ODIyYmRhOGYyNzA3YmZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaApAQCAtMzQsNiAr
MzQsOCBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFy
dExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIlBlcmlv
ZGljV2F2ZUNvbnN0cmFpbnRzLmgiCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZlT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCIKQEAgLTE1
Miw3ICsxNTQsNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8UmVmPENoYW5uZWxTcGxpdHRl
ck5vZGU+PiBjcmVhdGVDaGFubmVsU3BsaXR0ZXIoc2l6ZV90IG51bWJlck9mT3V0cHV0cyk7CiAg
ICAgRXhjZXB0aW9uT3I8UmVmPENoYW5uZWxNZXJnZXJOb2RlPj4gY3JlYXRlQ2hhbm5lbE1lcmdl
cihzaXplX3QgbnVtYmVyT2ZJbnB1dHMpOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxPc2NpbGxhdG9y
Tm9kZT4+IGNyZWF0ZU9zY2lsbGF0b3IoKTsKLSAgICBFeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNX
YXZlPj4gY3JlYXRlUGVyaW9kaWNXYXZlKEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFycmF5
JiBpbWFnaW5hcnkpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBjcmVhdGVQ
ZXJpb2RpY1dhdmUoVmVjdG9yPGZsb2F0PiYmIHJlYWwsIFZlY3RvcjxmbG9hdD4mJiBpbWFnaW5h
cnksIGNvbnN0IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzJiA9IHsgfSk7CiAKICAgICAvLyBXaGVu
IGEgc291cmNlIG5vZGUgaGFzIG5vIG1vcmUgcHJvY2Vzc2luZyB0byBkbyAoaGFzIGZpbmlzaGVk
IHBsYXlpbmcpLCB0aGVuIGl0IHRlbGxzIHRoZSBjb250ZXh0IHRvIGRlcmVmZXJlbmNlIGl0Lgog
ICAgIHZvaWQgbm90aWZ5Tm9kZUZpbmlzaGVkUHJvY2Vzc2luZyhBdWRpb05vZGUqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRs
CmluZGV4IDQzNTBiMWUwY2ViNTM1YTFhN2I5MDEwODhiODQ2ZmYxYjA5YTIzNTQuLjE5ODUzMjQw
ZGVlZWUwYWMxZDI4NmIwMjQxYjJlOGRlMjA4NGI5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbApAQCAtNjUsNyArNjUs
NyBAQAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gQW5hbHlzZXJOb2RlIGNyZWF0ZUFuYWx5c2Vy
KCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBTY3JpcHRQcm9jZXNzb3JOb2RlIGNyZWF0ZVNj
cmlwdFByb2Nlc3NvcihvcHRpb25hbCB1bnNpZ25lZCBsb25nIGJ1ZmZlclNpemUgPSAwLCBvcHRp
b25hbCB1bnNpZ25lZCBsb25nIG51bWJlck9mSW5wdXRDaGFubmVscyA9IDIsIG9wdGlvbmFsIHVu
c2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA9IDIpOwogICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gT3NjaWxsYXRvck5vZGUgY3JlYXRlT3NjaWxsYXRvcigpOwotICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gUGVyaW9kaWNXYXZlIGNyZWF0ZVBlcmlvZGljV2F2ZShGbG9hdDMyQXJyYXkg
cmVhbCwgRmxvYXQzMkFycmF5IGltYWcpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gUGVyaW9k
aWNXYXZlIGNyZWF0ZVBlcmlvZGljV2F2ZShzZXF1ZW5jZTxmbG9hdD4gcmVhbCwgc2VxdWVuY2U8
ZmxvYXQ+IGltYWcsIG9wdGlvbmFsIFBlcmlvZGljV2F2ZU9wdGlvbnMgb3B0aW9ucyk7CiAKICAg
ICAvLyBDaGFubmVsIHNwbGl0dGluZyBhbmQgbWVyZ2luZwogICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gQ2hhbm5lbFNwbGl0dGVyTm9kZSBjcmVhdGVDaGFubmVsU3BsaXR0ZXIob3B0aW9uYWwgdW5z
aWduZWQgbG9uZyBudW1iZXJPZk91dHB1dHMgPSA2KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmNwcAppbmRleCBlYzlhMTdjNGY1NmViOTk2NmRj
MTc2MjdlOTM0MDViYTFmZDQ4YzQ2Li4zMTllNmE2YzRjODVjYmQ1MzQ1OGZkMjIxN2U4NGIxNmEw
NzZjNzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Blcmlv
ZGljV2F2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmUuY3BwCkBAIC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIHVz
aW5nIG5hbWVzcGFjZSBWZWN0b3JNYXRoOwogCisvLyBGSVhNRTogUmVtb3ZlIG9uY2Ugb2xkIGNv
bnN0cnVjdG9yIGlzIHBoYXNlZCBvdXQKIFJlZjxQZXJpb2RpY1dhdmU+IFBlcmlvZGljV2F2ZTo6
Y3JlYXRlKGZsb2F0IHNhbXBsZVJhdGUsIEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFycmF5
JiBpbWFnaW5hcnkpCiB7CiAgICAgQVNTRVJUKHJlYWwubGVuZ3RoKCkgPT0gaW1hZ2luYXJ5Lmxl
bmd0aCgpKTsKQEAgLTUzLDYgKzU0LDQ0IEBAIFJlZjxQZXJpb2RpY1dhdmU+IFBlcmlvZGljV2F2
ZTo6Y3JlYXRlKGZsb2F0IHNhbXBsZVJhdGUsIEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvCiAgICAg
cmV0dXJuIHdhdmVUYWJsZTsKIH0KIAorRXhjZXB0aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IFBl
cmlvZGljV2F2ZTo6Y3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIFBlcmlvZGljV2F2
ZU9wdGlvbnMmJiBvcHRpb25zKQoreworICAgIFZlY3RvcjxmbG9hdD4gcmVhbDsKKyAgICBWZWN0
b3I8ZmxvYXQ+IGltYWc7CisgICAgCisgICAgaWYgKG9wdGlvbnMucmVhbCAmJiBvcHRpb25zLmlt
YWcpIHsKKyAgICAgICAgaWYgKG9wdGlvbnMucmVhbC0+c2l6ZSgpICE9IG9wdGlvbnMuaW1hZy0+
c2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAi
cmVhbCBhbmQgaW1hZyBoYXZlIGRpZmZlcmVudCBsZW5ndGhzIl9zIH07CisgICAgICAgIGlmIChv
cHRpb25zLnJlYWwtPnNpemUoKSA8IDIpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW5kZXhTaXplRXJyb3IsICJyZWFsJ3MgbGVuZ3RoIGNhbm5vdCBiZSBsZXNzIHRoYW4gMiJfcyB9
OworICAgICAgICBpZiAob3B0aW9ucy5pbWFnLT5zaXplKCkgPCAyKQorICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAiaW1hZydzIGxlbmd0aCBjYW5ub3QgYmUg
bGVzcyB0aGFuIDIiX3MgfTsKKyAgICAgICAgcmVhbCA9IFdURk1vdmUoKm9wdGlvbnMucmVhbCk7
CisgICAgICAgIGltYWcgPSBXVEZNb3ZlKCpvcHRpb25zLmltYWcpOworICAgIH0gZWxzZSBpZiAo
b3B0aW9ucy5yZWFsKSB7CisgICAgICAgIGlmIChvcHRpb25zLnJlYWwtPnNpemUoKSA8IDIpCisg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IsICJyZWFsJ3MgbGVu
Z3RoIGNhbm5vdCBiZSBsZXNzIHRoYW4gMiJfcyB9OworICAgICAgICByZWFsID0gV1RGTW92ZSgq
b3B0aW9ucy5yZWFsKTsKKyAgICAgICAgaW1hZy5maWxsKDAsIHJlYWwuc2l6ZSgpKTsKKyAgICB9
IGVsc2UgaWYgKG9wdGlvbnMuaW1hZykgeworICAgICAgICBpZiAob3B0aW9ucy5pbWFnLT5zaXpl
KCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAi
aW1hZydzIGxlbmd0aCBjYW5ub3QgYmUgbGVzcyB0aGFuIDIiX3MgfTsKKyAgICAgICAgaW1hZyA9
IFdURk1vdmUoKm9wdGlvbnMuaW1hZyk7CisgICAgICAgIHJlYWwuZmlsbCgwLCBpbWFnLnNpemUo
KSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVhbC5maWxsKDAsIDIpOworICAgICAgICBpbWFn
LmZpbGwoMCwgMik7CisgICAgICAgIGltYWdbMV0gPSAxOworICAgIH0KKworICAgIHJlYWxbMF0g
PSAwOworICAgIGltYWdbMF0gPSAwOworICAgIAorICAgIGF1dG8gd2F2ZVRhYmxlID0gYWRvcHRS
ZWYoKm5ldyBQZXJpb2RpY1dhdmUoY29udGV4dC5zYW1wbGVSYXRlKCkpKTsKKyAgICB3YXZlVGFi
bGUtPmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVzKHJlYWwuZGF0YSgpLCBpbWFnLmRhdGEoKSwgcmVh
bC5zaXplKCksIG9wdGlvbnMuZGlzYWJsZU5vcm1hbGl6YXRpb24gPyBTaG91bGREaXNhYmxlTm9y
bWFsaXphdGlvbjo6WWVzIDogU2hvdWxkRGlzYWJsZU5vcm1hbGl6YXRpb246Ok5vKTsKKyAgICBy
ZXR1cm4gd2F2ZVRhYmxlOworfQorCiBSZWY8UGVyaW9kaWNXYXZlPiBQZXJpb2RpY1dhdmU6OmNy
ZWF0ZVNpbmUoZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICBSZWY8UGVyaW9kaWNXYXZlPiB3YXZl
VGFibGUgPSBhZG9wdFJlZigqbmV3IFBlcmlvZGljV2F2ZShzYW1wbGVSYXRlKSk7CkBAIC0xNDIs
NyArMTgxLDcgQEAgdW5zaWduZWQgUGVyaW9kaWNXYXZlOjpudW1iZXJPZlBhcnRpYWxzRm9yUmFu
Z2UodW5zaWduZWQgcmFuZ2VJbmRleCkgY29uc3QKIC8vIENvbnZlcnQgaW50byB0aW1lLWRvbWFp
biB3YXZlIHRhYmxlcy4KIC8vIE9uZSB0YWJsZSBpcyBjcmVhdGVkIGZvciBlYWNoIHJhbmdlIGZv
ciBub24tYWxpYXNpbmcgcGxheWJhY2sgYXQgZGlmZmVyZW50IHBsYXliYWNrIHJhdGVzLgogLy8g
VGh1cywgaGlnaGVyIHJhbmdlcyBoYXZlIG1vcmUgaGlnaC1mcmVxdWVuY3kgcGFydGlhbHMgY3Vs
bGVkIG91dC4KLXZvaWQgUGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25z
dCBmbG9hdCogcmVhbERhdGEsIGNvbnN0IGZsb2F0KiBpbWFnRGF0YSwgdW5zaWduZWQgbnVtYmVy
T2ZDb21wb25lbnRzKQordm9pZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVz
KGNvbnN0IGZsb2F0KiByZWFsRGF0YSwgY29uc3QgZmxvYXQqIGltYWdEYXRhLCB1bnNpZ25lZCBu
dW1iZXJPZkNvbXBvbmVudHMsIFNob3VsZERpc2FibGVOb3JtYWxpemF0aW9uIGRpc2FibGVOb3Jt
YWxpemF0aW9uKQogewogICAgIGZsb2F0IG5vcm1hbGl6YXRpb25TY2FsZSA9IDE7CiAKQEAgLTE5
OSwxMiArMjM4LDE0IEBAIHZvaWQgUGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRlZFRhYmxl
cyhjb25zdCBmbG9hdCogcmVhbERhdGEsIGNvbnN0IGZsb2F0KiBpCiAgICAgICAgIGZyYW1lLmRv
SW52ZXJzZUZGVChkYXRhKTsKIAogICAgICAgICAvLyBGb3IgdGhlIGZpcnN0IHJhbmdlICh3aGlj
aCBoYXMgdGhlIGhpZ2hlc3QgcG93ZXIpLCBjYWxjdWxhdGUgaXRzIHBlYWsgdmFsdWUgdGhlbiBj
b21wdXRlIG5vcm1hbGl6YXRpb24gc2NhbGUuCi0gICAgICAgIGlmICghcmFuZ2VJbmRleCkgewot
ICAgICAgICAgICAgZmxvYXQgbWF4VmFsdWU7Ci0gICAgICAgICAgICB2bWF4bWd2KGRhdGEsIDEs
ICZtYXhWYWx1ZSwgbV9wZXJpb2RpY1dhdmVTaXplKTsKLQotICAgICAgICAgICAgaWYgKG1heFZh
bHVlKQotICAgICAgICAgICAgICAgIG5vcm1hbGl6YXRpb25TY2FsZSA9IDEuMGYgLyBtYXhWYWx1
ZTsKKyAgICAgICAgaWYgKGRpc2FibGVOb3JtYWxpemF0aW9uID09IFNob3VsZERpc2FibGVOb3Jt
YWxpemF0aW9uOjpObykgeworICAgICAgICAgICAgaWYgKCFyYW5nZUluZGV4KSB7CisgICAgICAg
ICAgICAgICAgZmxvYXQgbWF4VmFsdWU7CisgICAgICAgICAgICAgICAgdm1heG1ndihkYXRhLCAx
LCAmbWF4VmFsdWUsIG1fcGVyaW9kaWNXYXZlU2l6ZSk7CisKKyAgICAgICAgICAgICAgICBpZiAo
bWF4VmFsdWUpCisgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6YXRpb25TY2FsZSA9IDEuMGYg
LyBtYXhWYWx1ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIC8vIEFwcGx5
IG5vcm1hbGl6YXRpb24gc2NhbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9QZXJpb2RpY1dhdmUuaAppbmRleCA3OWEyZDgyYWM2Y2MzMWY1NDZmOThkNDJhMWM1MWYyNTc1
ZDU2NDQxLi5kZTNlN2I2YTA3YTJlMmExZWQwNDU3ZjVmNGFjYmMzMTE1YWY1NzNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmgKQEAgLTI5LDYg
KzI5LDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1
ZGUgIkJhc2VBdWRpb0NvbnRleHQuaCIKKyNpbmNsdWRlICJQZXJpb2RpY1dhdmVPcHRpb25zLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8bWVt
b3J5PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC0zNiw2ICszOCw4IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlv
biA6IGJvb2wgeyBObywgWWVzIH07CisKIGNsYXNzIFBlcmlvZGljV2F2ZSBmaW5hbCA6IHB1Ymxp
YyBSZWZDb3VudGVkPFBlcmlvZGljV2F2ZT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVy
aW9kaWNXYXZlPiBjcmVhdGVTaW5lKGZsb2F0IHNhbXBsZVJhdGUpOwpAQCAtNDQsNyArNDgsMTAg
QEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVyaW9kaWNXYXZlPiBjcmVhdGVUcmlhbmdsZShm
bG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIENyZWF0ZXMgYW4gYXJiaXRyYXJ5IHdhdmUgZ2l2
ZW4gdGhlIGZyZXF1ZW5jeSBjb21wb25lbnRzIChGb3VyaWVyIGNvZWZmaWNpZW50cykuCisgICAg
Ly8gRklYTUU6IFJlbW92ZSBvbmNlIG9sZCBjb25zdHJ1Y3RvciBpcyBwaGFzZWQgb3V0CiAgICAg
c3RhdGljIFJlZjxQZXJpb2RpY1dhdmU+IGNyZWF0ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMy
QXJyYXkmIHJlYWwsIEZsb2F0MzJBcnJheSYgaW1hZyk7CisgICAgCisgICAgc3RhdGljIEV4Y2Vw
dGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYsIFBlcmlv
ZGljV2F2ZU9wdGlvbnMmJiA9IHsgfSk7CiAKICAgICAvLyBSZXR1cm5zIHBvaW50ZXJzIHRvIHRo
ZSBsb3dlciBhbmQgaGlnaGVyIHdhdmUgZGF0YSBmb3IgdGhlIHBpdGNoIHJhbmdlIGNvbnRhaW5p
bmcKICAgICAvLyB0aGUgZ2l2ZW4gZnVuZGFtZW50YWwgZnJlcXVlbmN5LiBUaGVzZSB0d28gdGFi
bGVzIGFyZSBpbiBhZGphY2VudCAicGl0Y2giIHJhbmdlcwpAQCAtOTIsNyArOTksNyBAQCBwcml2
YXRlOgogICAgIHVuc2lnbmVkIG51bWJlck9mUGFydGlhbHNGb3JSYW5nZSh1bnNpZ25lZCByYW5n
ZUluZGV4KSBjb25zdDsKIAogICAgIC8vIENyZWF0ZXMgdGFibGVzIGJhc2VkIG9uIG51bWJlck9m
Q29tcG9uZW50cyBGb3VyaWVyIGNvZWZmaWNpZW50cy4KLSAgICB2b2lkIGNyZWF0ZUJhbmRMaW1p
dGVkVGFibGVzKGNvbnN0IGZsb2F0KiByZWFsLCBjb25zdCBmbG9hdCogaW1hZywgdW5zaWduZWQg
bnVtYmVyT2ZDb21wb25lbnRzKTsKKyAgICB2b2lkIGNyZWF0ZUJhbmRMaW1pdGVkVGFibGVzKGNv
bnN0IGZsb2F0KiByZWFsLCBjb25zdCBmbG9hdCogaW1hZywgdW5zaWduZWQgbnVtYmVyT2ZDb21w
b25lbnRzLCBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbiA9IFNob3VsZERpc2FibGVOb3JtYWxp
emF0aW9uOjpObyk7CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+
PiBtX2JhbmRMaW1pdGVkVGFibGVzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaWRsCmluZGV4IDBiZjA5MjIyMWFkN2FkMGFmNjdjZjI0
NDc5OTY4YzRjNjg4Y2M3NTYuLjM2MDg1MDYxNjMxZjk5NTY1NTMzYWQ2Nzc0Y2YyMmJjNWMwNDUy
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNX
YXZlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2
ZS5pZGwKQEAgLTI3LDUgKzI3LDUgQEAKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAg
SW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQogXSBpbnRlcmZhY2UgUGVyaW9kaWNXYXZlIHsKLQor
ICAgIFtNYXlUaHJvd0V4Y2VwdGlvbiwgRW5hYmxlZEJ5U2V0dGluZz1Nb2Rlcm5VbnByZWZpeGVk
V2ViQXVkaW9dIGNvbnN0cnVjdG9yKEJhc2VBdWRpb0NvbnRleHQgY29udGV4dCwgb3B0aW9uYWwg
UGVyaW9kaWNXYXZlT3B0aW9ucyBvcHRpb25zKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzI2NTc1MmIwM2FjMTIwYmE1OTRiOGY1NjJlNzIzYzkzMTY0NzZiZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29u
c3RyYWludHMuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQ
ZXJpb2RpY1dhdmVDb25zdHJhaW50cyB7CisgICAgYm9vbCBkaXNhYmxlTm9ybWFsaXphdGlvbiA9
IGZhbHNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
UGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJiNWY4MmE0YWIx
YzM1YzhlZGRiNzQxNmZjZGRkZDhmMDY0YjA3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsCkBAIC0w
LDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworWworICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKK10g
ZGljdGlvbmFyeSBQZXJpb2RpY1dhdmVDb25zdHJhaW50cyB7CisgICAgYm9vbGVhbiBkaXNhYmxl
Tm9ybWFsaXphdGlvbiA9IGZhbHNlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTM1YmY4ODEw
NTFmNDZhYTllYTU2YzBjNmFlMzE2NTU2N2MwZGI3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5oCkBAIC0wLDAg
KzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVE
SU8pCisKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIlBlcmlvZGljV2F2ZUNv
bnN0cmFpbnRzLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQZXJpb2RpY1dhdmVPcHRp
b25zIDogcHVibGljIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzIHsKKyAgICBPcHRpb25hbDxWZWN0
b3I8ZmxvYXQ+PiByZWFsOworICAgIE9wdGlvbmFsPFZlY3RvcjxmbG9hdD4+IGltYWc7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVP
cHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZl
T3B0aW9ucy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFiNGU0OTZkZDE1ZWExODgzNDU0ZjEwZjBjZGYyYTRh
M2VjNGRkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCitb
CisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorXSBkaWN0aW9uYXJ5IFBlcmlvZGljV2F2ZU9w
dGlvbnMgOiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cyB7CisgICAgc2VxdWVuY2U8ZmxvYXQ+IHJl
YWw7CisgICAgc2VxdWVuY2U8ZmxvYXQ+IGltYWc7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwCmluZGV4IDBlM2U2
NWE5Y2VkM2EyNzUzOWIzYTg1MTcxMGQxNGZjNmI2ZjAwMzcuLjA0ZTljYTY0ZTNkOGM2NTFiMTNi
NDhjZWMwYjk4MWQ3OWMzZmMxZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJXZWJLaXRBdWRpb0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZlLmgiCiAjaW5jbHVkZSAiV2ViS2l0QXVk
aW9QYW5uZXJOb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAt
NDUsNiArNDYsOCBAQAogI2luY2x1ZGUgIk1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIgog
I2VuZGlmCiAKK2NvbnN0IHVuc2lnbmVkIE1heFBlcmlvZGljV2F2ZUxlbmd0aCA9IDQwOTY7CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYktp
dEF1ZGlvQ29udGV4dCk7CkBAIC0xNjcsNiArMTcwLDIwIEBAIEV4Y2VwdGlvbk9yPFJlZjxXZWJL
aXRBdWRpb1Bhbm5lck5vZGU+PiBXZWJLaXRBdWRpb0NvbnRleHQ6OmNyZWF0ZVdlYktpdFBhbm5l
cigpCiAgICAgcmV0dXJuIFdlYktpdEF1ZGlvUGFubmVyTm9kZTo6Y3JlYXRlKCp0aGlzLCBzYW1w
bGVSYXRlKCkpOwogfQogCitFeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNXYXZlPj4gV2ViS2l0QXVk
aW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUoRmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMy
QXJyYXkmIGltYWdpbmFyeSkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAg
IAorICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKGlzU3RvcHBlZCgpKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmIChy
ZWFsLmxlbmd0aCgpICE9IGltYWdpbmFyeS5sZW5ndGgoKSB8fCByZWFsLmxlbmd0aCgpID4gTWF4
UGVyaW9kaWNXYXZlTGVuZ3RoIHx8ICFyZWFsLmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKKyAgICBsYXp5SW5pdGlhbGl6ZSgpOworICAgIHJl
dHVybiBQZXJpb2RpY1dhdmU6OmNyZWF0ZShzYW1wbGVSYXRlKCksIHJlYWwsIGltYWdpbmFyeSk7
Cit9CisKIHZvaWQgV2ViS2l0QXVkaW9Db250ZXh0OjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiBwcm9taXNlKQogewogICAgIGlmIChpc09mZmxpbmVDb250ZXh0KCkgfHwgaXNTdG9w
cGVkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2Vi
S2l0QXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktp
dEF1ZGlvQ29udGV4dC5oCmluZGV4IGQzZDU2OTZlNmRhZjVkNDMwODZhM2Y0ZjM5ZTI2ZTQxYzhk
MjhhYTQuLjVmNzViMDczZGNhM2YwODk1N2RhOWNlNzMyYjFmYTM4NGJkZDJlNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQu
aApAQCAtMzYsNiArMzYsNyBAQCBjbGFzcyBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU7CiBj
bGFzcyBNZWRpYVN0cmVhbTsKIGNsYXNzIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGU7
CiBjbGFzcyBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZTsKK2NsYXNzIFBlcmlvZGljV2F2ZTsK
IGNsYXNzIFdlYktpdEF1ZGlvUGFubmVyTm9kZTsKIAogLy8gQXVkaW9Db250ZXh0IGlzIHRoZSBj
b3JuZXJzdG9uZSBvZiB0aGUgd2ViIGF1ZGlvIEFQSSBhbmQgYWxsIEF1ZGlvTm9kZXMgYXJlIGNy
ZWF0ZWQgZnJvbSBpdC4KQEAgLTYwLDYgKzYxLDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9y
PFJlZjxNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlPj4gY3JlYXRlTWVkaWFTdHJlYW1E
ZXN0aW5hdGlvbigpOwogI2VuZGlmCiAgICAgRXhjZXB0aW9uT3I8UmVmPFdlYktpdEF1ZGlvUGFu
bmVyTm9kZT4+IGNyZWF0ZVdlYktpdFBhbm5lcigpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJp
b2RpY1dhdmU+PiBjcmVhdGVQZXJpb2RpY1dhdmUoRmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMy
QXJyYXkmIGltYWdpbmFyeSk7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBXZWJLaXRBdWRp
b0NvbnRleHQoRG9jdW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZmQwMTIxOTk1NDE5NmFlOTRj
MmEzMmY2YjFhNTQ5ZGM1NjJiMGI4Yi4uMTQ2NmEwN2NmMjliM2Y4ZTZkNGIxMDllMTQwYWVlZTdm
OGFjNzU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTMxNzAsNiArMzE3MCw4IEBAIEpTUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZy5jcHAKIEpTUGVyZm9ybWFuY2VTZXJ2ZXJUaW1pbmcuY3BwCiBKU1Bl
cmZvcm1hbmNlVGltaW5nLmNwcAogSlNQZXJpb2RpY1dhdmUuY3BwCitKU1BlcmlvZGljV2F2ZUNv
bnN0cmFpbnRzLmNwcAorSlNQZXJpb2RpY1dhdmVPcHRpb25zLmNwcAogSlNQaWN0dXJlSW5QaWN0
dXJlV2luZG93LmNwcAogSlNQbGF5YmFja0RpcmVjdGlvbi5jcHAKIEpTUG9pbnRlckV2ZW50LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDdkOTQzOWExZWU4ZjVhNzIxZmYwOTNmYmRjMTNiYzg0ZDU4NWY1MmEuLjdkMTUwMmIx
ZDM4YzhlN2I1NmViYmQ4NGMyYWM4ZDk0MzI3MTUyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwNDUsNiArNTA0NSw4IEBA
CiAJCUU1QkE3RDYzMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1QkE3RDYyMTUxNDM3Q0Ew
MEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFNzE0NjdCMzI0QUJBRUYyMDBGQjJGNTAgLyogQXVkaW9O
b2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTcxNDY3QjEyNEFCQUVGMTAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaCAqLzsgfTsK
IAkJRTcxNDY3QjYyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3MTQ2N0I1MjRBQkFGMUQwMEZC
MkY1MCAvKiBQYW5uZXJPcHRpb25zLmggKi87IH07CisJCUU3NTVFODkyMjRDNzQzNEIwMDlGN0My
MyAvKiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTc1NUU4OEYyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGlj
V2F2ZUNvbnN0cmFpbnRzLmggKi87IH07CisJCUU3NTVFODk5MjRDNzQ2MUQwMDlGN0MyMyAvKiBQ
ZXJpb2RpY1dhdmVPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNzU1RTg5NjI0Qzc0NjFEMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0aW9u
cy5oICovOyB9OwogCQlFNzg1RDkxNTI0QjREMUNBMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5
MTEyNEI0RDFCMTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaCAqLzsgfTsKIAkJRTc4NUQ5
MzQyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5MzEyNEI2MzZGRjAwMTRE
QjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5oICovOyB9OwogCQlFNzg1RDk2MTI0QjdGNzM1
MDAxNERCMjEgLyogQXVkaW9Db250ZXh0T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5NUYyNEI3RjczNDAwMTREQjIxIC8qIEF1ZGlv
Q29udGV4dE9wdGlvbnMuaCAqLzsgfTsKQEAgLTE1ODAwLDYgKzE1ODAyLDEwIEBACiAJCUU3MTQ2
N0I0MjRBQkFGMEIwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb05v
ZGVPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjUyNEFC
QUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGFubmVyT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NzE0NjdCNzI0QUJBRjJDMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUGFubmVyT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUU3NTVFODhGMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNzU1RTg5MTI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZl
Q29uc3RyYWludHMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTc1NUU4OTYyNEM3NDYxRDAwOUY3QzIzIC8qIFBlcmlv
ZGljV2F2ZU9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyaW9kaWNXYXZlT3B0aW9ucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNzU1RTg5ODI0Qzc0NjFEMDA5RjdDMjMgLyog
UGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3ODVEOTExMjRCNEQxQjEwMDE0REIyMSAvKiBD
aGFubmVsQ291bnRNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYW5uZWxDb3VudE1vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTc4NUQ5MTMyNEI0RDFCMTAwMTREQjIxIC8qIENo
YW5uZWxDb3VudE1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENoYW5uZWxDb3VudE1vZGUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNzg1RDkzMTI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbElu
dGVycHJldGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYW5uZWxJbnRlcnByZXRhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjk0NjMsNiArMjk0NjksMTAgQEAKIAkJCQlG
RDU4MUZCMTE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmNwcCAqLywKIAkJCQlGRDU4
MUZCMjE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmggKi8sCiAJCQkJRkQ1ODFGQjMx
NTIwRjkzQjAwM0E3QTc1IC8qIFBlcmlvZGljV2F2ZS5pZGwgKi8sCisJCQkJRTc1NUU4OEYyNEM3
NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggKi8sCisJCQkJRTc1NUU4
OTEyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCAqLywKKwkJ
CQlFNzU1RTg5NjI0Qzc0NjFEMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0aW9ucy5oICovLAor
CQkJCUU3NTVFODk4MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRpb25zLmlkbCAq
LywKIAkJCQlGRDMxNUZGMTEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5jcHAg
Ki8sCiAJCQkJRkQzMTVGRjIxMkIwMjY3NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuaCAq
LywKIAkJCQlGRDMxNUZFQjEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0UHJvY2Vzc29yTm9kZS5j
cHAgKi8sCkBAIC0zMjYzNyw2ICszMjY0Nyw4IEBACiAJCQkJOEFGNEU1NUMxMURDNUE2MzAwMEVE
M0RFIC8qIFBlcmZvcm1hbmNlVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTU0QjVGMzFF
MzgzOTNBMDAxRDRFMDMgLyogUGVyZm9ybWFuY2VVc2VyVGltaW5nLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDU4MUZCNTE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFNzU1RTg5MjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3Ry
YWludHMuaCBpbiBIZWFkZXJzICovLAorCQkJCUU3NTVFODk5MjRDNzQ2MUQwMDlGN0MyMyAvKiBQ
ZXJpb2RpY1dhdmVPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUQ1REMyRTBGNDIzQTcz
MDA4RjIwRkQgLyogUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTFEQkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFEMkM4MkI3MjM2QTNGNkEwMDU1RDZDNSAvKiBQaWN0
dXJlSW5QaWN0dXJlU3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwppbmRleCAzNjkzNmE4MmZiNTU5MGE2MGNhYzM3MjY0ODE2NWUwY2MxNWRjMjAzLi5k
YzFkYzYzMTJlYWNmOWIzMTk0ZDNjYzBmYzFiNmMxZDc0YTM1OGUwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNy0yMiAgQ2xhcmsgV2FuZyAg
PGNsYXJrX3dhbmdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZGVkIFBlcmlvZGljV2F2ZSBjb25z
dHJ1Y3RvciBhY2NvcmRpbmcgdG8gc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgUmUtYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzIHRoYXQgbm93IHBhc3Mu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRw
cy53aW5kb3ctZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA3LTIwICBDbGFyayBXYW5nICA8Y2xhcmtf
d2FuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRml4ZXMgdG8gbWF0Y2ggQmFzZUF1ZGlvQ29udGV4
dC5pZGwgdG8gc3BlYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCA5OWY0YzBjYzEzN2E0
YmI3MWMwYjMzZGFiNGQ0M2UyOTBiOGRhZTZmLi41NmZmODA1Y2I4Yjc1YmE1MWQ1Y2FlNjM3Zjk2
ZmExNjg3ZjNiNDAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dApAQCAtOTY4LDEzICs5Njgs
MTMgQEAgUEFTUyBBdWRpb05vZGUgaW50ZXJmYWNlOiBuZXcgUGFubmVyTm9kZShjb250ZXh0KSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImNoYW5uZWwKIFBBU1MgQXVkaW9Ob2RlIGludGVyZmFjZTog
bmV3IFBhbm5lck5vZGUoY29udGV4dCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVsQ291
bnRNb2RlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgQXVkaW9Ob2RlIGludGVyZmFjZTog
bmV3IFBhbm5lck5vZGUoY29udGV4dCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVsSW50
ZXJwcmV0YXRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBQZXJpb2RpY1dhdmUgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLUZB
SUwgUGVyaW9kaWNXYXZlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9lcXVhbHM6IHdy
b25nIHZhbHVlIGZvciBQZXJpb2RpY1dhdmUubGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQ
QVNTIFBlcmlvZGljV2F2ZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgUGVyaW9kaWNX
YXZlIGludGVyZmFjZSBvYmplY3QgbmFtZSAKIFBBU1MgUGVyaW9kaWNXYXZlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAog
UEFTUyBQZXJpb2RpY1dhdmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAogUEFT
UyBQZXJpb2RpY1dhdmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotRkFJTCBQ
ZXJpb2RpY1dhdmUgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgUGVyaW9kaWNXYXZl
KGNvbnRleHQpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiVHlwZUVycm9yOiBmdW5j
dGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IFBlcmlvZGljV2F2ZShj
b250ZXh0KScpIgotRkFJTCBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFBlcmlvZGljV2F2ZShjb250
ZXh0KSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcg
b2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlR5cGVFcnJvcjogZnVuY3Rpb24g
aXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyBQZXJpb2RpY1dhdmUoY29udGV4
dCknKSIKK1BBU1MgUGVyaW9kaWNXYXZlIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3
IFBlcmlvZGljV2F2ZShjb250ZXh0KSAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBQZXJp
b2RpY1dhdmUoY29udGV4dCkgCiBQQVNTIFNjcmlwdFByb2Nlc3Nvck5vZGUgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgU2NyaXB0
UHJvY2Vzc29yTm9kZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgU2NyaXB0UHJvY2Vz
c29yTm9kZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404974</attachid>
            <date>2020-07-22 15:01:28 -0700</date>
            <delta_ts>2020-07-22 15:21:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214615-20200722180127.patch</filename>
            <type>text/plain</type>
            <size>34436</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVlMDMzNTY2NDhiZjAx
OTczNDgwY2YwMmZhNGNhY2I2NTRmZmM5NS4uNjJhYWFlZDBhZTcyYTlhNzBhZTFmZjMxZTE3NmVk
MGQ5Y2U4OThjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA3LTIyICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgUGVyaW9kaWNX
YXZlIGNvbnN0cnVjdG9yIGFjY29yZGluZyB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MTUKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBSZS1iYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdGhhdCBu
b3cgcGFzcy4KKworICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmUgY29uc3RydWN0b3IgYWNjb3Jk
aW5nIHRvIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jcGVyaW9kaWN3YXZl
LgorICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cywgUGVyaW9kaWNXYXZlT3B0
aW9ucyBmaWxlcy4gVXBkYXRlZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVz
CisgICAgICAgIHRvIG5vcm1hbGl6ZSB3YXZlZm9ybSBiYXNlZCBvbiBzcGVjOiBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXVkaW8vI3dhdmVmb3JtLW5vcm1hbGl6YXRpb24uCisgICAgICAgIEFk
ZGVkIHVwZGF0ZWQgY3JlYXRlUGVyaW9kaWNXYXZlIG1ldGhvZCBpbiBCYXNlQXVkaW9Db250ZXh0
LCBhbmQgbW92ZWQgb2xkIGNyZWF0ZVBlcmlvZGljV2F2ZSBtZXRob2QKKyAgICAgICAgSW50byBX
ZWJLaXRBdWRpb0NvbnRleHQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmNyZWF0ZVBlcmlvZGljV2F2ZSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNlQXVkaW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRl
ZFRhYmxlcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYktpdEF1ZGlvQ29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMC0wNy0yMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdWzEuMThdIG1lZGlhc3RyZWFtc3JjIGVs
ZW1lbnQgaGl0cyBhc3NlcnQgaW4gZ3N0IC1jb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJh
NWE0MTFkYmNjYWYyM2M1Zjg5YTc4NDg5YzU4NTQxZmM0NGUwMGUuLmRjZDI1MzJlMGRjMDU2NTMx
MzhkMDRhYTQxZmViYWMyZTIzOGVkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00ODEsNiAr
NDgxLDggQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1
ZGlvL1Bhbm5lck9wdGlvbnMuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9QYW5uaW5nTW9kZWxU
eXBlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAorICAgIE1vZHVs
ZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsCisgICAgTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vU2NyaXB0
UHJvY2Vzc29yTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlk
bAogICAgIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYzkzNjMyOWM0
ZjA2MGIzNDYxOWNhY2M2OWEzNzc4OGUyMTlmZjdlOC4uMDQ0ODQ3ZTFjZTU2MGQ4YWM2MmU2MWZk
YjFkOWU5NDgyNDVkODQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CkBAIC0zMzAsNiArMzMwLDggQEAgJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9QYW5uZXJPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QYW5u
aW5nTW9kZWxUeXBlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNv
bnN0cmFpbnRzLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dh
dmVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVy
Tm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250
ZXh0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCBjMDAyNTk1ZTYxMTUxMTMxMmQwZTcwZTVkMzVlYWMyMjI2ZTlhYmUxLi43NThk
OGZjMDk4MWZkNDk0M2U1YWJlYzViOTk5ZWY5YTlmNWIxNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTMxNiw2ICsxMzE2LDEw
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyZm9y
bWFuY2VUaW1pbmcuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1BlcmZvcm1hbmNlVGltaW5nLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUGVyaW9kaWNXYXZlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmUuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyaW9k
aWNXYXZlQ29uc3RyYWludHMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVPcHRpb25zLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVPcHRpb25zLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGljdHVyZUluUGljdHVyZVdp
bmRvdy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UGljdHVyZUluUGljdHVyZVdpbmRvdy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1BsYXliYWNrRGlyZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggZDY1ZmMyZThiN2E3MzY2NGI1MGJkNmU1ODNlNjdlNjE4ZGEzYjY4ZC4u
MjIyNDQwMTc5ODFkNTMzYjk5Y2YxNmQ0ODcxNDY4MjMwNjkzNWZhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC00MTMsNiArNDEzLDggQEAgSlNfQklORElOR19JRExTID0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJPcHRpb25zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5pbmdNb2RlbFR5cGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaWRsIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwCmluZGV4IGM5N2YxODhlNDkwMmM0NGY3NzlhNGRmNDk1N2NiNzNjNTUyZjViODMuLjg2NjM4
ZDQwZTVjODM4ZDFiNzE0MzAzZWM3N2I4Zjg4MTg3M2M0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtOTEsOCAr
OTEsNiBAQAogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCi1jb25zdCB1bnNpZ25lZCBNYXhQZXJpb2RpY1dhdmVMZW5ndGggPSA0MDk2Owot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChCYXNl
QXVkaW9Db250ZXh0KTsKQEAgLTYzNSwxOCArNjMzLDIzIEBAIEV4Y2VwdGlvbk9yPFJlZjxPc2Np
bGxhdG9yTm9kZT4+IEJhc2VBdWRpb0NvbnRleHQ6OmNyZWF0ZU9zY2lsbGF0b3IoKQogICAgIHJl
dHVybiBub2RlOwogfQogCi1FeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNXYXZlPj4gQmFzZUF1ZGlv
Q29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFy
cmF5JiBpbWFnaW5hcnkpCitFeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNXYXZlPj4gQmFzZUF1ZGlv
Q29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKFZlY3RvcjxmbG9hdD4mJiByZWFsLCBWZWN0b3I8
ZmxvYXQ+JiYgaW1hZ2luYXJ5LCBjb25zdCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cyYgY29uc3Ry
YWludHMpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKICAgICAKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGlmIChtX2lzU3RvcFNjaGVkdWxlZCkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07Ci0KLSAgICBpZiAocmVhbC5s
ZW5ndGgoKSAhPSBpbWFnaW5hcnkubGVuZ3RoKCkgfHwgKHJlYWwubGVuZ3RoKCkgPiBNYXhQZXJp
b2RpY1dhdmVMZW5ndGgpIHx8ICFyZWFsLmxlbmd0aCgpKQotICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKKyAgICAKKyAgICBpZiAocmVhbC5zaXplKCkgIT0gaW1h
Z2luYXJ5LnNpemUoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9y
LCAicmVhbCBhbmQgaW1hZ2luYXJ5IG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGgiX3MgfTsKKyAg
ICAKKyAgICBQZXJpb2RpY1dhdmVPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5yZWFsID0g
V1RGTW92ZShyZWFsKTsKKyAgICBvcHRpb25zLmltYWcgPSBXVEZNb3ZlKGltYWdpbmFyeSk7Cisg
ICAgb3B0aW9ucy5kaXNhYmxlTm9ybWFsaXphdGlvbiA9IGNvbnN0cmFpbnRzLmRpc2FibGVOb3Jt
YWxpemF0aW9uOwogICAgIGxhenlJbml0aWFsaXplKCk7Ci0gICAgcmV0dXJuIFBlcmlvZGljV2F2
ZTo6Y3JlYXRlKHNhbXBsZVJhdGUoKSwgcmVhbCwgaW1hZ2luYXJ5KTsKKyAgICByZXR1cm4gUGVy
aW9kaWNXYXZlOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUob3B0aW9ucykpOwogfQogCiB2b2lkIEJh
c2VBdWRpb0NvbnRleHQ6Om5vdGlmeU5vZGVGaW5pc2hlZFByb2Nlc3NpbmcoQXVkaW9Ob2RlKiBu
b2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaAppbmRleCA0OWU3ZTNhOTNlZGU1NzMyYjQ4ODEyYWUyODRiYmY4ZmRkOWFlNjAyLi4y
NTEzODA4ODhmNDU4ZmJmYjg2N2UyZTY5ODIyYmRhOGYyNzA3YmZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaApAQCAtMzQsNiAr
MzQsOCBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFy
dExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIlBlcmlv
ZGljV2F2ZUNvbnN0cmFpbnRzLmgiCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZlT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCIKQEAgLTE1
Miw3ICsxNTQsNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8UmVmPENoYW5uZWxTcGxpdHRl
ck5vZGU+PiBjcmVhdGVDaGFubmVsU3BsaXR0ZXIoc2l6ZV90IG51bWJlck9mT3V0cHV0cyk7CiAg
ICAgRXhjZXB0aW9uT3I8UmVmPENoYW5uZWxNZXJnZXJOb2RlPj4gY3JlYXRlQ2hhbm5lbE1lcmdl
cihzaXplX3QgbnVtYmVyT2ZJbnB1dHMpOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxPc2NpbGxhdG9y
Tm9kZT4+IGNyZWF0ZU9zY2lsbGF0b3IoKTsKLSAgICBFeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNX
YXZlPj4gY3JlYXRlUGVyaW9kaWNXYXZlKEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFycmF5
JiBpbWFnaW5hcnkpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBjcmVhdGVQ
ZXJpb2RpY1dhdmUoVmVjdG9yPGZsb2F0PiYmIHJlYWwsIFZlY3RvcjxmbG9hdD4mJiBpbWFnaW5h
cnksIGNvbnN0IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzJiA9IHsgfSk7CiAKICAgICAvLyBXaGVu
IGEgc291cmNlIG5vZGUgaGFzIG5vIG1vcmUgcHJvY2Vzc2luZyB0byBkbyAoaGFzIGZpbmlzaGVk
IHBsYXlpbmcpLCB0aGVuIGl0IHRlbGxzIHRoZSBjb250ZXh0IHRvIGRlcmVmZXJlbmNlIGl0Lgog
ICAgIHZvaWQgbm90aWZ5Tm9kZUZpbmlzaGVkUHJvY2Vzc2luZyhBdWRpb05vZGUqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRs
CmluZGV4IDQzNTBiMWUwY2ViNTM1YTFhN2I5MDEwODhiODQ2ZmYxYjA5YTIzNTQuLjE5ODUzMjQw
ZGVlZWUwYWMxZDI4NmIwMjQxYjJlOGRlMjA4NGI5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbApAQCAtNjUsNyArNjUs
NyBAQAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gQW5hbHlzZXJOb2RlIGNyZWF0ZUFuYWx5c2Vy
KCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBTY3JpcHRQcm9jZXNzb3JOb2RlIGNyZWF0ZVNj
cmlwdFByb2Nlc3NvcihvcHRpb25hbCB1bnNpZ25lZCBsb25nIGJ1ZmZlclNpemUgPSAwLCBvcHRp
b25hbCB1bnNpZ25lZCBsb25nIG51bWJlck9mSW5wdXRDaGFubmVscyA9IDIsIG9wdGlvbmFsIHVu
c2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA9IDIpOwogICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gT3NjaWxsYXRvck5vZGUgY3JlYXRlT3NjaWxsYXRvcigpOwotICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gUGVyaW9kaWNXYXZlIGNyZWF0ZVBlcmlvZGljV2F2ZShGbG9hdDMyQXJyYXkg
cmVhbCwgRmxvYXQzMkFycmF5IGltYWcpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gUGVyaW9k
aWNXYXZlIGNyZWF0ZVBlcmlvZGljV2F2ZShzZXF1ZW5jZTxmbG9hdD4gcmVhbCwgc2VxdWVuY2U8
ZmxvYXQ+IGltYWcsIG9wdGlvbmFsIFBlcmlvZGljV2F2ZU9wdGlvbnMgb3B0aW9ucyk7CiAKICAg
ICAvLyBDaGFubmVsIHNwbGl0dGluZyBhbmQgbWVyZ2luZwogICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gQ2hhbm5lbFNwbGl0dGVyTm9kZSBjcmVhdGVDaGFubmVsU3BsaXR0ZXIob3B0aW9uYWwgdW5z
aWduZWQgbG9uZyBudW1iZXJPZk91dHB1dHMgPSA2KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmNwcAppbmRleCBlYzlhMTdjNGY1NmViOTk2NmRj
MTc2MjdlOTM0MDViYTFmZDQ4YzQ2Li4wODY2Zjk1MWU0OTZjOWY0ZmMyYjIwMGFhMmEwOThjY2I0
ZGRhZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Blcmlv
ZGljV2F2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlICJQZXJpb2RpY1dhdmUuaCIK
IAorI2luY2x1ZGUgIkJhc2VBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJGRlRGcmFtZS5oIgog
I2luY2x1ZGUgIlZlY3Rvck1hdGguaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CkBAIC00NCw2ICs0
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIHVzaW5nIG5hbWVzcGFjZSBWZWN0b3JN
YXRoOwogCisvLyBGSVhNRTogUmVtb3ZlIG9uY2Ugb2xkIGNvbnN0cnVjdG9yIGlzIHBoYXNlZCBv
dXQKIFJlZjxQZXJpb2RpY1dhdmU+IFBlcmlvZGljV2F2ZTo6Y3JlYXRlKGZsb2F0IHNhbXBsZVJh
dGUsIEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFycmF5JiBpbWFnaW5hcnkpCiB7CiAgICAg
QVNTRVJUKHJlYWwubGVuZ3RoKCkgPT0gaW1hZ2luYXJ5Lmxlbmd0aCgpKTsKQEAgLTUzLDYgKzU1
LDQ0IEBAIFJlZjxQZXJpb2RpY1dhdmU+IFBlcmlvZGljV2F2ZTo6Y3JlYXRlKGZsb2F0IHNhbXBs
ZVJhdGUsIEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvCiAgICAgcmV0dXJuIHdhdmVUYWJsZTsKIH0K
IAorRXhjZXB0aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IFBlcmlvZGljV2F2ZTo6Y3JlYXRlKEJh
c2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIFBlcmlvZGljV2F2ZU9wdGlvbnMmJiBvcHRpb25zKQor
eworICAgIFZlY3RvcjxmbG9hdD4gcmVhbDsKKyAgICBWZWN0b3I8ZmxvYXQ+IGltYWc7CisgICAg
CisgICAgaWYgKG9wdGlvbnMucmVhbCAmJiBvcHRpb25zLmltYWcpIHsKKyAgICAgICAgaWYgKG9w
dGlvbnMucmVhbC0+c2l6ZSgpICE9IG9wdGlvbnMuaW1hZy0+c2l6ZSgpKQorICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAicmVhbCBhbmQgaW1hZyBoYXZlIGRp
ZmZlcmVudCBsZW5ndGhzIl9zIH07CisgICAgICAgIGlmIChvcHRpb25zLnJlYWwtPnNpemUoKSA8
IDIpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IsICJyZWFs
J3MgbGVuZ3RoIGNhbm5vdCBiZSBsZXNzIHRoYW4gMiJfcyB9OworICAgICAgICBpZiAob3B0aW9u
cy5pbWFnLT5zaXplKCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4
U2l6ZUVycm9yLCAiaW1hZydzIGxlbmd0aCBjYW5ub3QgYmUgbGVzcyB0aGFuIDIiX3MgfTsKKyAg
ICAgICAgcmVhbCA9IFdURk1vdmUoKm9wdGlvbnMucmVhbCk7CisgICAgICAgIGltYWcgPSBXVEZN
b3ZlKCpvcHRpb25zLmltYWcpOworICAgIH0gZWxzZSBpZiAob3B0aW9ucy5yZWFsKSB7CisgICAg
ICAgIGlmIChvcHRpb25zLnJlYWwtPnNpemUoKSA8IDIpCisgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IsICJyZWFsJ3MgbGVuZ3RoIGNhbm5vdCBiZSBsZXNzIHRo
YW4gMiJfcyB9OworICAgICAgICByZWFsID0gV1RGTW92ZSgqb3B0aW9ucy5yZWFsKTsKKyAgICAg
ICAgaW1hZy5maWxsKDAsIHJlYWwuc2l6ZSgpKTsKKyAgICB9IGVsc2UgaWYgKG9wdGlvbnMuaW1h
ZykgeworICAgICAgICBpZiAob3B0aW9ucy5pbWFnLT5zaXplKCkgPCAyKQorICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAiaW1hZydzIGxlbmd0aCBjYW5ub3Qg
YmUgbGVzcyB0aGFuIDIiX3MgfTsKKyAgICAgICAgaW1hZyA9IFdURk1vdmUoKm9wdGlvbnMuaW1h
Zyk7CisgICAgICAgIHJlYWwuZmlsbCgwLCBpbWFnLnNpemUoKSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgcmVhbC5maWxsKDAsIDIpOworICAgICAgICBpbWFnLmZpbGwoMCwgMik7CisgICAgICAg
IGltYWdbMV0gPSAxOworICAgIH0KKworICAgIHJlYWxbMF0gPSAwOworICAgIGltYWdbMF0gPSAw
OworICAgIAorICAgIGF1dG8gd2F2ZVRhYmxlID0gYWRvcHRSZWYoKm5ldyBQZXJpb2RpY1dhdmUo
Y29udGV4dC5zYW1wbGVSYXRlKCkpKTsKKyAgICB3YXZlVGFibGUtPmNyZWF0ZUJhbmRMaW1pdGVk
VGFibGVzKHJlYWwuZGF0YSgpLCBpbWFnLmRhdGEoKSwgcmVhbC5zaXplKCksIG9wdGlvbnMuZGlz
YWJsZU5vcm1hbGl6YXRpb24gPyBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbjo6WWVzIDogU2hv
dWxkRGlzYWJsZU5vcm1hbGl6YXRpb246Ok5vKTsKKyAgICByZXR1cm4gd2F2ZVRhYmxlOworfQor
CiBSZWY8UGVyaW9kaWNXYXZlPiBQZXJpb2RpY1dhdmU6OmNyZWF0ZVNpbmUoZmxvYXQgc2FtcGxl
UmF0ZSkKIHsKICAgICBSZWY8UGVyaW9kaWNXYXZlPiB3YXZlVGFibGUgPSBhZG9wdFJlZigqbmV3
IFBlcmlvZGljV2F2ZShzYW1wbGVSYXRlKSk7CkBAIC0xNDIsNyArMTgyLDcgQEAgdW5zaWduZWQg
UGVyaW9kaWNXYXZlOjpudW1iZXJPZlBhcnRpYWxzRm9yUmFuZ2UodW5zaWduZWQgcmFuZ2VJbmRl
eCkgY29uc3QKIC8vIENvbnZlcnQgaW50byB0aW1lLWRvbWFpbiB3YXZlIHRhYmxlcy4KIC8vIE9u
ZSB0YWJsZSBpcyBjcmVhdGVkIGZvciBlYWNoIHJhbmdlIGZvciBub24tYWxpYXNpbmcgcGxheWJh
Y2sgYXQgZGlmZmVyZW50IHBsYXliYWNrIHJhdGVzLgogLy8gVGh1cywgaGlnaGVyIHJhbmdlcyBo
YXZlIG1vcmUgaGlnaC1mcmVxdWVuY3kgcGFydGlhbHMgY3VsbGVkIG91dC4KLXZvaWQgUGVyaW9k
aWNXYXZlOjpjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25zdCBmbG9hdCogcmVhbERhdGEsIGNv
bnN0IGZsb2F0KiBpbWFnRGF0YSwgdW5zaWduZWQgbnVtYmVyT2ZDb21wb25lbnRzKQordm9pZCBQ
ZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVzKGNvbnN0IGZsb2F0KiByZWFsRGF0
YSwgY29uc3QgZmxvYXQqIGltYWdEYXRhLCB1bnNpZ25lZCBudW1iZXJPZkNvbXBvbmVudHMsIFNo
b3VsZERpc2FibGVOb3JtYWxpemF0aW9uIGRpc2FibGVOb3JtYWxpemF0aW9uKQogewogICAgIGZs
b2F0IG5vcm1hbGl6YXRpb25TY2FsZSA9IDE7CiAKQEAgLTE5OSwxMiArMjM5LDE0IEBAIHZvaWQg
UGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25zdCBmbG9hdCogcmVhbERh
dGEsIGNvbnN0IGZsb2F0KiBpCiAgICAgICAgIGZyYW1lLmRvSW52ZXJzZUZGVChkYXRhKTsKIAog
ICAgICAgICAvLyBGb3IgdGhlIGZpcnN0IHJhbmdlICh3aGljaCBoYXMgdGhlIGhpZ2hlc3QgcG93
ZXIpLCBjYWxjdWxhdGUgaXRzIHBlYWsgdmFsdWUgdGhlbiBjb21wdXRlIG5vcm1hbGl6YXRpb24g
c2NhbGUuCi0gICAgICAgIGlmICghcmFuZ2VJbmRleCkgewotICAgICAgICAgICAgZmxvYXQgbWF4
VmFsdWU7Ci0gICAgICAgICAgICB2bWF4bWd2KGRhdGEsIDEsICZtYXhWYWx1ZSwgbV9wZXJpb2Rp
Y1dhdmVTaXplKTsKLQotICAgICAgICAgICAgaWYgKG1heFZhbHVlKQotICAgICAgICAgICAgICAg
IG5vcm1hbGl6YXRpb25TY2FsZSA9IDEuMGYgLyBtYXhWYWx1ZTsKKyAgICAgICAgaWYgKGRpc2Fi
bGVOb3JtYWxpemF0aW9uID09IFNob3VsZERpc2FibGVOb3JtYWxpemF0aW9uOjpObykgeworICAg
ICAgICAgICAgaWYgKCFyYW5nZUluZGV4KSB7CisgICAgICAgICAgICAgICAgZmxvYXQgbWF4VmFs
dWU7CisgICAgICAgICAgICAgICAgdm1heG1ndihkYXRhLCAxLCAmbWF4VmFsdWUsIG1fcGVyaW9k
aWNXYXZlU2l6ZSk7CisKKyAgICAgICAgICAgICAgICBpZiAobWF4VmFsdWUpCisgICAgICAgICAg
ICAgICAgICAgIG5vcm1hbGl6YXRpb25TY2FsZSA9IDEuMGYgLyBtYXhWYWx1ZTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIC8vIEFwcGx5IG5vcm1hbGl6YXRpb24gc2NhbGUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaAppbmRl
eCA3OWEyZDgyYWM2Y2MzMWY1NDZmOThkNDJhMWM1MWYyNTc1ZDU2NDQxLi4yODJhODM3YzM1NjQy
MmVlN2Q3ZTQ5ZGY5NThlYmU3ZjdhMzU1ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1ZGUgIlBlcmlvZGljV2F2ZU9wdGlv
bnMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRl
IDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTM2LDYgKzM3LDEwIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQmFzZUF1ZGlvQ29udGV4dDsKKworZW51
bSBjbGFzcyBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbiA6IGJvb2wgeyBObywgWWVzIH07CisK
IGNsYXNzIFBlcmlvZGljV2F2ZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFBlcmlvZGljV2F2
ZT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVyaW9kaWNXYXZlPiBjcmVhdGVTaW5lKGZs
b2F0IHNhbXBsZVJhdGUpOwpAQCAtNDQsNyArNDksMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8UGVyaW9kaWNXYXZlPiBjcmVhdGVUcmlhbmdsZShmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAg
IC8vIENyZWF0ZXMgYW4gYXJiaXRyYXJ5IHdhdmUgZ2l2ZW4gdGhlIGZyZXF1ZW5jeSBjb21wb25l
bnRzIChGb3VyaWVyIGNvZWZmaWNpZW50cykuCisgICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIG9s
ZCBjb25zdHJ1Y3RvciBpcyBwaGFzZWQgb3V0CiAgICAgc3RhdGljIFJlZjxQZXJpb2RpY1dhdmU+
IGNyZWF0ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0MzJBcnJh
eSYgaW1hZyk7CisgICAgCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+
PiBjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYsIFBlcmlvZGljV2F2ZU9wdGlvbnMmJiA9IHsgfSk7
CiAKICAgICAvLyBSZXR1cm5zIHBvaW50ZXJzIHRvIHRoZSBsb3dlciBhbmQgaGlnaGVyIHdhdmUg
ZGF0YSBmb3IgdGhlIHBpdGNoIHJhbmdlIGNvbnRhaW5pbmcKICAgICAvLyB0aGUgZ2l2ZW4gZnVu
ZGFtZW50YWwgZnJlcXVlbmN5LiBUaGVzZSB0d28gdGFibGVzIGFyZSBpbiBhZGphY2VudCAicGl0
Y2giIHJhbmdlcwpAQCAtOTIsNyArMTAwLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBudW1i
ZXJPZlBhcnRpYWxzRm9yUmFuZ2UodW5zaWduZWQgcmFuZ2VJbmRleCkgY29uc3Q7CiAKICAgICAv
LyBDcmVhdGVzIHRhYmxlcyBiYXNlZCBvbiBudW1iZXJPZkNvbXBvbmVudHMgRm91cmllciBjb2Vm
ZmljaWVudHMuCi0gICAgdm9pZCBjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25zdCBmbG9hdCog
cmVhbCwgY29uc3QgZmxvYXQqIGltYWcsIHVuc2lnbmVkIG51bWJlck9mQ29tcG9uZW50cyk7Cisg
ICAgdm9pZCBjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25zdCBmbG9hdCogcmVhbCwgY29uc3Qg
ZmxvYXQqIGltYWcsIHVuc2lnbmVkIG51bWJlck9mQ29tcG9uZW50cywgU2hvdWxkRGlzYWJsZU5v
cm1hbGl6YXRpb24gPSBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbjo6Tm8pOwogICAgIFZlY3Rv
cjxzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4gbV9iYW5kTGltaXRlZFRhYmxlczsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9k
aWNXYXZlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZl
LmlkbAppbmRleCAwYmYwOTIyMjFhZDdhZDBhZjY3Y2YyNDQ3OTk2OGM0YzY4OGNjNzU2Li4zNjA4
NTA2MTYzMWY5OTU2NTUzM2FkNjc3NGNmMjJiYzVjMDQ1MmZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaWRsCkBAIC0yNyw1ICsyNyw1IEBA
CiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFi
bGUKIF0gaW50ZXJmYWNlIFBlcmlvZGljV2F2ZSB7Ci0KKyAgICBbTWF5VGhyb3dFeGNlcHRpb24s
IEVuYWJsZWRCeVNldHRpbmc9TW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvXSBjb25zdHJ1Y3RvcihC
YXNlQXVkaW9Db250ZXh0IGNvbnRleHQsIG9wdGlvbmFsIFBlcmlvZGljV2F2ZU9wdGlvbnMgb3B0
aW9ucyk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Q
ZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNjU3NTJiMDNhYzEyMGJh
NTk0YjhmNTYyZTcyM2M5MzE2NDc2YmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmgKQEAgLTAsMCArMSwz
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGVyaW9kaWNXYXZlQ29uc3RyYWludHMg
eworICAgIGJvb2wgZGlzYWJsZU5vcm1hbGl6YXRpb24gPSBmYWxzZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3Ry
YWludHMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiYjVmODJhNGFiMWMzNWM4ZWRkYjc0MTZmY2RkZGQ4ZjA2
NGIwN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbApAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
K1sKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCitdIGRpY3Rpb25hcnkgUGVyaW9kaWNXYXZl
Q29uc3RyYWludHMgeworICAgIGJvb2xlYW4gZGlzYWJsZU5vcm1hbGl6YXRpb24gPSBmYWxzZTsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGlj
V2F2ZU9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNX
YXZlT3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNWJmODgxMDUxZjQ2YWE5ZWE1NmMwYzZhZTMxNjU1
NjdjMGRiN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKKyNpbmNsdWRlICJQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oIgorI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdHJ1Y3QgUGVyaW9kaWNXYXZlT3B0aW9ucyA6IHB1YmxpYyBQZXJpb2RpY1dh
dmVDb25zdHJhaW50cyB7CisgICAgT3B0aW9uYWw8VmVjdG9yPGZsb2F0Pj4gcmVhbDsKKyAgICBP
cHRpb25hbDxWZWN0b3I8ZmxvYXQ+PiBpbWFnOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYxYjRlNDk2ZGQxNWVhMTg4MzQ1NGYxMGYwY2RmMmE0YTNlYzRkZGEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMu
aWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworWworICAgIENvbmRpdGlvbmFsPVdFQl9B
VURJTywKK10gZGljdGlvbmFyeSBQZXJpb2RpY1dhdmVPcHRpb25zIDogUGVyaW9kaWNXYXZlQ29u
c3RyYWludHMgeworICAgIHNlcXVlbmNlPGZsb2F0PiByZWFsOworICAgIHNlcXVlbmNlPGZsb2F0
PiBpbWFnOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
V2ViS2l0QXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
V2ViS2l0QXVkaW9Db250ZXh0LmNwcAppbmRleCAwZTNlNjVhOWNlZDNhMjc1MzliM2E4NTE3MTBk
MTRmYzZiNmYwMDM3Li4wNGU5Y2E2NGUzZDhjNjUxYjEzYjQ4Y2VjMGI5ODFkNzljM2ZjMWUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRp
b0NvbnRleHQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiV2ViS2l0QXVkaW9Db250
ZXh0LmgiCiAKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIlBl
cmlvZGljV2F2ZS5oIgogI2luY2x1ZGUgIldlYktpdEF1ZGlvUGFubmVyTm9kZS5oIgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKQEAgLTQ1LDYgKzQ2LDggQEAKICNpbmNsdWRl
ICJNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCIKICNlbmRpZgogCitjb25zdCB1bnNpZ25l
ZCBNYXhQZXJpb2RpY1dhdmVMZW5ndGggPSA0MDk2OworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJLaXRBdWRpb0NvbnRleHQpOwpAQCAtMTY3
LDYgKzE3MCwyMCBAQCBFeGNlcHRpb25PcjxSZWY8V2ViS2l0QXVkaW9QYW5uZXJOb2RlPj4gV2Vi
S2l0QXVkaW9Db250ZXh0OjpjcmVhdGVXZWJLaXRQYW5uZXIoKQogICAgIHJldHVybiBXZWJLaXRB
dWRpb1Bhbm5lck5vZGU6OmNyZWF0ZSgqdGhpcywgc2FtcGxlUmF0ZSgpKTsKIH0KIAorRXhjZXB0
aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IFdlYktpdEF1ZGlvQ29udGV4dDo6Y3JlYXRlUGVyaW9k
aWNXYXZlKEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFycmF5JiBpbWFnaW5hcnkpCit7Cisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICAKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIGlmIChpc1N0b3BwZWQoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAocmVhbC5sZW5ndGgoKSAhPSBpbWFnaW5h
cnkubGVuZ3RoKCkgfHwgcmVhbC5sZW5ndGgoKSA+IE1heFBlcmlvZGljV2F2ZUxlbmd0aCB8fCAh
cmVhbC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9y
IH07CisgICAgbGF6eUluaXRpYWxpemUoKTsKKyAgICByZXR1cm4gUGVyaW9kaWNXYXZlOjpjcmVh
dGUoc2FtcGxlUmF0ZSgpLCByZWFsLCBpbWFnaW5hcnkpOworfQorCiB2b2lkIFdlYktpdEF1ZGlv
Q29udGV4dDo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAg
ICBpZiAoaXNPZmZsaW5lQ29udGV4dCgpIHx8IGlzU3RvcHBlZCgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaAppbmRleCBk
M2Q1Njk2ZTZkYWY1ZDQzMDg2YTNmNGYzOWUyNmU0MWM4ZDI4YWE0Li41Zjc1YjA3M2RjYTNmMDg5
NTdkYTljZTczMmIxZmEzODRiZGQyZTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmgKQEAgLTM2LDYgKzM2LDcgQEAgY2xh
c3MgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOwogY2xhc3MgTWVkaWFTdHJlYW07CiBjbGFz
cyBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlOwogY2xhc3MgTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGU7CitjbGFzcyBQZXJpb2RpY1dhdmU7CiBjbGFzcyBXZWJLaXRBdWRpb1Bhbm5l
ck5vZGU7CiAKIC8vIEF1ZGlvQ29udGV4dCBpcyB0aGUgY29ybmVyc3RvbmUgb2YgdGhlIHdlYiBh
dWRpbyBBUEkgYW5kIGFsbCBBdWRpb05vZGVzIGFyZSBjcmVhdGVkIGZyb20gaXQuCkBAIC02MCw2
ICs2MSw3IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25PcjxSZWY8TWVkaWFTdHJlYW1BdWRpb0Rl
c3RpbmF0aW9uTm9kZT4+IGNyZWF0ZU1lZGlhU3RyZWFtRGVzdGluYXRpb24oKTsKICNlbmRpZgog
ICAgIEV4Y2VwdGlvbk9yPFJlZjxXZWJLaXRBdWRpb1Bhbm5lck5vZGU+PiBjcmVhdGVXZWJLaXRQ
YW5uZXIoKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8UGVyaW9kaWNXYXZlPj4gY3JlYXRlUGVyaW9k
aWNXYXZlKEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFycmF5JiBpbWFnaW5hcnkpOwogCiBw
cm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgV2ViS2l0QXVkaW9Db250ZXh0KERvY3VtZW50Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IGZkMDEyMTk5NTQxOTZhZTk0YzJhMzJmNmIxYTU0OWRjNTYyYjBiOGIu
LjE0NjZhMDdjZjI5YjNmOGU2ZDRiMTA5ZTE0MGFlZWU3ZjhhYzc1OWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC0zMTcwLDYgKzMxNzAsOCBAQCBKU1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCiBK
U1BlcmZvcm1hbmNlU2VydmVyVGltaW5nLmNwcAogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAKIEpT
UGVyaW9kaWNXYXZlLmNwcAorSlNQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5jcHAKK0pTUGVyaW9k
aWNXYXZlT3B0aW9ucy5jcHAKIEpTUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKIEpTUGxheWJh
Y2tEaXJlY3Rpb24uY3BwCiBKU1BvaW50ZXJFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZDk0MzlhMWVlOGY1YTcy
MWZmMDkzZmJkYzEzYmM4NGQ1ODVmNTJhLi43ZDE1MDJiMWQzOGM4ZTdiNTZlYmJkODRjMmFjOGQ5
NDMyNzE1MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC01MDQ1LDYgKzUwNDUsOCBAQAogCQlFNUJBN0Q2MzE1MTQzN0NBMDBG
RTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNUJBN0Q2MjE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rp
b25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTcxNDY3QjMyNEFCQUVGMjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3MTQ2N0IxMjRBQkFFRjEwMEZC
MkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmggKi87IH07CiAJCUU3MTQ2N0I2MjRBQkFGMUQwMEZC
MkY1MCAvKiBQYW5uZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNzE0NjdCNTI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5o
ICovOyB9OworCQlFNzU1RTg5MjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3Ry
YWludHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3
NTVFODhGMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oICovOyB9
OworCQlFNzU1RTg5OTI0Qzc0NjFEMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc1NUU4OTYyNEM3
NDYxRDAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZU9wdGlvbnMuaCAqLzsgfTsKIAkJRTc4NUQ5MTUy
NEI0RDFDQTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3ODVEOTExMjRCNEQxQjEwMDE0REIyMSAvKiBD
aGFubmVsQ291bnRNb2RlLmggKi87IH07CiAJCUU3ODVEOTM0MjRCNjM2RkYwMDE0REIyMSAvKiBD
aGFubmVsSW50ZXJwcmV0YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU3ODVEOTMxMjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVsSW50ZXJwcmV0
YXRpb24uaCAqLzsgfTsKIAkJRTc4NUQ5NjEyNEI3RjczNTAwMTREQjIxIC8qIEF1ZGlvQ29udGV4
dE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU3ODVEOTVGMjRCN0Y3MzQwMDE0REIyMSAvKiBBdWRpb0NvbnRleHRPcHRpb25zLmggKi87IH07
CkBAIC0xNTgwMCw2ICsxNTgwMiwxMCBAQAogCQlFNzE0NjdCNDI0QUJBRjBCMDBGQjJGNTAgLyog
QXVkaW9Ob2RlT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9Ob2RlT3B0aW9ucy5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2N0I1MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJP
cHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhbm5lck9wdGlvbnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjcyNEFCQUYyQzAwRkIyRjUw
IC8qIFBhbm5lck9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBhbm5lck9wdGlv
bnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNzU1RTg4RjI0Qzc0MzRCMDA5
RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyaW9k
aWNXYXZlQ29uc3RyYWludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTc1NUU4
OTEyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQ
ZXJpb2RpY1dhdmVDb25zdHJhaW50cy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUU3NTVFODk2MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRpb25zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBlcmlvZGljV2F2ZU9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTc1NUU4OTgyNEM3NDYxRDAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZU9wdGlvbnMuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFBlcmlvZGljV2F2ZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNzg1RDkxMTI0QjREMUIxMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDaGFubmVsQ291bnRNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU3ODVEOTEzMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBDaGFubmVsQ291bnRNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTc4
NUQ5MzEyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDaGFubmVsSW50ZXJwcmV0YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTI5NDYzLDYgKzI5NDY5LDEwIEBACiAJCQkJRkQ1ODFGQjExNTIwRjkzQjAwM0E3QTc1
IC8qIFBlcmlvZGljV2F2ZS5jcHAgKi8sCiAJCQkJRkQ1ODFGQjIxNTIwRjkzQjAwM0E3QTc1IC8q
IFBlcmlvZGljV2F2ZS5oICovLAogCQkJCUZENTgxRkIzMTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJp
b2RpY1dhdmUuaWRsICovLAorCQkJCUU3NTVFODhGMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2Rp
Y1dhdmVDb25zdHJhaW50cy5oICovLAorCQkJCUU3NTVFODkxMjRDNzQzNEIwMDlGN0MyMyAvKiBQ
ZXJpb2RpY1dhdmVDb25zdHJhaW50cy5pZGwgKi8sCisJCQkJRTc1NUU4OTYyNEM3NDYxRDAwOUY3
QzIzIC8qIFBlcmlvZGljV2F2ZU9wdGlvbnMuaCAqLywKKwkJCQlFNzU1RTg5ODI0Qzc0NjFEMDA5
RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwgKi8sCiAJCQkJRkQzMTVGRjExMkIwMjY3
NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuY3BwICovLAogCQkJCUZEMzE1RkYyMTJCMDI2
NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmggKi8sCiAJCQkJRkQzMTVGRUIxMkIwMjY3
NjAwQzFBMzU5IC8qIFNjcmlwdFByb2Nlc3Nvck5vZGUuY3BwICovLApAQCAtMzI2MzcsNiArMzI2
NDcsOCBAQAogCQkJCThBRjRFNTVDMTFEQzVBNjMwMDBFRDNERSAvKiBQZXJmb3JtYW5jZVRpbWlu
Zy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU1NEI1RjMxRTM4MzkzQTAwMUQ0RTAzIC8qIFBlcmZv
cm1hbmNlVXNlclRpbWluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1ODFGQjUxNTIwRjkzQjAw
M0E3QTc1IC8qIFBlcmlvZGljV2F2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTc1NUU4OTIyNEM3
NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFNzU1RTg5OTI0Qzc0NjFEMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDlENURDMkUwRjQyM0E3MzAwOEYyMEZEIC8qIFBlcnNwZWN0aXZl
VHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxREJDMUI1NjIzNDdCM0Qy
MDBCOTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxRDJDODJCNzIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMzY5MzZhODJm
YjU1OTBhNjBjYWMzNzI2NDgxNjVlMGNjMTVkYzIwMy4uZGMxZGM2MzEyZWFjZjliMzE5NGQzY2Mw
ZmMxYjZjMWQ3NGEzNThlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjAtMDctMjIgIENsYXJrIFdhbmcgIDxjbGFya193YW5nQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmUgY29uc3RydWN0b3IgYWNjb3JkaW5nIHRvIHNw
ZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDYx
NQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFJlLWJhc2Vs
aW5lZCBleGlzdGluZyB0ZXN0cyB0aGF0IG5vdyBwYXNzLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dDoK
KwogMjAyMC0wNy0yMCAgQ2xhcmsgV2FuZyAgPGNsYXJrX3dhbmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeGVzIHRvIG1hdGNoIEJhc2VBdWRpb0NvbnRleHQuaWRsIHRvIHNwZWMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
aWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRv
dy1leHBlY3RlZC50eHQKaW5kZXggOTlmNGMwY2MxMzdhNGJiNzFjMGIzM2RhYjRkNDNlMjkwYjhk
YWU2Zi4uNTZmZjgwNWNiOGI3NWJhNTFkNWNhZTYzN2Y5NmZhMTY4N2YzYjQwMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9p
ZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndp
bmRvdy1leHBlY3RlZC50eHQKQEAgLTk2OCwxMyArOTY4LDEzIEBAIFBBU1MgQXVkaW9Ob2RlIGlu
dGVyZmFjZTogbmV3IFBhbm5lck5vZGUoY29udGV4dCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJj
aGFubmVsCiBQQVNTIEF1ZGlvTm9kZSBpbnRlcmZhY2U6IG5ldyBQYW5uZXJOb2RlKGNvbnRleHQp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2hhbm5lbENvdW50TW9kZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgCiBQQVNTIEF1ZGlvTm9kZSBpbnRlcmZhY2U6IG5ldyBQYW5uZXJOb2RlKGNvbnRleHQp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2hhbm5lbEludGVycHJldGF0aW9uIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKIFBBU1MgUGVyaW9kaWNXYXZlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIFBlcmlvZGljV2F2ZSBpbnRlcmZh
Y2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB2YWx1ZSBmb3IgUGVyaW9kaWNX
YXZlLmxlbmd0aCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBQZXJpb2RpY1dhdmUgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIFBlcmlvZGljV2F2ZSBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUgCiBQQVNTIFBlcmlvZGljV2F2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgUGVyaW9kaWNXYXZlIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKIFBBU1MgUGVyaW9kaWNXYXZlIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKLUZBSUwgUGVyaW9kaWNXYXZlIG11c3QgYmUgcHJp
bWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFBlcmlvZGljV2F2ZShjb250ZXh0KSBhc3NlcnRfZXF1YWxz
OiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51
bGwgYnV0IGdvdCBvYmplY3QgIlR5cGVFcnJvcjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0
b3IgKGV2YWx1YXRpbmcgJ25ldyBQZXJpb2RpY1dhdmUoY29udGV4dCknKSIKLUZBSUwgU3RyaW5n
aWZpY2F0aW9uIG9mIG5ldyBQZXJpb2RpY1dhdmUoY29udGV4dCkgYXNzZXJ0X2VxdWFsczogVW5l
eHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1
dCBnb3Qgb2JqZWN0ICJUeXBlRXJyb3I6IGZ1bmN0aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChl
dmFsdWF0aW5nICduZXcgUGVyaW9kaWNXYXZlKGNvbnRleHQpJykiCitQQVNTIFBlcmlvZGljV2F2
ZSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBQZXJpb2RpY1dhdmUoY29udGV4dCkg
CitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUGVyaW9kaWNXYXZlKGNvbnRleHQpIAogUEFT
UyBTY3JpcHRQcm9jZXNzb3JOb2RlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIFNjcmlwdFByb2Nlc3Nvck5vZGUgaW50ZXJmYWNl
IG9iamVjdCBsZW5ndGggCiBQQVNTIFNjcmlwdFByb2Nlc3Nvck5vZGUgaW50ZXJmYWNlIG9iamVj
dCBuYW1lIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404982</attachid>
            <date>2020-07-22 15:21:36 -0700</date>
            <delta_ts>2020-07-23 08:54:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214615-20200722182135.patch</filename>
            <type>text/plain</type>
            <size>34632</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVlMDMzNTY2NDhiZjAx
OTczNDgwY2YwMmZhNGNhY2I2NTRmZmM5NS4uNjJhYWFlZDBhZTcyYTlhNzBhZTFmZjMxZTE3NmVk
MGQ5Y2U4OThjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA3LTIyICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgUGVyaW9kaWNX
YXZlIGNvbnN0cnVjdG9yIGFjY29yZGluZyB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MTUKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBSZS1iYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdGhhdCBu
b3cgcGFzcy4KKworICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmUgY29uc3RydWN0b3IgYWNjb3Jk
aW5nIHRvIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jcGVyaW9kaWN3YXZl
LgorICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cywgUGVyaW9kaWNXYXZlT3B0
aW9ucyBmaWxlcy4gVXBkYXRlZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVz
CisgICAgICAgIHRvIG5vcm1hbGl6ZSB3YXZlZm9ybSBiYXNlZCBvbiBzcGVjOiBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXVkaW8vI3dhdmVmb3JtLW5vcm1hbGl6YXRpb24uCisgICAgICAgIEFk
ZGVkIHVwZGF0ZWQgY3JlYXRlUGVyaW9kaWNXYXZlIG1ldGhvZCBpbiBCYXNlQXVkaW9Db250ZXh0
LCBhbmQgbW92ZWQgb2xkIGNyZWF0ZVBlcmlvZGljV2F2ZSBtZXRob2QKKyAgICAgICAgSW50byBX
ZWJLaXRBdWRpb0NvbnRleHQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmNyZWF0ZVBlcmlvZGljV2F2ZSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNlQXVkaW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRl
ZFRhYmxlcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYktpdEF1ZGlvQ29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMC0wNy0yMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdWzEuMThdIG1lZGlhc3RyZWFtc3JjIGVs
ZW1lbnQgaGl0cyBhc3NlcnQgaW4gZ3N0IC1jb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJh
NWE0MTFkYmNjYWYyM2M1Zjg5YTc4NDg5YzU4NTQxZmM0NGUwMGUuLmRjZDI1MzJlMGRjMDU2NTMx
MzhkMDRhYTQxZmViYWMyZTIzOGVkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00ODEsNiAr
NDgxLDggQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1
ZGlvL1Bhbm5lck9wdGlvbnMuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9QYW5uaW5nTW9kZWxU
eXBlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAorICAgIE1vZHVs
ZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsCisgICAgTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vU2NyaXB0
UHJvY2Vzc29yTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlk
bAogICAgIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYzkzNjMyOWM0
ZjA2MGIzNDYxOWNhY2M2OWEzNzc4OGUyMTlmZjdlOC4uMDQ0ODQ3ZTFjZTU2MGQ4YWM2MmU2MWZk
YjFkOWU5NDgyNDVkODQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CkBAIC0zMzAsNiArMzMwLDggQEAgJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9QYW5uZXJPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QYW5u
aW5nTW9kZWxUeXBlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNv
bnN0cmFpbnRzLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dh
dmVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVy
Tm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250
ZXh0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCBjMDAyNTk1ZTYxMTUxMTMxMmQwZTcwZTVkMzVlYWMyMjI2ZTlhYmUxLi43NThk
OGZjMDk4MWZkNDk0M2U1YWJlYzViOTk5ZWY5YTlmNWIxNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTMxNiw2ICsxMzE2LDEw
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyZm9y
bWFuY2VUaW1pbmcuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1BlcmZvcm1hbmNlVGltaW5nLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUGVyaW9kaWNXYXZlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmUuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyaW9k
aWNXYXZlQ29uc3RyYWludHMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVPcHRpb25zLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVPcHRpb25zLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGljdHVyZUluUGljdHVyZVdp
bmRvdy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UGljdHVyZUluUGljdHVyZVdpbmRvdy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1BsYXliYWNrRGlyZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggZDY1ZmMyZThiN2E3MzY2NGI1MGJkNmU1ODNlNjdlNjE4ZGEzYjY4ZC4u
MjIyNDQwMTc5ODFkNTMzYjk5Y2YxNmQ0ODcxNDY4MjMwNjkzNWZhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC00MTMsNiArNDEzLDggQEAgSlNfQklORElOR19JRExTID0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJPcHRpb25zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5pbmdNb2RlbFR5cGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaWRsIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwCmluZGV4IGM5N2YxODhlNDkwMmM0NGY3NzlhNGRmNDk1N2NiNzNjNTUyZjViODMuLjdiZDU2
NDU4YTExM2I2M2YyOTI3MTIxYTU4ZmJjMzExZDU2YjliMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtNjMsNiAr
NjMsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYW5uZXJOb2RlLmgiCiAjaW5j
bHVkZSAiUGVyaW9kaWNXYXZlLmgiCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZlT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRQcm9jZXNzb3JOb2RlLmgiCkBAIC05MSw4
ICs5Miw2IEBACiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKLWNvbnN0IHVuc2lnbmVkIE1heFBlcmlvZGljV2F2ZUxlbmd0aCA9IDQwOTY7
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEJh
c2VBdWRpb0NvbnRleHQpOwpAQCAtNjM1LDE4ICs2MzQsMjMgQEAgRXhjZXB0aW9uT3I8UmVmPE9z
Y2lsbGF0b3JOb2RlPj4gQmFzZUF1ZGlvQ29udGV4dDo6Y3JlYXRlT3NjaWxsYXRvcigpCiAgICAg
cmV0dXJuIG5vZGU7CiB9CiAKLUV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBCYXNlQXVk
aW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUoRmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMy
QXJyYXkmIGltYWdpbmFyeSkKK0V4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBCYXNlQXVk
aW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUoVmVjdG9yPGZsb2F0PiYmIHJlYWwsIFZlY3Rv
cjxmbG9hdD4mJiBpbWFnaW5hcnksIGNvbnN0IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cykKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogICAgIAogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKG1faXNTdG9wU2NoZWR1bGVkKQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLQotICAgIGlmIChyZWFs
Lmxlbmd0aCgpICE9IGltYWdpbmFyeS5sZW5ndGgoKSB8fCAocmVhbC5sZW5ndGgoKSA+IE1heFBl
cmlvZGljV2F2ZUxlbmd0aCkgfHwgIXJlYWwubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbmRleFNpemVFcnJvciB9OworICAgIAorICAgIGlmIChyZWFsLnNpemUoKSAhPSBp
bWFnaW5hcnkuc2l6ZSgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJy
b3IsICJyZWFsIGFuZCBpbWFnaW5hcnkgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCJfcyB9Owor
ICAgIAorICAgIFBlcmlvZGljV2F2ZU9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLnJlYWwg
PSBXVEZNb3ZlKHJlYWwpOworICAgIG9wdGlvbnMuaW1hZyA9IFdURk1vdmUoaW1hZ2luYXJ5KTsK
KyAgICBvcHRpb25zLmRpc2FibGVOb3JtYWxpemF0aW9uID0gY29uc3RyYWludHMuZGlzYWJsZU5v
cm1hbGl6YXRpb247CiAgICAgbGF6eUluaXRpYWxpemUoKTsKLSAgICByZXR1cm4gUGVyaW9kaWNX
YXZlOjpjcmVhdGUoc2FtcGxlUmF0ZSgpLCByZWFsLCBpbWFnaW5hcnkpOworICAgIHJldHVybiBQ
ZXJpb2RpY1dhdmU6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShvcHRpb25zKSk7CiB9CiAKIHZvaWQg
QmFzZUF1ZGlvQ29udGV4dDo6bm90aWZ5Tm9kZUZpbmlzaGVkUHJvY2Vzc2luZyhBdWRpb05vZGUq
IG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5oCmluZGV4IDQ5ZTdlM2E5M2VkZTU3MzJiNDg4MTJhZTI4NGJiZjhmZGQ5YWU2MDIu
LjRhOGEzNDU3ZDhjOTNiMzQxOGM0MThkZTc1ODQxYzljMzA4MmU2YjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJNZWRpYUNhblN0
YXJ0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiUGVy
aW9kaWNXYXZlQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJWaXNpYmls
aXR5Q2hhbmdlQ2xpZW50LmgiCkBAIC0xNTIsNyArMTUzLDcgQEAgcHVibGljOgogICAgIEV4Y2Vw
dGlvbk9yPFJlZjxDaGFubmVsU3BsaXR0ZXJOb2RlPj4gY3JlYXRlQ2hhbm5lbFNwbGl0dGVyKHNp
emVfdCBudW1iZXJPZk91dHB1dHMpOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxDaGFubmVsTWVyZ2Vy
Tm9kZT4+IGNyZWF0ZUNoYW5uZWxNZXJnZXIoc2l6ZV90IG51bWJlck9mSW5wdXRzKTsKICAgICBF
eGNlcHRpb25PcjxSZWY8T3NjaWxsYXRvck5vZGU+PiBjcmVhdGVPc2NpbGxhdG9yKCk7Ci0gICAg
RXhjZXB0aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IGNyZWF0ZVBlcmlvZGljV2F2ZShGbG9hdDMy
QXJyYXkmIHJlYWwsIEZsb2F0MzJBcnJheSYgaW1hZ2luYXJ5KTsKKyAgICBFeGNlcHRpb25PcjxS
ZWY8UGVyaW9kaWNXYXZlPj4gY3JlYXRlUGVyaW9kaWNXYXZlKFZlY3RvcjxmbG9hdD4mJiByZWFs
LCBWZWN0b3I8ZmxvYXQ+JiYgaW1hZ2luYXJ5LCBjb25zdCBQZXJpb2RpY1dhdmVDb25zdHJhaW50
cyYgPSB7IH0pOwogCiAgICAgLy8gV2hlbiBhIHNvdXJjZSBub2RlIGhhcyBubyBtb3JlIHByb2Nl
c3NpbmcgdG8gZG8gKGhhcyBmaW5pc2hlZCBwbGF5aW5nKSwgdGhlbiBpdCB0ZWxscyB0aGUgY29u
dGV4dCB0byBkZXJlZmVyZW5jZSBpdC4KICAgICB2b2lkIG5vdGlmeU5vZGVGaW5pc2hlZFByb2Nl
c3NpbmcoQXVkaW9Ob2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAppbmRleCA0MzUwYjFlMGNlYjUzNWExYTdiOTAxMDg4
Yjg0NmZmMWIwOWEyMzU0Li4xOTg1MzI0MGRlZWVlMGFjMWQyODZiMDI0MWIyZThkZTIwODRiOTYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5pZGwKQEAgLTY1LDcgKzY1LDcgQEAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIEFu
YWx5c2VyTm9kZSBjcmVhdGVBbmFseXNlcigpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU2Ny
aXB0UHJvY2Vzc29yTm9kZSBjcmVhdGVTY3JpcHRQcm9jZXNzb3Iob3B0aW9uYWwgdW5zaWduZWQg
bG9uZyBidWZmZXJTaXplID0gMCwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBudW1iZXJPZklucHV0
Q2hhbm5lbHMgPSAyLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMgPSAyKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIE9zY2lsbGF0b3JOb2RlIGNyZWF0ZU9z
Y2lsbGF0b3IoKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFBlcmlvZGljV2F2ZSBjcmVhdGVQ
ZXJpb2RpY1dhdmUoRmxvYXQzMkFycmF5IHJlYWwsIEZsb2F0MzJBcnJheSBpbWFnKTsKKyAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIFBlcmlvZGljV2F2ZSBjcmVhdGVQZXJpb2RpY1dhdmUoc2VxdWVu
Y2U8ZmxvYXQ+IHJlYWwsIHNlcXVlbmNlPGZsb2F0PiBpbWFnLCBvcHRpb25hbCBQZXJpb2RpY1dh
dmVPcHRpb25zIG9wdGlvbnMpOwogCiAgICAgLy8gQ2hhbm5lbCBzcGxpdHRpbmcgYW5kIG1lcmdp
bmcKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIENoYW5uZWxTcGxpdHRlck5vZGUgY3JlYXRlQ2hh
bm5lbFNwbGl0dGVyKG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRzID0gNik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5jcHAK
aW5kZXggZWM5YTE3YzRmNTZlYjk5NjZkYzE3NjI3ZTkzNDA1YmExZmQ0OGM0Ni4uMDg2NmY5NTFl
NDk2YzlmNGZjMmIyMDBhYTJhMDk4Y2NiNGRkYWQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogCiAj
aW5jbHVkZSAiUGVyaW9kaWNXYXZlLmgiCiAKKyNpbmNsdWRlICJCYXNlQXVkaW9Db250ZXh0Lmgi
CiAjaW5jbHVkZSAiRkZURnJhbWUuaCIKICNpbmNsdWRlICJWZWN0b3JNYXRoLmgiCiAjaW5jbHVk
ZSA8YWxnb3JpdGhtPgpAQCAtNDQsNiArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
CiB1c2luZyBuYW1lc3BhY2UgVmVjdG9yTWF0aDsKIAorLy8gRklYTUU6IFJlbW92ZSBvbmNlIG9s
ZCBjb25zdHJ1Y3RvciBpcyBwaGFzZWQgb3V0CiBSZWY8UGVyaW9kaWNXYXZlPiBQZXJpb2RpY1dh
dmU6OmNyZWF0ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0MzJB
cnJheSYgaW1hZ2luYXJ5KQogewogICAgIEFTU0VSVChyZWFsLmxlbmd0aCgpID09IGltYWdpbmFy
eS5sZW5ndGgoKSk7CkBAIC01Myw2ICs1NSw0NCBAQCBSZWY8UGVyaW9kaWNXYXZlPiBQZXJpb2Rp
Y1dhdmU6OmNyZWF0ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMyQXJyYXkmIHJlYWwsIEZsbwog
ICAgIHJldHVybiB3YXZlVGFibGU7CiB9CiAKK0V4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+
PiBQZXJpb2RpY1dhdmU6OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBQZXJpb2Rp
Y1dhdmVPcHRpb25zJiYgb3B0aW9ucykKK3sKKyAgICBWZWN0b3I8ZmxvYXQ+IHJlYWw7CisgICAg
VmVjdG9yPGZsb2F0PiBpbWFnOworICAgIAorICAgIGlmIChvcHRpb25zLnJlYWwgJiYgb3B0aW9u
cy5pbWFnKSB7CisgICAgICAgIGlmIChvcHRpb25zLnJlYWwtPnNpemUoKSAhPSBvcHRpb25zLmlt
YWctPnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJv
ciwgInJlYWwgYW5kIGltYWcgaGF2ZSBkaWZmZXJlbnQgbGVuZ3RocyJfcyB9OworICAgICAgICBp
ZiAob3B0aW9ucy5yZWFsLT5zaXplKCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEluZGV4U2l6ZUVycm9yLCAicmVhbCdzIGxlbmd0aCBjYW5ub3QgYmUgbGVzcyB0aGFuIDIi
X3MgfTsKKyAgICAgICAgaWYgKG9wdGlvbnMuaW1hZy0+c2l6ZSgpIDwgMikKKyAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciwgImltYWcncyBsZW5ndGggY2Fubm90
IGJlIGxlc3MgdGhhbiAyIl9zIH07CisgICAgICAgIHJlYWwgPSBXVEZNb3ZlKCpvcHRpb25zLnJl
YWwpOworICAgICAgICBpbWFnID0gV1RGTW92ZSgqb3B0aW9ucy5pbWFnKTsKKyAgICB9IGVsc2Ug
aWYgKG9wdGlvbnMucmVhbCkgeworICAgICAgICBpZiAob3B0aW9ucy5yZWFsLT5zaXplKCkgPCAy
KQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAicmVhbCdz
IGxlbmd0aCBjYW5ub3QgYmUgbGVzcyB0aGFuIDIiX3MgfTsKKyAgICAgICAgcmVhbCA9IFdURk1v
dmUoKm9wdGlvbnMucmVhbCk7CisgICAgICAgIGltYWcuZmlsbCgwLCByZWFsLnNpemUoKSk7Cisg
ICAgfSBlbHNlIGlmIChvcHRpb25zLmltYWcpIHsKKyAgICAgICAgaWYgKG9wdGlvbnMuaW1hZy0+
c2l6ZSgpIDwgMikKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJv
ciwgImltYWcncyBsZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiAyIl9zIH07CisgICAgICAgIGlt
YWcgPSBXVEZNb3ZlKCpvcHRpb25zLmltYWcpOworICAgICAgICByZWFsLmZpbGwoMCwgaW1hZy5z
aXplKCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJlYWwuZmlsbCgwLCAyKTsKKyAgICAgICAg
aW1hZy5maWxsKDAsIDIpOworICAgICAgICBpbWFnWzFdID0gMTsKKyAgICB9CisKKyAgICByZWFs
WzBdID0gMDsKKyAgICBpbWFnWzBdID0gMDsKKyAgICAKKyAgICBhdXRvIHdhdmVUYWJsZSA9IGFk
b3B0UmVmKCpuZXcgUGVyaW9kaWNXYXZlKGNvbnRleHQuc2FtcGxlUmF0ZSgpKSk7CisgICAgd2F2
ZVRhYmxlLT5jcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhyZWFsLmRhdGEoKSwgaW1hZy5kYXRhKCks
IHJlYWwuc2l6ZSgpLCBvcHRpb25zLmRpc2FibGVOb3JtYWxpemF0aW9uID8gU2hvdWxkRGlzYWJs
ZU5vcm1hbGl6YXRpb246OlllcyA6IFNob3VsZERpc2FibGVOb3JtYWxpemF0aW9uOjpObyk7Cisg
ICAgcmV0dXJuIHdhdmVUYWJsZTsKK30KKwogUmVmPFBlcmlvZGljV2F2ZT4gUGVyaW9kaWNXYXZl
OjpjcmVhdGVTaW5lKGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgUmVmPFBlcmlvZGljV2F2ZT4g
d2F2ZVRhYmxlID0gYWRvcHRSZWYoKm5ldyBQZXJpb2RpY1dhdmUoc2FtcGxlUmF0ZSkpOwpAQCAt
MTQyLDcgKzE4Miw3IEBAIHVuc2lnbmVkIFBlcmlvZGljV2F2ZTo6bnVtYmVyT2ZQYXJ0aWFsc0Zv
clJhbmdlKHVuc2lnbmVkIHJhbmdlSW5kZXgpIGNvbnN0CiAvLyBDb252ZXJ0IGludG8gdGltZS1k
b21haW4gd2F2ZSB0YWJsZXMuCiAvLyBPbmUgdGFibGUgaXMgY3JlYXRlZCBmb3IgZWFjaCByYW5n
ZSBmb3Igbm9uLWFsaWFzaW5nIHBsYXliYWNrIGF0IGRpZmZlcmVudCBwbGF5YmFjayByYXRlcy4K
IC8vIFRodXMsIGhpZ2hlciByYW5nZXMgaGF2ZSBtb3JlIGhpZ2gtZnJlcXVlbmN5IHBhcnRpYWxz
IGN1bGxlZCBvdXQuCi12b2lkIFBlcmlvZGljV2F2ZTo6Y3JlYXRlQmFuZExpbWl0ZWRUYWJsZXMo
Y29uc3QgZmxvYXQqIHJlYWxEYXRhLCBjb25zdCBmbG9hdCogaW1hZ0RhdGEsIHVuc2lnbmVkIG51
bWJlck9mQ29tcG9uZW50cykKK3ZvaWQgUGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRlZFRh
Ymxlcyhjb25zdCBmbG9hdCogcmVhbERhdGEsIGNvbnN0IGZsb2F0KiBpbWFnRGF0YSwgdW5zaWdu
ZWQgbnVtYmVyT2ZDb21wb25lbnRzLCBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbiBkaXNhYmxl
Tm9ybWFsaXphdGlvbikKIHsKICAgICBmbG9hdCBub3JtYWxpemF0aW9uU2NhbGUgPSAxOwogCkBA
IC0xOTksMTIgKzIzOSwxNCBAQCB2b2lkIFBlcmlvZGljV2F2ZTo6Y3JlYXRlQmFuZExpbWl0ZWRU
YWJsZXMoY29uc3QgZmxvYXQqIHJlYWxEYXRhLCBjb25zdCBmbG9hdCogaQogICAgICAgICBmcmFt
ZS5kb0ludmVyc2VGRlQoZGF0YSk7CiAKICAgICAgICAgLy8gRm9yIHRoZSBmaXJzdCByYW5nZSAo
d2hpY2ggaGFzIHRoZSBoaWdoZXN0IHBvd2VyKSwgY2FsY3VsYXRlIGl0cyBwZWFrIHZhbHVlIHRo
ZW4gY29tcHV0ZSBub3JtYWxpemF0aW9uIHNjYWxlLgotICAgICAgICBpZiAoIXJhbmdlSW5kZXgp
IHsKLSAgICAgICAgICAgIGZsb2F0IG1heFZhbHVlOwotICAgICAgICAgICAgdm1heG1ndihkYXRh
LCAxLCAmbWF4VmFsdWUsIG1fcGVyaW9kaWNXYXZlU2l6ZSk7Ci0KLSAgICAgICAgICAgIGlmICht
YXhWYWx1ZSkKLSAgICAgICAgICAgICAgICBub3JtYWxpemF0aW9uU2NhbGUgPSAxLjBmIC8gbWF4
VmFsdWU7CisgICAgICAgIGlmIChkaXNhYmxlTm9ybWFsaXphdGlvbiA9PSBTaG91bGREaXNhYmxl
Tm9ybWFsaXphdGlvbjo6Tm8pIHsKKyAgICAgICAgICAgIGlmICghcmFuZ2VJbmRleCkgeworICAg
ICAgICAgICAgICAgIGZsb2F0IG1heFZhbHVlOworICAgICAgICAgICAgICAgIHZtYXhtZ3YoZGF0
YSwgMSwgJm1heFZhbHVlLCBtX3BlcmlvZGljV2F2ZVNpemUpOworCisgICAgICAgICAgICAgICAg
aWYgKG1heFZhbHVlKQorICAgICAgICAgICAgICAgICAgICBub3JtYWxpemF0aW9uU2NhbGUgPSAx
LjBmIC8gbWF4VmFsdWU7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICAvLyBB
cHBseSBub3JtYWxpemF0aW9uIHNjYWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vUGVyaW9kaWNXYXZlLmgKaW5kZXggNzlhMmQ4MmFjNmNjMzFmNTQ2Zjk4ZDQyYTFjNTFm
MjU3NWQ1NjQ0MS4uZTEwZWJkZWNjZTJiMDZiOWMzNTQ3MTUyNzAzMmMwODIzNWNlZTcxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5oCkBAIC0y
OSw2ICsyOSw4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkF1ZGlvQXJyYXkuaCIKKyNp
bmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIlBlcmlvZGljV2F2ZU9wdGlvbnMuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTM2LDYgKzM4LDEwIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQmFzZUF1ZGlvQ29udGV4dDsKKworZW51bSBjbGFz
cyBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbiA6IGJvb2wgeyBObywgWWVzIH07CisKIGNsYXNz
IFBlcmlvZGljV2F2ZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFBlcmlvZGljV2F2ZT4gewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVyaW9kaWNXYXZlPiBjcmVhdGVTaW5lKGZsb2F0IHNh
bXBsZVJhdGUpOwpAQCAtNDQsNyArNTAsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVy
aW9kaWNXYXZlPiBjcmVhdGVUcmlhbmdsZShmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIENy
ZWF0ZXMgYW4gYXJiaXRyYXJ5IHdhdmUgZ2l2ZW4gdGhlIGZyZXF1ZW5jeSBjb21wb25lbnRzIChG
b3VyaWVyIGNvZWZmaWNpZW50cykuCisgICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIG9sZCBjb25z
dHJ1Y3RvciBpcyBwaGFzZWQgb3V0CiAgICAgc3RhdGljIFJlZjxQZXJpb2RpY1dhdmU+IGNyZWF0
ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0MzJBcnJheSYgaW1h
Zyk7CisgICAgCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBjcmVh
dGUoQmFzZUF1ZGlvQ29udGV4dCYsIFBlcmlvZGljV2F2ZU9wdGlvbnMmJiA9IHsgfSk7CiAKICAg
ICAvLyBSZXR1cm5zIHBvaW50ZXJzIHRvIHRoZSBsb3dlciBhbmQgaGlnaGVyIHdhdmUgZGF0YSBm
b3IgdGhlIHBpdGNoIHJhbmdlIGNvbnRhaW5pbmcKICAgICAvLyB0aGUgZ2l2ZW4gZnVuZGFtZW50
YWwgZnJlcXVlbmN5LiBUaGVzZSB0d28gdGFibGVzIGFyZSBpbiBhZGphY2VudCAicGl0Y2giIHJh
bmdlcwpAQCAtOTIsNyArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBudW1iZXJPZlBh
cnRpYWxzRm9yUmFuZ2UodW5zaWduZWQgcmFuZ2VJbmRleCkgY29uc3Q7CiAKICAgICAvLyBDcmVh
dGVzIHRhYmxlcyBiYXNlZCBvbiBudW1iZXJPZkNvbXBvbmVudHMgRm91cmllciBjb2VmZmljaWVu
dHMuCi0gICAgdm9pZCBjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25zdCBmbG9hdCogcmVhbCwg
Y29uc3QgZmxvYXQqIGltYWcsIHVuc2lnbmVkIG51bWJlck9mQ29tcG9uZW50cyk7CisgICAgdm9p
ZCBjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25zdCBmbG9hdCogcmVhbCwgY29uc3QgZmxvYXQq
IGltYWcsIHVuc2lnbmVkIG51bWJlck9mQ29tcG9uZW50cywgU2hvdWxkRGlzYWJsZU5vcm1hbGl6
YXRpb24gPSBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbjo6Tm8pOwogICAgIFZlY3RvcjxzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4gbV9iYW5kTGltaXRlZFRhYmxlczsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbApp
bmRleCAwYmYwOTIyMjFhZDdhZDBhZjY3Y2YyNDQ3OTk2OGM0YzY4OGNjNzU2Li4zNjA4NTA2MTYz
MWY5OTU2NTUzM2FkNjc3NGNmMjJiYzVjMDQ1MmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaWRsCkBAIC0yNyw1ICsyNyw1IEBACiAgICAg
Q29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKIF0g
aW50ZXJmYWNlIFBlcmlvZGljV2F2ZSB7Ci0KKyAgICBbTWF5VGhyb3dFeGNlcHRpb24sIEVuYWJs
ZWRCeVNldHRpbmc9TW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvXSBjb25zdHJ1Y3RvcihCYXNlQXVk
aW9Db250ZXh0IGNvbnRleHQsIG9wdGlvbmFsIFBlcmlvZGljV2F2ZU9wdGlvbnMgb3B0aW9ucyk7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmVDb25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJp
b2RpY1dhdmVDb25zdHJhaW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNjU3NTJiMDNhYzEyMGJhNTk0Yjhm
NTYyZTcyM2M5MzE2NDc2YmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmgKQEAgLTAsMCArMSwzOCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGVyaW9kaWNXYXZlQ29uc3RyYWludHMgeworICAg
IGJvb2wgZGlzYWJsZU5vcm1hbGl6YXRpb24gPSBmYWxzZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBiYjVmODJhNGFiMWMzNWM4ZWRkYjc0MTZmY2RkZGQ4ZjA2NGIwN2UK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Blcmlv
ZGljV2F2ZUNvbnN0cmFpbnRzLmlkbApAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KK1sKKyAg
ICBDb25kaXRpb25hbD1XRUJfQVVESU8sCitdIGRpY3Rpb25hcnkgUGVyaW9kaWNXYXZlQ29uc3Ry
YWludHMgeworICAgIGJvb2xlYW4gZGlzYWJsZU5vcm1hbGl6YXRpb24gPSBmYWxzZTsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9w
dGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0
aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVjODg1ZTBjN2M3ZTJmOTYzMzBjMjYxNWRkMDExNzhiMjhjZjRj
ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bl
cmlvZGljV2F2ZU9wdGlvbnMuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZl
Q29uc3RyYWludHMuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFBlcmlvZGljV2F2ZU9w
dGlvbnMgOiBwdWJsaWMgUGVyaW9kaWNXYXZlQ29uc3RyYWludHMgeworICAgIE9wdGlvbmFsPFZl
Y3RvcjxmbG9hdD4+IHJlYWw7CisgICAgT3B0aW9uYWw8VmVjdG9yPGZsb2F0Pj4gaW1hZzsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2
ZU9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dh
dmVPcHRpb25zLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWI0ZTQ5NmRkMTVlYTE4ODM0NTRmMTBmMGNkZjJh
NGEzZWM0ZGRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmlkbApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
K1sKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCitdIGRpY3Rpb25hcnkgUGVyaW9kaWNXYXZl
T3B0aW9ucyA6IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzIHsKKyAgICBzZXF1ZW5jZTxmbG9hdD4g
cmVhbDsKKyAgICBzZXF1ZW5jZTxmbG9hdD4gaW1hZzsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAKaW5kZXggMGUz
ZTY1YTljZWQzYTI3NTM5YjNhODUxNzEwZDE0ZmM2YjZmMDAzNy4uMDRlOWNhNjRlM2Q4YzY1MWIx
M2I0OGNlYzBiOTgxZDc5YzNmYzFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIldlYktpdEF1ZGlvQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiSlNET01Qcm9taXNl
RGVmZXJyZWQuaCIKKyNpbmNsdWRlICJQZXJpb2RpY1dhdmUuaCIKICNpbmNsdWRlICJXZWJLaXRB
dWRpb1Bhbm5lck5vZGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBA
IC00NSw2ICs0Niw4IEBACiAjaW5jbHVkZSAiTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgi
CiAjZW5kaWYKIAorY29uc3QgdW5zaWduZWQgTWF4UGVyaW9kaWNXYXZlTGVuZ3RoID0gNDA5NjsK
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2Vi
S2l0QXVkaW9Db250ZXh0KTsKQEAgLTE2Nyw2ICsxNzAsMjAgQEAgRXhjZXB0aW9uT3I8UmVmPFdl
YktpdEF1ZGlvUGFubmVyTm9kZT4+IFdlYktpdEF1ZGlvQ29udGV4dDo6Y3JlYXRlV2ViS2l0UGFu
bmVyKCkKICAgICByZXR1cm4gV2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpjcmVhdGUoKnRoaXMsIHNh
bXBsZVJhdGUoKSk7CiB9CiAKK0V4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBXZWJLaXRB
dWRpb0NvbnRleHQ6OmNyZWF0ZVBlcmlvZGljV2F2ZShGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0
MzJBcnJheSYgaW1hZ2luYXJ5KQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Cisg
ICAgCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBpZiAoaXNTdG9wcGVkKCkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgaWYg
KHJlYWwubGVuZ3RoKCkgIT0gaW1hZ2luYXJ5Lmxlbmd0aCgpIHx8IHJlYWwubGVuZ3RoKCkgPiBN
YXhQZXJpb2RpY1dhdmVMZW5ndGggfHwgIXJlYWwubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OworICAgIGxhenlJbml0aWFsaXplKCk7CisgICAg
cmV0dXJuIFBlcmlvZGljV2F2ZTo6Y3JlYXRlKHNhbXBsZVJhdGUoKSwgcmVhbCwgaW1hZ2luYXJ5
KTsKK30KKwogdm9pZCBXZWJLaXRBdWRpb0NvbnRleHQ6OmNsb3NlKERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKGlzT2ZmbGluZUNvbnRleHQoKSB8fCBpc1N0
b3BwZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9X
ZWJLaXRBdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2Vi
S2l0QXVkaW9Db250ZXh0LmgKaW5kZXggZDNkNTY5NmU2ZGFmNWQ0MzA4NmEzZjRmMzllMjZlNDFj
OGQyOGFhNC4uNWY3NWIwNzNkY2EzZjA4OTU3ZGE5Y2U3MzJiMWZhMzg0YmRkMmU0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4
dC5oCkBAIC0zNiw2ICszNiw3IEBAIGNsYXNzIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTsK
IGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9k
ZTsKIGNsYXNzIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOworY2xhc3MgUGVyaW9kaWNXYXZl
OwogY2xhc3MgV2ViS2l0QXVkaW9QYW5uZXJOb2RlOwogCiAvLyBBdWRpb0NvbnRleHQgaXMgdGhl
IGNvcm5lcnN0b25lIG9mIHRoZSB3ZWIgYXVkaW8gQVBJIGFuZCBhbGwgQXVkaW9Ob2RlcyBhcmUg
Y3JlYXRlZCBmcm9tIGl0LgpAQCAtNjAsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9u
T3I8UmVmPE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGU+PiBjcmVhdGVNZWRpYVN0cmVh
bURlc3RpbmF0aW9uKCk7CiAjZW5kaWYKICAgICBFeGNlcHRpb25PcjxSZWY8V2ViS2l0QXVkaW9Q
YW5uZXJOb2RlPj4gY3JlYXRlV2ViS2l0UGFubmVyKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmPFBl
cmlvZGljV2F2ZT4+IGNyZWF0ZVBlcmlvZGljV2F2ZShGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0
MzJBcnJheSYgaW1hZ2luYXJ5KTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFdlYktpdEF1
ZGlvQ29udGV4dChEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmZDAxMjE5OTU0MTk2YWU5
NGMyYTMyZjZiMWE1NDlkYzU2MmIwYjhiLi4xNDY2YTA3Y2YyOWIzZjhlNmQ0YjEwOWUxNDBhZWVl
N2Y4YWM3NTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzE3MCw2ICszMTcwLDggQEAgSlNQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nLmNwcAogSlNQZXJmb3JtYW5jZVNlcnZlclRpbWluZy5jcHAKIEpT
UGVyZm9ybWFuY2VUaW1pbmcuY3BwCiBKU1BlcmlvZGljV2F2ZS5jcHAKK0pTUGVyaW9kaWNXYXZl
Q29uc3RyYWludHMuY3BwCitKU1BlcmlvZGljV2F2ZU9wdGlvbnMuY3BwCiBKU1BpY3R1cmVJblBp
Y3R1cmVXaW5kb3cuY3BwCiBKU1BsYXliYWNrRGlyZWN0aW9uLmNwcAogSlNQb2ludGVyRXZlbnQu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggN2Q5NDM5YTFlZThmNWE3MjFmZjA5M2ZiZGMxM2JjODRkNTg1ZjUyYS4uN2QxNTAy
YjFkMzhjOGU3YjU2ZWJiZDg0YzJhYzhkOTQzMjcxNTI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA0NSw2ICs1MDQ1LDgg
QEAKIAkJRTVCQTdENjMxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCQTdENjIxNTE0MzdD
QTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU3MTQ2N0IzMjRBQkFFRjIwMEZCMkY1MCAvKiBBdWRp
b05vZGVPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovOyB9
OwogCQlFNzE0NjdCNjI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjUyNEFCQUYxRDAw
RkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLzsgfTsKKwkJRTc1NUU4OTIyNEM3NDM0QjAwOUY3
QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzU1RTg4RjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9k
aWNXYXZlQ29uc3RyYWludHMuaCAqLzsgfTsKKwkJRTc1NUU4OTkyNEM3NDYxRDAwOUY3QzIzIC8q
IFBlcmlvZGljV2F2ZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU3NTVFODk2MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRp
b25zLmggKi87IH07CiAJCUU3ODVEOTE1MjRCNEQxQ0EwMDE0REIyMSAvKiBDaGFubmVsQ291bnRN
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1
RDkxMTI0QjREMUIxMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oICovOyB9OwogCQlFNzg1
RDkzNDI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1RDkzMTI0QjYzNkZGMDAx
NERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggKi87IH07CiAJCUU3ODVEOTYxMjRCN0Y3
MzUwMDE0REIyMSAvKiBBdWRpb0NvbnRleHRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1RDk1RjI0QjdGNzM0MDAxNERCMjEgLyogQXVk
aW9Db250ZXh0T3B0aW9ucy5oICovOyB9OwpAQCAtMTU4MDAsNiArMTU4MDIsMTAgQEAKIAkJRTcx
NDY3QjQyNEFCQUYwQjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlv
Tm9kZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNTI0
QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYW5uZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU3MTQ2N0I3MjRBQkFGMkMwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBQYW5uZXJPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTc1NUU4OEYyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU3NTVFODkxMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dh
dmVDb25zdHJhaW50cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNzU1RTg5NjI0Qzc0NjFEMDA5RjdDMjMgLyogUGVy
aW9kaWNXYXZlT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJpb2RpY1dhdmVPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3NTVFODk4MjRDNzQ2MUQwMDlGN0MyMyAv
KiBQZXJpb2RpY1dhdmVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQZXJpb2RpY1dhdmVPcHRpb25zLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTc4NUQ5MTEyNEI0RDFCMTAwMTREQjIxIC8q
IENoYW5uZWxDb3VudE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhbm5lbENvdW50TW9kZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzg1RDkxMzI0QjREMUIxMDAxNERCMjEgLyog
Q2hhbm5lbENvdW50TW9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2hhbm5lbENvdW50TW9kZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3ODVEOTMxMjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVs
SW50ZXJwcmV0YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhbm5lbEludGVycHJldGF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTQ2Myw2ICsyOTQ2OSwxMCBAQAogCQkJ
CUZENTgxRkIxMTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuY3BwICovLAogCQkJCUZE
NTgxRkIyMTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuaCAqLywKIAkJCQlGRDU4MUZC
MzE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmlkbCAqLywKKwkJCQlFNzU1RTg4RjI0
Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCAqLywKKwkJCQlFNzU1
RTg5MTI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsICovLAor
CQkJCUU3NTVFODk2MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRpb25zLmggKi8s
CisJCQkJRTc1NUU4OTgyNEM3NDYxRDAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZU9wdGlvbnMuaWRs
ICovLAogCQkJCUZEMzE1RkYxMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmNw
cCAqLywKIAkJCQlGRDMxNUZGMjEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5o
ICovLAogCQkJCUZEMzE1RkVCMTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2Rl
LmNwcCAqLywKQEAgLTMyNjM3LDYgKzMyNjQ3LDggQEAKIAkJCQk4QUY0RTU1QzExREM1QTYzMDAw
RUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NTRCNUYz
MUUzODM5M0EwMDFENEUwMyAvKiBQZXJmb3JtYW5jZVVzZXJUaW1pbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZENTgxRkI1MTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUU3NTVFODkyMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVDb25z
dHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTc1NUU4OTkyNEM3NDYxRDAwOUY3QzIzIC8q
IFBlcmlvZGljV2F2ZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RDVEQzJFMEY0MjNB
NzMwMDhGMjBGRCAvKiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMURCQzFCNTYyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQyQzgyQjcyMzZBM0Y2QTAwNTVENkM1IC8qIFBp
Y3R1cmVJblBpY3R1cmVTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCmluZGV4IDM2OTM2YTgyZmI1NTkwYTYwY2FjMzcyNjQ4MTY1ZTBjYzE1ZGMyMDMu
LmRjMWRjNjMxMmVhY2Y5YjMxOTRkM2NjMGZjMWI2YzFkNzRhMzU4ZTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTIyICBDbGFyayBXYW5n
ICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgUGVyaW9kaWNXYXZlIGNv
bnN0cnVjdG9yIGFjY29yZGluZyB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MTUKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBE
dW1lei4KKworICAgICAgICBSZS1iYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdGhhdCBub3cgcGFz
cy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0
dHBzLndpbmRvdy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDctMjAgIENsYXJrIFdhbmcgIDxjbGFy
a193YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXhlcyB0byBtYXRjaCBCYXNlQXVkaW9Db250
ZXh0LmlkbCB0byBzcGVjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDk5ZjRjMGNjMTM3
YTRiYjcxYzBiMzNkYWI0ZDQzZTI5MGI4ZGFlNmYuLjU2ZmY4MDVjYjhiNzViYTUxZDVjYWU2Mzdm
OTZmYTE2ODdmM2I0MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC05NjgsMTMgKzk2
OCwxMyBAQCBQQVNTIEF1ZGlvTm9kZSBpbnRlcmZhY2U6IG5ldyBQYW5uZXJOb2RlKGNvbnRleHQp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2hhbm5lbAogUEFTUyBBdWRpb05vZGUgaW50ZXJmYWNl
OiBuZXcgUGFubmVyTm9kZShjb250ZXh0KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNoYW5uZWxD
b3VudE1vZGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBBdWRpb05vZGUgaW50ZXJmYWNl
OiBuZXcgUGFubmVyTm9kZShjb250ZXh0KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNoYW5uZWxJ
bnRlcnByZXRhdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFBlcmlvZGljV2F2ZSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAot
RkFJTCBQZXJpb2RpY1dhdmUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X2VxdWFsczog
d3JvbmcgdmFsdWUgZm9yIFBlcmlvZGljV2F2ZS5sZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAK
K1BBU1MgUGVyaW9kaWNXYXZlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBQZXJpb2Rp
Y1dhdmUgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAogUEFTUyBQZXJpb2RpY1dhdmUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
CiBQQVNTIFBlcmlvZGljV2F2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCiBQ
QVNTIFBlcmlvZGljV2F2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1GQUlM
IFBlcmlvZGljV2F2ZSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBQZXJpb2RpY1dh
dmUoY29udGV4dCkgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFs
dWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJUeXBlRXJyb3I6IGZ1
bmN0aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgUGVyaW9kaWNXYXZl
KGNvbnRleHQpJykiCi1GQUlMIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUGVyaW9kaWNXYXZlKGNv
bnRleHQpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGlu
ZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiVHlwZUVycm9yOiBmdW5jdGlv
biBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IFBlcmlvZGljV2F2ZShjb250
ZXh0KScpIgorUEFTUyBQZXJpb2RpY1dhdmUgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBu
ZXcgUGVyaW9kaWNXYXZlKGNvbnRleHQpIAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFBl
cmlvZGljV2F2ZShjb250ZXh0KSAKIFBBU1MgU2NyaXB0UHJvY2Vzc29yTm9kZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBTY3Jp
cHRQcm9jZXNzb3JOb2RlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBTY3JpcHRQcm9j
ZXNzb3JOb2RlIGludGVyZmFjZSBvYmplY3QgbmFtZSAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405043</attachid>
            <date>2020-07-23 08:54:20 -0700</date>
            <delta_ts>2020-07-23 09:10:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214615-20200723115419.patch</filename>
            <type>text/plain</type>
            <size>34632</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVlMDMzNTY2NDhiZjAx
OTczNDgwY2YwMmZhNGNhY2I2NTRmZmM5NS4uOTcyYWUzNmZmYjcyODMxZmY3NTJjOWFjNDdmOWMy
YzUyODA2NjJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA3LTIzICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgUGVyaW9kaWNX
YXZlIGNvbnN0cnVjdG9yIGFjY29yZGluZyB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MTUKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBSZS1iYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdGhhdCBu
b3cgcGFzcy4KKworICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmUgY29uc3RydWN0b3IgYWNjb3Jk
aW5nIHRvIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jcGVyaW9kaWN3YXZl
LgorICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cywgUGVyaW9kaWNXYXZlT3B0
aW9ucyBmaWxlcy4gVXBkYXRlZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVz
CisgICAgICAgIHRvIG5vcm1hbGl6ZSB3YXZlZm9ybSBiYXNlZCBvbiBzcGVjOiBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXVkaW8vI3dhdmVmb3JtLW5vcm1hbGl6YXRpb24uCisgICAgICAgIEFk
ZGVkIHVwZGF0ZWQgY3JlYXRlUGVyaW9kaWNXYXZlIG1ldGhvZCBpbiBCYXNlQXVkaW9Db250ZXh0
LCBhbmQgbW92ZWQgb2xkIGNyZWF0ZVBlcmlvZGljV2F2ZSBtZXRob2QKKyAgICAgICAgSW50byBX
ZWJLaXRBdWRpb0NvbnRleHQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmNyZWF0ZVBlcmlvZGljV2F2ZSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNlQXVkaW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRl
ZFRhYmxlcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYktpdEF1ZGlvQ29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMC0wNy0yMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdWzEuMThdIG1lZGlhc3RyZWFtc3JjIGVs
ZW1lbnQgaGl0cyBhc3NlcnQgaW4gZ3N0IC1jb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJh
NWE0MTFkYmNjYWYyM2M1Zjg5YTc4NDg5YzU4NTQxZmM0NGUwMGUuLmRjZDI1MzJlMGRjMDU2NTMx
MzhkMDRhYTQxZmViYWMyZTIzOGVkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00ODEsNiAr
NDgxLDggQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1
ZGlvL1Bhbm5lck9wdGlvbnMuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9QYW5uaW5nTW9kZWxU
eXBlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAorICAgIE1vZHVs
ZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsCisgICAgTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vU2NyaXB0
UHJvY2Vzc29yTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlk
bAogICAgIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYzkzNjMyOWM0
ZjA2MGIzNDYxOWNhY2M2OWEzNzc4OGUyMTlmZjdlOC4uMDQ0ODQ3ZTFjZTU2MGQ4YWM2MmU2MWZk
YjFkOWU5NDgyNDVkODQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CkBAIC0zMzAsNiArMzMwLDggQEAgJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9QYW5uZXJPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QYW5u
aW5nTW9kZWxUeXBlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNv
bnN0cmFpbnRzLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dh
dmVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVy
Tm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250
ZXh0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCBjMDAyNTk1ZTYxMTUxMTMxMmQwZTcwZTVkMzVlYWMyMjI2ZTlhYmUxLi43NThk
OGZjMDk4MWZkNDk0M2U1YWJlYzViOTk5ZWY5YTlmNWIxNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTMxNiw2ICsxMzE2LDEw
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyZm9y
bWFuY2VUaW1pbmcuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1BlcmZvcm1hbmNlVGltaW5nLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUGVyaW9kaWNXYXZlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmUuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyaW9k
aWNXYXZlQ29uc3RyYWludHMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVPcHRpb25zLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVPcHRpb25zLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGljdHVyZUluUGljdHVyZVdp
bmRvdy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UGljdHVyZUluUGljdHVyZVdpbmRvdy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1BsYXliYWNrRGlyZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggZDY1ZmMyZThiN2E3MzY2NGI1MGJkNmU1ODNlNjdlNjE4ZGEzYjY4ZC4u
MjIyNDQwMTc5ODFkNTMzYjk5Y2YxNmQ0ODcxNDY4MjMwNjkzNWZhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC00MTMsNiArNDEzLDggQEAgSlNfQklORElOR19JRExTID0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJPcHRpb25zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5pbmdNb2RlbFR5cGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaWRsIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwCmluZGV4IGM5N2YxODhlNDkwMmM0NGY3NzlhNGRmNDk1N2NiNzNjNTUyZjViODMuLjdiZDU2
NDU4YTExM2I2M2YyOTI3MTIxYTU4ZmJjMzExZDU2YjliMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtNjMsNiAr
NjMsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYW5uZXJOb2RlLmgiCiAjaW5j
bHVkZSAiUGVyaW9kaWNXYXZlLmgiCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZlT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRQcm9jZXNzb3JOb2RlLmgiCkBAIC05MSw4
ICs5Miw2IEBACiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKLWNvbnN0IHVuc2lnbmVkIE1heFBlcmlvZGljV2F2ZUxlbmd0aCA9IDQwOTY7
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEJh
c2VBdWRpb0NvbnRleHQpOwpAQCAtNjM1LDE4ICs2MzQsMjMgQEAgRXhjZXB0aW9uT3I8UmVmPE9z
Y2lsbGF0b3JOb2RlPj4gQmFzZUF1ZGlvQ29udGV4dDo6Y3JlYXRlT3NjaWxsYXRvcigpCiAgICAg
cmV0dXJuIG5vZGU7CiB9CiAKLUV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBCYXNlQXVk
aW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUoRmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMy
QXJyYXkmIGltYWdpbmFyeSkKK0V4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBCYXNlQXVk
aW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUoVmVjdG9yPGZsb2F0PiYmIHJlYWwsIFZlY3Rv
cjxmbG9hdD4mJiBpbWFnaW5hcnksIGNvbnN0IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cykKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogICAgIAogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKG1faXNTdG9wU2NoZWR1bGVkKQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLQotICAgIGlmIChyZWFs
Lmxlbmd0aCgpICE9IGltYWdpbmFyeS5sZW5ndGgoKSB8fCAocmVhbC5sZW5ndGgoKSA+IE1heFBl
cmlvZGljV2F2ZUxlbmd0aCkgfHwgIXJlYWwubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbmRleFNpemVFcnJvciB9OworICAgIAorICAgIGlmIChyZWFsLnNpemUoKSAhPSBp
bWFnaW5hcnkuc2l6ZSgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJy
b3IsICJyZWFsIGFuZCBpbWFnaW5hcnkgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCJfcyB9Owor
ICAgIAorICAgIFBlcmlvZGljV2F2ZU9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLnJlYWwg
PSBXVEZNb3ZlKHJlYWwpOworICAgIG9wdGlvbnMuaW1hZyA9IFdURk1vdmUoaW1hZ2luYXJ5KTsK
KyAgICBvcHRpb25zLmRpc2FibGVOb3JtYWxpemF0aW9uID0gY29uc3RyYWludHMuZGlzYWJsZU5v
cm1hbGl6YXRpb247CiAgICAgbGF6eUluaXRpYWxpemUoKTsKLSAgICByZXR1cm4gUGVyaW9kaWNX
YXZlOjpjcmVhdGUoc2FtcGxlUmF0ZSgpLCByZWFsLCBpbWFnaW5hcnkpOworICAgIHJldHVybiBQ
ZXJpb2RpY1dhdmU6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShvcHRpb25zKSk7CiB9CiAKIHZvaWQg
QmFzZUF1ZGlvQ29udGV4dDo6bm90aWZ5Tm9kZUZpbmlzaGVkUHJvY2Vzc2luZyhBdWRpb05vZGUq
IG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5oCmluZGV4IDQ5ZTdlM2E5M2VkZTU3MzJiNDg4MTJhZTI4NGJiZjhmZGQ5YWU2MDIu
LjRhOGEzNDU3ZDhjOTNiMzQxOGM0MThkZTc1ODQxYzljMzA4MmU2YjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJNZWRpYUNhblN0
YXJ0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiUGVy
aW9kaWNXYXZlQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJWaXNpYmls
aXR5Q2hhbmdlQ2xpZW50LmgiCkBAIC0xNTIsNyArMTUzLDcgQEAgcHVibGljOgogICAgIEV4Y2Vw
dGlvbk9yPFJlZjxDaGFubmVsU3BsaXR0ZXJOb2RlPj4gY3JlYXRlQ2hhbm5lbFNwbGl0dGVyKHNp
emVfdCBudW1iZXJPZk91dHB1dHMpOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxDaGFubmVsTWVyZ2Vy
Tm9kZT4+IGNyZWF0ZUNoYW5uZWxNZXJnZXIoc2l6ZV90IG51bWJlck9mSW5wdXRzKTsKICAgICBF
eGNlcHRpb25PcjxSZWY8T3NjaWxsYXRvck5vZGU+PiBjcmVhdGVPc2NpbGxhdG9yKCk7Ci0gICAg
RXhjZXB0aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IGNyZWF0ZVBlcmlvZGljV2F2ZShGbG9hdDMy
QXJyYXkmIHJlYWwsIEZsb2F0MzJBcnJheSYgaW1hZ2luYXJ5KTsKKyAgICBFeGNlcHRpb25PcjxS
ZWY8UGVyaW9kaWNXYXZlPj4gY3JlYXRlUGVyaW9kaWNXYXZlKFZlY3RvcjxmbG9hdD4mJiByZWFs
LCBWZWN0b3I8ZmxvYXQ+JiYgaW1hZ2luYXJ5LCBjb25zdCBQZXJpb2RpY1dhdmVDb25zdHJhaW50
cyYgPSB7IH0pOwogCiAgICAgLy8gV2hlbiBhIHNvdXJjZSBub2RlIGhhcyBubyBtb3JlIHByb2Nl
c3NpbmcgdG8gZG8gKGhhcyBmaW5pc2hlZCBwbGF5aW5nKSwgdGhlbiBpdCB0ZWxscyB0aGUgY29u
dGV4dCB0byBkZXJlZmVyZW5jZSBpdC4KICAgICB2b2lkIG5vdGlmeU5vZGVGaW5pc2hlZFByb2Nl
c3NpbmcoQXVkaW9Ob2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAppbmRleCA0MzUwYjFlMGNlYjUzNWExYTdiOTAxMDg4
Yjg0NmZmMWIwOWEyMzU0Li4xOTg1MzI0MGRlZWVlMGFjMWQyODZiMDI0MWIyZThkZTIwODRiOTYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5pZGwKQEAgLTY1LDcgKzY1LDcgQEAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIEFu
YWx5c2VyTm9kZSBjcmVhdGVBbmFseXNlcigpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU2Ny
aXB0UHJvY2Vzc29yTm9kZSBjcmVhdGVTY3JpcHRQcm9jZXNzb3Iob3B0aW9uYWwgdW5zaWduZWQg
bG9uZyBidWZmZXJTaXplID0gMCwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBudW1iZXJPZklucHV0
Q2hhbm5lbHMgPSAyLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMgPSAyKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIE9zY2lsbGF0b3JOb2RlIGNyZWF0ZU9z
Y2lsbGF0b3IoKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFBlcmlvZGljV2F2ZSBjcmVhdGVQ
ZXJpb2RpY1dhdmUoRmxvYXQzMkFycmF5IHJlYWwsIEZsb2F0MzJBcnJheSBpbWFnKTsKKyAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIFBlcmlvZGljV2F2ZSBjcmVhdGVQZXJpb2RpY1dhdmUoc2VxdWVu
Y2U8ZmxvYXQ+IHJlYWwsIHNlcXVlbmNlPGZsb2F0PiBpbWFnLCBvcHRpb25hbCBQZXJpb2RpY1dh
dmVPcHRpb25zIG9wdGlvbnMpOwogCiAgICAgLy8gQ2hhbm5lbCBzcGxpdHRpbmcgYW5kIG1lcmdp
bmcKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIENoYW5uZWxTcGxpdHRlck5vZGUgY3JlYXRlQ2hh
bm5lbFNwbGl0dGVyKG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRzID0gNik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5jcHAK
aW5kZXggZWM5YTE3YzRmNTZlYjk5NjZkYzE3NjI3ZTkzNDA1YmExZmQ0OGM0Ni4uMDg2NmY5NTFl
NDk2YzlmNGZjMmIyMDBhYTJhMDk4Y2NiNGRkYWQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogCiAj
aW5jbHVkZSAiUGVyaW9kaWNXYXZlLmgiCiAKKyNpbmNsdWRlICJCYXNlQXVkaW9Db250ZXh0Lmgi
CiAjaW5jbHVkZSAiRkZURnJhbWUuaCIKICNpbmNsdWRlICJWZWN0b3JNYXRoLmgiCiAjaW5jbHVk
ZSA8YWxnb3JpdGhtPgpAQCAtNDQsNiArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
CiB1c2luZyBuYW1lc3BhY2UgVmVjdG9yTWF0aDsKIAorLy8gRklYTUU6IFJlbW92ZSBvbmNlIG9s
ZCBjb25zdHJ1Y3RvciBpcyBwaGFzZWQgb3V0CiBSZWY8UGVyaW9kaWNXYXZlPiBQZXJpb2RpY1dh
dmU6OmNyZWF0ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0MzJB
cnJheSYgaW1hZ2luYXJ5KQogewogICAgIEFTU0VSVChyZWFsLmxlbmd0aCgpID09IGltYWdpbmFy
eS5sZW5ndGgoKSk7CkBAIC01Myw2ICs1NSw0NCBAQCBSZWY8UGVyaW9kaWNXYXZlPiBQZXJpb2Rp
Y1dhdmU6OmNyZWF0ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMyQXJyYXkmIHJlYWwsIEZsbwog
ICAgIHJldHVybiB3YXZlVGFibGU7CiB9CiAKK0V4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+
PiBQZXJpb2RpY1dhdmU6OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBQZXJpb2Rp
Y1dhdmVPcHRpb25zJiYgb3B0aW9ucykKK3sKKyAgICBWZWN0b3I8ZmxvYXQ+IHJlYWw7CisgICAg
VmVjdG9yPGZsb2F0PiBpbWFnOworICAgIAorICAgIGlmIChvcHRpb25zLnJlYWwgJiYgb3B0aW9u
cy5pbWFnKSB7CisgICAgICAgIGlmIChvcHRpb25zLnJlYWwtPnNpemUoKSAhPSBvcHRpb25zLmlt
YWctPnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJv
ciwgInJlYWwgYW5kIGltYWcgaGF2ZSBkaWZmZXJlbnQgbGVuZ3RocyJfcyB9OworICAgICAgICBp
ZiAob3B0aW9ucy5yZWFsLT5zaXplKCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEluZGV4U2l6ZUVycm9yLCAicmVhbCdzIGxlbmd0aCBjYW5ub3QgYmUgbGVzcyB0aGFuIDIi
X3MgfTsKKyAgICAgICAgaWYgKG9wdGlvbnMuaW1hZy0+c2l6ZSgpIDwgMikKKyAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciwgImltYWcncyBsZW5ndGggY2Fubm90
IGJlIGxlc3MgdGhhbiAyIl9zIH07CisgICAgICAgIHJlYWwgPSBXVEZNb3ZlKCpvcHRpb25zLnJl
YWwpOworICAgICAgICBpbWFnID0gV1RGTW92ZSgqb3B0aW9ucy5pbWFnKTsKKyAgICB9IGVsc2Ug
aWYgKG9wdGlvbnMucmVhbCkgeworICAgICAgICBpZiAob3B0aW9ucy5yZWFsLT5zaXplKCkgPCAy
KQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAicmVhbCdz
IGxlbmd0aCBjYW5ub3QgYmUgbGVzcyB0aGFuIDIiX3MgfTsKKyAgICAgICAgcmVhbCA9IFdURk1v
dmUoKm9wdGlvbnMucmVhbCk7CisgICAgICAgIGltYWcuZmlsbCgwLCByZWFsLnNpemUoKSk7Cisg
ICAgfSBlbHNlIGlmIChvcHRpb25zLmltYWcpIHsKKyAgICAgICAgaWYgKG9wdGlvbnMuaW1hZy0+
c2l6ZSgpIDwgMikKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJv
ciwgImltYWcncyBsZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiAyIl9zIH07CisgICAgICAgIGlt
YWcgPSBXVEZNb3ZlKCpvcHRpb25zLmltYWcpOworICAgICAgICByZWFsLmZpbGwoMCwgaW1hZy5z
aXplKCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJlYWwuZmlsbCgwLCAyKTsKKyAgICAgICAg
aW1hZy5maWxsKDAsIDIpOworICAgICAgICBpbWFnWzFdID0gMTsKKyAgICB9CisKKyAgICByZWFs
WzBdID0gMDsKKyAgICBpbWFnWzBdID0gMDsKKyAgICAKKyAgICBhdXRvIHdhdmVUYWJsZSA9IGFk
b3B0UmVmKCpuZXcgUGVyaW9kaWNXYXZlKGNvbnRleHQuc2FtcGxlUmF0ZSgpKSk7CisgICAgd2F2
ZVRhYmxlLT5jcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhyZWFsLmRhdGEoKSwgaW1hZy5kYXRhKCks
IHJlYWwuc2l6ZSgpLCBvcHRpb25zLmRpc2FibGVOb3JtYWxpemF0aW9uID8gU2hvdWxkRGlzYWJs
ZU5vcm1hbGl6YXRpb246OlllcyA6IFNob3VsZERpc2FibGVOb3JtYWxpemF0aW9uOjpObyk7Cisg
ICAgcmV0dXJuIHdhdmVUYWJsZTsKK30KKwogUmVmPFBlcmlvZGljV2F2ZT4gUGVyaW9kaWNXYXZl
OjpjcmVhdGVTaW5lKGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgUmVmPFBlcmlvZGljV2F2ZT4g
d2F2ZVRhYmxlID0gYWRvcHRSZWYoKm5ldyBQZXJpb2RpY1dhdmUoc2FtcGxlUmF0ZSkpOwpAQCAt
MTQyLDcgKzE4Miw3IEBAIHVuc2lnbmVkIFBlcmlvZGljV2F2ZTo6bnVtYmVyT2ZQYXJ0aWFsc0Zv
clJhbmdlKHVuc2lnbmVkIHJhbmdlSW5kZXgpIGNvbnN0CiAvLyBDb252ZXJ0IGludG8gdGltZS1k
b21haW4gd2F2ZSB0YWJsZXMuCiAvLyBPbmUgdGFibGUgaXMgY3JlYXRlZCBmb3IgZWFjaCByYW5n
ZSBmb3Igbm9uLWFsaWFzaW5nIHBsYXliYWNrIGF0IGRpZmZlcmVudCBwbGF5YmFjayByYXRlcy4K
IC8vIFRodXMsIGhpZ2hlciByYW5nZXMgaGF2ZSBtb3JlIGhpZ2gtZnJlcXVlbmN5IHBhcnRpYWxz
IGN1bGxlZCBvdXQuCi12b2lkIFBlcmlvZGljV2F2ZTo6Y3JlYXRlQmFuZExpbWl0ZWRUYWJsZXMo
Y29uc3QgZmxvYXQqIHJlYWxEYXRhLCBjb25zdCBmbG9hdCogaW1hZ0RhdGEsIHVuc2lnbmVkIG51
bWJlck9mQ29tcG9uZW50cykKK3ZvaWQgUGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRlZFRh
Ymxlcyhjb25zdCBmbG9hdCogcmVhbERhdGEsIGNvbnN0IGZsb2F0KiBpbWFnRGF0YSwgdW5zaWdu
ZWQgbnVtYmVyT2ZDb21wb25lbnRzLCBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbiBkaXNhYmxl
Tm9ybWFsaXphdGlvbikKIHsKICAgICBmbG9hdCBub3JtYWxpemF0aW9uU2NhbGUgPSAxOwogCkBA
IC0xOTksMTIgKzIzOSwxNCBAQCB2b2lkIFBlcmlvZGljV2F2ZTo6Y3JlYXRlQmFuZExpbWl0ZWRU
YWJsZXMoY29uc3QgZmxvYXQqIHJlYWxEYXRhLCBjb25zdCBmbG9hdCogaQogICAgICAgICBmcmFt
ZS5kb0ludmVyc2VGRlQoZGF0YSk7CiAKICAgICAgICAgLy8gRm9yIHRoZSBmaXJzdCByYW5nZSAo
d2hpY2ggaGFzIHRoZSBoaWdoZXN0IHBvd2VyKSwgY2FsY3VsYXRlIGl0cyBwZWFrIHZhbHVlIHRo
ZW4gY29tcHV0ZSBub3JtYWxpemF0aW9uIHNjYWxlLgotICAgICAgICBpZiAoIXJhbmdlSW5kZXgp
IHsKLSAgICAgICAgICAgIGZsb2F0IG1heFZhbHVlOwotICAgICAgICAgICAgdm1heG1ndihkYXRh
LCAxLCAmbWF4VmFsdWUsIG1fcGVyaW9kaWNXYXZlU2l6ZSk7Ci0KLSAgICAgICAgICAgIGlmICht
YXhWYWx1ZSkKLSAgICAgICAgICAgICAgICBub3JtYWxpemF0aW9uU2NhbGUgPSAxLjBmIC8gbWF4
VmFsdWU7CisgICAgICAgIGlmIChkaXNhYmxlTm9ybWFsaXphdGlvbiA9PSBTaG91bGREaXNhYmxl
Tm9ybWFsaXphdGlvbjo6Tm8pIHsKKyAgICAgICAgICAgIGlmICghcmFuZ2VJbmRleCkgeworICAg
ICAgICAgICAgICAgIGZsb2F0IG1heFZhbHVlOworICAgICAgICAgICAgICAgIHZtYXhtZ3YoZGF0
YSwgMSwgJm1heFZhbHVlLCBtX3BlcmlvZGljV2F2ZVNpemUpOworCisgICAgICAgICAgICAgICAg
aWYgKG1heFZhbHVlKQorICAgICAgICAgICAgICAgICAgICBub3JtYWxpemF0aW9uU2NhbGUgPSAx
LjBmIC8gbWF4VmFsdWU7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICAvLyBB
cHBseSBub3JtYWxpemF0aW9uIHNjYWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vUGVyaW9kaWNXYXZlLmgKaW5kZXggNzlhMmQ4MmFjNmNjMzFmNTQ2Zjk4ZDQyYTFjNTFm
MjU3NWQ1NjQ0MS4uZTEwZWJkZWNjZTJiMDZiOWMzNTQ3MTUyNzAzMmMwODIzNWNlZTcxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5oCkBAIC0y
OSw2ICsyOSw4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkF1ZGlvQXJyYXkuaCIKKyNp
bmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIlBlcmlvZGljV2F2ZU9wdGlvbnMuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTM2LDYgKzM4LDEwIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQmFzZUF1ZGlvQ29udGV4dDsKKworZW51bSBjbGFz
cyBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbiA6IGJvb2wgeyBObywgWWVzIH07CisKIGNsYXNz
IFBlcmlvZGljV2F2ZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFBlcmlvZGljV2F2ZT4gewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVyaW9kaWNXYXZlPiBjcmVhdGVTaW5lKGZsb2F0IHNh
bXBsZVJhdGUpOwpAQCAtNDQsNyArNTAsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVy
aW9kaWNXYXZlPiBjcmVhdGVUcmlhbmdsZShmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIENy
ZWF0ZXMgYW4gYXJiaXRyYXJ5IHdhdmUgZ2l2ZW4gdGhlIGZyZXF1ZW5jeSBjb21wb25lbnRzIChG
b3VyaWVyIGNvZWZmaWNpZW50cykuCisgICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIG9sZCBjb25z
dHJ1Y3RvciBpcyBwaGFzZWQgb3V0CiAgICAgc3RhdGljIFJlZjxQZXJpb2RpY1dhdmU+IGNyZWF0
ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0MzJBcnJheSYgaW1h
Zyk7CisgICAgCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBjcmVh
dGUoQmFzZUF1ZGlvQ29udGV4dCYsIFBlcmlvZGljV2F2ZU9wdGlvbnMmJiA9IHsgfSk7CiAKICAg
ICAvLyBSZXR1cm5zIHBvaW50ZXJzIHRvIHRoZSBsb3dlciBhbmQgaGlnaGVyIHdhdmUgZGF0YSBm
b3IgdGhlIHBpdGNoIHJhbmdlIGNvbnRhaW5pbmcKICAgICAvLyB0aGUgZ2l2ZW4gZnVuZGFtZW50
YWwgZnJlcXVlbmN5LiBUaGVzZSB0d28gdGFibGVzIGFyZSBpbiBhZGphY2VudCAicGl0Y2giIHJh
bmdlcwpAQCAtOTIsNyArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBudW1iZXJPZlBh
cnRpYWxzRm9yUmFuZ2UodW5zaWduZWQgcmFuZ2VJbmRleCkgY29uc3Q7CiAKICAgICAvLyBDcmVh
dGVzIHRhYmxlcyBiYXNlZCBvbiBudW1iZXJPZkNvbXBvbmVudHMgRm91cmllciBjb2VmZmljaWVu
dHMuCi0gICAgdm9pZCBjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25zdCBmbG9hdCogcmVhbCwg
Y29uc3QgZmxvYXQqIGltYWcsIHVuc2lnbmVkIG51bWJlck9mQ29tcG9uZW50cyk7CisgICAgdm9p
ZCBjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25zdCBmbG9hdCogcmVhbCwgY29uc3QgZmxvYXQq
IGltYWcsIHVuc2lnbmVkIG51bWJlck9mQ29tcG9uZW50cywgU2hvdWxkRGlzYWJsZU5vcm1hbGl6
YXRpb24gPSBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbjo6Tm8pOwogICAgIFZlY3RvcjxzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4gbV9iYW5kTGltaXRlZFRhYmxlczsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbApp
bmRleCAwYmYwOTIyMjFhZDdhZDBhZjY3Y2YyNDQ3OTk2OGM0YzY4OGNjNzU2Li4zNjA4NTA2MTYz
MWY5OTU2NTUzM2FkNjc3NGNmMjJiYzVjMDQ1MmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaWRsCkBAIC0yNyw1ICsyNyw1IEBACiAgICAg
Q29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKIF0g
aW50ZXJmYWNlIFBlcmlvZGljV2F2ZSB7Ci0KKyAgICBbTWF5VGhyb3dFeGNlcHRpb24sIEVuYWJs
ZWRCeVNldHRpbmc9TW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvXSBjb25zdHJ1Y3RvcihCYXNlQXVk
aW9Db250ZXh0IGNvbnRleHQsIG9wdGlvbmFsIFBlcmlvZGljV2F2ZU9wdGlvbnMgb3B0aW9ucyk7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmVDb25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJp
b2RpY1dhdmVDb25zdHJhaW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNjU3NTJiMDNhYzEyMGJhNTk0Yjhm
NTYyZTcyM2M5MzE2NDc2YmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmgKQEAgLTAsMCArMSwzOCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGVyaW9kaWNXYXZlQ29uc3RyYWludHMgeworICAg
IGJvb2wgZGlzYWJsZU5vcm1hbGl6YXRpb24gPSBmYWxzZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBiYjVmODJhNGFiMWMzNWM4ZWRkYjc0MTZmY2RkZGQ4ZjA2NGIwN2UK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Blcmlv
ZGljV2F2ZUNvbnN0cmFpbnRzLmlkbApAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KK1sKKyAg
ICBDb25kaXRpb25hbD1XRUJfQVVESU8sCitdIGRpY3Rpb25hcnkgUGVyaW9kaWNXYXZlQ29uc3Ry
YWludHMgeworICAgIGJvb2xlYW4gZGlzYWJsZU5vcm1hbGl6YXRpb24gPSBmYWxzZTsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9w
dGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0
aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVjODg1ZTBjN2M3ZTJmOTYzMzBjMjYxNWRkMDExNzhiMjhjZjRj
ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bl
cmlvZGljV2F2ZU9wdGlvbnMuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZl
Q29uc3RyYWludHMuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFBlcmlvZGljV2F2ZU9w
dGlvbnMgOiBwdWJsaWMgUGVyaW9kaWNXYXZlQ29uc3RyYWludHMgeworICAgIE9wdGlvbmFsPFZl
Y3RvcjxmbG9hdD4+IHJlYWw7CisgICAgT3B0aW9uYWw8VmVjdG9yPGZsb2F0Pj4gaW1hZzsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2
ZU9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dh
dmVPcHRpb25zLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWI0ZTQ5NmRkMTVlYTE4ODM0NTRmMTBmMGNkZjJh
NGEzZWM0ZGRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmlkbApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
K1sKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCitdIGRpY3Rpb25hcnkgUGVyaW9kaWNXYXZl
T3B0aW9ucyA6IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzIHsKKyAgICBzZXF1ZW5jZTxmbG9hdD4g
cmVhbDsKKyAgICBzZXF1ZW5jZTxmbG9hdD4gaW1hZzsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAKaW5kZXggMGUz
ZTY1YTljZWQzYTI3NTM5YjNhODUxNzEwZDE0ZmM2YjZmMDAzNy4uMDRlOWNhNjRlM2Q4YzY1MWIx
M2I0OGNlYzBiOTgxZDc5YzNmYzFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIldlYktpdEF1ZGlvQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiSlNET01Qcm9taXNl
RGVmZXJyZWQuaCIKKyNpbmNsdWRlICJQZXJpb2RpY1dhdmUuaCIKICNpbmNsdWRlICJXZWJLaXRB
dWRpb1Bhbm5lck5vZGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBA
IC00NSw2ICs0Niw4IEBACiAjaW5jbHVkZSAiTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgi
CiAjZW5kaWYKIAorY29uc3QgdW5zaWduZWQgTWF4UGVyaW9kaWNXYXZlTGVuZ3RoID0gNDA5NjsK
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2Vi
S2l0QXVkaW9Db250ZXh0KTsKQEAgLTE2Nyw2ICsxNzAsMjAgQEAgRXhjZXB0aW9uT3I8UmVmPFdl
YktpdEF1ZGlvUGFubmVyTm9kZT4+IFdlYktpdEF1ZGlvQ29udGV4dDo6Y3JlYXRlV2ViS2l0UGFu
bmVyKCkKICAgICByZXR1cm4gV2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpjcmVhdGUoKnRoaXMsIHNh
bXBsZVJhdGUoKSk7CiB9CiAKK0V4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBXZWJLaXRB
dWRpb0NvbnRleHQ6OmNyZWF0ZVBlcmlvZGljV2F2ZShGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0
MzJBcnJheSYgaW1hZ2luYXJ5KQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Cisg
ICAgCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBpZiAoaXNTdG9wcGVkKCkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgaWYg
KHJlYWwubGVuZ3RoKCkgIT0gaW1hZ2luYXJ5Lmxlbmd0aCgpIHx8IHJlYWwubGVuZ3RoKCkgPiBN
YXhQZXJpb2RpY1dhdmVMZW5ndGggfHwgIXJlYWwubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OworICAgIGxhenlJbml0aWFsaXplKCk7CisgICAg
cmV0dXJuIFBlcmlvZGljV2F2ZTo6Y3JlYXRlKHNhbXBsZVJhdGUoKSwgcmVhbCwgaW1hZ2luYXJ5
KTsKK30KKwogdm9pZCBXZWJLaXRBdWRpb0NvbnRleHQ6OmNsb3NlKERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKGlzT2ZmbGluZUNvbnRleHQoKSB8fCBpc1N0
b3BwZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9X
ZWJLaXRBdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2Vi
S2l0QXVkaW9Db250ZXh0LmgKaW5kZXggZDNkNTY5NmU2ZGFmNWQ0MzA4NmEzZjRmMzllMjZlNDFj
OGQyOGFhNC4uNWY3NWIwNzNkY2EzZjA4OTU3ZGE5Y2U3MzJiMWZhMzg0YmRkMmU0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4
dC5oCkBAIC0zNiw2ICszNiw3IEBAIGNsYXNzIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTsK
IGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9k
ZTsKIGNsYXNzIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOworY2xhc3MgUGVyaW9kaWNXYXZl
OwogY2xhc3MgV2ViS2l0QXVkaW9QYW5uZXJOb2RlOwogCiAvLyBBdWRpb0NvbnRleHQgaXMgdGhl
IGNvcm5lcnN0b25lIG9mIHRoZSB3ZWIgYXVkaW8gQVBJIGFuZCBhbGwgQXVkaW9Ob2RlcyBhcmUg
Y3JlYXRlZCBmcm9tIGl0LgpAQCAtNjAsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9u
T3I8UmVmPE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGU+PiBjcmVhdGVNZWRpYVN0cmVh
bURlc3RpbmF0aW9uKCk7CiAjZW5kaWYKICAgICBFeGNlcHRpb25PcjxSZWY8V2ViS2l0QXVkaW9Q
YW5uZXJOb2RlPj4gY3JlYXRlV2ViS2l0UGFubmVyKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmPFBl
cmlvZGljV2F2ZT4+IGNyZWF0ZVBlcmlvZGljV2F2ZShGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0
MzJBcnJheSYgaW1hZ2luYXJ5KTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFdlYktpdEF1
ZGlvQ29udGV4dChEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmZDAxMjE5OTU0MTk2YWU5
NGMyYTMyZjZiMWE1NDlkYzU2MmIwYjhiLi4xNDY2YTA3Y2YyOWIzZjhlNmQ0YjEwOWUxNDBhZWVl
N2Y4YWM3NTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzE3MCw2ICszMTcwLDggQEAgSlNQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nLmNwcAogSlNQZXJmb3JtYW5jZVNlcnZlclRpbWluZy5jcHAKIEpT
UGVyZm9ybWFuY2VUaW1pbmcuY3BwCiBKU1BlcmlvZGljV2F2ZS5jcHAKK0pTUGVyaW9kaWNXYXZl
Q29uc3RyYWludHMuY3BwCitKU1BlcmlvZGljV2F2ZU9wdGlvbnMuY3BwCiBKU1BpY3R1cmVJblBp
Y3R1cmVXaW5kb3cuY3BwCiBKU1BsYXliYWNrRGlyZWN0aW9uLmNwcAogSlNQb2ludGVyRXZlbnQu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggN2Q5NDM5YTFlZThmNWE3MjFmZjA5M2ZiZGMxM2JjODRkNTg1ZjUyYS4uN2QxNTAy
YjFkMzhjOGU3YjU2ZWJiZDg0YzJhYzhkOTQzMjcxNTI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA0NSw2ICs1MDQ1LDgg
QEAKIAkJRTVCQTdENjMxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCQTdENjIxNTE0MzdD
QTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU3MTQ2N0IzMjRBQkFFRjIwMEZCMkY1MCAvKiBBdWRp
b05vZGVPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovOyB9
OwogCQlFNzE0NjdCNjI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjUyNEFCQUYxRDAw
RkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLzsgfTsKKwkJRTc1NUU4OTIyNEM3NDM0QjAwOUY3
QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzU1RTg4RjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9k
aWNXYXZlQ29uc3RyYWludHMuaCAqLzsgfTsKKwkJRTc1NUU4OTkyNEM3NDYxRDAwOUY3QzIzIC8q
IFBlcmlvZGljV2F2ZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU3NTVFODk2MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRp
b25zLmggKi87IH07CiAJCUU3ODVEOTE1MjRCNEQxQ0EwMDE0REIyMSAvKiBDaGFubmVsQ291bnRN
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1
RDkxMTI0QjREMUIxMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oICovOyB9OwogCQlFNzg1
RDkzNDI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1RDkzMTI0QjYzNkZGMDAx
NERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggKi87IH07CiAJCUU3ODVEOTYxMjRCN0Y3
MzUwMDE0REIyMSAvKiBBdWRpb0NvbnRleHRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1RDk1RjI0QjdGNzM0MDAxNERCMjEgLyogQXVk
aW9Db250ZXh0T3B0aW9ucy5oICovOyB9OwpAQCAtMTU4MDAsNiArMTU4MDIsMTAgQEAKIAkJRTcx
NDY3QjQyNEFCQUYwQjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlv
Tm9kZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNTI0
QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYW5uZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU3MTQ2N0I3MjRBQkFGMkMwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBQYW5uZXJPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTc1NUU4OEYyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU3NTVFODkxMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dh
dmVDb25zdHJhaW50cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNzU1RTg5NjI0Qzc0NjFEMDA5RjdDMjMgLyogUGVy
aW9kaWNXYXZlT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJpb2RpY1dhdmVPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3NTVFODk4MjRDNzQ2MUQwMDlGN0MyMyAv
KiBQZXJpb2RpY1dhdmVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQZXJpb2RpY1dhdmVPcHRpb25zLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTc4NUQ5MTEyNEI0RDFCMTAwMTREQjIxIC8q
IENoYW5uZWxDb3VudE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhbm5lbENvdW50TW9kZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzg1RDkxMzI0QjREMUIxMDAxNERCMjEgLyog
Q2hhbm5lbENvdW50TW9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2hhbm5lbENvdW50TW9kZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3ODVEOTMxMjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVs
SW50ZXJwcmV0YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhbm5lbEludGVycHJldGF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTQ2Myw2ICsyOTQ2OSwxMCBAQAogCQkJ
CUZENTgxRkIxMTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuY3BwICovLAogCQkJCUZE
NTgxRkIyMTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuaCAqLywKIAkJCQlGRDU4MUZC
MzE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmlkbCAqLywKKwkJCQlFNzU1RTg4RjI0
Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCAqLywKKwkJCQlFNzU1
RTg5MTI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsICovLAor
CQkJCUU3NTVFODk2MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRpb25zLmggKi8s
CisJCQkJRTc1NUU4OTgyNEM3NDYxRDAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZU9wdGlvbnMuaWRs
ICovLAogCQkJCUZEMzE1RkYxMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmNw
cCAqLywKIAkJCQlGRDMxNUZGMjEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5o
ICovLAogCQkJCUZEMzE1RkVCMTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2Rl
LmNwcCAqLywKQEAgLTMyNjM3LDYgKzMyNjQ3LDggQEAKIAkJCQk4QUY0RTU1QzExREM1QTYzMDAw
RUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NTRCNUYz
MUUzODM5M0EwMDFENEUwMyAvKiBQZXJmb3JtYW5jZVVzZXJUaW1pbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZENTgxRkI1MTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUU3NTVFODkyMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVDb25z
dHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTc1NUU4OTkyNEM3NDYxRDAwOUY3QzIzIC8q
IFBlcmlvZGljV2F2ZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RDVEQzJFMEY0MjNB
NzMwMDhGMjBGRCAvKiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMURCQzFCNTYyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQyQzgyQjcyMzZBM0Y2QTAwNTVENkM1IC8qIFBp
Y3R1cmVJblBpY3R1cmVTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCmluZGV4IDM2OTM2YTgyZmI1NTkwYTYwY2FjMzcyNjQ4MTY1ZTBjYzE1ZGMyMDMu
LmFlNDNhNDFkZmE1Y2Q1OTJlN2ZmYTRhMmQ1ZDk5OTE5MDk2NjlhNDkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTIzICBDbGFyayBXYW5n
ICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgUGVyaW9kaWNXYXZlIGNv
bnN0cnVjdG9yIGFjY29yZGluZyB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MTUKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBE
dW1lei4KKworICAgICAgICBSZS1iYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdGhhdCBub3cgcGFz
cy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0
dHBzLndpbmRvdy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDctMjAgIENsYXJrIFdhbmcgIDxjbGFy
a193YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXhlcyB0byBtYXRjaCBCYXNlQXVkaW9Db250
ZXh0LmlkbCB0byBzcGVjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDk5ZjRjMGNjMTM3
YTRiYjcxYzBiMzNkYWI0ZDQzZTI5MGI4ZGFlNmYuLjU2ZmY4MDVjYjhiNzViYTUxZDVjYWU2Mzdm
OTZmYTE2ODdmM2I0MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC05NjgsMTMgKzk2
OCwxMyBAQCBQQVNTIEF1ZGlvTm9kZSBpbnRlcmZhY2U6IG5ldyBQYW5uZXJOb2RlKGNvbnRleHQp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2hhbm5lbAogUEFTUyBBdWRpb05vZGUgaW50ZXJmYWNl
OiBuZXcgUGFubmVyTm9kZShjb250ZXh0KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNoYW5uZWxD
b3VudE1vZGUiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBBdWRpb05vZGUgaW50ZXJmYWNl
OiBuZXcgUGFubmVyTm9kZShjb250ZXh0KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNoYW5uZWxJ
bnRlcnByZXRhdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIFBlcmlvZGljV2F2ZSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAot
RkFJTCBQZXJpb2RpY1dhdmUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X2VxdWFsczog
d3JvbmcgdmFsdWUgZm9yIFBlcmlvZGljV2F2ZS5sZW5ndGggZXhwZWN0ZWQgMSBidXQgZ290IDAK
K1BBU1MgUGVyaW9kaWNXYXZlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBQZXJpb2Rp
Y1dhdmUgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAogUEFTUyBQZXJpb2RpY1dhdmUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
CiBQQVNTIFBlcmlvZGljV2F2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCiBQ
QVNTIFBlcmlvZGljV2F2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCi1GQUlM
IFBlcmlvZGljV2F2ZSBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBQZXJpb2RpY1dh
dmUoY29udGV4dCkgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFs
dWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJUeXBlRXJyb3I6IGZ1
bmN0aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgUGVyaW9kaWNXYXZl
KGNvbnRleHQpJykiCi1GQUlMIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUGVyaW9kaWNXYXZlKGNv
bnRleHQpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGlu
ZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiVHlwZUVycm9yOiBmdW5jdGlv
biBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IFBlcmlvZGljV2F2ZShjb250
ZXh0KScpIgorUEFTUyBQZXJpb2RpY1dhdmUgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBu
ZXcgUGVyaW9kaWNXYXZlKGNvbnRleHQpIAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFBl
cmlvZGljV2F2ZShjb250ZXh0KSAKIFBBU1MgU2NyaXB0UHJvY2Vzc29yTm9kZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBTY3Jp
cHRQcm9jZXNzb3JOb2RlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFTUyBTY3JpcHRQcm9j
ZXNzb3JOb2RlIGludGVyZmFjZSBvYmplY3QgbmFtZSAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405045</attachid>
            <date>2020-07-23 09:10:08 -0700</date>
            <delta_ts>2020-07-23 10:06:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214615-20200723121007.patch</filename>
            <type>text/plain</type>
            <size>37509</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVlMDMzNTY2NDhiZjAx
OTczNDgwY2YwMmZhNGNhY2I2NTRmZmM5NS4uOTcyYWUzNmZmYjcyODMxZmY3NTJjOWFjNDdmOWMy
YzUyODA2NjJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA3LTIzICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgUGVyaW9kaWNX
YXZlIGNvbnN0cnVjdG9yIGFjY29yZGluZyB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MTUKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBSZS1iYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdGhhdCBu
b3cgcGFzcy4KKworICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmUgY29uc3RydWN0b3IgYWNjb3Jk
aW5nIHRvIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jcGVyaW9kaWN3YXZl
LgorICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cywgUGVyaW9kaWNXYXZlT3B0
aW9ucyBmaWxlcy4gVXBkYXRlZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVz
CisgICAgICAgIHRvIG5vcm1hbGl6ZSB3YXZlZm9ybSBiYXNlZCBvbiBzcGVjOiBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXVkaW8vI3dhdmVmb3JtLW5vcm1hbGl6YXRpb24uCisgICAgICAgIEFk
ZGVkIHVwZGF0ZWQgY3JlYXRlUGVyaW9kaWNXYXZlIG1ldGhvZCBpbiBCYXNlQXVkaW9Db250ZXh0
LCBhbmQgbW92ZWQgb2xkIGNyZWF0ZVBlcmlvZGljV2F2ZSBtZXRob2QKKyAgICAgICAgSW50byBX
ZWJLaXRBdWRpb0NvbnRleHQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmNyZWF0ZVBlcmlvZGljV2F2ZSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNlQXVkaW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRl
ZFRhYmxlcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYktpdEF1ZGlvQ29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMC0wNy0yMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdWzEuMThdIG1lZGlhc3RyZWFtc3JjIGVs
ZW1lbnQgaGl0cyBhc3NlcnQgaW4gZ3N0IC1jb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJh
NWE0MTFkYmNjYWYyM2M1Zjg5YTc4NDg5YzU4NTQxZmM0NGUwMGUuLmRjZDI1MzJlMGRjMDU2NTMx
MzhkMDRhYTQxZmViYWMyZTIzOGVkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00ODEsNiAr
NDgxLDggQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1
ZGlvL1Bhbm5lck9wdGlvbnMuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9QYW5uaW5nTW9kZWxU
eXBlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAorICAgIE1vZHVs
ZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsCisgICAgTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vU2NyaXB0
UHJvY2Vzc29yTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlk
bAogICAgIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYzkzNjMyOWM0
ZjA2MGIzNDYxOWNhY2M2OWEzNzc4OGUyMTlmZjdlOC4uMDQ0ODQ3ZTFjZTU2MGQ4YWM2MmU2MWZk
YjFkOWU5NDgyNDVkODQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CkBAIC0zMzAsNiArMzMwLDggQEAgJChQUk9KRUNUX0RJUikvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9QYW5uZXJPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QYW5u
aW5nTW9kZWxUeXBlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNv
bnN0cmFpbnRzLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dh
dmVPcHRpb25zLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVy
Tm9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250
ZXh0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCBjMDAyNTk1ZTYxMTUxMTMxMmQwZTcwZTVkMzVlYWMyMjI2ZTlhYmUxLi43NThk
OGZjMDk4MWZkNDk0M2U1YWJlYzViOTk5ZWY5YTlmNWIxNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTMxNiw2ICsxMzE2LDEw
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyZm9y
bWFuY2VUaW1pbmcuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1BlcmZvcm1hbmNlVGltaW5nLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUGVyaW9kaWNXYXZlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmUuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyaW9k
aWNXYXZlQ29uc3RyYWludHMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVPcHRpb25zLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJpb2RpY1dhdmVPcHRpb25zLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGljdHVyZUluUGljdHVyZVdp
bmRvdy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UGljdHVyZUluUGljdHVyZVdpbmRvdy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1BsYXliYWNrRGlyZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggZDY1ZmMyZThiN2E3MzY2NGI1MGJkNmU1ODNlNjdlNjE4ZGEzYjY4ZC4u
MjIyNDQwMTc5ODFkNTMzYjk5Y2YxNmQ0ODcxNDY4MjMwNjkzNWZhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC00MTMsNiArNDEzLDggQEAgSlNfQklORElOR19JRExTID0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJPcHRpb25zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5pbmdNb2RlbFR5cGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaWRsIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwCmluZGV4IGM5N2YxODhlNDkwMmM0NGY3NzlhNGRmNDk1N2NiNzNjNTUyZjViODMuLjdiZDU2
NDU4YTExM2I2M2YyOTI3MTIxYTU4ZmJjMzExZDU2YjliMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtNjMsNiAr
NjMsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYW5uZXJOb2RlLmgiCiAjaW5j
bHVkZSAiUGVyaW9kaWNXYXZlLmgiCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZlT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRQcm9jZXNzb3JOb2RlLmgiCkBAIC05MSw4
ICs5Miw2IEBACiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKLWNvbnN0IHVuc2lnbmVkIE1heFBlcmlvZGljV2F2ZUxlbmd0aCA9IDQwOTY7
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEJh
c2VBdWRpb0NvbnRleHQpOwpAQCAtNjM1LDE4ICs2MzQsMjMgQEAgRXhjZXB0aW9uT3I8UmVmPE9z
Y2lsbGF0b3JOb2RlPj4gQmFzZUF1ZGlvQ29udGV4dDo6Y3JlYXRlT3NjaWxsYXRvcigpCiAgICAg
cmV0dXJuIG5vZGU7CiB9CiAKLUV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBCYXNlQXVk
aW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUoRmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMy
QXJyYXkmIGltYWdpbmFyeSkKK0V4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBCYXNlQXVk
aW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUoVmVjdG9yPGZsb2F0PiYmIHJlYWwsIFZlY3Rv
cjxmbG9hdD4mJiBpbWFnaW5hcnksIGNvbnN0IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cykKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogICAgIAogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKG1faXNTdG9wU2NoZWR1bGVkKQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLQotICAgIGlmIChyZWFs
Lmxlbmd0aCgpICE9IGltYWdpbmFyeS5sZW5ndGgoKSB8fCAocmVhbC5sZW5ndGgoKSA+IE1heFBl
cmlvZGljV2F2ZUxlbmd0aCkgfHwgIXJlYWwubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbmRleFNpemVFcnJvciB9OworICAgIAorICAgIGlmIChyZWFsLnNpemUoKSAhPSBp
bWFnaW5hcnkuc2l6ZSgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJy
b3IsICJyZWFsIGFuZCBpbWFnaW5hcnkgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCJfcyB9Owor
ICAgIAorICAgIFBlcmlvZGljV2F2ZU9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLnJlYWwg
PSBXVEZNb3ZlKHJlYWwpOworICAgIG9wdGlvbnMuaW1hZyA9IFdURk1vdmUoaW1hZ2luYXJ5KTsK
KyAgICBvcHRpb25zLmRpc2FibGVOb3JtYWxpemF0aW9uID0gY29uc3RyYWludHMuZGlzYWJsZU5v
cm1hbGl6YXRpb247CiAgICAgbGF6eUluaXRpYWxpemUoKTsKLSAgICByZXR1cm4gUGVyaW9kaWNX
YXZlOjpjcmVhdGUoc2FtcGxlUmF0ZSgpLCByZWFsLCBpbWFnaW5hcnkpOworICAgIHJldHVybiBQ
ZXJpb2RpY1dhdmU6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShvcHRpb25zKSk7CiB9CiAKIHZvaWQg
QmFzZUF1ZGlvQ29udGV4dDo6bm90aWZ5Tm9kZUZpbmlzaGVkUHJvY2Vzc2luZyhBdWRpb05vZGUq
IG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5oCmluZGV4IDQ5ZTdlM2E5M2VkZTU3MzJiNDg4MTJhZTI4NGJiZjhmZGQ5YWU2MDIu
LjRhOGEzNDU3ZDhjOTNiMzQxOGM0MThkZTc1ODQxYzljMzA4MmU2YjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJNZWRpYUNhblN0
YXJ0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiUGVy
aW9kaWNXYXZlQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJWaXNpYmls
aXR5Q2hhbmdlQ2xpZW50LmgiCkBAIC0xNTIsNyArMTUzLDcgQEAgcHVibGljOgogICAgIEV4Y2Vw
dGlvbk9yPFJlZjxDaGFubmVsU3BsaXR0ZXJOb2RlPj4gY3JlYXRlQ2hhbm5lbFNwbGl0dGVyKHNp
emVfdCBudW1iZXJPZk91dHB1dHMpOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxDaGFubmVsTWVyZ2Vy
Tm9kZT4+IGNyZWF0ZUNoYW5uZWxNZXJnZXIoc2l6ZV90IG51bWJlck9mSW5wdXRzKTsKICAgICBF
eGNlcHRpb25PcjxSZWY8T3NjaWxsYXRvck5vZGU+PiBjcmVhdGVPc2NpbGxhdG9yKCk7Ci0gICAg
RXhjZXB0aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IGNyZWF0ZVBlcmlvZGljV2F2ZShGbG9hdDMy
QXJyYXkmIHJlYWwsIEZsb2F0MzJBcnJheSYgaW1hZ2luYXJ5KTsKKyAgICBFeGNlcHRpb25PcjxS
ZWY8UGVyaW9kaWNXYXZlPj4gY3JlYXRlUGVyaW9kaWNXYXZlKFZlY3RvcjxmbG9hdD4mJiByZWFs
LCBWZWN0b3I8ZmxvYXQ+JiYgaW1hZ2luYXJ5LCBjb25zdCBQZXJpb2RpY1dhdmVDb25zdHJhaW50
cyYgPSB7IH0pOwogCiAgICAgLy8gV2hlbiBhIHNvdXJjZSBub2RlIGhhcyBubyBtb3JlIHByb2Nl
c3NpbmcgdG8gZG8gKGhhcyBmaW5pc2hlZCBwbGF5aW5nKSwgdGhlbiBpdCB0ZWxscyB0aGUgY29u
dGV4dCB0byBkZXJlZmVyZW5jZSBpdC4KICAgICB2b2lkIG5vdGlmeU5vZGVGaW5pc2hlZFByb2Nl
c3NpbmcoQXVkaW9Ob2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAppbmRleCA0MzUwYjFlMGNlYjUzNWExYTdiOTAxMDg4
Yjg0NmZmMWIwOWEyMzU0Li4xOTg1MzI0MGRlZWVlMGFjMWQyODZiMDI0MWIyZThkZTIwODRiOTYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5pZGwKQEAgLTY1LDcgKzY1LDcgQEAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIEFu
YWx5c2VyTm9kZSBjcmVhdGVBbmFseXNlcigpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU2Ny
aXB0UHJvY2Vzc29yTm9kZSBjcmVhdGVTY3JpcHRQcm9jZXNzb3Iob3B0aW9uYWwgdW5zaWduZWQg
bG9uZyBidWZmZXJTaXplID0gMCwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBudW1iZXJPZklucHV0
Q2hhbm5lbHMgPSAyLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMgPSAyKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIE9zY2lsbGF0b3JOb2RlIGNyZWF0ZU9z
Y2lsbGF0b3IoKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFBlcmlvZGljV2F2ZSBjcmVhdGVQ
ZXJpb2RpY1dhdmUoRmxvYXQzMkFycmF5IHJlYWwsIEZsb2F0MzJBcnJheSBpbWFnKTsKKyAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIFBlcmlvZGljV2F2ZSBjcmVhdGVQZXJpb2RpY1dhdmUoc2VxdWVu
Y2U8ZmxvYXQ+IHJlYWwsIHNlcXVlbmNlPGZsb2F0PiBpbWFnLCBvcHRpb25hbCBQZXJpb2RpY1dh
dmVPcHRpb25zIG9wdGlvbnMpOwogCiAgICAgLy8gQ2hhbm5lbCBzcGxpdHRpbmcgYW5kIG1lcmdp
bmcKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIENoYW5uZWxTcGxpdHRlck5vZGUgY3JlYXRlQ2hh
bm5lbFNwbGl0dGVyKG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRzID0gNik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5jcHAK
aW5kZXggZWM5YTE3YzRmNTZlYjk5NjZkYzE3NjI3ZTkzNDA1YmExZmQ0OGM0Ni4uMDg2NmY5NTFl
NDk2YzlmNGZjMmIyMDBhYTJhMDk4Y2NiNGRkYWQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogCiAj
aW5jbHVkZSAiUGVyaW9kaWNXYXZlLmgiCiAKKyNpbmNsdWRlICJCYXNlQXVkaW9Db250ZXh0Lmgi
CiAjaW5jbHVkZSAiRkZURnJhbWUuaCIKICNpbmNsdWRlICJWZWN0b3JNYXRoLmgiCiAjaW5jbHVk
ZSA8YWxnb3JpdGhtPgpAQCAtNDQsNiArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
CiB1c2luZyBuYW1lc3BhY2UgVmVjdG9yTWF0aDsKIAorLy8gRklYTUU6IFJlbW92ZSBvbmNlIG9s
ZCBjb25zdHJ1Y3RvciBpcyBwaGFzZWQgb3V0CiBSZWY8UGVyaW9kaWNXYXZlPiBQZXJpb2RpY1dh
dmU6OmNyZWF0ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0MzJB
cnJheSYgaW1hZ2luYXJ5KQogewogICAgIEFTU0VSVChyZWFsLmxlbmd0aCgpID09IGltYWdpbmFy
eS5sZW5ndGgoKSk7CkBAIC01Myw2ICs1NSw0NCBAQCBSZWY8UGVyaW9kaWNXYXZlPiBQZXJpb2Rp
Y1dhdmU6OmNyZWF0ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMyQXJyYXkmIHJlYWwsIEZsbwog
ICAgIHJldHVybiB3YXZlVGFibGU7CiB9CiAKK0V4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+
PiBQZXJpb2RpY1dhdmU6OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBQZXJpb2Rp
Y1dhdmVPcHRpb25zJiYgb3B0aW9ucykKK3sKKyAgICBWZWN0b3I8ZmxvYXQ+IHJlYWw7CisgICAg
VmVjdG9yPGZsb2F0PiBpbWFnOworICAgIAorICAgIGlmIChvcHRpb25zLnJlYWwgJiYgb3B0aW9u
cy5pbWFnKSB7CisgICAgICAgIGlmIChvcHRpb25zLnJlYWwtPnNpemUoKSAhPSBvcHRpb25zLmlt
YWctPnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJv
ciwgInJlYWwgYW5kIGltYWcgaGF2ZSBkaWZmZXJlbnQgbGVuZ3RocyJfcyB9OworICAgICAgICBp
ZiAob3B0aW9ucy5yZWFsLT5zaXplKCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEluZGV4U2l6ZUVycm9yLCAicmVhbCdzIGxlbmd0aCBjYW5ub3QgYmUgbGVzcyB0aGFuIDIi
X3MgfTsKKyAgICAgICAgaWYgKG9wdGlvbnMuaW1hZy0+c2l6ZSgpIDwgMikKKyAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciwgImltYWcncyBsZW5ndGggY2Fubm90
IGJlIGxlc3MgdGhhbiAyIl9zIH07CisgICAgICAgIHJlYWwgPSBXVEZNb3ZlKCpvcHRpb25zLnJl
YWwpOworICAgICAgICBpbWFnID0gV1RGTW92ZSgqb3B0aW9ucy5pbWFnKTsKKyAgICB9IGVsc2Ug
aWYgKG9wdGlvbnMucmVhbCkgeworICAgICAgICBpZiAob3B0aW9ucy5yZWFsLT5zaXplKCkgPCAy
KQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAicmVhbCdz
IGxlbmd0aCBjYW5ub3QgYmUgbGVzcyB0aGFuIDIiX3MgfTsKKyAgICAgICAgcmVhbCA9IFdURk1v
dmUoKm9wdGlvbnMucmVhbCk7CisgICAgICAgIGltYWcuZmlsbCgwLCByZWFsLnNpemUoKSk7Cisg
ICAgfSBlbHNlIGlmIChvcHRpb25zLmltYWcpIHsKKyAgICAgICAgaWYgKG9wdGlvbnMuaW1hZy0+
c2l6ZSgpIDwgMikKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJv
ciwgImltYWcncyBsZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiAyIl9zIH07CisgICAgICAgIGlt
YWcgPSBXVEZNb3ZlKCpvcHRpb25zLmltYWcpOworICAgICAgICByZWFsLmZpbGwoMCwgaW1hZy5z
aXplKCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJlYWwuZmlsbCgwLCAyKTsKKyAgICAgICAg
aW1hZy5maWxsKDAsIDIpOworICAgICAgICBpbWFnWzFdID0gMTsKKyAgICB9CisKKyAgICByZWFs
WzBdID0gMDsKKyAgICBpbWFnWzBdID0gMDsKKyAgICAKKyAgICBhdXRvIHdhdmVUYWJsZSA9IGFk
b3B0UmVmKCpuZXcgUGVyaW9kaWNXYXZlKGNvbnRleHQuc2FtcGxlUmF0ZSgpKSk7CisgICAgd2F2
ZVRhYmxlLT5jcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhyZWFsLmRhdGEoKSwgaW1hZy5kYXRhKCks
IHJlYWwuc2l6ZSgpLCBvcHRpb25zLmRpc2FibGVOb3JtYWxpemF0aW9uID8gU2hvdWxkRGlzYWJs
ZU5vcm1hbGl6YXRpb246OlllcyA6IFNob3VsZERpc2FibGVOb3JtYWxpemF0aW9uOjpObyk7Cisg
ICAgcmV0dXJuIHdhdmVUYWJsZTsKK30KKwogUmVmPFBlcmlvZGljV2F2ZT4gUGVyaW9kaWNXYXZl
OjpjcmVhdGVTaW5lKGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgUmVmPFBlcmlvZGljV2F2ZT4g
d2F2ZVRhYmxlID0gYWRvcHRSZWYoKm5ldyBQZXJpb2RpY1dhdmUoc2FtcGxlUmF0ZSkpOwpAQCAt
MTQyLDcgKzE4Miw3IEBAIHVuc2lnbmVkIFBlcmlvZGljV2F2ZTo6bnVtYmVyT2ZQYXJ0aWFsc0Zv
clJhbmdlKHVuc2lnbmVkIHJhbmdlSW5kZXgpIGNvbnN0CiAvLyBDb252ZXJ0IGludG8gdGltZS1k
b21haW4gd2F2ZSB0YWJsZXMuCiAvLyBPbmUgdGFibGUgaXMgY3JlYXRlZCBmb3IgZWFjaCByYW5n
ZSBmb3Igbm9uLWFsaWFzaW5nIHBsYXliYWNrIGF0IGRpZmZlcmVudCBwbGF5YmFjayByYXRlcy4K
IC8vIFRodXMsIGhpZ2hlciByYW5nZXMgaGF2ZSBtb3JlIGhpZ2gtZnJlcXVlbmN5IHBhcnRpYWxz
IGN1bGxlZCBvdXQuCi12b2lkIFBlcmlvZGljV2F2ZTo6Y3JlYXRlQmFuZExpbWl0ZWRUYWJsZXMo
Y29uc3QgZmxvYXQqIHJlYWxEYXRhLCBjb25zdCBmbG9hdCogaW1hZ0RhdGEsIHVuc2lnbmVkIG51
bWJlck9mQ29tcG9uZW50cykKK3ZvaWQgUGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRlZFRh
Ymxlcyhjb25zdCBmbG9hdCogcmVhbERhdGEsIGNvbnN0IGZsb2F0KiBpbWFnRGF0YSwgdW5zaWdu
ZWQgbnVtYmVyT2ZDb21wb25lbnRzLCBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbiBkaXNhYmxl
Tm9ybWFsaXphdGlvbikKIHsKICAgICBmbG9hdCBub3JtYWxpemF0aW9uU2NhbGUgPSAxOwogCkBA
IC0xOTksMTIgKzIzOSwxNCBAQCB2b2lkIFBlcmlvZGljV2F2ZTo6Y3JlYXRlQmFuZExpbWl0ZWRU
YWJsZXMoY29uc3QgZmxvYXQqIHJlYWxEYXRhLCBjb25zdCBmbG9hdCogaQogICAgICAgICBmcmFt
ZS5kb0ludmVyc2VGRlQoZGF0YSk7CiAKICAgICAgICAgLy8gRm9yIHRoZSBmaXJzdCByYW5nZSAo
d2hpY2ggaGFzIHRoZSBoaWdoZXN0IHBvd2VyKSwgY2FsY3VsYXRlIGl0cyBwZWFrIHZhbHVlIHRo
ZW4gY29tcHV0ZSBub3JtYWxpemF0aW9uIHNjYWxlLgotICAgICAgICBpZiAoIXJhbmdlSW5kZXgp
IHsKLSAgICAgICAgICAgIGZsb2F0IG1heFZhbHVlOwotICAgICAgICAgICAgdm1heG1ndihkYXRh
LCAxLCAmbWF4VmFsdWUsIG1fcGVyaW9kaWNXYXZlU2l6ZSk7Ci0KLSAgICAgICAgICAgIGlmICht
YXhWYWx1ZSkKLSAgICAgICAgICAgICAgICBub3JtYWxpemF0aW9uU2NhbGUgPSAxLjBmIC8gbWF4
VmFsdWU7CisgICAgICAgIGlmIChkaXNhYmxlTm9ybWFsaXphdGlvbiA9PSBTaG91bGREaXNhYmxl
Tm9ybWFsaXphdGlvbjo6Tm8pIHsKKyAgICAgICAgICAgIGlmICghcmFuZ2VJbmRleCkgeworICAg
ICAgICAgICAgICAgIGZsb2F0IG1heFZhbHVlOworICAgICAgICAgICAgICAgIHZtYXhtZ3YoZGF0
YSwgMSwgJm1heFZhbHVlLCBtX3BlcmlvZGljV2F2ZVNpemUpOworCisgICAgICAgICAgICAgICAg
aWYgKG1heFZhbHVlKQorICAgICAgICAgICAgICAgICAgICBub3JtYWxpemF0aW9uU2NhbGUgPSAx
LjBmIC8gbWF4VmFsdWU7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICAvLyBB
cHBseSBub3JtYWxpemF0aW9uIHNjYWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vUGVyaW9kaWNXYXZlLmgKaW5kZXggNzlhMmQ4MmFjNmNjMzFmNTQ2Zjk4ZDQyYTFjNTFm
MjU3NWQ1NjQ0MS4uZTEwZWJkZWNjZTJiMDZiOWMzNTQ3MTUyNzAzMmMwODIzNWNlZTcxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5oCkBAIC0y
OSw2ICsyOSw4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkF1ZGlvQXJyYXkuaCIKKyNp
bmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIlBlcmlvZGljV2F2ZU9wdGlvbnMuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTM2LDYgKzM4LDEwIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQmFzZUF1ZGlvQ29udGV4dDsKKworZW51bSBjbGFz
cyBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbiA6IGJvb2wgeyBObywgWWVzIH07CisKIGNsYXNz
IFBlcmlvZGljV2F2ZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFBlcmlvZGljV2F2ZT4gewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVyaW9kaWNXYXZlPiBjcmVhdGVTaW5lKGZsb2F0IHNh
bXBsZVJhdGUpOwpAQCAtNDQsNyArNTAsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVy
aW9kaWNXYXZlPiBjcmVhdGVUcmlhbmdsZShmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIENy
ZWF0ZXMgYW4gYXJiaXRyYXJ5IHdhdmUgZ2l2ZW4gdGhlIGZyZXF1ZW5jeSBjb21wb25lbnRzIChG
b3VyaWVyIGNvZWZmaWNpZW50cykuCisgICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIG9sZCBjb25z
dHJ1Y3RvciBpcyBwaGFzZWQgb3V0CiAgICAgc3RhdGljIFJlZjxQZXJpb2RpY1dhdmU+IGNyZWF0
ZShmbG9hdCBzYW1wbGVSYXRlLCBGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0MzJBcnJheSYgaW1h
Zyk7CisgICAgCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBjcmVh
dGUoQmFzZUF1ZGlvQ29udGV4dCYsIFBlcmlvZGljV2F2ZU9wdGlvbnMmJiA9IHsgfSk7CiAKICAg
ICAvLyBSZXR1cm5zIHBvaW50ZXJzIHRvIHRoZSBsb3dlciBhbmQgaGlnaGVyIHdhdmUgZGF0YSBm
b3IgdGhlIHBpdGNoIHJhbmdlIGNvbnRhaW5pbmcKICAgICAvLyB0aGUgZ2l2ZW4gZnVuZGFtZW50
YWwgZnJlcXVlbmN5LiBUaGVzZSB0d28gdGFibGVzIGFyZSBpbiBhZGphY2VudCAicGl0Y2giIHJh
bmdlcwpAQCAtOTIsNyArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBudW1iZXJPZlBh
cnRpYWxzRm9yUmFuZ2UodW5zaWduZWQgcmFuZ2VJbmRleCkgY29uc3Q7CiAKICAgICAvLyBDcmVh
dGVzIHRhYmxlcyBiYXNlZCBvbiBudW1iZXJPZkNvbXBvbmVudHMgRm91cmllciBjb2VmZmljaWVu
dHMuCi0gICAgdm9pZCBjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25zdCBmbG9hdCogcmVhbCwg
Y29uc3QgZmxvYXQqIGltYWcsIHVuc2lnbmVkIG51bWJlck9mQ29tcG9uZW50cyk7CisgICAgdm9p
ZCBjcmVhdGVCYW5kTGltaXRlZFRhYmxlcyhjb25zdCBmbG9hdCogcmVhbCwgY29uc3QgZmxvYXQq
IGltYWcsIHVuc2lnbmVkIG51bWJlck9mQ29tcG9uZW50cywgU2hvdWxkRGlzYWJsZU5vcm1hbGl6
YXRpb24gPSBTaG91bGREaXNhYmxlTm9ybWFsaXphdGlvbjo6Tm8pOwogICAgIFZlY3RvcjxzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4gbV9iYW5kTGltaXRlZFRhYmxlczsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbApp
bmRleCAwYmYwOTIyMjFhZDdhZDBhZjY3Y2YyNDQ3OTk2OGM0YzY4OGNjNzU2Li4zNjA4NTA2MTYz
MWY5OTU2NTUzM2FkNjc3NGNmMjJiYzVjMDQ1MmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaWRsCkBAIC0yNyw1ICsyNyw1IEBACiAgICAg
Q29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKIF0g
aW50ZXJmYWNlIFBlcmlvZGljV2F2ZSB7Ci0KKyAgICBbTWF5VGhyb3dFeGNlcHRpb24sIEVuYWJs
ZWRCeVNldHRpbmc9TW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvXSBjb25zdHJ1Y3RvcihCYXNlQXVk
aW9Db250ZXh0IGNvbnRleHQsIG9wdGlvbmFsIFBlcmlvZGljV2F2ZU9wdGlvbnMgb3B0aW9ucyk7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmVDb25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJp
b2RpY1dhdmVDb25zdHJhaW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNjU3NTJiMDNhYzEyMGJhNTk0Yjhm
NTYyZTcyM2M5MzE2NDc2YmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmgKQEAgLTAsMCArMSwzOCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGVyaW9kaWNXYXZlQ29uc3RyYWludHMgeworICAg
IGJvb2wgZGlzYWJsZU5vcm1hbGl6YXRpb24gPSBmYWxzZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBiYjVmODJhNGFiMWMzNWM4ZWRkYjc0MTZmY2RkZGQ4ZjA2NGIwN2UK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Blcmlv
ZGljV2F2ZUNvbnN0cmFpbnRzLmlkbApAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KK1sKKyAg
ICBDb25kaXRpb25hbD1XRUJfQVVESU8sCitdIGRpY3Rpb25hcnkgUGVyaW9kaWNXYXZlQ29uc3Ry
YWludHMgeworICAgIGJvb2xlYW4gZGlzYWJsZU5vcm1hbGl6YXRpb24gPSBmYWxzZTsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9w
dGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0
aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVjODg1ZTBjN2M3ZTJmOTYzMzBjMjYxNWRkMDExNzhiMjhjZjRj
ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bl
cmlvZGljV2F2ZU9wdGlvbnMuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAiUGVyaW9kaWNXYXZl
Q29uc3RyYWludHMuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFBlcmlvZGljV2F2ZU9w
dGlvbnMgOiBwdWJsaWMgUGVyaW9kaWNXYXZlQ29uc3RyYWludHMgeworICAgIE9wdGlvbmFsPFZl
Y3RvcjxmbG9hdD4+IHJlYWw7CisgICAgT3B0aW9uYWw8VmVjdG9yPGZsb2F0Pj4gaW1hZzsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2
ZU9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dh
dmVPcHRpb25zLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWI0ZTQ5NmRkMTVlYTE4ODM0NTRmMTBmMGNkZjJh
NGEzZWM0ZGRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmlkbApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
K1sKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCitdIGRpY3Rpb25hcnkgUGVyaW9kaWNXYXZl
T3B0aW9ucyA6IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzIHsKKyAgICBzZXF1ZW5jZTxmbG9hdD4g
cmVhbDsKKyAgICBzZXF1ZW5jZTxmbG9hdD4gaW1hZzsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAKaW5kZXggMGUz
ZTY1YTljZWQzYTI3NTM5YjNhODUxNzEwZDE0ZmM2YjZmMDAzNy4uMDRlOWNhNjRlM2Q4YzY1MWIx
M2I0OGNlYzBiOTgxZDc5YzNmYzFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIldlYktpdEF1ZGlvQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiSlNET01Qcm9taXNl
RGVmZXJyZWQuaCIKKyNpbmNsdWRlICJQZXJpb2RpY1dhdmUuaCIKICNpbmNsdWRlICJXZWJLaXRB
dWRpb1Bhbm5lck5vZGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBA
IC00NSw2ICs0Niw4IEBACiAjaW5jbHVkZSAiTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgi
CiAjZW5kaWYKIAorY29uc3QgdW5zaWduZWQgTWF4UGVyaW9kaWNXYXZlTGVuZ3RoID0gNDA5NjsK
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2Vi
S2l0QXVkaW9Db250ZXh0KTsKQEAgLTE2Nyw2ICsxNzAsMjAgQEAgRXhjZXB0aW9uT3I8UmVmPFdl
YktpdEF1ZGlvUGFubmVyTm9kZT4+IFdlYktpdEF1ZGlvQ29udGV4dDo6Y3JlYXRlV2ViS2l0UGFu
bmVyKCkKICAgICByZXR1cm4gV2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpjcmVhdGUoKnRoaXMsIHNh
bXBsZVJhdGUoKSk7CiB9CiAKK0V4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBXZWJLaXRB
dWRpb0NvbnRleHQ6OmNyZWF0ZVBlcmlvZGljV2F2ZShGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0
MzJBcnJheSYgaW1hZ2luYXJ5KQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Cisg
ICAgCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBpZiAoaXNTdG9wcGVkKCkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgaWYg
KHJlYWwubGVuZ3RoKCkgIT0gaW1hZ2luYXJ5Lmxlbmd0aCgpIHx8IHJlYWwubGVuZ3RoKCkgPiBN
YXhQZXJpb2RpY1dhdmVMZW5ndGggfHwgIXJlYWwubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OworICAgIGxhenlJbml0aWFsaXplKCk7CisgICAg
cmV0dXJuIFBlcmlvZGljV2F2ZTo6Y3JlYXRlKHNhbXBsZVJhdGUoKSwgcmVhbCwgaW1hZ2luYXJ5
KTsKK30KKwogdm9pZCBXZWJLaXRBdWRpb0NvbnRleHQ6OmNsb3NlKERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKGlzT2ZmbGluZUNvbnRleHQoKSB8fCBpc1N0
b3BwZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9X
ZWJLaXRBdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2Vi
S2l0QXVkaW9Db250ZXh0LmgKaW5kZXggZDNkNTY5NmU2ZGFmNWQ0MzA4NmEzZjRmMzllMjZlNDFj
OGQyOGFhNC4uNWY3NWIwNzNkY2EzZjA4OTU3ZGE5Y2U3MzJiMWZhMzg0YmRkMmU0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4
dC5oCkBAIC0zNiw2ICszNiw3IEBAIGNsYXNzIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTsK
IGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9k
ZTsKIGNsYXNzIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOworY2xhc3MgUGVyaW9kaWNXYXZl
OwogY2xhc3MgV2ViS2l0QXVkaW9QYW5uZXJOb2RlOwogCiAvLyBBdWRpb0NvbnRleHQgaXMgdGhl
IGNvcm5lcnN0b25lIG9mIHRoZSB3ZWIgYXVkaW8gQVBJIGFuZCBhbGwgQXVkaW9Ob2RlcyBhcmUg
Y3JlYXRlZCBmcm9tIGl0LgpAQCAtNjAsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9u
T3I8UmVmPE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGU+PiBjcmVhdGVNZWRpYVN0cmVh
bURlc3RpbmF0aW9uKCk7CiAjZW5kaWYKICAgICBFeGNlcHRpb25PcjxSZWY8V2ViS2l0QXVkaW9Q
YW5uZXJOb2RlPj4gY3JlYXRlV2ViS2l0UGFubmVyKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmPFBl
cmlvZGljV2F2ZT4+IGNyZWF0ZVBlcmlvZGljV2F2ZShGbG9hdDMyQXJyYXkmIHJlYWwsIEZsb2F0
MzJBcnJheSYgaW1hZ2luYXJ5KTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFdlYktpdEF1
ZGlvQ29udGV4dChEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmZDAxMjE5OTU0MTk2YWU5
NGMyYTMyZjZiMWE1NDlkYzU2MmIwYjhiLi4xNDY2YTA3Y2YyOWIzZjhlNmQ0YjEwOWUxNDBhZWVl
N2Y4YWM3NTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzE3MCw2ICszMTcwLDggQEAgSlNQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nLmNwcAogSlNQZXJmb3JtYW5jZVNlcnZlclRpbWluZy5jcHAKIEpT
UGVyZm9ybWFuY2VUaW1pbmcuY3BwCiBKU1BlcmlvZGljV2F2ZS5jcHAKK0pTUGVyaW9kaWNXYXZl
Q29uc3RyYWludHMuY3BwCitKU1BlcmlvZGljV2F2ZU9wdGlvbnMuY3BwCiBKU1BpY3R1cmVJblBp
Y3R1cmVXaW5kb3cuY3BwCiBKU1BsYXliYWNrRGlyZWN0aW9uLmNwcAogSlNQb2ludGVyRXZlbnQu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggN2Q5NDM5YTFlZThmNWE3MjFmZjA5M2ZiZGMxM2JjODRkNTg1ZjUyYS4uN2QxNTAy
YjFkMzhjOGU3YjU2ZWJiZDg0YzJhYzhkOTQzMjcxNTI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA0NSw2ICs1MDQ1LDgg
QEAKIAkJRTVCQTdENjMxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCQTdENjIxNTE0MzdD
QTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU3MTQ2N0IzMjRBQkFFRjIwMEZCMkY1MCAvKiBBdWRp
b05vZGVPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovOyB9
OwogCQlFNzE0NjdCNjI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjUyNEFCQUYxRDAw
RkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLzsgfTsKKwkJRTc1NUU4OTIyNEM3NDM0QjAwOUY3
QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzU1RTg4RjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9k
aWNXYXZlQ29uc3RyYWludHMuaCAqLzsgfTsKKwkJRTc1NUU4OTkyNEM3NDYxRDAwOUY3QzIzIC8q
IFBlcmlvZGljV2F2ZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU3NTVFODk2MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRp
b25zLmggKi87IH07CiAJCUU3ODVEOTE1MjRCNEQxQ0EwMDE0REIyMSAvKiBDaGFubmVsQ291bnRN
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1
RDkxMTI0QjREMUIxMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oICovOyB9OwogCQlFNzg1
RDkzNDI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1RDkzMTI0QjYzNkZGMDAx
NERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggKi87IH07CiAJCUU3ODVEOTYxMjRCN0Y3
MzUwMDE0REIyMSAvKiBBdWRpb0NvbnRleHRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1RDk1RjI0QjdGNzM0MDAxNERCMjEgLyogQXVk
aW9Db250ZXh0T3B0aW9ucy5oICovOyB9OwpAQCAtMTU4MDAsNiArMTU4MDIsMTAgQEAKIAkJRTcx
NDY3QjQyNEFCQUYwQjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlv
Tm9kZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNTI0
QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYW5uZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU3MTQ2N0I3MjRBQkFGMkMwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBQYW5uZXJPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTc1NUU4OEYyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU3NTVFODkxMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dh
dmVDb25zdHJhaW50cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNzU1RTg5NjI0Qzc0NjFEMDA5RjdDMjMgLyogUGVy
aW9kaWNXYXZlT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJpb2RpY1dhdmVPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3NTVFODk4MjRDNzQ2MUQwMDlGN0MyMyAv
KiBQZXJpb2RpY1dhdmVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQZXJpb2RpY1dhdmVPcHRpb25zLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTc4NUQ5MTEyNEI0RDFCMTAwMTREQjIxIC8q
IENoYW5uZWxDb3VudE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhbm5lbENvdW50TW9kZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzg1RDkxMzI0QjREMUIxMDAxNERCMjEgLyog
Q2hhbm5lbENvdW50TW9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2hhbm5lbENvdW50TW9kZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3ODVEOTMxMjRCNjM2RkYwMDE0REIyMSAvKiBDaGFubmVs
SW50ZXJwcmV0YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhbm5lbEludGVycHJldGF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTQ2Myw2ICsyOTQ2OSwxMCBAQAogCQkJ
CUZENTgxRkIxMTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuY3BwICovLAogCQkJCUZE
NTgxRkIyMTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuaCAqLywKIAkJCQlGRDU4MUZC
MzE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmlkbCAqLywKKwkJCQlFNzU1RTg4RjI0
Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCAqLywKKwkJCQlFNzU1
RTg5MTI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsICovLAor
CQkJCUU3NTVFODk2MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRpb25zLmggKi8s
CisJCQkJRTc1NUU4OTgyNEM3NDYxRDAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZU9wdGlvbnMuaWRs
ICovLAogCQkJCUZEMzE1RkYxMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmNw
cCAqLywKIAkJCQlGRDMxNUZGMjEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5o
ICovLAogCQkJCUZEMzE1RkVCMTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2Rl
LmNwcCAqLywKQEAgLTMyNjM3LDYgKzMyNjQ3LDggQEAKIAkJCQk4QUY0RTU1QzExREM1QTYzMDAw
RUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NTRCNUYz
MUUzODM5M0EwMDFENEUwMyAvKiBQZXJmb3JtYW5jZVVzZXJUaW1pbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZENTgxRkI1MTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUU3NTVFODkyMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVDb25z
dHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTc1NUU4OTkyNEM3NDYxRDAwOUY3QzIzIC8q
IFBlcmlvZGljV2F2ZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RDVEQzJFMEY0MjNB
NzMwMDhGMjBGRCAvKiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMURCQzFCNTYyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQyQzgyQjcyMzZBM0Y2QTAwNTVENkM1IC8qIFBp
Y3R1cmVJblBpY3R1cmVTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCmluZGV4IDM2OTM2YTgyZmI1NTkwYTYwY2FjMzcyNjQ4MTY1ZTBjYzE1ZGMyMDMu
LjI4YzkxZTNlNjYyOWVhNzA0MWZlODdlZDU4NTA0ZTQ3NjE1NjdmNjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA3LTIzICBDbGFyayBXYW5n
ICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgUGVyaW9kaWNXYXZlIGNv
bnN0cnVjdG9yIGFjY29yZGluZyB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MTUKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBE
dW1lei4KKworICAgICAgICBSZS1iYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdGhhdCBub3cgcGFz
cy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0
dHBzLndpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW9zY2lsbGF0b3Jub2RlLWludGVyZmFjZS9vc2MtYmFz
aWMtd2F2ZWZvcm0tZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA3LTIwICBDbGFyayBXYW5nICA8Y2xh
cmtfd2FuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRml4ZXMgdG8gbWF0Y2ggQmFzZUF1ZGlvQ29u
dGV4dC5pZGwgdG8gc3BlYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCA5OWY0YzBjYzEz
N2E0YmI3MWMwYjMzZGFiNGQ0M2UyOTBiOGRhZTZmLi41NmZmODA1Y2I4Yjc1YmE1MWQ1Y2FlNjM3
Zjk2ZmExNjg3ZjNiNDAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dApAQCAtOTY4LDEzICs5
NjgsMTMgQEAgUEFTUyBBdWRpb05vZGUgaW50ZXJmYWNlOiBuZXcgUGFubmVyTm9kZShjb250ZXh0
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNoYW5uZWwKIFBBU1MgQXVkaW9Ob2RlIGludGVyZmFj
ZTogbmV3IFBhbm5lck5vZGUoY29udGV4dCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVs
Q291bnRNb2RlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgQXVkaW9Ob2RlIGludGVyZmFj
ZTogbmV3IFBhbm5lck5vZGUoY29udGV4dCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVs
SW50ZXJwcmV0YXRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBQZXJpb2RpY1dhdmUg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAK
LUZBSUwgUGVyaW9kaWNXYXZlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9lcXVhbHM6
IHdyb25nIHZhbHVlIGZvciBQZXJpb2RpY1dhdmUubGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAw
CitQQVNTIFBlcmlvZGljV2F2ZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgUGVyaW9k
aWNXYXZlIGludGVyZmFjZSBvYmplY3QgbmFtZSAKIFBBU1MgUGVyaW9kaWNXYXZlIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IAogUEFTUyBQZXJpb2RpY1dhdmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAog
UEFTUyBQZXJpb2RpY1dhdmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IAotRkFJ
TCBQZXJpb2RpY1dhdmUgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgUGVyaW9kaWNX
YXZlKGNvbnRleHQpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZh
bHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiVHlwZUVycm9yOiBm
dW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IFBlcmlvZGljV2F2
ZShjb250ZXh0KScpIgotRkFJTCBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFBlcmlvZGljV2F2ZShj
b250ZXh0KSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRp
bmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlR5cGVFcnJvcjogZnVuY3Rp
b24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyBQZXJpb2RpY1dhdmUoY29u
dGV4dCknKSIKK1BBU1MgUGVyaW9kaWNXYXZlIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2Yg
bmV3IFBlcmlvZGljV2F2ZShjb250ZXh0KSAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBQ
ZXJpb2RpY1dhdmUoY29udGV4dCkgCiBQQVNTIFNjcmlwdFByb2Nlc3Nvck5vZGUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgU2Ny
aXB0UHJvY2Vzc29yTm9kZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgU2NyaXB0UHJv
Y2Vzc29yTm9kZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLW9zY2lsbGF0b3Jub2RlLWludGVyZmFjZS9vc2MtYmFzaWMtd2F2ZWZvcm0tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1vc2NpbGxhdG9ybm9kZS1pbnRlcmZhY2Uvb3NjLWJhc2ljLXdh
dmVmb3JtLWV4cGVjdGVkLnR4dAppbmRleCBjYmZhOGIzZGQyNzUwOGFkMjhhNTBiYmY2MjY3NTc3
NjU4OGI2ZGExLi5mODhiYWQ2M2MyYmJkM2Q5Y2FiMDU2N2I5NWNiZGMyMzdkYTk1NTcyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW9zY2lsbGF0b3Jub2RlLWludGVyZmFjZS9vc2MtYmFzaWMt
d2F2ZWZvcm0tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtb3NjaWxsYXRvcm5vZGUt
aW50ZXJmYWNlL29zYy1iYXNpYy13YXZlZm9ybS1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTUg
QEAKIAogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAotRkFJTCBFeGVjdXRpbmcg
IlRlc3QgMCIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIKLUZBSUwgRXhlY3V0aW5nICJU
ZXN0IDEiIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMiCi1GQUlMIEV4ZWN1dGluZyAiVGVz
dCAyIiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIgotRkFJTCBFeGVjdXRpbmcgIlRlc3Qg
MyIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyIKLUZBSUwgRXhlY3V0aW5nICJUZXN0IDQi
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMiCi1GQUlMIEV4ZWN1dGluZyAiVGVzdCA1IiBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzIgorRkFJTCBFeGVjdXRpbmcgIlRlc3QgMCIgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiBmdW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IE9zY2ls
bGF0b3JOb2RlKGNvbnRleHQsIHt0eXBlOiAnc2luZScsIGZyZXF1ZW5jeTogZnJlcUh6fSknKSIK
K0ZBSUwgRXhlY3V0aW5nICJUZXN0IDEiIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3Ry
dWN0b3IgKGV2YWx1YXRpbmcgJ25ldyBPc2NpbGxhdG9yTm9kZShjb250ZXh0LCB7dHlwZTogJ3Np
bmUnLCBmcmVxdWVuY3k6IGZyZXFIen0pJykiCitGQUlMIEV4ZWN1dGluZyAiVGVzdCAyIiBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IGZ1bmN0aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgT3NjaWxs
YXRvck5vZGUoY29udGV4dCwge3R5cGU6ICdzaW5lJywgZnJlcXVlbmN5OiBmcmVxSHp9KScpIgor
RkFJTCBFeGVjdXRpbmcgIlRlc3QgMyIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBmdW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1
Y3RvciAoZXZhbHVhdGluZyAnbmV3IE9zY2lsbGF0b3JOb2RlKGNvbnRleHQsIHt0eXBlOiAnc2lu
ZScsIGZyZXF1ZW5jeTogZnJlcUh6fSknKSIKK0ZBSUwgRXhlY3V0aW5nICJUZXN0IDQiIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyBQZXJpb2Rp
Y1dhdmUoCisgICAgICAgICAgICAgICAgY29udGV4dCwKKyAgICAgICAgICAgICAgICB7cmVhbDog
WzAsIDFdLCBpbWFnOiBbMCwgMV0sIGRpc2FibGVOb3JtYWxpemF0aW9uOiB0cnVlfSknKSIKK0ZB
SUwgRXhlY3V0aW5nICJUZXN0IDUiIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0
b3IgKGV2YWx1YXRpbmcgJ25ldyBQZXJpb2RpY1dhdmUoCisgICAgICAgICAgICAgICAgY29udGV4
dCwKKyAgICAgICAgICAgICAgICB7cmVhbDogWzAsIDFdLCBpbWFnOiBbMCwgMV0sIGRpc2FibGVO
b3JtYWxpemF0aW9uOiB0cnVlfSknKSIKIFBBU1MgQXVkaXQgcmVwb3J0IAogUEFTUyA+IFtUZXN0
IDBdIFNpbmUgd2F2ZTogMTAwIEh6IAogUEFTUyA+IFtUZXN0IDFdIFNpbmUgd2F2ZTogLTEwMCBI
eiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405048</attachid>
            <date>2020-07-23 10:06:15 -0700</date>
            <delta_ts>2020-07-23 12:22:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214615-20200723130614.patch</filename>
            <type>text/plain</type>
            <size>38650</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVjZDFhNDM4ZTMyZjAz
ZjhhMWU4YWRmNTM1YjY0ZTk2ODM1YWM3NC4uM2U4NGE3MjJlY2JmNmE5ZWFlYjNlNTg1YzdlMjYz
NzNlMzI0MTI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA3LTIzICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkZWQgUGVyaW9kaWNX
YXZlIGNvbnN0cnVjdG9yIGFjY29yZGluZyB0byBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MTUKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBSZS1iYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdGhhdCBu
b3cgcGFzcy4KKworICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmUgY29uc3RydWN0b3IgYWNjb3Jk
aW5nIHRvIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jcGVyaW9kaWN3YXZl
LgorICAgICAgICBBZGRlZCBQZXJpb2RpY1dhdmVDb25zdHJhaW50cywgUGVyaW9kaWNXYXZlT3B0
aW9ucyBmaWxlcy4gVXBkYXRlZCBQZXJpb2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVz
CisgICAgICAgIHRvIG5vcm1hbGl6ZSB3YXZlZm9ybSBiYXNlZCBvbiBzcGVjOiBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXVkaW8vI3dhdmVmb3JtLW5vcm1hbGl6YXRpb24uCisgICAgICAgIEFk
ZGVkIHVwZGF0ZWQgY3JlYXRlUGVyaW9kaWNXYXZlIG1ldGhvZCBpbiBCYXNlQXVkaW9Db250ZXh0
LCBhbmQgbW92ZWQgb2xkIGNyZWF0ZVBlcmlvZGljV2F2ZSBtZXRob2QKKyAgICAgICAgSW50byBX
ZWJLaXRBdWRpb0NvbnRleHQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmNyZWF0ZVBlcmlvZGljV2F2ZSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNlQXVkaW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dhdmUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9QZXJpb2RpY1dhdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVyaW9kaWNXYXZlOjpjcmVhdGVCYW5kTGltaXRl
ZFRhYmxlcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYktpdEF1ZGlvQ29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMC0wNy0yMyAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBhZnRlciByMjY0NzYy
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2YWY3NDQyYmMzODk3MzE4MDA3YzYxMmNmYzNjZTAx
Zjc4ZjU3MGNhLi43NWQwMjc1NjljODNkODdjNmJjOWE5ZTczODdlZDdhOTM2MDdkMWY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtNDgyLDYgKzQ4Miw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdf
SURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJPcHRpb25zLmlkbAogICAgIE1v
ZHVsZXMvd2ViYXVkaW8vUGFubmluZ01vZGVsVHlwZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlv
L1BlcmlvZGljV2F2ZS5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZUNvbnN0
cmFpbnRzLmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwK
ICAgICBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuaWRsCiAgICAgTW9kdWxl
cy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL1dlYktp
dEF1ZGlvQ29udGV4dC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IGUzZjBiM2JkODdlZjQ5MGM4YmUyOWNlZTA5ZGEyOTU0Mjg5OGVi
MzIuLjljM2Q5N2NhMDNiOWQ1NDkwMGM4ZTczZDVkMDBjMzkyNjc1NjQ3YWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMzMxLDYgKzMz
MSw4IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyT3B0aW9ucy5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vUGFubmluZ01vZGVsVHlwZS5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAorJChQUk9KRUNUX0RJUikvTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5pZGwKKyQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggY2I5YjZhMDkxZmViOGMwNjM5
N2YyNTFjN2NiNWRkNWUxOTRmZTJmYi4uNzUwMDUxYjI5ODU1ZDZhNzBkODYxMTgzNzdmM2U4OWM0
MjA2ZGIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKQEAgLTEzMTgsNiArMTMxOCwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlcmZvcm1hbmNlVGltaW5nLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZXJmb3JtYW5jZVRpbWluZy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlcmlvZGljV2F2
ZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVy
aW9kaWNXYXZlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyaW9kaWNXYXZlT3B0aW9u
cy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVy
aW9kaWNXYXZlT3B0aW9ucy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQbGF5YmFja0RpcmVj
dGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDRmZDQ3MTQzMThlNWFl
ZWUwMGVjMzhkZTRhZTllN2IyMDM1ODc3OTMuLmUxNDdlZDFkZWVmOGYyODBhMjBlMjlhYzM5MmE1
YTgyMDE0NjliODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDE0LDYgKzQx
NCw4IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVk
aW8vUGFubmVyT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9Q
YW5uaW5nTW9kZWxUeXBlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1Bl
cmlvZGljV2F2ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2Rp
Y1dhdmVDb25zdHJhaW50cy5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9Q
ZXJpb2RpY1dhdmVPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlv
L1NjcmlwdFByb2Nlc3Nvck5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVk
aW8vV2F2ZVNoYXBlck5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8v
V2ViS2l0QXVkaW9Db250ZXh0LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAppbmRleCBjOTdmMTg4ZTQ5MDJjNDRmNzc5
YTRkZjQ5NTdjYjczYzU1MmY1YjgzLi43YmQ1NjQ1OGExMTNiNjNmMjkyNzEyMWE1OGZiYzMxMWQ1
NmI5YjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VB
dWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFz
ZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUGFubmVyTm9kZS5oIgogI2luY2x1ZGUgIlBlcmlvZGljV2F2ZS5oIgorI2luY2x1
ZGUgIlBlcmlvZGljV2F2ZU9wdGlvbnMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0UHJvY2Vzc29yTm9kZS5oIgpAQCAtOTEsOCArOTIsNiBAQAogI2luY2x1ZGUgPHd0Zi9TY29w
ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi1jb25zdCB1bnNpZ25lZCBN
YXhQZXJpb2RpY1dhdmVMZW5ndGggPSA0MDk2OwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChCYXNlQXVkaW9Db250ZXh0KTsKQEAgLTYzNSwxOCAr
NjM0LDIzIEBAIEV4Y2VwdGlvbk9yPFJlZjxPc2NpbGxhdG9yTm9kZT4+IEJhc2VBdWRpb0NvbnRl
eHQ6OmNyZWF0ZU9zY2lsbGF0b3IoKQogICAgIHJldHVybiBub2RlOwogfQogCi1FeGNlcHRpb25P
cjxSZWY8UGVyaW9kaWNXYXZlPj4gQmFzZUF1ZGlvQ29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZl
KEZsb2F0MzJBcnJheSYgcmVhbCwgRmxvYXQzMkFycmF5JiBpbWFnaW5hcnkpCitFeGNlcHRpb25P
cjxSZWY8UGVyaW9kaWNXYXZlPj4gQmFzZUF1ZGlvQ29udGV4dDo6Y3JlYXRlUGVyaW9kaWNXYXZl
KFZlY3RvcjxmbG9hdD4mJiByZWFsLCBWZWN0b3I8ZmxvYXQ+JiYgaW1hZ2luYXJ5LCBjb25zdCBQ
ZXJpb2RpY1dhdmVDb25zdHJhaW50cyYgY29uc3RyYWludHMpCiB7CiAgICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSKTsKICAgICAKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGlm
IChtX2lzU3RvcFNjaGVkdWxlZCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH07Ci0KLSAgICBpZiAocmVhbC5sZW5ndGgoKSAhPSBpbWFnaW5hcnkubGVuZ3Ro
KCkgfHwgKHJlYWwubGVuZ3RoKCkgPiBNYXhQZXJpb2RpY1dhdmVMZW5ndGgpIHx8ICFyZWFsLmxl
bmd0aCgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKKyAg
ICAKKyAgICBpZiAocmVhbC5zaXplKCkgIT0gaW1hZ2luYXJ5LnNpemUoKSkKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yLCAicmVhbCBhbmQgaW1hZ2luYXJ5IG11c3Qg
aGF2ZSB0aGUgc2FtZSBsZW5ndGgiX3MgfTsKKyAgICAKKyAgICBQZXJpb2RpY1dhdmVPcHRpb25z
IG9wdGlvbnM7CisgICAgb3B0aW9ucy5yZWFsID0gV1RGTW92ZShyZWFsKTsKKyAgICBvcHRpb25z
LmltYWcgPSBXVEZNb3ZlKGltYWdpbmFyeSk7CisgICAgb3B0aW9ucy5kaXNhYmxlTm9ybWFsaXph
dGlvbiA9IGNvbnN0cmFpbnRzLmRpc2FibGVOb3JtYWxpemF0aW9uOwogICAgIGxhenlJbml0aWFs
aXplKCk7Ci0gICAgcmV0dXJuIFBlcmlvZGljV2F2ZTo6Y3JlYXRlKHNhbXBsZVJhdGUoKSwgcmVh
bCwgaW1hZ2luYXJ5KTsKKyAgICByZXR1cm4gUGVyaW9kaWNXYXZlOjpjcmVhdGUoKnRoaXMsIFdU
Rk1vdmUob3B0aW9ucykpOwogfQogCiB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6Om5vdGlmeU5vZGVG
aW5pc2hlZFByb2Nlc3NpbmcoQXVkaW9Ob2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAppbmRleCA0OWU3ZTNhOTNlZGU1
NzMyYjQ4ODEyYWUyODRiYmY4ZmRkOWFlNjAyLi40YThhMzQ1N2Q4YzkzYjM0MThjNDE4ZGU3NTg0
MWM5YzMwODJlNmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0Jhc2VBdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0Jhc2VBdWRpb0NvbnRleHQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkV2ZW50VGFy
Z2V0LmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiTWVk
aWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIlBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb24uaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCiAjaW5jbHVkZSAiVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIgpAQCAtMTUyLDcg
KzE1Myw3IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25PcjxSZWY8Q2hhbm5lbFNwbGl0dGVyTm9k
ZT4+IGNyZWF0ZUNoYW5uZWxTcGxpdHRlcihzaXplX3QgbnVtYmVyT2ZPdXRwdXRzKTsKICAgICBF
eGNlcHRpb25PcjxSZWY8Q2hhbm5lbE1lcmdlck5vZGU+PiBjcmVhdGVDaGFubmVsTWVyZ2VyKHNp
emVfdCBudW1iZXJPZklucHV0cyk7CiAgICAgRXhjZXB0aW9uT3I8UmVmPE9zY2lsbGF0b3JOb2Rl
Pj4gY3JlYXRlT3NjaWxsYXRvcigpOwotICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+
PiBjcmVhdGVQZXJpb2RpY1dhdmUoRmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMyQXJyYXkmIGlt
YWdpbmFyeSk7CisgICAgRXhjZXB0aW9uT3I8UmVmPFBlcmlvZGljV2F2ZT4+IGNyZWF0ZVBlcmlv
ZGljV2F2ZShWZWN0b3I8ZmxvYXQ+JiYgcmVhbCwgVmVjdG9yPGZsb2F0PiYmIGltYWdpbmFyeSwg
Y29uc3QgUGVyaW9kaWNXYXZlQ29uc3RyYWludHMmID0geyB9KTsKIAogICAgIC8vIFdoZW4gYSBz
b3VyY2Ugbm9kZSBoYXMgbm8gbW9yZSBwcm9jZXNzaW5nIHRvIGRvIChoYXMgZmluaXNoZWQgcGxh
eWluZyksIHRoZW4gaXQgdGVsbHMgdGhlIGNvbnRleHQgdG8gZGVyZWZlcmVuY2UgaXQuCiAgICAg
dm9pZCBub3RpZnlOb2RlRmluaXNoZWRQcm9jZXNzaW5nKEF1ZGlvTm9kZSopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5pZGwKaW5k
ZXggNDM1MGIxZTBjZWI1MzVhMWE3YjkwMTA4OGI4NDZmZjFiMDlhMjM1NC4uMTk4NTMyNDBkZWVl
ZTBhYzFkMjg2YjAyNDFiMmU4ZGUyMDg0Yjk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsCkBAIC02NSw3ICs2NSw3IEBA
CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBBbmFseXNlck5vZGUgY3JlYXRlQW5hbHlzZXIoKTsK
ICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFNjcmlwdFByb2Nlc3Nvck5vZGUgY3JlYXRlU2NyaXB0
UHJvY2Vzc29yKG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyU2l6ZSA9IDAsIG9wdGlvbmFs
IHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJbnB1dENoYW5uZWxzID0gMiwgb3B0aW9uYWwgdW5zaWdu
ZWQgbG9uZyBudW1iZXJPZk91dHB1dENoYW5uZWxzID0gMik7CiAgICAgW01heVRocm93RXhjZXB0
aW9uXSBPc2NpbGxhdG9yTm9kZSBjcmVhdGVPc2NpbGxhdG9yKCk7Ci0gICAgW01heVRocm93RXhj
ZXB0aW9uXSBQZXJpb2RpY1dhdmUgY3JlYXRlUGVyaW9kaWNXYXZlKEZsb2F0MzJBcnJheSByZWFs
LCBGbG9hdDMyQXJyYXkgaW1hZyk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBQZXJpb2RpY1dh
dmUgY3JlYXRlUGVyaW9kaWNXYXZlKHNlcXVlbmNlPGZsb2F0PiByZWFsLCBzZXF1ZW5jZTxmbG9h
dD4gaW1hZywgb3B0aW9uYWwgUGVyaW9kaWNXYXZlT3B0aW9ucyBvcHRpb25zKTsKIAogICAgIC8v
IENoYW5uZWwgc3BsaXR0aW5nIGFuZCBtZXJnaW5nCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBD
aGFubmVsU3BsaXR0ZXJOb2RlIGNyZWF0ZUNoYW5uZWxTcGxpdHRlcihvcHRpb25hbCB1bnNpZ25l
ZCBsb25nIG51bWJlck9mT3V0cHV0cyA9IDYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9QZXJpb2RpY1dhdmUuY3BwCmluZGV4IGVjOWExN2M0ZjU2ZWI5OTY2ZGMxNzYy
N2U5MzQwNWJhMWZkNDhjNDYuLjA4NjZmOTUxZTQ5NmM5ZjRmYzJiMjAwYWEyYTA5OGNjYjRkZGFk
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNX
YXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2
ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKIAogI2luY2x1ZGUgIlBlcmlvZGljV2F2ZS5oIgogCisj
aW5jbHVkZSAiQmFzZUF1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkZGVEZyYW1lLmgiCiAjaW5j
bHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTQ0LDYgKzQ1LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogdXNpbmcgbmFtZXNwYWNlIFZlY3Rvck1hdGg7
CiAKKy8vIEZJWE1FOiBSZW1vdmUgb25jZSBvbGQgY29uc3RydWN0b3IgaXMgcGhhc2VkIG91dAog
UmVmPFBlcmlvZGljV2F2ZT4gUGVyaW9kaWNXYXZlOjpjcmVhdGUoZmxvYXQgc2FtcGxlUmF0ZSwg
RmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMyQXJyYXkmIGltYWdpbmFyeSkKIHsKICAgICBBU1NF
UlQocmVhbC5sZW5ndGgoKSA9PSBpbWFnaW5hcnkubGVuZ3RoKCkpOwpAQCAtNTMsNiArNTUsNDQg
QEAgUmVmPFBlcmlvZGljV2F2ZT4gUGVyaW9kaWNXYXZlOjpjcmVhdGUoZmxvYXQgc2FtcGxlUmF0
ZSwgRmxvYXQzMkFycmF5JiByZWFsLCBGbG8KICAgICByZXR1cm4gd2F2ZVRhYmxlOwogfQogCitF
eGNlcHRpb25PcjxSZWY8UGVyaW9kaWNXYXZlPj4gUGVyaW9kaWNXYXZlOjpjcmVhdGUoQmFzZUF1
ZGlvQ29udGV4dCYgY29udGV4dCwgUGVyaW9kaWNXYXZlT3B0aW9ucyYmIG9wdGlvbnMpCit7Cisg
ICAgVmVjdG9yPGZsb2F0PiByZWFsOworICAgIFZlY3RvcjxmbG9hdD4gaW1hZzsKKyAgICAKKyAg
ICBpZiAob3B0aW9ucy5yZWFsICYmIG9wdGlvbnMuaW1hZykgeworICAgICAgICBpZiAob3B0aW9u
cy5yZWFsLT5zaXplKCkgIT0gb3B0aW9ucy5pbWFnLT5zaXplKCkpCisgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IsICJyZWFsIGFuZCBpbWFnIGhhdmUgZGlmZmVy
ZW50IGxlbmd0aHMiX3MgfTsKKyAgICAgICAgaWYgKG9wdGlvbnMucmVhbC0+c2l6ZSgpIDwgMikK
KyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciwgInJlYWwncyBs
ZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiAyIl9zIH07CisgICAgICAgIGlmIChvcHRpb25zLmlt
YWctPnNpemUoKSA8IDIpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXpl
RXJyb3IsICJpbWFnJ3MgbGVuZ3RoIGNhbm5vdCBiZSBsZXNzIHRoYW4gMiJfcyB9OworICAgICAg
ICByZWFsID0gV1RGTW92ZSgqb3B0aW9ucy5yZWFsKTsKKyAgICAgICAgaW1hZyA9IFdURk1vdmUo
Km9wdGlvbnMuaW1hZyk7CisgICAgfSBlbHNlIGlmIChvcHRpb25zLnJlYWwpIHsKKyAgICAgICAg
aWYgKG9wdGlvbnMucmVhbC0+c2l6ZSgpIDwgMikKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbmRleFNpemVFcnJvciwgInJlYWwncyBsZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiAy
Il9zIH07CisgICAgICAgIHJlYWwgPSBXVEZNb3ZlKCpvcHRpb25zLnJlYWwpOworICAgICAgICBp
bWFnLmZpbGwoMCwgcmVhbC5zaXplKCkpOworICAgIH0gZWxzZSBpZiAob3B0aW9ucy5pbWFnKSB7
CisgICAgICAgIGlmIChvcHRpb25zLmltYWctPnNpemUoKSA8IDIpCisgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IsICJpbWFnJ3MgbGVuZ3RoIGNhbm5vdCBiZSBs
ZXNzIHRoYW4gMiJfcyB9OworICAgICAgICBpbWFnID0gV1RGTW92ZSgqb3B0aW9ucy5pbWFnKTsK
KyAgICAgICAgcmVhbC5maWxsKDAsIGltYWcuc2l6ZSgpKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICByZWFsLmZpbGwoMCwgMik7CisgICAgICAgIGltYWcuZmlsbCgwLCAyKTsKKyAgICAgICAgaW1h
Z1sxXSA9IDE7CisgICAgfQorCisgICAgcmVhbFswXSA9IDA7CisgICAgaW1hZ1swXSA9IDA7Cisg
ICAgCisgICAgYXV0byB3YXZlVGFibGUgPSBhZG9wdFJlZigqbmV3IFBlcmlvZGljV2F2ZShjb250
ZXh0LnNhbXBsZVJhdGUoKSkpOworICAgIHdhdmVUYWJsZS0+Y3JlYXRlQmFuZExpbWl0ZWRUYWJs
ZXMocmVhbC5kYXRhKCksIGltYWcuZGF0YSgpLCByZWFsLnNpemUoKSwgb3B0aW9ucy5kaXNhYmxl
Tm9ybWFsaXphdGlvbiA/IFNob3VsZERpc2FibGVOb3JtYWxpemF0aW9uOjpZZXMgOiBTaG91bGRE
aXNhYmxlTm9ybWFsaXphdGlvbjo6Tm8pOworICAgIHJldHVybiB3YXZlVGFibGU7Cit9CisKIFJl
ZjxQZXJpb2RpY1dhdmU+IFBlcmlvZGljV2F2ZTo6Y3JlYXRlU2luZShmbG9hdCBzYW1wbGVSYXRl
KQogewogICAgIFJlZjxQZXJpb2RpY1dhdmU+IHdhdmVUYWJsZSA9IGFkb3B0UmVmKCpuZXcgUGVy
aW9kaWNXYXZlKHNhbXBsZVJhdGUpKTsKQEAgLTE0Miw3ICsxODIsNyBAQCB1bnNpZ25lZCBQZXJp
b2RpY1dhdmU6Om51bWJlck9mUGFydGlhbHNGb3JSYW5nZSh1bnNpZ25lZCByYW5nZUluZGV4KSBj
b25zdAogLy8gQ29udmVydCBpbnRvIHRpbWUtZG9tYWluIHdhdmUgdGFibGVzLgogLy8gT25lIHRh
YmxlIGlzIGNyZWF0ZWQgZm9yIGVhY2ggcmFuZ2UgZm9yIG5vbi1hbGlhc2luZyBwbGF5YmFjayBh
dCBkaWZmZXJlbnQgcGxheWJhY2sgcmF0ZXMuCiAvLyBUaHVzLCBoaWdoZXIgcmFuZ2VzIGhhdmUg
bW9yZSBoaWdoLWZyZXF1ZW5jeSBwYXJ0aWFscyBjdWxsZWQgb3V0Lgotdm9pZCBQZXJpb2RpY1dh
dmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVzKGNvbnN0IGZsb2F0KiByZWFsRGF0YSwgY29uc3Qg
ZmxvYXQqIGltYWdEYXRhLCB1bnNpZ25lZCBudW1iZXJPZkNvbXBvbmVudHMpCit2b2lkIFBlcmlv
ZGljV2F2ZTo6Y3JlYXRlQmFuZExpbWl0ZWRUYWJsZXMoY29uc3QgZmxvYXQqIHJlYWxEYXRhLCBj
b25zdCBmbG9hdCogaW1hZ0RhdGEsIHVuc2lnbmVkIG51bWJlck9mQ29tcG9uZW50cywgU2hvdWxk
RGlzYWJsZU5vcm1hbGl6YXRpb24gZGlzYWJsZU5vcm1hbGl6YXRpb24pCiB7CiAgICAgZmxvYXQg
bm9ybWFsaXphdGlvblNjYWxlID0gMTsKIApAQCAtMTk5LDEyICsyMzksMTQgQEAgdm9pZCBQZXJp
b2RpY1dhdmU6OmNyZWF0ZUJhbmRMaW1pdGVkVGFibGVzKGNvbnN0IGZsb2F0KiByZWFsRGF0YSwg
Y29uc3QgZmxvYXQqIGkKICAgICAgICAgZnJhbWUuZG9JbnZlcnNlRkZUKGRhdGEpOwogCiAgICAg
ICAgIC8vIEZvciB0aGUgZmlyc3QgcmFuZ2UgKHdoaWNoIGhhcyB0aGUgaGlnaGVzdCBwb3dlciks
IGNhbGN1bGF0ZSBpdHMgcGVhayB2YWx1ZSB0aGVuIGNvbXB1dGUgbm9ybWFsaXphdGlvbiBzY2Fs
ZS4KLSAgICAgICAgaWYgKCFyYW5nZUluZGV4KSB7Ci0gICAgICAgICAgICBmbG9hdCBtYXhWYWx1
ZTsKLSAgICAgICAgICAgIHZtYXhtZ3YoZGF0YSwgMSwgJm1heFZhbHVlLCBtX3BlcmlvZGljV2F2
ZVNpemUpOwotCi0gICAgICAgICAgICBpZiAobWF4VmFsdWUpCi0gICAgICAgICAgICAgICAgbm9y
bWFsaXphdGlvblNjYWxlID0gMS4wZiAvIG1heFZhbHVlOworICAgICAgICBpZiAoZGlzYWJsZU5v
cm1hbGl6YXRpb24gPT0gU2hvdWxkRGlzYWJsZU5vcm1hbGl6YXRpb246Ok5vKSB7CisgICAgICAg
ICAgICBpZiAoIXJhbmdlSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBmbG9hdCBtYXhWYWx1ZTsK
KyAgICAgICAgICAgICAgICB2bWF4bWd2KGRhdGEsIDEsICZtYXhWYWx1ZSwgbV9wZXJpb2RpY1dh
dmVTaXplKTsKKworICAgICAgICAgICAgICAgIGlmIChtYXhWYWx1ZSkKKyAgICAgICAgICAgICAg
ICAgICAgbm9ybWFsaXphdGlvblNjYWxlID0gMS4wZiAvIG1heFZhbHVlOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAKICAgICAgICAgLy8gQXBwbHkgbm9ybWFsaXphdGlvbiBzY2FsZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5oCmluZGV4IDc5
YTJkODJhYzZjYzMxZjU0NmY5OGQ0MmExYzUxZjI1NzVkNTY0NDEuLmUxMGViZGVjY2UyYjA2Yjlj
MzU0NzE1MjcwMzJjMDgyMzVjZWU3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9QZXJpb2RpY1dhdmUuaApAQCAtMjksNiArMjksOCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBdWRpb0FycmF5LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNs
dWRlICJQZXJpb2RpY1dhdmVPcHRpb25zLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxv
YXQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CkBAIC0zNiw2ICszOCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEJh
c2VBdWRpb0NvbnRleHQ7CisKK2VudW0gY2xhc3MgU2hvdWxkRGlzYWJsZU5vcm1hbGl6YXRpb24g
OiBib29sIHsgTm8sIFllcyB9OworCiBjbGFzcyBQZXJpb2RpY1dhdmUgZmluYWwgOiBwdWJsaWMg
UmVmQ291bnRlZDxQZXJpb2RpY1dhdmU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBlcmlv
ZGljV2F2ZT4gY3JlYXRlU2luZShmbG9hdCBzYW1wbGVSYXRlKTsKQEAgLTQ0LDcgKzUwLDEwIEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBlcmlvZGljV2F2ZT4gY3JlYXRlVHJpYW5nbGUoZmxv
YXQgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGVzIGFuIGFyYml0cmFyeSB3YXZlIGdpdmVu
IHRoZSBmcmVxdWVuY3kgY29tcG9uZW50cyAoRm91cmllciBjb2VmZmljaWVudHMpLgorICAgIC8v
IEZJWE1FOiBSZW1vdmUgb25jZSBvbGQgY29uc3RydWN0b3IgaXMgcGhhc2VkIG91dAogICAgIHN0
YXRpYyBSZWY8UGVyaW9kaWNXYXZlPiBjcmVhdGUoZmxvYXQgc2FtcGxlUmF0ZSwgRmxvYXQzMkFy
cmF5JiByZWFsLCBGbG9hdDMyQXJyYXkmIGltYWcpOworICAgIAorICAgIHN0YXRpYyBFeGNlcHRp
b25PcjxSZWY8UGVyaW9kaWNXYXZlPj4gY3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmLCBQZXJpb2Rp
Y1dhdmVPcHRpb25zJiYgPSB7IH0pOwogCiAgICAgLy8gUmV0dXJucyBwb2ludGVycyB0byB0aGUg
bG93ZXIgYW5kIGhpZ2hlciB3YXZlIGRhdGEgZm9yIHRoZSBwaXRjaCByYW5nZSBjb250YWluaW5n
CiAgICAgLy8gdGhlIGdpdmVuIGZ1bmRhbWVudGFsIGZyZXF1ZW5jeS4gVGhlc2UgdHdvIHRhYmxl
cyBhcmUgaW4gYWRqYWNlbnQgInBpdGNoIiByYW5nZXMKQEAgLTkyLDcgKzEwMSw3IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZQYXJ0aWFsc0ZvclJhbmdlKHVuc2lnbmVkIHJhbmdl
SW5kZXgpIGNvbnN0OwogCiAgICAgLy8gQ3JlYXRlcyB0YWJsZXMgYmFzZWQgb24gbnVtYmVyT2ZD
b21wb25lbnRzIEZvdXJpZXIgY29lZmZpY2llbnRzLgotICAgIHZvaWQgY3JlYXRlQmFuZExpbWl0
ZWRUYWJsZXMoY29uc3QgZmxvYXQqIHJlYWwsIGNvbnN0IGZsb2F0KiBpbWFnLCB1bnNpZ25lZCBu
dW1iZXJPZkNvbXBvbmVudHMpOworICAgIHZvaWQgY3JlYXRlQmFuZExpbWl0ZWRUYWJsZXMoY29u
c3QgZmxvYXQqIHJlYWwsIGNvbnN0IGZsb2F0KiBpbWFnLCB1bnNpZ25lZCBudW1iZXJPZkNvbXBv
bmVudHMsIFNob3VsZERpc2FibGVOb3JtYWxpemF0aW9uID0gU2hvdWxkRGlzYWJsZU5vcm1hbGl6
YXRpb246Ok5vKTsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+
IG1fYmFuZExpbWl0ZWRUYWJsZXM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1BlcmlvZGljV2F2ZS5pZGwKaW5kZXggMGJmMDkyMjIxYWQ3YWQwYWY2N2NmMjQ0
Nzk5NjhjNGM2ODhjYzc1Ni4uMzYwODUwNjE2MzFmOTk1NjU1MzNhZDY3NzRjZjIyYmM1YzA0NTJm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dh
dmUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZl
LmlkbApAQCAtMjcsNSArMjcsNSBAQAogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKICAgICBJ
bXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCiBdIGludGVyZmFjZSBQZXJpb2RpY1dhdmUgewotCisg
ICAgW01heVRocm93RXhjZXB0aW9uLCBFbmFibGVkQnlTZXR0aW5nPU1vZGVyblVucHJlZml4ZWRX
ZWJBdWRpb10gY29uc3RydWN0b3IoQmFzZUF1ZGlvQ29udGV4dCBjb250ZXh0LCBvcHRpb25hbCBQ
ZXJpb2RpY1dhdmVPcHRpb25zIG9wdGlvbnMpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMjY1NzUyYjAzYWMxMjBiYTU5NGI4ZjU2MmU3MjNjOTMxNjQ3NmJmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25z
dHJhaW50cy5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShXRUJfQVVESU8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFBl
cmlvZGljV2F2ZUNvbnN0cmFpbnRzIHsKKyAgICBib29sIGRpc2FibGVOb3JtYWxpemF0aW9uID0g
ZmFsc2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Q
ZXJpb2RpY1dhdmVDb25zdHJhaW50cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYmI1ZjgyYTRhYjFj
MzVjOGVkZGI3NDE2ZmNkZGRkOGYwNjRiMDdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVDb25zdHJhaW50cy5pZGwKQEAgLTAs
MCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorXSBk
aWN0aW9uYXJ5IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzIHsKKyAgICBib29sZWFuIGRpc2FibGVO
b3JtYWxpemF0aW9uID0gZmFsc2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1BlcmlvZGljV2F2ZU9wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Yzg4NWUwYzdj
N2UyZjk2MzMwYzI2MTVkZDAxMTc4YjI4Y2Y0Y2ZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmgKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJ
TykKKworI2luY2x1ZGUgIlBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmgiCisjaW5jbHVkZSA8d3Rm
L09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0cnVjdCBQZXJpb2RpY1dhdmVPcHRpb25zIDogcHVibGljIFBlcmlvZGljV2F2ZUNv
bnN0cmFpbnRzIHsKKyAgICBPcHRpb25hbDxWZWN0b3I8ZmxvYXQ+PiByZWFsOworICAgIE9wdGlv
bmFsPFZlY3RvcjxmbG9hdD4+IGltYWc7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9QZXJpb2RpY1dhdmVPcHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFi
NGU0OTZkZDE1ZWExODgzNDU0ZjEwZjBjZGYyYTRhM2VjNGRkYQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwK
QEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElP
LAorXSBkaWN0aW9uYXJ5IFBlcmlvZGljV2F2ZU9wdGlvbnMgOiBQZXJpb2RpY1dhdmVDb25zdHJh
aW50cyB7CisgICAgc2VxdWVuY2U8ZmxvYXQ+IHJlYWw7CisgICAgc2VxdWVuY2U8ZmxvYXQ+IGlt
YWc7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJL
aXRBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJL
aXRBdWRpb0NvbnRleHQuY3BwCmluZGV4IDBlM2U2NWE5Y2VkM2EyNzUzOWIzYTg1MTcxMGQxNGZj
NmI2ZjAwMzcuLjA0ZTljYTY0ZTNkOGM2NTFiMTNiNDhjZWMwYjk4MWQ3OWMzZmMxZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29u
dGV4dC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJXZWJLaXRBdWRpb0NvbnRleHQu
aCIKIAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiUGVyaW9k
aWNXYXZlLmgiCiAjaW5jbHVkZSAiV2ViS2l0QXVkaW9QYW5uZXJOb2RlLmgiCiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtNDUsNiArNDYsOCBAQAogI2luY2x1ZGUgIk1l
ZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIgogI2VuZGlmCiAKK2NvbnN0IHVuc2lnbmVkIE1h
eFBlcmlvZGljV2F2ZUxlbmd0aCA9IDQwOTY7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYktpdEF1ZGlvQ29udGV4dCk7CkBAIC0xNjcsNiAr
MTcwLDIwIEBAIEV4Y2VwdGlvbk9yPFJlZjxXZWJLaXRBdWRpb1Bhbm5lck5vZGU+PiBXZWJLaXRB
dWRpb0NvbnRleHQ6OmNyZWF0ZVdlYktpdFBhbm5lcigpCiAgICAgcmV0dXJuIFdlYktpdEF1ZGlv
UGFubmVyTm9kZTo6Y3JlYXRlKCp0aGlzLCBzYW1wbGVSYXRlKCkpOwogfQogCitFeGNlcHRpb25P
cjxSZWY8UGVyaW9kaWNXYXZlPj4gV2ViS2l0QXVkaW9Db250ZXh0OjpjcmVhdGVQZXJpb2RpY1dh
dmUoRmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMyQXJyYXkmIGltYWdpbmFyeSkKK3sKKyAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIAorICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgaWYgKGlzU3RvcHBlZCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmIChyZWFsLmxlbmd0aCgpICE9IGltYWdpbmFyeS5s
ZW5ndGgoKSB8fCByZWFsLmxlbmd0aCgpID4gTWF4UGVyaW9kaWNXYXZlTGVuZ3RoIHx8ICFyZWFs
Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsK
KyAgICBsYXp5SW5pdGlhbGl6ZSgpOworICAgIHJldHVybiBQZXJpb2RpY1dhdmU6OmNyZWF0ZShz
YW1wbGVSYXRlKCksIHJlYWwsIGltYWdpbmFyeSk7Cit9CisKIHZvaWQgV2ViS2l0QXVkaW9Db250
ZXh0OjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewogICAgIGlm
IChpc09mZmxpbmVDb250ZXh0KCkgfHwgaXNTdG9wcGVkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5oCmluZGV4IGQzZDU2
OTZlNmRhZjVkNDMwODZhM2Y0ZjM5ZTI2ZTQxYzhkMjhhYTQuLjVmNzViMDczZGNhM2YwODk1N2Rh
OWNlNzMyYjFmYTM4NGJkZDJlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaApAQCAtMzYsNiArMzYsNyBAQCBjbGFzcyBN
ZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU7CiBjbGFzcyBNZWRpYVN0cmVhbTsKIGNsYXNzIE1l
ZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGU7CiBjbGFzcyBNZWRpYVN0cmVhbUF1ZGlvU291
cmNlTm9kZTsKK2NsYXNzIFBlcmlvZGljV2F2ZTsKIGNsYXNzIFdlYktpdEF1ZGlvUGFubmVyTm9k
ZTsKIAogLy8gQXVkaW9Db250ZXh0IGlzIHRoZSBjb3JuZXJzdG9uZSBvZiB0aGUgd2ViIGF1ZGlv
IEFQSSBhbmQgYWxsIEF1ZGlvTm9kZXMgYXJlIGNyZWF0ZWQgZnJvbSBpdC4KQEAgLTYwLDYgKzYx
LDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYVN0cmVhbUF1ZGlvRGVzdGlu
YXRpb25Ob2RlPj4gY3JlYXRlTWVkaWFTdHJlYW1EZXN0aW5hdGlvbigpOwogI2VuZGlmCiAgICAg
RXhjZXB0aW9uT3I8UmVmPFdlYktpdEF1ZGlvUGFubmVyTm9kZT4+IGNyZWF0ZVdlYktpdFBhbm5l
cigpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJpb2RpY1dhdmU+PiBjcmVhdGVQZXJpb2RpY1dh
dmUoRmxvYXQzMkFycmF5JiByZWFsLCBGbG9hdDMyQXJyYXkmIGltYWdpbmFyeSk7CiAKIHByb3Rl
Y3RlZDoKICAgICBleHBsaWNpdCBXZWJLaXRBdWRpb0NvbnRleHQoRG9jdW1lbnQmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKaW5kZXggMTMxNWY2YTBjN2E1YWM4NjJhOWQzM2VkODAzODhmMjk3ZDU0NDYzZi4uZjZl
ZjllZDIxMzEzNjZkZGQ5MjFlYTA5NjM1MGUyNjliYjZjODQyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAg
LTMxNzEsNiArMzE3MSw4IEBAIEpTUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAKIEpTUGVy
Zm9ybWFuY2VTZXJ2ZXJUaW1pbmcuY3BwCiBKU1BlcmZvcm1hbmNlVGltaW5nLmNwcAogSlNQZXJp
b2RpY1dhdmUuY3BwCitKU1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmNwcAorSlNQZXJpb2RpY1dh
dmVPcHRpb25zLmNwcAogSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcAogSlNQbGF5YmFja0Rp
cmVjdGlvbi5jcHAKIEpTUG9pbnRlckV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVmODhmODIzMmE0ZGUyODM0Zjc3
NDZjYmMzZDcxMzgwOTViYTVlMWEuLmY3ZjdhMzU1NDVmY2E4NTEwNzBjMGM2ZWJmZDRkYzc5YWY1
MmQwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTUwNTAsNiArNTA1MCw4IEBACiAJCUU1QkE3RDYzMTUxNDM3Q0EwMEZFMUUz
RiAvKiBMZW5ndGhGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU1QkE3RDYyMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNzE0
NjdCMzI0QUJBRUYyMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjEyNEFCQUVGMTAwRkIyRjUw
IC8qIEF1ZGlvTm9kZU9wdGlvbnMuaCAqLzsgfTsKIAkJRTcxNDY3QjYyNEFCQUYxRDAwRkIyRjUw
IC8qIFBhbm5lck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU3MTQ2N0I1MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmggKi87
IH07CisJCUU3NTVFODkyMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVDb25zdHJhaW50
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc1NUU4
OEYyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggKi87IH07CisJ
CUU3NTVFODk5MjRDNzQ2MUQwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVPcHRpb25zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzU1RTg5NjI0Qzc0NjFE
MDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0aW9ucy5oICovOyB9OwogCQlFNzg1RDkxNTI0QjRE
MUNBMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5MTEyNEI0RDFCMTAwMTREQjIxIC8qIENoYW5u
ZWxDb3VudE1vZGUuaCAqLzsgfTsKIAkJRTc4NUQ5MzQyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5u
ZWxJbnRlcnByZXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTc4NUQ5MzEyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlv
bi5oICovOyB9OwogCQlFNzg1RDk2MTI0QjdGNzM1MDAxNERCMjEgLyogQXVkaW9Db250ZXh0T3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4
NUQ5NUYyNEI3RjczNDAwMTREQjIxIC8qIEF1ZGlvQ29udGV4dE9wdGlvbnMuaCAqLzsgfTsKQEAg
LTE1ODIxLDYgKzE1ODIzLDEwIEBACiAJCUU3MTQ2N0I0MjRBQkFGMEIwMEZCMkY1MCAvKiBBdWRp
b05vZGVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb05vZGVPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlv
bnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFubmVyT3B0aW9ucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNzI0QUJBRjJDMDBGQjJGNTAgLyog
UGFubmVyT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGFubmVyT3B0aW9ucy5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3NTVFODhGMjRDNzQzNEIwMDlGN0My
MyAvKiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJpb2RpY1dh
dmVDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNzU1RTg5MTI0
Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcmlv
ZGljV2F2ZUNvbnN0cmFpbnRzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTc1
NUU4OTYyNEM3NDYxRDAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZU9wdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGVyaW9kaWNXYXZlT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFNzU1RTg5ODI0Qzc0NjFEMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUGVyaW9kaWNXYXZlT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU3ODVEOTExMjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENoYW5uZWxDb3VudE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTc4NUQ5MTMyNEI0RDFCMTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENo
YW5uZWxDb3VudE1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzg1RDkz
MTI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENoYW5uZWxJbnRlcnByZXRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjk1MDMsNiArMjk1MDksMTAgQEAKIAkJCQlGRDU4MUZCMTE1MjBGOTNCMDAzQTdBNzUgLyog
UGVyaW9kaWNXYXZlLmNwcCAqLywKIAkJCQlGRDU4MUZCMjE1MjBGOTNCMDAzQTdBNzUgLyogUGVy
aW9kaWNXYXZlLmggKi8sCiAJCQkJRkQ1ODFGQjMxNTIwRjkzQjAwM0E3QTc1IC8qIFBlcmlvZGlj
V2F2ZS5pZGwgKi8sCisJCQkJRTc1NUU4OEYyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2
ZUNvbnN0cmFpbnRzLmggKi8sCisJCQkJRTc1NUU4OTEyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlv
ZGljV2F2ZUNvbnN0cmFpbnRzLmlkbCAqLywKKwkJCQlFNzU1RTg5NjI0Qzc0NjFEMDA5RjdDMjMg
LyogUGVyaW9kaWNXYXZlT3B0aW9ucy5oICovLAorCQkJCUU3NTVFODk4MjRDNzQ2MUQwMDlGN0My
MyAvKiBQZXJpb2RpY1dhdmVPcHRpb25zLmlkbCAqLywKIAkJCQlGRDMxNUZGMTEyQjAyNjc2MDBD
MUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5jcHAgKi8sCiAJCQkJRkQzMTVGRjIxMkIwMjY3NjAw
QzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuaCAqLywKIAkJCQlGRDMxNUZFQjEyQjAyNjc2MDBD
MUEzNTkgLyogU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAgKi8sCkBAIC0zMDA3Miw3ICszMDA4Miw2
IEBACiAJCQkJODMwMDMwRjgxQjdEM0I3ODAwRUQzQUFDIC8qIENhY2hlZEhUTUxDb2xsZWN0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IxNkMxQzA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVk
SW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxOUZCRDVGMTVEMkY0NjQwMDk2NDBBNiAvKiBD
YWNoZWRJbWFnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQ0RBQzA2ODMyNEM2QTk1QTAw
MkY3MjdGIC8qIFZQOVV0aWxpdGllc0NvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA3REVE
MDFEODFFNEM3MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMzA3REVEMTFEODFFNENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTAxODQ2OTBCMDg2MDJBMDA0QTgy
NUYgLyogQ2FjaGVkUGFnZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTE0NSw3ICszMTE1NCw2IEBA
CiAJCQkJNTE5REJDNkYxREMwMTFBNzAwMzI5QkY1IC8qIElEQkdldEFsbFJlY29yZHNEYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTlEQkM3MjFEQzEwRjUyMDAzMjlCRjUgLyogSURCR2V0QWxs
UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTA1RjA2OTFENEJBOUQ5MDBGQjgwQkMgLyog
SURCR2V0UmVjb3JkRGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQ0Q5Q0M1ODUyNEM2QkJFQjAw
Q0QzQzY0IC8qIFZQOVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NUZDOEYxQkI0
QzRFODAwMTI4OThGIC8qIElEQkdldFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NUZD
OTExQkI0QzRFODAwMTI4OThGIC8qIElEQkluZGV4LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUY3
OThGMDFCRTg4MEU3MDA4QUU0OTEgLyogSURCSW5kZXhJbmZvLmggaW4gSGVhZGVycyAqLywKQEAg
LTMyNjgwLDYgKzMyNjg4LDggQEAKIAkJCQk4QUY0RTU1QzExREM1QTYzMDAwRUQzREUgLyogUGVy
Zm9ybWFuY2VUaW1pbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NTRCNUYzMUUzODM5M0EwMDFE
NEUwMyAvKiBQZXJmb3JtYW5jZVVzZXJUaW1pbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTgx
RkI1MTUyMEY5M0IwMDNBN0E3NSAvKiBQZXJpb2RpY1dhdmUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUU3NTVFODkyMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTc1NUU4OTkyNEM3NDYxRDAwOUY3QzIzIC8qIFBlcmlvZGljV2F2
ZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RDVEQzJFMEY0MjNBNzMwMDhGMjBGRCAv
KiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMURC
QzFCNTYyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUQyQzgyQjcyMzZBM0Y2QTAwNTVENkM1IC8qIFBpY3R1cmVJblBpY3R1
cmVTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKQEAgLTMzODI2LDYgKzMzODM2LDggQEAKIAkJCQk0
MTlCQzJERjE2ODUzMjk5MDBENjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUFCQTgwMDAxODk3MzQxMjAwRENFOUQ2IC8qIFZpc2l0ZWRMaW5rU3RvcmUuaCBp
biBIZWFkZXJzICovLAogCQkJCUU0NDYxM0I2MENENjM0NEUwMEZBREE3NSAvKiBWb2lkQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOUNDNTg1MjRDNkJCRUIwMENEM0M2NCAvKiBWUDlV
dGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEQUMwNjgzMjRDNkE5NUEwMDJGNzI3RiAv
KiBWUDlVdGlsaXRpZXNDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUyMDUwN0ExOEE0NTg2
QjAwODA2NDdFIC8qIFZUVEN1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FGOUIyMDMxOENGQjJE
RjAwQzY0QkVGIC8qIFZUVFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FGOUIyMDYxOENG
QjJERjAwQzY0QkVGIC8qIFZUVFJlZ2lvbkxpc3QuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMjMwMWEzNzcyMzNkMDM4MzI1MTlmMGE0YWQyZTMwMTgx
NWZiODhiNi4uZTEzNjE5ZjAwOTg3Y2Q0Y2Y2NDdiNmNhMDc1N2EzMGI3M2Q0M2Q1MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDctMjMgIENs
YXJrIFdhbmcgIDxjbGFya193YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRlZCBQZXJpb2Rp
Y1dhdmUgY29uc3RydWN0b3IgYWNjb3JkaW5nIHRvIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDYxNQorCisgICAgICAgIFJldmlld2VkIGJ5
IENocmlzIER1bWV6LgorCisgICAgICAgIFJlLWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0cyB0aGF0
IG5vdyBwYXNzLCBvciBmYWlsIGZ1cnRoZXIgYWxvbmcuCisKKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LW9zY2lsbGF0b3Jub2RlLWludGVyZmFjZS9vc2MtYmFzaWMtd2F2ZWZvcm0tZXhwZWN0ZWQudHh0
OgorCiAyMDIwLTA3LTIxICBDbGFyayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkZWQgT2ZmbGluZUF1ZGlvQ29udGV4dCBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxo
YXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4
cGVjdGVkLnR4dAppbmRleCA3OTMyZmYxODBjNWRjNDVlNmU3MmY4MGI2N2ZjYTYzZGM5Y2M0MzNk
Li4yZGMzNTBlNzdlOWZmZjc5NjlmMGRmNzE3NzAxOGMxZTI5ZTA0MTgwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhh
cm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93
LWV4cGVjdGVkLnR4dApAQCAtOTY4LDEzICs5NjgsMTMgQEAgUEFTUyBBdWRpb05vZGUgaW50ZXJm
YWNlOiBuZXcgUGFubmVyTm9kZShjb250ZXh0KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNoYW5u
ZWwKIFBBU1MgQXVkaW9Ob2RlIGludGVyZmFjZTogbmV3IFBhbm5lck5vZGUoY29udGV4dCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVsQ291bnRNb2RlIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKIFBBU1MgQXVkaW9Ob2RlIGludGVyZmFjZTogbmV3IFBhbm5lck5vZGUoY29udGV4dCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVsSW50ZXJwcmV0YXRpb24iIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAogUEFTUyBQZXJpb2RpY1dhdmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgUGVyaW9kaWNXYXZlIGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoIGFzc2VydF9lcXVhbHM6IHdyb25nIHZhbHVlIGZvciBQZXJpb2RpY1dhdmUu
bGVuZ3RoIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIFBlcmlvZGljV2F2ZSBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aCAKIFBBU1MgUGVyaW9kaWNXYXZlIGludGVyZmFjZSBvYmplY3QgbmFtZSAK
IFBBU1MgUGVyaW9kaWNXYXZlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBQZXJpb2RpY1dhdmUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qn
cyAiY29uc3RydWN0b3IiIHByb3BlcnR5IAogUEFTUyBQZXJpb2RpY1dhdmUgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBA
QHVuc2NvcGFibGVzIHByb3BlcnR5IAotRkFJTCBQZXJpb2RpY1dhdmUgbXVzdCBiZSBwcmltYXJ5
IGludGVyZmFjZSBvZiBuZXcgUGVyaW9kaWNXYXZlKGNvbnRleHQpIGFzc2VydF9lcXVhbHM6IFVu
ZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBi
dXQgZ290IG9iamVjdCAiVHlwZUVycm9yOiBmdW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAo
ZXZhbHVhdGluZyAnbmV3IFBlcmlvZGljV2F2ZShjb250ZXh0KScpIgotRkFJTCBTdHJpbmdpZmlj
YXRpb24gb2YgbmV3IFBlcmlvZGljV2F2ZShjb250ZXh0KSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVj
dGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdv
dCBvYmplY3QgIlR5cGVFcnJvcjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1
YXRpbmcgJ25ldyBQZXJpb2RpY1dhdmUoY29udGV4dCknKSIKK1BBU1MgUGVyaW9kaWNXYXZlIG11
c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFBlcmlvZGljV2F2ZShjb250ZXh0KSAKK1BB
U1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBQZXJpb2RpY1dhdmUoY29udGV4dCkgCiBQQVNTIFNj
cmlwdFByb2Nlc3Nvck5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgU2NyaXB0UHJvY2Vzc29yTm9kZSBpbnRlcmZhY2Ugb2Jq
ZWN0IGxlbmd0aCAKIFBBU1MgU2NyaXB0UHJvY2Vzc29yTm9kZSBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW9zY2lsbGF0b3Jub2RlLWludGVyZmFjZS9v
c2MtYmFzaWMtd2F2ZWZvcm0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1vc2NpbGxhdG9y
bm9kZS1pbnRlcmZhY2Uvb3NjLWJhc2ljLXdhdmVmb3JtLWV4cGVjdGVkLnR4dAppbmRleCBmODhi
YWQ2M2MyYmJkM2Q5Y2FiMDU2N2I5NWNiZGMyMzdkYTk1NTcyLi5lZTYzYTUxODlkM2YwNjQxZDAx
NWRjNzlhZTE3NDA5MjljYTlmYTIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLW9zY2lsbGF0
b3Jub2RlLWludGVyZmFjZS9vc2MtYmFzaWMtd2F2ZWZvcm0tZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtb3NjaWxsYXRvcm5vZGUtaW50ZXJmYWNlL29zYy1iYXNpYy13YXZlZm9ybS1l
eHBlY3RlZC50eHQKQEAgLTQsMTIgKzQsMTIgQEAgRkFJTCBFeGVjdXRpbmcgIlRlc3QgMCIgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHkKIEZB
SUwgRXhlY3V0aW5nICJUZXN0IDEiIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0
b3IgKGV2YWx1YXRpbmcgJ25ldyBPc2NpbGxhdG9yTm9kZShjb250ZXh0LCB7dHlwZTogJ3NpbmUn
LCBmcmVxdWVuY3k6IGZyZXFIen0pJykiCiBGQUlMIEV4ZWN1dGluZyAiVGVzdCAyIiBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IGZ1bmN0aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgT3NjaWxsYXRv
ck5vZGUoY29udGV4dCwge3R5cGU6ICdzaW5lJywgZnJlcXVlbmN5OiBmcmVxSHp9KScpIgogRkFJ
TCBFeGVjdXRpbmcgIlRlc3QgMyIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBmdW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3Rv
ciAoZXZhbHVhdGluZyAnbmV3IE9zY2lsbGF0b3JOb2RlKGNvbnRleHQsIHt0eXBlOiAnc2luZScs
IGZyZXF1ZW5jeTogZnJlcUh6fSknKSIKLUZBSUwgRXhlY3V0aW5nICJUZXN0IDQiIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
ZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyBQZXJpb2RpY1dh
dmUoCitGQUlMIEV4ZWN1dGluZyAiVGVzdCA0IiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGZ1bmN0aW9uIGlzIG5vdCBhIGNv
bnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgT3NjaWxsYXRvck5vZGUoCiAgICAgICAgICAgICAg
ICAgY29udGV4dCwKLSAgICAgICAgICAgICAgICB7cmVhbDogWzAsIDFdLCBpbWFnOiBbMCwgMV0s
IGRpc2FibGVOb3JtYWxpemF0aW9uOiB0cnVlfSknKSIKLUZBSUwgRXhlY3V0aW5nICJUZXN0IDUi
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyBQ
ZXJpb2RpY1dhdmUoCisgICAgICAgICAgICAgICAge3R5cGU6ICdjdXN0b20nLCBmcmVxdWVuY3k6
IGZyZXFIeiwgcGVyaW9kaWNXYXZlOiB3YXZlfSknKSIKK0ZBSUwgRXhlY3V0aW5nICJUZXN0IDUi
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyBP
c2NpbGxhdG9yTm9kZSgKICAgICAgICAgICAgICAgICBjb250ZXh0LAotICAgICAgICAgICAgICAg
IHtyZWFsOiBbMCwgMV0sIGltYWc6IFswLCAxXSwgZGlzYWJsZU5vcm1hbGl6YXRpb246IHRydWV9
KScpIgorICAgICAgICAgICAgICAgIHt0eXBlOiAnY3VzdG9tJywgZnJlcXVlbmN5OiBmcmVxSHos
IHBlcmlvZGljV2F2ZTogd2F2ZX0pJykiCiBQQVNTIEF1ZGl0IHJlcG9ydCAKIFBBU1MgPiBbVGVz
dCAwXSBTaW5lIHdhdmU6IDEwMCBIeiAKIFBBU1MgPiBbVGVzdCAxXSBTaW5lIHdhdmU6IC0xMDAg
SHogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>