<?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>217704</bug_id>
          
          <creation_ts>2020-10-14 05:44:16 -0700</creation_ts>
          <short_desc>Add support for GPUProcess WebAudio media element providers</short_desc>
          <delta_ts>2020-10-16 04:09:26 -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>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>217710</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1697679</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-14 05:44:16 -0700</bug_when>
    <thetext>Add support for GPUProcess WebAudio media element providers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697680</commentid>
    <comment_count>1</comment_count>
      <attachid>411313</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-14 05:45:31 -0700</bug_when>
    <thetext>Created attachment 411313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698053</commentid>
    <comment_count>2</comment_count>
      <attachid>411422</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-15 03:57:33 -0700</bug_when>
    <thetext>Created attachment 411422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698072</commentid>
    <comment_count>3</comment_count>
      <attachid>411428</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-15 05:02:48 -0700</bug_when>
    <thetext>Created attachment 411428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698077</commentid>
    <comment_count>4</comment_count>
      <attachid>411430</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-15 05:14:06 -0700</bug_when>
    <thetext>Created attachment 411430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698080</commentid>
    <comment_count>5</comment_count>
      <attachid>411431</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-15 05:22:58 -0700</bug_when>
    <thetext>Created attachment 411431
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698082</commentid>
    <comment_count>6</comment_count>
      <attachid>411432</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-15 05:30:14 -0700</bug_when>
    <thetext>Created attachment 411432
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698450</commentid>
    <comment_count>7</comment_count>
      <attachid>411432</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-10-15 20:24:12 -0700</bug_when>
    <thetext>Comment on attachment 411432
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:345
&gt; +    m_ringBuffer = m_ringBufferCallback ? m_ringBufferCallback(description, capacity) : nullptr;
&gt; +    if (!m_ringBuffer) {
&gt; +        m_ringBuffer = makeUnique&lt;CARingBuffer&gt;();
&gt; +        m_ringBuffer-&gt;allocate(description, capacity);
&gt; +    }

Is it possible for m_ringBufferCallback() to return NULL? If not, I would change this to something like 

if (m_ringBufferCallback)
    m_ringBuffer = m_ringBufferCallback(...)
else {
    m_ringBuffer = makeUnique&lt;...&gt;
    ...
}

&gt; Source/WebCore/platform/mediastream/mac/WebAudioSourceProviderCocoa.mm:144
&gt; +    m_dataSource-&gt;pushSamples(MediaTime(m_writeCount, m_inputDescription-&gt;sampleRate()), data, frameCount);

Good catch!

&gt; Source/WebKit/GPUProcess/media/RemoteAudioSourceProviderProxy.cpp:29
&gt; +#if ENABLE(GPU_PROCESS) &amp;&amp; ENABLE(WEB_AUDIO) &amp;&amp; PLATFORM(COCOA)

`ENABLE_WEB_AUDIO` is defined in PlatformEnableCocoa.h, so I think `ENABLE(WEB_AUDIO) &amp;&amp; PLATFORM(COCOA)` can be just `PLATFORM(COCOA)`

&gt; Source/WebKit/GPUProcess/media/RemoteAudioSourceProviderProxy.h:28
&gt; +#if ENABLE(GPU_PROCESS) &amp;&amp; ENABLE(WEB_AUDIO) &amp;&amp; PLATFORM(COCOA)

Ditto.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:889
&gt; +#if ENABLE(WEB_AUDIO) &amp;&amp; PLATFORM(COCOA)

Ditto.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:903
&gt; +#if ENABLE(WEB_AUDIO) &amp;&amp; PLATFORM(COCOA)

Ditto.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:314
&gt; +#if ENABLE(WEB_AUDIO) &amp;&amp; PLATFORM(COCOA)

Ditto.

&gt; Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:105
&gt; +#if PLATFORM(COCOA) &amp;&amp; ENABLE(WEB_AUDIO)

Ditto.

&gt; Source/WebKit/WebProcess/GPU/GPUProcessConnection.h:70
&gt; +#if PLATFORM(COCOA) &amp;&amp; ENABLE(WEB_AUDIO)

Ditto.

&gt; Source/WebKit/WebProcess/GPU/GPUProcessConnection.h:108
&gt; +#if PLATFORM(COCOA) &amp;&amp; ENABLE(WEB_AUDIO)

Ditto.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteAudioSourceProvider.cpp:29
&gt;  #if ENABLE(GPU_PROCESS) &amp;&amp; ENABLE(WEB_AUDIO) &amp;&amp; PLATFORM(COCOA)

Ditto.

&gt; Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp:29
&gt; +#include &quot;Logging.h&quot;

Is this needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698499</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-16 01:34:02 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #7)
&gt; Comment on attachment 411432 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411432&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:345
&gt; &gt; +    m_ringBuffer = m_ringBufferCallback ? m_ringBufferCallback(description, capacity) : nullptr;
&gt; &gt; +    if (!m_ringBuffer) {
&gt; &gt; +        m_ringBuffer = makeUnique&lt;CARingBuffer&gt;();
&gt; &gt; +        m_ringBuffer-&gt;allocate(description, capacity);
&gt; &gt; +    }
&gt; 
&gt; Is it possible for m_ringBufferCallback() to return NULL? If not, I would
&gt; change this to something like 
&gt; 
&gt; if (m_ringBufferCallback)
&gt;     m_ringBuffer = m_ringBufferCallback(...)
&gt; else {
&gt;     m_ringBuffer = makeUnique&lt;...&gt;
&gt;     ...
&gt; }

I did that initially but thought it was as good this way.
I&apos;ll change the ring buffer callback to pass a UniqueRef.

&gt; &gt; Source/WebCore/platform/mediastream/mac/WebAudioSourceProviderCocoa.mm:144
&gt; &gt; +    m_dataSource-&gt;pushSamples(MediaTime(m_writeCount, m_inputDescription-&gt;sampleRate()), data, frameCount);
&gt; 
&gt; Good catch!
&gt; 
&gt; &gt; Source/WebKit/GPUProcess/media/RemoteAudioSourceProviderProxy.cpp:29
&gt; &gt; +#if ENABLE(GPU_PROCESS) &amp;&amp; ENABLE(WEB_AUDIO) &amp;&amp; PLATFORM(COCOA)
&gt; 
&gt; `ENABLE_WEB_AUDIO` is defined in PlatformEnableCocoa.h, so I think
&gt; `ENABLE(WEB_AUDIO) &amp;&amp; PLATFORM(COCOA)` can be just `PLATFORM(COCOA)`

CMake build is defining these macros in Source/cmake/OptionsXXX.cmake so it might be safer to keep these.

&gt; &gt; Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp:29
&gt; &gt; +#include &quot;Logging.h&quot;
&gt; 
&gt; Is this needed?

Unified build issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698505</commentid>
    <comment_count>9</comment_count>
      <attachid>411547</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-16 01:48:15 -0700</bug_when>
    <thetext>Created attachment 411547
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698518</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-16 02:49:02 -0700</bug_when>
    <thetext>Committed r268577: &lt;https://trac.webkit.org/changeset/268577&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411547.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698519</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-16 02:50:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/70371753&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411313</attachid>
            <date>2020-10-14 05:45:31 -0700</date>
            <delta_ts>2020-10-15 03:57:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217704-20201014144528.patch</filename>
            <type>text/plain</type>
            <size>75908</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWYwYTE0OGEwNTQ2NjBj
NGQ0NzUwMDMyZTNiYmQ4NGYxOGYyNjY1Yi4uZjQyMGM5ZjdkZjBjZDRmOWM2N2I4OTRiNjZiOWU4
NzVjZDJkZjU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTEwLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
R1BVUHJvY2VzcyBXZWJBdWRpbyBtZWRpYSBlbGVtZW50IHByb3ZpZGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0lQLgorICAgICAgICBObyBuZXcg
dGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNl
UHJvdmlkZXI6OmlzSGFuZGxpbmdBVlBsYXllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg6CisgICAg
ICAgIChpc1R5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9B
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjpzZXRBdWRpb0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpzZXRSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFj
ayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmF1ZGlv
U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFT
dHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQy5oLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVh
bVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOjpNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
Ojp+TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6c2V0
Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6dHJhY2tFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnJlY2VpdmVOZXdBdWRpb1NhbXBsZXMpOgorCiAyMDIw
LTEwLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJj
YW0gdmlkZW8gZnJvbSBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSgpIHRvIDJE
IGNhbnZhcyBmYWlscyBvbiBTYWZhcmkgb24gaVBob25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1MDgwOTViYzZh
NTY3YWFkNzY0NmNjOWRlNDUxZDlkZjVlMzk1NWMuLmQ2MjQ5MTQ0ZmE1N2E2YmZlOTZjMDAzNGQx
MjYxODdiOWVlMTM1NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjAtMTAtMTQgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBHUFVQcm9jZXNzIFdlYkF1ZGlvIG1lZGlhIGVsZW1lbnQgcHJvdmlkZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3MDQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVAuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakNDbGllbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDQ2xpZW50OjpjcmVhdGVSaW5nQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakNDbGllbnQ6Om5ld0F1ZGlvU2FtcGxlcyk6CisgICAg
ICAgIChXZWJLaXQ6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDQ2xpZW50OjpBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQ0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6OmFkZEF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpyZW1vdmVBdWRpb1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjphdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OmF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6
On5SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlcjo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmg6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlcjo6c2V0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjphZGRQcm92aWRlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpyZW1vdmVQcm92aWRlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpkaXNwYXRj
aFRvVGhyZWFkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1h
bmFnZXI6OmF1ZGlvU3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpS
ZW1vdGVBdWRpbyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbjogQ29waWVkIGZy
b20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVDb2NvYS5tbS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcDoKKwogMjAyMC0xMC0xMSAgU2Ft
IFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1ByZWZlcmVuY2VzXSBJbnRy
b2R1Y2Ugc3RyaW5nIGJhc2VkIFNQSSBmb3IgV0tQcmVmZXJlbmNlcyB0byBhbGxvdyB0ZXN0cyB0
byBjaGFuZ2UgaW50ZXJuYWwgYmVoYXZpb3Igd2l0aG91dCBhbHdheXMgYWRkaW5nIGFkZGl0aW9u
YWwgU1BJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAxYWZjYjgwN2RkZTkwODg3ZDMxNGE3
NjcxMWI3ZDUzMTliYTgwNTg0Li40OTEwZTY3MTJlNjNhOWM5NWUzNjUzMTAzYWM0MDlhODE3NzY1
YjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTUzMiw2ICs1MzIsNyBAQCBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5jcHAKIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAorcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbQogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDEyYjNkMDM0NzM0ODFjNzhhMmUwMDE5NzVlYWViMDY0MjM1NmI5OTkuLmRmY2E2MWJj
YjkwNTMxYTliOTVhYTgwNzA3NzAwZTEyYjJjZjU5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxOTQsNyArNDE5NCw3IEBA
CiAJCUNEN0UwNTIyMTY1MUMyODIwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdFMDUy
MTE2NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tICovOyB9Owog
CQlDRDgzRDM2MjIxMTIyQTIxMDA3NkUxMUMgLyogRGVmZXJyYWJsZVRhc2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODNEMzVBMjExMTEwODIwMDc2
RTExQyAvKiBEZWZlcnJhYmxlVGFzay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUNEOEE3QkJCMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEOEE3QkI5MTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQy5tbSAqLzsgfTsKLQkJQ0Q4QTdCQkMxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDhBN0JCQTE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMuaCAqLzsgfTsKKwkJQ0Q4QTdCQkMxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDhBN0JCQTE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDRDhBQ0E4OTFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFj
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4
NzFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggKi87IH07CiAJ
CUNEOEFDQThGMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4RDFEMjM5NzE5
MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5oICovOyB9OwogCQlDRDhCNUE0MjE4MEQx
NDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCNUE0MDE4MEQx
NDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gKi87
IH07CkBAIC01MzE2LDcgKzUzMTYsNyBAQAogCQlGRDU4MUZBRjE1MjBGOTFGMDAzQTdBNzUgLyog
T3NjaWxsYXRvck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZENTgxRkFDMTUyMEY5MUYwMDNBN0E3NSAvKiBPc2NpbGxhdG9yTm9kZS5oICovOyB9
OwogCQlGRDU4MUZCNTE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDU4MUZCMjE1MjBGOTNCMDAz
QTdBNzUgLyogUGVyaW9kaWNXYXZlLmggKi87IH07CiAJCUZENjI5RUEzMTU0QjQ3MTYwMDA2RDAy
NiAvKiBBdWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2MjlFQTExNTRCNDcxNjAwMDZEMDI2IC8qIEF1ZGlvQmFz
aWNJbnNwZWN0b3JOb2RlLmggKi87IH07Ci0JCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBB
dWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRDYyRjUyRDE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3VyY2VQ
cm92aWRlckNsaWVudC5oICovOyB9OworCQlGRDYyRjUyRTE0NTg5OEQ4MDA5NEIwRUQgLyogQXVk
aW9Tb3VyY2VQcm92aWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQ2MkY1MkQxNDU4OThEODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJv
dmlkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlGRDY3MUE3ODE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
NjcxQTc1MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oICov
OyB9OwogCQlGRDZFRDJDNDEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yTm9k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RUQy
QzIxMzZCOEU0MjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCAqLzsgfTsKIAkJ
RkQ2RUQyQzgxMzZCOEU2NjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RUQyQzYxMzZCOEU2NjAw
M0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvci5oICovOyB9OwpAQCAtNzU5NCw2ICs3NTk0LDgg
QEAKIAkJNDE3MEEyRTkxRDhDMENDMDAwMzE4NDUyIC8qIEpTRE9NV3JhcHBlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVdyYXBwZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTcyNTNBODEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFD
b250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3MjUzQTkxMzU0QkJCQzAwMzYwRjJB
IC8qIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0RTkxRTI1MzVEQ0Q2MDBGRTQy
MDIgLyogTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0RTkyMDI1MzVEQ0REMDBGRTQyMDIgLyog
TWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2MTJBQjFFM0E5OTNCMDBDM0Q4MUQg
LyogTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBMaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcDsgcGF0aCA9IGxpYndlYnJ0Yy9M
aWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDE3NjEyQUMxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ01lZGlhRW5kcG9pbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oOyBw
YXRoID0gbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE3NjEyQUQxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOyBwYXRoID0gbGlid2VicnRjL0xp
YldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNzA0NCw2ICsxNzA0Niw4IEBACiAJCQkJMDdBNkQ4NDkxRkVCNzAwQzAwNjQ0MURF
IC8qIERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmggKi8sCiAJCQkJMDdBNkQ4NDcxRkVCNzAw
QjAwNjQ0MURFIC8qIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwICovLAogCQkJCTA3QTZE
ODRBMUZFQjcwMEQwMDY0NDFERSAvKiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmggKi8sCisJ
CQkJNDE3NEU5MUUyNTM1RENENjAwRkU0MjAyIC8qIE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5oICovLAorCQkJCTQxNzRFOTIwMjUzNURDREQwMEZFNDIwMiAvKiBN
ZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi8sCiAJCQkJMDc0
NEVDRUIxRTBDNEFFNTAwMEQwOTQ0IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQuaCAqLywKIAkJCQkw
NzQ0RUNFQzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSAqLywKIAkJ
CQkwN0VFNzZFRDFCRUE2MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
aCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU291
cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNl
UHJvdmlkZXIuaAppbmRleCBiMjI0NDlhMWNhMGNkOTVjNDQ4ZTUzYzhiODA3MWQ1NGJhODNjNDJi
Li42YzA5YzA4NjFiOTY2NDM5NjdiZGY1NjI1N2NjZTE5ZDRiY2MwYzc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5oCkBAIC00
Myw2ICs0Myw4IEBAIHB1YmxpYzoKICAgICAvLyBJZiBhIGNsaWVudCBpcyBzZXQsIHdlIGNhbGwg
aXQgYmFjayB3aGVuIHRoZSBhdWRpbyBmb3JtYXQgaXMgYXZhaWxhYmxlIG9yIGNoYW5nZXMuCiAg
ICAgdmlydHVhbCB2b2lkIHNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KikgeyB9
OwogCisgICAgdmlydHVhbCBib29sIGlzSGFuZGxpbmdBVlBsYXllcigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisKICAgICB2aXJ0dWFsIH5BdWRpb1NvdXJjZVByb3ZpZGVyKCkgPSBkZWZhdWx0
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMu
aAppbmRleCBmNjVjZjA4YzRmMmEwNjFmMTMyYjdjOWUxMTcyNjNhMzRhMTU4N2Q0Li4wMzNmMWM1
Yjg4ZGYzNTRmMWUwN2EyN2I4YjhhMjkzYzczYTM1MGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAtMjMsOSArMjMsNyBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQ19oCi0j
ZGVmaW5lIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDX2gKLQorI3ByYWdtYSBvbmNlCiAjaWYg
RU5BQkxFKFdFQl9BVURJTykgJiYgVVNFKE1FRElBVE9PTEJPWCkKIAogI2luY2x1ZGUgIkF1ZGlv
U291cmNlUHJvdmlkZXIuaCIKQEAgLTMzLDYgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvTWVkaWFU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIAogT0JKQ19DTEFT
UyBBVkFzc2V0VHJhY2s7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbTsKQEAgLTQ3LDcgKzQ2LDEw
IEBAIHR5cGVkZWYgc2lnbmVkIGxvbmcgQ01JdGVtQ291bnQ7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNzIENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbjsKIGNsYXNzIENBUmluZ0J1ZmZlcjsKK2NsYXNzIFBsYXRmb3JtQXVkaW9EYXRh
OwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4sIHB1YmxpYyBBdWRpb1NvdXJj
ZVByb3ZpZGVyIHsKIHB1YmxpYzoKQEAgLTU3LDYgKzU5LDExIEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFBsYXllckl0ZW0oQVZQbGF5ZXJJdGVtICopOwogICAgIHZvaWQgc2V0QXVkaW9UcmFjayhB
VkFzc2V0VHJhY2sgKik7CiAKKyAgICB1c2luZyBBdWRpb0NhbGxiYWNrID0gRnVuY3Rpb248dm9p
ZChkb3VibGUgc2FtcGxlUmF0ZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0
YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKT47CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRBdWRpb0NhbGxiYWNrKEF1ZGlvQ2FsbGJhY2smJik7CisgICAgdXNpbmcgUmluZ0J1ZmZlckNy
ZWF0aW9uQ2FsbGJhY2sgPSBGdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPihj
b25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKFJpbmdCdWZmZXJDcmVhdGlv
bkNhbGxiYWNrJiYpOworCiBwcml2YXRlOgogICAgIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
KEFWUGxheWVySXRlbSAqKTsKIApAQCAtNjYsNiArNzMsNyBAQCBwcml2YXRlOgogICAgIC8vIEF1
ZGlvU291cmNlUHJvdmlkZXIKICAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvU291
cmNlUHJvdmlkZXJDbGllbnQqKSBvdmVycmlkZTsKKyAgICBib29sIGlzSGFuZGxpbmdBVlBsYXll
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHN0YXRpYyB2b2lkIGluaXRD
YWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiwgdm9pZCosIHZvaWQqKik7CiAgICAgc3Rh
dGljIHZvaWQgZmluYWxpemVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZik7CkBAIC0x
MDAsMTAgKzEwOCwxNCBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgVGFwU3RvcmFnZTsKICAgICBS
ZWZQdHI8VGFwU3RvcmFnZT4gbV90YXBTdG9yYWdlOworICAgIEF1ZGlvQ2FsbGJhY2sgbV9hdWRp
b0NhbGxiYWNrOworICAgIFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrIG1fcmluZ0J1ZmZlckNh
bGxiYWNrOwogfTsKLSAgICAKKwogfQogCi0jZW5kaWYKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
QkVHSU4oV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMpCisgICAgc3RhdGljIGJv
b2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXImIHByb3ZpZGVyKSB7
IHJldHVybiBwcm92aWRlci5pc0hhbmRsaW5nQVZQbGF5ZXIoKTsgfQorU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19FTkQoKQogCi0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKSAmJiBV
U0UoTUVESUFUT09MQk9YKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDLm1tCmluZGV4IDVkY2E0MGUzYjc5ZTVkYTU1MDAyNTdjNTFiNDQ2MzEzYzQ4NDg4
MWQuLmEzODAyNjVjMGFkNDFlMjMwNTU4OWEwNTVjNzM5YjEzNDE1NmY3OGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTMzNyw4ICsz
MzcsMTIgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShDTUl0ZW1D
b3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWEKICAgICAvLyBNYWtlIHRoZSByaW5nYnVm
ZmVyIGxhcmdlIGVub3VnaCB0byBzdG9yZSBhdCBsZWFzdCB0d28gY2FsbGJhY2tzIHdvcnRoIG9m
IGF1ZGlvLCBvciAxcywgd2hpY2hldmVyIGlzIGxhcmdlci4KICAgICBzaXplX3QgY2FwYWNpdHkg
PSBzdGQ6Om1heChzdGF0aWNfY2FzdDxzaXplX3Q+KDIgKiBtYXhGcmFtZXMpLCBzdGF0aWNfY2Fz
dDxzaXplX3Q+KGtSaW5nQnVmZmVyRHVyYXRpb24gKiBzYW1wbGVSYXRlKSk7CiAKLSAgICBtX3Jp
bmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4oKTsKLSAgICBtX3JpbmdCdWZmZXIt
PmFsbG9jYXRlKENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbigqcHJvY2Vzc2luZ0Zvcm1hdCksIGNh
cGFjaXR5KTsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24geyAqcHJv
Y2Vzc2luZ0Zvcm1hdCB9OworICAgIG1fcmluZ0J1ZmZlciA9IG1fcmluZ0J1ZmZlckNhbGxiYWNr
ID8gbV9yaW5nQnVmZmVyQ2FsbGJhY2soZGVzY3JpcHRpb24sIGNhcGFjaXR5KSA6IG51bGxwdHI7
CisgICAgaWYgKCFtX3JpbmdCdWZmZXIpIHsKKyAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVu
aXF1ZTxDQVJpbmdCdWZmZXI+KCk7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVz
Y3JpcHRpb24sIGNhcGFjaXR5KTsKKyAgICB9CiAKICAgICAvLyBBdWRpb0J1ZmZlckxpc3QgaXMg
YSB2YXJpYWJsZS1sZW5ndGggc3RydWN0LCBzbyBjcmVhdGUgb24gdGhlIGhlYXAgd2l0aCBhIGdl
bmVyaWMgbmV3KCkgb3BlcmF0b3IKICAgICAvLyB3aXRoIGEgY3VzdG9tIHNpemUsIGFuZCBpbml0
aWFsaXplIHRoZSBzdHJ1Y3QgbWFudWFsbHkuCkBAIC00MTksNiArNDIzLDIxIEBAIHZvaWQgQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3MoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYg
dGFwLCBDTUl0ZW1Db3VuCiAgICAgICAgIG1lbXNldChidWZmZXIubURhdGEsIDAsIGJ1ZmZlci5t
RGF0YUJ5dGVTaXplKTsKICAgICB9CiAgICAgKm51bWJlckZyYW1lc091dCA9IDA7CisKKyAgICBp
ZiAobV9hdWRpb0NhbGxiYWNrKQorICAgICAgICBtX2F1ZGlvQ2FsbGJhY2sobV90YXBEZXNjcmlw
dGlvbi0+bVNhbXBsZVJhdGUsIGl0ZW1Db3VudCwgZW5kRnJhbWUsIGl0ZW1Db3VudCArIGVuZEZy
YW1lKTsKK30KKwordm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6c2V0QXVkaW9DYWxs
YmFjayhBdWRpb0NhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQVNTRVJUKCFtX2F2QXVkaW9N
aXgpOworICAgIG1fYXVkaW9DYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOworfQorCit2b2lk
IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpzZXRSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFj
ayhSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFTU0VSVCgh
bV9hdkF1ZGlvTWl4KTsKKyAgICBtX3JpbmdCdWZmZXJDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKaW5kZXggNTY5ZjkwMTk3
MGYyMmMyODI1NjdlYmIwYjYzYzNiYWVlY2UzODVkYy4uMmM3NjMwN2M4YTg3NmU1ODQwODBhNTNl
NTBjYTIyODcxYjNiM2Y4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcApAQCAtMzcs
NyArMzcsNyBAQAogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkK
LSNpbmNsdWRlICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIgorI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIgogI2VsaWYgRU5BQkxF
KFdFQl9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKExJQldFQlJUQykgJiYg
VVNFKEdTVFJFQU1FUikKICNpbmNsdWRlICJBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmgi
CiAjZWxzZQpAQCAtMTg4LDcgKzE4OCw3IEBAIEF1ZGlvU291cmNlUHJvdmlkZXIqIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjphdWRpb1NvdXJjZVByb3ZpZGVyKCkKIHsKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBpZiAoIW1fYXVkaW9Tb3VyY2VQcm92aWRlcikKLSAgICAgICAgbV9hdWRpb1Nv
dXJjZVByb3ZpZGVyID0gV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZSgqdGhp
cyk7CisgICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlciA9IE1lZGlhU3RyZWFtVHJhY2tBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKCp0aGlzKTsKICNlbGlmIFVTRShMSUJXRUJS
VEMpICYmIFVTRShHU1RSRUFNRVIpCiAgICAgaWYgKCFtX2F1ZGlvU291cmNlUHJvdmlkZXIpCiAg
ICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlciA9IEF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFt
ZXI6OmNyZWF0ZSgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggNDdjODVmODJlNmJjMjAy
Y2QwMTE4N2YxNzI0ODU1Zjc3YjY2NzcwMy4uMDliMDhmNDc4NmI1Mjc5YTIxOGEzN2NlOGU5ZDZi
OTY1YzQyYjYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNzEsNyArNzEsNyBAQCBjbGFzcyBX
RUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6
TWFpblJ1bkxvb3A+CiAgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVhbHRpbWVNZWRpYVNv
dXJjZSwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+CiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECi0gICAgLCBwcm90ZWN0ZWQgTG9nZ2VySGVscGVyCisgICAgLCBwdWJsaWMg
TG9nZ2VySGVscGVyCiAjZW5kaWYKIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hYTk1NzY1MGYzODNkNWI3YjRiMDY2YWRkM2FiMjQ0NTFmMDY4OTg1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFt
VHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgorI2luY2x1
ZGUgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDIGZpbmFsCisgICAgOiBwdWJsaWMgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMKKyAgICAsIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgorICAgICwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IGNyZWF0
ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOworICAgIH5NZWRpYVN0cmVhbVRyYWNrQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMoKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBNZWRpYVN0
cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKTsKKworICAgIC8vIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDCisjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECisgICAgV1RGOjpMb2dnZXJIZWxwZXImIGxvZ2dlckhlbHBlcigpIGZp
bmFsIHsgcmV0dXJuIG1fc291cmNlLmdldCgpOyB9CisjZW5kaWYKKworICAgIC8vIEF1ZGlvU291
cmNlUHJvdmlkZXIKKyAgICB2b2lkIHNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50
KikgZmluYWw7CisKKyAgICAvLyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAg
ICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KKyAg
ICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwg
eyB9CisgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpIGZpbmFsOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9T
YW1wbGVPYnNlcnZlcgorICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlh
VGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYsIHNpemVfdCkgZmluYWw7CisKKyAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogbV9j
YXB0dXJlU291cmNlIHsgbnVsbHB0ciB9OworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBt
X3NvdXJjZTsKKyAgICBib29sIG1fY29ubmVjdGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZW5h
YmxlZCB7IHRydWUgfTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMjc0ZjY0NTMxZGNhOWYyMjNiZGFmM2U3MTkxNDE3NzZhZmExN2RhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3Ry
ZWFtVHJhY2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtMCwwICsxLDg5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIk1lZGlhU3RyZWFtVHJh
Y2tBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMg
Y29uc3QgZG91YmxlIGtSaW5nQnVmZmVyRHVyYXRpb24gPSAxOworCitSZWY8TWVkaWFTdHJlYW1U
cmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDPiBNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc291cmNl
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhU3RyZWFtVHJhY2tBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQyhzb3VyY2UpKTsKK30KKworTWVkaWFTdHJlYW1UcmFja0F1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjpNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHNvdXJjZSkKKyAgICA6IG1fY2FwdHVyZVNv
dXJjZSgmc291cmNlKQorICAgICwgbV9zb3VyY2Uoc291cmNlLnNvdXJjZSgpKQorICAgICwgbV9l
bmFibGVkKHNvdXJjZS5lbmFibGVkKCkpCit7CisgICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxl
T2JzZXJ2ZXIoKnRoaXMpOworfQorCitNZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6On5NZWRpYVN0cmVhbVRyYWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKQor
eworICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBp
ZiAobV9jb25uZWN0ZWQgJiYgbV9jYXB0dXJlU291cmNlKQorICAgICAgICBtX2NhcHR1cmVTb3Vy
Y2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVRyYWNrQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xp
ZW50KiBjbGllbnQpCit7CisgICAgaWYgKHByb3ZpZGVyQ2xpZW50KCkgPT0gY2xpZW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICBzZXRQcm92aWRlckNsaWVudChjbGllbnQpOworCisgICAgaWYg
KCFtX2NhcHR1cmVTb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjbGllbnQgJiYg
IW1fY29ubmVjdGVkKSB7CisgICAgICAgIG1fY29ubmVjdGVkID0gdHJ1ZTsKKyAgICAgICAgbV9j
YXB0dXJlU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgfSBlbHNlIGlmICghY2xpZW50
ICYmIG1fY29ubmVjdGVkKSB7CisgICAgICAgIG1fY2FwdHVyZVNvdXJjZS0+cmVtb3ZlT2JzZXJ2
ZXIoKnRoaXMpOworICAgICAgICBtX2Nvbm5lY3RlZCA9IGZhbHNlOworICAgIH0KKyAgICBzZXRB
Y3RpdmUobV9lbmFibGVkICYmIG1fY29ubmVjdGVkKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVRy
YWNrQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQoreworICAgIG1fZW5hYmxlZCA9IHRyYWNrLmVuYWJs
ZWQoKTsKKyAgICBzZXRBY3RpdmUobV9lbmFibGVkICYmIG1fY29ubmVjdGVkKTsKK30KKworLy8g
TWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KK3ZvaWQgTWVkaWFTdHJlYW1U
cmFja0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29u
c3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVDb3VudCkKK3sKKyAg
ICByZWNlaXZlTmV3QXVkaW9TYW1wbGVzKGRhdGEsIGRlc2NyaXB0aW9uLCBmcmFtZUNvdW50KTsK
K30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKaW5kZXgg
ZWQ3ODMwYzRkMDYwNjU1NWU5OTAxN2I2ZGRhYWI1MzkxMWEwZWVlZC4uM2Y3MGUxNWQ5ZjI3ZjQz
YTdjNjhlYWE2NGRmOTUwNzMwZDQ5MWU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjUsMTAgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBF
TkFCTEUoV0VCX0FVRElPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShXRUJf
QVVESU8pCiAKICNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKLSNpbmNsdWRl
ICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkF1ZGlvU291cmNlUHJv
dmlkZXIuaCIKICNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgpAQCAtNDEsNDAgKzQwLDQ1IEBAIHR5cGVkZWYgc3RydWN0IEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbiBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb247CiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZvcm1hdERlc2NyaXB0aW9uICpDTUZvcm1hdERlc2NyaXB0
aW9uUmVmOwogdHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIgKkNNU2FtcGxlQnVm
ZmVyUmVmOwogCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIExvZ2dlckhlbHBlcjsKK30KKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb1NhbXBsZURhdGFTb3VyY2U7CiBjbGFzcyBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKIGNsYXNz
IFdlYkF1ZGlvQnVmZmVyTGlzdDsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMgZmluYWwKLSAgICA6IHB1YmxpYyBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyCi0gICAgLCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKLSAgICAsIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgeworY2xhc3MgV0VCQ09SRV9FWFBP
UlQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMKKyAgICA6IHB1YmxpYyBXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDPiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKTsKLSAgICB2aXJ0
dWFsIH5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpOworICAgIFdlYkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDKCk7CisgICAgfldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCk7
CiAKLSAgICB2b2lkIHByZXBhcmUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJik7
Ci0gICAgdm9pZCB1bnByZXBhcmUoKTsKK3Byb3RlY3RlZDoKKyAgICB2b2lkIHJlY2VpdmVOZXdB
dWRpb1NhbXBsZXMoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgc2l6ZV90KTsKIAotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQyhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOworICAgIHZvaWQg
c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpIHsgbV9pc0FjdGl2ZSA9IGlzQWN0aXZlOyB9CisKKyAg
ICB2b2lkIHNldFByb3ZpZGVyQ2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqIGNsaWVu
dCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQorICAgIEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQq
IHByb3ZpZGVyQ2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAorICAgIHZpcnR1YWwgV1RGOjpMb2dnZXJIZWxwZXImIGxvZ2dlckhlbHBlcigp
ID0gMDsKKyNlbmRpZgogCitwcml2YXRlOgogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXIKICAg
ICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCkgZmluYWw7Ci0gICAgdm9pZCBz
ZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCopIGZpbmFsOwogCi0gICAgLy8gTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCi0gICAgdm9pZCB0cmFja0VuZGVkKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9Ci0gICAgdm9pZCB0cmFja011dGVkQ2hhbmdl
ZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQotICAgIHZvaWQgdHJhY2tTZXR0
aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH0KLSAgICB2b2lk
IHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAg
ICB2b2lkIHByZXBhcmUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJik7CiAKLSAg
ICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCi0gICAgdm9pZCBh
dWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKyAg
ICBMb2NrIG1fbG9jazsKKyAgICBib29sIG1faXNBY3RpdmUgeyB0cnVlIH07CisgICAgQXVkaW9T
b3VyY2VQcm92aWRlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CiAKLSAgICBzaXplX3Qg
bV9saXN0QnVmZmVyU2l6ZSB7IDAgfTsKICAgICBPcHRpb25hbDxDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24+IG1faW5wdXREZXNjcmlwdGlvbjsKICAgICBPcHRpb25hbDxDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24+IG1fb3V0cHV0RGVzY3JpcHRpb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1
ZGlvQnVmZmVyTGlzdD4gbV9hdWRpb0J1ZmZlckxpc3Q7CkBAIC04MiwxNCArODYsOCBAQCBwcml2
YXRlOgogCiAgICAgdWludDY0X3QgbV93cml0ZUNvdW50IHsgMCB9OwogICAgIHVpbnQ2NF90IG1f
cmVhZENvdW50IHsgMCB9OwotICAgIEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqIG1fY2xpZW50
IHsgbnVsbHB0ciB9OwotICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBtX2NhcHR1cmVTb3Vy
Y2UgeyBudWxscHRyIH07Ci0gICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwot
ICAgIExvY2sgbV9sb2NrOwotICAgIGJvb2wgbV9jb25uZWN0ZWQgeyBmYWxzZSB9OwotICAgIGJv
b2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogfTsKIAogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
Lm1tCmluZGV4IDkxZTg4NjU3OTViNTlkMGJkYTM2MzQxNDgzZWFhMTIwYzFhZmRjNWQuLjQ1NTdl
YTRiOTgxZDVmNDMzYmFjOWYzZmM2NzE2ZTEyNDYzMjNjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQg
ImNvbmZpZy5oIgogI2ltcG9ydCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCIKIAot
I2lmIEVOQUJMRShXRUJfQVVESU8pICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxF
KFdFQl9BVURJTykKIAogI2ltcG9ydCAiQXVkaW9CdXMuaCIKICNpbXBvcnQgIkF1ZGlvQ2hhbm5l
bC5oIgpAQCAtNDcsMjcgKzQ3LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNv
bnN0IGRvdWJsZSBrUmluZ0J1ZmZlckR1cmF0aW9uID0gMTsKIAotUmVmPFdlYkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDPiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBzb3VyY2UpCitXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKHNvdXJjZSkpOwotfQotCi1X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHNvdXJjZSkKLSAgICA6IG1fY2FwdHVyZVNvdXJj
ZSgmc291cmNlKQotICAgICwgbV9zb3VyY2Uoc291cmNlLnNvdXJjZSgpKQotICAgICwgbV9lbmFi
bGVkKHNvdXJjZS5lbmFibGVkKCkpCi17Ci0gICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2Jz
ZXJ2ZXIoKnRoaXMpOwogfQogCiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fldlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCkKIHsKLSAgICBtX3NvdXJjZS0+cmVtb3ZlQXVkaW9T
YW1wbGVPYnNlcnZlcigqdGhpcyk7Ci0KLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9j
ayk7Ci0KLSAgICBpZiAobV9jb25uZWN0ZWQgJiYgbV9jYXB0dXJlU291cmNlKQotICAgICAgICBt
X2NhcHR1cmVTb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAogdm9pZCBXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpCkBAIC0xMDUsMjUgKzkwLDYgQEAgdm9pZCBXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFt
ZXNUb1AKICAgICBtX3JlYWRDb3VudCArPSBmcmFtZXNUb1Byb2Nlc3M7CiB9CiAKLXZvaWQgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVy
Q2xpZW50KiBjbGllbnQpCi17Ci0gICAgaWYgKG1fY2xpZW50ID09IGNsaWVudCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgbV9jbGllbnQgPSBjbGllbnQ7Ci0KLSAgICBpZiAoIW1fY2FwdHVyZVNv
dXJjZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fY2xpZW50ICYmICFtX2Nvbm5lY3Rl
ZCkgewotICAgICAgICBtX2Nvbm5lY3RlZCA9IHRydWU7Ci0gICAgICAgIG1fY2FwdHVyZVNvdXJj
ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwotICAgIH0gZWxzZSBpZiAoIW1fY2xpZW50ICYmIG1fY29u
bmVjdGVkKSB7Ci0gICAgICAgIG1fY2FwdHVyZVNvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMp
OwotICAgICAgICBtX2Nvbm5lY3RlZCA9IGZhbHNlOwotICAgIH0KLX0KLQogdm9pZCBXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24mIGZvcm1hdCkKIHsKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7
CkBAIC0xNDYsNyArMTEyLDcgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
cHJlcGFyZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mIGYKICAgICBtX2F1ZGlv
QnVmZmVyTGlzdCA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihtX291dHB1dERlc2Ny
aXB0aW9uLnZhbHVlKCkpOwogCiAgICAgaWYgKCFtX2RhdGFTb3VyY2UpCi0gICAgICAgIG1fZGF0
YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKGtSaW5nQnVmZmVyRHVyYXRp
b24gKiBzYW1wbGVSYXRlLCAqbV9jYXB0dXJlU291cmNlKTsKKyAgICAgICAgbV9kYXRhU291cmNl
ID0gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoa1JpbmdCdWZmZXJEdXJhdGlvbiAqIHNh
bXBsZVJhdGUsIGxvZ2dlckhlbHBlcigpKTsKICAgICBtX2RhdGFTb3VyY2UtPnNldElucHV0Rm9y
bWF0KG1faW5wdXREZXNjcmlwdGlvbi52YWx1ZSgpKTsKICAgICBtX2RhdGFTb3VyY2UtPnNldE91
dHB1dEZvcm1hdChtX291dHB1dERlc2NyaXB0aW9uLnZhbHVlKCkpOwogCkBAIC0xNTYsMzAgKzEy
MiwxMCBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKGNvbnN0
IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYgZgogICAgIH0pOwogfQogCi12b2lkIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnByZXBhcmUoKQotewotICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9sb2NrKTsKLQotICAgIG1faW5wdXREZXNjcmlwdGlvbiA9IFdURjo6bnVs
bG9wdDsKLSAgICBtX291dHB1dERlc2NyaXB0aW9uID0gV1RGOjpudWxsb3B0OwotICAgIG1fYXVk
aW9CdWZmZXJMaXN0ID0gbnVsbHB0cjsKLSAgICBtX2RhdGFTb3VyY2UgPSBudWxscHRyOwotICAg
IG1fbGlzdEJ1ZmZlclNpemUgPSAwOwotICAgIGlmIChtX2NhcHR1cmVTb3VyY2UpIHsKLSAgICAg
ICAgbV9jYXB0dXJlU291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7Ci0gICAgICAgIG1fY2Fw
dHVyZVNvdXJjZSA9IG51bGxwdHI7Ci0gICAgfQotfQotCi12b2lkIFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjp0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JiB0cmFjaykKLXsKLSAgICBtX2VuYWJsZWQgPSB0cmFjay5lbmFibGVkKCk7Ci19Ci0KIC8vIE1h
eSBnZXQgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCi12b2lkIFdlYkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwg
Y29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVDb3VudCkKK3ZvaWQgV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6OnJlY2VpdmVOZXdBdWRpb1NhbXBsZXMoY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBz
aXplX3QgZnJhbWVDb3VudCkKIHsKLSAgICBpZiAoIW1fZW5hYmxlZCB8fCAhbV9jb25uZWN0ZWQp
CisgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoZGVz
Y3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlv
bjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CkBAIC0xOTcsNCArMTQzLDQgQEAgdm9pZCBXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnMKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykgJiYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQKaW5kZXggMThkZDMxY2FlODBlZWY2ZTI3NWRiNTE3Mjg5YWY4YzgzMjRmYjgyNi4uYTFl
ZWMzZWJjNTgxMGIyYjlhOWE0MmU5YTIwNzcxODA2MTJkNDg4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0
CkBAIC0yMTksNiArMjE5LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQogICAgIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eQogICAgIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbgorICAgIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyCiAgICAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uCiAgICAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TGVnYWN5Q0RNU2Vzc2lvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKaW5kZXggNjg0NWNlOGJkNDBmNjcxYzMyNGI5YjI1MjRkOWM3NGRlZGYwMTFh
MC4uNDZiYWUzNzVjZDExYWUyMTMwMGE2YzU3ZGRlZjA1NDExYWM4MDNlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI3LDYgKzEyNyw3
IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24u
bWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24u
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1v
dGVNZWRpYVNlc3Npb25IZWxwZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDQ3Y2RmZTBlNjdkN2Q4ZWUyZGRiOGE1
Y2VlOGI2NjcwODdiZjk2N2EuLmQ1ODk4MzJkNGVlZDI3ZTY0OTQyNDAwZWMyOGU1NDAxMTU2MWUz
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dApAQCAtMTUzLDYgKzE1Myw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
ZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyTWVz
c2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNETUZhY3RvcnlQcm94eU1l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggNTEwYzc5ODVjNTg3ZDQ4NGZkMzIyOTA5OTUxNTMyMDhiMTkzMWZhNS4uZWFi
N2I0NjI1OWVmNTgwOWVlMWE4NzhkNmI4ZDBjOGIyMTEwNGMwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtMTc1LDYgKzE3NSw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdl
YlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIgXAogCVdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBcCiAJV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uIFwKKwlXZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlciBcCiAJV2ViUHJvY2Vzcy9XZWJTdG9yYWdl
L1N0b3JhZ2VBcmVhTWFwIFwKIAlXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50
Q29udHJvbGxlciBcCiAJV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9ySW50ZXJydXB0
RGlzcGF0Y2hlciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggY2M3Y2IxMjI2ZDg1NDI1YjAzNGZl
ZGVjNjU5MDI5YWE4OTI0YWMxOC4uYWFhMzQxMWMxMWRkNDk4ZDk1N2EzMTUxZjMzNDg2ZWExODI1
MTFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJMYXllckhvc3RpbmdDb250ZXh0
LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFj
dG9yeVByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5LmgiCkBA
IC01OSw2ICs2MCwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldE1v
Y2suaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTg3OCw2ICs4ODMsOTMgQEAgdm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5Ojp3b3VsZFRhaW50T3JpZ2luKHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEKICAgICBjb21wbGV0aW9uSGFuZGxlcihtX3BsYXllci0+d291bGRU
YWludE9yaWdpbihvcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkpKTsKIH0KIAorCisjaWYgRU5B
QkxFKFdFQl9BVURJTykKKyNpZiBQTEFURk9STShDT0NPQSkKK2NsYXNzIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDQ2xpZW50IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDQ2xpZW50PgorICAgICwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlOjpDbGllbnQKKyAgICAsIHB1YmxpYyBXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVy
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDQ2xpZW50PiBjcmVhdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDQ2xpZW50KGlkZW50
aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKKyAgICB9CisKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8Q0FSaW5nQnVmZmVyPiBjcmVhdGVSaW5nQnVmZmVyKGNvbnN0IENBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBjYXBhY2l0eSkKKyAgICB7CisgICAgICAgIG1f
cmluZ0J1ZmZlckRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgICAgIG1fcmluZ0J1ZmZl
ckNhcGFjaXR5ID0gY2FwYWNpdHk7CisgICAgICAgIGF1dG8gcmluZ0J1ZmZlciA9IG1ha2VVbmlx
dWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPiht
YWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkpOworICAgICAgICBy
aW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgY2FwYWNpdHkpOworICAgICAgICByZXR1
cm4gcmluZ0J1ZmZlcjsKKyAgICB9CisgICAgCisgICAgdm9pZCBuZXdBdWRpb1NhbXBsZXMoZG91
YmxlIHNhbXBsZVJhdGUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICB7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OkF1ZGlvU2FtcGxl
c0F2YWlsYWJsZSB7IG1faWRlbnRpZmllciwgTWVkaWFUaW1lKHN0YXJ0RnJhbWUsIHNhbXBsZVJh
dGUpLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUgfSwgMCk7CisgICAgfQor
Citwcml2YXRlOgorICAgIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDQ2xpZW50KFdlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
IGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgICAg
ICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgeworICAgIH0KKworICAg
IC8vIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyAgICB2b2lkIHN0b3JhZ2VDaGFu
Z2VkKFNoYXJlZE1lbW9yeSogbWVtb3J5KSBmaW5hbAorICAgIHsKKyAgICAgICAgU2hhcmVkTWVt
b3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAobWVtb3J5KQorICAgICAgICAgICAgbWVt
b3J5LT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KTsKKworICAgICAgICAvLyBGSVhNRTogU2VuZCB0aGUgYWN0dWFsIGRhdGEgc2l6ZSB3aXRo
IElQQ0hhbmRsZS4KKyNpZiBPUyhEQVJXSU4pIHx8IE9TKFdJTkRPV1MpCisgICAgICAgIHVpbnQ2
NF90IGRhdGFTaXplID0gaGFuZGxlLnNpemUoKTsKKyNlbHNlCisgICAgICAgIHVpbnQ2NF90IGRh
dGFTaXplID0gMDsKKyNlbmRpZgorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpBdWRpb1N0b3JhZ2VDaGFuZ2VkIHsg
bV9pZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwg
IGRhdGFTaXplIH0sIG1fcmluZ0J1ZmZlckRlc2NyaXB0aW9uLCBtX3JpbmdCdWZmZXJDYXBhY2l0
eSB9LCAwKTsKKyAgICB9CisKKyAgICAvLyBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50CisgICAg
dm9pZCBzZXRGb3JtYXQoc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUp
IGZpbmFsIHsgfQorCisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisKKyAgICBXZWJD
b3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9yaW5nQnVmZmVyRGVzY3JpcHRpb247Cisg
ICAgc2l6ZV90IG1fcmluZ0J1ZmZlckNhcGFjaXR5IHsgMCB9OworfTsKKyNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkKKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjphZGRBdWRpb1NvdXJj
ZVByb3ZpZGVyKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoIW1fcGxheWVyKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBwcm92aWRlciA9IG1fcGxheWVyLT5hdWRpb1Nv
dXJjZVByb3ZpZGVyKCk7CisgICAgaWYgKCFwcm92aWRlciB8fCAhaXM8QXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakM+KHByb3ZpZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBjbGll
bnQgPSBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQ0NsaWVudDo6Y3JlYXRlKG1faWQsIG1fd2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY29weVJlZigpKTsKKyAgICBhdXRvJiBhdlByb3ZpZGVyID0gZG93
bmNhc3Q8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+KCpwcm92aWRlcik7CisgICAgYXZQcm92
aWRlci5zZXRSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjayhbY2xpZW50ID0gY2xpZW50LmNvcHlS
ZWYoKV0oYXV0byBkZXNjcmlwdGlvbiwgYXV0byBjYXBhY2l0eSkgeworICAgICAgICByZXR1cm4g
Y2xpZW50LT5jcmVhdGVSaW5nQnVmZmVyKGRlc2NyaXB0aW9uLCBjYXBhY2l0eSk7CisgICAgfSk7
CisgICAgYXZQcm92aWRlci5zZXRBdWRpb0NhbGxiYWNrKFtjbGllbnQgPSBjbGllbnQuY29weVJl
ZigpXShkb3VibGUgc2FtcGxlUmF0ZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90
IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKSB7CisgICAgICAgIGNsaWVudC0+bmV3QXVk
aW9TYW1wbGVzKHNhbXBsZVJhdGUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFt
ZSk7CisgICAgfSk7CisgICAgcHJvdmlkZXItPnNldENsaWVudChjbGllbnQucHRyKCkpOworI2Vu
ZGlmIC8vIFBMQVRGT1JNKENPQ09BKQorfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OnJlbW92ZUF1ZGlvU291cmNlUHJvdmlkZXIoKQoreworfQorI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggOGUxZjI1ZTVjODQ2MTRmNDJjZmI1ZTBjOTMwNDRl
NWUzMjkxMmI1YS4uNGY2MGQ1MzM0NjIzYzM1YmQzMGNmZmFiMTIwMmEzN2YxMGQ3MjVlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oCkBAIC0zNSw3ICszNSw5IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5
ZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQ29va2llLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgpAQCAtMjY3LDYgKzI2OSwxMSBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2VuZENhY2hlZFN0YXRlKCk7CiAgICAgdm9pZCB0aW1lckZp
cmVkKCk7CiAKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHZvaWQgYWRkQXVkaW9Tb3VyY2VQ
cm92aWRlcigpOworICAgIHZvaWQgcmVtb3ZlQXVkaW9Tb3VyY2VQcm92aWRlcigpOworI2VuZGlm
CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxh
eWVyTG9nZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9sb2dnZXI7IH0KICAgICBjb25zdCB2b2lkKiBt
ZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0
IHZvaWQqPihtX2NvbmZpZ3VyYXRpb24ubG9nSWRlbnRpZmllcik7IH0KQEAgLTMwMyw2ICszMTAs
MTEgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVMZWdhY3lDRE1TZXNzaW9uSWRlbnRpZmllciBtX2xl
Z2FjeVNlc3Npb247CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgV2ViQ29y
ZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fcmluZ0J1ZmZlckRlc2NyaXB0aW9uOworICAg
IHNpemVfdCBtX3JpbmdCdWZmZXJDYXBhY2l0eSB7IDAgfTsKKyNlbmRpZgorCiAjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1OWEwYWNhYWExZjRjYzYxMzA3NTUy
NmYwOTM1NTE5NDgyZWYxYTk1Li44MzRiOGViYWRlNmMyM2MzYmQ2OGM2NWVhOTEzMTU4YzMzMmUw
ZjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTE2LDYgKzExNiwx
MSBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewog
ICAgIEVycm9yTG9nKCkgLT4gKFN0cmluZyBlcnJvckxvZykgU3luY2hyb25vdXMKICAgICBBY2Nl
c3NMb2coKSAtPiAoU3RyaW5nIGFjY2Vzc0xvZykgU3luY2hyb25vdXMKICNlbmRpZgorCisjaWYg
RU5BQkxFKFdFQl9BVURJTykKKyAgICBBZGRBdWRpb1NvdXJjZVByb3ZpZGVyKCkKKyAgICBSZW1v
dmVBdWRpb1NvdXJjZVByb3ZpZGVyKCkKKyNlbmRpZgogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAppbmRleCA3NzY5MGQwZGQ1MjcyYTA1ZTJhNzg0MjIyMThhMzViNDIyYjU3NTVhLi41
ZmNjNTM5NjQzMDI5OGMwYzY4MWJkMTZkY2U4ODRhNDcxZmM4ZTc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CkBAIC01NjQsNiArNTY0LDggQEAgV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0KIFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRT
ZXJ2aWNlRW50cnlQb2ludC5tbQogCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9j
b2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9p
b3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcApAQCAtNjY1LDYgKzY2Nyw3IEBAIFJlbW90
ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90
ZU1lZGlhU2Vzc2lvbkhlbHBlck1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU1ZjU0MTBjYmVlNWQwZTVl
OGRhNGY1ZmNiMGVkMzgwZDYzNDdhYjIuLjc3YjM3Y2NkY2MzZTFhOGE4NjliMGEyN2Y5ZDcwZTJh
MzJiODk4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMzQ1OCw2ICszNDU4LDExIEBACiAJCTQxNzIxOThBMjNCNjEyODIwMEFFNTY4
NiAvKiBMaWJXZWJSVENDb2RlY3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTGliV2ViUlRDQ29kZWNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDE3MjE5OEMyM0I2MTJFODAwQUU1Njg2IC8qIFJUQ0RlY29kZXJJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0RlY29kZXJJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzIxOThEMjNCNjJDN0MwMEFFNTY4NiAvKiBMaWJX
ZWJSVENDb2RlY3MubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0RTkxOTI1MzVENzc5MDBGRTQyMDIg
LyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxNzRFOTFBMjUzNUQ3NzkwMEZFNDIwMiAvKiBSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0
RTkxQjI1MzVEOTY3MDBGRTQyMDIgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc0
RTkxQzI1MzVEOTY3MDBGRTQyMDIgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NEU5MUQyNTM1
RDk2NzAwRkU0MjAyIC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5h
Z2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2OTAxMzIy
RkRENDFCMDBCMTU3NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Byb3ZpZGVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTc2RTg5MjIzQzM0RDZFMDAzRTgzRkUgLyogTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92aWRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2RTg5MzIzQzM0RDZGMDAzRTgzRkUgLyog
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVjb3Jk
ZXJQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NTYwLDYgKzU1
NjUsMTEgQEAKIAkJCQlDREQ1MzU2RjI0MEREMzQzMDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNz
aW9uLm1lc3NhZ2VzLmluICovLAogCQkJCUNEQkI0OUZDMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi8sCiAJCQkJQ0RCQjQ5RkIyNDBEOTc0QTAw
MTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaCAqLywKKwkJCQk0MTc0RTkx
QTI1MzVENzc5MDBGRTQyMDIgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAgKi8sCisJ
CQkJNDE3NEU5MTkyNTM1RDc3OTAwRkU0MjAyIC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIu
aCAqLywKKwkJCQk0MTc0RTkxQjI1MzVEOTY3MDBGRTQyMDIgLyogUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXIuY3BwICovLAorCQkJCTQxNzRFOTFDMjUzNUQ5NjcwMEZFNDIwMiAvKiBS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oICovLAorCQkJCTQxNzRFOTFEMjUzNUQ5
NjcwMEZFNDIwMiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5p
biAqLywKIAkJCQlDREFDMjBCRjIzRkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNLmNwcCAqLywK
IAkJCQlDREFDMjBCQTIzRkMyRjc0MDAyMURFRTMgLyogUmVtb3RlQ0RNLmggKi8sCiAJCQkJQ0RB
QzIwQjgyM0ZDMkY3MzAwMjFERUUzIC8qIFJlbW90ZUNETUNvbmZpZ3VyYXRpb24uaCAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKaW5kZXggMDFhZmZiNWZjNWVhZmExNmM4YjZmMWQ4Mjg1Y2NjNDkzZGI3OWE2Zi4uYWUy
YmRkZjgyOGVjNWUxZDU0MTc2YmE0YmU4MjQ0MzdmN2QxOTA1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3MuaCIKICNpbmNsdWRlICJMaWJX
ZWJSVENDb2RlY3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVDRE1GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJv
eHkuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCkBAIC0xMDEsNiArMTAy
LDE1IEBAIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246Om1l
ZGlhUGxheWVyTWFuYWdlcigpCiAgICAgcmV0dXJuICpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5z
dXBwbGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKTsKIH0KIAorI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoV0VCX0FVRElPKQorUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1h
bmFnZXImIEdQVVByb2Nlc3NDb25uZWN0aW9uOjphdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcigp
Cit7CisgICAgaWYgKCFtX2F1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKQorICAgICAgICBtX2F1
ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyID0gbWFrZVVuaXF1ZTxSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyTWFuYWdlcj4oKTsKKyAgICByZXR1cm4gKm1fYXVkaW9Tb3VyY2VQcm92aWRlck1hbmFn
ZXI7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiBSZW1vdGVDRE1G
YWN0b3J5JiBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Y2RtRmFjdG9yeSgpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXgg
MzgyMDk0MjU5ZmFjZWQyZWVlNDJlODVjNWNmOTQ3ZmQyMjE4OGI3MC4uYjBkZWEyNzlhYmRiMTI5
ODhmMmUzN2VlNjk1NjQ5MjgxZmI2ODk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNDAsNiArNDAsNyBAQCBjbGFz
cyBEYXRhUmVmZXJlbmNlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVDRE1GYWN0b3J5OwogY2xhc3Mg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeTsK
QEAgLTY2LDYgKzY3LDEwIEBAIHB1YmxpYzoKIAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ciYgbWVkaWFQbGF5ZXJNYW5hZ2VyKCk7CiAKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KFdFQl9BVURJTykKKyAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlciYgYXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIoKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKICAgICBSZW1vdGVDRE1GYWN0b3J5JiBjZG1GYWN0b3J5KCk7CiAjZW5kaWYKQEAgLTEw
MCw2ICsxMDUsOSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyPiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiAjZW5kaWYKKyNpZiBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI+IG1fYXVkaW9Tb3VyY2VQcm92aWRlck1h
bmFnZXI7CisjZW5kaWYKICNpZiBFTkFCTEUoVlA5KQogICAgIGJvb2wgbV9lbmFibGVWUDlEZWNv
ZGVyIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlVlA5U1dEZWNvZGVyIHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA4OWQ2ZmU5YThmYjMyMzg0YTI3ZTQy
NGY3OTk5MmU0ZGM0NGMxOTcyLi5lZjg2MDUyODhmZWI2NGE0Nzg0MWQwOGY2ZTk1NGIxYTM4YzRm
MzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE0u
aCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3Rl
TGVnYWN5Q0RNU2Vzc2lvbi5oIgpAQCAtMTE1LDYgKzExNiw5IEBAIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpCiAgICAgbV92aWRlb0xheWVyTWFu
YWdlci0+ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKTsKICNlbmRpZgogICAgIG1fbWFuYWdlci5kZWxl
dGVSZW1vdGVNZWRpYVBsYXllcihtX2lkKTsKKworICAgIGlmIChtX2F1ZGlvU291cmNlUHJvdmlk
ZXIpCisgICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlci0+Y2xvc2UoKTsKIH0KIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5
ZXJDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYgZG9jdW1lbnRTZWN1cml0eU9yaWdpbikKQEAgLTkyNCw4ICs5MjgsMTAgQEAgdW5zaWdu
ZWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0RlY29kZWRCeXRlQ291bnQoKSBjb25z
dAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiBBdWRpb1NvdXJjZVByb3ZpZGVyKiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmF1ZGlvU291cmNlUHJvdmlkZXIoKQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFtX2F1ZGlvU291cmNlUHJvdmlk
ZXIpCisgICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlciA9IFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXI6OmNyZWF0ZShtX2lkLCAqdGhpcyk7CisKKyAgICByZXR1cm4gbV9hdWRpb1NvdXJjZVBy
b3ZpZGVyLmdldCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4
IGRlNmYwZWIzN2I4Y2I5NWNiYWMwZjVjODI5NDM1ZDM4ZDdhOTcxZjkuLjM1MzMyMDgxZjVlMzc1
YTdiNmQzODI4M2M0ODRmNjAyY2I3ZDgwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApA
QCAtNTYsNiArNTYsNyBAQCBjbGFzcyBWaWRlb0xheWVyTWFuYWdlcjsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK2NsYXNzIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI7CiBjbGFzcyBVc2VyRGF0
YTsKIHN0cnVjdCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwpAQCAtMzc0LDYgKzM3NSw4IEBAIHByaXZh
dGU6CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSBtX2NhY2hlZFN0YXRlOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM+IG1fY2FjaGVkQnVmZmVyZWRU
aW1lUmFuZ2VzOwogCisgICAgUmVmUHRyPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IG1fYXVk
aW9Tb3VyY2VQcm92aWRlcjsKKwogICAgIEhhc2hNYXA8UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIsIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+PiBtX21lZGlhUmVz
b3VyY2VzOwogICAgIEhhc2hNYXA8VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPEF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlPj4gbV9hdWRpb1RyYWNrczsKICAgICBIYXNoTWFwPFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZT4+IG1f
dmlkZW9UcmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MGJiNmRiYmRlOGUxZTg1NzI1OWM0YmM3ZGU0OTI5N2YzOGRlMWI1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyLmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAorZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTWVkaWE7CisjZW5kaWYK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVm
PFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNy
ZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpMb2dn
ZXJIZWxwZXImIGhlbHBlcikKK3sKKyAgICBhdXRvIHByb3ZpZGVyID0gYWRvcHRSZWYoKm5ldyBS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKGlkZW50aWZpZXIsIGhlbHBlcikpOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuYXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXIoKS5hZGRQcm92aWRlcihwcm92aWRlci5jb3B5UmVmKCkpOworICAg
IHJldHVybiBwcm92aWRlcjsKK30KKworUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgV1RG
OjpMb2dnZXJIZWxwZXImIGhlbHBlcikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQor
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgbV9sb2dnZXIoaGVscGVyLmxvZ2dlcigp
KQorICAgICwgbV9sb2dJZGVudGlmaWVyKGhlbHBlci5sb2dJZGVudGlmaWVyKCkpCisjZW5kaWYK
K3sKKyAgICBVTlVTRURfUEFSQU0oaGVscGVyKTsKK30KKworUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlcjo6flJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoKQoreworfQorCit2b2lkIFJlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXI6OmNsb3NlKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2Vy
KCkucmVtb3ZlUHJvdmlkZXIobV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXpl
X3Qgc2l6ZSkKK3sKKyAgICByZWNlaXZlTmV3QXVkaW9TYW1wbGVzKGRhdGEsIGRlc2NyaXB0aW9u
LCBzaXplKTsKK30KKworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorV1RGTG9nQ2hhbm5lbCYg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIExvZ01lZGlhOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9S
TShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQyYzI5MmQw
OTgzYWM1OWMzMzc4ZjRjNjYwYjViNGEwZDI3ZTFjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5o
CkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YVBsYXllcklkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlciBmaW5hbAorICAg
IDogcHVibGljIFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDCisjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBwcm90ZWN0ZWQgV1RGOjpMb2dnZXJIZWxwZXIKKyNl
bmRpZgoreworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
cj4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxw
ZXImKTsKKyAgICB+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcigpOworCisgICAgdm9pZCBhdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25z
dCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90IHNpemUpOworICAgIHZv
aWQgY2xvc2UoKTsKKworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKK3ByaXZhdGU6CisgICAgUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlcihXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFdU
Rjo6TG9nZ2VySGVscGVyJik7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAvLyBX
ZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQworICAgIFdURjo6TG9nZ2VySGVs
cGVyJiBsb2dnZXJIZWxwZXIoKSBmaW5hbCB7IHJldHVybiAqdGhpczsgfQorCisgICAgLy8gV1RG
OjpMb2dnZXJIZWxwZXIKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIGNvbnN0IGNoYXIq
IGxvZ0NsYXNzTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyIjsgfQorICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsK
KyNlbmRpZgorCisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xv
Z2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisjZW5kaWYKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBF
TkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJjMWZkMDJkZGU4ZGY2OWJiYmI5
NDFmM2I2NmYxN2VhMDE3ZjU2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwCkBA
IC0wLDAgKzEsMTc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRp
b0J1ZmZlckxpc3QuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6UmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKQorICAgIDogbV9xdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSgiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIiLCBXb3JrUXVldWU6OlR5
cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkpCit7Cit9CisKK1Jl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
ck1hbmFnZXIoKQoreworICAgIHNldENvbm5lY3Rpb24obnVsbHB0cik7Cit9CisKK3ZvaWQgUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OnNldENvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uKQoreworICAgIGlmIChtX2Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbikK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25u
ZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworCisgICAgbV9j
b25uZWN0aW9uID0gV1RGTW92ZShjb25uZWN0aW9uKTsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24p
CisgICAgICAgIG1fY29ubmVjdGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCB0aGlzKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YWRk
UHJvdmlkZXIoUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIpCit7Cisg
ICAgQVNTRVJUKFdURjo6aXNNYWluUnVuTG9vcCgpKTsKKyAgICBzZXRDb25uZWN0aW9uKCZXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKSk7CisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6QWRkQXVkaW9Tb3VyY2VQcm92aWRlciB7
IH0sIHByb3ZpZGVyLT5pZGVudGlmaWVyKCkpOworI2VuZGlmCisKKyAgICBkaXNwYXRjaFRvVGhy
ZWFkKFt0aGlzLCBwcm92aWRlciA9IFdURk1vdmUocHJvdmlkZXIpXSgpIG11dGFibGUgeworICAg
ICAgICBhdXRvIGlkZW50aWZpZXIgPSBwcm92aWRlci0+aWRlbnRpZmllcigpOworCisgICAgICAg
IEFTU0VSVCghbV9wcm92aWRlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgICAgICBtX3By
b3ZpZGVycy5hZGQoaWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZW1vdGVBdWRpbz4oV1RGTW92ZShw
cm92aWRlcikpKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlcjo6cmVtb3ZlUHJvdmlkZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgQVNTRVJUKFdURjo6aXNNYWluUnVuTG9vcCgpKTsKKworI2lmIEVOQUJMRShXRUJf
QVVESU8pCisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
clByb3h5OjpSZW1vdmVBdWRpb1NvdXJjZVByb3ZpZGVyIHsgfSwgaWRlbnRpZmllcik7CisjZW5k
aWYKKworICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGlkZW50aWZpZXJdIHsKKyAgICAgICAg
QVNTRVJUKG1fcHJvdmlkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV9wcm92
aWRlcnMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyOjpkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4m
JiBjYWxsYmFjaykKK3sKKyAgICBtX3F1ZXVlLT5kaXNwYXRjaChXVEZNb3ZlKGNhbGxiYWNrKSk7
Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OmF1ZGlvU3RvcmFn
ZUNoYW5nZWQoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1l
bW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAg
IEFTU0VSVCghV1RGOjppc01haW5SdW5Mb29wKCkpOworCisgICAgYXV0byBpdGVyYXRvciA9IG1f
cHJvdmlkZXJzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fcHJvdmlk
ZXJzLmVuZCgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVW5hYmxlIHRv
IGZpbmQgcHJvdmlkZXIgJWxsdSBmb3Igc3RvcmFnZUNoYW5nZWQiLCBpZGVudGlmaWVyLnRvVUlu
dDY0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGl0ZXJhdG9yLT52YWx1ZS0+c2V0
U3RvcmFnZShpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwor
fQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSB0aW1l
LCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3Qg
ZW5kRnJhbWUpCit7CisgICAgQVNTRVJUKCFXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CisKKyAgICBh
dXRvIGl0ZXJhdG9yID0gbV9wcm92aWRlcnMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRl
cmF0b3IgPT0gbV9wcm92aWRlcnMuZW5kKCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWEsICJVbmFibGUgdG8gZmluZCBwcm92aWRlciAlbGx1IGZvciBhdWRpb1NhbXBsZXNBdmFp
bGFibGUiLCBpZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGl0ZXJhdG9yLT52YWx1ZS0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9m
RnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cit9CisKK1JlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVmPFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIpCisgICAgOiBtX3Byb3ZpZGVyKFdURk1vdmUocHJvdmlk
ZXIpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5p
cXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkpCit7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdl
KGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
KQoreworICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFy
ZWRNZW1vcnk+IG1lbW9yeTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBt
ZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRighbWVtb3J5LCBNZWRp
YSwgIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9yeSBmb3IgYXVkaW8gcHJvdmlkZXIgJWxs
dSIsIG1fcHJvdmlkZXItPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICB9CisKKyAgICBh
dXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3Jp
bmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAgICAgbV9yaW5n
QnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2Up
OworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkp
OworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVmZmVyLT5hbGxv
Y2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVu
aXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9
CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjph
dWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJh
bWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyAgICBpZiAo
IW1fYnVmZmVyKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiYnVmZmVyIGZv
ciBhdWRpbyBwcm92aWRlciAlbGx1IGlzIG51bGwiLCBtX3Byb3ZpZGVyLT5pZGVudGlmaWVyKCku
dG9VSW50NjQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIVdlYkF1ZGlv
QnVmZmVyTGlzdDo6aXNTdXBwb3J0ZWREZXNjcmlwdGlvbihtX2Rlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcykpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJVbmFibGUgdG8g
c3VwcG9ydCBkZXNjcmlwdGlvbiB3aXRoIGdpdmVuIG51bWJlciBvZiBmcmFtZXMgZm9yIGF1ZGlv
IHByb3ZpZGVyICVsbHUiLCBtX3Byb3ZpZGVyLT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVt
YmVyT2ZGcmFtZXMpOworCisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMo
c3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXIt
Pmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworCisgICAgbV9wcm92
aWRlci0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKCptX2J1ZmZlciwgbV9kZXNjcmlwdGlvbiwgbnVt
YmVyT2ZGcmFtZXMpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk0YjkyM2UxMzIxMTYzZjA0ODM0NGU2MWNjZGY5ZmRkODI3MjI5NjYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxXZWJD
b3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5n
QnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllcklkZW50aWZpZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
V2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjsKKworY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlck1hbmFnZXIgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2
ZXIgeworcHVibGljOgorICAgIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCk7Cisg
ICAgflJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGFkZFBy
b3ZpZGVyKFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyPiYmKTsKKyAgICB2b2lkIHJlbW92
ZVByb3ZpZGVyKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllcik7CisKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworCitwcml2
YXRlOgorICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCisgICAg
dm9pZCBkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CisKKyAgICAv
LyBNZXNzYWdlcworICAgIHZvaWQgYXVkaW9TdG9yYWdlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2Vi
Q29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMp
OworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciwgTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3Rh
cnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworCisgICAgdm9pZCBzZXRDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbiopOworCisgICAgY2xhc3MgUmVtb3RlQXVkaW8geworICAgICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBwdWJsaWM6CisgICAgICAgIGV4cGxpY2l0IFJlbW90
ZUF1ZGlvKFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyPiYmKTsKKworICAgICAgICB2b2lk
IHNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAg
ICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKworICAg
IHByaXZhdGU6CisgICAgICAgIFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyPiBtX3Byb3Zp
ZGVyOworICAgICAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlw
dGlvbjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9y
aW5nQnVmZmVyOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9CdWZm
ZXJMaXN0PiBtX2J1ZmZlcjsKKyAgICB9OworCisgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsK
KyAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisKKyAgICAvLyBiYWNr
Z3JvdW5kIHRocmVhZCBtZW1iZXIKKyAgICBIYXNoTWFwPFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvPj4gbV9wcm92aWRlcnM7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWNkNWNkNmQ4ZThhMjIzZGY2NWYz
ZjM1OWIyYWUwNTA1ZTNlYTY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdl
cy5pbgpAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIgTm90UmVm
Q291bnRlZCB7CisgICAgQXVkaW9TdG9yYWdlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVBsYXllcklk
ZW50aWZpZXIgaWQsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRs
ZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRf
dCBudW1iZXJPZkZyYW1lcykKKyAgICBBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2Ev
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCmluZGV4
IGFlN2E5ZDNhZjRiMzVkYmU1NTYzZTIyYTAzYzUyYzBkOTliYTdjNzQuLjRmM2RlNzczYzEyMzZm
MzMwZjU0MGE5YzhkNjQxMDBjZmIwNWJiYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGVDb2NvYS5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKIAorI2ltcG9ydCAiUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlci5oIgogI2ltcG9ydCA8V2ViQ29yZS9WaWRlb0xheWVyTWFuYWdlck9iakMuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyLmNwcAppbmRleCAxNzU3YTZhOWIxYjEyNTMwMTM1YWI4Zjc3YjFlYTU5ZjZiMDJlZGU4
Li41YjNlNzAwZTA5NThlMmZiZDU2OTE3ODA0MjcxZGVkYzk0ZmM1ZTQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oIgogCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvV2Vi
QXVkaW9CdWZmZXJMaXN0Lmg+CkBAIC0zMyw3ICszNCw2IEBACiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFt
ZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcjo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411422</attachid>
            <date>2020-10-15 03:57:33 -0700</date>
            <delta_ts>2020-10-15 05:03:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217704-20201015125730.patch</filename>
            <type>text/plain</type>
            <size>56319</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU3MDdhMjg4ODMyZmNh
YTlmNGUyNzhhZGZkZTRkYmUzYjAwNjYyZS4uYWNjMGNmYWZjNDcyNTdiZDAwNmYyZjJmNTUxOGVh
NjgxOTNiNjkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTEwLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
R1BVUHJvY2VzcyBXZWJBdWRpbyBtZWRpYSBlbGVtZW50IHByb3ZpZGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDIHNvIHRoYXQgYSBzcGVjaWZpYyByaW5nIGJ1ZmZlciBjYW4gYmUgcHJvdmlk
ZWQgYW5kIHRvIGJlIG5vdGlmaWVkIG9mIG5ldyBzYW1wbGVzIGJlaW5nIHB1c2hlZC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHdlYiBhdWRpbyB0ZXN0cyBydW4gd2l0aCBHUFVQcm9j
ZXNzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXI6OmlzSGFuZGxpbmdBVlBsYXllciBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVEYXRhU291cmNlOjpwdWxsU2FtcGxlc0ludGVy
bmFsKToKKyAgICAgICAgV2hlbiB3ZSBhcmUgdG9vIGNsb3NlIHRvIHRoZSBlbmQgb2YgYXZhaWxh
YmxlIGRhdGEsIGRvIGFzIGlmIHdlIGFyZSBwYXVzZWQgYW5kIGtlZXAgdGhlIHNhbWUgdGltZSBl
bnRyeSBmb3IgdGhlIG5leHQgcmVhZCBvcGVyYXRpb24uCisgICAgICAgIFRoaXMgd2lsbCBiYXNp
Y2FsbHkgbWFrZSB1cyB3YWl0IGZvciB0aGUgbmV4dCBwdXNoIG9mIGRhdGEgYmVmb3JlIHJlc3Rh
cnRpbmcgdG8gcmVhZCBzdWNjZXNmdWxseS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaDoKKyAgICAgICAgKGlzVHlw
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByb2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnNldEF1ZGlvQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnNldFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpyZWNl
aXZlZE5ld0F1ZGlvU2FtcGxlcyk6CisgICAgICAgIFdlIHNob3VsZCB1c2UgdGhlIGlucHV0IHNh
bXBsZSByYXRlIHRvIGNvbXB1dGUgdGhlIGlucHV0IG1lZGlhIHRpbWUuCisKIDIwMjAtMTAtMTQg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBh
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIgdG8gcmVjZWl2ZSBhdWRpbyBzYW1wbGVzIGZvciB3
ZWIgYXVkaW8gZnJvbSBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQwYzQ5YWI2ODZjNTM0MjRlOThj
MGYzODY1NDg2OTg2ZTUwNTA3ZmIuLjU1ZGRlYzEwODYxODE3NGMxM2E3MzU1NzMyM2NiMWExNzZj
NDdlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjAtMTAtMTUgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBHUFVQcm9j
ZXNzIFdlYkF1ZGlvIG1lZGlhIGVsZW1lbnQgcHJvdmlkZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3MDQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXIgd2hpY2ggcmVjZWl2ZXMgSVBDIG1lc3NhZ2VzIGZyb20gR1BVIHByb2Nl
c3MgZm9yIHdlYiBhdWRpbyBkYXRhLgorICAgICAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlciBzZW5kcyBpdCB0byB0aGUgaWRlbnRpZmllZCBSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyLgorCisgICAgICAgIEludHJvZHVjZSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkg
d2hpY2ggaXMgYSBjbGllbnQgdG8gdGhlIEFWIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLgor
ICAgICAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkgd2lsbCBzZW5kIElQQyBtZXNz
YWdlcyB0byBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlciB0byBzZW5kIGF1ZGlvIGRh
dGEgYW5kIGRlc2NyaXB0aW9uLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQ
cm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZVJpbmdCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6Om5ld0F1ZGlvU2Ft
cGxlcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6
c3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y3JlYXRlQXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFNob3VsZEVuYWJsZUF1ZGlv
U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJv
Y2Vzc0Nvbm5lY3Rpb246OmF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6Y2xvc2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpoYXNOZXdDbGllbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlcjo6c2V0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjphZGRQcm92aWRlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpyZW1vdmVQcm92aWRlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpkaXNwYXRj
aFRvVGhyZWFkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1h
bmFnZXI6OmF1ZGlvU3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpS
ZW1vdGVBdWRpbyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwOgorCiAyMDIwLTEwLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBJbnRyb2R1Y2UgYSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyIHRvIHJlY2VpdmUg
YXVkaW8gc2FtcGxlcyBmb3Igd2ViIGF1ZGlvIGZyb20gR1BVUHJvY2VzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDllODM4YTE4
OTNlNTMwZWE4ZTdhNDY4MWU3NmIxY2M1MzRlNzZkZDMuLmQ5MmQ0MjE4MTU1YjNhNmE0Mzg4MDRm
ZGQ2OTkzNDQxODgyYzYzYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxOTcsNyArNDE5Nyw3IEBACiAJCUNEN0UwNTIyMTY1
MUMyODIwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdFMDUyMTE2NTFBODQxMDBDMTIw
MUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tICovOyB9OwogCQlDRDgzRDM2MjIxMTIy
QTIxMDA3NkUxMUMgLyogRGVmZXJyYWJsZVRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODNEMzVBMjExMTEwODIwMDc2RTExQyAvKiBEZWZlcnJh
YmxlVGFzay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUNEOEE3QkJCMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEE3
QkI5MTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSAqLzsg
fTsKLQkJQ0Q4QTdCQkMxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhB
N0JCQTE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCAqLzsg
fTsKKwkJQ0Q4QTdCQkMxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhB
N0JCQTE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDhBQ0E4OTFE
MjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4NzFEMjM3QUEyMDBFQ0M1
OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggKi87IH07CiAJCUNEOEFDQThGMUQyMzk3
MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4RDFEMjM5NzE5MDBFQ0M1OUUgLyogTWVk
aWFSZW1vdGVTb2Z0TGluay5oICovOyB9OwogCQlDRDhCNUE0MjE4MEQxNDlBMDA4QjhFNjUgLyog
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCNUE0MDE4MEQxNDlBMDA4QjhFNjUgLyog
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gKi87IH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKaW5kZXgg
YjIyNDQ5YTFjYTBjZDk1YzQ0OGU1M2M4YjgwNzFkNTRiYTgzYzQyYi4uNmMwOWMwODYxYjk2NjQz
OTY3YmRmNTYyNTdjY2UxOWQ0YmNjMGM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJs
aWM6CiAgICAgLy8gSWYgYSBjbGllbnQgaXMgc2V0LCB3ZSBjYWxsIGl0IGJhY2sgd2hlbiB0aGUg
YXVkaW8gZm9ybWF0IGlzIGF2YWlsYWJsZSBvciBjaGFuZ2VzLgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCopIHsgfTsKIAorICAgIHZpcnR1YWwg
Ym9vbCBpc0hhbmRsaW5nQVZQbGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCiAgICAg
dmlydHVhbCB+QXVkaW9Tb3VyY2VQcm92aWRlcigpID0gZGVmYXVsdDsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNv
dXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxl
RGF0YVNvdXJjZS5tbQppbmRleCBlZjdmZDA0MzkxYzU4NGQwY2ViZTY2ODExN2ViYzdjMmE4YmEy
YWM3Li45ZTZkNTQ1MjU3MWQxZDVlNzU3NDgxNjY1NDZkNjg1OGUyZDY5YTg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3Vy
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1w
bGVEYXRhU291cmNlLm1tCkBAIC0yNjAsOSArMjYwLDggQEAgYm9vbCBBdWRpb1NhbXBsZURhdGFT
b3VyY2U6OnB1bGxTYW1wbGVzSW50ZXJuYWwoQXVkaW9CdWZmZXJMaXN0JiBidWZmZXIsIHNpemVf
dCYKICAgICAgICAgICAgIGlmICh0aW1lU3RhbXAgPj0gZW5kRnJhbWUpCiAgICAgICAgICAgICAg
ICAgbV9lbmRGcmFtZVdoZW5Ob3RFbm91Z2hEYXRhID0gZW5kRnJhbWU7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAvLyBXZSBhcmUgdG9vIGNsb3NlIGZyb20gZW5kRnJhbWUsIGxldCdz
IGJhY2sgdXAgYSBsaXR0bGUgYml0LgotICAgICAgICAgICAgdWludDY0X3QgZnJhbWVzQXZhaWxh
YmxlID0gZW5kRnJhbWUgLSB0aW1lU3RhbXA7Ci0gICAgICAgICAgICBtX291dHB1dFNhbXBsZU9m
ZnNldCAtPSBzYW1wbGVDb3VudCAtIGZyYW1lc0F2YWlsYWJsZTsKKyAgICAgICAgICAgIC8vIFdl
IGFyZSB0b28gY2xvc2UgZnJvbSBlbmRGcmFtZSwgbGV0J3Mgd2FpdCBmb3IgbW9yZSBkYXRhIHRv
IGJlIHB1c2hlZC4KKyAgICAgICAgICAgIG1fb3V0cHV0U2FtcGxlT2Zmc2V0IC09IHNhbXBsZUNv
dW50OwogICAgICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgW2xvZ0lkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSLCBvdXRwdXRTYW1wbGVPZmZzZXQgPSBt
X291dHB1dFNhbXBsZU9mZnNldCwgdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRo
aXMpXSB7CiAgICAgICAgICAgICAgICAgQUxXQVlTX0xPRyhsb2dJZGVudGlmaWVyLCAidXBkYXRp
bmcgb2Zmc2V0IHRvICIsIG91dHB1dFNhbXBsZU9mZnNldCk7CiAgICAgICAgICAgICB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9B
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKaW5kZXggZjY1
Y2YwOGM0ZjJhMDYxZjEzMmI3YzllMTE3MjYzYTM0YTE1ODdkNC4uYmE3ZjQ2ZDRiNTQ0YTFhZDFi
MWJmYjg5MGQwMmE3NWM4MjBjNzljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAog
ICovCiAKLSNpZm5kZWYgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakNfaAotI2RlZmluZSBBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQ19oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShXRUJf
QVVESU8pICYmIFVTRShNRURJQVRPT0xCT1gpCiAKQEAgLTMzLDYgKzMyLDcgQEAKICNpbmNsdWRl
IDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4K
IAogT0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbTsKQEAg
LTQ3LDcgKzQ3LDEwIEBAIHR5cGVkZWYgc2lnbmVkIGxvbmcgQ01JdGVtQ291bnQ7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNzIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIENBUmluZ0J1ZmZlcjsKK2NsYXNzIFBsYXRm
b3JtQXVkaW9EYXRhOwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4sIHB1Ymxp
YyBBdWRpb1NvdXJjZVByb3ZpZGVyIHsKIHB1YmxpYzoKQEAgLTU3LDYgKzYwLDExIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFBsYXllckl0ZW0oQVZQbGF5ZXJJdGVtICopOwogICAgIHZvaWQgc2V0
QXVkaW9UcmFjayhBVkFzc2V0VHJhY2sgKik7CiAKKyAgICB1c2luZyBBdWRpb0NhbGxiYWNrID0g
RnVuY3Rpb248dm9pZCh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cyk+OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXVkaW9DYWxsYmFjayhBdWRpb0NhbGxi
YWNrJiYpOworICAgIHVzaW5nIFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrID0gRnVuY3Rpb248
c3RkOjp1bmlxdWVfcHRyPENBUmluZ0J1ZmZlcj4oY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgc2l6ZV90KT47CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSaW5nQnVmZmVyQ3Jl
YXRpb25DYWxsYmFjayhSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjayYmKTsKKwogcHJpdmF0ZToK
ICAgICBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhBVlBsYXllckl0ZW0gKik7CiAKQEAgLTY2
LDYgKzc0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBBdWRpb1NvdXJjZVByb3ZpZGVyCiAgICAgdm9p
ZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50Kikgb3ZlcnJp
ZGU7CisgICAgYm9vbCBpc0hhbmRsaW5nQVZQbGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CiAKICAgICBzdGF0aWMgdm9pZCBpbml0Q2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdU
YXBSZWYsIHZvaWQqLCB2b2lkKiopOwogICAgIHN0YXRpYyB2b2lkIGZpbmFsaXplQ2FsbGJhY2so
TVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYpOwpAQCAtMTAwLDEwICsxMDksMTQgQEAgcHJpdmF0ZToK
IAogICAgIGNsYXNzIFRhcFN0b3JhZ2U7CiAgICAgUmVmUHRyPFRhcFN0b3JhZ2U+IG1fdGFwU3Rv
cmFnZTsKKyAgICBBdWRpb0NhbGxiYWNrIG1fYXVkaW9DYWxsYmFjazsKKyAgICBSaW5nQnVmZmVy
Q3JlYXRpb25DYWxsYmFjayBtX3JpbmdCdWZmZXJDYWxsYmFjazsKIH07Ci0gICAgCisKIH0KIAot
I2VuZGlmCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDKQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpB
dWRpb1NvdXJjZVByb3ZpZGVyJiBwcm92aWRlcikgeyByZXR1cm4gcHJvdmlkZXIuaXNIYW5kbGlu
Z0FWUGxheWVyKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKIAotI2VuZGlmCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykgJiYgVVNFKE1FRElBVE9PTEJPWCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQppbmRleCA1ZGNhNDBl
M2I3OWU1ZGE1NTAwMjU3YzUxYjQ0NjMxM2M0ODQ4ODFkLi5hODY0YWUzNmMzOTY5YjgyOTI2Yjhj
YjMyNGE2Y2JiMjg1ZjI2YmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLm1tCkBAIC0zMzcsOCArMzM3LDEyIEBAIHZvaWQgQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6OnByZXBhcmUoQ01JdGVtQ291bnQgbWF4RnJhbWVzLCBjb25zdCBBdWRp
b1N0cmVhCiAgICAgLy8gTWFrZSB0aGUgcmluZ2J1ZmZlciBsYXJnZSBlbm91Z2ggdG8gc3RvcmUg
YXQgbGVhc3QgdHdvIGNhbGxiYWNrcyB3b3J0aCBvZiBhdWRpbywgb3IgMXMsIHdoaWNoZXZlciBp
cyBsYXJnZXIuCiAgICAgc2l6ZV90IGNhcGFjaXR5ID0gc3RkOjptYXgoc3RhdGljX2Nhc3Q8c2l6
ZV90PigyICogbWF4RnJhbWVzKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihrUmluZ0J1ZmZlckR1cmF0
aW9uICogc2FtcGxlUmF0ZSkpOwogCi0gICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJp
bmdCdWZmZXI+KCk7Ci0gICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24oKnByb2Nlc3NpbmdGb3JtYXQpLCBjYXBhY2l0eSk7CisgICAgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uIHsgKnByb2Nlc3NpbmdGb3JtYXQgfTsKKyAgICBtX3Jp
bmdCdWZmZXIgPSBtX3JpbmdCdWZmZXJDYWxsYmFjayA/IG1fcmluZ0J1ZmZlckNhbGxiYWNrKGRl
c2NyaXB0aW9uLCBjYXBhY2l0eSkgOiBudWxscHRyOworICAgIGlmICghbV9yaW5nQnVmZmVyKSB7
CisgICAgICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPigpOworICAg
ICAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBjYXBhY2l0eSk7CisgICAg
fQogCiAgICAgLy8gQXVkaW9CdWZmZXJMaXN0IGlzIGEgdmFyaWFibGUtbGVuZ3RoIHN0cnVjdCwg
c28gY3JlYXRlIG9uIHRoZSBoZWFwIHdpdGggYSBnZW5lcmljIG5ldygpIG9wZXJhdG9yCiAgICAg
Ly8gd2l0aCBhIGN1c3RvbSBzaXplLCBhbmQgaW5pdGlhbGl6ZSB0aGUgc3RydWN0IG1hbnVhbGx5
LgpAQCAtNDE5LDYgKzQyMywyMSBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cm9jZXNzKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bgogICAgICAgICBt
ZW1zZXQoYnVmZmVyLm1EYXRhLCAwLCBidWZmZXIubURhdGFCeXRlU2l6ZSk7CiAgICAgfQogICAg
ICpudW1iZXJGcmFtZXNPdXQgPSAwOworCisgICAgaWYgKG1fYXVkaW9DYWxsYmFjaykKKyAgICAg
ICAgbV9hdWRpb0NhbGxiYWNrKGVuZEZyYW1lLCBpdGVtQ291bnQpOworfQorCit2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpzZXRBdWRpb0NhbGxiYWNrKEF1ZGlvQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3sKKyAgICBBU1NFUlQoIW1fYXZBdWRpb01peCk7CisgICAgbV9hdWRpb0NhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayk7Cit9CisKK3ZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnNldFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKFJpbmdCdWZmZXJDcmVhdGlvbkNh
bGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQVNTRVJUKCFtX2F2QXVkaW9NaXgpOworICAgIG1f
cmluZ0J1ZmZlckNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tCmluZGV4IGVjODhiZTM0YjE3MmUyZWEy
ZmViNDQ0NmU0YTBjNmZiZjhjZjExYTcuLjU1ZDNkZjQ4MDIzODczMDY0M2EzMmJkMWQ2MGFmOGRl
YTZjNjYyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQpA
QCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpyZWNl
aXZlZE5ld0F1ZGlvU2FtcGxlcyhjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0CiAgICAgaWYgKCFtX2Rh
dGFTb3VyY2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZGF0YVNvdXJjZS0+cHVzaFNhbXBs
ZXMoTWVkaWFUaW1lKG1fd3JpdGVDb3VudCwgbV9vdXRwdXREZXNjcmlwdGlvbi0+c2FtcGxlUmF0
ZSgpKSwgZGF0YSwgZnJhbWVDb3VudCk7CisgICAgbV9kYXRhU291cmNlLT5wdXNoU2FtcGxlcyhN
ZWRpYVRpbWUobV93cml0ZUNvdW50LCBtX2lucHV0RGVzY3JpcHRpb24tPnNhbXBsZVJhdGUoKSks
IGRhdGEsIGZyYW1lQ291bnQpOwogCiAgICAgbV93cml0ZUNvdW50ICs9IGZyYW1lQ291bnQ7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dC9DTWFrZUxpc3RzLnR4dAppbmRleCBjOWY2YjQzYjhlODcxYTMzZmRiZDY0MTkyN2Y0Yzg3ZDhh
ZGI0M2Y2Li41NWEzZGExYWQ5MzViZTQ1NjdmNTM5NjQzOTJjZDhhYTc0Yzk5MTliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKQEAgLTIxOSw2ICsyMTksNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlCiAg
ICAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5CiAgICAg
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIKICAgICBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24KICAgICBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA2ODQ1Y2U4YmQ0MGY2NzFjMzI0YjliMjUyNGQ5
Yzc0ZGVkZjAxMWEwLi40NmJhZTM3NWNkMTFhZTIxMzAwYTZjNTdkZGVmMDU0MTFhYzgwM2U5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
KysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0x
MjcsNiArMTI3LDcgQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHku
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5
Q0RNU2Vzc2lvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMDRkNDc5ODZhMDU2
NTkwYzhkMTljOTYxOWU5MjMzMjhkMjg0MWMxYi4uMDlhZmY2NWUxY2UwNGE1ZDlkMGYyZTVmMTFl
YmZiMjUxOTkzNGIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC0xNTQsNiArMTU0LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2EK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
ck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFj
dG9yeVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQppbmRleCBlZGQ1ODc4Mzg5MTkwZjNlZWM2NmNlOWUzYjE3Nzc5NmUx
Y2Y3Yjc2Li4zYzkxOTExNDc1MTZmNjQxZTRhZWZjNGFkYWRmZDJkODg1ZWRlYjE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNzUsNiArMTc1LDcgQEAgTUVTU0FHRV9SRUNFSVZF
UlMgPSBcCiAJV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBl
ciBcCiAJV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IFwK
IAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24gXAorCVdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyIFwKIAlXZWJQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAgXAogCVdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyIFwKIAlXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JJbnRlcnJ1cHREaXNwYXRjaGVyIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTYxNWE2YTc3MjVjZWIwYTA0NWVhMGE2NzE1YjRkNzg2YzZlODM3OQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQl9BVURJ
TykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJQcm94eT4gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpjcmVhdGUo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbiwgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMmIGxvY2FsUHJv
dmlkZXIpCit7CisgICAgYXV0byByZW1vdGVQcm92aWRlciA9IGFkb3B0UmVmKCpuZXcgUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlclByb3h5KGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikp
KTsKKworICAgIGxvY2FsUHJvdmlkZXIuc2V0UmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2soW3Jl
bW90ZVByb3ZpZGVyXShhdXRvIGRlc2NyaXB0aW9uLCBhdXRvIGNhcGFjaXR5KSB7CisgICAgICAg
IHJldHVybiByZW1vdGVQcm92aWRlci0+Y3JlYXRlUmluZ0J1ZmZlcihkZXNjcmlwdGlvbiwgY2Fw
YWNpdHkpOworICAgIH0pOworICAgIGxvY2FsUHJvdmlkZXIuc2V0QXVkaW9DYWxsYmFjayhbcmVt
b3RlUHJvdmlkZXJdKGF1dG8gc3RhcnRGcmFtZSwgYXV0byBudW1iZXJPZkZyYW1lcykgeworICAg
ICAgICByZW1vdGVQcm92aWRlci0+bmV3QXVkaW9TYW1wbGVzKHN0YXJ0RnJhbWUsIG51bWJlck9m
RnJhbWVzKTsKKyAgICB9KTsKKworICAgIHJldHVybiByZW1vdGVQcm92aWRlcjsKK30KKworUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJv
eHkoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQor
ICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCit7Cit9CisKK1JlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6flJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eSgp
ID0gZGVmYXVsdDsKKworc3RkOjp1bmlxdWVfcHRyPENBUmluZ0J1ZmZlcj4gUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5OjpjcmVhdGVSaW5nQnVmZmVyKGNvbnN0IENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBjYXBhY2l0eSkKK3sKKyAgICBtX3JpbmdC
dWZmZXJEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworICAgIG1fcmluZ0J1ZmZlckNhcGFjaXR5
ID0gY2FwYWNpdHk7CisgICAgYXV0byByaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZm
ZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG1ha2VVbmlxdWVSZWY8
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKSk7CisgICAgcmluZ0J1ZmZlci0+YWxsb2Nh
dGUoZGVzY3JpcHRpb24sIGNhcGFjaXR5KTsKKyAgICByZXR1cm4gcmluZ0J1ZmZlcjsKK30KKwor
dm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6Om5ld0F1ZGlvU2FtcGxlcyh1aW50
NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpB
dWRpb1NhbXBsZXNBdmFpbGFibGUgeyBtX2lkZW50aWZpZXIsIHN0YXJ0RnJhbWUsIG51bWJlck9m
RnJhbWVzIH0sIDApOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6
c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBtZW1vcnkpCit7CisgICAgU2hhcmVkTWVtb3J5
OjpIYW5kbGUgaGFuZGxlOworICAgIGlmIChtZW1vcnkpCisgICAgICAgIG1lbW9yeS0+Y3JlYXRl
SGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisKKyAg
ICAvLyBGSVhNRTogU2VuZCB0aGUgYWN0dWFsIGRhdGEgc2l6ZSB3aXRoIElQQ0hhbmRsZS4KKyNp
ZiBPUyhEQVJXSU4pIHx8IE9TKFdJTkRPV1MpCisgICAgdWludDY0X3QgZGF0YVNpemUgPSBoYW5k
bGUuc2l6ZSgpOworI2Vsc2UKKyAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IDA7CisjZW5kaWYKKyAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyOjpBdWRpb1N0b3JhZ2VDaGFuZ2VkIHsgbV9pZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgIGRhdGFTaXplIH0sIG1fcmluZ0J1ZmZlckRl
c2NyaXB0aW9uLCBtX3JpbmdCdWZmZXJDYXBhY2l0eSB9LCAwKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJf
QVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjcyMWFhOTAwMjY5MGYzZmY3ZmJhNWQ1ZmVjYjI0OTA3NTNlNzk5NTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCX0FVRElPKSAm
JiBQTEFURk9STShDT0NPQSkKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9Tb3VyY2VQ
cm92aWRlckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllcklkZW50aWZpZXIuaD4KKyNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM7CitjbGFzcyBDQVJpbmdCdWZmZXI7Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
UHJveHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5PgorICAgICwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQK
KyAgICAsIHB1YmxpYyBXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eT4gY3JlYXRl
KFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwg
V2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMmKTsKKyAgICB+UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5KCk7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FS
aW5nQnVmZmVyPiBjcmVhdGVSaW5nQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYsIHNpemVfdCk7CisgICAgdm9pZCBuZXdBdWRpb1NhbXBsZXModWludDY0X3Qg
c3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworCitwcml2YXRlOgorICAgIFJlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXJQcm94eShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworCisgICAgLy8gU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6
OkNsaWVudAorICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KikgZmluYWw7CisK
KyAgICAvLyBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50CisgICAgdm9pZCBzZXRGb3JtYXQoc2l6
ZV90IG51bWJlck9mQ2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIGZpbmFsIHsgfQorCisgICAg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8SVBD
OjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24gbV9yaW5nQnVmZmVyRGVzY3JpcHRpb247CisgICAgc2l6ZV90IG1fcmluZ0J1
ZmZlckNhcGFjaXR5IHsgMCB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JN
KENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IGNjN2NiMTIyNmQ4NTQyNWIwMzRmZWRlYzY1
OTAyOWFhODkyNGFjMTguLjJhYzViMjYzNGZhMDBlZWYyNGVjYjU4OTI1MjM3MzNkNTZhNzhjNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9U
cmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5LmgiCiAj
aW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5LmgiCkBAIC01OSw2ICs2MCwxMCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaD4KICNlbmRpZgog
CisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKQEAgLTgyLDYgKzg3LDcgQEAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
flJlbW90ZU1lZGlhUGxheWVyUHJveHkoKQogewogICAgIGlmIChtX3BlcmZvcm1UYXNrQXRNZWRp
YVRpbWVDb21wbGV0aW9uSGFuZGxlcikKICAgICAgICAgbV9wZXJmb3JtVGFza0F0TWVkaWFUaW1l
Q29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKKyAgICBzZXRTaG91bGRFbmFibGVBdWRp
b1NvdXJjZVByb3ZpZGVyKGZhbHNlKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjppbnZhbGlkYXRlKCkKQEAgLTg3OCw2ICs4ODQsMjggQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5Ojp3b3VsZFRhaW50T3JpZ2luKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEKICAgICBjb21wbGV0aW9uSGFuZGxlcihtX3BsYXllci0+d291bGRUYWludE9yaWdpbihvcmln
aW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkpKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCkKK3sKKyNpZiBFTkFCTEUoV0VCX0FVRElP
KSAmJiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvKiBwcm92aWRlciA9IG1fcGxheWVyLT5hdWRpb1NvdXJjZVByb3ZpZGVyKCk7
CisgICAgaWYgKCFwcm92aWRlciB8fCAhaXM8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+KHBy
b3ZpZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpjcmVhdGUobV9pZCwgbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jb3B5UmVmKCksIGRvd25jYXN0PEF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDPigqcHJvdmlkZXIpKTsKKyNlbmRpZgorfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OnNldFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIoYm9vbCBzaG91bGRFbmFi
bGUpCit7CisjaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYg
KGF1dG8qIHByb3ZpZGVyID0gbV9wbGF5ZXItPmF1ZGlvU291cmNlUHJvdmlkZXIoKSkKKyAgICAg
ICAgcHJvdmlkZXItPnNldENsaWVudChzaG91bGRFbmFibGUgPyBtX3JlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXIuZ2V0KCkgOiBudWxscHRyKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4
IDhlMWYyNWU1Yzg0NjE0ZjQyY2ZiNWUwYzkzMDQ0ZTVlMzI5MTJiNWEuLjlmOGQxNjFhYTcwMDI0
MmFkMmJhYTNiNjgyM2RiZDE2YTFkNTI4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtMzUsNyArMzUs
OSBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKICNpbmNsdWRlICJSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgogI2luY2x1ZGUgIlRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU291cmNl
UHJvdmlkZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFQbGF5ZXIuaD4KQEAgLTYzLDggKzY1LDExIEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5Owor
CiB1c2luZyBMYXllckhvc3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKIGNsYXNzIExheWVySG9z
dGluZ0NvbnRleHQ7CitjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk7CiBjbGFz
cyBSZW1vdGVBdWRpb1RyYWNrUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eTsKIGNsYXNzIFJlbW90ZVRleHRUcmFja1Byb3h5OwpAQCAtMjY3LDYgKzI3Miw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzZW5kQ2FjaGVkU3RhdGUoKTsKICAgICB2b2lkIHRpbWVyRmlyZWQo
KTsKIAorICAgIHZvaWQgY3JlYXRlQXVkaW9Tb3VyY2VQcm92aWRlcigpOworICAgIHZvaWQgc2V0
U2hvdWxkRW5hYmxlQXVkaW9Tb3VyY2VQcm92aWRlcihib29sKTsKKwogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7
IHJldHVybiBtX2xvZ2dlcjsgfQogICAgIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRp
ZmllcigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fY29uZmlndXJh
dGlvbi5sb2dJZGVudGlmaWVyKTsgfQpAQCAtMzAzLDYgKzMxMSwxMiBAQCBwcml2YXRlOgogICAg
IFJlbW90ZUxlZ2FjeUNETVNlc3Npb25JZGVudGlmaWVyIG1fbGVnYWN5U2Vzc2lvbjsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24gbV9yaW5nQnVmZmVyRGVzY3JpcHRpb247CisgICAgc2l6ZV90IG1fcmluZ0J1ZmZl
ckNhcGFjaXR5IHsgMCB9OworICAgIFJlZlB0cjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJv
eHk+IG1fcmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjsKKyNlbmRpZgorCiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1OWEwYWNhYWExZjRjYzYxMzA3NTUyNmYw
OTM1NTE5NDgyZWYxYTk1Li4xMDM0NTE0NDUzODViN2FmNjQ4YmY4NDhkMzc4OWY4OTM4NDdkNjU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTE2LDYgKzExNiwxMSBA
QCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAg
IEVycm9yTG9nKCkgLT4gKFN0cmluZyBlcnJvckxvZykgU3luY2hyb25vdXMKICAgICBBY2Nlc3NM
b2coKSAtPiAoU3RyaW5nIGFjY2Vzc0xvZykgU3luY2hyb25vdXMKICNlbmRpZgorCisjaWYgRU5B
QkxFKFdFQl9BVURJTykKKyAgICBDcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCkKKyAgICBTZXRT
aG91bGRFbmFibGVBdWRpb1NvdXJjZVByb3ZpZGVyKGJvb2wgc2hvdWxkRW5hYmxlKQorI2VuZGlm
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDAzMWUzZDJhZTg4ODcxMzUx
ODY5YTllOWU4YWJiOWY2MzNmMzhkYjguLjhmZmZjMzVlNzk2ODBhZDJmNTZjNWE4OGM3ZDZkYWYx
NWRkYWY4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU4LDYgKzU4LDcgQEAgTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcAogR1BVUHJvY2Vzcy9F
bnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvR1BVU2VydmljZUVudHJ5UG9pbnQubW0KIEdQVVBy
b2Nlc3MvaW9zL0dQVVByb2Nlc3NJT1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMu
bW0KK0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmNwcAog
R1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KIEdQ
VVByb2Nlc3MvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlclByb3h5LmNwcAogR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTU2NSw2ICs1NjYsNyBA
QCBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250ZW50U2Vydmlj
ZUVudHJ5UG9pbnQubW0KIAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2Ev
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KIFdlYlByb2Nlc3MvR1BVL21lZGlhL2Nv
Y29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1Jl
bW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5jcHAKQEAgLTY2Nyw2ICs2NjksNyBAQCBSZW1vdGVBdWRp
b1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAog
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRp
YVNlc3Npb25IZWxwZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZWRhMTVhMzVmZGJhNWM3MjI0MmMx
Mzg1OGY3MzhjNGFjNmY4YTBlLi41ZDMyYjdmZjAzOTE4ZDViZDk5ZGFkNmI1ZGYzOWViNmFhNzg3
MTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTM0MjQsNiArMzQyNCwxMSBAQAogCQk0MTI4N0Q0RDIyNUMxNjFGMDA5QTNFMjYgLyog
V2ViU29ja2V0VGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTb2Nr
ZXRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMkZGOTE2MjUzNzNGOUQw
MDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTJGRjkxNzI1MzczRjlEMDAxREYwMzYgLyogUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxMkZGOTIzMjUzODJCRDMwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxMkZGOTI0MjUzODJCRDUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTJG
RjkyNTI1MzgyQkQ1MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlck1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MkZGOTI2MjUzODJEODUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5
MjcyNTM4MkQ4NTAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDc1OUExREU4NEZCMDAw
MzlFQzY5IC8qIE5ldHdvcmtSVENNb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5ldHdvcmtSVENNb25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDEzMDc1OUIxREU4NEZCMDAwMzlFQzY5IC8qIE5ldHdvcmtSVENNb25pdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtSVENNb25pdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzA3NTlDMURFODRGQjAwMDM5RUM2OSAvKiBO
ZXR3b3JrUlRDTW9uaXRvci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3
b3JrUlRDTW9uaXRvci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTQ1MzIsNyArNDUzNyw3IEBACiAJCTlCMTIyOUQwMjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQ3
OTA4QzI1MzE0RDgzMDBFQzExQUIgLyogTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5QjQ3OTA4RTI1MzE1MUNDMDBFQzExQUIgLyogSlNJUENCaW5kaW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTSVBDQmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk5QjQ3OTA5MDI1MzE1NjMyMDBFQzExQUIgLyogTWVzc2FnZUFyZ3VtZW50RGVzY3Jp
cHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1lc3NhZ2VB
cmd1bWVudERlc2NyaXB0aW9ucy5jcHA7IHBhdGggPSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlv
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjQ3OTA5MDI1MzE1NjMyMDBF
QzExQUIgLyogTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNTQ5OUFDMjM2MkE2RjYwMERGOEJBNSAvKiBf
V0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0
TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QjU0OTlBRTIzNjJBN0E3MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3Vy
YXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmln
dXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QjAyMzYyQTdF
QzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01NTY4LDYgKzU1NzMsOSBAQAogCQkJCUNEQkI0OUZCMjQwRDk3NEEw
MDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8sCiAJCQkJNDEyRkY5
MTYyNTM3M0Y5RDAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwICovLAog
CQkJCTQxMkZGOTE3MjUzNzNGOUQwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
LmggKi8sCisJCQkJNDEyRkY5MjMyNTM4MkJEMzAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXJNYW5hZ2VyLmNwcCAqLywKKwkJCQk0MTJGRjkyNDI1MzgyQkQ1MDAxREYwMzYgLyog
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuaCAqLywKKwkJCQk0MTJGRjkyNTI1Mzgy
QkQ1MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMu
aW4gKi8sCiAJCQkJQ0RBQzIwQkYyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETS5jcHAgKi8s
CiAJCQkJQ0RBQzIwQkEyM0ZDMkY3NDAwMjFERUUzIC8qIFJlbW90ZUNETS5oICovLAogCQkJCUNE
QUMyMEI4MjNGQzJGNzMwMDIxREVFMyAvKiBSZW1vdGVDRE1Db25maWd1cmF0aW9uLmggKi8sCkBA
IC01NjIzLDYgKzU2MzEsOCBAQAogCQkJCUNEQkI0OUY4MjQwRDhENTMwMDE3QzI5MiAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREJCNDlGQTI0MEQ5NjNE
MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcCAqLywKIAkJCQlD
REJCNDlGOTI0MEQ5NjNDMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
LmggKi8sCisJCQkJNDEyRkY5MjYyNTM4MkQ4NTAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXJQcm94eS5jcHAgKi8sCisJCQkJNDEyRkY5MjcyNTM4MkQ4NTAwMURGMDM2IC8qIFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5oICovLAogCQkJCTA3MUJDNTdFMjNDQTVEQjEw
MDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwICovLAogCQkJCTA3MUJDNTdGMjND
QTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCAqLywKIAkJCQlDREFDMjA3
OTIzRkIxRTIxMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5j
cHAKaW5kZXggMDFhZmZiNWZjNWVhZmExNmM4YjZmMWQ4Mjg1Y2NjNDkzZGI3OWE2Zi4uZGQ4ZjFi
ZWZhNTg3NmNhZDU5NzA5NzliZjE1ZThhMTU3Yzk0YzczYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3MuaCIKICNpbmNsdWRlICJMaWJXZWJS
VENDb2RlY3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuaCIK
ICNpbmNsdWRlICJSZW1vdGVDRE1GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHku
aCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCkBAIC0xMDEsNiArMTAyLDE1
IEBAIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246Om1lZGlh
UGxheWVyTWFuYWdlcigpCiAgICAgcmV0dXJuICpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBw
bGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKTsKIH0KIAorI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoV0VCX0FVRElPKQorUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFn
ZXImIEdQVVByb2Nlc3NDb25uZWN0aW9uOjphdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcigpCit7
CisgICAgaWYgKCFtX2F1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKQorICAgICAgICBtX2F1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6
OmNyZWF0ZSgpOworICAgIHJldHVybiAqbV9hdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjsKK30K
KyNlbmRpZgorCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIFJlbW90ZUNETUZhY3Rvcnkm
IEdQVVByb2Nlc3NDb25uZWN0aW9uOjpjZG1GYWN0b3J5KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAzODIwOTQy
NTlmYWNlZDJlZWU0MmU4NWM1Y2Y5NDdmZDIyMTg4YjcwLi5hODFhYzY3ZmM0ZGRkNzk0MjVjZjI0
ODg5YjFjZjhkZjFjNTE2ZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIERhdGFS
ZWZlcmVuY2U7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZUNETUZhY3Rvcnk7CiBjbGFzcyBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5OwpAQCAtNjYs
NiArNjcsMTAgQEAgcHVibGljOgogCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtZWRp
YVBsYXllck1hbmFnZXIoKTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoV0VCX0FV
RElPKQorICAgIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyJiBhdWRpb1NvdXJjZVBy
b3ZpZGVyTWFuYWdlcigpOworI2VuZGlmCisKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQog
ICAgIFJlbW90ZUNETUZhY3RvcnkmIGNkbUZhY3RvcnkoKTsKICNlbmRpZgpAQCAtMTAwLDYgKzEw
NSw5IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+
IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKICNlbmRpZgorI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoV0VCX0FVRElPKQorICAgIFJlZlB0cjxSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlcj4gbV9hdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjsKKyNlbmRpZgog
I2lmIEVOQUJMRShWUDkpCiAgICAgYm9vbCBtX2VuYWJsZVZQOURlY29kZXIgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9lbmFibGVWUDlTV0RlY29kZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlci5jcHAKaW5kZXggYTk5MGNlN2Q1NTllOTg0OWJmOWVjZjcwOWNmM2RiMzIyZGMz
N2ZiOS4uZGNiZDRmOGFmYWZlMTA2MGE2MWIwMzA1MzFlMTJjNzRkMzdlZmZkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCkBAIC0yOCw2ICsyOCw5IEBACiAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQogCisj
aW5jbHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuaCIKKyNpbmNsdWRlICJS
ZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTWVkaWE7
CkBAIC0zOSw3ICs0MiwxNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVmPFJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXI+IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0ZShX
ZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxw
ZXImIGhlbHBlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyKGlkZW50aWZpZXIsIGhlbHBlcikpOworICAgIGF1dG8gcHJvdmlkZXIgPSBhZG9w
dFJlZigqbmV3IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoaWRlbnRpZmllciwgaGVscGVyKSk7
CisKKyAgICBhdXRvJiBncHVQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24uYXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKS5hZGRQcm92aWRlcihwcm92aWRlci5jb3B5
UmVmKCkpOworCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBncHVQcm9jZXNzQ29ubmVjdGlv
bi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Q3Jl
YXRlQXVkaW9Tb3VyY2VQcm92aWRlciB7IH0sIHByb3ZpZGVyLT5pZGVudGlmaWVyKCkpOworI2Vu
ZGlmCisKKyAgICByZXR1cm4gcHJvdmlkZXI7CiB9CiAKIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdURjo6TG9nZ2VySGVscGVyJiBoZWxwZXIpCkBAIC00OSw2ICs2MSw3IEBAIFJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoTWVkaWFQbGF5
ZXJJZGVudGlmaWVyIGlkZW50CiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoaGVscGVyLmxvZ0lkZW50
aWZpZXIoKSkKICNlbmRpZgogeworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgVU5V
U0VEX1BBUkFNKGhlbHBlcik7CiB9CiAKQEAgLTU4LDExICs3MSwxMyBAQCBSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyOjp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcigpCiAKIHZvaWQgUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlcjo6Y2xvc2UoKQogeworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5hdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcigpLnJlbW92ZVByb3ZpZGVyKG1faWRlbnRp
Zmllcik7CiB9CiAKLXZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6aGFzTmV3Q2xpZW50
KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqKQordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyOjpoYXNOZXdDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQogewot
ICAgIC8vIEZJWE1FOiByZWdpc3Rlci91bnJlZ2lzdGVyIGFzIG5lZWRlZC4KKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpTZXRTaG91bGRFbmFibGVB
dWRpb1NvdXJjZVByb3ZpZGVyIHsgISFjbGllbnQgfSwgbV9pZGVudGlmaWVyKTsKIH0KIAogdm9p
ZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uLCBzaXplX3Qgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU1MDJiYWU4OWY1YzVkMDQwYjVmMWIyZjJlY2E0NDdl
M2E5YjdlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTY5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRp
b0J1ZmZlckxpc3QuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6UmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKQorICAgIDogbV9xdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSgiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIiLCBXb3JrUXVldWU6OlR5
cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkpCit7Cit9CisKK1Jl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
ck1hbmFnZXIoKQoreworICAgIHNldENvbm5lY3Rpb24obnVsbHB0cik7Cit9CisKK3ZvaWQgUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OnNldENvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uKQoreworICAgIGlmIChtX2Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbikK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25u
ZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworCisgICAgbV9j
b25uZWN0aW9uID0gV1RGTW92ZShjb25uZWN0aW9uKTsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24p
CisgICAgICAgIG1fY29ubmVjdGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCB0aGlzKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YWRk
UHJvdmlkZXIoUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIpCit7Cisg
ICAgQVNTRVJUKFdURjo6aXNNYWluUnVuTG9vcCgpKTsKKyAgICBzZXRDb25uZWN0aW9uKCZXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKSk7CisKKyAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBwcm92aWRlciA9IFdURk1vdmUo
cHJvdmlkZXIpXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBwcm92aWRl
ci0+aWRlbnRpZmllcigpOworCisgICAgICAgIEFTU0VSVCghbV9wcm92aWRlcnMuY29udGFpbnMo
aWRlbnRpZmllcikpOworICAgICAgICBtX3Byb3ZpZGVycy5hZGQoaWRlbnRpZmllciwgbWFrZVVu
aXF1ZTxSZW1vdGVBdWRpbz4oV1RGTW92ZShwcm92aWRlcikpKTsKKyAgICB9KTsKK30KKwordm9p
ZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6cmVtb3ZlUHJvdmlkZXIoTWVkaWFQ
bGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKFdURjo6aXNNYWluUnVu
TG9vcCgpKTsKKworICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGlkZW50aWZpZXJdIHsKKyAg
ICAgICAgQVNTRVJUKG1fcHJvdmlkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICAgICAg
bV9wcm92aWRlcnMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lkIFJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZv
aWQoKT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX3F1ZXVlLT5kaXNwYXRjaChXVEZNb3ZlKGNhbGxi
YWNrKSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OmF1ZGlv
U3RvcmFnZUNoYW5nZWQoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNo
YXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQor
eworICAgIEFTU0VSVCghV1RGOjppc01haW5SdW5Mb29wKCkpOworCisgICAgYXV0byBpdGVyYXRv
ciA9IG1fcHJvdmlkZXJzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1f
cHJvdmlkZXJzLmVuZCgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVW5h
YmxlIHRvIGZpbmQgcHJvdmlkZXIgJWxsdSBmb3Igc3RvcmFnZUNoYW5nZWQiLCBpZGVudGlmaWVy
LnRvVUludDY0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGl0ZXJhdG9yLT52YWx1
ZS0+c2V0U3RvcmFnZShpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFt
ZXMpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjphdWRpb1Nh
bXBsZXNBdmFpbGFibGUoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90
IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIEFTU0VSVCghV1RG
Ojppc01haW5SdW5Mb29wKCkpOworCisgICAgYXV0byBpdGVyYXRvciA9IG1fcHJvdmlkZXJzLmZp
bmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fcHJvdmlkZXJzLmVuZCgpKSB7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVW5hYmxlIHRvIGZpbmQgcHJvdmlk
ZXIgJWxsdSBmb3IgYXVkaW9TYW1wbGVzQXZhaWxhYmxlIiwgaWRlbnRpZmllci50b1VJbnQ2NCgp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpdGVyYXRvci0+dmFsdWUtPmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShzdGFydEZyYW1lLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK1JlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVmPFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIpCisgICAgOiBtX3Byb3ZpZGVyKFdU
Rk1vdmUocHJvdmlkZXIpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVm
ZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkpCit7
Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlv
OjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdl
YkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzKQoreworICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAg
IFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1lbW9yeTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkg
eworICAgICAgICBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9y
eTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRigh
bWVtb3J5LCBNZWRpYSwgIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9yeSBmb3IgYXVkaW8g
cHJvdmlkZXIgJWxsdSIsIG1fcHJvdmlkZXItPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAg
ICB9CisKKyAgICBhdXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAg
ICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVh
ZE9ubHkoZmFsc2UpOworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVh
c2VOb25OdWxsKCkpOworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5n
QnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVm
ZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJl
bW90ZUF1ZGlvOjphdWRpb1NhbXBsZXNBdmFpbGFibGUodWludDY0X3Qgc3RhcnRGcmFtZSwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgaWYgKCFtX2J1ZmZlcikgeworICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYSwgImJ1ZmZlciBmb3IgYXVkaW8gcHJvdmlkZXIgJWxsdSBp
cyBudWxsIiwgbV9wcm92aWRlci0+aWRlbnRpZmllcigpLnRvVUludDY0KCkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKCFXZWJBdWRpb0J1ZmZlckxpc3Q6OmlzU3VwcG9ydGVk
RGVzY3JpcHRpb24obV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpKSB7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVW5hYmxlIHRvIHN1cHBvcnQgZGVzY3JpcHRpb24gd2l0
aCBnaXZlbiBudW1iZXIgb2YgZnJhbWVzIGZvciBhdWRpbyBwcm92aWRlciAlbGx1IiwgbV9wcm92
aWRlci0+aWRlbnRpZmllcigpLnRvVUludDY0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBlbmRGcmFtZSA9IHN0YXJ0RnJhbWUgKyBudW1iZXJPZkZyYW1lczsKKyAgICBt
X2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworCisgICAgbV9yaW5nQnVm
ZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1f
cmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXItPmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0
RnJhbWUpOworCisgICAgbV9wcm92aWRlci0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKCptX2J1ZmZl
ciwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit9CisKKyNlbmRpZiAvLyBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1OWZiNTRjNGE4MTU2YTllZmQwODEz
YmI3NjNlMDhlODMxNGNkYjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmgKQEAgLTAs
MCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBs
YXllcklkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjsKKworY2xhc3Mg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9u
OjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCkpOyB9CisgICAg
flJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGFkZFByb3Zp
ZGVyKFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyPiYmKTsKKyAgICB2b2lkIHJlbW92ZVBy
b3ZpZGVyKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllcik7CisKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworCitwcml2YXRl
OgorICAgIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCk7CisKKyAgICAvLyBJUEM6
OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlzcGF0Y2hUb1Ro
cmVhZChGdW5jdGlvbjx2b2lkKCk+JiYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZXMKKyAgICB2
b2lkIGF1ZGlvU3RvcmFnZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBj
b25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyAgICB2b2lkIGF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIHVpbnQ2NF90
IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKworICAgIHZvaWQgc2V0Q29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKTsKKworICAgIGNsYXNzIFJlbW90ZUF1ZGlvIHsKKyAg
ICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgcHVibGljOgorICAgICAgICBleHBs
aWNpdCBSZW1vdGVBdWRpbyhSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4mJik7CisKKyAg
ICAgICAgdm9pZCBzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3Qg
V2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMpOworICAgICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBS
ZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4gbV9wcm92aWRlcjsKKyAgICAgICAgV2ViQ29y
ZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4gbV9idWZmZXI7Cisg
ICAgfTsKKworICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CisgICAgUmVmUHRyPElQQzo6Q29u
bmVjdGlvbj4gbV9jb25uZWN0aW9uOworCisgICAgLy8gYmFja2dyb3VuZCB0aHJlYWQgbWVtYmVy
CisgICAgSGFzaE1hcDxXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVBdWRpbz4+IG1fcHJvdmlkZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGVhYzgwYWRmODMxNWJjYmRiOWM2OWRhNDlkOTM1NDhmZWZlMTI4OQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIEF1ZGlv
U3RvcmFnZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkLCBXZWJLaXQ6
OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisg
ICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBp
ZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKaW5kZXggMTc1N2E2YTliMWIxMjUzMDEzNWFi
OGY3N2IxZWE1OWY2YjAyZWRlOC4uNWIzZTcwMGUwOTU4ZTJmYmQ1NjkxNzgwNDI3MWRlZGM5NGZj
NWU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCIK
IAorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgpAQCAtMzMsNyArMzQsNiBAQAog
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
KCkK
</data>
<flag name="commit-queue"
          id="427620"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411428</attachid>
            <date>2020-10-15 05:02:48 -0700</date>
            <delta_ts>2020-10-15 05:23:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217704-20201015140246.patch</filename>
            <type>text/plain</type>
            <size>56421</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU3MDdhMjg4ODMyZmNh
YTlmNGUyNzhhZGZkZTRkYmUzYjAwNjYyZS4uYWNjMGNmYWZjNDcyNTdiZDAwNmYyZjJmNTUxOGVh
NjgxOTNiNjkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTEwLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
R1BVUHJvY2VzcyBXZWJBdWRpbyBtZWRpYSBlbGVtZW50IHByb3ZpZGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDIHNvIHRoYXQgYSBzcGVjaWZpYyByaW5nIGJ1ZmZlciBjYW4gYmUgcHJvdmlk
ZWQgYW5kIHRvIGJlIG5vdGlmaWVkIG9mIG5ldyBzYW1wbGVzIGJlaW5nIHB1c2hlZC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHdlYiBhdWRpbyB0ZXN0cyBydW4gd2l0aCBHUFVQcm9j
ZXNzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXI6OmlzSGFuZGxpbmdBVlBsYXllciBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVEYXRhU291cmNlOjpwdWxsU2FtcGxlc0ludGVy
bmFsKToKKyAgICAgICAgV2hlbiB3ZSBhcmUgdG9vIGNsb3NlIHRvIHRoZSBlbmQgb2YgYXZhaWxh
YmxlIGRhdGEsIGRvIGFzIGlmIHdlIGFyZSBwYXVzZWQgYW5kIGtlZXAgdGhlIHNhbWUgdGltZSBl
bnRyeSBmb3IgdGhlIG5leHQgcmVhZCBvcGVyYXRpb24uCisgICAgICAgIFRoaXMgd2lsbCBiYXNp
Y2FsbHkgbWFrZSB1cyB3YWl0IGZvciB0aGUgbmV4dCBwdXNoIG9mIGRhdGEgYmVmb3JlIHJlc3Rh
cnRpbmcgdG8gcmVhZCBzdWNjZXNmdWxseS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaDoKKyAgICAgICAgKGlzVHlw
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByb2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnNldEF1ZGlvQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnNldFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpyZWNl
aXZlZE5ld0F1ZGlvU2FtcGxlcyk6CisgICAgICAgIFdlIHNob3VsZCB1c2UgdGhlIGlucHV0IHNh
bXBsZSByYXRlIHRvIGNvbXB1dGUgdGhlIGlucHV0IG1lZGlhIHRpbWUuCisKIDIwMjAtMTAtMTQg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBh
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIgdG8gcmVjZWl2ZSBhdWRpbyBzYW1wbGVzIGZvciB3
ZWIgYXVkaW8gZnJvbSBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQwYzQ5YWI2ODZjNTM0MjRlOThj
MGYzODY1NDg2OTg2ZTUwNTA3ZmIuLjU1ZGRlYzEwODYxODE3NGMxM2E3MzU1NzMyM2NiMWExNzZj
NDdlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjAtMTAtMTUgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBHUFVQcm9j
ZXNzIFdlYkF1ZGlvIG1lZGlhIGVsZW1lbnQgcHJvdmlkZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3MDQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXIgd2hpY2ggcmVjZWl2ZXMgSVBDIG1lc3NhZ2VzIGZyb20gR1BVIHByb2Nl
c3MgZm9yIHdlYiBhdWRpbyBkYXRhLgorICAgICAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlciBzZW5kcyBpdCB0byB0aGUgaWRlbnRpZmllZCBSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyLgorCisgICAgICAgIEludHJvZHVjZSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkg
d2hpY2ggaXMgYSBjbGllbnQgdG8gdGhlIEFWIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLgor
ICAgICAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkgd2lsbCBzZW5kIElQQyBtZXNz
YWdlcyB0byBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlciB0byBzZW5kIGF1ZGlvIGRh
dGEgYW5kIGRlc2NyaXB0aW9uLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQ
cm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZVJpbmdCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6Om5ld0F1ZGlvU2Ft
cGxlcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6
c3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y3JlYXRlQXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFNob3VsZEVuYWJsZUF1ZGlv
U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJv
Y2Vzc0Nvbm5lY3Rpb246OmF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6Y2xvc2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpoYXNOZXdDbGllbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlcjo6c2V0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjphZGRQcm92aWRlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpyZW1vdmVQcm92aWRlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpkaXNwYXRj
aFRvVGhyZWFkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1h
bmFnZXI6OmF1ZGlvU3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpS
ZW1vdGVBdWRpbyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwOgorCiAyMDIwLTEwLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBJbnRyb2R1Y2UgYSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyIHRvIHJlY2VpdmUg
YXVkaW8gc2FtcGxlcyBmb3Igd2ViIGF1ZGlvIGZyb20gR1BVUHJvY2VzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDllODM4YTE4
OTNlNTMwZWE4ZTdhNDY4MWU3NmIxY2M1MzRlNzZkZDMuLmQ5MmQ0MjE4MTU1YjNhNmE0Mzg4MDRm
ZGQ2OTkzNDQxODgyYzYzYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxOTcsNyArNDE5Nyw3IEBACiAJCUNEN0UwNTIyMTY1
MUMyODIwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdFMDUyMTE2NTFBODQxMDBDMTIw
MUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tICovOyB9OwogCQlDRDgzRDM2MjIxMTIy
QTIxMDA3NkUxMUMgLyogRGVmZXJyYWJsZVRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODNEMzVBMjExMTEwODIwMDc2RTExQyAvKiBEZWZlcnJh
YmxlVGFzay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUNEOEE3QkJCMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEE3
QkI5MTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSAqLzsg
fTsKLQkJQ0Q4QTdCQkMxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhB
N0JCQTE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCAqLzsg
fTsKKwkJQ0Q4QTdCQkMxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhB
N0JCQTE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDhBQ0E4OTFE
MjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4NzFEMjM3QUEyMDBFQ0M1
OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggKi87IH07CiAJCUNEOEFDQThGMUQyMzk3
MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhBQ0E4RDFEMjM5NzE5MDBFQ0M1OUUgLyogTWVk
aWFSZW1vdGVTb2Z0TGluay5oICovOyB9OwogCQlDRDhCNUE0MjE4MEQxNDlBMDA4QjhFNjUgLyog
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCNUE0MDE4MEQxNDlBMDA4QjhFNjUgLyog
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gKi87IH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKaW5kZXgg
YjIyNDQ5YTFjYTBjZDk1YzQ0OGU1M2M4YjgwNzFkNTRiYTgzYzQyYi4uNmMwOWMwODYxYjk2NjQz
OTY3YmRmNTYyNTdjY2UxOWQ0YmNjMGM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJs
aWM6CiAgICAgLy8gSWYgYSBjbGllbnQgaXMgc2V0LCB3ZSBjYWxsIGl0IGJhY2sgd2hlbiB0aGUg
YXVkaW8gZm9ybWF0IGlzIGF2YWlsYWJsZSBvciBjaGFuZ2VzLgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCopIHsgfTsKIAorICAgIHZpcnR1YWwg
Ym9vbCBpc0hhbmRsaW5nQVZQbGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCiAgICAg
dmlydHVhbCB+QXVkaW9Tb3VyY2VQcm92aWRlcigpID0gZGVmYXVsdDsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNv
dXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxl
RGF0YVNvdXJjZS5tbQppbmRleCBlZjdmZDA0MzkxYzU4NGQwY2ViZTY2ODExN2ViYzdjMmE4YmEy
YWM3Li45ZTZkNTQ1MjU3MWQxZDVlNzU3NDgxNjY1NDZkNjg1OGUyZDY5YTg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3Vy
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1w
bGVEYXRhU291cmNlLm1tCkBAIC0yNjAsOSArMjYwLDggQEAgYm9vbCBBdWRpb1NhbXBsZURhdGFT
b3VyY2U6OnB1bGxTYW1wbGVzSW50ZXJuYWwoQXVkaW9CdWZmZXJMaXN0JiBidWZmZXIsIHNpemVf
dCYKICAgICAgICAgICAgIGlmICh0aW1lU3RhbXAgPj0gZW5kRnJhbWUpCiAgICAgICAgICAgICAg
ICAgbV9lbmRGcmFtZVdoZW5Ob3RFbm91Z2hEYXRhID0gZW5kRnJhbWU7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAvLyBXZSBhcmUgdG9vIGNsb3NlIGZyb20gZW5kRnJhbWUsIGxldCdz
IGJhY2sgdXAgYSBsaXR0bGUgYml0LgotICAgICAgICAgICAgdWludDY0X3QgZnJhbWVzQXZhaWxh
YmxlID0gZW5kRnJhbWUgLSB0aW1lU3RhbXA7Ci0gICAgICAgICAgICBtX291dHB1dFNhbXBsZU9m
ZnNldCAtPSBzYW1wbGVDb3VudCAtIGZyYW1lc0F2YWlsYWJsZTsKKyAgICAgICAgICAgIC8vIFdl
IGFyZSB0b28gY2xvc2UgZnJvbSBlbmRGcmFtZSwgbGV0J3Mgd2FpdCBmb3IgbW9yZSBkYXRhIHRv
IGJlIHB1c2hlZC4KKyAgICAgICAgICAgIG1fb3V0cHV0U2FtcGxlT2Zmc2V0IC09IHNhbXBsZUNv
dW50OwogICAgICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgW2xvZ0lkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSLCBvdXRwdXRTYW1wbGVPZmZzZXQgPSBt
X291dHB1dFNhbXBsZU9mZnNldCwgdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRo
aXMpXSB7CiAgICAgICAgICAgICAgICAgQUxXQVlTX0xPRyhsb2dJZGVudGlmaWVyLCAidXBkYXRp
bmcgb2Zmc2V0IHRvICIsIG91dHB1dFNhbXBsZU9mZnNldCk7CiAgICAgICAgICAgICB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9B
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKaW5kZXggZjY1
Y2YwOGM0ZjJhMDYxZjEzMmI3YzllMTE3MjYzYTM0YTE1ODdkNC4uYmE3ZjQ2ZDRiNTQ0YTFhZDFi
MWJmYjg5MGQwMmE3NWM4MjBjNzljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAog
ICovCiAKLSNpZm5kZWYgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakNfaAotI2RlZmluZSBBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQ19oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShXRUJf
QVVESU8pICYmIFVTRShNRURJQVRPT0xCT1gpCiAKQEAgLTMzLDYgKzMyLDcgQEAKICNpbmNsdWRl
IDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4K
IAogT0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbTsKQEAg
LTQ3LDcgKzQ3LDEwIEBAIHR5cGVkZWYgc2lnbmVkIGxvbmcgQ01JdGVtQ291bnQ7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNzIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIENBUmluZ0J1ZmZlcjsKK2NsYXNzIFBsYXRm
b3JtQXVkaW9EYXRhOwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4sIHB1Ymxp
YyBBdWRpb1NvdXJjZVByb3ZpZGVyIHsKIHB1YmxpYzoKQEAgLTU3LDYgKzYwLDExIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFBsYXllckl0ZW0oQVZQbGF5ZXJJdGVtICopOwogICAgIHZvaWQgc2V0
QXVkaW9UcmFjayhBVkFzc2V0VHJhY2sgKik7CiAKKyAgICB1c2luZyBBdWRpb0NhbGxiYWNrID0g
RnVuY3Rpb248dm9pZCh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cyk+OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXVkaW9DYWxsYmFjayhBdWRpb0NhbGxi
YWNrJiYpOworICAgIHVzaW5nIFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrID0gRnVuY3Rpb248
c3RkOjp1bmlxdWVfcHRyPENBUmluZ0J1ZmZlcj4oY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgc2l6ZV90KT47CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSaW5nQnVmZmVyQ3Jl
YXRpb25DYWxsYmFjayhSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjayYmKTsKKwogcHJpdmF0ZToK
ICAgICBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhBVlBsYXllckl0ZW0gKik7CiAKQEAgLTY2
LDYgKzc0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBBdWRpb1NvdXJjZVByb3ZpZGVyCiAgICAgdm9p
ZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50Kikgb3ZlcnJp
ZGU7CisgICAgYm9vbCBpc0hhbmRsaW5nQVZQbGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CiAKICAgICBzdGF0aWMgdm9pZCBpbml0Q2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdU
YXBSZWYsIHZvaWQqLCB2b2lkKiopOwogICAgIHN0YXRpYyB2b2lkIGZpbmFsaXplQ2FsbGJhY2so
TVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYpOwpAQCAtMTAwLDEwICsxMDksMTQgQEAgcHJpdmF0ZToK
IAogICAgIGNsYXNzIFRhcFN0b3JhZ2U7CiAgICAgUmVmUHRyPFRhcFN0b3JhZ2U+IG1fdGFwU3Rv
cmFnZTsKKyAgICBBdWRpb0NhbGxiYWNrIG1fYXVkaW9DYWxsYmFjazsKKyAgICBSaW5nQnVmZmVy
Q3JlYXRpb25DYWxsYmFjayBtX3JpbmdCdWZmZXJDYWxsYmFjazsKIH07Ci0gICAgCisKIH0KIAot
I2VuZGlmCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDKQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpB
dWRpb1NvdXJjZVByb3ZpZGVyJiBwcm92aWRlcikgeyByZXR1cm4gcHJvdmlkZXIuaXNIYW5kbGlu
Z0FWUGxheWVyKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKIAotI2VuZGlmCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykgJiYgVVNFKE1FRElBVE9PTEJPWCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQppbmRleCA1ZGNhNDBl
M2I3OWU1ZGE1NTAwMjU3YzUxYjQ0NjMxM2M0ODQ4ODFkLi5hODY0YWUzNmMzOTY5YjgyOTI2Yjhj
YjMyNGE2Y2JiMjg1ZjI2YmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLm1tCkBAIC0zMzcsOCArMzM3LDEyIEBAIHZvaWQgQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6OnByZXBhcmUoQ01JdGVtQ291bnQgbWF4RnJhbWVzLCBjb25zdCBBdWRp
b1N0cmVhCiAgICAgLy8gTWFrZSB0aGUgcmluZ2J1ZmZlciBsYXJnZSBlbm91Z2ggdG8gc3RvcmUg
YXQgbGVhc3QgdHdvIGNhbGxiYWNrcyB3b3J0aCBvZiBhdWRpbywgb3IgMXMsIHdoaWNoZXZlciBp
cyBsYXJnZXIuCiAgICAgc2l6ZV90IGNhcGFjaXR5ID0gc3RkOjptYXgoc3RhdGljX2Nhc3Q8c2l6
ZV90PigyICogbWF4RnJhbWVzKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihrUmluZ0J1ZmZlckR1cmF0
aW9uICogc2FtcGxlUmF0ZSkpOwogCi0gICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJp
bmdCdWZmZXI+KCk7Ci0gICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24oKnByb2Nlc3NpbmdGb3JtYXQpLCBjYXBhY2l0eSk7CisgICAgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uIHsgKnByb2Nlc3NpbmdGb3JtYXQgfTsKKyAgICBtX3Jp
bmdCdWZmZXIgPSBtX3JpbmdCdWZmZXJDYWxsYmFjayA/IG1fcmluZ0J1ZmZlckNhbGxiYWNrKGRl
c2NyaXB0aW9uLCBjYXBhY2l0eSkgOiBudWxscHRyOworICAgIGlmICghbV9yaW5nQnVmZmVyKSB7
CisgICAgICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPigpOworICAg
ICAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBjYXBhY2l0eSk7CisgICAg
fQogCiAgICAgLy8gQXVkaW9CdWZmZXJMaXN0IGlzIGEgdmFyaWFibGUtbGVuZ3RoIHN0cnVjdCwg
c28gY3JlYXRlIG9uIHRoZSBoZWFwIHdpdGggYSBnZW5lcmljIG5ldygpIG9wZXJhdG9yCiAgICAg
Ly8gd2l0aCBhIGN1c3RvbSBzaXplLCBhbmQgaW5pdGlhbGl6ZSB0aGUgc3RydWN0IG1hbnVhbGx5
LgpAQCAtNDE5LDYgKzQyMywyMSBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cm9jZXNzKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bgogICAgICAgICBt
ZW1zZXQoYnVmZmVyLm1EYXRhLCAwLCBidWZmZXIubURhdGFCeXRlU2l6ZSk7CiAgICAgfQogICAg
ICpudW1iZXJGcmFtZXNPdXQgPSAwOworCisgICAgaWYgKG1fYXVkaW9DYWxsYmFjaykKKyAgICAg
ICAgbV9hdWRpb0NhbGxiYWNrKGVuZEZyYW1lLCBpdGVtQ291bnQpOworfQorCit2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpzZXRBdWRpb0NhbGxiYWNrKEF1ZGlvQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3sKKyAgICBBU1NFUlQoIW1fYXZBdWRpb01peCk7CisgICAgbV9hdWRpb0NhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayk7Cit9CisKK3ZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnNldFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKFJpbmdCdWZmZXJDcmVhdGlvbkNh
bGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQVNTRVJUKCFtX2F2QXVkaW9NaXgpOworICAgIG1f
cmluZ0J1ZmZlckNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tCmluZGV4IGVjODhiZTM0YjE3MmUyZWEy
ZmViNDQ0NmU0YTBjNmZiZjhjZjExYTcuLjU1ZDNkZjQ4MDIzODczMDY0M2EzMmJkMWQ2MGFmOGRl
YTZjNjYyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQpA
QCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpyZWNl
aXZlZE5ld0F1ZGlvU2FtcGxlcyhjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0CiAgICAgaWYgKCFtX2Rh
dGFTb3VyY2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZGF0YVNvdXJjZS0+cHVzaFNhbXBs
ZXMoTWVkaWFUaW1lKG1fd3JpdGVDb3VudCwgbV9vdXRwdXREZXNjcmlwdGlvbi0+c2FtcGxlUmF0
ZSgpKSwgZGF0YSwgZnJhbWVDb3VudCk7CisgICAgbV9kYXRhU291cmNlLT5wdXNoU2FtcGxlcyhN
ZWRpYVRpbWUobV93cml0ZUNvdW50LCBtX2lucHV0RGVzY3JpcHRpb24tPnNhbXBsZVJhdGUoKSks
IGRhdGEsIGZyYW1lQ291bnQpOwogCiAgICAgbV93cml0ZUNvdW50ICs9IGZyYW1lQ291bnQ7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dC9DTWFrZUxpc3RzLnR4dAppbmRleCBjOWY2YjQzYjhlODcxYTMzZmRiZDY0MTkyN2Y0Yzg3ZDhh
ZGI0M2Y2Li41NWEzZGExYWQ5MzViZTQ1NjdmNTM5NjQzOTJjZDhhYTc0Yzk5MTliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKQEAgLTIxOSw2ICsyMTksNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlCiAg
ICAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5CiAgICAg
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIKICAgICBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24KICAgICBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA2ODQ1Y2U4YmQ0MGY2NzFjMzI0YjliMjUyNGQ5
Yzc0ZGVkZjAxMWEwLi40NmJhZTM3NWNkMTFhZTIxMzAwYTZjNTdkZGVmMDU0MTFhYzgwM2U5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
KysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0x
MjcsNiArMTI3LDcgQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHku
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5
Q0RNU2Vzc2lvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMDRkNDc5ODZhMDU2
NTkwYzhkMTljOTYxOWU5MjMzMjhkMjg0MWMxYi4uMDlhZmY2NWUxY2UwNGE1ZDlkMGYyZTVmMTFl
YmZiMjUxOTkzNGIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC0xNTQsNiArMTU0LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2EK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
ck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFj
dG9yeVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQppbmRleCBlZGQ1ODc4Mzg5MTkwZjNlZWM2NmNlOWUzYjE3Nzc5NmUx
Y2Y3Yjc2Li4zYzkxOTExNDc1MTZmNjQxZTRhZWZjNGFkYWRmZDJkODg1ZWRlYjE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNzUsNiArMTc1LDcgQEAgTUVTU0FHRV9SRUNFSVZF
UlMgPSBcCiAJV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBl
ciBcCiAJV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IFwK
IAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24gXAorCVdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyIFwKIAlXZWJQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAgXAogCVdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyIFwKIAlXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JJbnRlcnJ1cHREaXNwYXRjaGVyIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTYxNWE2YTc3MjVjZWIwYTA0NWVhMGE2NzE1YjRkNzg2YzZlODM3OQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQl9BVURJ
TykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJQcm94eT4gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpjcmVhdGUo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbiwgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMmIGxvY2FsUHJv
dmlkZXIpCit7CisgICAgYXV0byByZW1vdGVQcm92aWRlciA9IGFkb3B0UmVmKCpuZXcgUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlclByb3h5KGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikp
KTsKKworICAgIGxvY2FsUHJvdmlkZXIuc2V0UmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2soW3Jl
bW90ZVByb3ZpZGVyXShhdXRvIGRlc2NyaXB0aW9uLCBhdXRvIGNhcGFjaXR5KSB7CisgICAgICAg
IHJldHVybiByZW1vdGVQcm92aWRlci0+Y3JlYXRlUmluZ0J1ZmZlcihkZXNjcmlwdGlvbiwgY2Fw
YWNpdHkpOworICAgIH0pOworICAgIGxvY2FsUHJvdmlkZXIuc2V0QXVkaW9DYWxsYmFjayhbcmVt
b3RlUHJvdmlkZXJdKGF1dG8gc3RhcnRGcmFtZSwgYXV0byBudW1iZXJPZkZyYW1lcykgeworICAg
ICAgICByZW1vdGVQcm92aWRlci0+bmV3QXVkaW9TYW1wbGVzKHN0YXJ0RnJhbWUsIG51bWJlck9m
RnJhbWVzKTsKKyAgICB9KTsKKworICAgIHJldHVybiByZW1vdGVQcm92aWRlcjsKK30KKworUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJv
eHkoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQor
ICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCit7Cit9CisKK1JlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6flJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eSgp
ID0gZGVmYXVsdDsKKworc3RkOjp1bmlxdWVfcHRyPENBUmluZ0J1ZmZlcj4gUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5OjpjcmVhdGVSaW5nQnVmZmVyKGNvbnN0IENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBjYXBhY2l0eSkKK3sKKyAgICBtX3JpbmdC
dWZmZXJEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworICAgIG1fcmluZ0J1ZmZlckNhcGFjaXR5
ID0gY2FwYWNpdHk7CisgICAgYXV0byByaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZm
ZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG1ha2VVbmlxdWVSZWY8
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKSk7CisgICAgcmluZ0J1ZmZlci0+YWxsb2Nh
dGUoZGVzY3JpcHRpb24sIGNhcGFjaXR5KTsKKyAgICByZXR1cm4gcmluZ0J1ZmZlcjsKK30KKwor
dm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6Om5ld0F1ZGlvU2FtcGxlcyh1aW50
NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpB
dWRpb1NhbXBsZXNBdmFpbGFibGUgeyBtX2lkZW50aWZpZXIsIHN0YXJ0RnJhbWUsIG51bWJlck9m
RnJhbWVzIH0sIDApOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6
c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBtZW1vcnkpCit7CisgICAgU2hhcmVkTWVtb3J5
OjpIYW5kbGUgaGFuZGxlOworICAgIGlmIChtZW1vcnkpCisgICAgICAgIG1lbW9yeS0+Y3JlYXRl
SGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisKKyAg
ICAvLyBGSVhNRTogU2VuZCB0aGUgYWN0dWFsIGRhdGEgc2l6ZSB3aXRoIElQQ0hhbmRsZS4KKyNp
ZiBPUyhEQVJXSU4pIHx8IE9TKFdJTkRPV1MpCisgICAgdWludDY0X3QgZGF0YVNpemUgPSBoYW5k
bGUuc2l6ZSgpOworI2Vsc2UKKyAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IDA7CisjZW5kaWYKKyAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyOjpBdWRpb1N0b3JhZ2VDaGFuZ2VkIHsgbV9pZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgIGRhdGFTaXplIH0sIG1fcmluZ0J1ZmZlckRl
c2NyaXB0aW9uLCBtX3JpbmdCdWZmZXJDYXBhY2l0eSB9LCAwKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJf
QVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjcyMWFhOTAwMjY5MGYzZmY3ZmJhNWQ1ZmVjYjI0OTA3NTNlNzk5NTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCX0FVRElPKSAm
JiBQTEFURk9STShDT0NPQSkKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9Tb3VyY2VQ
cm92aWRlckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllcklkZW50aWZpZXIuaD4KKyNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM7CitjbGFzcyBDQVJpbmdCdWZmZXI7Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
UHJveHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5PgorICAgICwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQK
KyAgICAsIHB1YmxpYyBXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eT4gY3JlYXRl
KFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwg
V2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMmKTsKKyAgICB+UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5KCk7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FS
aW5nQnVmZmVyPiBjcmVhdGVSaW5nQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYsIHNpemVfdCk7CisgICAgdm9pZCBuZXdBdWRpb1NhbXBsZXModWludDY0X3Qg
c3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworCitwcml2YXRlOgorICAgIFJlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXJQcm94eShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworCisgICAgLy8gU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6
OkNsaWVudAorICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KikgZmluYWw7CisK
KyAgICAvLyBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50CisgICAgdm9pZCBzZXRGb3JtYXQoc2l6
ZV90IG51bWJlck9mQ2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIGZpbmFsIHsgfQorCisgICAg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8SVBD
OjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24gbV9yaW5nQnVmZmVyRGVzY3JpcHRpb247CisgICAgc2l6ZV90IG1fcmluZ0J1
ZmZlckNhcGFjaXR5IHsgMCB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JN
KENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IGNjN2NiMTIyNmQ4NTQyNWIwMzRmZWRlYzY1
OTAyOWFhODkyNGFjMTguLjJhYzViMjYzNGZhMDBlZWYyNGVjYjU4OTI1MjM3MzNkNTZhNzhjNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9U
cmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5LmgiCiAj
aW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5LmgiCkBAIC01OSw2ICs2MCwxMCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaD4KICNlbmRpZgog
CisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKQEAgLTgyLDYgKzg3LDcgQEAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
flJlbW90ZU1lZGlhUGxheWVyUHJveHkoKQogewogICAgIGlmIChtX3BlcmZvcm1UYXNrQXRNZWRp
YVRpbWVDb21wbGV0aW9uSGFuZGxlcikKICAgICAgICAgbV9wZXJmb3JtVGFza0F0TWVkaWFUaW1l
Q29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKKyAgICBzZXRTaG91bGRFbmFibGVBdWRp
b1NvdXJjZVByb3ZpZGVyKGZhbHNlKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjppbnZhbGlkYXRlKCkKQEAgLTg3OCw2ICs4ODQsMjggQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5Ojp3b3VsZFRhaW50T3JpZ2luKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEKICAgICBjb21wbGV0aW9uSGFuZGxlcihtX3BsYXllci0+d291bGRUYWludE9yaWdpbihvcmln
aW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkpKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCkKK3sKKyNpZiBFTkFCTEUoV0VCX0FVRElP
KSAmJiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvKiBwcm92aWRlciA9IG1fcGxheWVyLT5hdWRpb1NvdXJjZVByb3ZpZGVyKCk7
CisgICAgaWYgKCFwcm92aWRlciB8fCAhaXM8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+KHBy
b3ZpZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpjcmVhdGUobV9pZCwgbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jb3B5UmVmKCksIGRvd25jYXN0PEF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDPigqcHJvdmlkZXIpKTsKKyNlbmRpZgorfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OnNldFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIoYm9vbCBzaG91bGRFbmFi
bGUpCit7CisjaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYg
KGF1dG8qIHByb3ZpZGVyID0gbV9wbGF5ZXItPmF1ZGlvU291cmNlUHJvdmlkZXIoKSkKKyAgICAg
ICAgcHJvdmlkZXItPnNldENsaWVudChzaG91bGRFbmFibGUgPyBtX3JlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXIuZ2V0KCkgOiBudWxscHRyKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4
IDhlMWYyNWU1Yzg0NjE0ZjQyY2ZiNWUwYzkzMDQ0ZTVlMzI5MTJiNWEuLmQ0NDRhY2IyNjE0YmEx
YjE5YjY1NzAxMTAyYWFhZDZhNmRiZTYzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtMzYsNiArMzYs
NyBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KQEAgLTUy
LDYgKzUzLDEwIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5oIgogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTWFjaFNlbmRSaWdodDsKIH0K
QEAgLTYzLDggKzY4LDExIEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAorY2xhc3MgQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OworCiB1c2luZyBMYXll
ckhvc3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7
CitjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk7CiBjbGFzcyBSZW1vdGVBdWRp
b1RyYWNrUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNz
IFJlbW90ZVRleHRUcmFja1Byb3h5OwpAQCAtMjY3LDYgKzI3NSw5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZW5kQ2FjaGVkU3RhdGUoKTsKICAgICB2b2lkIHRpbWVyRmlyZWQoKTsKIAorICAgIHZv
aWQgY3JlYXRlQXVkaW9Tb3VyY2VQcm92aWRlcigpOworICAgIHZvaWQgc2V0U2hvdWxkRW5hYmxl
QXVkaW9Tb3VyY2VQcm92aWRlcihib29sKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
ICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJldHVybiBtX2xv
Z2dlcjsgfQogICAgIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpIHsgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fY29uZmlndXJhdGlvbi5sb2dJZGVu
dGlmaWVyKTsgfQpAQCAtMzAzLDYgKzMxNCwxMiBAQCBwcml2YXRlOgogICAgIFJlbW90ZUxlZ2Fj
eUNETVNlc3Npb25JZGVudGlmaWVyIG1fbGVnYWN5U2Vzc2lvbjsKICNlbmRpZgogCisjaWYgRU5B
QkxFKFdFQl9BVURJTykKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9y
aW5nQnVmZmVyRGVzY3JpcHRpb247CisgICAgc2l6ZV90IG1fcmluZ0J1ZmZlckNhcGFjaXR5IHsg
MCB9OworICAgIFJlZlB0cjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk+IG1fcmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlcjsKKyNlbmRpZgorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5tZXNzYWdlcy5pbgppbmRleCA1OWEwYWNhYWExZjRjYzYxMzA3NTUyNmYwOTM1NTE5NDgyZWYx
YTk1Li4xMDM0NTE0NDUzODViN2FmNjQ4YmY4NDhkMzc4OWY4OTM4NDdkNjU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTE2LDYgKzExNiwxMSBAQCBtZXNzYWdlcyAt
PiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIEVycm9yTG9nKCkg
LT4gKFN0cmluZyBlcnJvckxvZykgU3luY2hyb25vdXMKICAgICBBY2Nlc3NMb2coKSAtPiAoU3Ry
aW5nIGFjY2Vzc0xvZykgU3luY2hyb25vdXMKICNlbmRpZgorCisjaWYgRU5BQkxFKFdFQl9BVURJ
TykKKyAgICBDcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCkKKyAgICBTZXRTaG91bGRFbmFibGVB
dWRpb1NvdXJjZVByb3ZpZGVyKGJvb2wgc2hvdWxkRW5hYmxlKQorI2VuZGlmCiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDAzMWUzZDJhZTg4ODcxMzUxODY5YTllOWU4YWJi
OWY2MzNmMzhkYjguLjhmZmZjMzVlNzk2ODBhZDJmNTZjNWE4OGM3ZDZkYWYxNWRkYWY4MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU4LDYgKzU4LDcgQEAgTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcAogR1BVUHJvY2Vzcy9FbnRyeVBvaW50L0Nv
Y29hL1hQQ1NlcnZpY2UvR1BVU2VydmljZUVudHJ5UG9pbnQubW0KIEdQVVByb2Nlc3MvaW9zL0dQ
VVByb2Nlc3NJT1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMubW0KK0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9t
ZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KIEdQVVByb2Nlc3MvbWVk
aWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlclByb3h5LmNwcAogR1BVUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTU2NSw2ICs1NjYsNyBAQCBXZWJQcm9jZXNz
L0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQu
bW0KIAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlci5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlQ29jb2EubW0KIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5
ZXJSZW1vdGVDb2NvYS5tbQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vz
c2lvbkhlbHBlci5jcHAKQEAgLTY2Nyw2ICs2NjksNyBAQCBSZW1vdGVBdWRpb1Nlc3Npb25NZXNz
YWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2Vp
dmVyLmNwcAorUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFS
ZWNvcmRlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVNlc3Npb25IZWxw
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAwZWRhMTVhMzVmZGJhNWM3MjI0MmMxMzg1OGY3MzhjNGFj
NmY4YTBlLi41ZDMyYjdmZjAzOTE4ZDViZDk5ZGFkNmI1ZGYzOWViNmFhNzg3MTNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0MjQs
NiArMzQyNCwxMSBAQAogCQk0MTI4N0Q0RDIyNUMxNjFGMDA5QTNFMjYgLyogV2ViU29ja2V0VGFz
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTb2NrZXRUYXNrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMkZGOTE2MjUzNzNGOUQwMDFERjAzNiAvKiBS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTJGRjkxNzI1MzczRjlEMDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTIz
MjUzODJCRDMwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTI0
MjUzODJCRDUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTJGRjkyNTI1MzgyQkQ1
MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTI2MjUzODJE
ODUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclBy
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MjcyNTM4MkQ4NTAw
MURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDc1OUExREU4NEZCMDAwMzlFQzY5IC8qIE5l
dHdvcmtSVENNb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE5ldHdvcmtSVENNb25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEz
MDc1OUIxREU4NEZCMDAwMzlFQzY5IC8qIE5ldHdvcmtSVENNb25pdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtSVENNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMzA3NTlDMURFODRGQjAwMDM5RUM2OSAvKiBOZXR3b3JrUlRDTW9u
aXRvci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3JrUlRDTW9uaXRv
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ1MzIsNyArNDUz
Nyw3IEBACiAJCTlCMTIyOUQwMjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRl
bnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQ3OTA4QzI1MzE0RDgz
MDBFQzExQUIgLyogTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5QjQ3OTA4RTI1MzE1MUNDMDBFQzExQUIgLyogSlNJUENCaW5kaW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTSVBDQmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QjQ3
OTA5MDI1MzE1NjMyMDBFQzExQUIgLyogTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1lc3NhZ2VBcmd1bWVudERlc2Ny
aXB0aW9ucy5jcHA7IHBhdGggPSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjQ3OTA5MDI1MzE1NjMyMDBFQzExQUIgLyogTWVz
c2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlCNTQ5OUFDMjM2MkE2RjYwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9u
Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBRTIz
NjJBN0E3MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QjAyMzYyQTdFQzAwREY4QkE1IC8q
IF9XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1Rl
eHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01NTY4LDYgKzU1NzMsOSBAQAogCQkJCUNEQkI0OUZCMjQwRDk3NEEwMDE3QzI5MiAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8sCiAJCQkJNDEyRkY5MTYyNTM3M0Y5RDAw
MURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwICovLAogCQkJCTQxMkZGOTE3
MjUzNzNGOUQwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmggKi8sCisJCQkJ
NDEyRkY5MjMyNTM4MkJEMzAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5h
Z2VyLmNwcCAqLywKKwkJCQk0MTJGRjkyNDI1MzgyQkQ1MDAxREYwMzYgLyogUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIuaCAqLywKKwkJCQk0MTJGRjkyNTI1MzgyQkQ1MDAxREYwMzYg
LyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJ
Q0RBQzIwQkYyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETS5jcHAgKi8sCiAJCQkJQ0RBQzIw
QkEyM0ZDMkY3NDAwMjFERUUzIC8qIFJlbW90ZUNETS5oICovLAogCQkJCUNEQUMyMEI4MjNGQzJG
NzMwMDIxREVFMyAvKiBSZW1vdGVDRE1Db25maWd1cmF0aW9uLmggKi8sCkBAIC01NjIzLDYgKzU2
MzEsOCBAQAogCQkJCUNEQkI0OUY4MjQwRDhENTMwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREJCNDlGQTI0MEQ5NjNEMDAxN0MyOTIgLyog
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcCAqLywKIAkJCQlDREJCNDlGOTI0MEQ5
NjNDMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmggKi8sCisJCQkJ
NDEyRkY5MjYyNTM4MkQ4NTAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94
eS5jcHAgKi8sCisJCQkJNDEyRkY5MjcyNTM4MkQ4NTAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJQcm94eS5oICovLAogCQkJCTA3MUJDNTdFMjNDQTVEQjEwMDY4MEQ3QyAvKiBS
ZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwICovLAogCQkJCTA3MUJDNTdGMjNDQTVEQjEwMDY4MEQ3
QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCAqLywKIAkJCQlDREFDMjA3OTIzRkIxRTIxMDAy
MURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMDFh
ZmZiNWZjNWVhZmExNmM4YjZmMWQ4Mjg1Y2NjNDkzZGI3OWE2Zi4uZGQ4ZjFiZWZhNTg3NmNhZDU5
NzA5NzliZjE1ZThhMTU3Yzk0YzczYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJMaWJXZWJSVENDb2RlY3MuaCIKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuaCIKICNpbmNsdWRlICJS
ZW1vdGVDRE1GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHkuaCIKICNpbmNsdWRl
ICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCkBAIC0xMDEsNiArMTAyLDE1IEBAIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlciYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246Om1lZGlhUGxheWVyTWFuYWdl
cigpCiAgICAgcmV0dXJuICpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcj4oKTsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoV0VCX0FVRElPKQorUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXImIEdQVVByb2Nl
c3NDb25uZWN0aW9uOjphdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcigpCit7CisgICAgaWYgKCFt
X2F1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKQorICAgICAgICBtX2F1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OmNyZWF0ZSgpOwor
ICAgIHJldHVybiAqbV9hdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjsKK30KKyNlbmRpZgorCiAj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIFJlbW90ZUNETUZhY3RvcnkmIEdQVVByb2Nlc3ND
b25uZWN0aW9uOjpjZG1GYWN0b3J5KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAzODIwOTQyNTlmYWNlZDJlZWU0
MmU4NWM1Y2Y5NDdmZDIyMTg4YjcwLi5hODFhYzY3ZmM0ZGRkNzk0MjVjZjI0ODg5YjFjZjhkZjFj
NTE2ZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbi5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIERhdGFSZWZlcmVuY2U7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFu
YWdlcjsKIGNsYXNzIFJlbW90ZUNETUZhY3Rvcnk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXI7CiBjbGFzcyBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5OwpAQCAtNjYsNiArNjcsMTAgQEAg
cHVibGljOgogCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtZWRpYVBsYXllck1hbmFn
ZXIoKTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoV0VCX0FVRElPKQorICAgIFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyJiBhdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdl
cigpOworI2VuZGlmCisKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIFJlbW90ZUNE
TUZhY3RvcnkmIGNkbUZhY3RvcnkoKTsKICNlbmRpZgpAQCAtMTAwLDYgKzEwNSw5IEBAIHByaXZh
dGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKICNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoV0VCX0FVRElPKQorICAgIFJlZlB0cjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFu
YWdlcj4gbV9hdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjsKKyNlbmRpZgogI2lmIEVOQUJMRShW
UDkpCiAgICAgYm9vbCBtX2VuYWJsZVZQOURlY29kZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9l
bmFibGVWUDlTV0RlY29kZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5j
cHAKaW5kZXggYTk5MGNlN2Q1NTllOTg0OWJmOWVjZjcwOWNmM2RiMzIyZGMzN2ZiOS4uZGNiZDRm
OGFmYWZlMTA2MGE2MWIwMzA1MzFlMTJjNzRkMzdlZmZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXIuY3BwCkBAIC0yOCw2ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQogCisjaW5jbHVkZSAiUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllclByb3h5TWVzc2FnZXMuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTWVkaWE7CkBAIC0zOSw3ICs0
MiwxNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVmPFJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXI+IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0ZShXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxwZXImIGhlbHBlcikK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKGlk
ZW50aWZpZXIsIGhlbHBlcikpOworICAgIGF1dG8gcHJvdmlkZXIgPSBhZG9wdFJlZigqbmV3IFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoaWRlbnRpZmllciwgaGVscGVyKSk7CisKKyAgICBhdXRv
JiBncHVQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQ
VVByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uYXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXIoKS5hZGRQcm92aWRlcihwcm92aWRlci5jb3B5UmVmKCkpOworCisj
aWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBncHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Q3JlYXRlQXVkaW9Tb3Vy
Y2VQcm92aWRlciB7IH0sIHByb3ZpZGVyLT5pZGVudGlmaWVyKCkpOworI2VuZGlmCisKKyAgICBy
ZXR1cm4gcHJvdmlkZXI7CiB9CiAKIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdURjo6
TG9nZ2VySGVscGVyJiBoZWxwZXIpCkBAIC00OSw2ICs2MSw3IEBAIFJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVy
IGlkZW50CiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoaGVscGVyLmxvZ0lkZW50aWZpZXIoKSkKICNl
bmRpZgogeworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgVU5VU0VEX1BBUkFNKGhl
bHBlcik7CiB9CiAKQEAgLTU4LDExICs3MSwxMyBAQCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
Ojp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcigpCiAKIHZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlcjo6Y2xvc2UoKQogeworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5hdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlcigpLnJlbW92ZVByb3ZpZGVyKG1faWRlbnRpZmllcik7CiB9CiAK
LXZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6aGFzTmV3Q2xpZW50KEF1ZGlvU291cmNl
UHJvdmlkZXJDbGllbnQqKQordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpoYXNOZXdD
bGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQogewotICAgIC8vIEZJWE1F
OiByZWdpc3Rlci91bnJlZ2lzdGVyIGFzIG5lZWRlZC4KKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpTZXRTaG91bGRFbmFibGVBdWRpb1NvdXJjZVBy
b3ZpZGVyIHsgISFjbGllbnQgfSwgbV9pZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBz
aXplX3Qgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzU1MDJiYWU4OWY1YzVkMDQwYjVmMWIyZjJlY2E0NDdlM2E5YjdlOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3Qu
aD4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK25hbWVz
cGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXIoKQorICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwg
V29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkpCit7Cit9CisKK1JlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKQor
eworICAgIHNldENvbm5lY3Rpb24obnVsbHB0cik7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXI6OnNldENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKQoreworICAgIGlmIChtX2Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbikKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1v
dmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworCisgICAgbV9jb25uZWN0aW9uID0g
V1RGTW92ZShjb25uZWN0aW9uKTsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1f
Y29ubmVjdGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKK30K
Kwordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YWRkUHJvdmlkZXIoUmVm
PFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIpCit7CisgICAgQVNTRVJUKFdU
Rjo6aXNNYWluUnVuTG9vcCgpKTsKKyAgICBzZXRDb25uZWN0aW9uKCZXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7CisKKyAg
ICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBwcm92aWRlciA9IFdURk1vdmUocHJvdmlkZXIpXSgp
IG11dGFibGUgeworICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBwcm92aWRlci0+aWRlbnRpZmll
cigpOworCisgICAgICAgIEFTU0VSVCghbV9wcm92aWRlcnMuY29udGFpbnMoaWRlbnRpZmllcikp
OworICAgICAgICBtX3Byb3ZpZGVycy5hZGQoaWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZW1vdGVB
dWRpbz4oV1RGTW92ZShwcm92aWRlcikpKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6cmVtb3ZlUHJvdmlkZXIoTWVkaWFQbGF5ZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKFdURjo6aXNNYWluUnVuTG9vcCgpKTsKKwor
ICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGlkZW50aWZpZXJdIHsKKyAgICAgICAgQVNTRVJU
KG1fcHJvdmlkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV9wcm92aWRlcnMu
cmVtb3ZlKGlkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXJNYW5hZ2VyOjpkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxs
YmFjaykKK3sKKyAgICBtX3F1ZXVlLT5kaXNwYXRjaChXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisK
K3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OmF1ZGlvU3RvcmFnZUNoYW5n
ZWQoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIEFTU0VS
VCghV1RGOjppc01haW5SdW5Mb29wKCkpOworCisgICAgYXV0byBpdGVyYXRvciA9IG1fcHJvdmlk
ZXJzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fcHJvdmlkZXJzLmVu
ZCgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVW5hYmxlIHRvIGZpbmQg
cHJvdmlkZXIgJWxsdSBmb3Igc3RvcmFnZUNoYW5nZWQiLCBpZGVudGlmaWVyLnRvVUludDY0KCkp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGl0ZXJhdG9yLT52YWx1ZS0+c2V0U3RvcmFn
ZShpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit2
b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFi
bGUoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IHN0YXJ0RnJhbWUs
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIEFTU0VSVCghV1RGOjppc01haW5SdW5M
b29wKCkpOworCisgICAgYXV0byBpdGVyYXRvciA9IG1fcHJvdmlkZXJzLmZpbmQoaWRlbnRpZmll
cik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fcHJvdmlkZXJzLmVuZCgpKSB7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVW5hYmxlIHRvIGZpbmQgcHJvdmlkZXIgJWxsdSBmb3Ig
YXVkaW9TYW1wbGVzQXZhaWxhYmxlIiwgaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpdGVyYXRvci0+dmFsdWUtPmF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShzdGFydEZyYW1lLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK1JlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVmPFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIpCisgICAgOiBtX3Byb3ZpZGVyKFdURk1vdmUocHJvdmlk
ZXIpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5p
cXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkpCit7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdl
KGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
KQoreworICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFy
ZWRNZW1vcnk+IG1lbW9yeTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBt
ZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRighbWVtb3J5LCBNZWRp
YSwgIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9yeSBmb3IgYXVkaW8gcHJvdmlkZXIgJWxs
dSIsIG1fcHJvdmlkZXItPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICB9CisKKyAgICBh
dXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3Jp
bmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAgICAgbV9yaW5n
QnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2Up
OworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkp
OworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVmZmVyLT5hbGxv
Y2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVu
aXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9
CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjph
dWRpb1NhbXBsZXNBdmFpbGFibGUodWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMpCit7CisgICAgaWYgKCFtX2J1ZmZlcikgeworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYSwgImJ1ZmZlciBmb3IgYXVkaW8gcHJvdmlkZXIgJWxsdSBpcyBudWxsIiwgbV9w
cm92aWRlci0+aWRlbnRpZmllcigpLnRvVUludDY0KCkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKCFXZWJBdWRpb0J1ZmZlckxpc3Q6OmlzU3VwcG9ydGVkRGVzY3JpcHRpb24o
bV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhLCAiVW5hYmxlIHRvIHN1cHBvcnQgZGVzY3JpcHRpb24gd2l0aCBnaXZlbiBudW1i
ZXIgb2YgZnJhbWVzIGZvciBhdWRpbyBwcm92aWRlciAlbGx1IiwgbV9wcm92aWRlci0+aWRlbnRp
ZmllcigpLnRvVUludDY0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBl
bmRGcmFtZSA9IHN0YXJ0RnJhbWUgKyBudW1iZXJPZkZyYW1lczsKKyAgICBtX2J1ZmZlci0+c2V0
U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworCisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJy
ZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1fcmluZ0J1ZmZlci0+
ZmV0Y2gobV9idWZmZXItPmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUpOworCisg
ICAgbV9wcm92aWRlci0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKCptX2J1ZmZlciwgbV9kZXNjcmlw
dGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NP
QSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1OWZiNTRjNGE4MTU2YTllZmQwODEzYmI3NjNlMDhlODMx
NGNkYjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmgKQEAgLTAsMCArMSw4NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllcklkZW50aWZp
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjsKKworY2xhc3MgUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNz
YWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCkpOyB9CisgICAgflJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGFkZFByb3ZpZGVyKFJlZjxSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyPiYmKTsKKyAgICB2b2lkIHJlbW92ZVByb3ZpZGVyKFdlYkNv
cmU6Ok1lZGlhUGxheWVySWRlbnRpZmllcik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworCitwcml2YXRlOgorICAgIFJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCk7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246
OlRocmVhZE1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlv
bjx2b2lkKCk+JiYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIGF1ZGlvU3Rv
cmFnZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRN
ZW1vcnk6OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWls
YWJsZShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIHVpbnQ2NF90IHN0YXJ0RnJhbWUs
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKworICAgIHZvaWQgc2V0Q29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb24qKTsKKworICAgIGNsYXNzIFJlbW90ZUF1ZGlvIHsKKyAgICAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CisgICAgcHVibGljOgorICAgICAgICBleHBsaWNpdCBSZW1vdGVB
dWRpbyhSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4mJik7CisKKyAgICAgICAgdm9pZCBz
ZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworICAgICAg
ICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRf
dCBudW1iZXJPZkZyYW1lcyk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWY8UmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlcj4gbV9wcm92aWRlcjsKKyAgICAgICAgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4gbV9idWZmZXI7CisgICAgfTsKKworICAg
IFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CisgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9j
b25uZWN0aW9uOworCisgICAgLy8gYmFja2dyb3VuZCB0aHJlYWQgbWVtYmVyCisgICAgSGFzaE1h
cDxXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVB
dWRpbz4+IG1fcHJvdmlkZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGVhYzgwYWRmODMxNWJjYmRiOWM2OWRhNDlkOTM1NDhmZWZlMTI4OQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIEF1ZGlvU3RvcmFnZUNoYW5n
ZWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkLCBXZWJLaXQ6OlNoYXJlZE1lbW9y
eTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgQXVkaW9TYW1w
bGVzQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBpZCwgdWludDY0X3Qg
c3RhcnRGcmFtZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlci5jcHAKaW5kZXggMTc1N2E2YTliMWIxMjUzMDEzNWFiOGY3N2IxZWE1OWY2
YjAyZWRlOC4uNWIzZTcwMGUwOTU4ZTJmYmQ1NjkxNzgwNDI3MWRlZGM5NGZjNWU0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCIKIAorI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgpAQCAtMzMsNyArMzQsNiBAQAogI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkK
</data>
<flag name="commit-queue"
          id="427624"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411430</attachid>
            <date>2020-10-15 05:14:06 -0700</date>
            <delta_ts>2020-10-15 05:22:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217704-20201015141403.patch</filename>
            <type>text/plain</type>
            <size>56559</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU3MDdhMjg4ODMyZmNh
YTlmNGUyNzhhZGZkZTRkYmUzYjAwNjYyZS4uYWNjMGNmYWZjNDcyNTdiZDAwNmYyZjJmNTUxOGVh
NjgxOTNiNjkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTEwLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
R1BVUHJvY2VzcyBXZWJBdWRpbyBtZWRpYSBlbGVtZW50IHByb3ZpZGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDIHNvIHRoYXQgYSBzcGVjaWZpYyByaW5nIGJ1ZmZlciBjYW4gYmUgcHJvdmlk
ZWQgYW5kIHRvIGJlIG5vdGlmaWVkIG9mIG5ldyBzYW1wbGVzIGJlaW5nIHB1c2hlZC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHdlYiBhdWRpbyB0ZXN0cyBydW4gd2l0aCBHUFVQcm9j
ZXNzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXI6OmlzSGFuZGxpbmdBVlBsYXllciBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVEYXRhU291cmNlOjpwdWxsU2FtcGxlc0ludGVy
bmFsKToKKyAgICAgICAgV2hlbiB3ZSBhcmUgdG9vIGNsb3NlIHRvIHRoZSBlbmQgb2YgYXZhaWxh
YmxlIGRhdGEsIGRvIGFzIGlmIHdlIGFyZSBwYXVzZWQgYW5kIGtlZXAgdGhlIHNhbWUgdGltZSBl
bnRyeSBmb3IgdGhlIG5leHQgcmVhZCBvcGVyYXRpb24uCisgICAgICAgIFRoaXMgd2lsbCBiYXNp
Y2FsbHkgbWFrZSB1cyB3YWl0IGZvciB0aGUgbmV4dCBwdXNoIG9mIGRhdGEgYmVmb3JlIHJlc3Rh
cnRpbmcgdG8gcmVhZCBzdWNjZXNmdWxseS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaDoKKyAgICAgICAgKGlzVHlw
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByb2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnNldEF1ZGlvQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnNldFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpyZWNl
aXZlZE5ld0F1ZGlvU2FtcGxlcyk6CisgICAgICAgIFdlIHNob3VsZCB1c2UgdGhlIGlucHV0IHNh
bXBsZSByYXRlIHRvIGNvbXB1dGUgdGhlIGlucHV0IG1lZGlhIHRpbWUuCisKIDIwMjAtMTAtMTQg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBh
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIgdG8gcmVjZWl2ZSBhdWRpbyBzYW1wbGVzIGZvciB3
ZWIgYXVkaW8gZnJvbSBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQwYzQ5YWI2ODZjNTM0MjRlOThj
MGYzODY1NDg2OTg2ZTUwNTA3ZmIuLjU1ZGRlYzEwODYxODE3NGMxM2E3MzU1NzMyM2NiMWExNzZj
NDdlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjAtMTAtMTUgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBHUFVQcm9j
ZXNzIFdlYkF1ZGlvIG1lZGlhIGVsZW1lbnQgcHJvdmlkZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3MDQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXIgd2hpY2ggcmVjZWl2ZXMgSVBDIG1lc3NhZ2VzIGZyb20gR1BVIHByb2Nl
c3MgZm9yIHdlYiBhdWRpbyBkYXRhLgorICAgICAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlciBzZW5kcyBpdCB0byB0aGUgaWRlbnRpZmllZCBSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyLgorCisgICAgICAgIEludHJvZHVjZSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkg
d2hpY2ggaXMgYSBjbGllbnQgdG8gdGhlIEFWIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLgor
ICAgICAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkgd2lsbCBzZW5kIElQQyBtZXNz
YWdlcyB0byBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlciB0byBzZW5kIGF1ZGlvIGRh
dGEgYW5kIGRlc2NyaXB0aW9uLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQ
cm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZVJpbmdCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6Om5ld0F1ZGlvU2Ft
cGxlcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6
c3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y3JlYXRlQXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFNob3VsZEVuYWJsZUF1ZGlv
U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJv
Y2Vzc0Nvbm5lY3Rpb246OmF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6Y2xvc2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpoYXNOZXdDbGllbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlcjo6c2V0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjphZGRQcm92aWRlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpyZW1vdmVQcm92aWRlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpkaXNwYXRj
aFRvVGhyZWFkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1h
bmFnZXI6OmF1ZGlvU3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpS
ZW1vdGVBdWRpbyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwOgorCiAyMDIwLTEwLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBJbnRyb2R1Y2UgYSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyIHRvIHJlY2VpdmUg
YXVkaW8gc2FtcGxlcyBmb3Igd2ViIGF1ZGlvIGZyb20gR1BVUHJvY2VzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKaW5kZXggMGFkZTdkOGM4ZDRiMmYyZDk4ZDZkMzkwZTkzOGFiMzNlYjc0NTgxNy4uMTExZWIy
ZGI0N2I1N2QzNjU5MGIyM2JmYjkwNjY0NWE5MjBiODEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBA
IC0xMDY3LDYgKzEwNjcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIu
aAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaAogICAgIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaAogICAgIHBsYXRmb3JtL2F1ZGlv
L0F1ZGlvVXRpbGl0aWVzLmgKICAgICBwbGF0Zm9ybS9hdWRpby9Ob3dQbGF5aW5nSW5mby5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggOWU4MzhhMTg5M2U1MzBlYThlN2E0NjgxZTc2YjFjYzUzNGU3NmRkMy4uZDkyZDQyMTgxNTVi
M2E2YTQzODgwNGZkZDY5OTM0NDE4ODJjNjNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDE5Nyw3ICs0MTk3LDcgQEAKIAkJ
Q0Q3RTA1MjIxNjUxQzI4MjAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0UwNTIxMTY1
MUE4NDEwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gKi87IH07CiAJCUNE
ODNEMzYyMjExMjJBMjEwMDc2RTExQyAvKiBEZWZlcnJhYmxlVGFzay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4M0QzNUEyMTExMTA4MjAwNzZFMTFD
IC8qIERlZmVycmFibGVUYXNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0Q4QTdCQkIxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q4QTdCQjkxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tICovOyB9OwotCQlDRDhBN0JCQzE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOEE3QkJBMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5oICovOyB9OworCQlDRDhBN0JCQzE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOEE3QkJBMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUNEOEFDQTg5MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEFDQTg3MUQy
MzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaCAqLzsgfTsKIAkJQ0Q4
QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEFDQThEMUQyMzk3MTkwMEVD
QzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi87IH07CiAJCUNEOEI1QTQyMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTQwMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAqLzsgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlk
ZXIuaAppbmRleCBiMjI0NDlhMWNhMGNkOTVjNDQ4ZTUzYzhiODA3MWQ1NGJhODNjNDJiLi42YzA5
YzA4NjFiOTY2NDM5NjdiZGY1NjI1N2NjZTE5ZDRiY2MwYzc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5oCkBAIC00Myw2ICs0
Myw4IEBAIHB1YmxpYzoKICAgICAvLyBJZiBhIGNsaWVudCBpcyBzZXQsIHdlIGNhbGwgaXQgYmFj
ayB3aGVuIHRoZSBhdWRpbyBmb3JtYXQgaXMgYXZhaWxhYmxlIG9yIGNoYW5nZXMuCiAgICAgdmly
dHVhbCB2b2lkIHNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KikgeyB9OwogCisg
ICAgdmlydHVhbCBib29sIGlzSGFuZGxpbmdBVlBsYXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisKICAgICB2aXJ0dWFsIH5BdWRpb1NvdXJjZVByb3ZpZGVyKCkgPSBkZWZhdWx0OwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9T
YW1wbGVEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCmluZGV4IGVmN2ZkMDQzOTFjNTg0ZDBjZWJlNjY4MTE3
ZWJjN2MyYThiYTJhYzcuLjllNmQ1NDUyNTcxZDFkNWU3NTc0ODE2NjU0NmQ2ODU4ZTJkNjlhODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KQEAgLTI2MCw5ICsyNjAsOCBAQCBib29sIEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZTo6cHVsbFNhbXBsZXNJbnRlcm5hbChBdWRpb0J1ZmZlckxpc3QmIGJ1
ZmZlciwgc2l6ZV90JgogICAgICAgICAgICAgaWYgKHRpbWVTdGFtcCA+PSBlbmRGcmFtZSkKICAg
ICAgICAgICAgICAgICBtX2VuZEZyYW1lV2hlbk5vdEVub3VnaERhdGEgPSBlbmRGcmFtZTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIFdlIGFyZSB0b28gY2xvc2UgZnJvbSBlbmRG
cmFtZSwgbGV0J3MgYmFjayB1cCBhIGxpdHRsZSBiaXQuCi0gICAgICAgICAgICB1aW50NjRfdCBm
cmFtZXNBdmFpbGFibGUgPSBlbmRGcmFtZSAtIHRpbWVTdGFtcDsKLSAgICAgICAgICAgIG1fb3V0
cHV0U2FtcGxlT2Zmc2V0IC09IHNhbXBsZUNvdW50IC0gZnJhbWVzQXZhaWxhYmxlOworICAgICAg
ICAgICAgLy8gV2UgYXJlIHRvbyBjbG9zZSBmcm9tIGVuZEZyYW1lLCBsZXQncyB3YWl0IGZvciBt
b3JlIGRhdGEgdG8gYmUgcHVzaGVkLgorICAgICAgICAgICAgbV9vdXRwdXRTYW1wbGVPZmZzZXQg
LT0gc2FtcGxlQ291bnQ7CiAgICAgICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpLCBbbG9nSWRlbnRpZmllciA9IExPR0lERU5USUZJRVIsIG91dHB1dFNhbXBs
ZU9mZnNldCA9IG1fb3V0cHV0U2FtcGxlT2Zmc2V0LCB0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cigqdGhpcyldIHsKICAgICAgICAgICAgICAgICBBTFdBWVNfTE9HKGxvZ0lkZW50aWZp
ZXIsICJ1cGRhdGluZyBvZmZzZXQgdG8gIiwgb3V0cHV0U2FtcGxlT2Zmc2V0KTsKICAgICAgICAg
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMu
aAppbmRleCBmNjVjZjA4YzRmMmEwNjFmMTMyYjdjOWUxMTcyNjNhMzRhMTU4N2Q0Li5iYTdmNDZk
NGI1NDRhMWFkMWIxYmZiODkwZDAyYTc1YzgyMGM3OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAtMjMsOCArMjMsNyBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQ19oCi0j
ZGVmaW5lIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDX2gKKyNwcmFnbWEgb25jZQogCiAjaWYg
RU5BQkxFKFdFQl9BVURJTykgJiYgVVNFKE1FRElBVE9PTEJPWCkKIApAQCAtMzMsNiArMzIsNyBA
QAogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1R5
cGVDYXN0cy5oPgogCiBPQkpDX0NMQVNTIEFWQXNzZXRUcmFjazsKIE9CSkNfQ0xBU1MgQVZQbGF5
ZXJJdGVtOwpAQCAtNDcsNyArNDcsMTAgQEAgdHlwZWRlZiBzaWduZWQgbG9uZyBDTUl0ZW1Db3Vu
dDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
OworY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwogY2xhc3MgQ0FSaW5nQnVmZmVyOwor
Y2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiAKIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDPiwgcHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIgewogcHVibGljOgpAQCAtNTcsNiArNjAs
MTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGxheWVySXRlbShBVlBsYXllckl0ZW0gKik7CiAg
ICAgdm9pZCBzZXRBdWRpb1RyYWNrKEFWQXNzZXRUcmFjayAqKTsKIAorICAgIHVzaW5nIEF1ZGlv
Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzKT47CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdWRpb0NhbGxiYWNr
KEF1ZGlvQ2FsbGJhY2smJik7CisgICAgdXNpbmcgUmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2sg
PSBGdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPihjb25zdCBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJp
bmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrJiYpOwor
CiBwcml2YXRlOgogICAgIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKEFWUGxheWVySXRlbSAq
KTsKIApAQCAtNjYsNiArNzQsNyBAQCBwcml2YXRlOgogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlk
ZXIKICAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQqKSBvdmVycmlkZTsKKyAgICBib29sIGlzSGFuZGxpbmdBVlBsYXllcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHN0YXRpYyB2b2lkIGluaXRDYWxsYmFjayhNVEF1ZGlv
UHJvY2Vzc2luZ1RhcFJlZiwgdm9pZCosIHZvaWQqKik7CiAgICAgc3RhdGljIHZvaWQgZmluYWxp
emVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZik7CkBAIC0xMDAsMTAgKzEwOSwxNCBA
QCBwcml2YXRlOgogCiAgICAgY2xhc3MgVGFwU3RvcmFnZTsKICAgICBSZWZQdHI8VGFwU3RvcmFn
ZT4gbV90YXBTdG9yYWdlOworICAgIEF1ZGlvQ2FsbGJhY2sgbV9hdWRpb0NhbGxiYWNrOworICAg
IFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrIG1fcmluZ0J1ZmZlckNhbGxiYWNrOwogfTsKLSAg
ICAKKwogfQogCi0jZW5kaWYKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0
IFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXImIHByb3ZpZGVyKSB7IHJldHVybiBwcm92aWRl
ci5pc0hhbmRsaW5nQVZQbGF5ZXIoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQog
Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKSAmJiBVU0UoTUVESUFUT09MQk9Y
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmlu
ZGV4IDVkY2E0MGUzYjc5ZTVkYTU1MDAyNTdjNTFiNDQ2MzEzYzQ4NDg4MWQuLmE4NjRhZTM2YzM5
NjliODI5MjZiOGNiMzI0YTZjYmIyODVmMjZiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTMzNyw4ICszMzcsMTIgQEAgdm9pZCBB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShDTUl0ZW1Db3VudCBtYXhGcmFtZXMs
IGNvbnN0IEF1ZGlvU3RyZWEKICAgICAvLyBNYWtlIHRoZSByaW5nYnVmZmVyIGxhcmdlIGVub3Vn
aCB0byBzdG9yZSBhdCBsZWFzdCB0d28gY2FsbGJhY2tzIHdvcnRoIG9mIGF1ZGlvLCBvciAxcywg
d2hpY2hldmVyIGlzIGxhcmdlci4KICAgICBzaXplX3QgY2FwYWNpdHkgPSBzdGQ6Om1heChzdGF0
aWNfY2FzdDxzaXplX3Q+KDIgKiBtYXhGcmFtZXMpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGtSaW5n
QnVmZmVyRHVyYXRpb24gKiBzYW1wbGVSYXRlKSk7CiAKLSAgICBtX3JpbmdCdWZmZXIgPSBtYWtl
VW5pcXVlPENBUmluZ0J1ZmZlcj4oKTsKLSAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKENBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbigqcHJvY2Vzc2luZ0Zvcm1hdCksIGNhcGFjaXR5KTsKKyAgICBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24geyAqcHJvY2Vzc2luZ0Zvcm1hdCB9
OworICAgIG1fcmluZ0J1ZmZlciA9IG1fcmluZ0J1ZmZlckNhbGxiYWNrID8gbV9yaW5nQnVmZmVy
Q2FsbGJhY2soZGVzY3JpcHRpb24sIGNhcGFjaXR5KSA6IG51bGxwdHI7CisgICAgaWYgKCFtX3Jp
bmdCdWZmZXIpIHsKKyAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZm
ZXI+KCk7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIGNhcGFj
aXR5KTsKKyAgICB9CiAKICAgICAvLyBBdWRpb0J1ZmZlckxpc3QgaXMgYSB2YXJpYWJsZS1sZW5n
dGggc3RydWN0LCBzbyBjcmVhdGUgb24gdGhlIGhlYXAgd2l0aCBhIGdlbmVyaWMgbmV3KCkgb3Bl
cmF0b3IKICAgICAvLyB3aXRoIGEgY3VzdG9tIHNpemUsIGFuZCBpbml0aWFsaXplIHRoZSBzdHJ1
Y3QgbWFudWFsbHkuCkBAIC00MTksNiArNDIzLDIxIEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByb2Nlc3MoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3Vu
CiAgICAgICAgIG1lbXNldChidWZmZXIubURhdGEsIDAsIGJ1ZmZlci5tRGF0YUJ5dGVTaXplKTsK
ICAgICB9CiAgICAgKm51bWJlckZyYW1lc091dCA9IDA7CisKKyAgICBpZiAobV9hdWRpb0NhbGxi
YWNrKQorICAgICAgICBtX2F1ZGlvQ2FsbGJhY2soZW5kRnJhbWUsIGl0ZW1Db3VudCk7Cit9CisK
K3ZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldEF1ZGlvQ2FsbGJhY2soQXVkaW9D
YWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFTU0VSVCghbV9hdkF1ZGlvTWl4KTsKKyAgICBt
X2F1ZGlvQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwordm9pZCBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6c2V0UmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2soUmluZ0J1ZmZl
ckNyZWF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBU1NFUlQoIW1fYXZBdWRpb01p
eCk7CisgICAgbV9yaW5nQnVmZmVyQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dl
YkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KaW5kZXggZWM4OGJl
MzRiMTcyZTJlYTJmZWI0NDQ2ZTRhMGM2ZmJmOGNmMTFhNy4uNTVkM2RmNDgwMjM4NzMwNjQzYTMy
YmQxZDYwYWY4ZGVhNmM2NjIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckNvY29hLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
Q29jb2E6OnJlY2VpdmVkTmV3QXVkaW9TYW1wbGVzKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXQKICAg
ICBpZiAoIW1fZGF0YVNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9kYXRhU291cmNl
LT5wdXNoU2FtcGxlcyhNZWRpYVRpbWUobV93cml0ZUNvdW50LCBtX291dHB1dERlc2NyaXB0aW9u
LT5zYW1wbGVSYXRlKCkpLCBkYXRhLCBmcmFtZUNvdW50KTsKKyAgICBtX2RhdGFTb3VyY2UtPnB1
c2hTYW1wbGVzKE1lZGlhVGltZShtX3dyaXRlQ291bnQsIG1faW5wdXREZXNjcmlwdGlvbi0+c2Ft
cGxlUmF0ZSgpKSwgZGF0YSwgZnJhbWVDb3VudCk7CiAKICAgICBtX3dyaXRlQ291bnQgKz0gZnJh
bWVDb3VudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGM5ZjZiNDNiOGU4NzFhMzNmZGJkNjQx
OTI3ZjRjODdkOGFkYjQzZjYuLjU1YTNkYTFhZDkzNWJlNDU2N2Y1Mzk2NDM5MmNkOGFhNzRjOTkx
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMjE5LDYgKzIxOSw3IEBAIHNldChXZWJLaXRfTUVT
U0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUKICAgICBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkKICAgICBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24KKyAgICBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcgogICAg
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbgogICAgIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDY4NDVjZThiZDQwZjY3MWMz
MjRiOWIyNTI0ZDljNzRkZWRmMDExYTAuLjQ2YmFlMzc1Y2QxMWFlMjEzMDBhNmM1N2RkZWYwNTQx
MWFjODAzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTEyNyw2ICsxMjcsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVMZWdhY3lDRE1TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLm1lc3NhZ2VzLmluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAw
NGQ0Nzk4NmEwNTY1OTBjOGQxOWM5NjE5ZTkyMzMyOGQyODQxYzFiLi4wOWFmZjY1ZTFjZTA0YTVk
OWQwZjJlNWYxMWViZmIyNTE5OTM0YjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE1NCw2ICsxNTQsOSBAQCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXJNZXNzYQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlc1JlcGxpZXMu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGVkZDU4NzgzODkxOTBmM2VlYzY2Y2U5
ZTNiMTc3Nzk2ZTFjZjdiNzYuLjNjOTE5MTE0NzUxNmY2NDFlNGFlZmM0YWRhZGZkMmQ4ODVlZGVi
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE3NSw2ICsxNzUsNyBAQCBNRVNT
QUdFX1JFQ0VJVkVSUyA9IFwKIAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyIFwKIAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkgXAogCVdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbiBcCisJ
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIgXAog
CVdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcCBcCiAJV2ViUHJvY2Vzcy9Vc2Vy
Q29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIgXAogCVdlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjE1YTZhNzcyNWNlYjBhMDQ1ZWEwYTY3MTViNGQ3ODZj
NmU4Mzc5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHAKQEAgLTAsMCArMSw4OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFC
TEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShDT0NPQSkKKworI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5PiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJv
eHk6OmNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVm
PElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QyYgbG9jYWxQcm92aWRlcikKK3sKKyAgICBhdXRvIHJlbW90ZVByb3ZpZGVyID0gYWRvcHRSZWYo
Km5ldyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkoaWRlbnRpZmllciwgV1RGTW92ZShj
b25uZWN0aW9uKSkpOworCisgICAgbG9jYWxQcm92aWRlci5zZXRSaW5nQnVmZmVyQ3JlYXRpb25D
YWxsYmFjayhbcmVtb3RlUHJvdmlkZXJdKGF1dG8gZGVzY3JpcHRpb24sIGF1dG8gY2FwYWNpdHkp
IHsKKyAgICAgICAgcmV0dXJuIHJlbW90ZVByb3ZpZGVyLT5jcmVhdGVSaW5nQnVmZmVyKGRlc2Ny
aXB0aW9uLCBjYXBhY2l0eSk7CisgICAgfSk7CisgICAgbG9jYWxQcm92aWRlci5zZXRBdWRpb0Nh
bGxiYWNrKFtyZW1vdGVQcm92aWRlcl0oYXV0byBzdGFydEZyYW1lLCBhdXRvIG51bWJlck9mRnJh
bWVzKSB7CisgICAgICAgIHJlbW90ZVByb3ZpZGVyLT5uZXdBdWRpb1NhbXBsZXMoc3RhcnRGcmFt
ZSwgbnVtYmVyT2ZGcmFtZXMpOworICAgIH0pOworCisgICAgcmV0dXJuIHJlbW90ZVByb3ZpZGVy
OworfQorCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OlJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXJQcm94eShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwg
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9pZGVudGlmaWVyKGlk
ZW50aWZpZXIpCisgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKK30K
KworUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5Ojp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5KCkgPSBkZWZhdWx0OworCitzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZVJpbmdCdWZmZXIoY29uc3QgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IGNhcGFjaXR5KQorewor
ICAgIG1fcmluZ0J1ZmZlckRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgbV9yaW5nQnVm
ZmVyQ2FwYWNpdHkgPSBjYXBhY2l0eTsKKyAgICBhdXRvIHJpbmdCdWZmZXIgPSBtYWtlVW5pcXVl
PENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obWFr
ZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4odGhpcykpKTsKKyAgICByaW5nQnVm
ZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgY2FwYWNpdHkpOworICAgIHJldHVybiByaW5nQnVm
ZmVyOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6bmV3QXVkaW9T
YW1wbGVzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorewor
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
ck1hbmFnZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZSB7IG1faWRlbnRpZmllciwgc3RhcnRGcmFt
ZSwgbnVtYmVyT2ZGcmFtZXMgfSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5OjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIG1lbW9yeSkKK3sKKyAgICBT
aGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgaWYgKG1lbW9yeSkKKyAgICAgICAgbWVt
b3J5LT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KTsKKworICAgIC8vIEZJWE1FOiBTZW5kIHRoZSBhY3R1YWwgZGF0YSBzaXplIHdpdGggSVBD
SGFuZGxlLgorI2lmIE9TKERBUldJTikgfHwgT1MoV0lORE9XUykKKyAgICB1aW50NjRfdCBkYXRh
U2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxzZQorICAgIHVpbnQ2NF90IGRhdGFTaXplID0gMDsK
KyNlbmRpZgorICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXI6OkF1ZGlvU3RvcmFnZUNoYW5nZWQgeyBtX2lkZW50aWZpZXIsIFNo
YXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCAgZGF0YVNpemUgfSwgbV9y
aW5nQnVmZmVyRGVzY3JpcHRpb24sIG1fcmluZ0J1ZmZlckNhcGFjaXR5IH0sIDApOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
RU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIxYWE5MDAyNjkwZjNmZjdmYmE1ZDVmZWNiMjQ5MDc1M2U3
OTk1OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuaApAQCAtMCwwICsxLDcyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShX
RUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgor
I2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmll
ci5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKK2NsYXNzIENBUmlu
Z0J1ZmZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJQcm94eSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyUHJveHk+CisgICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U6OkNsaWVudAorICAgICwgcHVibGljIFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclBy
b3h5PiBjcmVhdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmLCBXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyYpOworICAgIH5S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkoKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpDQVJpbmdCdWZmZXI+IGNyZWF0ZVJpbmdCdWZmZXIoY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lkIG5ld0F1ZGlvU2FtcGxl
cyh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisKK3ByaXZhdGU6Cisg
ICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5KFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisKKyAgICAvLyBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZTo6Q2xpZW50CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkq
KSBmaW5hbDsKKworICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQKKyAgICB2b2lkIHNl
dEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgZmluYWwg
eyB9CisKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwor
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKworICAgIFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX3JpbmdCdWZmZXJEZXNjcmlwdGlvbjsKKyAgICBzaXpl
X3QgbV9yaW5nQnVmZmVyQ2FwYWNpdHkgeyAwIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQl9BVURJTykg
JiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggY2M3Y2IxMjI2ZDg1NDI1
YjAzNGZlZGVjNjU5MDI5YWE4OTI0YWMxOC4uMmFjNWIyNjM0ZmEwMGVlZjI0ZWNiNTg5MjUyMzcz
M2Q1NmE3OGM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJMYXllckhvc3RpbmdD
b250ZXh0LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuaCIKICNpbmNsdWRlICJS
ZW1vdGVBdWRpb1RyYWNrUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5
UHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHkuaCIKQEAgLTU5
LDYgKzYwLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5o
PgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtODIsNiArODcsNyBAQCBSZW1vdGVNZWRpYVBs
YXllclByb3h5Ojp+UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSgpCiB7CiAgICAgaWYgKG1fcGVyZm9y
bVRhc2tBdE1lZGlhVGltZUNvbXBsZXRpb25IYW5kbGVyKQogICAgICAgICBtX3BlcmZvcm1UYXNr
QXRNZWRpYVRpbWVDb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworICAgIHNldFNob3Vs
ZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIoZmFsc2UpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OmludmFsaWRhdGUoKQpAQCAtODc4LDYgKzg4NCwyOCBAQCB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OndvdWxkVGFpbnRPcmlnaW4oc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YQogICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcGxheWVyLT53b3VsZFRhaW50
T3JpZ2luKG9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSkpOwogfQogCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OmNyZWF0ZUF1ZGlvU291cmNlUHJvdmlkZXIoKQoreworI2lmIEVOQUJM
RShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9wbGF5ZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8qIHByb3ZpZGVyID0gbV9wbGF5ZXItPmF1ZGlvU291cmNl
UHJvdmlkZXIoKTsKKyAgICBpZiAoIXByb3ZpZGVyIHx8ICFpczxBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQz4ocHJvdmlkZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXIgPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZSht
X2lkLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLmNvcHlSZWYoKSwgZG93bmNhc3Q8QXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM+KCpwcm92aWRlcikpOworI2VuZGlmCit9CisKK3ZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6c2V0U2hvdWxkRW5hYmxlQXVkaW9Tb3VyY2VQcm92aWRlcihib29s
IHNob3VsZEVuYWJsZSkKK3sKKyNpZiBFTkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShDT0NP
QSkKKyAgICBpZiAoYXV0byogcHJvdmlkZXIgPSBtX3BsYXllci0+YXVkaW9Tb3VyY2VQcm92aWRl
cigpKQorICAgICAgICBwcm92aWRlci0+c2V0Q2xpZW50KHNob3VsZEVuYWJsZSA/IG1fcmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlci5nZXQoKSA6IG51bGxwdHIpOworI2VuZGlmCit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgKaW5kZXggOGUxZjI1ZTVjODQ2MTRmNDJjZmI1ZTBjOTMwNDRlNWUzMjkxMmI1YS4uMGRk
M2NkYTcxMDhhOTAxY2Q2ZmMxOGEwOGRhZWE3MmUzMjJjODExZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBA
IC01Miw2ICs1MiwxMCBAQAogI2luY2x1ZGUgIlJlbW90ZUNETUluc3RhbmNlUHJveHkuaCIKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1hY2hTZW5kUmlnaHQ7
CiB9CkBAIC02NSw2ICs2OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBMYXllckhv
c3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7Citj
bGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk7CiBjbGFzcyBSZW1vdGVBdWRpb1Ry
YWNrUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJl
bW90ZVRleHRUcmFja1Byb3h5OwpAQCAtMjY3LDYgKzI3Miw5IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZW5kQ2FjaGVkU3RhdGUoKTsKICAgICB2b2lkIHRpbWVyRmlyZWQoKTsKIAorICAgIHZvaWQg
Y3JlYXRlQXVkaW9Tb3VyY2VQcm92aWRlcigpOworICAgIHZvaWQgc2V0U2hvdWxkRW5hYmxlQXVk
aW9Tb3VyY2VQcm92aWRlcihib29sKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJldHVybiBtX2xvZ2dl
cjsgfQogICAgIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpIHsgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fY29uZmlndXJhdGlvbi5sb2dJZGVudGlm
aWVyKTsgfQpAQCAtMzAzLDYgKzMxMSwxMiBAQCBwcml2YXRlOgogICAgIFJlbW90ZUxlZ2FjeUNE
TVNlc3Npb25JZGVudGlmaWVyIG1fbGVnYWN5U2Vzc2lvbjsKICNlbmRpZgogCisjaWYgRU5BQkxF
KFdFQl9BVURJTykKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9yaW5n
QnVmZmVyRGVzY3JpcHRpb247CisgICAgc2l6ZV90IG1fcmluZ0J1ZmZlckNhcGFjaXR5IHsgMCB9
OworICAgIFJlZlB0cjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk+IG1fcmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlcjsKKyNlbmRpZgorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCA1OWEwYWNhYWExZjRjYzYxMzA3NTUyNmYwOTM1NTE5NDgyZWYxYTk1
Li4xMDM0NTE0NDUzODViN2FmNjQ4YmY4NDhkMzc4OWY4OTM4NDdkNjU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTE2LDYgKzExNiwxMSBAQCBtZXNzYWdlcyAtPiBS
ZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIEVycm9yTG9nKCkgLT4g
KFN0cmluZyBlcnJvckxvZykgU3luY2hyb25vdXMKICAgICBBY2Nlc3NMb2coKSAtPiAoU3RyaW5n
IGFjY2Vzc0xvZykgU3luY2hyb25vdXMKICNlbmRpZgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykK
KyAgICBDcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCkKKyAgICBTZXRTaG91bGRFbmFibGVBdWRp
b1NvdXJjZVByb3ZpZGVyKGJvb2wgc2hvdWxkRW5hYmxlKQorI2VuZGlmCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDAzMWUzZDJhZTg4ODcxMzUxODY5YTllOWU4YWJiOWY2
MzNmMzhkYjguLjhmZmZjMzVlNzk2ODBhZDJmNTZjNWE4OGM3ZDZkYWYxNWRkYWY4MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU4LDYgKzU4LDcgQEAgTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcAogR1BVUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29h
L1hQQ1NlcnZpY2UvR1BVU2VydmljZUVudHJ5UG9pbnQubW0KIEdQVVByb2Nlc3MvaW9zL0dQVVBy
b2Nlc3NJT1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMubW0KK0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRp
YS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KIEdQVVByb2Nlc3MvbWVkaWEv
aW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlclByb3h5LmNwcAogR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTU2NSw2ICs1NjYsNyBAQCBXZWJQcm9jZXNzL0Vu
dHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0K
IAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlci5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlQ29jb2EubW0KIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJS
ZW1vdGVDb2NvYS5tbQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lv
bkhlbHBlci5jcHAKQEAgLTY2Nyw2ICs2NjksNyBAQCBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdl
UmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVy
LmNwcAorUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiBSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAwZWRhMTVhMzVmZGJhNWM3MjI0MmMxMzg1OGY3MzhjNGFjNmY4
YTBlLi41ZDMyYjdmZjAzOTE4ZDViZDk5ZGFkNmI1ZGYzOWViNmFhNzg3MTNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0MjQsNiAr
MzQyNCwxMSBAQAogCQk0MTI4N0Q0RDIyNUMxNjFGMDA5QTNFMjYgLyogV2ViU29ja2V0VGFzay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTb2NrZXRUYXNrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMkZGOTE2MjUzNzNGOUQwMDFERjAzNiAvKiBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTJGRjkxNzI1MzczRjlEMDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTIzMjUz
ODJCRDMwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTI0MjUz
ODJCRDUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTJGRjkyNTI1MzgyQkQ1MDAx
REYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTI2MjUzODJEODUw
MDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MjcyNTM4MkQ4NTAwMURG
MDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDc1OUExREU4NEZCMDAwMzlFQzY5IC8qIE5ldHdv
cmtSVENNb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5l
dHdvcmtSVENNb25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDc1
OUIxREU4NEZCMDAwMzlFQzY5IC8qIE5ldHdvcmtSVENNb25pdG9yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtSVENNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMzA3NTlDMURFODRGQjAwMDM5RUM2OSAvKiBOZXR3b3JrUlRDTW9uaXRv
ci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3JrUlRDTW9uaXRvci5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ1MzIsNyArNDUzNyw3
IEBACiAJCTlCMTIyOUQwMjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRp
Zmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQ3OTA4QzI1MzE0RDgzMDBF
QzExQUIgLyogTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
c3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QjQ3OTA4RTI1MzE1MUNDMDBFQzExQUIgLyogSlNJUENCaW5kaW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTSVBDQmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QjQ3OTA5
MDI1MzE1NjMyMDBFQzExQUIgLyogTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0
aW9ucy5jcHA7IHBhdGggPSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5QjQ3OTA5MDI1MzE1NjMyMDBFQzExQUIgLyogTWVzc2Fn
ZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTlCNTQ5OUFDMjM2MkE2RjYwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0
aW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uQ29u
ZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBRTIzNjJB
N0E3MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QjAyMzYyQTdFQzAwREY4QkE1IC8qIF9X
S1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRN
YW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01NTY4LDYgKzU1NzMsOSBAQAogCQkJCUNEQkI0OUZCMjQwRDk3NEEwMDE3QzI5MiAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8sCiAJCQkJNDEyRkY5MTYyNTM3M0Y5RDAwMURG
MDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwICovLAogCQkJCTQxMkZGOTE3MjUz
NzNGOUQwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmggKi8sCisJCQkJNDEy
RkY5MjMyNTM4MkJEMzAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2Vy
LmNwcCAqLywKKwkJCQk0MTJGRjkyNDI1MzgyQkQ1MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXIuaCAqLywKKwkJCQk0MTJGRjkyNTI1MzgyQkQ1MDAxREYwMzYgLyog
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJQ0RB
QzIwQkYyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETS5jcHAgKi8sCiAJCQkJQ0RBQzIwQkEy
M0ZDMkY3NDAwMjFERUUzIC8qIFJlbW90ZUNETS5oICovLAogCQkJCUNEQUMyMEI4MjNGQzJGNzMw
MDIxREVFMyAvKiBSZW1vdGVDRE1Db25maWd1cmF0aW9uLmggKi8sCkBAIC01NjIzLDYgKzU2MzEs
OCBAQAogCQkJCUNEQkI0OUY4MjQwRDhENTMwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREJCNDlGQTI0MEQ5NjNEMDAxN0MyOTIgLyogUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcCAqLywKIAkJCQlDREJCNDlGOTI0MEQ5NjND
MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmggKi8sCisJCQkJNDEy
RkY5MjYyNTM4MkQ4NTAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5j
cHAgKi8sCisJCQkJNDEyRkY5MjcyNTM4MkQ4NTAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXJQcm94eS5oICovLAogCQkJCTA3MUJDNTdFMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1v
dGVBdWRpb1RyYWNrUHJveHkuY3BwICovLAogCQkJCTA3MUJDNTdGMjNDQTVEQjEwMDY4MEQ3QyAv
KiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCAqLywKIAkJCQlDREFDMjA3OTIzRkIxRTIxMDAyMURF
RTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMDFhZmZi
NWZjNWVhZmExNmM4YjZmMWQ4Mjg1Y2NjNDkzZGI3OWE2Zi4uZGQ4ZjFiZWZhNTg3NmNhZDU5NzA5
NzliZjE1ZThhMTU3Yzk0YzczYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlICJMaWJXZWJSVENDb2RlY3MuaCIKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1v
dGVDRE1GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHkuaCIKICNpbmNsdWRlICJS
ZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCkBAIC0xMDEsNiArMTAyLDE1IEBAIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlciYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246Om1lZGlhUGxheWVyTWFuYWdlcigp
CiAgICAgcmV0dXJuICpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcj4oKTsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
V0VCX0FVRElPKQorUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXImIEdQVVByb2Nlc3ND
b25uZWN0aW9uOjphdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcigpCit7CisgICAgaWYgKCFtX2F1
ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKQorICAgICAgICBtX2F1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OmNyZWF0ZSgpOworICAg
IHJldHVybiAqbV9hdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjsKK30KKyNlbmRpZgorCiAjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIFJlbW90ZUNETUZhY3RvcnkmIEdQVVByb2Nlc3NDb25u
ZWN0aW9uOjpjZG1GYWN0b3J5KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAzODIwOTQyNTlmYWNlZDJlZWU0MmU4
NWM1Y2Y5NDdmZDIyMTg4YjcwLi5hODFhYzY3ZmM0ZGRkNzk0MjVjZjI0ODg5YjFjZjhkZjFjNTE2
ZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
Q29ubmVjdGlvbi5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIERhdGFSZWZlcmVuY2U7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdl
cjsKIGNsYXNzIFJlbW90ZUNETUZhY3Rvcnk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI7CiBjbGFzcyBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5OwpAQCAtNjYsNiArNjcsMTAgQEAgcHVi
bGljOgogCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtZWRpYVBsYXllck1hbmFnZXIo
KTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoV0VCX0FVRElPKQorICAgIFJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyJiBhdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcigp
OworI2VuZGlmCisKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIFJlbW90ZUNETUZh
Y3RvcnkmIGNkbUZhY3RvcnkoKTsKICNlbmRpZgpAQCAtMTAwLDYgKzEwNSw5IEBAIHByaXZhdGU6
CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IG1fc2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlcjsKICNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoV0VCX0FVRElPKQorICAgIFJlZlB0cjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdl
cj4gbV9hdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjsKKyNlbmRpZgogI2lmIEVOQUJMRShWUDkp
CiAgICAgYm9vbCBtX2VuYWJsZVZQOURlY29kZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFi
bGVWUDlTV0RlY29kZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAK
aW5kZXggYTk5MGNlN2Q1NTllOTg0OWJmOWVjZjcwOWNmM2RiMzIyZGMzN2ZiOS4uZGNiZDRmOGFm
YWZlMTA2MGE2MWIwMzA1MzFlMTJjNzRkMzdlZmZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXIuY3BwCkBAIC0yOCw2ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQogCisjaW5jbHVkZSAiUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXll
clByb3h5TWVzc2FnZXMuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTWVkaWE7CkBAIC0zOSw3ICs0Miwx
NiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXI+IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0ZShXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxwZXImIGhlbHBlcikKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKGlkZW50
aWZpZXIsIGhlbHBlcikpOworICAgIGF1dG8gcHJvdmlkZXIgPSBhZG9wdFJlZigqbmV3IFJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXIoaWRlbnRpZmllciwgaGVscGVyKSk7CisKKyAgICBhdXRvJiBn
cHVQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVBy
b2Nlc3NDb25uZWN0aW9uKCk7CisgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uYXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXIoKS5hZGRQcm92aWRlcihwcm92aWRlci5jb3B5UmVmKCkpOworCisjaWYg
RU5BQkxFKFdFQl9BVURJTykKKyAgICBncHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Q3JlYXRlQXVkaW9Tb3VyY2VQ
cm92aWRlciB7IH0sIHByb3ZpZGVyLT5pZGVudGlmaWVyKCkpOworI2VuZGlmCisKKyAgICByZXR1
cm4gcHJvdmlkZXI7CiB9CiAKIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdURjo6TG9n
Z2VySGVscGVyJiBoZWxwZXIpCkBAIC00OSw2ICs2MSw3IEBAIFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlk
ZW50CiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoaGVscGVyLmxvZ0lkZW50aWZpZXIoKSkKICNlbmRp
ZgogeworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgVU5VU0VEX1BBUkFNKGhlbHBl
cik7CiB9CiAKQEAgLTU4LDExICs3MSwxMyBAQCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjp+
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcigpCiAKIHZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlcjo6Y2xvc2UoKQogeworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5hdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlcigpLnJlbW92ZVByb3ZpZGVyKG1faWRlbnRpZmllcik7CiB9CiAKLXZv
aWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6aGFzTmV3Q2xpZW50KEF1ZGlvU291cmNlUHJv
dmlkZXJDbGllbnQqKQordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpoYXNOZXdDbGll
bnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQogewotICAgIC8vIEZJWE1FOiBy
ZWdpc3Rlci91bnJlZ2lzdGVyIGFzIG5lZWRlZC4KKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpTZXRTaG91bGRFbmFibGVBdWRpb1NvdXJjZVByb3Zp
ZGVyIHsgISFjbGllbnQgfSwgbV9pZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXpl
X3Qgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjhmNDVhNmQ1YmI0ZGI0NjA5ODgwMTI0M2JiNWU5MzE3YjFlM2UyYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTY4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVl
OjpjcmVhdGUoIlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyIiwgV29ya1F1ZXVlOjpU
eXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQoreworfQorCitS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6flJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyKCkKK3sKKyAgICBzZXRDb25uZWN0aW9uKG51bGxwdHIpOworfQorCit2b2lkIFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpzZXRDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBpZiAobV9jb25uZWN0aW9uID09IGNvbm5lY3Rpb24p
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29u
bmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKworICAgIG1f
Y29ubmVjdGlvbiA9IFdURk1vdmUoY29ubmVjdGlvbik7CisKKyAgICBpZiAobV9jb25uZWN0aW9u
KQorICAgICAgICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgdGhpcyk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OmFk
ZFByb3ZpZGVyKFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyPiYmIHByb3ZpZGVyKQorewor
ICAgIEFTU0VSVChXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CisgICAgc2V0Q29ubmVjdGlvbigmV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkpOworCisgICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpcywgcHJvdmlkZXIgPSBXVEZNb3Zl
KHByb3ZpZGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcHJvdmlk
ZXItPmlkZW50aWZpZXIoKTsKKworICAgICAgICBBU1NFUlQoIW1fcHJvdmlkZXJzLmNvbnRhaW5z
KGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV9wcm92aWRlcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VV
bmlxdWU8UmVtb3RlQXVkaW8+KFdURk1vdmUocHJvdmlkZXIpKSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OnJlbW92ZVByb3ZpZGVyKE1lZGlh
UGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIEFTU0VSVChXVEY6OmlzTWFpblJ1
bkxvb3AoKSk7CisKKyAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyXSB7Cisg
ICAgICAgIEFTU0VSVChtX3Byb3ZpZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgICAg
IG1fcHJvdmlkZXJzLnJlbW92ZShpZGVudGlmaWVyKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6ZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlvbjx2
b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goV1RGTW92ZShjYWxs
YmFjaykpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjphdWRp
b1N0b3JhZ2VDaGFuZ2VkKE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBT
aGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaXBjSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykK
K3sKKyAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgpKTsKKworICAgIGF1dG8gaXRlcmF0
b3IgPSBtX3Byb3ZpZGVycy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBt
X3Byb3ZpZGVycy5lbmQoKSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIlVu
YWJsZSB0byBmaW5kIHByb3ZpZGVyICVsbHUgZm9yIHN0b3JhZ2VDaGFuZ2VkIiwgaWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpdGVyYXRvci0+dmFs
dWUtPnNldFN0b3JhZ2UoaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJh
bWVzKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBBU1NFUlQoIVdU
Rjo6aXNNYWluUnVuTG9vcCgpKTsKKworICAgIGF1dG8gaXRlcmF0b3IgPSBtX3Byb3ZpZGVycy5m
aW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3Byb3ZpZGVycy5lbmQoKSkg
eworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIlVuYWJsZSB0byBmaW5kIHByb3Zp
ZGVyICVsbHUgZm9yIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSIsIGlkZW50aWZpZXIudG9VSW50NjQo
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaXRlcmF0b3ItPnZhbHVlLT5hdWRpb1Nh
bXBsZXNBdmFpbGFibGUoc3RhcnRGcmFtZSwgbnVtYmVyT2ZGcmFtZXMpOworfQorCitSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6UmVtb3RlQXVkaW86OlJlbW90ZUF1ZGlvKFJlZjxS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyPiYmIHByb3ZpZGVyKQorICAgIDogbV9wcm92aWRlcihX
VEZNb3ZlKHByb3ZpZGVyKSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPENBUmluZ0J1
ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obnVsbHB0cikpKQor
eworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRp
bzo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBu
dW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisKKyAg
ICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkp
IHsKKyAgICAgICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1v
cnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYo
IW1lbW9yeSwgTWVkaWEsICJVbmFibGUgdG8gY3JlYXRlIHNoYXJlZCBtZW1vcnkgZm9yIGF1ZGlv
IHByb3ZpZGVyICVsbHUiLCBtX3Byb3ZpZGVyLT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7Cisg
ICAgfQorCisgICAgYXV0byYgc3RvcmFnZSA9IHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOworICAgIGlmICghbWVtb3J5KSB7Cisg
ICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxvY2F0ZSgpOworICAgICAgICBzdG9yYWdlLnNldFJl
YWRPbmx5KGZhbHNlKTsKKyAgICAgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG51bGxwdHIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG1lbW9yeS5yZWxl
YXNlTm9uTnVsbCgpKTsKKyAgICBzdG9yYWdlLnNldFJlYWRPbmx5KHRydWUpOworICAgIG1fcmlu
Z0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX2J1
ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgbnVtYmVy
T2ZGcmFtZXMpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpS
ZW1vdGVBdWRpbzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVp
bnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIGlmICghbV9idWZmZXIpIHsKKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJidWZmZXIgZm9yIGF1ZGlvIHByb3ZpZGVyICVsbHUg
aXMgbnVsbCIsIG1fcHJvdmlkZXItPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmICghV2ViQXVkaW9CdWZmZXJMaXN0Ojppc1N1cHBvcnRl
ZERlc2NyaXB0aW9uKG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKSkgeworICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIlVuYWJsZSB0byBzdXBwb3J0IGRlc2NyaXB0aW9uIHdp
dGggZ2l2ZW4gbnVtYmVyIG9mIGZyYW1lcyBmb3IgYXVkaW8gcHJvdmlkZXIgJWxsdSIsIG1fcHJv
dmlkZXItPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGF1dG8gZW5kRnJhbWUgPSBzdGFydEZyYW1lICsgbnVtYmVyT2ZGcmFtZXM7CisgICAg
bV9idWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJhbWVzKTsKKworICAgIG1fcmluZ0J1
ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBt
X3JpbmdCdWZmZXItPmZldGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCBzdGFy
dEZyYW1lKTsKKworICAgIG1fcHJvdmlkZXItPmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSgqbV9idWZm
ZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworfQorCisjZW5kaWYgLy8g
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTllMWIwNmI0NDdlNWQ4MGNhNjEw
NTJjNmM3YTMyYzRiYTE0MmU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oCkBAIC0w
LDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBs
YXllcklkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
cjsKKworY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIgOiBwdWJsaWMgSVBD
OjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyPiBjcmVhdGUo
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2Vy
KCkpOyB9CisgICAgflJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCk7CisKKyAgICB2
b2lkIGFkZFByb3ZpZGVyKFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyPiYmKTsKKyAgICB2
b2lkIHJlbW92ZVByb3ZpZGVyKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllcik7CisKKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
OworCitwcml2YXRlOgorICAgIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCk7CisK
KyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQg
ZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYpIGZpbmFsOworCisgICAgLy8gTWVz
c2FnZXMKKyAgICB2b2lkIGF1ZGlvU3RvcmFnZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6
OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyAg
ICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZp
ZXIsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKworICAg
IHZvaWQgc2V0Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKTsKKworICAgIGNsYXNzIFJlbW90
ZUF1ZGlvIHsKKyAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgcHVibGljOgor
ICAgICAgICBleHBsaWNpdCBSZW1vdGVBdWRpbyhSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
cj4mJik7CisKKyAgICAgICAgdm9pZCBzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFu
ZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3Qg
bnVtYmVyT2ZGcmFtZXMpOworICAgICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50
NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisKKyAgICBwcml2YXRl
OgorICAgICAgICBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4gbV9wcm92aWRlcjsKKyAg
ICAgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247Cisg
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZl
cjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4g
bV9idWZmZXI7CisgICAgfTsKKworICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CisgICAgUmVm
UHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworCisgICAgLy8gYmFja2dyb3VuZCB0
aHJlYWQgbWVtYmVyCisgICAgSGFzaE1hcDxXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpbz4+IG1fcHJvdmlkZXJzOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFn
ZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVhYzgwYWRmODMxNWJjYmRiOWM2OWRhNDlkOTM1
NDhmZWZlMTI4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21l
c3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyIE5vdFJlZkNvdW50ZWQg
eworICAgIEF1ZGlvU3RvcmFnZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVy
IGlkLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNv
cmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMpCisgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhUGxheWVy
SWRlbnRpZmllciBpZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKaW5kZXggMTc1N2E2YTli
MWIxMjUzMDEzNWFiOGY3N2IxZWE1OWY2YjAyZWRlOC4uNWIzZTcwMGUwOTU4ZTJmYmQ1NjkxNzgw
NDI3MWRlZGM5NGZjNWU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCkBAIC0yNiw2ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuaCIKIAorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgpAQCAtMzMs
NyArMzQsNiBAQAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411431</attachid>
            <date>2020-10-15 05:22:58 -0700</date>
            <delta_ts>2020-10-15 05:30:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217704-20201015142256.patch</filename>
            <type>text/plain</type>
            <size>56474</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU3MDdhMjg4ODMyZmNh
YTlmNGUyNzhhZGZkZTRkYmUzYjAwNjYyZS4uYWNjMGNmYWZjNDcyNTdiZDAwNmYyZjJmNTUxOGVh
NjgxOTNiNjkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTEwLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
R1BVUHJvY2VzcyBXZWJBdWRpbyBtZWRpYSBlbGVtZW50IHByb3ZpZGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDIHNvIHRoYXQgYSBzcGVjaWZpYyByaW5nIGJ1ZmZlciBjYW4gYmUgcHJvdmlk
ZWQgYW5kIHRvIGJlIG5vdGlmaWVkIG9mIG5ldyBzYW1wbGVzIGJlaW5nIHB1c2hlZC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHdlYiBhdWRpbyB0ZXN0cyBydW4gd2l0aCBHUFVQcm9j
ZXNzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXI6OmlzSGFuZGxpbmdBVlBsYXllciBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVEYXRhU291cmNlOjpwdWxsU2FtcGxlc0ludGVy
bmFsKToKKyAgICAgICAgV2hlbiB3ZSBhcmUgdG9vIGNsb3NlIHRvIHRoZSBlbmQgb2YgYXZhaWxh
YmxlIGRhdGEsIGRvIGFzIGlmIHdlIGFyZSBwYXVzZWQgYW5kIGtlZXAgdGhlIHNhbWUgdGltZSBl
bnRyeSBmb3IgdGhlIG5leHQgcmVhZCBvcGVyYXRpb24uCisgICAgICAgIFRoaXMgd2lsbCBiYXNp
Y2FsbHkgbWFrZSB1cyB3YWl0IGZvciB0aGUgbmV4dCBwdXNoIG9mIGRhdGEgYmVmb3JlIHJlc3Rh
cnRpbmcgdG8gcmVhZCBzdWNjZXNmdWxseS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaDoKKyAgICAgICAgKGlzVHlw
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByb2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnNldEF1ZGlvQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnNldFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpyZWNl
aXZlZE5ld0F1ZGlvU2FtcGxlcyk6CisgICAgICAgIFdlIHNob3VsZCB1c2UgdGhlIGlucHV0IHNh
bXBsZSByYXRlIHRvIGNvbXB1dGUgdGhlIGlucHV0IG1lZGlhIHRpbWUuCisKIDIwMjAtMTAtMTQg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBh
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIgdG8gcmVjZWl2ZSBhdWRpbyBzYW1wbGVzIGZvciB3
ZWIgYXVkaW8gZnJvbSBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQwYzQ5YWI2ODZjNTM0MjRlOThj
MGYzODY1NDg2OTg2ZTUwNTA3ZmIuLjU1ZGRlYzEwODYxODE3NGMxM2E3MzU1NzMyM2NiMWExNzZj
NDdlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjAtMTAtMTUgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBHUFVQcm9j
ZXNzIFdlYkF1ZGlvIG1lZGlhIGVsZW1lbnQgcHJvdmlkZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3MDQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXIgd2hpY2ggcmVjZWl2ZXMgSVBDIG1lc3NhZ2VzIGZyb20gR1BVIHByb2Nl
c3MgZm9yIHdlYiBhdWRpbyBkYXRhLgorICAgICAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlciBzZW5kcyBpdCB0byB0aGUgaWRlbnRpZmllZCBSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyLgorCisgICAgICAgIEludHJvZHVjZSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkg
d2hpY2ggaXMgYSBjbGllbnQgdG8gdGhlIEFWIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLgor
ICAgICAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkgd2lsbCBzZW5kIElQQyBtZXNz
YWdlcyB0byBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlciB0byBzZW5kIGF1ZGlvIGRh
dGEgYW5kIGRlc2NyaXB0aW9uLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQ
cm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZVJpbmdCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6Om5ld0F1ZGlvU2Ft
cGxlcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6
c3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y3JlYXRlQXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFNob3VsZEVuYWJsZUF1ZGlv
U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJv
Y2Vzc0Nvbm5lY3Rpb246OmF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6Y2xvc2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpoYXNOZXdDbGllbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlcjo6c2V0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjphZGRQcm92aWRlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpyZW1vdmVQcm92aWRlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpkaXNwYXRj
aFRvVGhyZWFkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1h
bmFnZXI6OmF1ZGlvU3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpS
ZW1vdGVBdWRpbyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwOgorCiAyMDIwLTEwLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBJbnRyb2R1Y2UgYSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyIHRvIHJlY2VpdmUg
YXVkaW8gc2FtcGxlcyBmb3Igd2ViIGF1ZGlvIGZyb20gR1BVUHJvY2VzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKaW5kZXggMGFkZTdkOGM4ZDRiMmYyZDk4ZDZkMzkwZTkzOGFiMzNlYjc0NTgxNy4uMTExZWIy
ZGI0N2I1N2QzNjU5MGIyM2JmYjkwNjY0NWE5MjBiODEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBA
IC0xMDY3LDYgKzEwNjcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIu
aAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaAogICAgIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaAogICAgIHBsYXRmb3JtL2F1ZGlv
L0F1ZGlvVXRpbGl0aWVzLmgKICAgICBwbGF0Zm9ybS9hdWRpby9Ob3dQbGF5aW5nSW5mby5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggOWU4MzhhMTg5M2U1MzBlYThlN2E0NjgxZTc2YjFjYzUzNGU3NmRkMy4uZDkyZDQyMTgxNTVi
M2E2YTQzODgwNGZkZDY5OTM0NDE4ODJjNjNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDE5Nyw3ICs0MTk3LDcgQEAKIAkJ
Q0Q3RTA1MjIxNjUxQzI4MjAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0UwNTIxMTY1
MUE4NDEwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gKi87IH07CiAJCUNE
ODNEMzYyMjExMjJBMjEwMDc2RTExQyAvKiBEZWZlcnJhYmxlVGFzay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4M0QzNUEyMTExMTA4MjAwNzZFMTFD
IC8qIERlZmVycmFibGVUYXNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0Q4QTdCQkIxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q4QTdCQjkxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tICovOyB9OwotCQlDRDhBN0JCQzE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOEE3QkJBMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5oICovOyB9OworCQlDRDhBN0JCQzE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOEE3QkJBMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUNEOEFDQTg5MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEFDQTg3MUQy
MzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaCAqLzsgfTsKIAkJQ0Q4
QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEFDQThEMUQyMzk3MTkwMEVD
QzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi87IH07CiAJCUNEOEI1QTQyMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTQwMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAqLzsgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlk
ZXIuaAppbmRleCBiMjI0NDlhMWNhMGNkOTVjNDQ4ZTUzYzhiODA3MWQ1NGJhODNjNDJiLi42YzA5
YzA4NjFiOTY2NDM5NjdiZGY1NjI1N2NjZTE5ZDRiY2MwYzc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5oCkBAIC00Myw2ICs0
Myw4IEBAIHB1YmxpYzoKICAgICAvLyBJZiBhIGNsaWVudCBpcyBzZXQsIHdlIGNhbGwgaXQgYmFj
ayB3aGVuIHRoZSBhdWRpbyBmb3JtYXQgaXMgYXZhaWxhYmxlIG9yIGNoYW5nZXMuCiAgICAgdmly
dHVhbCB2b2lkIHNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KikgeyB9OwogCisg
ICAgdmlydHVhbCBib29sIGlzSGFuZGxpbmdBVlBsYXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisKICAgICB2aXJ0dWFsIH5BdWRpb1NvdXJjZVByb3ZpZGVyKCkgPSBkZWZhdWx0OwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9T
YW1wbGVEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCmluZGV4IGVmN2ZkMDQzOTFjNTg0ZDBjZWJlNjY4MTE3
ZWJjN2MyYThiYTJhYzcuLjllNmQ1NDUyNTcxZDFkNWU3NTc0ODE2NjU0NmQ2ODU4ZTJkNjlhODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KQEAgLTI2MCw5ICsyNjAsOCBAQCBib29sIEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZTo6cHVsbFNhbXBsZXNJbnRlcm5hbChBdWRpb0J1ZmZlckxpc3QmIGJ1
ZmZlciwgc2l6ZV90JgogICAgICAgICAgICAgaWYgKHRpbWVTdGFtcCA+PSBlbmRGcmFtZSkKICAg
ICAgICAgICAgICAgICBtX2VuZEZyYW1lV2hlbk5vdEVub3VnaERhdGEgPSBlbmRGcmFtZTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIFdlIGFyZSB0b28gY2xvc2UgZnJvbSBlbmRG
cmFtZSwgbGV0J3MgYmFjayB1cCBhIGxpdHRsZSBiaXQuCi0gICAgICAgICAgICB1aW50NjRfdCBm
cmFtZXNBdmFpbGFibGUgPSBlbmRGcmFtZSAtIHRpbWVTdGFtcDsKLSAgICAgICAgICAgIG1fb3V0
cHV0U2FtcGxlT2Zmc2V0IC09IHNhbXBsZUNvdW50IC0gZnJhbWVzQXZhaWxhYmxlOworICAgICAg
ICAgICAgLy8gV2UgYXJlIHRvbyBjbG9zZSBmcm9tIGVuZEZyYW1lLCBsZXQncyB3YWl0IGZvciBt
b3JlIGRhdGEgdG8gYmUgcHVzaGVkLgorICAgICAgICAgICAgbV9vdXRwdXRTYW1wbGVPZmZzZXQg
LT0gc2FtcGxlQ291bnQ7CiAgICAgICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpLCBbbG9nSWRlbnRpZmllciA9IExPR0lERU5USUZJRVIsIG91dHB1dFNhbXBs
ZU9mZnNldCA9IG1fb3V0cHV0U2FtcGxlT2Zmc2V0LCB0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cigqdGhpcyldIHsKICAgICAgICAgICAgICAgICBBTFdBWVNfTE9HKGxvZ0lkZW50aWZp
ZXIsICJ1cGRhdGluZyBvZmZzZXQgdG8gIiwgb3V0cHV0U2FtcGxlT2Zmc2V0KTsKICAgICAgICAg
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMu
aAppbmRleCBmNjVjZjA4YzRmMmEwNjFmMTMyYjdjOWUxMTcyNjNhMzRhMTU4N2Q0Li5iYTdmNDZk
NGI1NDRhMWFkMWIxYmZiODkwZDAyYTc1YzgyMGM3OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAtMjMsOCArMjMsNyBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQ19oCi0j
ZGVmaW5lIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDX2gKKyNwcmFnbWEgb25jZQogCiAjaWYg
RU5BQkxFKFdFQl9BVURJTykgJiYgVVNFKE1FRElBVE9PTEJPWCkKIApAQCAtMzMsNiArMzIsNyBA
QAogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1R5
cGVDYXN0cy5oPgogCiBPQkpDX0NMQVNTIEFWQXNzZXRUcmFjazsKIE9CSkNfQ0xBU1MgQVZQbGF5
ZXJJdGVtOwpAQCAtNDcsNyArNDcsMTAgQEAgdHlwZWRlZiBzaWduZWQgbG9uZyBDTUl0ZW1Db3Vu
dDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
OworY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwogY2xhc3MgQ0FSaW5nQnVmZmVyOwor
Y2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiAKIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDPiwgcHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIgewogcHVibGljOgpAQCAtNTcsNiArNjAs
MTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGxheWVySXRlbShBVlBsYXllckl0ZW0gKik7CiAg
ICAgdm9pZCBzZXRBdWRpb1RyYWNrKEFWQXNzZXRUcmFjayAqKTsKIAorICAgIHVzaW5nIEF1ZGlv
Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzKT47CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdWRpb0NhbGxiYWNr
KEF1ZGlvQ2FsbGJhY2smJik7CisgICAgdXNpbmcgUmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2sg
PSBGdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPihjb25zdCBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJp
bmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrJiYpOwor
CiBwcml2YXRlOgogICAgIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKEFWUGxheWVySXRlbSAq
KTsKIApAQCAtNjYsNiArNzQsNyBAQCBwcml2YXRlOgogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlk
ZXIKICAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQqKSBvdmVycmlkZTsKKyAgICBib29sIGlzSGFuZGxpbmdBVlBsYXllcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHN0YXRpYyB2b2lkIGluaXRDYWxsYmFjayhNVEF1ZGlv
UHJvY2Vzc2luZ1RhcFJlZiwgdm9pZCosIHZvaWQqKik7CiAgICAgc3RhdGljIHZvaWQgZmluYWxp
emVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZik7CkBAIC0xMDAsMTAgKzEwOSwxNCBA
QCBwcml2YXRlOgogCiAgICAgY2xhc3MgVGFwU3RvcmFnZTsKICAgICBSZWZQdHI8VGFwU3RvcmFn
ZT4gbV90YXBTdG9yYWdlOworICAgIEF1ZGlvQ2FsbGJhY2sgbV9hdWRpb0NhbGxiYWNrOworICAg
IFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrIG1fcmluZ0J1ZmZlckNhbGxiYWNrOwogfTsKLSAg
ICAKKwogfQogCi0jZW5kaWYKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0
IFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXImIHByb3ZpZGVyKSB7IHJldHVybiBwcm92aWRl
ci5pc0hhbmRsaW5nQVZQbGF5ZXIoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQog
Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKSAmJiBVU0UoTUVESUFUT09MQk9Y
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmlu
ZGV4IDVkY2E0MGUzYjc5ZTVkYTU1MDAyNTdjNTFiNDQ2MzEzYzQ4NDg4MWQuLmE4NjRhZTM2YzM5
NjliODI5MjZiOGNiMzI0YTZjYmIyODVmMjZiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTMzNyw4ICszMzcsMTIgQEAgdm9pZCBB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShDTUl0ZW1Db3VudCBtYXhGcmFtZXMs
IGNvbnN0IEF1ZGlvU3RyZWEKICAgICAvLyBNYWtlIHRoZSByaW5nYnVmZmVyIGxhcmdlIGVub3Vn
aCB0byBzdG9yZSBhdCBsZWFzdCB0d28gY2FsbGJhY2tzIHdvcnRoIG9mIGF1ZGlvLCBvciAxcywg
d2hpY2hldmVyIGlzIGxhcmdlci4KICAgICBzaXplX3QgY2FwYWNpdHkgPSBzdGQ6Om1heChzdGF0
aWNfY2FzdDxzaXplX3Q+KDIgKiBtYXhGcmFtZXMpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGtSaW5n
QnVmZmVyRHVyYXRpb24gKiBzYW1wbGVSYXRlKSk7CiAKLSAgICBtX3JpbmdCdWZmZXIgPSBtYWtl
VW5pcXVlPENBUmluZ0J1ZmZlcj4oKTsKLSAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKENBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbigqcHJvY2Vzc2luZ0Zvcm1hdCksIGNhcGFjaXR5KTsKKyAgICBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24geyAqcHJvY2Vzc2luZ0Zvcm1hdCB9
OworICAgIG1fcmluZ0J1ZmZlciA9IG1fcmluZ0J1ZmZlckNhbGxiYWNrID8gbV9yaW5nQnVmZmVy
Q2FsbGJhY2soZGVzY3JpcHRpb24sIGNhcGFjaXR5KSA6IG51bGxwdHI7CisgICAgaWYgKCFtX3Jp
bmdCdWZmZXIpIHsKKyAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZm
ZXI+KCk7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIGNhcGFj
aXR5KTsKKyAgICB9CiAKICAgICAvLyBBdWRpb0J1ZmZlckxpc3QgaXMgYSB2YXJpYWJsZS1sZW5n
dGggc3RydWN0LCBzbyBjcmVhdGUgb24gdGhlIGhlYXAgd2l0aCBhIGdlbmVyaWMgbmV3KCkgb3Bl
cmF0b3IKICAgICAvLyB3aXRoIGEgY3VzdG9tIHNpemUsIGFuZCBpbml0aWFsaXplIHRoZSBzdHJ1
Y3QgbWFudWFsbHkuCkBAIC00MTksNiArNDIzLDIxIEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByb2Nlc3MoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3Vu
CiAgICAgICAgIG1lbXNldChidWZmZXIubURhdGEsIDAsIGJ1ZmZlci5tRGF0YUJ5dGVTaXplKTsK
ICAgICB9CiAgICAgKm51bWJlckZyYW1lc091dCA9IDA7CisKKyAgICBpZiAobV9hdWRpb0NhbGxi
YWNrKQorICAgICAgICBtX2F1ZGlvQ2FsbGJhY2soZW5kRnJhbWUsIGl0ZW1Db3VudCk7Cit9CisK
K3ZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldEF1ZGlvQ2FsbGJhY2soQXVkaW9D
YWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFTU0VSVCghbV9hdkF1ZGlvTWl4KTsKKyAgICBt
X2F1ZGlvQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwordm9pZCBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6c2V0UmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2soUmluZ0J1ZmZl
ckNyZWF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBU1NFUlQoIW1fYXZBdWRpb01p
eCk7CisgICAgbV9yaW5nQnVmZmVyQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dl
YkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KaW5kZXggZWM4OGJl
MzRiMTcyZTJlYTJmZWI0NDQ2ZTRhMGM2ZmJmOGNmMTFhNy4uNTVkM2RmNDgwMjM4NzMwNjQzYTMy
YmQxZDYwYWY4ZGVhNmM2NjIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckNvY29hLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
Q29jb2E6OnJlY2VpdmVkTmV3QXVkaW9TYW1wbGVzKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXQKICAg
ICBpZiAoIW1fZGF0YVNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9kYXRhU291cmNl
LT5wdXNoU2FtcGxlcyhNZWRpYVRpbWUobV93cml0ZUNvdW50LCBtX291dHB1dERlc2NyaXB0aW9u
LT5zYW1wbGVSYXRlKCkpLCBkYXRhLCBmcmFtZUNvdW50KTsKKyAgICBtX2RhdGFTb3VyY2UtPnB1
c2hTYW1wbGVzKE1lZGlhVGltZShtX3dyaXRlQ291bnQsIG1faW5wdXREZXNjcmlwdGlvbi0+c2Ft
cGxlUmF0ZSgpKSwgZGF0YSwgZnJhbWVDb3VudCk7CiAKICAgICBtX3dyaXRlQ291bnQgKz0gZnJh
bWVDb3VudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGM5ZjZiNDNiOGU4NzFhMzNmZGJkNjQx
OTI3ZjRjODdkOGFkYjQzZjYuLjU1YTNkYTFhZDkzNWJlNDU2N2Y1Mzk2NDM5MmNkOGFhNzRjOTkx
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMjE5LDYgKzIxOSw3IEBAIHNldChXZWJLaXRfTUVT
U0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUKICAgICBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkKICAgICBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24KKyAgICBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcgogICAg
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbgogICAgIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDY4NDVjZThiZDQwZjY3MWMz
MjRiOWIyNTI0ZDljNzRkZWRmMDExYTAuLjQ2YmFlMzc1Y2QxMWFlMjEzMDBhNmM1N2RkZWYwNTQx
MWFjODAzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTEyNyw2ICsxMjcsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVMZWdhY3lDRE1TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLm1lc3NhZ2VzLmluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAw
NGQ0Nzk4NmEwNTY1OTBjOGQxOWM5NjE5ZTkyMzMyOGQyODQxYzFiLi4wOWFmZjY1ZTFjZTA0YTVk
OWQwZjJlNWYxMWViZmIyNTE5OTM0YjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE1NCw2ICsxNTQsOSBAQCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXJNZXNzYQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlc1JlcGxpZXMu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGVkZDU4NzgzODkxOTBmM2VlYzY2Y2U5
ZTNiMTc3Nzk2ZTFjZjdiNzYuLjNjOTE5MTE0NzUxNmY2NDFlNGFlZmM0YWRhZGZkMmQ4ODVlZGVi
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE3NSw2ICsxNzUsNyBAQCBNRVNT
QUdFX1JFQ0VJVkVSUyA9IFwKIAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyIFwKIAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkgXAogCVdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbiBcCisJ
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIgXAog
CVdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcCBcCiAJV2ViUHJvY2Vzcy9Vc2Vy
Q29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIgXAogCVdlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjE1YTZhNzcyNWNlYjBhMDQ1ZWEwYTY3MTViNGQ3ODZj
NmU4Mzc5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHAKQEAgLTAsMCArMSw4OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFC
TEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShDT0NPQSkKKworI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5PiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJv
eHk6OmNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVm
PElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QyYgbG9jYWxQcm92aWRlcikKK3sKKyAgICBhdXRvIHJlbW90ZVByb3ZpZGVyID0gYWRvcHRSZWYo
Km5ldyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkoaWRlbnRpZmllciwgV1RGTW92ZShj
b25uZWN0aW9uKSkpOworCisgICAgbG9jYWxQcm92aWRlci5zZXRSaW5nQnVmZmVyQ3JlYXRpb25D
YWxsYmFjayhbcmVtb3RlUHJvdmlkZXJdKGF1dG8gZGVzY3JpcHRpb24sIGF1dG8gY2FwYWNpdHkp
IHsKKyAgICAgICAgcmV0dXJuIHJlbW90ZVByb3ZpZGVyLT5jcmVhdGVSaW5nQnVmZmVyKGRlc2Ny
aXB0aW9uLCBjYXBhY2l0eSk7CisgICAgfSk7CisgICAgbG9jYWxQcm92aWRlci5zZXRBdWRpb0Nh
bGxiYWNrKFtyZW1vdGVQcm92aWRlcl0oYXV0byBzdGFydEZyYW1lLCBhdXRvIG51bWJlck9mRnJh
bWVzKSB7CisgICAgICAgIHJlbW90ZVByb3ZpZGVyLT5uZXdBdWRpb1NhbXBsZXMoc3RhcnRGcmFt
ZSwgbnVtYmVyT2ZGcmFtZXMpOworICAgIH0pOworCisgICAgcmV0dXJuIHJlbW90ZVByb3ZpZGVy
OworfQorCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OlJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXJQcm94eShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwg
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9pZGVudGlmaWVyKGlk
ZW50aWZpZXIpCisgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKK30K
KworUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5Ojp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5KCkgPSBkZWZhdWx0OworCitzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZVJpbmdCdWZmZXIoY29uc3QgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IGNhcGFjaXR5KQorewor
ICAgIG1fcmluZ0J1ZmZlckRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgbV9yaW5nQnVm
ZmVyQ2FwYWNpdHkgPSBjYXBhY2l0eTsKKyAgICBhdXRvIHJpbmdCdWZmZXIgPSBtYWtlVW5pcXVl
PENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obWFr
ZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4odGhpcykpKTsKKyAgICByaW5nQnVm
ZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgY2FwYWNpdHkpOworICAgIHJldHVybiByaW5nQnVm
ZmVyOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6bmV3QXVkaW9T
YW1wbGVzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorewor
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
ck1hbmFnZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZSB7IG1faWRlbnRpZmllciwgc3RhcnRGcmFt
ZSwgbnVtYmVyT2ZGcmFtZXMgfSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5OjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIG1lbW9yeSkKK3sKKyAgICBT
aGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgaWYgKG1lbW9yeSkKKyAgICAgICAgbWVt
b3J5LT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KTsKKworICAgIC8vIEZJWE1FOiBTZW5kIHRoZSBhY3R1YWwgZGF0YSBzaXplIHdpdGggSVBD
SGFuZGxlLgorI2lmIE9TKERBUldJTikgfHwgT1MoV0lORE9XUykKKyAgICB1aW50NjRfdCBkYXRh
U2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxzZQorICAgIHVpbnQ2NF90IGRhdGFTaXplID0gMDsK
KyNlbmRpZgorICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXI6OkF1ZGlvU3RvcmFnZUNoYW5nZWQgeyBtX2lkZW50aWZpZXIsIFNo
YXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCAgZGF0YVNpemUgfSwgbV9y
aW5nQnVmZmVyRGVzY3JpcHRpb24sIG1fcmluZ0J1ZmZlckNhcGFjaXR5IH0sIDApOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
RU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIxYWE5MDAyNjkwZjNmZjdmYmE1ZDVmZWNiMjQ5MDc1M2U3
OTk1OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuaApAQCAtMCwwICsxLDcyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShX
RUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgor
I2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmll
ci5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKK2NsYXNzIENBUmlu
Z0J1ZmZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJQcm94eSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyUHJveHk+CisgICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U6OkNsaWVudAorICAgICwgcHVibGljIFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclBy
b3h5PiBjcmVhdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmLCBXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyYpOworICAgIH5S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkoKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpDQVJpbmdCdWZmZXI+IGNyZWF0ZVJpbmdCdWZmZXIoY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lkIG5ld0F1ZGlvU2FtcGxl
cyh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisKK3ByaXZhdGU6Cisg
ICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5KFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisKKyAgICAvLyBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZTo6Q2xpZW50CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkq
KSBmaW5hbDsKKworICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQKKyAgICB2b2lkIHNl
dEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgZmluYWwg
eyB9CisKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwor
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKworICAgIFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX3JpbmdCdWZmZXJEZXNjcmlwdGlvbjsKKyAgICBzaXpl
X3QgbV9yaW5nQnVmZmVyQ2FwYWNpdHkgeyAwIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQl9BVURJTykg
JiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggY2M3Y2IxMjI2ZDg1NDI1
YjAzNGZlZGVjNjU5MDI5YWE4OTI0YWMxOC4uMmFjNWIyNjM0ZmEwMGVlZjI0ZWNiNTg5MjUyMzcz
M2Q1NmE3OGM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJMYXllckhvc3RpbmdD
b250ZXh0LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuaCIKICNpbmNsdWRlICJS
ZW1vdGVBdWRpb1RyYWNrUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5
UHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHkuaCIKQEAgLTU5
LDYgKzYwLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5o
PgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtODIsNiArODcsNyBAQCBSZW1vdGVNZWRpYVBs
YXllclByb3h5Ojp+UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSgpCiB7CiAgICAgaWYgKG1fcGVyZm9y
bVRhc2tBdE1lZGlhVGltZUNvbXBsZXRpb25IYW5kbGVyKQogICAgICAgICBtX3BlcmZvcm1UYXNr
QXRNZWRpYVRpbWVDb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworICAgIHNldFNob3Vs
ZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIoZmFsc2UpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OmludmFsaWRhdGUoKQpAQCAtODc4LDYgKzg4NCwyOCBAQCB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OndvdWxkVGFpbnRPcmlnaW4oc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YQogICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcGxheWVyLT53b3VsZFRhaW50
T3JpZ2luKG9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSkpOwogfQogCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OmNyZWF0ZUF1ZGlvU291cmNlUHJvdmlkZXIoKQoreworI2lmIEVOQUJM
RShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9wbGF5ZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8qIHByb3ZpZGVyID0gbV9wbGF5ZXItPmF1ZGlvU291cmNl
UHJvdmlkZXIoKTsKKyAgICBpZiAoIXByb3ZpZGVyIHx8ICFpczxBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQz4ocHJvdmlkZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXIgPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZSht
X2lkLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLmNvcHlSZWYoKSwgZG93bmNhc3Q8QXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM+KCpwcm92aWRlcikpOworI2VuZGlmCit9CisKK3ZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6c2V0U2hvdWxkRW5hYmxlQXVkaW9Tb3VyY2VQcm92aWRlcihib29s
IHNob3VsZEVuYWJsZSkKK3sKKyNpZiBFTkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShDT0NP
QSkKKyAgICBpZiAoYXV0byogcHJvdmlkZXIgPSBtX3BsYXllci0+YXVkaW9Tb3VyY2VQcm92aWRl
cigpKQorICAgICAgICBwcm92aWRlci0+c2V0Q2xpZW50KHNob3VsZEVuYWJsZSA/IG1fcmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlci5nZXQoKSA6IG51bGxwdHIpOworI2VuZGlmCit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgKaW5kZXggOGUxZjI1ZTVjODQ2MTRmNDJjZmI1ZTBjOTMwNDRlNWUzMjkxMmI1YS4uZDk0
ZDQ1OWQ5ZDhkNDJhZDY3MDM0M2JhNDhkZjg4MTg5NWI1OTc1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBA
IC01Miw2ICs1MiwxMCBAQAogI2luY2x1ZGUgIlJlbW90ZUNETUluc3RhbmNlUHJveHkuaCIKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1hY2hTZW5kUmlnaHQ7
CiB9CkBAIC02NSw2ICs2OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBMYXllckhv
c3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7Citj
bGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk7CiBjbGFzcyBSZW1vdGVBdWRpb1Ry
YWNrUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJl
bW90ZVRleHRUcmFja1Byb3h5OwpAQCAtMjY3LDYgKzI3Miw5IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZW5kQ2FjaGVkU3RhdGUoKTsKICAgICB2b2lkIHRpbWVyRmlyZWQoKTsKIAorICAgIHZvaWQg
Y3JlYXRlQXVkaW9Tb3VyY2VQcm92aWRlcigpOworICAgIHZvaWQgc2V0U2hvdWxkRW5hYmxlQXVk
aW9Tb3VyY2VQcm92aWRlcihib29sKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJldHVybiBtX2xvZ2dl
cjsgfQogICAgIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpIHsgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fY29uZmlndXJhdGlvbi5sb2dJZGVudGlm
aWVyKTsgfQpAQCAtMzAzLDYgKzMxMSwxMCBAQCBwcml2YXRlOgogICAgIFJlbW90ZUxlZ2FjeUNE
TVNlc3Npb25JZGVudGlmaWVyIG1fbGVnYWN5U2Vzc2lvbjsKICNlbmRpZgogCisjaWYgRU5BQkxF
KFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgUmVmUHRyPFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJQcm94eT4gbV9yZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOworI2VuZGlmCisK
ICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1fbG9nZ2VyOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDU5YTBhY2FhYTFm
NGNjNjEzMDc1NTI2ZjA5MzU1MTk0ODJlZjFhOTUuLjEwMzQ1MTQ0NTM4NWI3YWY2NDhiZjg0OGQz
Nzg5Zjg5Mzg0N2Q2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0x
MTYsNiArMTE2LDExIEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVm
Q291bnRlZCB7CiAgICAgRXJyb3JMb2coKSAtPiAoU3RyaW5nIGVycm9yTG9nKSBTeW5jaHJvbm91
cwogICAgIEFjY2Vzc0xvZygpIC0+IChTdHJpbmcgYWNjZXNzTG9nKSBTeW5jaHJvbm91cwogI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIENyZWF0ZUF1ZGlvU291cmNlUHJvdmlk
ZXIoKQorICAgIFNldFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIoYm9vbCBzaG91bGRF
bmFibGUpCisjZW5kaWYKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMDMx
ZTNkMmFlODg4NzEzNTE4NjlhOWU5ZThhYmI5ZjYzM2YzOGRiOC4uOGZmZmMzNWU3OTY4MGFkMmY1
NmM1YTg4YzdkNmRhZjE1ZGRhZjgxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTgsNiAr
NTgsNyBAQCBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Jlc29sdmVyQ29jb2EuY3Bw
CiBHUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2aWNlRW50cnlQ
b2ludC5tbQogR1BVUHJvY2Vzcy9pb3MvR1BVUHJvY2Vzc0lPUy5tbQogR1BVUHJvY2Vzcy9tYWMv
R1BVUHJvY2Vzc01hYy5tbQorR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb2NvYS5tbQogR1BVUHJvY2Vzcy9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVy
UHJveHkuY3BwCiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAt
NTY1LDYgKzU2Niw3IEBAIFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dl
YkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQogCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcAorV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcApAQCAtNjY3LDYgKzY2OSw3
IEBAIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlck1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBlZGExNWEz
NWZkYmE1YzcyMjQyYzEzODU4ZjczOGM0YWM2ZjhhMGUuLjVkMzJiN2ZmMDM5MThkNWJkOTlkYWQ2
YjVkZjM5ZWI2YWE3ODcxM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzQyNCw2ICszNDI0LDExIEBACiAJCTQxMjg3RDREMjI1QzE2
MUYwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlNvY2tldFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEy
RkY5MTYyNTM3M0Y5RDAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMkZGOTE3MjUzNzNGOUQw
MDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MjMyNTM4MkJEMzAwMURGMDM2IC8qIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MjQyNTM4MkJENTAwMURGMDM2IC8qIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxMkZGOTI1MjUzODJCRDUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDEyRkY5MjYyNTM4MkQ4NTAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTJGRjkyNzI1MzgyRDg1MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMw
NzU5QTFERTg0RkIwMDAzOUVDNjkgLyogTmV0d29ya1JUQ01vbml0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1JUQ01vbml0b3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwNzU5QjFERTg0RkIwMDAzOUVDNjkgLyogTmV0d29y
a1JUQ01vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1JU
Q01vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDc1OUMxREU4NEZC
MDAwMzlFQzY5IC8qIE5ldHdvcmtSVENNb25pdG9yLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE5ldHdvcmtSVENNb25pdG9yLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNDUzMiw3ICs0NTM3LDcgQEAKIAkJOUIxMjI5RDAyM0ZGMkE1RTAwOENB
NzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTlCNDc5MDhDMjUzMTREODMwMEVDMTFBQiAvKiBNZXNzYWdlQXJndW1lbnREZXNj
cmlwdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNDc5MDhFMjUzMTUxQ0MwMEVDMTFBQiAv
KiBKU0lQQ0JpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJUENCaW5kaW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlCNDc5MDkwMjUzMTU2MzIwMEVDMTFBQiAvKiBNZXNzYWdl
QXJndW1lbnREZXNjcmlwdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcDsgcGF0aCA9IE1lc3NhZ2VBcmd1
bWVudERlc2NyaXB0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCNDc5
MDkwMjUzMTU2MzIwMEVDMTFBQiAvKiBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVzc2FnZUFyZ3VtZW50RGVzY3Jp
cHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QUMyMzYyQTZG
NjAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlCNTQ5OUFFMjM2MkE3QTcwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1RleHRNYW5p
cHVsYXRpb25Db25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QjU0OTlCMDIzNjJBN0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1NjgsNiArNTU3Myw5IEBACiAJCQkJQ0RC
QjQ5RkIyNDBEOTc0QTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaCAq
LywKIAkJCQk0MTJGRjkxNjI1MzczRjlEMDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlci5jcHAgKi8sCiAJCQkJNDEyRkY5MTcyNTM3M0Y5RDAwMURGMDM2IC8qIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXIuaCAqLywKKwkJCQk0MTJGRjkyMzI1MzgyQkQzMDAxREYwMzYgLyogUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwICovLAorCQkJCTQxMkZGOTI0MjUzODJC
RDUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oICovLAorCQkJ
CTQxMkZGOTI1MjUzODJCRDUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFu
YWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREFDMjBCRjIzRkMyRjc1MDAyMURFRTMgLyogUmVt
b3RlQ0RNLmNwcCAqLywKIAkJCQlDREFDMjBCQTIzRkMyRjc0MDAyMURFRTMgLyogUmVtb3RlQ0RN
LmggKi8sCiAJCQkJQ0RBQzIwQjgyM0ZDMkY3MzAwMjFERUUzIC8qIFJlbW90ZUNETUNvbmZpZ3Vy
YXRpb24uaCAqLywKQEAgLTU2MjMsNiArNTYzMSw4IEBACiAJCQkJQ0RCQjQ5RjgyNDBEOEQ1MzAw
MTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUNE
QkI0OUZBMjQwRDk2M0QwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
Y3BwICovLAogCQkJCUNEQkI0OUY5MjQwRDk2M0MwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIuaCAqLywKKwkJCQk0MTJGRjkyNjI1MzgyRDg1MDAxREYwMzYgLyogUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmNwcCAqLywKKwkJCQk0MTJGRjkyNzI1MzgyRDg1
MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmggKi8sCiAJCQkJMDcx
QkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgKi8sCiAJ
CQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oICov
LAogCQkJCUNEQUMyMDc5MjNGQjFFMjEwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHku
Y3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCAwMWFmZmI1ZmM1ZWFmYTE2YzhiNmYxZDgyODVjY2M0OTNk
Yjc5YTZmLi5kZDhmMWJlZmE1ODc2Y2FkNTk3MDk3OWJmMTVlOGExNTdjOTRjNzNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjcy5oIgogI2lu
Y2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJS
ZW1vdGVDRE1Qcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKQEAg
LTEwMSw2ICsxMDIsMTUgQEAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBHUFVQcm9jZXNzQ29u
bmVjdGlvbjo6bWVkaWFQbGF5ZXJNYW5hZ2VyKCkKICAgICByZXR1cm4gKldlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnN1cHBsZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpOwogfQogCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJfQVVESU8pCitSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlciYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmF1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fYXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIpCisg
ICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIgPSBSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyTWFuYWdlcjo6Y3JlYXRlKCk7CisgICAgcmV0dXJuICptX2F1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogUmVt
b3RlQ0RNRmFjdG9yeSYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmNkbUZhY3RvcnkoKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5o
CmluZGV4IDM4MjA5NDI1OWZhY2VkMmVlZTQyZTg1YzVjZjk0N2ZkMjIxODhiNzAuLmE4MWFjNjdm
YzRkZGQ3OTQyNWNmMjQ4ODliMWNmOGRmMWM1MTZkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQwLDYgKzQwLDcg
QEAgY2xhc3MgRGF0YVJlZmVyZW5jZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlQ0RNRmFjdG9yeTsK
IGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZUxlZ2FjeUNETUZh
Y3Rvcnk7CkBAIC02Niw2ICs2NywxMCBAQCBwdWJsaWM6CiAKICAgICBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXImIG1lZGlhUGxheWVyTWFuYWdlcigpOwogCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShXRUJfQVVESU8pCisgICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIm
IGF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCiAgICAgUmVtb3RlQ0RNRmFjdG9yeSYgY2RtRmFjdG9yeSgpOwogI2VuZGlm
CkBAIC0xMDAsNiArMTA1LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogI2VuZGlm
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJfQVVESU8pCisgICAgUmVmUHRyPFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyPiBtX2F1ZGlvU291cmNlUHJvdmlkZXJNYW5h
Z2VyOworI2VuZGlmCiAjaWYgRU5BQkxFKFZQOSkKICAgICBib29sIG1fZW5hYmxlVlA5RGVjb2Rl
ciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZVZQOVNXRGVjb2RlciB7IGZhbHNlIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcAppbmRleCBhOTkwY2U3ZDU1OWU5ODQ5YmY5ZWNm
NzA5Y2YzZGIzMjJkYzM3ZmI5Li5kY2JkNGY4YWZhZmUxMDYwYTYxYjAzMDUzMWUxMmM3NGQzN2Vm
ZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKQEAgLTI4LDYgKzI4LDkgQEAK
IAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZP
Uk0oQ09DT0EpCiAKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5o
IgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBleHRlcm4gV1RGTG9nQ2hh
bm5lbCBMb2dNZWRpYTsKQEAgLTM5LDcgKzQyLDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4gUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlcjo6Y3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBX
VEY6OkxvZ2dlckhlbHBlciYgaGVscGVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoaWRlbnRpZmllciwgaGVscGVyKSk7CisgICAgYXV0byBw
cm92aWRlciA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcihpZGVudGlm
aWVyLCBoZWxwZXIpKTsKKworICAgIGF1dG8mIGdwdVByb2Nlc3NDb25uZWN0aW9uID0gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICBncHVQ
cm9jZXNzQ29ubmVjdGlvbi5hdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcigpLmFkZFByb3ZpZGVy
KHByb3ZpZGVyLmNvcHlSZWYoKSk7CisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIGdwdVBy
b2Nlc3NDb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllclByb3h5OjpDcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyIHsgfSwgcHJvdmlkZXItPmlkZW50
aWZpZXIoKSk7CisjZW5kaWYKKworICAgIHJldHVybiBwcm92aWRlcjsKIH0KIAogUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcihNZWRpYVBsYXllcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxwZXImIGhlbHBlcikKQEAgLTQ5LDYg
KzYxLDcgQEAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnQKICAgICAsIG1fbG9nSWRlbnRpZmllciho
ZWxwZXIubG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiB7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKICAgICBVTlVTRURfUEFSQU0oaGVscGVyKTsKIH0KIApAQCAtNTgsMTEgKzcxLDEzIEBA
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6On5SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCkK
IAogdm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpjbG9zZSgpCiB7CisgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpLmF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCkucmVtb3ZlUHJv
dmlkZXIobV9pZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
OjpoYXNOZXdDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCopCit2b2lkIFJlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXI6Omhhc05ld0NsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50
KiBjbGllbnQpCiB7Ci0gICAgLy8gRklYTUU6IHJlZ2lzdGVyL3VucmVnaXN0ZXIgYXMgbmVlZGVk
LgorICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNl
dFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIgeyAhIWNsaWVudCB9LCBtX2lkZW50aWZp
ZXIpOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGY0NWE2ZDViYjRkYjQ2MDk4
ODAxMjQzYmI1ZTkzMTdiMWUzZTJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAK
QEAgLTAsMCArMSwxNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuaCIKKworI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKworI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK25hbWVzcGFjZSBXZWJLaXQgewor
dXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFn
ZXIoKQorICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXIiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6
OlVzZXJJbnRlcmFjdGl2ZSkpCit7Cit9CisKK1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5h
Z2VyOjp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKQoreworICAgIHNldENvbm5l
Y3Rpb24obnVsbHB0cik7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFn
ZXI6OnNldENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIGlm
IChtX2Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpOworCisgICAgbV9jb25uZWN0aW9uID0gV1RGTW92ZShjb25uZWN0
aW9uKTsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+YWRk
VGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKK30KKwordm9pZCBSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YWRkUHJvdmlkZXIoUmVmPFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIpCit7CisgICAgQVNTRVJUKFdURjo6aXNNYWluUnVuTG9v
cCgpKTsKKyAgICBzZXRDb25uZWN0aW9uKCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVH
UFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7CisKKyAgICBkaXNwYXRjaFRvVGhy
ZWFkKFt0aGlzLCBwcm92aWRlciA9IFdURk1vdmUocHJvdmlkZXIpXSgpIG11dGFibGUgeworICAg
ICAgICBhdXRvIGlkZW50aWZpZXIgPSBwcm92aWRlci0+aWRlbnRpZmllcigpOworCisgICAgICAg
IEFTU0VSVCghbV9wcm92aWRlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgICAgICBtX3By
b3ZpZGVycy5hZGQoaWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZW1vdGVBdWRpbz4oV1RGTW92ZShw
cm92aWRlcikpKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlcjo6cmVtb3ZlUHJvdmlkZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgQVNTRVJUKFdURjo6aXNNYWluUnVuTG9vcCgpKTsKKworICAgIGRpc3BhdGNoVG9U
aHJlYWQoW3RoaXMsIGlkZW50aWZpZXJdIHsKKyAgICAgICAgQVNTRVJUKG1fcHJvdmlkZXJzLmNv
bnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV9wcm92aWRlcnMucmVtb3ZlKGlkZW50aWZp
ZXIpOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2Vy
OjpkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKK3sKKyAgICBt
X3F1ZXVlLT5kaXNwYXRjaChXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OmF1ZGlvU3RvcmFnZUNoYW5nZWQoTWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNI
YW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRp
b24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIEFTU0VSVCghV1RGOjppc01haW5S
dW5Mb29wKCkpOworCisgICAgYXV0byBpdGVyYXRvciA9IG1fcHJvdmlkZXJzLmZpbmQoaWRlbnRp
Zmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fcHJvdmlkZXJzLmVuZCgpKSB7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVW5hYmxlIHRvIGZpbmQgcHJvdmlkZXIgJWxsdSBm
b3Igc3RvcmFnZUNoYW5nZWQiLCBpZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGl0ZXJhdG9yLT52YWx1ZS0+c2V0U3RvcmFnZShpcGNIYW5kbGUuaGFu
ZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit2b2lkIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51bWJl
ck9mRnJhbWVzKQoreworICAgIEFTU0VSVCghV1RGOjppc01haW5SdW5Mb29wKCkpOworCisgICAg
YXV0byBpdGVyYXRvciA9IG1fcHJvdmlkZXJzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0
ZXJhdG9yID09IG1fcHJvdmlkZXJzLmVuZCgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhLCAiVW5hYmxlIHRvIGZpbmQgcHJvdmlkZXIgJWxsdSBmb3IgYXVkaW9TYW1wbGVzQXZh
aWxhYmxlIiwgaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBpdGVyYXRvci0+dmFsdWUtPmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShzdGFydEZyYW1lLCBu
dW1iZXJPZkZyYW1lcyk7Cit9CisKK1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpS
ZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+JiYg
cHJvdmlkZXIpCisgICAgOiBtX3Byb3ZpZGVyKFdURk1vdmUocHJvdmlkZXIpKQorICAgICwgbV9y
aW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkpCit7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1l
bW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIG1fZGVz
Y3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1lbW9y
eTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtZW1vcnkgPSBTaGFyZWRN
ZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRighbWVtb3J5LCBNZWRpYSwgIlVuYWJsZSB0byBj
cmVhdGUgc2hhcmVkIG1lbW9yeSBmb3IgYXVkaW8gcHJvdmlkZXIgJWxsdSIsIG1fcHJvdmlkZXIt
PmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICB9CisKKyAgICBhdXRvJiBzdG9yYWdlID0g
c3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3Jh
Z2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9j
YXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBzdG9y
YWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBz
dG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkpOworICAgIHN0b3JhZ2Uu
c2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlv
biwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1
ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQgUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUodWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7Cisg
ICAgaWYgKCFtX2J1ZmZlcikgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgImJ1
ZmZlciBmb3IgYXVkaW8gcHJvdmlkZXIgJWxsdSBpcyBudWxsIiwgbV9wcm92aWRlci0+aWRlbnRp
ZmllcigpLnRvVUludDY0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFX
ZWJBdWRpb0J1ZmZlckxpc3Q6OmlzU3VwcG9ydGVkRGVzY3JpcHRpb24obV9kZXNjcmlwdGlvbiwg
bnVtYmVyT2ZGcmFtZXMpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVW5h
YmxlIHRvIHN1cHBvcnQgZGVzY3JpcHRpb24gd2l0aCBnaXZlbiBudW1iZXIgb2YgZnJhbWVzIGZv
ciBhdWRpbyBwcm92aWRlciAlbGx1IiwgbV9wcm92aWRlci0+aWRlbnRpZmllcigpLnRvVUludDY0
KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBlbmRGcmFtZSA9IHN0YXJ0
RnJhbWUgKyBudW1iZXJPZkZyYW1lczsKKyAgICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVt
YmVyT2ZGcmFtZXMpOworCisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMo
c3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXIt
Pmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUpOworCisgICAgbV9wcm92aWRlci0+
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKCptX2J1ZmZlciwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU1OWUxYjA2YjQ0N2U1ZDgwY2E2MTA1MmM2YzdhMzJjNGJhMTQyZTYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmllci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOworCitjbGFzcyBSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlciA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VS
ZWNlaXZlclJlZkNvdW50ZWQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKSk7IH0KKyAgICB+UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXIoKTsKKworICAgIHZvaWQgYWRkUHJvdmlkZXIoUmVmPFJlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXI+JiYpOworICAgIHZvaWQgcmVtb3ZlUHJvdmlkZXIoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6VGhy
ZWFkTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZv
aWQoKT4mJikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdlcworICAgIHZvaWQgYXVkaW9TdG9yYWdl
Q2hhbmdlZChXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9y
eTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxl
KFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworCisgICAgdm9pZCBzZXRDb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbiopOworCisgICAgY2xhc3MgUmVtb3RlQXVkaW8geworICAgICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKKyAgICBwdWJsaWM6CisgICAgICAgIGV4cGxpY2l0IFJlbW90ZUF1ZGlv
KFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyPiYmKTsKKworICAgICAgICB2b2lkIHNldFN0
b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAgICAgIHZv
aWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZjxSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyPiBtX3Byb3ZpZGVyOworICAgICAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2J1ZmZlcjsKKyAgICB9OworCisgICAgUmVm
PFdvcmtRdWV1ZT4gbV9xdWV1ZTsKKyAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb247CisKKyAgICAvLyBiYWNrZ3JvdW5kIHRocmVhZCBtZW1iZXIKKyAgICBIYXNoTWFwPFdl
YkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlv
Pj4gbV9wcm92aWRlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
ZWFjODBhZGY4MzE1YmNiZGI5YzY5ZGE0OWQ5MzU0OGZlZmUxMjg5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgQXVkaW9TdG9yYWdlQ2hhbmdlZChX
ZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWQsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJ
UENIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
IGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICBBdWRpb1NhbXBsZXNB
dmFpbGFibGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkLCB1aW50NjRfdCBzdGFy
dEZyYW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyLmNwcAppbmRleCAxNzU3YTZhOWIxYjEyNTMwMTM1YWI4Zjc3YjFlYTU5ZjZiMDJl
ZGU4Li41YjNlNzAwZTA5NThlMmZiZDU2OTE3ODA0MjcxZGVkYzk0ZmM1ZTQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oIgogCisjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
V2ViQXVkaW9CdWZmZXJMaXN0Lmg+CkBAIC0zMyw3ICszNCw2IEBACiAjaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlcjo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411432</attachid>
            <date>2020-10-15 05:30:14 -0700</date>
            <delta_ts>2020-10-16 01:48:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217704-20201015143011.patch</filename>
            <type>text/plain</type>
            <size>56493</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU3MDdhMjg4ODMyZmNh
YTlmNGUyNzhhZGZkZTRkYmUzYjAwNjYyZS4uYWNjMGNmYWZjNDcyNTdiZDAwNmYyZjJmNTUxOGVh
NjgxOTNiNjkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTEwLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
R1BVUHJvY2VzcyBXZWJBdWRpbyBtZWRpYSBlbGVtZW50IHByb3ZpZGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDIHNvIHRoYXQgYSBzcGVjaWZpYyByaW5nIGJ1ZmZlciBjYW4gYmUgcHJvdmlk
ZWQgYW5kIHRvIGJlIG5vdGlmaWVkIG9mIG5ldyBzYW1wbGVzIGJlaW5nIHB1c2hlZC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHdlYiBhdWRpbyB0ZXN0cyBydW4gd2l0aCBHUFVQcm9j
ZXNzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXI6OmlzSGFuZGxpbmdBVlBsYXllciBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVEYXRhU291cmNlOjpwdWxsU2FtcGxlc0ludGVy
bmFsKToKKyAgICAgICAgV2hlbiB3ZSBhcmUgdG9vIGNsb3NlIHRvIHRoZSBlbmQgb2YgYXZhaWxh
YmxlIGRhdGEsIGRvIGFzIGlmIHdlIGFyZSBwYXVzZWQgYW5kIGtlZXAgdGhlIHNhbWUgdGltZSBl
bnRyeSBmb3IgdGhlIG5leHQgcmVhZCBvcGVyYXRpb24uCisgICAgICAgIFRoaXMgd2lsbCBiYXNp
Y2FsbHkgbWFrZSB1cyB3YWl0IGZvciB0aGUgbmV4dCBwdXNoIG9mIGRhdGEgYmVmb3JlIHJlc3Rh
cnRpbmcgdG8gcmVhZCBzdWNjZXNmdWxseS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaDoKKyAgICAgICAgKGlzVHlw
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByb2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnNldEF1ZGlvQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnNldFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpyZWNl
aXZlZE5ld0F1ZGlvU2FtcGxlcyk6CisgICAgICAgIFdlIHNob3VsZCB1c2UgdGhlIGlucHV0IHNh
bXBsZSByYXRlIHRvIGNvbXB1dGUgdGhlIGlucHV0IG1lZGlhIHRpbWUuCisKIDIwMjAtMTAtMTQg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBh
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIgdG8gcmVjZWl2ZSBhdWRpbyBzYW1wbGVzIGZvciB3
ZWIgYXVkaW8gZnJvbSBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQwYzQ5YWI2ODZjNTM0MjRlOThj
MGYzODY1NDg2OTg2ZTUwNTA3ZmIuLjU1ZGRlYzEwODYxODE3NGMxM2E3MzU1NzMyM2NiMWExNzZj
NDdlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjAtMTAtMTUgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBHUFVQcm9j
ZXNzIFdlYkF1ZGlvIG1lZGlhIGVsZW1lbnQgcHJvdmlkZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3MDQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXIgd2hpY2ggcmVjZWl2ZXMgSVBDIG1lc3NhZ2VzIGZyb20gR1BVIHByb2Nl
c3MgZm9yIHdlYiBhdWRpbyBkYXRhLgorICAgICAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlciBzZW5kcyBpdCB0byB0aGUgaWRlbnRpZmllZCBSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyLgorCisgICAgICAgIEludHJvZHVjZSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkg
d2hpY2ggaXMgYSBjbGllbnQgdG8gdGhlIEFWIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLgor
ICAgICAgICBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkgd2lsbCBzZW5kIElQQyBtZXNz
YWdlcyB0byBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlciB0byBzZW5kIGF1ZGlvIGRh
dGEgYW5kIGRlc2NyaXB0aW9uLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQ
cm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZVJpbmdCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6Om5ld0F1ZGlvU2Ft
cGxlcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6
c3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y3JlYXRlQXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFNob3VsZEVuYWJsZUF1ZGlv
U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJv
Y2Vzc0Nvbm5lY3Rpb246OmF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6Y2xvc2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpoYXNOZXdDbGllbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlcjo6c2V0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjphZGRQcm92aWRlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpyZW1vdmVQcm92aWRlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpkaXNwYXRj
aFRvVGhyZWFkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1h
bmFnZXI6OmF1ZGlvU3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpS
ZW1vdGVBdWRpbyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwOgorCiAyMDIwLTEwLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBJbnRyb2R1Y2UgYSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyIHRvIHJlY2VpdmUg
YXVkaW8gc2FtcGxlcyBmb3Igd2ViIGF1ZGlvIGZyb20gR1BVUHJvY2VzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKaW5kZXggMGFkZTdkOGM4ZDRiMmYyZDk4ZDZkMzkwZTkzOGFiMzNlYjc0NTgxNy4uMTExZWIy
ZGI0N2I1N2QzNjU5MGIyM2JmYjkwNjY0NWE5MjBiODEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBA
IC0xMDY3LDYgKzEwNjcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIu
aAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaAogICAgIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaAogICAgIHBsYXRmb3JtL2F1ZGlv
L0F1ZGlvVXRpbGl0aWVzLmgKICAgICBwbGF0Zm9ybS9hdWRpby9Ob3dQbGF5aW5nSW5mby5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggOWU4MzhhMTg5M2U1MzBlYThlN2E0NjgxZTc2YjFjYzUzNGU3NmRkMy4uZDkyZDQyMTgxNTVi
M2E2YTQzODgwNGZkZDY5OTM0NDE4ODJjNjNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDE5Nyw3ICs0MTk3LDcgQEAKIAkJ
Q0Q3RTA1MjIxNjUxQzI4MjAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEN0UwNTIxMTY1
MUE4NDEwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gKi87IH07CiAJCUNE
ODNEMzYyMjExMjJBMjEwMDc2RTExQyAvKiBEZWZlcnJhYmxlVGFzay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4M0QzNUEyMTExMTA4MjAwNzZFMTFD
IC8qIERlZmVycmFibGVUYXNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0Q4QTdCQkIxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q4QTdCQjkxOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tICovOyB9OwotCQlDRDhBN0JCQzE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOEE3QkJBMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5oICovOyB9OworCQlDRDhBN0JCQzE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOEE3QkJBMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUNEOEFDQTg5MUQyMzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEFDQTg3MUQy
MzdBQTIwMEVDQzU5RSAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaCAqLzsgfTsKIAkJQ0Q4
QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEFDQThEMUQyMzk3MTkwMEVD
QzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi87IH07CiAJCUNEOEI1QTQyMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEI1QTQwMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAqLzsgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlk
ZXIuaAppbmRleCBiMjI0NDlhMWNhMGNkOTVjNDQ4ZTUzYzhiODA3MWQ1NGJhODNjNDJiLi42YzA5
YzA4NjFiOTY2NDM5NjdiZGY1NjI1N2NjZTE5ZDRiY2MwYzc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5oCkBAIC00Myw2ICs0
Myw4IEBAIHB1YmxpYzoKICAgICAvLyBJZiBhIGNsaWVudCBpcyBzZXQsIHdlIGNhbGwgaXQgYmFj
ayB3aGVuIHRoZSBhdWRpbyBmb3JtYXQgaXMgYXZhaWxhYmxlIG9yIGNoYW5nZXMuCiAgICAgdmly
dHVhbCB2b2lkIHNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KikgeyB9OwogCisg
ICAgdmlydHVhbCBib29sIGlzSGFuZGxpbmdBVlBsYXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisKICAgICB2aXJ0dWFsIH5BdWRpb1NvdXJjZVByb3ZpZGVyKCkgPSBkZWZhdWx0OwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9T
YW1wbGVEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCmluZGV4IGVmN2ZkMDQzOTFjNTg0ZDBjZWJlNjY4MTE3
ZWJjN2MyYThiYTJhYzcuLjllNmQ1NDUyNTcxZDFkNWU3NTc0ODE2NjU0NmQ2ODU4ZTJkNjlhODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KQEAgLTI2MCw5ICsyNjAsOCBAQCBib29sIEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZTo6cHVsbFNhbXBsZXNJbnRlcm5hbChBdWRpb0J1ZmZlckxpc3QmIGJ1
ZmZlciwgc2l6ZV90JgogICAgICAgICAgICAgaWYgKHRpbWVTdGFtcCA+PSBlbmRGcmFtZSkKICAg
ICAgICAgICAgICAgICBtX2VuZEZyYW1lV2hlbk5vdEVub3VnaERhdGEgPSBlbmRGcmFtZTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIFdlIGFyZSB0b28gY2xvc2UgZnJvbSBlbmRG
cmFtZSwgbGV0J3MgYmFjayB1cCBhIGxpdHRsZSBiaXQuCi0gICAgICAgICAgICB1aW50NjRfdCBm
cmFtZXNBdmFpbGFibGUgPSBlbmRGcmFtZSAtIHRpbWVTdGFtcDsKLSAgICAgICAgICAgIG1fb3V0
cHV0U2FtcGxlT2Zmc2V0IC09IHNhbXBsZUNvdW50IC0gZnJhbWVzQXZhaWxhYmxlOworICAgICAg
ICAgICAgLy8gV2UgYXJlIHRvbyBjbG9zZSBmcm9tIGVuZEZyYW1lLCBsZXQncyB3YWl0IGZvciBt
b3JlIGRhdGEgdG8gYmUgcHVzaGVkLgorICAgICAgICAgICAgbV9vdXRwdXRTYW1wbGVPZmZzZXQg
LT0gc2FtcGxlQ291bnQ7CiAgICAgICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpLCBbbG9nSWRlbnRpZmllciA9IExPR0lERU5USUZJRVIsIG91dHB1dFNhbXBs
ZU9mZnNldCA9IG1fb3V0cHV0U2FtcGxlT2Zmc2V0LCB0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cigqdGhpcyldIHsKICAgICAgICAgICAgICAgICBBTFdBWVNfTE9HKGxvZ0lkZW50aWZp
ZXIsICJ1cGRhdGluZyBvZmZzZXQgdG8gIiwgb3V0cHV0U2FtcGxlT2Zmc2V0KTsKICAgICAgICAg
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMu
aAppbmRleCBmNjVjZjA4YzRmMmEwNjFmMTMyYjdjOWUxMTcyNjNhMzRhMTU4N2Q0Li5iYTdmNDZk
NGI1NDRhMWFkMWIxYmZiODkwZDAyYTc1YzgyMGM3OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAtMjMsOCArMjMsNyBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQ19oCi0j
ZGVmaW5lIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDX2gKKyNwcmFnbWEgb25jZQogCiAjaWYg
RU5BQkxFKFdFQl9BVURJTykgJiYgVVNFKE1FRElBVE9PTEJPWCkKIApAQCAtMzMsNiArMzIsNyBA
QAogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1R5
cGVDYXN0cy5oPgogCiBPQkpDX0NMQVNTIEFWQXNzZXRUcmFjazsKIE9CSkNfQ0xBU1MgQVZQbGF5
ZXJJdGVtOwpAQCAtNDcsNyArNDcsMTAgQEAgdHlwZWRlZiBzaWduZWQgbG9uZyBDTUl0ZW1Db3Vu
dDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
OworY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwogY2xhc3MgQ0FSaW5nQnVmZmVyOwor
Y2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiAKIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDPiwgcHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIgewogcHVibGljOgpAQCAtNTcsNiArNjAs
MTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGxheWVySXRlbShBVlBsYXllckl0ZW0gKik7CiAg
ICAgdm9pZCBzZXRBdWRpb1RyYWNrKEFWQXNzZXRUcmFjayAqKTsKIAorICAgIHVzaW5nIEF1ZGlv
Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzKT47CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdWRpb0NhbGxiYWNr
KEF1ZGlvQ2FsbGJhY2smJik7CisgICAgdXNpbmcgUmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2sg
PSBGdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPihjb25zdCBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJp
bmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrJiYpOwor
CiBwcml2YXRlOgogICAgIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKEFWUGxheWVySXRlbSAq
KTsKIApAQCAtNjYsNiArNzQsNyBAQCBwcml2YXRlOgogICAgIC8vIEF1ZGlvU291cmNlUHJvdmlk
ZXIKICAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQqKSBvdmVycmlkZTsKKyAgICBib29sIGlzSGFuZGxpbmdBVlBsYXllcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHN0YXRpYyB2b2lkIGluaXRDYWxsYmFjayhNVEF1ZGlv
UHJvY2Vzc2luZ1RhcFJlZiwgdm9pZCosIHZvaWQqKik7CiAgICAgc3RhdGljIHZvaWQgZmluYWxp
emVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZik7CkBAIC0xMDAsMTAgKzEwOSwxNCBA
QCBwcml2YXRlOgogCiAgICAgY2xhc3MgVGFwU3RvcmFnZTsKICAgICBSZWZQdHI8VGFwU3RvcmFn
ZT4gbV90YXBTdG9yYWdlOworICAgIEF1ZGlvQ2FsbGJhY2sgbV9hdWRpb0NhbGxiYWNrOworICAg
IFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrIG1fcmluZ0J1ZmZlckNhbGxiYWNrOwogfTsKLSAg
ICAKKwogfQogCi0jZW5kaWYKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0
IFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXImIHByb3ZpZGVyKSB7IHJldHVybiBwcm92aWRl
ci5pc0hhbmRsaW5nQVZQbGF5ZXIoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQog
Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKSAmJiBVU0UoTUVESUFUT09MQk9Y
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmlu
ZGV4IDVkY2E0MGUzYjc5ZTVkYTU1MDAyNTdjNTFiNDQ2MzEzYzQ4NDg4MWQuLmE4NjRhZTM2YzM5
NjliODI5MjZiOGNiMzI0YTZjYmIyODVmMjZiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTMzNyw4ICszMzcsMTIgQEAgdm9pZCBB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShDTUl0ZW1Db3VudCBtYXhGcmFtZXMs
IGNvbnN0IEF1ZGlvU3RyZWEKICAgICAvLyBNYWtlIHRoZSByaW5nYnVmZmVyIGxhcmdlIGVub3Vn
aCB0byBzdG9yZSBhdCBsZWFzdCB0d28gY2FsbGJhY2tzIHdvcnRoIG9mIGF1ZGlvLCBvciAxcywg
d2hpY2hldmVyIGlzIGxhcmdlci4KICAgICBzaXplX3QgY2FwYWNpdHkgPSBzdGQ6Om1heChzdGF0
aWNfY2FzdDxzaXplX3Q+KDIgKiBtYXhGcmFtZXMpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGtSaW5n
QnVmZmVyRHVyYXRpb24gKiBzYW1wbGVSYXRlKSk7CiAKLSAgICBtX3JpbmdCdWZmZXIgPSBtYWtl
VW5pcXVlPENBUmluZ0J1ZmZlcj4oKTsKLSAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKENBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbigqcHJvY2Vzc2luZ0Zvcm1hdCksIGNhcGFjaXR5KTsKKyAgICBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24geyAqcHJvY2Vzc2luZ0Zvcm1hdCB9
OworICAgIG1fcmluZ0J1ZmZlciA9IG1fcmluZ0J1ZmZlckNhbGxiYWNrID8gbV9yaW5nQnVmZmVy
Q2FsbGJhY2soZGVzY3JpcHRpb24sIGNhcGFjaXR5KSA6IG51bGxwdHI7CisgICAgaWYgKCFtX3Jp
bmdCdWZmZXIpIHsKKyAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZm
ZXI+KCk7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIGNhcGFj
aXR5KTsKKyAgICB9CiAKICAgICAvLyBBdWRpb0J1ZmZlckxpc3QgaXMgYSB2YXJpYWJsZS1sZW5n
dGggc3RydWN0LCBzbyBjcmVhdGUgb24gdGhlIGhlYXAgd2l0aCBhIGdlbmVyaWMgbmV3KCkgb3Bl
cmF0b3IKICAgICAvLyB3aXRoIGEgY3VzdG9tIHNpemUsIGFuZCBpbml0aWFsaXplIHRoZSBzdHJ1
Y3QgbWFudWFsbHkuCkBAIC00MTksNiArNDIzLDIxIEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByb2Nlc3MoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3Vu
CiAgICAgICAgIG1lbXNldChidWZmZXIubURhdGEsIDAsIGJ1ZmZlci5tRGF0YUJ5dGVTaXplKTsK
ICAgICB9CiAgICAgKm51bWJlckZyYW1lc091dCA9IDA7CisKKyAgICBpZiAobV9hdWRpb0NhbGxi
YWNrKQorICAgICAgICBtX2F1ZGlvQ2FsbGJhY2soZW5kRnJhbWUsIGl0ZW1Db3VudCk7Cit9CisK
K3ZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldEF1ZGlvQ2FsbGJhY2soQXVkaW9D
YWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFTU0VSVCghbV9hdkF1ZGlvTWl4KTsKKyAgICBt
X2F1ZGlvQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwordm9pZCBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6c2V0UmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2soUmluZ0J1ZmZl
ckNyZWF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBU1NFUlQoIW1fYXZBdWRpb01p
eCk7CisgICAgbV9yaW5nQnVmZmVyQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dl
YkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KaW5kZXggZWM4OGJl
MzRiMTcyZTJlYTJmZWI0NDQ2ZTRhMGM2ZmJmOGNmMTFhNy4uNTVkM2RmNDgwMjM4NzMwNjQzYTMy
YmQxZDYwYWY4ZGVhNmM2NjIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckNvY29hLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
Q29jb2E6OnJlY2VpdmVkTmV3QXVkaW9TYW1wbGVzKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXQKICAg
ICBpZiAoIW1fZGF0YVNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9kYXRhU291cmNl
LT5wdXNoU2FtcGxlcyhNZWRpYVRpbWUobV93cml0ZUNvdW50LCBtX291dHB1dERlc2NyaXB0aW9u
LT5zYW1wbGVSYXRlKCkpLCBkYXRhLCBmcmFtZUNvdW50KTsKKyAgICBtX2RhdGFTb3VyY2UtPnB1
c2hTYW1wbGVzKE1lZGlhVGltZShtX3dyaXRlQ291bnQsIG1faW5wdXREZXNjcmlwdGlvbi0+c2Ft
cGxlUmF0ZSgpKSwgZGF0YSwgZnJhbWVDb3VudCk7CiAKICAgICBtX3dyaXRlQ291bnQgKz0gZnJh
bWVDb3VudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGM5ZjZiNDNiOGU4NzFhMzNmZGJkNjQx
OTI3ZjRjODdkOGFkYjQzZjYuLjU1YTNkYTFhZDkzNWJlNDU2N2Y1Mzk2NDM5MmNkOGFhNzRjOTkx
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMjE5LDYgKzIxOSw3IEBAIHNldChXZWJLaXRfTUVT
U0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUKICAgICBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkKICAgICBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24KKyAgICBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcgogICAg
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbgogICAgIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDY4NDVjZThiZDQwZjY3MWMz
MjRiOWIyNTI0ZDljNzRkZWRmMDExYTAuLjQ2YmFlMzc1Y2QxMWFlMjEzMDBhNmM1N2RkZWYwNTQx
MWFjODAzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTEyNyw2ICsxMjcsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVMZWdhY3lDRE1TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLm1lc3NhZ2VzLmluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAw
NGQ0Nzk4NmEwNTY1OTBjOGQxOWM5NjE5ZTkyMzMyOGQyODQxYzFiLi4wOWFmZjY1ZTFjZTA0YTVk
OWQwZjJlNWYxMWViZmIyNTE5OTM0YjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE1NCw2ICsxNTQsOSBAQCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXJNZXNzYQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlc1JlcGxpZXMu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGVkZDU4NzgzODkxOTBmM2VlYzY2Y2U5
ZTNiMTc3Nzk2ZTFjZjdiNzYuLjNjOTE5MTE0NzUxNmY2NDFlNGFlZmM0YWRhZGZkMmQ4ODVlZGVi
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE3NSw2ICsxNzUsNyBAQCBNRVNT
QUdFX1JFQ0VJVkVSUyA9IFwKIAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyIFwKIAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkgXAogCVdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbiBcCisJ
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIgXAog
CVdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcCBcCiAJV2ViUHJvY2Vzcy9Vc2Vy
Q29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIgXAogCVdlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjE1YTZhNzcyNWNlYjBhMDQ1ZWEwYTY3MTViNGQ3ODZj
NmU4Mzc5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHAKQEAgLTAsMCArMSw4OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFC
TEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShDT0NPQSkKKworI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5PiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJv
eHk6OmNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVm
PElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QyYgbG9jYWxQcm92aWRlcikKK3sKKyAgICBhdXRvIHJlbW90ZVByb3ZpZGVyID0gYWRvcHRSZWYo
Km5ldyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkoaWRlbnRpZmllciwgV1RGTW92ZShj
b25uZWN0aW9uKSkpOworCisgICAgbG9jYWxQcm92aWRlci5zZXRSaW5nQnVmZmVyQ3JlYXRpb25D
YWxsYmFjayhbcmVtb3RlUHJvdmlkZXJdKGF1dG8gZGVzY3JpcHRpb24sIGF1dG8gY2FwYWNpdHkp
IHsKKyAgICAgICAgcmV0dXJuIHJlbW90ZVByb3ZpZGVyLT5jcmVhdGVSaW5nQnVmZmVyKGRlc2Ny
aXB0aW9uLCBjYXBhY2l0eSk7CisgICAgfSk7CisgICAgbG9jYWxQcm92aWRlci5zZXRBdWRpb0Nh
bGxiYWNrKFtyZW1vdGVQcm92aWRlcl0oYXV0byBzdGFydEZyYW1lLCBhdXRvIG51bWJlck9mRnJh
bWVzKSB7CisgICAgICAgIHJlbW90ZVByb3ZpZGVyLT5uZXdBdWRpb1NhbXBsZXMoc3RhcnRGcmFt
ZSwgbnVtYmVyT2ZGcmFtZXMpOworICAgIH0pOworCisgICAgcmV0dXJuIHJlbW90ZVByb3ZpZGVy
OworfQorCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OlJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXJQcm94eShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwg
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9pZGVudGlmaWVyKGlk
ZW50aWZpZXIpCisgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKK30K
KworUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5Ojp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5KCkgPSBkZWZhdWx0OworCitzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZVJpbmdCdWZmZXIoY29uc3QgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IGNhcGFjaXR5KQorewor
ICAgIG1fcmluZ0J1ZmZlckRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgbV9yaW5nQnVm
ZmVyQ2FwYWNpdHkgPSBjYXBhY2l0eTsKKyAgICBhdXRvIHJpbmdCdWZmZXIgPSBtYWtlVW5pcXVl
PENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obWFr
ZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4odGhpcykpKTsKKyAgICByaW5nQnVm
ZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgY2FwYWNpdHkpOworICAgIHJldHVybiByaW5nQnVm
ZmVyOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6bmV3QXVkaW9T
YW1wbGVzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorewor
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
ck1hbmFnZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZSB7IG1faWRlbnRpZmllciwgc3RhcnRGcmFt
ZSwgbnVtYmVyT2ZGcmFtZXMgfSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5OjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIG1lbW9yeSkKK3sKKyAgICBT
aGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgaWYgKG1lbW9yeSkKKyAgICAgICAgbWVt
b3J5LT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KTsKKworICAgIC8vIEZJWE1FOiBTZW5kIHRoZSBhY3R1YWwgZGF0YSBzaXplIHdpdGggSVBD
SGFuZGxlLgorI2lmIE9TKERBUldJTikgfHwgT1MoV0lORE9XUykKKyAgICB1aW50NjRfdCBkYXRh
U2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxzZQorICAgIHVpbnQ2NF90IGRhdGFTaXplID0gMDsK
KyNlbmRpZgorICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXI6OkF1ZGlvU3RvcmFnZUNoYW5nZWQgeyBtX2lkZW50aWZpZXIsIFNo
YXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCAgZGF0YVNpemUgfSwgbV9y
aW5nQnVmZmVyRGVzY3JpcHRpb24sIG1fcmluZ0J1ZmZlckNhcGFjaXR5IH0sIDApOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
RU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIxYWE5MDAyNjkwZjNmZjdmYmE1ZDVmZWNiMjQ5MDc1M2U3
OTk1OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuaApAQCAtMCwwICsxLDcyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShX
RUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgor
I2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmll
ci5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKK2NsYXNzIENBUmlu
Z0J1ZmZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJQcm94eSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyUHJveHk+CisgICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U6OkNsaWVudAorICAgICwgcHVibGljIFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclBy
b3h5PiBjcmVhdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmLCBXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyYpOworICAgIH5S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkoKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpDQVJpbmdCdWZmZXI+IGNyZWF0ZVJpbmdCdWZmZXIoY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lkIG5ld0F1ZGlvU2FtcGxl
cyh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisKK3ByaXZhdGU6Cisg
ICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5KFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisKKyAgICAvLyBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZTo6Q2xpZW50CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkq
KSBmaW5hbDsKKworICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQKKyAgICB2b2lkIHNl
dEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgZmluYWwg
eyB9CisKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwor
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKworICAgIFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX3JpbmdCdWZmZXJEZXNjcmlwdGlvbjsKKyAgICBzaXpl
X3QgbV9yaW5nQnVmZmVyQ2FwYWNpdHkgeyAwIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQl9BVURJTykg
JiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggY2M3Y2IxMjI2ZDg1NDI1
YjAzNGZlZGVjNjU5MDI5YWE4OTI0YWMxOC4uMmFjNWIyNjM0ZmEwMGVlZjI0ZWNiNTg5MjUyMzcz
M2Q1NmE3OGM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJMYXllckhvc3RpbmdD
b250ZXh0LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuaCIKICNpbmNsdWRlICJS
ZW1vdGVBdWRpb1RyYWNrUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5
UHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHkuaCIKQEAgLTU5
LDYgKzYwLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5o
PgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtODIsNiArODcsNyBAQCBSZW1vdGVNZWRpYVBs
YXllclByb3h5Ojp+UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSgpCiB7CiAgICAgaWYgKG1fcGVyZm9y
bVRhc2tBdE1lZGlhVGltZUNvbXBsZXRpb25IYW5kbGVyKQogICAgICAgICBtX3BlcmZvcm1UYXNr
QXRNZWRpYVRpbWVDb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworICAgIHNldFNob3Vs
ZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIoZmFsc2UpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OmludmFsaWRhdGUoKQpAQCAtODc4LDYgKzg4NCwyOCBAQCB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OndvdWxkVGFpbnRPcmlnaW4oc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YQogICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcGxheWVyLT53b3VsZFRhaW50
T3JpZ2luKG9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSkpOwogfQogCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OmNyZWF0ZUF1ZGlvU291cmNlUHJvdmlkZXIoKQoreworI2lmIEVOQUJM
RShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9wbGF5ZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8qIHByb3ZpZGVyID0gbV9wbGF5ZXItPmF1ZGlvU291cmNl
UHJvdmlkZXIoKTsKKyAgICBpZiAoIXByb3ZpZGVyIHx8ICFpczxBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQz4ocHJvdmlkZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXIgPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZSht
X2lkLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLmNvcHlSZWYoKSwgZG93bmNhc3Q8QXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM+KCpwcm92aWRlcikpOworI2VuZGlmCit9CisKK3ZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6c2V0U2hvdWxkRW5hYmxlQXVkaW9Tb3VyY2VQcm92aWRlcihib29s
IHNob3VsZEVuYWJsZSkKK3sKKyNpZiBFTkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShDT0NP
QSkKKyAgICBpZiAoYXV0byogcHJvdmlkZXIgPSBtX3BsYXllci0+YXVkaW9Tb3VyY2VQcm92aWRl
cigpKQorICAgICAgICBwcm92aWRlci0+c2V0Q2xpZW50KHNob3VsZEVuYWJsZSA/IG1fcmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlci5nZXQoKSA6IG51bGxwdHIpOworI2VuZGlmCit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgKaW5kZXggOGUxZjI1ZTVjODQ2MTRmNDJjZmI1ZTBjOTMwNDRlNWUzMjkxMmI1YS4uZDk0
ZDQ1OWQ5ZDhkNDJhZDY3MDM0M2JhNDhkZjg4MTg5NWI1OTc1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBA
IC01Miw2ICs1MiwxMCBAQAogI2luY2x1ZGUgIlJlbW90ZUNETUluc3RhbmNlUHJveHkuaCIKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1hY2hTZW5kUmlnaHQ7
CiB9CkBAIC02NSw2ICs2OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBMYXllckhv
c3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7Citj
bGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk7CiBjbGFzcyBSZW1vdGVBdWRpb1Ry
YWNrUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJl
bW90ZVRleHRUcmFja1Byb3h5OwpAQCAtMjY3LDYgKzI3Miw5IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZW5kQ2FjaGVkU3RhdGUoKTsKICAgICB2b2lkIHRpbWVyRmlyZWQoKTsKIAorICAgIHZvaWQg
Y3JlYXRlQXVkaW9Tb3VyY2VQcm92aWRlcigpOworICAgIHZvaWQgc2V0U2hvdWxkRW5hYmxlQXVk
aW9Tb3VyY2VQcm92aWRlcihib29sKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJldHVybiBtX2xvZ2dl
cjsgfQogICAgIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpIHsgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fY29uZmlndXJhdGlvbi5sb2dJZGVudGlm
aWVyKTsgfQpAQCAtMzAzLDYgKzMxMSwxMCBAQCBwcml2YXRlOgogICAgIFJlbW90ZUxlZ2FjeUNE
TVNlc3Npb25JZGVudGlmaWVyIG1fbGVnYWN5U2Vzc2lvbjsKICNlbmRpZgogCisjaWYgRU5BQkxF
KFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgUmVmUHRyPFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJQcm94eT4gbV9yZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOworI2VuZGlmCisK
ICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1fbG9nZ2VyOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDU5YTBhY2FhYTFm
NGNjNjEzMDc1NTI2ZjA5MzU1MTk0ODJlZjFhOTUuLjEwMzQ1MTQ0NTM4NWI3YWY2NDhiZjg0OGQz
Nzg5Zjg5Mzg0N2Q2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0x
MTYsNiArMTE2LDExIEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVm
Q291bnRlZCB7CiAgICAgRXJyb3JMb2coKSAtPiAoU3RyaW5nIGVycm9yTG9nKSBTeW5jaHJvbm91
cwogICAgIEFjY2Vzc0xvZygpIC0+IChTdHJpbmcgYWNjZXNzTG9nKSBTeW5jaHJvbm91cwogI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIENyZWF0ZUF1ZGlvU291cmNlUHJvdmlk
ZXIoKQorICAgIFNldFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIoYm9vbCBzaG91bGRF
bmFibGUpCisjZW5kaWYKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMDMx
ZTNkMmFlODg4NzEzNTE4NjlhOWU5ZThhYmI5ZjYzM2YzOGRiOC4uOGZmZmMzNWU3OTY4MGFkMmY1
NmM1YTg4YzdkNmRhZjE1ZGRhZjgxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTgsNiAr
NTgsNyBAQCBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Jlc29sdmVyQ29jb2EuY3Bw
CiBHUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2aWNlRW50cnlQ
b2ludC5tbQogR1BVUHJvY2Vzcy9pb3MvR1BVUHJvY2Vzc0lPUy5tbQogR1BVUHJvY2Vzcy9tYWMv
R1BVUHJvY2Vzc01hYy5tbQorR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb2NvYS5tbQogR1BVUHJvY2Vzcy9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVy
UHJveHkuY3BwCiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAt
NTY1LDYgKzU2Niw3IEBAIFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dl
YkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQogCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcAorV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcApAQCAtNjY3LDYgKzY2OSw3
IEBAIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlck1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBlZGExNWEz
NWZkYmE1YzcyMjQyYzEzODU4ZjczOGM0YWM2ZjhhMGUuLjVkMzJiN2ZmMDM5MThkNWJkOTlkYWQ2
YjVkZjM5ZWI2YWE3ODcxM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzQyNCw2ICszNDI0LDExIEBACiAJCTQxMjg3RDREMjI1QzE2
MUYwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlNvY2tldFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEy
RkY5MTYyNTM3M0Y5RDAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMkZGOTE3MjUzNzNGOUQw
MDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MjMyNTM4MkJEMzAwMURGMDM2IC8qIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MjQyNTM4MkJENTAwMURGMDM2IC8qIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxMkZGOTI1MjUzODJCRDUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDEyRkY5MjYyNTM4MkQ4NTAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTJGRjkyNzI1MzgyRDg1MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMw
NzU5QTFERTg0RkIwMDAzOUVDNjkgLyogTmV0d29ya1JUQ01vbml0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1JUQ01vbml0b3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwNzU5QjFERTg0RkIwMDAzOUVDNjkgLyogTmV0d29y
a1JUQ01vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1JU
Q01vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDc1OUMxREU4NEZC
MDAwMzlFQzY5IC8qIE5ldHdvcmtSVENNb25pdG9yLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE5ldHdvcmtSVENNb25pdG9yLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNDUzMiw3ICs0NTM3LDcgQEAKIAkJOUIxMjI5RDAyM0ZGMkE1RTAwOENB
NzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTlCNDc5MDhDMjUzMTREODMwMEVDMTFBQiAvKiBNZXNzYWdlQXJndW1lbnREZXNj
cmlwdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNDc5MDhFMjUzMTUxQ0MwMEVDMTFBQiAv
KiBKU0lQQ0JpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJUENCaW5kaW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlCNDc5MDkwMjUzMTU2MzIwMEVDMTFBQiAvKiBNZXNzYWdl
QXJndW1lbnREZXNjcmlwdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcDsgcGF0aCA9IE1lc3NhZ2VBcmd1
bWVudERlc2NyaXB0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCNDc5
MDkwMjUzMTU2MzIwMEVDMTFBQiAvKiBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVzc2FnZUFyZ3VtZW50RGVzY3Jp
cHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QUMyMzYyQTZG
NjAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlCNTQ5OUFFMjM2MkE3QTcwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1RleHRNYW5p
cHVsYXRpb25Db25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QjU0OTlCMDIzNjJBN0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1NjgsNiArNTU3Myw5IEBACiAJCQkJQ0RC
QjQ5RkIyNDBEOTc0QTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaCAq
LywKIAkJCQk0MTJGRjkxNjI1MzczRjlEMDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlci5jcHAgKi8sCiAJCQkJNDEyRkY5MTcyNTM3M0Y5RDAwMURGMDM2IC8qIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXIuaCAqLywKKwkJCQk0MTJGRjkyMzI1MzgyQkQzMDAxREYwMzYgLyogUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwICovLAorCQkJCTQxMkZGOTI0MjUzODJC
RDUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oICovLAorCQkJ
CTQxMkZGOTI1MjUzODJCRDUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFu
YWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREFDMjBCRjIzRkMyRjc1MDAyMURFRTMgLyogUmVt
b3RlQ0RNLmNwcCAqLywKIAkJCQlDREFDMjBCQTIzRkMyRjc0MDAyMURFRTMgLyogUmVtb3RlQ0RN
LmggKi8sCiAJCQkJQ0RBQzIwQjgyM0ZDMkY3MzAwMjFERUUzIC8qIFJlbW90ZUNETUNvbmZpZ3Vy
YXRpb24uaCAqLywKQEAgLTU2MjMsNiArNTYzMSw4IEBACiAJCQkJQ0RCQjQ5RjgyNDBEOEQ1MzAw
MTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUNE
QkI0OUZBMjQwRDk2M0QwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
Y3BwICovLAogCQkJCUNEQkI0OUY5MjQwRDk2M0MwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIuaCAqLywKKwkJCQk0MTJGRjkyNjI1MzgyRDg1MDAxREYwMzYgLyogUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmNwcCAqLywKKwkJCQk0MTJGRjkyNzI1MzgyRDg1
MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmggKi8sCiAJCQkJMDcx
QkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgKi8sCiAJ
CQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oICov
LAogCQkJCUNEQUMyMDc5MjNGQjFFMjEwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHku
Y3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCAwMWFmZmI1ZmM1ZWFmYTE2YzhiNmYxZDgyODVjY2M0OTNk
Yjc5YTZmLi5kZDhmMWJlZmE1ODc2Y2FkNTk3MDk3OWJmMTVlOGExNTdjOTRjNzNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjcy5oIgogI2lu
Y2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJS
ZW1vdGVDRE1Qcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKQEAg
LTEwMSw2ICsxMDIsMTUgQEAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBHUFVQcm9jZXNzQ29u
bmVjdGlvbjo6bWVkaWFQbGF5ZXJNYW5hZ2VyKCkKICAgICByZXR1cm4gKldlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnN1cHBsZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpOwogfQogCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJfQVVESU8pCitSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlciYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmF1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fYXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIpCisg
ICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIgPSBSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyTWFuYWdlcjo6Y3JlYXRlKCk7CisgICAgcmV0dXJuICptX2F1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogUmVt
b3RlQ0RNRmFjdG9yeSYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmNkbUZhY3RvcnkoKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5o
CmluZGV4IDM4MjA5NDI1OWZhY2VkMmVlZTQyZTg1YzVjZjk0N2ZkMjIxODhiNzAuLmE4MWFjNjdm
YzRkZGQ3OTQyNWNmMjQ4ODliMWNmOGRmMWM1MTZkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQwLDYgKzQwLDcg
QEAgY2xhc3MgRGF0YVJlZmVyZW5jZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlQ0RNRmFjdG9yeTsK
IGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZUxlZ2FjeUNETUZh
Y3Rvcnk7CkBAIC02Niw2ICs2NywxMCBAQCBwdWJsaWM6CiAKICAgICBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXImIG1lZGlhUGxheWVyTWFuYWdlcigpOwogCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShXRUJfQVVESU8pCisgICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIm
IGF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCiAgICAgUmVtb3RlQ0RNRmFjdG9yeSYgY2RtRmFjdG9yeSgpOwogI2VuZGlm
CkBAIC0xMDAsNiArMTA1LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogI2VuZGlm
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJfQVVESU8pCisgICAgUmVmUHRyPFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyPiBtX2F1ZGlvU291cmNlUHJvdmlkZXJNYW5h
Z2VyOworI2VuZGlmCiAjaWYgRU5BQkxFKFZQOSkKICAgICBib29sIG1fZW5hYmxlVlA5RGVjb2Rl
ciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZVZQOVNXRGVjb2RlciB7IGZhbHNlIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcAppbmRleCBhOTkwY2U3ZDU1OWU5ODQ5YmY5ZWNm
NzA5Y2YzZGIzMjJkYzM3ZmI5Li5kY2JkNGY4YWZhZmUxMDYwYTYxYjAzMDUzMWUxMmM3NGQzN2Vm
ZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKQEAgLTI4LDYgKzI4LDkgQEAK
IAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZP
Uk0oQ09DT0EpCiAKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5o
IgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBleHRlcm4gV1RGTG9nQ2hh
bm5lbCBMb2dNZWRpYTsKQEAgLTM5LDcgKzQyLDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4gUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlcjo6Y3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBX
VEY6OkxvZ2dlckhlbHBlciYgaGVscGVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoaWRlbnRpZmllciwgaGVscGVyKSk7CisgICAgYXV0byBw
cm92aWRlciA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcihpZGVudGlm
aWVyLCBoZWxwZXIpKTsKKworICAgIGF1dG8mIGdwdVByb2Nlc3NDb25uZWN0aW9uID0gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICBncHVQ
cm9jZXNzQ29ubmVjdGlvbi5hdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcigpLmFkZFByb3ZpZGVy
KHByb3ZpZGVyLmNvcHlSZWYoKSk7CisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIGdwdVBy
b2Nlc3NDb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllclByb3h5OjpDcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyIHsgfSwgcHJvdmlkZXItPmlkZW50
aWZpZXIoKSk7CisjZW5kaWYKKworICAgIHJldHVybiBwcm92aWRlcjsKIH0KIAogUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcihNZWRpYVBsYXllcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxwZXImIGhlbHBlcikKQEAgLTQ5LDYg
KzYxLDcgQEAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnQKICAgICAsIG1fbG9nSWRlbnRpZmllciho
ZWxwZXIubG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiB7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKICAgICBVTlVTRURfUEFSQU0oaGVscGVyKTsKIH0KIApAQCAtNTgsMTEgKzcxLDEzIEBA
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6On5SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCkK
IAogdm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpjbG9zZSgpCiB7CisgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpLmF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCkucmVtb3ZlUHJv
dmlkZXIobV9pZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
OjpoYXNOZXdDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCopCit2b2lkIFJlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXI6Omhhc05ld0NsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50
KiBjbGllbnQpCiB7Ci0gICAgLy8gRklYTUU6IHJlZ2lzdGVyL3VucmVnaXN0ZXIgYXMgbmVlZGVk
LgorICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNl
dFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIgeyAhIWNsaWVudCB9LCBtX2lkZW50aWZp
ZXIpOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGY0NWE2ZDViYjRkYjQ2MDk4
ODAxMjQzYmI1ZTkzMTdiMWUzZTJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAK
QEAgLTAsMCArMSwxNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuaCIKKworI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKworI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK25hbWVzcGFjZSBXZWJLaXQgewor
dXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFn
ZXIoKQorICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXIiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6
OlVzZXJJbnRlcmFjdGl2ZSkpCit7Cit9CisKK1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5h
Z2VyOjp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKQoreworICAgIHNldENvbm5l
Y3Rpb24obnVsbHB0cik7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFn
ZXI6OnNldENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIGlm
IChtX2Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpOworCisgICAgbV9jb25uZWN0aW9uID0gV1RGTW92ZShjb25uZWN0
aW9uKTsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+YWRk
VGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKK30KKwordm9pZCBSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YWRkUHJvdmlkZXIoUmVmPFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIpCit7CisgICAgQVNTRVJUKFdURjo6aXNNYWluUnVuTG9v
cCgpKTsKKyAgICBzZXRDb25uZWN0aW9uKCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVH
UFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7CisKKyAgICBkaXNwYXRjaFRvVGhy
ZWFkKFt0aGlzLCBwcm92aWRlciA9IFdURk1vdmUocHJvdmlkZXIpXSgpIG11dGFibGUgeworICAg
ICAgICBhdXRvIGlkZW50aWZpZXIgPSBwcm92aWRlci0+aWRlbnRpZmllcigpOworCisgICAgICAg
IEFTU0VSVCghbV9wcm92aWRlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgICAgICBtX3By
b3ZpZGVycy5hZGQoaWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZW1vdGVBdWRpbz4oV1RGTW92ZShw
cm92aWRlcikpKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlcjo6cmVtb3ZlUHJvdmlkZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgQVNTRVJUKFdURjo6aXNNYWluUnVuTG9vcCgpKTsKKworICAgIGRpc3BhdGNoVG9U
aHJlYWQoW3RoaXMsIGlkZW50aWZpZXJdIHsKKyAgICAgICAgQVNTRVJUKG1fcHJvdmlkZXJzLmNv
bnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV9wcm92aWRlcnMucmVtb3ZlKGlkZW50aWZp
ZXIpOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2Vy
OjpkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKK3sKKyAgICBt
X3F1ZXVlLT5kaXNwYXRjaChXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OmF1ZGlvU3RvcmFnZUNoYW5nZWQoTWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNI
YW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRp
b24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIEFTU0VSVCghV1RGOjppc01haW5S
dW5Mb29wKCkpOworCisgICAgYXV0byBpdGVyYXRvciA9IG1fcHJvdmlkZXJzLmZpbmQoaWRlbnRp
Zmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fcHJvdmlkZXJzLmVuZCgpKSB7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVW5hYmxlIHRvIGZpbmQgcHJvdmlkZXIgJWxsdSBm
b3Igc3RvcmFnZUNoYW5nZWQiLCBpZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGl0ZXJhdG9yLT52YWx1ZS0+c2V0U3RvcmFnZShpcGNIYW5kbGUuaGFu
ZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit2b2lkIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51bWJl
ck9mRnJhbWVzKQoreworICAgIEFTU0VSVCghV1RGOjppc01haW5SdW5Mb29wKCkpOworCisgICAg
YXV0byBpdGVyYXRvciA9IG1fcHJvdmlkZXJzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0
ZXJhdG9yID09IG1fcHJvdmlkZXJzLmVuZCgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhLCAiVW5hYmxlIHRvIGZpbmQgcHJvdmlkZXIgJWxsdSBmb3IgYXVkaW9TYW1wbGVzQXZh
aWxhYmxlIiwgaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBpdGVyYXRvci0+dmFsdWUtPmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShzdGFydEZyYW1lLCBu
dW1iZXJPZkZyYW1lcyk7Cit9CisKK1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpS
ZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+JiYg
cHJvdmlkZXIpCisgICAgOiBtX3Byb3ZpZGVyKFdURk1vdmUocHJvdmlkZXIpKQorICAgICwgbV9y
aW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkpCit7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1l
bW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIG1fZGVz
Y3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1lbW9y
eTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtZW1vcnkgPSBTaGFyZWRN
ZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRighbWVtb3J5LCBNZWRpYSwgIlVuYWJsZSB0byBj
cmVhdGUgc2hhcmVkIG1lbW9yeSBmb3IgYXVkaW8gcHJvdmlkZXIgJWxsdSIsIG1fcHJvdmlkZXIt
PmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICB9CisKKyAgICBhdXRvJiBzdG9yYWdlID0g
c3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3Jh
Z2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9j
YXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBzdG9y
YWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBz
dG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkpOworICAgIHN0b3JhZ2Uu
c2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlv
biwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1
ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQgUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUodWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7Cisg
ICAgaWYgKCFtX2J1ZmZlcikgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgImJ1
ZmZlciBmb3IgYXVkaW8gcHJvdmlkZXIgJWxsdSBpcyBudWxsIiwgbV9wcm92aWRlci0+aWRlbnRp
ZmllcigpLnRvVUludDY0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFX
ZWJBdWRpb0J1ZmZlckxpc3Q6OmlzU3VwcG9ydGVkRGVzY3JpcHRpb24obV9kZXNjcmlwdGlvbiwg
bnVtYmVyT2ZGcmFtZXMpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVW5h
YmxlIHRvIHN1cHBvcnQgZGVzY3JpcHRpb24gd2l0aCBnaXZlbiBudW1iZXIgb2YgZnJhbWVzIGZv
ciBhdWRpbyBwcm92aWRlciAlbGx1IiwgbV9wcm92aWRlci0+aWRlbnRpZmllcigpLnRvVUludDY0
KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBlbmRGcmFtZSA9IHN0YXJ0
RnJhbWUgKyBudW1iZXJPZkZyYW1lczsKKyAgICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVt
YmVyT2ZGcmFtZXMpOworCisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMo
c3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXIt
Pmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUpOworCisgICAgbV9wcm92aWRlci0+
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKCptX2J1ZmZlciwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU1OWUxYjA2YjQ0N2U1ZDgwY2E2MTA1MmM2YzdhMzJjNGJhMTQyZTYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmllci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOworCitjbGFzcyBSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlciA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VS
ZWNlaXZlclJlZkNvdW50ZWQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKSk7IH0KKyAgICB+UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXIoKTsKKworICAgIHZvaWQgYWRkUHJvdmlkZXIoUmVmPFJlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXI+JiYpOworICAgIHZvaWQgcmVtb3ZlUHJvdmlkZXIoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6VGhy
ZWFkTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZv
aWQoKT4mJikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdlcworICAgIHZvaWQgYXVkaW9TdG9yYWdl
Q2hhbmdlZChXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9y
eTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxl
KFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworCisgICAgdm9pZCBzZXRDb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbiopOworCisgICAgY2xhc3MgUmVtb3RlQXVkaW8geworICAgICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKKyAgICBwdWJsaWM6CisgICAgICAgIGV4cGxpY2l0IFJlbW90ZUF1ZGlv
KFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyPiYmKTsKKworICAgICAgICB2b2lkIHNldFN0
b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAgICAgIHZv
aWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZjxSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyPiBtX3Byb3ZpZGVyOworICAgICAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2J1ZmZlcjsKKyAgICB9OworCisgICAgUmVm
PFdvcmtRdWV1ZT4gbV9xdWV1ZTsKKyAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb247CisKKyAgICAvLyBiYWNrZ3JvdW5kIHRocmVhZCBtZW1iZXIKKyAgICBIYXNoTWFwPFdl
YkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlv
Pj4gbV9wcm92aWRlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
YTk5MWMyZWIwYWJjMGVkZDE1OTdjM2MxYjk3NDdiNGY3MmNlZTI4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIEF1
ZGlvU3RvcmFnZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkLCBXZWJL
aXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMp
CisgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmll
ciBpZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKaW5kZXggMTc1N2E2YTliMWIxMjUzMDEz
NWFiOGY3N2IxZWE1OWY2YjAyZWRlOC4uNWIzZTcwMGUwOTU4ZTJmYmQ1NjkxNzgwNDI3MWRlZGM5
NGZjNWU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
aCIKIAorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgpAQCAtMzMsNyArMzQsNiBA
QAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411547</attachid>
            <date>2020-10-16 01:48:15 -0700</date>
            <delta_ts>2020-10-16 04:09:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217704-20201016104812.patch</filename>
            <type>text/plain</type>
            <size>56508</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU3MDdhMjg4ODMyZmNh
YTlmNGUyNzhhZGZkZTRkYmUzYjAwNjYyZS4uMGRkYmJjZmIzNmQ4ZWNjNGZmNGQ4MWVjZWY1NjAw
YjI2ZDIyNDM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTEwLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
R1BVUHJvY2VzcyBXZWJBdWRpbyBtZWRpYSBlbGVtZW50IHByb3ZpZGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFVwZGF0ZSBBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQyBzbyB0aGF0IGEgc3BlY2lmaWMgcmluZyBidWZmZXIgY2FuIGJlIHByb3ZpZGVk
IGFuZCB0byBiZSBub3RpZmllZCBvZiBuZXcgc2FtcGxlcyBiZWluZyBwdXNoZWQuCisKKyAgICAg
ICAgQ292ZXJlZCBieSBleGlzdGluZyB3ZWIgYXVkaW8gdGVzdHMgcnVuIHdpdGggR1BVUHJvY2Vz
cy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyOjppc0hhbmRsaW5nQVZQbGF5ZXIgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6cHVsbFNhbXBsZXNJbnRlcm5h
bCk6CisgICAgICAgIFdoZW4gd2UgYXJlIHRvbyBjbG9zZSB0byB0aGUgZW5kIG9mIGF2YWlsYWJs
ZSBkYXRhLCBkbyBhcyBpZiB3ZSBhcmUgcGF1c2VkIGFuZCBrZWVwIHRoZSBzYW1lIHRpbWUgZW50
cnkgZm9yIHRoZSBuZXh0IHJlYWQgb3BlcmF0aW9uLgorICAgICAgICBUaGlzIHdpbGwgYmFzaWNh
bGx5IG1ha2UgdXMgd2FpdCBmb3IgdGhlIG5leHQgcHVzaCBvZiBkYXRhIGJlZm9yZSByZXN0YXJ0
aW5nIHRvIHJlYWQgc3VjY2VzZnVsbHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg6CisgICAgICAgIChpc1R5cGUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOjpwcmVwYXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOjpwcm9jZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOjpzZXRBdWRpb0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDOjpzZXRSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjayk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6cmVjZWl2
ZWROZXdBdWRpb1NhbXBsZXMpOgorICAgICAgICBXZSBzaG91bGQgdXNlIHRoZSBpbnB1dCBzYW1w
bGUgcmF0ZSB0byBjb21wdXRlIHRoZSBpbnB1dCBtZWRpYSB0aW1lLgorCiAyMDIwLTEwLTE0ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgYSBS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyIHRvIHJlY2VpdmUgYXVkaW8gc2FtcGxlcyBmb3Igd2Vi
IGF1ZGlvIGZyb20gR1BVUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkMGM0OWFiNjg2YzUzNDI0ZTk4YzBm
Mzg2NTQ4Njk4NmU1MDUwN2ZiLi43NDkzYWFiMGQ1MWNiMzBlYzdlYmI0N2E4ODhjNDlkMDViYmY1
NmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTEwLTE1ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgR1BVUHJvY2Vz
cyBXZWJBdWRpbyBtZWRpYSBlbGVtZW50IHByb3ZpZGVycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBDYXJsc29uLgorCisgICAgICAgIEludHJvZHVjZSBSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlciB3aGljaCByZWNlaXZlcyBJUEMgbWVzc2FnZXMgZnJvbSBHUFUgcHJvY2VzcyBm
b3Igd2ViIGF1ZGlvIGRhdGEuCisgICAgICAgIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5h
Z2VyIHNlbmRzIGl0IHRvIHRoZSBpZGVudGlmaWVkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIu
CisKKyAgICAgICAgSW50cm9kdWNlIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eSB3aGlj
aCBpcyBhIGNsaWVudCB0byB0aGUgQVYgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuCisgICAg
ICAgIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eSB3aWxsIHNlbmQgSVBDIG1lc3NhZ2Vz
IHRvIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyIHRvIHNlbmQgYXVkaW8gZGF0YSBh
bmQgZGVzY3JpcHRpb24uCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJv
eHk6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6Y3JlYXRlUmluZ0J1ZmZlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6bmV3QXVkaW9TYW1wbGVz
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpzdG9y
YWdlQ2hhbmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyUHJveHkuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6flJlbW90ZU1lZGlhUGxheWVyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0U2hvdWxkRW5hYmxlQXVkaW9Tb3Vy
Y2VQcm92aWRlcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvbjo6YXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpjbG9zZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6Omhhc05ld0NsaWVudCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFn
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
ck1hbmFnZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6On5SZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyOjpzZXRDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OmFkZFByb3ZpZGVyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OnJlbW92ZVByb3ZpZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OmRpc3BhdGNoVG9U
aHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdl
cjo6YXVkaW9TdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6UmVtb3RlQXVkaW86OlJlbW90
ZUF1ZGlvKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFn
ZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjphdWRpb1NhbXBsZXNBdmFpbGFi
bGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA6
CisKIDIwMjAtMTAtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEludHJvZHVjZSBhIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIgdG8gcmVjZWl2ZSBhdWRp
byBzYW1wbGVzIGZvciB3ZWIgYXVkaW8gZnJvbSBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpp
bmRleCAwYWRlN2Q4YzhkNGIyZjJkOThkNmQzOTBlOTM4YWIzM2ViNzQ1ODE3Li4xMTFlYjJkYjQ3
YjU3ZDM2NTkwYjIzYmZiOTA2NjQ1YTkyMGI4MTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEw
NjcsNiArMTA2Nyw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAg
ICBwbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1
ZGlvU2Vzc2lvbi5oCiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5oCisg
ICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudC5oCiAgICAgcGxhdGZv
cm0vYXVkaW8vQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oCiAgICAgcGxhdGZvcm0vYXVkaW8vQXVk
aW9VdGlsaXRpZXMuaAogICAgIHBsYXRmb3JtL2F1ZGlvL05vd1BsYXlpbmdJbmZvLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5
ZTgzOGExODkzZTUzMGVhOGU3YTQ2ODFlNzZiMWNjNTM0ZTc2ZGQzLi5kOTJkNDIxODE1NWIzYTZh
NDM4ODA0ZmRkNjk5MzQ0MTg4MmM2M2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MTk3LDcgKzQxOTcsNyBAQAogCQlDRDdF
MDUyMjE2NTFDMjgyMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RTA1MjExNjUxQTg0
MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSAqLzsgfTsKIAkJQ0Q4M0Qz
NjIyMTEyMkEyMTAwNzZFMTFDIC8qIERlZmVycmFibGVUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDgzRDM1QTIxMTExMDgyMDA3NkUxMUMgLyog
RGVmZXJyYWJsZVRhc2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlDRDhBN0JCQjE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDhBN0JCOTE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMu
bW0gKi87IH07Ci0JCUNEOEE3QkJDMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q4QTdCQkExOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
LmggKi87IH07CisJCUNEOEE3QkJDMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q4QTdCQkExOTc3MzVGRTAwQ0JENjQzIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Q4
QUNBODkxRDIzN0FBMjAwRUNDNTlFIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QUNBODcxRDIzN0FB
MjAwRUNDNTlFIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oICovOyB9OwogCQlDRDhBQ0E4
RjFEMjM5NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QUNBOEQxRDIzOTcxOTAwRUNDNTlF
IC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCAqLzsgfTsKIAkJQ0Q4QjVBNDIxODBEMTQ5QTAwOEI4
RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QjVBNDAxODBEMTQ5QTAwOEI4
RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovOyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5o
CmluZGV4IGIyMjQ0OWExY2EwY2Q5NWM0NDhlNTNjOGI4MDcxZDU0YmE4M2M0MmIuLjZjMDljMDg2
MWI5NjY0Mzk2N2JkZjU2MjU3Y2NlMTlkNGJjYzBjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKQEAgLTQzLDYgKzQzLDgg
QEAgcHVibGljOgogICAgIC8vIElmIGEgY2xpZW50IGlzIHNldCwgd2UgY2FsbCBpdCBiYWNrIHdo
ZW4gdGhlIGF1ZGlvIGZvcm1hdCBpcyBhdmFpbGFibGUgb3IgY2hhbmdlcy4KICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqKSB7IH07CiAKKyAgICB2
aXJ0dWFsIGJvb2wgaXNIYW5kbGluZ0FWUGxheWVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KwogICAgIHZpcnR1YWwgfkF1ZGlvU291cmNlUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBs
ZURhdGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b1NhbXBsZURhdGFTb3VyY2UubW0KaW5kZXggZWY3ZmQwNDM5MWM1ODRkMGNlYmU2NjgxMTdlYmM3
YzJhOGJhMmFjNy4uOWU2ZDU0NTI1NzFkMWQ1ZTc1NzQ4MTY2NTQ2ZDY4NThlMmQ2OWE4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVE
YXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQpAQCAtMjYwLDkgKzI2MCw4IEBAIGJvb2wgQXVkaW9TYW1w
bGVEYXRhU291cmNlOjpwdWxsU2FtcGxlc0ludGVybmFsKEF1ZGlvQnVmZmVyTGlzdCYgYnVmZmVy
LCBzaXplX3QmCiAgICAgICAgICAgICBpZiAodGltZVN0YW1wID49IGVuZEZyYW1lKQogICAgICAg
ICAgICAgICAgIG1fZW5kRnJhbWVXaGVuTm90RW5vdWdoRGF0YSA9IGVuZEZyYW1lOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgLy8gV2UgYXJlIHRvbyBjbG9zZSBmcm9tIGVuZEZyYW1l
LCBsZXQncyBiYWNrIHVwIGEgbGl0dGxlIGJpdC4KLSAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1l
c0F2YWlsYWJsZSA9IGVuZEZyYW1lIC0gdGltZVN0YW1wOwotICAgICAgICAgICAgbV9vdXRwdXRT
YW1wbGVPZmZzZXQgLT0gc2FtcGxlQ291bnQgLSBmcmFtZXNBdmFpbGFibGU7CisgICAgICAgICAg
ICAvLyBXZSBhcmUgdG9vIGNsb3NlIGZyb20gZW5kRnJhbWUsIGxldCdzIHdhaXQgZm9yIG1vcmUg
ZGF0YSB0byBiZSBwdXNoZWQuCisgICAgICAgICAgICBtX291dHB1dFNhbXBsZU9mZnNldCAtPSBz
YW1wbGVDb3VudDsKICAgICAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWlu
X3F1ZXVlKCksIFtsb2dJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUiwgb3V0cHV0U2FtcGxlT2Zm
c2V0ID0gbV9vdXRwdXRTYW1wbGVPZmZzZXQsIHRoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
UHRyKCp0aGlzKV0gewogICAgICAgICAgICAgICAgIEFMV0FZU19MT0cobG9nSWRlbnRpZmllciwg
InVwZGF0aW5nIG9mZnNldCB0byAiLCBvdXRwdXRTYW1wbGVPZmZzZXQpOwogICAgICAgICAgICAg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCmlu
ZGV4IGY2NWNmMDhjNGYyYTA2MWYxMzJiN2M5ZTExNzI2M2EzNGExNTg3ZDQuLjQ2ZTFjZjMzNjI2
MTdhMDA0MDc0ODk2NjJkZjE0NmExNzA4OGRhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9B
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKICAqLwogCi0jaWZuZGVmIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDX2gKLSNkZWZp
bmUgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakNfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFC
TEUoV0VCX0FVRElPKSAmJiBVU0UoTUVESUFUT09MQk9YKQogCkBAIC0zMyw2ICszMiw4IEBACiAj
aW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVHlwZUNh
c3RzLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCiBPQkpDX0NMQVNTIEFWQXNzZXRU
cmFjazsKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJJdGVtOwpAQCAtNDcsNyArNDgsMTAgQEAgdHlwZWRl
ZiBzaWduZWQgbG9uZyBDTUl0ZW1Db3VudDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
OwogY2xhc3MgQ0FSaW5nQnVmZmVyOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiAKIGNsYXNz
IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDPiwgcHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIg
ewogcHVibGljOgpAQCAtNTcsNiArNjEsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGxheWVy
SXRlbShBVlBsYXllckl0ZW0gKik7CiAgICAgdm9pZCBzZXRBdWRpb1RyYWNrKEFWQXNzZXRUcmFj
ayAqKTsKIAorICAgIHVzaW5nIEF1ZGlvQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKHVpbnQ2NF90
IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKT47CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRBdWRpb0NhbGxiYWNrKEF1ZGlvQ2FsbGJhY2smJik7CisgICAgdXNpbmcgUmlu
Z0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2sgPSBGdW5jdGlvbjxVbmlxdWVSZWY8Q0FSaW5nQnVmZmVy
Pihjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKFJpbmdCdWZmZXJDcmVh
dGlvbkNhbGxiYWNrJiYpOworCiBwcml2YXRlOgogICAgIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDKEFWUGxheWVySXRlbSAqKTsKIApAQCAtNjYsNiArNzUsNyBAQCBwcml2YXRlOgogICAgIC8v
IEF1ZGlvU291cmNlUHJvdmlkZXIKICAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNp
emVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlv
U291cmNlUHJvdmlkZXJDbGllbnQqKSBvdmVycmlkZTsKKyAgICBib29sIGlzSGFuZGxpbmdBVlBs
YXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHN0YXRpYyB2b2lkIGlu
aXRDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiwgdm9pZCosIHZvaWQqKik7CiAgICAg
c3RhdGljIHZvaWQgZmluYWxpemVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZik7CkBA
IC0xMDAsMTAgKzExMCwxNCBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgVGFwU3RvcmFnZTsKICAg
ICBSZWZQdHI8VGFwU3RvcmFnZT4gbV90YXBTdG9yYWdlOworICAgIEF1ZGlvQ2FsbGJhY2sgbV9h
dWRpb0NhbGxiYWNrOworICAgIFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrIG1fcmluZ0J1ZmZl
ckNhbGxiYWNrOwogfTsKLSAgICAKKwogfQogCi0jZW5kaWYKK1NQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfQkVHSU4oV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMpCisgICAgc3RhdGlj
IGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXImIHByb3ZpZGVy
KSB7IHJldHVybiBwcm92aWRlci5pc0hhbmRsaW5nQVZQbGF5ZXIoKTsgfQorU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19FTkQoKQogCi0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKSAm
JiBVU0UoTUVESUFUT09MQk9YKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLm1tCmluZGV4IDVkY2E0MGUzYjc5ZTVkYTU1MDAyNTdjNTFiNDQ2MzEzYzQ4
NDg4MWQuLjA4MzQwMTUzMDYwMDE5ZjFjYWJhY2UwMGEzMjIyODIxNWY4MDI3MWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTMzNyw4
ICszMzcsMTMgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShDTUl0
ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWEKICAgICAvLyBNYWtlIHRoZSByaW5n
YnVmZmVyIGxhcmdlIGVub3VnaCB0byBzdG9yZSBhdCBsZWFzdCB0d28gY2FsbGJhY2tzIHdvcnRo
IG9mIGF1ZGlvLCBvciAxcywgd2hpY2hldmVyIGlzIGxhcmdlci4KICAgICBzaXplX3QgY2FwYWNp
dHkgPSBzdGQ6Om1heChzdGF0aWNfY2FzdDxzaXplX3Q+KDIgKiBtYXhGcmFtZXMpLCBzdGF0aWNf
Y2FzdDxzaXplX3Q+KGtSaW5nQnVmZmVyRHVyYXRpb24gKiBzYW1wbGVSYXRlKSk7CiAKLSAgICBt
X3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4oKTsKLSAgICBtX3JpbmdCdWZm
ZXItPmFsbG9jYXRlKENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbigqcHJvY2Vzc2luZ0Zvcm1hdCks
IGNhcGFjaXR5KTsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24geyAq
cHJvY2Vzc2luZ0Zvcm1hdCB9OworICAgIGlmIChtX3JpbmdCdWZmZXJDYWxsYmFjaykKKyAgICAg
ICAgbV9yaW5nQnVmZmVyID0gbV9yaW5nQnVmZmVyQ2FsbGJhY2soZGVzY3JpcHRpb24sIGNhcGFj
aXR5KS5tb3ZlVG9VbmlxdWVQdHIoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgbV9yaW5nQnVmZmVy
ID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KCk7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxs
b2NhdGUoZGVzY3JpcHRpb24sIGNhcGFjaXR5KTsKKyAgICB9CiAKICAgICAvLyBBdWRpb0J1ZmZl
ckxpc3QgaXMgYSB2YXJpYWJsZS1sZW5ndGggc3RydWN0LCBzbyBjcmVhdGUgb24gdGhlIGhlYXAg
d2l0aCBhIGdlbmVyaWMgbmV3KCkgb3BlcmF0b3IKICAgICAvLyB3aXRoIGEgY3VzdG9tIHNpemUs
IGFuZCBpbml0aWFsaXplIHRoZSBzdHJ1Y3QgbWFudWFsbHkuCkBAIC00MTksNiArNDI0LDIxIEBA
IHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3MoTVRBdWRpb1Byb2Nlc3Np
bmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VuCiAgICAgICAgIG1lbXNldChidWZmZXIubURhdGEsIDAs
IGJ1ZmZlci5tRGF0YUJ5dGVTaXplKTsKICAgICB9CiAgICAgKm51bWJlckZyYW1lc091dCA9IDA7
CisKKyAgICBpZiAobV9hdWRpb0NhbGxiYWNrKQorICAgICAgICBtX2F1ZGlvQ2FsbGJhY2soZW5k
RnJhbWUsIGl0ZW1Db3VudCk7Cit9CisKK3ZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OnNldEF1ZGlvQ2FsbGJhY2soQXVkaW9DYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFTU0VS
VCghbV9hdkF1ZGlvTWl4KTsKKyAgICBtX2F1ZGlvQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KTsKK30KKwordm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6c2V0UmluZ0J1ZmZlckNy
ZWF0aW9uQ2FsbGJhY2soUmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sK
KyAgICBBU1NFUlQoIW1fYXZBdWRpb01peCk7CisgICAgbV9yaW5nQnVmZmVyQ2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQ29jb2EubW0KaW5kZXggZWM4OGJlMzRiMTcyZTJlYTJmZWI0NDQ2ZTRhMGM2ZmJmOGNmMTFh
Ny4uNTVkM2RmNDgwMjM4NzMwNjQzYTMyYmQxZDYwYWY4ZGVhNmM2NjIzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJv
dmlkZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9p
ZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnJlY2VpdmVkTmV3QXVkaW9TYW1wbGVzKGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXQKICAgICBpZiAoIW1fZGF0YVNvdXJjZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9kYXRhU291cmNlLT5wdXNoU2FtcGxlcyhNZWRpYVRpbWUobV93cml0ZUNv
dW50LCBtX291dHB1dERlc2NyaXB0aW9uLT5zYW1wbGVSYXRlKCkpLCBkYXRhLCBmcmFtZUNvdW50
KTsKKyAgICBtX2RhdGFTb3VyY2UtPnB1c2hTYW1wbGVzKE1lZGlhVGltZShtX3dyaXRlQ291bnQs
IG1faW5wdXREZXNjcmlwdGlvbi0+c2FtcGxlUmF0ZSgpKSwgZGF0YSwgZnJhbWVDb3VudCk7CiAK
ICAgICBtX3dyaXRlQ291bnQgKz0gZnJhbWVDb3VudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4
IGM5ZjZiNDNiOGU4NzFhMzNmZGJkNjQxOTI3ZjRjODdkOGFkYjQzZjYuLjU1YTNkYTFhZDkzNWJl
NDU2N2Y1Mzk2NDM5MmNkOGFhNzRjOTkxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMjE5LDYg
KzIxOSw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUKICAgICBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkKICAgICBXZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb24KKyAgICBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlcgogICAgIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUlu
c3RhbmNlU2Vzc2lvbgogICAgIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNl
c3Npb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CmluZGV4IDY4NDVjZThiZDQwZjY3MWMzMjRiOWIyNTI0ZDljNzRkZWRmMDExYTAuLjQ2YmFlMzc1
Y2QxMWFlMjEzMDBhNmM1N2RkZWYwNTQxMWFjODAzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEyNyw2ICsxMjcsNyBAQCAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmlu
CiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNz
aW9uSGVscGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAppbmRleCAwNGQ0Nzk4NmEwNTY1OTBjOGQxOWM5NjE5ZTkyMzMyOGQy
ODQxYzFiLi4wOWFmZjY1ZTFjZTA0YTVkOWQwZjJlNWYxMWViZmIyNTE5OTM0YjJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE1NCw2
ICsxNTQsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYQogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBs
aWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlck1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVD
RE1GYWN0b3J5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0
b3J5UHJveHlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IGVkZDU4NzgzODkxOTBmM2VlYzY2Y2U5ZTNiMTc3Nzk2ZTFjZjdiNzYuLjNjOTE5MTE0NzUxNmY2
NDFlNGFlZmM0YWRhZGZkMmQ4ODVlZGViMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTE3NSw2ICsxNzUsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyIFwKIAlXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAogCVdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbiBcCisJV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIgXAogCVdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJl
YU1hcCBcCiAJV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIg
XAogCVdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmNkNDBhMTY5
ZTQzYWJhYmMyNzU2MDVkMGE2ODFjZDJkZTQwMzFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5j
cHAKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5oIgorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShDT0NPQSkK
KworI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyTWVzc2FnZXMuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5PiBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyYgbG9jYWxQcm92aWRlcikKK3sKKyAgICBhdXRvIHJl
bW90ZVByb3ZpZGVyID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJv
eHkoaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOworCisgICAgbG9jYWxQcm92aWRl
ci5zZXRSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjayhbcmVtb3RlUHJvdmlkZXJdKGF1dG8gZGVz
Y3JpcHRpb24sIGF1dG8gY2FwYWNpdHkpIHsKKyAgICAgICAgcmV0dXJuIHJlbW90ZVByb3ZpZGVy
LT5jcmVhdGVSaW5nQnVmZmVyKGRlc2NyaXB0aW9uLCBjYXBhY2l0eSk7CisgICAgfSk7CisgICAg
bG9jYWxQcm92aWRlci5zZXRBdWRpb0NhbGxiYWNrKFtyZW1vdGVQcm92aWRlcl0oYXV0byBzdGFy
dEZyYW1lLCBhdXRvIG51bWJlck9mRnJhbWVzKSB7CisgICAgICAgIHJlbW90ZVByb3ZpZGVyLT5u
ZXdBdWRpb1NhbXBsZXMoc3RhcnRGcmFtZSwgbnVtYmVyT2ZGcmFtZXMpOworICAgIH0pOworCisg
ICAgcmV0dXJuIHJlbW90ZVByb3ZpZGVyOworfQorCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
UHJveHk6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eShXZWJDb3JlOjpNZWRpYVBsYXll
cklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9u
KQorICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2Nvbm5lY3Rpb24oV1RG
TW92ZShjb25uZWN0aW9uKSkKK3sKK30KKworUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5
Ojp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5KCkgPSBkZWZhdWx0OworCitVbmlxdWVS
ZWY8Q0FSaW5nQnVmZmVyPiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZVJp
bmdCdWZmZXIoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6
ZV90IGNhcGFjaXR5KQoreworICAgIG1fcmluZ0J1ZmZlckRlc2NyaXB0aW9uID0gZGVzY3JpcHRp
b247CisgICAgbV9yaW5nQnVmZmVyQ2FwYWNpdHkgPSBjYXBhY2l0eTsKKyAgICBhdXRvIHJpbmdC
dWZmZXIgPSBtYWtlVW5pcXVlUmVmPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4o
dGhpcykpKTsKKyAgICByaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgY2FwYWNpdHkp
OworICAgIHJldHVybiByaW5nQnVmZmVyOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJQcm94eTo6bmV3QXVkaW9TYW1wbGVzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90
IG51bWJlck9mRnJhbWVzKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZSB7IG1f
aWRlbnRpZmllciwgc3RhcnRGcmFtZSwgbnVtYmVyT2ZGcmFtZXMgfSwgMCk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1v
cnkqIG1lbW9yeSkKK3sKKyAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgaWYg
KG1lbW9yeSkKKyAgICAgICAgbWVtb3J5LT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1v
cnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKworICAgIC8vIEZJWE1FOiBTZW5kIHRoZSBhY3R1
YWwgZGF0YSBzaXplIHdpdGggSVBDSGFuZGxlLgorI2lmIE9TKERBUldJTikgfHwgT1MoV0lORE9X
UykKKyAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxzZQorICAgIHVp
bnQ2NF90IGRhdGFTaXplID0gMDsKKyNlbmRpZgorICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OkF1ZGlvU3RvcmFnZUNoYW5n
ZWQgeyBtX2lkZW50aWZpZXIsIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5k
bGUpLCAgZGF0YVNpemUgfSwgbV9yaW5nQnVmZmVyRGVzY3JpcHRpb24sIG1fcmluZ0J1ZmZlckNh
cGFjaXR5IH0sIDApOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0Ep
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NkYWUxNWQ3ZDVlOWE3
ZDU0MDBjYTJlZjZmOWY4NDNiODAxY2NlYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuaApAQCAt
MCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhUGxheWVySWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzsKK2NsYXNzIENBUmluZ0J1ZmZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk+CisgICAgLCBwdWJsaWMg
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudAorICAgICwgcHVibGljIFdlYkNvcmU6OkF1
ZGlvU291cmNlUHJvdmlkZXJDbGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlclByb3h5PiBjcmVhdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVu
dGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQyYpOworICAgIH5SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkoKTsKKwor
ICAgIFVuaXF1ZVJlZjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IGNyZWF0ZVJpbmdCdWZmZXIoY29u
c3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lk
IG5ld0F1ZGlvU2FtcGxlcyh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7
CisKK3ByaXZhdGU6CisgICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5KFdlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisKKyAgICAv
LyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdl
ZChTaGFyZWRNZW1vcnkqKSBmaW5hbDsKKworICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQKKyAgICB2b2lkIHNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc2Ft
cGxlUmF0ZSkgZmluYWwgeyB9CisKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIg
bV9pZGVudGlmaWVyOworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKwor
ICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX3JpbmdCdWZmZXJEZXNjcmlw
dGlvbjsKKyAgICBzaXplX3QgbV9yaW5nQnVmZmVyQ2FwYWNpdHkgeyAwIH07Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5B
QkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXgg
Y2M3Y2IxMjI2ZDg1NDI1YjAzNGZlZGVjNjU5MDI5YWE4OTI0YWMxOC4uMmFjNWIyNjM0ZmEwMGVl
ZjI0ZWNiNTg5MjUyMzczM2Q1NmE3OGM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRl
ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHku
aCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVM
ZWdhY3lDRE1GYWN0b3J5UHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNzaW9u
UHJveHkuaCIKQEAgLTU5LDYgKzYwLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXli
YWNrVGFyZ2V0TW9jay5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
IDxXZWJDb3JlL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg+CisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtODIsNiArODcsNyBA
QCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp+UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSgpCiB7CiAg
ICAgaWYgKG1fcGVyZm9ybVRhc2tBdE1lZGlhVGltZUNvbXBsZXRpb25IYW5kbGVyKQogICAgICAg
ICBtX3BlcmZvcm1UYXNrQXRNZWRpYVRpbWVDb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQp
OworICAgIHNldFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIoZmFsc2UpOwogfQogCiB2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRhdGUoKQpAQCAtODc4LDYgKzg4NCwy
OCBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OndvdWxkVGFpbnRPcmlnaW4oc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YQogICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcGxh
eWVyLT53b3VsZFRhaW50T3JpZ2luKG9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSkpOwogfQog
Cit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmNyZWF0ZUF1ZGlvU291cmNlUHJvdmlkZXIo
KQoreworI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICgh
bV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIHByb3ZpZGVyID0gbV9wbGF5
ZXItPmF1ZGlvU291cmNlUHJvdmlkZXIoKTsKKyAgICBpZiAoIXByb3ZpZGVyIHx8ICFpczxBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4ocHJvdmlkZXIpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIgPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
UHJveHk6OmNyZWF0ZShtX2lkLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLmNvcHlSZWYoKSwgZG93
bmNhc3Q8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+KCpwcm92aWRlcikpOworI2VuZGlmCit9
CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0U2hvdWxkRW5hYmxlQXVkaW9Tb3Vy
Y2VQcm92aWRlcihib29sIHNob3VsZEVuYWJsZSkKK3sKKyNpZiBFTkFCTEUoV0VCX0FVRElPKSAm
JiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoYXV0byogcHJvdmlkZXIgPSBtX3BsYXllci0+YXVk
aW9Tb3VyY2VQcm92aWRlcigpKQorICAgICAgICBwcm92aWRlci0+c2V0Q2xpZW50KHNob3VsZEVu
YWJsZSA/IG1fcmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5nZXQoKSA6IG51bGxwdHIpOworI2Vu
ZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggOGUxZjI1ZTVjODQ2MTRmNDJjZmI1ZTBjOTMwNDRl
NWUzMjkxMmI1YS4uZDk0ZDQ1OWQ5ZDhkNDJhZDY3MDM0M2JhNDhkZjg4MTg5NWI1OTc1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oCkBAIC01Miw2ICs1MiwxMCBAQAogI2luY2x1ZGUgIlJlbW90ZUNETUluc3Rh
bmNlUHJveHkuaCIKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNz
IE1hY2hTZW5kUmlnaHQ7CiB9CkBAIC02NSw2ICs2OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiB1c2luZyBMYXllckhvc3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKIGNsYXNzIExheWVySG9z
dGluZ0NvbnRleHQ7CitjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk7CiBjbGFz
cyBSZW1vdGVBdWRpb1RyYWNrUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eTsKIGNsYXNzIFJlbW90ZVRleHRUcmFja1Byb3h5OwpAQCAtMjY3LDYgKzI3Miw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzZW5kQ2FjaGVkU3RhdGUoKTsKICAgICB2b2lkIHRpbWVyRmlyZWQo
KTsKIAorICAgIHZvaWQgY3JlYXRlQXVkaW9Tb3VyY2VQcm92aWRlcigpOworICAgIHZvaWQgc2V0
U2hvdWxkRW5hYmxlQXVkaW9Tb3VyY2VQcm92aWRlcihib29sKTsKKwogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7
IHJldHVybiBtX2xvZ2dlcjsgfQogICAgIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRp
ZmllcigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fY29uZmlndXJh
dGlvbi5sb2dJZGVudGlmaWVyKTsgfQpAQCAtMzAzLDYgKzMxMSwxMCBAQCBwcml2YXRlOgogICAg
IFJlbW90ZUxlZ2FjeUNETVNlc3Npb25JZGVudGlmaWVyIG1fbGVnYWN5U2Vzc2lvbjsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgUmVmUHRy
PFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eT4gbV9yZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyOworI2VuZGlmCisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dn
ZXImIG1fbG9nZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IDU5YTBhY2FhYTFmNGNjNjEzMDc1NTI2ZjA5MzU1MTk0ODJlZjFhOTUuLjEwMzQ1MTQ0NTM4
NWI3YWY2NDhiZjg0OGQzNzg5Zjg5Mzg0N2Q2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0xMTYsNiArMTE2LDExIEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxh
eWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgRXJyb3JMb2coKSAtPiAoU3RyaW5nIGVycm9y
TG9nKSBTeW5jaHJvbm91cwogICAgIEFjY2Vzc0xvZygpIC0+IChTdHJpbmcgYWNjZXNzTG9nKSBT
eW5jaHJvbm91cwogI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIENyZWF0ZUF1
ZGlvU291cmNlUHJvdmlkZXIoKQorICAgIFNldFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlk
ZXIoYm9vbCBzaG91bGRFbmFibGUpCisjZW5kaWYKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKaW5kZXggMDMxZTNkMmFlODg4NzEzNTE4NjlhOWU5ZThhYmI5ZjYzM2YzOGRiOC4uOGZm
ZmMzNWU3OTY4MGFkMmY1NmM1YTg4YzdkNmRhZjE1ZGRhZjgxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dApAQCAtNTgsNiArNTgsNyBAQCBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Jl
c29sdmVyQ29jb2EuY3BwCiBHUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9H
UFVTZXJ2aWNlRW50cnlQb2ludC5tbQogR1BVUHJvY2Vzcy9pb3MvR1BVUHJvY2Vzc0lPUy5tbQog
R1BVUHJvY2Vzcy9tYWMvR1BVUHJvY2Vzc01hYy5tbQorR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90
ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQogR1BVUHJvY2Vzcy9tZWRpYS9pb3MvUmVtb3RlTWVk
aWFTZXNzaW9uSGVscGVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5tbQpAQCAtNTY1LDYgKzU2Niw3IEBAIFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2Nv
YS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQogCiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQu
Y3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcAor
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3Bw
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2Nv
YS5tbQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1t
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcApA
QCAtNjY3LDYgKzY2OSw3IEBAIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAK
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlh
UmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDBlZGExNWEzNWZkYmE1YzcyMjQyYzEzODU4ZjczOGM0YWM2ZjhhMGUuLjVkMzJiN2Zm
MDM5MThkNWJkOTlkYWQ2YjVkZjM5ZWI2YWE3ODcxM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzQyNCw2ICszNDI0LDExIEBACiAJ
CTQxMjg3RDREMjI1QzE2MUYwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNvY2tldFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEyRkY5MTYyNTM3M0Y5RDAwMURGMDM2IC8qIFJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MkZGOTE3MjUzNzNGOUQwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MjMyNTM4MkJEMzAwMURGMDM2
IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MjQyNTM4MkJENTAwMURGMDM2
IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTI1MjUzODJCRDUwMDFERjAzNiAvKiBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MjYyNTM4MkQ4NTAwMURGMDM2IC8qIFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTJGRjkyNzI1MzgyRDg1MDAxREYwMzYgLyogUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTMwNzU5QTFERTg0RkIwMDAzOUVDNjkgLyogTmV0d29ya1JUQ01vbml0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1JUQ01vbml0
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwNzU5QjFERTg0RkIwMDAz
OUVDNjkgLyogTmV0d29ya1JUQ01vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTmV0d29ya1JUQ01vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEzMDc1OUMxREU4NEZCMDAwMzlFQzY5IC8qIE5ldHdvcmtSVENNb25pdG9yLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5ldHdvcmtSVENNb25pdG9yLm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDUzMiw3ICs0NTM3LDcgQEAKIAkJOUIxMjI5
RDAyM0ZGMkE1RTAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNDc5MDhDMjUzMTREODMwMEVDMTFBQiAvKiBNZXNz
YWdlQXJndW1lbnREZXNjcmlwdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZUFyZ3VtZW50
RGVzY3JpcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNDc5MDhFMjUz
MTUxQ0MwMEVDMTFBQiAvKiBKU0lQQ0JpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJUENCaW5k
aW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlCNDc5MDkwMjUzMTU2MzIwMEVD
MTFBQiAvKiBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcDsgcGF0
aCA9IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTlCNDc5MDkwMjUzMTU2MzIwMEVDMTFBQiAvKiBNZXNzYWdlQXJndW1lbnREZXNj
cmlwdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVzc2Fn
ZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUI1NDk5QUMyMzYyQTZGNjAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNTQ5OUFFMjM2MkE3QTcwMERGOEJBNSAv
KiBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5QjU0OTlCMDIzNjJBN0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxh
dGlvbkV4Y2x1c2lvblJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkV4
Y2x1c2lvblJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1NjgsNiArNTU3
Myw5IEBACiAJCQkJQ0RCQjQ5RkIyNDBEOTc0QTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
bklkZW50aWZpZXIuaCAqLywKIAkJCQk0MTJGRjkxNjI1MzczRjlEMDAxREYwMzYgLyogUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlci5jcHAgKi8sCiAJCQkJNDEyRkY5MTcyNTM3M0Y5RDAwMURGMDM2
IC8qIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaCAqLywKKwkJCQk0MTJGRjkyMzI1MzgyQkQz
MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwICovLAorCQkJ
CTQxMkZGOTI0MjUzODJCRDUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFu
YWdlci5oICovLAorCQkJCTQxMkZGOTI1MjUzODJCRDUwMDFERjAzNiAvKiBSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREFDMjBCRjIzRkMyRjc1
MDAyMURFRTMgLyogUmVtb3RlQ0RNLmNwcCAqLywKIAkJCQlDREFDMjBCQTIzRkMyRjc0MDAyMURF
RTMgLyogUmVtb3RlQ0RNLmggKi8sCiAJCQkJQ0RBQzIwQjgyM0ZDMkY3MzAwMjFERUUzIC8qIFJl
bW90ZUNETUNvbmZpZ3VyYXRpb24uaCAqLywKQEAgLTU2MjMsNiArNTYzMSw4IEBACiAJCQkJQ0RC
QjQ5RjgyNDBEOEQ1MzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2Vz
LmluICovLAogCQkJCUNEQkI0OUZBMjQwRDk2M0QwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIuY3BwICovLAogCQkJCUNEQkI0OUY5MjQwRDk2M0MwMDE3QzI5MiAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCAqLywKKwkJCQk0MTJGRjkyNjI1MzgyRDg1
MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmNwcCAqLywKKwkJCQk0
MTJGRjkyNzI1MzgyRDg1MDAxREYwMzYgLyogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5
LmggKi8sCiAJCQkJMDcxQkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQ
cm94eS5jcHAgKi8sCiAJCQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlv
VHJhY2tQcm94eS5oICovLAogCQkJCUNEQUMyMDc5MjNGQjFFMjEwMDIxREVFMyAvKiBSZW1vdGVD
RE1GYWN0b3J5UHJveHkuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCAwMWFmZmI1ZmM1ZWFmYTE2Yzhi
NmYxZDgyODVjY2M0OTNkYjc5YTZmLi5kZDhmMWJlZmE1ODc2Y2FkNTk3MDk3OWJmMTVlOGExNTdj
OTRjNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJU
Q0NvZGVjcy5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZUNETUZhY3Rvcnku
aCIKICNpbmNsdWRlICJSZW1vdGVDRE1Qcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNE
TUZhY3RvcnkuaCIKQEAgLTEwMSw2ICsxMDIsMTUgQEAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
JiBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6bWVkaWFQbGF5ZXJNYW5hZ2VyKCkKICAgICByZXR1cm4g
KldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyPigpOwogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJfQVVESU8pCitS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlciYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmF1
ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fYXVkaW9Tb3VyY2VQcm92
aWRlck1hbmFnZXIpCisgICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIgPSBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6Y3JlYXRlKCk7CisgICAgcmV0dXJuICptX2F1
ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKQogUmVtb3RlQ0RNRmFjdG9yeSYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmNkbUZh
Y3RvcnkoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbi5oCmluZGV4IDM4MjA5NDI1OWZhY2VkMmVlZTQyZTg1YzVjZjk0N2ZkMjIx
ODhiNzAuLmE4MWFjNjdmYzRkZGQ3OTQyNWNmMjQ4ODliMWNmOGRmMWM1MTZkN2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgK
QEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgRGF0YVJlZmVyZW5jZTsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKK2NsYXNzIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOwogY2xhc3MgUmVt
b3RlQ0RNRmFjdG9yeTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjsKIGNsYXNzIFJl
bW90ZUxlZ2FjeUNETUZhY3Rvcnk7CkBAIC02Niw2ICs2NywxMCBAQCBwdWJsaWM6CiAKICAgICBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1lZGlhUGxheWVyTWFuYWdlcigpOwogCisjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJfQVVESU8pCisgICAgUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXImIGF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyKCk7CisjZW5kaWYKKwog
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgUmVtb3RlQ0RNRmFjdG9yeSYgY2RtRmFj
dG9yeSgpOwogI2VuZGlmCkBAIC0xMDAsNiArMTA1LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyOwogI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJfQVVESU8p
CisgICAgUmVmUHRyPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyPiBtX2F1ZGlvU291
cmNlUHJvdmlkZXJNYW5hZ2VyOworI2VuZGlmCiAjaWYgRU5BQkxFKFZQOSkKICAgICBib29sIG1f
ZW5hYmxlVlA5RGVjb2RlciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZVZQOVNXRGVjb2Rl
ciB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcAppbmRleCBhOTkwY2U3
ZDU1OWU5ODQ5YmY5ZWNmNzA5Y2YzZGIzMjJkYzM3ZmI5Li5kY2JkNGY4YWZhZmUxMDYwYTYxYjAz
MDUzMWUxMmM3NGQzN2VmZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKQEAg
LTI4LDYgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQl9B
VURJTykgJiYgUExBVEZPUk0oQ09DT0EpCiAKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdl
cy5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBl
eHRlcm4gV1RGTG9nQ2hhbm5lbCBMb2dNZWRpYTsKQEAgLTM5LDcgKzQyLDE2IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcj4gUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlcjo6Y3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXVEY6OkxvZ2dlckhlbHBlciYgaGVscGVyKQogewotICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoaWRlbnRpZmllciwgaGVscGVy
KSk7CisgICAgYXV0byBwcm92aWRlciA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlcihpZGVudGlmaWVyLCBoZWxwZXIpKTsKKworICAgIGF1dG8mIGdwdVByb2Nlc3NDb25u
ZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKTsKKyAgICBncHVQcm9jZXNzQ29ubmVjdGlvbi5hdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdl
cigpLmFkZFByb3ZpZGVyKHByb3ZpZGVyLmNvcHlSZWYoKSk7CisKKyNpZiBFTkFCTEUoV0VCX0FV
RElPKQorICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpDcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyIHsgfSwg
cHJvdmlkZXItPmlkZW50aWZpZXIoKSk7CisjZW5kaWYKKworICAgIHJldHVybiBwcm92aWRlcjsK
IH0KIAogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
cihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxwZXImIGhl
bHBlcikKQEAgLTQ5LDYgKzYxLDcgQEAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnQKICAgICAsIG1f
bG9nSWRlbnRpZmllcihoZWxwZXIubG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiB7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBVTlVTRURfUEFSQU0oaGVscGVyKTsKIH0KIApAQCAt
NTgsMTEgKzcxLDEzIEBAIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6On5SZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyKCkKIAogdm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpjbG9zZSgp
CiB7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmF1ZGlvU291cmNlUHJvdmlkZXJNYW5h
Z2VyKCkucmVtb3ZlUHJvdmlkZXIobV9pZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyOjpoYXNOZXdDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCop
Cit2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6Omhhc05ld0NsaWVudChBdWRpb1NvdXJj
ZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAgLy8gRklYTUU6IHJlZ2lzdGVyL3VucmVn
aXN0ZXIgYXMgbmVlZGVkLgorICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVBy
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OlNldFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIgeyAhIWNsaWVu
dCB9LCBtX2lkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6
OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzaXplKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGY0
NWE2ZDViYjRkYjQ2MDk4ODAxMjQzYmI1ZTkzMTdiMWUzZTJiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuaCIK
KworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2Uu
aCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK25hbWVz
cGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXIoKQorICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwg
V29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkpCit7Cit9CisKK1JlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKQor
eworICAgIHNldENvbm5lY3Rpb24obnVsbHB0cik7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXI6OnNldENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKQoreworICAgIGlmIChtX2Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbikKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1v
dmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworCisgICAgbV9jb25uZWN0aW9uID0g
V1RGTW92ZShjb25uZWN0aW9uKTsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1f
Y29ubmVjdGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKK30K
Kwordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6YWRkUHJvdmlkZXIoUmVm
PFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIpCit7CisgICAgQVNTRVJUKFdU
Rjo6aXNNYWluUnVuTG9vcCgpKTsKKyAgICBzZXRDb25uZWN0aW9uKCZXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7CisKKyAg
ICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBwcm92aWRlciA9IFdURk1vdmUocHJvdmlkZXIpXSgp
IG11dGFibGUgeworICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBwcm92aWRlci0+aWRlbnRpZmll
cigpOworCisgICAgICAgIEFTU0VSVCghbV9wcm92aWRlcnMuY29udGFpbnMoaWRlbnRpZmllcikp
OworICAgICAgICBtX3Byb3ZpZGVycy5hZGQoaWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZW1vdGVB
dWRpbz4oV1RGTW92ZShwcm92aWRlcikpKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6cmVtb3ZlUHJvdmlkZXIoTWVkaWFQbGF5ZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKFdURjo6aXNNYWluUnVuTG9vcCgpKTsKKwor
ICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGlkZW50aWZpZXJdIHsKKyAgICAgICAgQVNTRVJU
KG1fcHJvdmlkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV9wcm92aWRlcnMu
cmVtb3ZlKGlkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXJNYW5hZ2VyOjpkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxs
YmFjaykKK3sKKyAgICBtX3F1ZXVlLT5kaXNwYXRjaChXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisK
K3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OmF1ZGlvU3RvcmFnZUNoYW5n
ZWQoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIEFTU0VS
VCghV1RGOjppc01haW5SdW5Mb29wKCkpOworCisgICAgYXV0byBpdGVyYXRvciA9IG1fcHJvdmlk
ZXJzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fcHJvdmlkZXJzLmVu
ZCgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVW5hYmxlIHRvIGZpbmQg
cHJvdmlkZXIgJWxsdSBmb3Igc3RvcmFnZUNoYW5nZWQiLCBpZGVudGlmaWVyLnRvVUludDY0KCkp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGl0ZXJhdG9yLT52YWx1ZS0+c2V0U3RvcmFn
ZShpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit2
b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFi
bGUoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IHN0YXJ0RnJhbWUs
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIEFTU0VSVCghV1RGOjppc01haW5SdW5M
b29wKCkpOworCisgICAgYXV0byBpdGVyYXRvciA9IG1fcHJvdmlkZXJzLmZpbmQoaWRlbnRpZmll
cik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fcHJvdmlkZXJzLmVuZCgpKSB7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVW5hYmxlIHRvIGZpbmQgcHJvdmlkZXIgJWxsdSBmb3Ig
YXVkaW9TYW1wbGVzQXZhaWxhYmxlIiwgaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpdGVyYXRvci0+dmFsdWUtPmF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShzdGFydEZyYW1lLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK1JlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVmPFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIpCisgICAgOiBtX3Byb3ZpZGVyKFdURk1vdmUocHJvdmlk
ZXIpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5p
cXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkpCit7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdl
KGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
KQoreworICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFy
ZWRNZW1vcnk+IG1lbW9yeTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBt
ZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRighbWVtb3J5LCBNZWRp
YSwgIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9yeSBmb3IgYXVkaW8gcHJvdmlkZXIgJWxs
dSIsIG1fcHJvdmlkZXItPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICB9CisKKyAgICBh
dXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3Jp
bmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAgICAgbV9yaW5n
QnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2Up
OworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkp
OworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVmZmVyLT5hbGxv
Y2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVu
aXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9
CisKK3ZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjph
dWRpb1NhbXBsZXNBdmFpbGFibGUodWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMpCit7CisgICAgaWYgKCFtX2J1ZmZlcikgeworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYSwgImJ1ZmZlciBmb3IgYXVkaW8gcHJvdmlkZXIgJWxsdSBpcyBudWxsIiwgbV9w
cm92aWRlci0+aWRlbnRpZmllcigpLnRvVUludDY0KCkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKCFXZWJBdWRpb0J1ZmZlckxpc3Q6OmlzU3VwcG9ydGVkRGVzY3JpcHRpb24o
bV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhLCAiVW5hYmxlIHRvIHN1cHBvcnQgZGVzY3JpcHRpb24gd2l0aCBnaXZlbiBudW1i
ZXIgb2YgZnJhbWVzIGZvciBhdWRpbyBwcm92aWRlciAlbGx1IiwgbV9wcm92aWRlci0+aWRlbnRp
ZmllcigpLnRvVUludDY0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBl
bmRGcmFtZSA9IHN0YXJ0RnJhbWUgKyBudW1iZXJPZkZyYW1lczsKKyAgICBtX2J1ZmZlci0+c2V0
U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworCisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJy
ZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1fcmluZ0J1ZmZlci0+
ZmV0Y2gobV9idWZmZXItPmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUpOworCisg
ICAgbV9wcm92aWRlci0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKCptX2J1ZmZlciwgbV9kZXNjcmlw
dGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NP
QSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1OWUxYjA2YjQ0N2U1ZDgwY2E2MTA1MmM2YzdhMzJjNGJh
MTQyZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmgKQEAgLTAsMCArMSw4NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmll
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOworCitjbGFzcyBS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlciA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246
OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKSk7IH0KKyAgICB+
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKTsKKworICAgIHZvaWQgYWRkUHJvdmlk
ZXIoUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+JiYpOworICAgIHZvaWQgcmVtb3ZlUHJv
dmlkZXIoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKK3ByaXZhdGU6
CisgICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIoKTsKKworICAgIC8vIElQQzo6
Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaXNwYXRjaFRvVGhy
ZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdlcworICAgIHZv
aWQgYXVkaW9TdG9yYWdlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIGNv
bnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworICAgIHZvaWQgYXVkaW9T
YW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgdWludDY0X3Qg
c3RhcnRGcmFtZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworCisgICAgdm9pZCBzZXRDb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbiopOworCisgICAgY2xhc3MgUmVtb3RlQXVkaW8geworICAg
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBwdWJsaWM6CisgICAgICAgIGV4cGxp
Y2l0IFJlbW90ZUF1ZGlvKFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyPiYmKTsKKworICAg
ICAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cyk7CisgICAgICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IHN0YXJ0RnJh
bWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFJl
ZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyPiBtX3Byb3ZpZGVyOworICAgICAgICBXZWJDb3Jl
OjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2J1ZmZlcjsKKyAg
ICB9OworCisgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKKyAgICBSZWZQdHI8SVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisKKyAgICAvLyBiYWNrZ3JvdW5kIHRocmVhZCBtZW1iZXIK
KyAgICBIYXNoTWFwPFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVf
cHRyPFJlbW90ZUF1ZGlvPj4gbV9wcm92aWRlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40YTk5MWMyZWIwYWJjMGVkZDE1OTdjM2MxYjk3NDdiNGY3MmNlZTI4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyIE5vdFJlZkNv
dW50ZWQgeworICAgIEF1ZGlvU3RvcmFnZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVu
dGlmaWVyIGlkLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUs
IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3Qg
bnVtYmVyT2ZGcmFtZXMpCisgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlh
UGxheWVySWRlbnRpZmllciBpZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKaW5kZXggMTc1
N2E2YTliMWIxMjUzMDEzNWFiOGY3N2IxZWE1OWY2YjAyZWRlOC4uNWIzZTcwMGUwOTU4ZTJmYmQ1
NjkxNzgwNDI3MWRlZGM5NGZjNWU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIuaCIKIAorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgpA
QCAtMzMsNyArMzQsNiBAQAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyKCkK
</data>
<flag name="commit-queue"
          id="427790"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>