<?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>206286</bug_id>
          
          <creation_ts>2020-01-15 05:42:30 -0800</creation_ts>
          <short_desc>Add support for MediaStream video track rendering in GPUProcess</short_desc>
          <delta_ts>2020-01-20 02:39:07 -0800</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 Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>206066</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jlewis3</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1606889</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-15 05:42:30 -0800</bug_when>
    <thetext>Add support for MediaStream video track rendering in GPUProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606892</commentid>
    <comment_count>1</comment_count>
      <attachid>387783</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-15 05:55:02 -0800</bug_when>
    <thetext>Created attachment 387783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606902</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-15 06:29:37 -0800</bug_when>
    <thetext>Rendering does not work 100%, video frame is only updated when a full refresh is needed, like a window resize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606943</commentid>
    <comment_count>3</comment_count>
      <attachid>387783</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-15 08:59:18 -0800</bug_when>
    <thetext>Comment on attachment 387783
Patch

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

&gt; Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:138
&gt; +    // This is only an approximation, maybe we should use a clock as well.
&gt; +    return m_mediaTime;

I think we will need to use a clock, or time will &quot;stop&quot; between samples. Maybe use the wall clock to calculate the delta between samples?

&gt; Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:1
&gt; +# Copyright (C) 2019 Apple Inc. All rights reserved.

2020

&gt; Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.messages.in:1
&gt; +# Copyright (C) 2019 Apple Inc. All rights reserved.

Ditto

&gt; Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.messages.in:1
&gt; +# Copyright (C) 2019 Apple Inc. All rights reserved.

Ditto

&gt; Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayerIdentifier.h:2
&gt; + * Copyright (C) 2019 Apple Inc. All rights reserved.

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607384</commentid>
    <comment_count>4</comment_count>
      <attachid>387900</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-16 02:28:29 -0800</bug_when>
    <thetext>Created attachment 387900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607394</commentid>
    <comment_count>5</comment_count>
      <attachid>387901</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-16 02:54:31 -0800</bug_when>
    <thetext>Created attachment 387901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607421</commentid>
    <comment_count>6</comment_count>
      <attachid>387910</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-16 05:01:11 -0800</bug_when>
    <thetext>Created attachment 387910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607454</commentid>
    <comment_count>7</comment_count>
      <attachid>387910</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-16 07:03:09 -0800</bug_when>
    <thetext>Comment on attachment 387910
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:283
&gt; +    CFArrayRef attachmentsArray = CMSampleBufferGetSampleAttachmentsArray(sample.platformSample().sample.cmSampleBuffer, true);
&gt; +    for (CFIndex i = 0; i &lt; CFArrayGetCount(attachmentsArray); ++i) {
&gt; +        CFMutableDictionaryRef attachments = checked_cf_cast&lt;CFMutableDictionaryRef&gt;(CFArrayGetValueAtIndex(attachmentsArray, i));
&gt; +        CFDictionarySetValue(attachments, kCMSampleAttachmentKey_DisplayImmediately, kCFBooleanTrue);
&gt; +    }

You mentioned this hack in the ChangeLog, but it should have a FIXME here because we&apos;re going to need a remote display layer for MSE and it will need to honor timestamps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607455</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-16 07:12:23 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #7)
&gt; Comment on attachment 387910 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=387910&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:283
&gt; &gt; +    CFArrayRef attachmentsArray = CMSampleBufferGetSampleAttachmentsArray(sample.platformSample().sample.cmSampleBuffer, true);
&gt; &gt; +    for (CFIndex i = 0; i &lt; CFArrayGetCount(attachmentsArray); ++i) {
&gt; &gt; +        CFMutableDictionaryRef attachments = checked_cf_cast&lt;CFMutableDictionaryRef&gt;(CFArrayGetValueAtIndex(attachmentsArray, i));
&gt; &gt; +        CFDictionarySetValue(attachments, kCMSampleAttachmentKey_DisplayImmediately, kCFBooleanTrue);
&gt; &gt; +    }
&gt; 
&gt; You mentioned this hack in the ChangeLog, but it should have a FIXME here
&gt; because we&apos;re going to need a remote display layer for MSE and it will need
&gt; to honor timestamps.

OK, let&apos;s move it out of LocalSampleBufferDisplayLayer.mm for easier reuse.

I don&apos;t think this will apply to MSE though since presentation timing is key there.
MSE will probably not use LocalSampleBufferDisplayLayer.
In WebRTC, we are missing this information and are relying on attachment instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607487</commentid>
    <comment_count>9</comment_count>
      <attachid>387921</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-16 08:15:48 -0800</bug_when>
    <thetext>Created attachment 387921
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607518</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-16 10:08:26 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 387921:

editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607519</commentid>
    <comment_count>11</comment_count>
      <attachid>387921</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-16 10:09:15 -0800</bug_when>
    <thetext>Comment on attachment 387921
Patch for landing

Clearing flags on attachment: 387921

Committed r254688: &lt;https://trac.webkit.org/changeset/254688&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607520</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-16 10:09:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607521</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-16 10:10:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/58647949&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608299</commentid>
    <comment_count>14</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2020-01-17 16:40:23 -0800</bug_when>
    <thetext>Reverted r254688 for reason:

This caused internal test crashes.

Committed r254778: &lt;https://trac.webkit.org/changeset/254778&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608652</commentid>
    <comment_count>15</comment_count>
      <attachid>388216</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-20 00:50:49 -0800</bug_when>
    <thetext>Created attachment 388216
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608686</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-20 02:38:13 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 388216:

editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608687</commentid>
    <comment_count>17</comment_count>
      <attachid>388216</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-20 02:39:05 -0800</bug_when>
    <thetext>Comment on attachment 388216
Patch for landing

Clearing flags on attachment: 388216

Committed r254817: &lt;https://trac.webkit.org/changeset/254817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608688</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-20 02:39:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387783</attachid>
            <date>2020-01-15 05:55:02 -0800</date>
            <delta_ts>2020-01-16 02:28:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206286-20200115145501.patch</filename>
            <type>text/plain</type>
            <size>81742</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlhMjNkYWU2ZTU0Mjgx
NDVkY2E2ZDcxMzhlNzBhMmE0NDYxODY3OS4uODM2ZThkYjkzY2Y0MmI2NjcyNGUwZGJkZmNhNjVh
ODBjYzk5MjQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTAxLTE1ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
TWVkaWFTdHJlYW0gdmlkZW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjI4NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHdheSBmb3IgV2Vi
S2l0IGxheWVyIHRvIGNyZWF0ZSBpdHMgb3duIHNwZWNpZmljIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci4KKyAgICAgICAgTWFudWFsbHkgdGVzdGVkLgorCisgICAgICAgICogU291cmNlc0NvY29h
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpzZXRDcmVhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjplbnN1cmVMYXllcnMpOgorCiAyMDIwLTAxLTE1ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgYW4gYWJzdHJhY3QgU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQxOWExZDg5YTY0ZTE2NzEzNGFjOWQzNWQ4ZGEyMGEzMWIz
MDQ0YTAuLjlmMzcyYTA5ZjhlNzM0ZDAyOWM3MmJiZWMwNzU2MzBhYjEwMWZmMjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsOTIgQEAKKzIwMjAtMDEtMTUgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRpYVN0cmVhbSB2aWRlbyB0cmFj
ayByZW5kZXJpbmcgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA2Mjg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFdlYktpdCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIgYnkgc2VuZGluZyBJUEMgdG8gR1BVUHJvY2VzcyBhbmQgbGV0IEdQVVByb2Nlc3MgZG8gdGhl
IGVucXVldWluZy9yZW5kZXJpbmcgb2Ygc2FtcGxlcy4KKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
KToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpk
aWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+UmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpjb250ZXh0SUQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZURpc3BsYXlNb2RlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVBZmZpbmVUcmFu
c2Zvcm0pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2hBbmRSZW1vdmVJbWFnZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZW5xdWV1ZVNhbXBsZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y2xlYXJFbnF1ZXVl
ZFNhbXBsZXMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0
dXNEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OnNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckJvdW5kc0RpZENoYW5nZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c3RyZWFtVGltZSBjb25z
dCk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZUxh
eWVyTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXI6OmNyZWF0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6cmVsZWFzZUxheWVyKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg6IEFk
ZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1JlY3Q+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPENHUmVjdD46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1Np
emU+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNv
ZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUpOgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmRlY29kZSk6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVBy
b2Nlc3NDb25uZWN0aW9uOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAg
ICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dXBkYXRlUHJlZmVyZW5jZXMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6flNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgIChXZWJLaXQ6
OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZGlkRmFpbCBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlRGlzcGxheU1vZGUpOgorICAgICAg
ICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmJvdW5kcyBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQWZmaW5lVHJhbnNm
b3JtKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVC
b3VuZHNBbmRQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6Zmx1c2gpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OmZsdXNoQW5kUmVtb3ZlSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OmVucXVldWVTYW1wbGUpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OmNsZWFyRW5xdWV1ZWRTYW1wbGVzKToKKyAgICAgICAgKFdlYktpdDo6U2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpyb290TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldERpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmJvdW5kc0NoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcklkZW50aWZpZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmRpZFJlY2Vp
dmVMYXllck1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyOjpjcmVhdGVMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXI6OmFkZExheWVyKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6cmVtb3ZlTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoK
KwogMjAyMC0wMS0xNSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIE1lZGlhU3RyZWFtIGF1ZGlvIHRyYWNrIHJlbmRlcmluZyBpbiBH
UFVQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCA4OTA2ZjU3ZGM5ZDMyNGM5ZjBi
ZDFlZmI4NTBiMjBhOTUyMGUxOTBiLi44ZTJhYWRkMGNmZjdhNjBmMWQzMmZjOGIzYjlhYzdhZjhj
Y2NhMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTIzMCw2ICsyMzAsNyBAQCBwbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zR0xBTkdMRS5jcHAgQG5vLXVuaWZ5CiBwbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcCBAbm8tdW5pZnkK
IHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAgQG5vLXVu
aWZ5CiAKK3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVB
VkZPYmpDSW1wbC5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9B
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIEBuby11bmlmeQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGNjMzVhNTg5MTEzNDExYjE1ODYyMGJmNDAxOTE2ZWZkNzQzZWU5NGQuLjA3YTIxZjRmM2Uy
M2Q4ZTQ3OTE0Y2E4ZjQyMTAyZDQyMjU1Y2UzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcyNzksNiArNzI3OSw3IEBACiAJ
CTNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGRkZGOUFCMTU5RDlCMDYwMDIwQkJENSAvKiBW
aWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMjRGQzgyM0NGMjU0RjAwRkRGOThF
IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTA2MjZBNzIyODBBMjJBMDA2RDFCNTkgLyogSlNBdWRpb05vZGVDdXN0b20uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBdWRpb05vZGVDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA3OTA4QTFGQzNFNEYyMDA2MUIyN0EgLyogQ2xp
ZW50T3JpZ2luLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaWVudE9yaWdp
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA5MzgyODIzNDc3OTlBMDA5NDI4
QkEgLyogSlNBYm9ydENvbnRyb2xsZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNBYm9ydENvbnRyb2xsZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTYzMzEsNiArMTYzMzIsNyBAQAogCQkJCTA3NkYwRDBBMTJCODE5
MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCAqLywKIAkJCQlD
REJFQUVBQjE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCAq
LywKIAkJCQlDREJFQUVBQTE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFW
Rk9iakMubW0gKi8sCisJCQkJNDEwMjRGQzgyM0NGMjU0RjAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5jcHAgKi8sCiAJCQkJNDE0NTk4QkUyM0M4QUFCODAwMkI5Q0M4IC8qIFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oICovLAogCQkJCUNEMzM2RjYzMTdGQTBBNEQwMERERENE
MCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oICovLAogCQkJCTA3MDlENzkwMUFFNTU1N0UwMDRF
NDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2QxMWMyOTZi
YTU2NTYzYTliNTRiZDg4YmUyYTI5ODgyMTRjYmViYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmgiCisKKyNpbmNsdWRlICJMb2NhbFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6TGF5ZXJDcmVhdG9yIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bV9sYXllckNyZWF0
b3IgPSBudWxscHRyOwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldENyZWF0b3Io
TGF5ZXJDcmVhdG9yIGNyZWF0b3IpCit7CisgICAgbV9sYXllckNyZWF0b3IgPSBjcmVhdG9yOwor
fQorCitzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgYm9vbCBoaWRlUm9vdExheWVy
LCBJbnRTaXplIHNpemUpCit7CisgICAgaWYgKG1fbGF5ZXJDcmVhdG9yKQorICAgICAgICByZXR1
cm4gbV9sYXllckNyZWF0b3IoY2xpZW50LCBoaWRlUm9vdExheWVyLCBzaXplKTsKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCisgICAgcmV0dXJuIExvY2Fs
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoY2xpZW50LCBoaWRlUm9vdExheWVyLCBz
aXplKTsKKyNlbHNlCisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmluZGV4IDRmZjU3ZDdjN2Q1
OWE3MWQ1NjdiYzJhYmQ5ZjYxOTJiMmJmYmNjYzAuLmRmN2IzODIyYWJiMmU0NTg3ZTk2YmE4M2U5
NzEwNzYwNmI3YThiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmgKQEAgLTQ2LDcgKzQ2LDEwIEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCBXVEY6
Ok1lZGlhVGltZSBzdHJlYW1UaW1lKCkgY29uc3QgPSAwOwogICAgIH07CiAKLSAgICBleHBsaWNp
dCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoQ2xpZW50Jik7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZShD
bGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUpOworICAgIHVzaW5nIExheWVyQ3Jl
YXRvciA9IHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+ICgqKShDbGll
bnQmLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyB2b2lkIHNldENyZWF0b3IoTGF5ZXJDcmVhdG9yKTsKKwogICAgIHZpcnR1YWwgflNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcigpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgYm9vbCBkaWRG
YWlsKCkgY29uc3QgPSAwOwpAQCAtNjYsNyArNjksMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
UGxhdGZvcm1MYXllciogcm9vdExheWVyKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CisgICAgZXhwbGlj
aXQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKENsaWVudCYpOworCiAgICAgV2Vha1B0cjxDbGll
bnQ+IG1fY2xpZW50OworCitwcml2YXRlOgorICAgIHN0YXRpYyBMYXllckNyZWF0b3IgbV9sYXll
ckNyZWF0b3I7CiB9OwogCiBpbmxpbmUgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIoQ2xpZW50JiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
bW0KaW5kZXggZGY5ZTIwNTdhOGI2OTlkNzJlNjI2MjYwMzA4YTA5Y2VmNTY1MmQ0NS4uZmE5YTA5
ZTlhZWIwNjc0NGMyNmIxN2Q0NjFlY2RkNmU4ODlhMGU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5tbQpAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjplbnN1cmVMYXllcnMoKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRv
IHNpemUgPSBzbmFwcGVkSW50UmVjdChtX3BsYXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKSku
c2l6ZSgpOwotICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID0gTG9jYWxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSgqdGhpcywgaGlkZVJvb3RMYXllcigpLCBzaXplKTsKKyAg
ICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
Y3JlYXRlKCp0aGlzLCBoaWRlUm9vdExheWVyKCksIHNpemUpOwogCiAgICAgaWYgKCFtX3NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcikgewogICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwg
IkNyZWF0aW5nIHRoZSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgZmFpbGVkLiIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDFhMjRiYmZj
MDcyZDI2ZmVjNzE2NTNhOTU5ZmQ3M2IwYTJmNDNkNmIuLjk4MDgxYWE2YjJjYzNiOGM0YTVhZDUy
Zjg5YzhkMjIwZGNiZTIzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKQEAgLTI0LDYgKzI0LDggQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCkBAIC0xMDgsNiArMTEwLDcg
QEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ1JlbW90ZUNvZGVjcy5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMWRjNTQ2
NTI4ZjViYTIyZDczNjUwZTAwNGJhMjgxZWMyMmYyNjIzNS4uOWI2MGQxNTVmOWViM2VkMzZkN2Vj
MTkwYWI3NDFiMjBmMTBkN2ZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xNTEsNiArMTUxLDEyIEBAICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZXNSCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0
UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNl
aXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdl
c1JlcGxpZXMuaApAQCAtMTYwLDYgKzE2Niw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXNSZXBsCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNw
ZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclVJTWVzc2FnZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlN
ZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlY0l0ZW1TaGltUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9TZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYTE5ZDA3OWUwMDNhYThiZjJhMzg1MzFmZDlk
ZWFjNTFhNzY0ZmIyZi4uYzM0YWY1Y2QzYTE3NDdmMjZlYzQ0ODljYWQ4M2ZmMmRiNmM1MjZhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTUwLDkgKzE1MCwxMiBAQCBNRVNTQUdF
X1JFQ0VJVkVSUyA9IFwKICAgICBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlciBcCiAgICAgUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgXAogICAgIFJlbW90ZU9iamVjdFJlZ2lzdHJ5IFwKKyAg
ICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgXAorICAgIFJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIgXAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIFwK
ICAgICBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eSBcCiAgICAgUmVtb3RlV2ViSW5zcGVjdG9yVUkg
XAorICAgIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBcCiAgICAgU2VjSXRlbVNoaW1Qcm94eSBc
CiAgICAgU2VydmljZVdvcmtlckZldGNoVGFzayBcCiAgICAgU21hcnRNYWduaWZpY2F0aW9uQ29u
dHJvbGxlciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNDZiMTM0OTg4OWU0ZGY1MDgwYzNiYjFhMTdhODYx
ZGM0ZTRiNzRiYi4uYzA5NDhkMDk5NWI5NmNiNTNlNTNmNGE3YWNlM2YzODZjYjUxMzhlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcApAQCAtNDksNiArNDksOSBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3Jk
ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmgiCkBAIC0xNjIsNiArMTY1LDE0IEBAIFJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlciYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9U
cmFjCiAKICAgICByZXR1cm4gKm1fYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcjsKIH0KKworUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIpCisgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlciA9IG1ha2VVbmlxdWU8UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlcj4obV9jb25uZWN0aW9uLmNvcHlSZWYoKSk7CisKKyAgICByZXR1cm4gKm1fc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKK30KICNlbmRpZgogI2VuZGlmCiAKQEAgLTIw
OSw2ICsyMjAsMTQgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEkKICAgICAgICAgYXVkaW9UcmFj
a1JlbmRlcmVyTWFuYWdlcigpLmRpZFJlY2VpdmVSZW5kZXJlck1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgaWYgKGRlY29kZXIubWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgc2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlcigpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29u
bmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBzYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZUxheWVyTWVzc2FnZShjb25uZWN0aW9u
LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICNlbmRpZgogI2VuZGlmCiAjaWYg
UExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCkBAIC0yMzEsNiArMjUwLDEyIEBAIHZv
aWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvCiAgICAgICAgIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNv
ZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlcigpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNv
bm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisjZW5kaWYKICNlbmRpZgogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRl
eCBjYzIxMTBiNWZhMjE5NDVjNmM0Mzk4OGNjODkxNWY5YzU4NTFmNjllLi5iOThkNjJmMDYyMTQ5
Njg2YWFiNGYwMDVjODUzZGNjNjRjZjdmMmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQ0LDYgKzQ0LDcgQEAg
Y2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOwogY2xhc3Mg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVy
TWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOworY2xhc3MgUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKQEAgLTc2LDYg
Kzc3LDcgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlciYgbWVkaWFS
ZWNvcmRlck1hbmFnZXIoKTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyJiBhdWRpb1RyYWNrUmVuZGVyZXJNYW5h
Z2VyKCk7CisgICAgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpOwogI2VuZGlmCiAjZW5kaWYKIApAQCAtOTgsNiAr
MTAwLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRl
ck1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1hbmFnZXI+IG1fYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcjsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcj4gbV9zYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogI2VuZGlmCiAjZW5kaWYKICNpZiBQTEFURk9STShD
T0NPQSkgJiYgVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41YmZkMzcwZGIzMTBjMzRhYzlhOGJkZWNmN2E5N2NhMjdlZDVjN2EwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC0wLDAgKzEsMTQzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xvY2FsU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBs
ZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBi
b29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKK3sKKyAgICBhdXRvIGxheWVyID0gc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4obmV3IFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcihpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBo
aWRlUm9vdExheWVyLCBzaXplKSk7CisgICAgcmV0dXJuIGxheWVyLT5tX3NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllciA/IFdURk1vdmUobGF5ZXIpIDogbnVsbHB0cjsKK30KKworUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplKQorICAg
IDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShj
b25uZWN0aW9uKSkKKyAgICAsIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKExvY2FsU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoKnRoaXMsIGhpZGVSb290TGF5ZXIsIHNpemUpKQor
eworICAgIEFTU0VSVChtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik7CisgICAgaWYgKCFtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sYXllckhv
c3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0
aW5nUHJvY2VzcygpOworICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG1f
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIoKSk7Cit9CisKK1JlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6flJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpCit7
CisgICAgc2VuZChNZXNzYWdlczo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpCb3VuZHNDaGFu
Z2VkIHsgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPmJvdW5kcygpIH0pOworfQorCitPcHRp
b25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6Y29udGV4dElEKCkKK3sKKyAgICByZXR1cm4gbV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250
ZXh0SUQoKTsKK30KKwordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0
ZURpc3BsYXlNb2RlKGJvb2wgaGlkZURpc3BsYXlMYXllciwgYm9vbCBoaWRlUm9vdExheWVyKQor
eworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT51cGRhdGVEaXNwbGF5TW9kZShoaWRl
RGlzcGxheUxheWVyLCBoaWRlUm9vdExheWVyKTsKK30KKwordm9pZCBSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUFmZmluZVRyYW5zZm9ybShDR0FmZmluZVRyYW5zZm9ybSB0
cmFuc2Zvcm0pCit7CisgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnVwZGF0ZUFmZmlu
ZVRyYW5zZm9ybSh0cmFuc2Zvcm0pOworfQorCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6dXBkYXRlQm91bmRzQW5kUG9zaXRpb24oQ0dSZWN0IGJvdW5kcywgQ0dQb2ludCBw
b3NpdGlvbikKK3sKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+dXBkYXRlQm91bmRz
QW5kUG9zaXRpb24oYm91bmRzLCBwb3NpdGlvbik7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpmbHVzaCgpCit7CisgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXItPmZsdXNoKCk7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpm
bHVzaEFuZFJlbW92ZUltYWdlKCkKK3sKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+
Zmx1c2hBbmRSZW1vdmVJbWFnZSgpOworfQorCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6ZW5xdWV1ZVNhbXBsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90
ZVNhbXBsZSkKK3sKKyAgICBtX21lZGlhVGltZSA9IHJlbW90ZVNhbXBsZS50aW1lKCk7CisKKyAg
ICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+
cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9p
bWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1v
dGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Np
b24pIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0
ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS50aW1lKCks
IHJlbW90ZVNhbXBsZS5zaXplKCkpOworICAgIGlmICghc2FtcGxlUmVmKSB7CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXItPmVucXVldWVTYW1wbGUoKnNhbXBsZVJlZik7Cit9CisKK3Zv
aWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjbGVhckVucXVldWVkU2FtcGxlcygp
Cit7CisgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPmNsZWFyRW5xdWV1ZWRTYW1wbGVz
KCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVj
dGlvbi5wdHIoKTsKK30KKwordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllclN0YXR1c0RpZENoYW5nZShXZWJDb3JlOjpTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXImKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6U2V0RGlkRmFpbCB7IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5kaWRGYWls
KCkgfSk7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpzYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyJikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6OkJvdW5kc0NoYW5nZWQgeyBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+Ym91bmRzKCkg
fSk7Cit9CisKK1dURjo6TWVkaWFUaW1lIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
c3RyZWFtVGltZSgpIGNvbnN0Cit7CisgICAgLy8gVGhpcyBpcyBvbmx5IGFuIGFwcHJveGltYXRp
b24sIG1heWJlIHdlIHNob3VsZCB1c2UgYSBjbG9jayBhcyB3ZWxsLgorICAgIHJldHVybiBtX21l
ZGlhVGltZTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY1YjhjMjE1NWJj
Yjg3YjU4NWVhNDFlMGFiMzAwODU1YzVlZDczNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgK
QEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDsKK2NsYXNzIFJlbW90ZVZpZGVvU2FtcGxlOworY2xhc3MgU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOworfTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA6IHB1YmxpYyBXZWJDb3JlOjpTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OkNsaWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRl
IElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI+IGNyZWF0ZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBD
OjpDb25uZWN0aW9uPiYmLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUpOwor
ICAgIH5SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoKTsKKworICAgIC8vIElQQzo6TWVz
c2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRl
eHRJRD4gY29udGV4dElEKCk7CisgICAgCitwcml2YXRlOgorICAgIFJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBD
OjpDb25uZWN0aW9uPiYmLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUpOwor
CisgICAgdm9pZCB1cGRhdGVEaXNwbGF5TW9kZShib29sIGhpZGVEaXNwbGF5TGF5ZXIsIGJvb2wg
aGlkZVJvb3RMYXllcik7CisgICAgdm9pZCB1cGRhdGVBZmZpbmVUcmFuc2Zvcm0oQ0dBZmZpbmVU
cmFuc2Zvcm0pOworICAgIHZvaWQgdXBkYXRlQm91bmRzQW5kUG9zaXRpb24oQ0dSZWN0LCBDR1Bv
aW50KTsKKyAgICB2b2lkIGZsdXNoKCk7CisgICAgdm9pZCBmbHVzaEFuZFJlbW92ZUltYWdlKCk7
CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOwor
ICAgIHZvaWQgY2xlYXJFbnF1ZXVlZFNhbXBsZXMoKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNl
bmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25z
dCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllci50b1VJbnQ2NCgpOyB9CisKKyAgICAvLyBXZWJD
b3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudAorICAgIC8vIFNob3VsZCBzZW5k
IGJhY2sgc3RhdGUgYW5kIGJvdW5kcyBjaGFuZ2UgdG8gaXRzIFdlYlByb2Nlc3MgY291bnRlcnBh
cnQKKyAgICB2b2lkIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllclN0YXR1c0RpZENoYW5nZShXZWJD
b3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImKSBmaW5hbDsKKyAgICB2b2lkIHNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllckJvdW5kc0RpZENoYW5nZShXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXImKSBmaW5hbDsKKyAgICBXVEY6Ok1lZGlhVGltZSBzdHJlYW1UaW1lKCkgY29uc3Qg
ZmluYWw7CisKKyAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2Zl
clNlc3Npb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRy
PExheWVySG9zdGluZ0NvbnRleHQ+IG1fbGF5ZXJIb3N0aW5nQ29udGV4dDsKKyAgICBXVEY6Ok1l
ZGlhVGltZSBtX21lZGlhVGltZTsKK307CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk4MDJlMjYxZjViNzFmNjEyNTY2NzgwYjEwN2JjMWMzOWZi
N2UzZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzYg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllciBOb3RSZWZDb3VudGVkIHsKKyAgICBVcGRhdGVEaXNwbGF5TW9kZShib29sIGhpZGVE
aXNwbGF5TGF5ZXIsIGJvb2wgaGlkZVJvb3RMYXllcikKKyAgICBVcGRhdGVBZmZpbmVUcmFuc2Zv
cm0oQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKQorICAgIFVwZGF0ZUJvdW5kc0FuZFBvc2l0
aW9uKENHUmVjdCBib3VuZHMsIENHUG9pbnQgcG9zaXRpb24pCisgICAgRmx1c2goKQorICAgIEZs
dXNoQW5kUmVtb3ZlSW1hZ2UoKQorICAgIEVucXVldWVTYW1wbGUoV2ViQ29yZTo6UmVtb3RlVmlk
ZW9TYW1wbGUgc2FtcGxlKQorICAgIENsZWFyRW5xdWV1ZWRTYW1wbGVzKCkKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ZmI1NDZjYTM5YmFmZjExOWMzYmFkM2NhMjRkZWJjMzI3NzI5MDQzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIkRlY29kZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXI6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUo
Y29ubmVjdGlvbikpCit7Cit9CisKK1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXI6On5SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0Owor
Cit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmRpZFJlY2VpdmVM
YXllck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIpCit7CisgICAgaWYgKGF1dG8qIGxheWVyID0gbV9sYXllcnMuZ2V0KG1ha2VPYmplY3RJ
ZGVudGlmaWVyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXJUeXBlPihkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKSkpKQorICAgICAgICBsYXllci0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2Rlcik7Cit9CisKKy8vIEZJWE1FOiBXZSBzaG91bGQgcmVmYWN0b3IgY29k
ZSB0byB1c2UgYW4gYXN5bmNocm9ub3VzIElQQy4KK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlcjo6Y3JlYXRlTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRl
bnRpZmllciBpZGVudGlmaWVyLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSwgTWVz
c2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OkNyZWF0ZUxheWVy
RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAgQVNTRVJUKCFtX2xheWVycy5jb250YWlucyhp
ZGVudGlmaWVyKSk7CisgICAgYXV0byBsYXllciA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6Y3JlYXRlKGlkZW50aWZpZXIsIG1fY29ubmVjdGlvbi5jb3B5UmVmKCksIGhpZGVSb290
TGF5ZXIsIHNpemUpOworICAgIGlmICghbGF5ZXIpCisgICAgICAgIHJldHVybiByZXBseSh7IH0p
OworCisgICAgcmVwbHkobGF5ZXItPmNvbnRleHRJRCgpKTsKKyAgICBtX2xheWVycy5hZGQoaWRl
bnRpZmllciwgV1RGTW92ZShsYXllcikpOworfQorCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXI6OnJlbGVhc2VMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJzLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKKyAgICBtX2xheWVycy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK30KKwor
I2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWY5YjMwYzc2MTYyM2RkOTQ4
ZDI5YmUwZjM3ZjBhZDBmNDdlNWE5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5o
CkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaCIKKyNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25u
ZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjsKKworY2xhc3MgUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlciBmaW5hbCA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2
ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0
IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlv
bj4mJik7CisgICAgflJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKTsKKwor
ICAgIHZvaWQgZGlkUmVjZWl2ZUxheWVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2
ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgZW5jb2Rlcikg
eyBkaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgZW5jb2Rlcik7IH0K
KworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKKworICAgIHZvaWQgY3Jl
YXRlTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciwgYm9vbCBoaWRlUm9v
dExheWVyLCBXZWJDb3JlOjpJbnRTaXplLCBNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlcjo6Q3JlYXRlTGF5ZXJEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBy
ZWxlYXNlTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllcik7CisKKyAgICBS
ZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgSGFzaE1hcDxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyPj4gbV9sYXllcnM7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE0ZjNhZjI4OTkwZTFh
YTczNzBiNjhkZDQ5MDZmYmU4MGUzOTdhOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCittZXNzYWdl
cyAtPiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyIE5vdFJlZkNvdW50ZWQg
eworICAgIENyZWF0ZUxheWVyKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRp
ZmllciBpZCwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplIHNpemUpIC0+IChP
cHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gY29udGV4dElEKSBTeW5jaHJv
bm91cworICAgIFJlbGVhc2VMYXllcihXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklk
ZW50aWZpZXIgaWQpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKaW5kZXggMjU2NGY1Mjg4MjhmNTFkMDNjZGQzMGM3ZmY4NzZkMjVkZGE1NDVjYS4u
ZGM5ZTE0ZjVhY2RmNjk4NDExMzdiZmNiMTBlNGU2NDZjYzQyZWEyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMjUsNiArMjI1LDcgQEAgZGVmIHR5cGVz
X3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSVENEZWNvZGVy
SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJUQ0VuY29kZXJJZGVudGlmaWVyJywKKyAg
ICAgICAgJ1dlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlN0
b3JhZ2VBcmVhSW1wbElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlTmFtZXNw
YWNlSWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCmluZGV4IDg0ZDQzOWM1MDU0MDRiN2U1OTA1YjM2ZTdkZWM3Njg5ZGRmYTk0NTQuLjdi
ZjcxYzE3YWJkZDNkOGIxMzE5MDIyMDA1OGM5ZjljMjE5ZjYwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00NDYsNiArNDQ2LDI2IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQmKTsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5k
PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxDR1BvaW50PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR1BvaW50KTsK
KyAgICBzdGF0aWMgT3B0aW9uYWw8Q0dQb2ludD4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dTaXplPiB7CisgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBDR1NpemUpOworICAgIHN0YXRpYyBPcHRpb25hbDxDR1NpemU+IGRl
Y29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENH
UmVjdD4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKKyAgICBz
dGF0aWMgT3B0aW9uYWw8Q0dSZWN0PiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT4geworICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dBZmZpbmVUcmFuc2Zvcm0pOworICAgIHN0YXRpYyBPcHRp
b25hbDxDR0FmZmluZVRyYW5zZm9ybT4gZGVjb2RlKERlY29kZXImKTsKK307CiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQppbmRleCA1YmE1MmM5MGFlYjBmZWFkNmY0
NDhkNzA4NmY1OWEyYWU2ZTllOTUyLi44Y2JkYWZiZTE0NmZjNzcxYzI5ZjNhYzliMWFlMWFhZThi
NDZhOGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNNYWMubW0KQEAgLTU0OCw2ICs1NDgsNzkgQEAgT3B0aW9uYWw8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46
OmRlY28KICAgICByZXR1cm4gV1RGTW92ZShjb21tYW5kKTsKIH0KIAordm9pZCBBcmd1bWVudENv
ZGVyPENHUmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1JlY3QgcmVjdCkKK3sKKyAg
ICBlbmNvZGVyIDw8IHJlY3Qub3JpZ2luIDw8IHJlY3Quc2l6ZTsKK30KKworT3B0aW9uYWw8Q0dS
ZWN0PiBBcmd1bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIE9wdGlvbmFsPENHUG9pbnQ+IG9yaWdpbjsKKyAgICBkZWNvZGVyID4+IG9yaWdpbjsKKyAg
ICBpZiAoIW9yaWdpbikKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIE9wdGlvbmFsPENHU2l6
ZT4gc2l6ZTsKKyAgICBkZWNvZGVyID4+IHNpemU7CisgICAgaWYgKCFzaXplKQorICAgICAgICBy
ZXR1cm4geyB9OworCisgICAgcmV0dXJuIENHUmVjdCB7ICpvcmlnaW4sICpzaXplIH07Cit9CisK
K3ZvaWQgQXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dT
aXplIHNpemUpCit7CisgICAgZW5jb2RlciA8PCBzaXplLndpZHRoIDw8IHNpemUuaGVpZ2h0Owor
fQorCitPcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgQ0dTaXplIHNpemU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShzaXplLndpZHRoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHNpemUuaGVpZ2h0KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gc2l6ZTsK
K30KKwordm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgQ0dQb2ludCBwb2ludCkKK3sKKyAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9pbnQueTsK
K30KKworT3B0aW9uYWw8Q0dQb2ludD4gQXJndW1lbnRDb2RlcjxDR1BvaW50Pjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgQ0dQb2ludCBwb2ludDsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBvaW50LngpKQorICAgICAgICByZXR1cm4geyB9OworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocG9pbnQueSkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIHBvaW50Owor
fQorCit2b2lkIEFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKQoreworICAgIGVuY29kZXIg
PDwgdHJhbnNmb3JtLmEgPDwgdHJhbnNmb3JtLmIgPDwgdHJhbnNmb3JtLmMgPDwgdHJhbnNmb3Jt
LmQgPDwgdHJhbnNmb3JtLnR4IDw8IHRyYW5zZm9ybS50eTsKK30KKworT3B0aW9uYWw8Q0dBZmZp
bmVUcmFuc2Zvcm0+IEFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYSkpCisgICAgICAgIHJldHVybiB7IH07Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYikpCisgICAgICAgIHJldHVybiB7IH07
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYykpCisgICAgICAgIHJldHVybiB7
IH07CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uZCkpCisgICAgICAgIHJldHVy
biB7IH07CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0udHgpKQorICAgICAgICBy
ZXR1cm4geyB9OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLnR5KSkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gdHJhbnNmb3JtOworfQorCiAjaWYgRU5BQkxFKENP
TlRFTlRfRklMVEVSSU5HKQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29udGVudEZp
bHRlclVuYmxvY2tIYW5kbGVyPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNv
cmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgY29udGVudEZpbHRlclVuYmxvY2tIYW5k
bGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKaW5kZXggNDcyZTRlMDJmNjgwYzRhZWU2M2JmNDU4NWI4NzU3MzA1OGZm
MzRhZS4uMzY0YmNkODkwYjUwOWU4MThiNjI3NDBkNTY1M2M3MDA0OWQ5N2E2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CkBAIC0yOCw2ICsyOCw4IEBAIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmNwcAogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlci5jcHAKIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJN
YW5hZ2VyLmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlci5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTUyOCw2ICs1MzAsOCBA
QCBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAogV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKK1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuY3BwCitXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlci5jcHAKIAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBiMjM4MzJhYjI3YTc0YjU3YzI2NWY5MzI5YTBi
ZTJjYzBmMDk5Y2I5Li42YThlMmU2OTA1YzM1YmMxYmM0OGM0NjlhNmVjNmM4NWQ1ZjgyNGI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02NDQsNSArNjQ0LDggQEAgUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRp
YVJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZVJlY2VpdmVyLmNw
cAogU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKIFRleHRDaGVja2lu
Z0NvbnRyb2xsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDFjNzBlNjQ1ZTg0MzNmMTRhZTAw
ZDU3ZDJjMjU0M2EwMGUwYzJmMjQuLjMyZjY2ZGI5YTU0MTVkMTc5ZDQ4Y2VmZGVjMjgyMjQwYjRi
YmNkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzI5MSw2ICszMjkxLDggQEAKIAkJM0Y5MTVDMEUxRjU2NERFRDAwMTgzQ0U5IC8q
IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW07IHBh
dGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjkxNUMwRjFGNTY0REVEMDAxODNDRTkgLyog
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmg7IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTNGQjA4RTQyMUY2MEIyNDAwMDVFNTMxMiAvKiBpT1MueGNhc3NldHMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmb2xkZXIuYXNzZXRjYXRhbG9nOyBw
YXRoID0gaU9TLnhjYXNzZXRzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAyNEZD
MDIzQ0YxMDQ1MDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDI0RkMxMjNDRjEwNDUw
MEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAzRkJBMTIwNjFCREI3MDBD
MkVBRjggLyogTmV0d29ya0xvYWRDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5ldHdvcmtMb2FkQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTAzRkJBMjIwNjFCREI4MDBDMkVBRjggLyogTmV0d29ya0xvYWRDaGVja2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtMb2FkQ2hlY2tlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDQ4MkNCMURERDJGQjUwMEYwMDZEMCAv
KiBSVENOZXR3b3JrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJU
Q05ldHdvcmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQyMiw2ICszNDI0
LDE2IEBACiAJCTQxRkNENkFEMjNDQ0MyNjAwMEM2MjU2NyAvKiBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZD
RDZBRTIzQ0NDMjYxMDBDNjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZDRDZBRjIz
Q0NDMjYxMDBDNjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZD
RDZCMzIzQ0RDNjA0MDBDNjI1NjcgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZCNDIzQ0RDQUMyMDBDNjI1NjcgLyog
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MUZDRDZCNTIzQ0RFMUM2MDBDNjI1NjcgLyogUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNE
NkI2MjNDREUxQzYwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZCNzIzQ0RFNTNEMDBDNjI1Njcg
LyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
RkNENkI4MjNDREU1M0UwMEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZCQzIzQ0UwMzE4MDBDNjI1NjcgLyogU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkJEMjNDRTA0M0YwMEM2MjU2NyAvKiBSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkJFMjNDRTA0NDAwMEM2MjU2NyAv
KiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZCRjIzQ0UwNDQw
MDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBBRUJGMURDM0ZB
RTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ0NTk5ODQxMjI4MzNFNjAwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0OUQ5MEQ4MjFGRDYzRkUwMEY2NzdD
MCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjE5LDYgKzcyMzEsMTIgQEAKIAkJCQk0MTc2RTg5
MjIzQzM0RDZFMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8sCiAJCQkJNDE3
MjE5OEMyM0I2MTJFODAwQUU1Njg2IC8qIFJUQ0RlY29kZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJ
NDE1ODY0OUEyM0JFMDkyNDAwQTBBNjFFIC8qIFJUQ0VuY29kZXJJZGVudGlmaWVyLmggKi8sCisJ
CQkJNDFGQ0Q2QjcyM0NERTUzRDAwQzYyNTY3IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5j
cHAgKi8sCisJCQkJNDFGQ0Q2QjMyM0NEQzYwNDAwQzYyNTY3IC8qIFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5oICovLAorCQkJCTQxRkNENkI4MjNDREU1M0UwMEM2MjU2NyAvKiBTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJNDFGQ0Q2QkMyM0NFMDMxODAwQzYy
NTY3IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIuaCAqLywKKwkJCQk0MTAy
NEZDMTIzQ0YxMDQ1MDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5j
cHAgKi8sCisJCQkJNDEwMjRGQzAyM0NGMTA0NTAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2VicnRjOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTcyNDEsNiArNzI1OSwxMiBAQAogCQkJCTQxNzZFODlBMjND
MzZGNzEwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAgKi8sCiAJCQkJ
NDE3NkU4OTkyM0MzNkQ4RTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmgg
Ki8sCiAJCQkJNDE3NkU4OUIyM0MzNzIyMjAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJN
YW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJCTQxRkNENkI1MjNDREUxQzYwMEM2MjU2NyAvKiBS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovLAorCQkJCTQxRkNENkI0MjNDRENB
QzIwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCAqLywKKwkJCQk0
MUZDRDZCNjIzQ0RFMUM2MDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
Lm1lc3NhZ2VzLmluICovLAorCQkJCTQxRkNENkJFMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLywKKwkJCQk0MUZDRDZCRjIzQ0Uw
NDQwMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oICov
LAorCQkJCTQxRkNENkJEMjNDRTA0M0YwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJCXBhdGggPSB3ZWJydGM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCAxOGU5MzZkZTMyMzA3
NzBmMjQzNjFiNmFiYWE4ZTE3ZTRkMmU1YWMwLi41M2E4NWU2YWEwOGI2YjllODMzMmZiYjk1NmRk
YWE5Yzc5MjVhMDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkxp
YldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAtNjQs
NiArNjUsMTUgQEAgdm9pZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW4KIHsKIH0KIAorI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCitT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6c2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIpCisgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlciA9IG1ha2VVbmlxdWU8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcj4oKTsK
KyAgICByZXR1cm4gKm1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKK30KKyNlbmRp
ZgorCiB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CkBAIC03Niw3ICs4NiwxMyBAQCB2
b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIElQQzo6RAogICAgICAgICAgICAgY2FwdHVyZU1hbmFnZXItPmRpZFJl
Y2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0jZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJ
REVPX1RSQUNLKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNz
YWdlczo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
KyAgICAgICAgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpLmRpZFJlY2VpdmVMYXll
ck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisj
ZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19UUkFDSykKKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQogI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENP
Q09BKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
TGliV2ViUlRDQ29kZWNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggYThhZDRmZWU4NmIyNjU5YjRhZmZiN2M0ODRk
YTE4MWMzYmVmMjdkMC4uNDYwMGU1M2JiMjg0ZDc0OGNmMzkxMWI5NGRiNTU5OWE5Y2I0NWYyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIApAQCAtNTEsNiArNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRB
dWRpdFRva2VuKE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4pIHsgbV9hdWRpdFRv
a2VuID0gYXVkaXRUb2tlbjsgfQogICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9r
ZW4oKSBjb25zdCB7IHJldHVybiBtX2F1ZGl0VG9rZW47IH0KICNlbmRpZgorI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgc2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlcigpOworI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKQEAgLTY2LDYgKzcwLDkgQEAgcHJpdmF0
ZToKICNpZiBIQVZFKEFVRElUX1RPS0VOKQogICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG1f
YXVkaXRUb2tlbjsKICNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU9f
VFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlci5jcHAKaW5kZXggNTQ3ZDQ1ZjJhZWY3OWNkYWI5ZDJlMzRlZmM5MmUwZGM3Njcw
MDAxYy4uMTgwYWM2ZDI0NmY2YzcxYTBkY2UzOTMzM2Y5MGY3OGU3ODQ1OTFkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcApAQCAtMzcwLDggKzM3MCwxMiBAQCB2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgU2V0dGluZ3MmIHNldHRp
bmdzKQogICAgIFJlbW90ZU1lZGlhUGxheWVyU3VwcG9ydDo6c2V0UmVnaXN0ZXJSZW1vdGVQbGF5
ZXJDYWxsYmFjayhzZXR0aW5ncy51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSA/IFdURk1vdmUocmVn
aXN0ZXJFbmdpbmUpIDogUmVtb3RlTWVkaWFQbGF5ZXJTdXBwb3J0OjpSZWdpc3RlclJlbW90ZVBs
YXllckNhbGxiYWNrKCkpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19U
UkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBpZiAoc2V0dGluZ3MudXNlR1BVUHJv
Y2Vzc0Zvck1lZGlhKCkpCisgICAgaWYgKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgp
KSB7CiAgICAgICAgIFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRD
cmVhdG9yKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNyZWF0ZSk7Cisg
ICAgICAgIFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0Q3JlYXRvcihbXShh
dXRvJiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgYXV0byBzaXplKSB7CisgICAgICAgICAg
ICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkuY3JlYXRlTGF5ZXIoY2xpZW50
LCBoaWRlUm9vdExheWVyLCBzaXplKTsKKyAgICAgICAgfSk7CisgICAgfQogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNTVlNDQwNjE3ZDY3
YzFiY2IyMWRlYjg2YmE2ZmZiZTk5MDZmNDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBA
IC0wLDAgKzEsMTM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUg
IlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyPiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBDbGllbnQmIGNsaWVudCwgYm9vbCBoaWRlUm9vdExheWVy
LCBJbnRTaXplIHNpemUpCit7CisgICAgYXV0byBsYXllciA9IHN0ZDo6dW5pcXVlX3B0cjxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI+KG5ldyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIobWFuYWdl
ciwgY2xpZW50LCBoaWRlUm9vdExheWVyLCBzaXplKSk7CisgICAgcmV0dXJuIGxheWVyLT5yb290
TGF5ZXIoKSA/IFdURk1vdmUobGF5ZXIpIDogbnVsbHB0cjsKK30KKworU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlciYgbWFuYWdlciwgQ2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwg
SW50U2l6ZSBzaXplKQorICAgIDogV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKGNs
aWVudCkKKyAgICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKKyAgICAsIG1fY29u
bmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKSkKKyAgICAsIG1faWRlbnRpZmllcihTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQoreworICAgIG1hbmFnZXIuYWRkTGF5ZXIoKnRo
aXMpOworCisgICAgT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBjb250ZXh0SWQ7Cisg
ICAgaWYgKCFtX2Nvbm5lY3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllciB7IG1faWRlbnRpZmllciwgaGlkZVJv
b3RMYXllciwgc2l6ZSB9LCBNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlcjo6Q3JlYXRlTGF5ZXI6OlJlcGx5IHsgY29udGV4dElkIH0sIDApKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoIWNvbnRleHRJZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92
aWRlb0xheWVyID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhv
c3RpbmdDb250ZXh0KCpjb250ZXh0SWQpOworfQorCitTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
On5TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6UmVsZWFzZUxh
eWVyIHsgbV9pZGVudGlmaWVyIH0sIDApOworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1f
bWFuYWdlci0+cmVtb3ZlTGF5ZXIoKnRoaXMpOworfQorCitib29sIFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6ZGlkRmFpbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGlkRmFpbDsKK30KKwor
dm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZURpc3BsYXlNb2RlKGJvb2wgaGlk
ZURpc3BsYXlMYXllciwgYm9vbCBoaWRlUm9vdExheWVyKQoreworICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpVcGRhdGVEaXNw
bGF5TW9kZSB7IGhpZGVEaXNwbGF5TGF5ZXIsIGhpZGVSb290TGF5ZXIgfSwgbV9pZGVudGlmaWVy
KTsKK30KKworQ0dSZWN0IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Ym91bmRzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9ib3VuZHM7Cit9CisKK3ZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjp1cGRhdGVBZmZpbmVUcmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKQor
eworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpVcGRhdGVBZmZpbmVUcmFuc2Zvcm0geyB0cmFuc2Zvcm0gfSwgbV9pZGVudGlm
aWVyKTsKK30KKwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUJvdW5kc0Fu
ZFBvc2l0aW9uKENHUmVjdCBib3VuZHMsIENHUG9pbnQgcG9zaXRpb24pCit7CisgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlVw
ZGF0ZUJvdW5kc0FuZFBvc2l0aW9uIHsgYm91bmRzLCBwb3NpdGlvbiB9LCBtX2lkZW50aWZpZXIp
OworfQorCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2goKQoreworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpGbHVzaCB7IH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOjpmbHVzaEFuZFJlbW92ZUltYWdlKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Rmx1c2hBbmRSZW1vdmVJ
bWFnZSB7IH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjplbnF1ZXVlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCit7CisgICAgaWYgKGF1dG8g
cmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpKQorICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6RW5xdWV1ZVNhbXBsZSB7ICpyZW1vdGVTYW1wbGUgfSwgbV9pZGVudGlmaWVyKTsKK30K
Kwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNsZWFyRW5xdWV1ZWRTYW1wbGVzKCkK
K3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6Q2xlYXJFbnF1ZXVlZFNhbXBsZXMgeyB9LCBtX2lkZW50aWZpZXIpOworfQor
CitQbGF0Zm9ybUxheWVyKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnJvb3RMYXllcigpCit7
CisgICAgcmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKTsKK30KKwordm9pZCBTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OnNldERpZEZhaWwoYm9vbCB2YWx1ZSkKK3sKKyAgICBtX2RpZEZhaWwgPSB2
YWx1ZTsKK30KKwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmJvdW5kc0NoYW5nZWQo
Q0dSZWN0IGJvdW5kcykKK3sKKyAgICBtX2JvdW5kcyA9IGJvdW5kczsKK30KKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJhODM1NDA0MDI5Njdm
ZGFlZWZmZjY5Y2QzMTdlYThiNjEyYWMxNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC0w
LDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOworCitjbGFzcyBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlKFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXImLCBDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNv
cmU6OkludFNpemUpOworICAgIH5TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoKTsKKworICAgIFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1faWRlbnRpZmllcjsgfQorCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYsIENsaWVu
dCYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSk7CisKKyAgICAvLyBXZWJD
b3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIKKyAgICBib29sIGRpZEZhaWwoKSBjb25zdCBm
aW5hbDsKKyAgICB2b2lkIHVwZGF0ZURpc3BsYXlNb2RlKGJvb2wgaGlkZURpc3BsYXlMYXllciwg
Ym9vbCBoaWRlUm9vdExheWVyKSBmaW5hbDsKKyAgICBDR1JlY3QgYm91bmRzKCkgY29uc3QgZmlu
YWw7CisgICAgdm9pZCB1cGRhdGVBZmZpbmVUcmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm0pIGZp
bmFsOworICAgIHZvaWQgdXBkYXRlQm91bmRzQW5kUG9zaXRpb24oQ0dSZWN0LCBDR1BvaW50KSBm
aW5hbDsKKyAgICB2b2lkIGZsdXNoKCkgZmluYWw7CisgICAgdm9pZCBmbHVzaEFuZFJlbW92ZUlt
YWdlKCkgZmluYWw7CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFdlYkNvcmU6Ok1lZGlhU2FtcGxl
JikgZmluYWw7CisgICAgdm9pZCBjbGVhckVucXVldWVkU2FtcGxlcygpIGZpbmFsOworICAgIFBs
YXRmb3JtTGF5ZXIqIHJvb3RMYXllcigpIGZpbmFsOworICAgIAorICAgIHZvaWQgc2V0RGlkRmFp
bChib29sKTsKKyAgICB2b2lkIGJvdW5kc0NoYW5nZWQoQ0dSZWN0KTsKKworICAgIFdlYWtQdHI8
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcj4gbV9tYW5hZ2VyOworICAgIFJlZjxJUEM6
OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJ
ZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBt
X3ZpZGVvTGF5ZXI7CisgICAgQ0dSZWN0IG1fYm91bmRzOworICAgIGJvb2wgbV9kaWRGYWlsIHsg
ZmFsc2UgfTsKK307CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wZWJkMTdiZGQ1Mzc4MTM4NmFlM2M4ZjEzYzlkMWQ0ZjlhNmI1YzJhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKK21lc3NhZ2VzIC0+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBOb3RSZWZDb3VudGVkIHsK
KyAgICBTZXREaWRGYWlsKGJvb2wgdmFsdWUpCisgICAgQm91bmRzQ2hhbmdlZChDR1JlY3QgYm91
bmRzKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50
aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MTg0NjRmNzA4NzkzMDQzMWM0NWNjZDNlOTBkODlhMGZmNDRk
Y2I4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSAsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
KyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworZW51bSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2lu
ZyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDgyMmY3NzNkODVkODJiZTFmMmYzNzE1MDNlZThkY2ZjZWFmY2U5
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQg
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZUxheWVyTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBpZiAoYXV0byogbGF5ZXIgPSBtX2xheWVycy5nZXQobWFrZU9iamVjdElkZW50aWZpZXI8U2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKSkuZ2V0KCkpCisgICAgICAgIGxheWVyLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9u
LCBkZWNvZGVyKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcj4gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y3JlYXRlTGF5ZXIo
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQmIGNsaWVudCwgYm9vbCBoaWRlUm9vdExh
eWVyLCBXZWJDb3JlOjpJbnRTaXplIHNpemUpCit7CisgICAgYXV0byBsYXllciA9IFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKCp0aGlzLCBjbGllbnQsIGhpZGVSb290TGF5ZXIsIHNp
emUpOworICAgIGlmICghbGF5ZXIpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBtX2xheWVy
cy5hZGQobGF5ZXItPmlkZW50aWZpZXIoKSwgbWFrZVdlYWtQdHIoKmxheWVyKSk7CisgICAgcmV0
dXJuIGxheWVyOworfQorCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmFk
ZExheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYgbGF5ZXIpCit7CisgICAgQVNTRVJUKCFt
X2xheWVycy5jb250YWlucyhsYXllci5pZGVudGlmaWVyKCkpKTsKKyAgICBtX2xheWVycy5hZGQo
bGF5ZXIuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihsYXllcikpOworfQorCit2b2lkIFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OnJlbW92ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllciYgbGF5ZXIpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJzLmNvbnRhaW5zKGxheWVyLmlk
ZW50aWZpZXIoKSkpOworICAgIG1fbGF5ZXJzLnJlbW92ZShsYXllci5pZGVudGlmaWVyKCkpOwor
fQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhjMjIzMTAzYTdhN2JjYjJiY2JjOTljM2NlZjk0MWMzZDdmN2QwZDYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RS
QUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworICAg
IH5TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworCisgICAgdm9p
ZCBhZGRMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImKTsKKyAgICB2b2lkIHJlbW92ZUxh
eWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTGF5
ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZUxheWVyKFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50JiwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJD
b3JlOjpJbnRTaXplKTsKKworcHJpdmF0ZToKKyAgICBIYXNoTWFwPFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcklkZW50aWZpZXIsIFdlYWtQdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPj4gbV9s
YXllcnM7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAyODVkNzY1NzM0NDA2ZTI0
MTQzZTYwNGJkYWZiYTQyN2VkZDQ4MGZkLi4xMmMxMDdmYzZkNzBlZTY3YjY0NTM1YTM5YWIwNTIx
ZWUzMzY2MzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTQzOSw3
ICs0MzksNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZ3JhbnRVc2VyTWVkaWFEZXZpY2VTYW5kYm94
RXh0ZW5zaW9ucyhNZWRpYURldmljZVNhbmRib3hFeHRlbnNpb25zJiYpOwogICAgIHZvaWQgcmV2
b2tlVXNlck1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4m
KTsKICNlbmRpZgotCiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387900</attachid>
            <date>2020-01-16 02:28:29 -0800</date>
            <delta_ts>2020-01-16 02:54:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206286-20200116112827.patch</filename>
            <type>text/plain</type>
            <size>98953</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlhMjNkYWU2ZTU0Mjgx
NDVkY2E2ZDcxMzhlNzBhMmE0NDYxODY3OS4uMDY4MmM3ZmY5ODk0MmQzOTU2M2VmZGViNDdmOWZi
ZDgwMzJlMzRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAxLTE2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
TWVkaWFTdHJlYW0gdmlkZW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjI4NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHdheSBmb3IgV2Vi
S2l0IGxheWVyIHRvIGNyZWF0ZSBpdHMgb3duIHNwZWNpZmljIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci4KKyAgICAgICAgV2ViS2l0IGxheWVyIGNhbiBzZXQgYSBmdW5jdGlvbiBwb2ludGVyIHRo
YXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuCisgICAg
ICAgIElmIG5vbmUgaXMgcHJvdmlkZWQsIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGlz
IHVzZWQuCisKKyAgICAgICAgVXBkYXRlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQyB0byBtb25pdG9yIGl0c2VsZiBpdHMgcm9vdCBsYXllciBib3VuZHMgY2hhbmdlLgorICAg
ICAgICBDb252ZXJzZWx5LCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBubyBsb25nZXIg
bW9uaXRvcnMgaXRzIHJvb3QgbGF5ZXIgYm91bmRzIGNoYW5nZS4KKyAgICAgICAgVGhpcyByZW1v
dmVzIHRoZSBuZWVkIGZvciBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudCB0byBiZSBu
b3RpZmllZCBvZiBib3VuZHMgY2hhbmdlLgorCisgICAgICAgIFdlYlJUQyBpbmNvbWluZyB2aWRl
byB0cmFja3MgZG8gbm90IGhhdmUgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMgc28gd2UgbWFyayB0
aGVtIGFzIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LgorICAgICAg
ICBUaGlzIGlzIGN1cnJlbnRseSBsb3N0IHdoZW4gZG9pbmcgSVBDIGZyb20gV2ViUHJvY2VzcyB0
byBOZXR3b3JrUHJvY2Vzcy4gQWRkIHRoaXMgaW5mb3JtYXRpb24gZm9yIGV2ZXJ5IGVucXVldWVk
IHNhbXBsZSBpbiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci4KKyAgICAgICAgV2UgbWln
aHQgd2FudCBpbiB0aGUgZnV0dXJlIHRvIHNlcmlhbGl6ZSBhbGwgYXR0YWNobWVudHMgb2YgdGhl
IHNhbXBsZS4KKworICAgICAgICBNYW51YWxseSB0ZXN0ZWQuCisKKyAgICAgICAgKiBTb3VyY2Vz
Q29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OnNldENyZWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLm1tOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1
c0NoYW5nZUxpc3RlbmVyIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV2ViQVZTYW1wbGVCdWZm
ZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBzdGFydF0pOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1
ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIHN0b3BdKToKKyAgICAgICAgKC1bV2ViQVZTYW1wbGVC
dWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0
OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+TG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2Fs
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjplbnF1ZXVlU2FtcGxlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgICgt
W1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBpbml0V2l0aFBhcmVudDpd
KToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyIGRl
YWxsb2NdKToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3Rl
bmVyIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0No
YW5nZUxpc3RlbmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3Vu
ZHNDaGFuZ2VMaXN0ZW5lciBzdG9wXSk6CisgICAgICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJC
b3VuZHNDaGFuZ2VMaXN0ZW5lciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5n
ZTpjb250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp+TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5zdXJlTGF5ZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cm9vdExh
eWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6dXBkYXRlRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cm9vdExheWVyQm91bmRzRGlkQ2hhbmdl
KToKKwogMjAyMC0wMS0xNSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgSW50cm9kdWNlIGFuIGFic3RyYWN0IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA0MTlhMWQ4OWE2NGUxNjcxMzRhYzlkMzVkOGRhMjBhMzFiMzA0NGEwLi4yMjlhNzYy
MDA3NjU3YTgyMTJiZTMxMjBlNmNiMjNhOWJhNDdiYTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4
IEBACisyMDIwLTAxLTE2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgTWVkaWFTdHJlYW0gdmlkZW8gdHJhY2sgcmVuZGVyaW5nIGlu
IEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNjI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudCBXZWJQcm9jZXNzIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBhbmQgR1BV
UHJvY2VzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuCisgICAgICAgIFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllciBpcyBhIHdyYXBwZXIgYXJvdW5kIExvY2FsU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLgorCisgICAgICAgIEEgc3luY2hyb25vdXMgSVBDIGlzIHVzZWQgYXQg
Y3JlYXRpb24gdGltZSBvZiB0aGUgbGF5ZXIgdG8gbWFrZSBzdXJlIHdlIGhhdmUgYSBzaGFyZWQg
bGF5ZXIgc3luY2hyb25vdXNseS4KKyAgICAgICAgRnV0dXJlIHJlZmFjdG9yaW5nIHNob3VsZCBh
bGxvdyB0byByZW1vdmUgdGhhdCBjb25zdHJhaW50IGFzIGRvbmUgaW4gcmVndWxhciB2aWRlbyBw
bGF5aW5nLgorCisgICAgICAgIE92ZXJyaWRlIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBjcmVh
dGUgZnVuY3Rpb24gcG9pbnRlciB3aGVuIHJlbmRlcmluZyBpcyB0byBiZSBkb25lIGluIEdQVVBy
b2Nlc3MuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6flJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y29u
dGV4dElEKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
Ojpib3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OnVwZGF0ZURpc3BsYXlNb2RlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVBZmZpbmVUcmFuc2Zvcm0pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUJvdW5kc0FuZFBv
c2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6Zmx1c2hBbmRSZW1vdmVJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6ZW5xdWV1ZVNhbXBsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y2xlYXJFbnF1ZXVlZFNhbXBsZXMpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6Om1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRDaGFuZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnN0cmVhbVRpbWUg
Y29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlcjo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmRpZFJlY2Vp
dmVMYXllck1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyOjpjcmVhdGVMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OnJlbGVhc2VMYXllcik6CisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmg6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKToKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxDR1JlY3Q+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPENHU2l6ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
Q0dTaXplPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1BvaW50Pjo6
ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1BvaW50Pjo6ZGVjb2RlKToK
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUp
OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpH
UFVQcm9jZXNzQ29ubmVjdGlvbjo6c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnVwZGF0ZVByZWZlcmVu
Y2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6On5TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmRpZEZhaWwgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZURpc3BsYXlNb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpib3VuZHMgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUFmZmluZVRy
YW5zZm9ybSk6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBk
YXRlQm91bmRzQW5kUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OmZsdXNoKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpmbHVzaEFuZFJlbW92ZUltYWdlKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjplbnF1ZXVlU2FtcGxlKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpjbGVhckVucXVldWVkU2FtcGxlcyk6CisgICAgICAgIChXZWJLaXQ6
OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6cm9vdExheWVyKToKKyAgICAgICAgKFdlYktpdDo6
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpzZXREaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpib3VuZHNDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVz
c2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmRpZFJl
Y2VpdmVMYXllck1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyOjpjcmVhdGVMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXI6OmFkZExheWVyKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6cmVtb3ZlTGF5ZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIwLTAxLTE1ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
TWVkaWFTdHJlYW0gYXVkaW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CmluZGV4IDg5MDZmNTdkYzlkMzI0YzlmMGJkMWVmYjg1MGIyMGE5NTIwZTE5
MGIuLjhlMmFhZGQwY2ZmN2E2MGYxZDMyZmM4YjNiOWFjN2FmOGNjY2EzOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dApAQCAtMjMwLDYgKzIzMCw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0V4dGVuc2lvbnNHTEFOR0xFLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3Mv
YW5nbGUvVGVtcG9yYXJ5QU5HTEVTZXR0aW5nLmNwcCBAbm8tdW5pZnkKIAorcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tIEBuby11
bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2MzNWE1ODkxMTM0MTFi
MTU4NjIwYmY0MDE5MTZlZmQ3NDNlZTk0ZC4uMDdhMjFmNGYzZTIzZDhlNDc5MTRjYThmNDIxMDJk
NDIyNTVjZTNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNzI3OSw2ICs3Mjc5LDcgQEAKIAkJM0ZGRkY5QTcxNTlEOUE1NTAw
MjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJM0ZGRkY5QUIxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWV3cG9ydFN0eWxl
UmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkZGRjlBQzE1OUQ5
QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTAyNEZDODIzQ0YyNTRGMDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDYyNkE3MjI4MEEyMkEwMDZE
MUI1OSAvKiBKU0F1ZGlvTm9kZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0F1ZGlvTm9kZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxMDc5MDhBMUZDM0U0RjIwMDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xpZW50T3JpZ2luLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMDkzODI4MjM0Nzc5OUEwMDk0MjhCQSAvKiBKU0Fib3J0Q29udHJv
bGxlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Fi
b3J0Q29udHJvbGxlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NjMzMSw2ICsxNjMzMiw3IEBACiAJCQkJMDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oICovLAogCQkJCUNEQkVBRUFCMTlEOTJCNkMwMEJF
QkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oICovLAogCQkJCUNEQkVBRUFBMTlE
OTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSAqLywKKwkJCQk0
MTAyNEZDODIzQ0YyNTRGMDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCAq
LywKIAkJCQk0MTQ1OThCRTIzQzhBQUI4MDAyQjlDQzggLyogU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLmggKi8sCiAJCQkJQ0QzMzZGNjMxN0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2
YXRlQVZGLmggKi8sCiAJCQkJMDcwOUQ3OTAxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDExYzI5NmJhNTY1NjNhOWI1NGJkODhiZTJh
Mjk4ODIxNGNiZWJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTAs
MCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
aCIKKworI2luY2x1ZGUgIkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpMYXllckNyZWF0b3Ig
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjptX2xheWVyQ3JlYXRvciA9IG51bGxwdHI7Cit2b2lk
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0Q3JlYXRvcihMYXllckNyZWF0b3IgY3JlYXRv
cikKK3sKKyAgICBtX2xheWVyQ3JlYXRvciA9IGNyZWF0b3I7Cit9CisKK3N0ZDo6dW5pcXVlX3B0
cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3Jl
YXRlKENsaWVudCYgY2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKK3sK
KyAgICBpZiAobV9sYXllckNyZWF0b3IpCisgICAgICAgIHJldHVybiBtX2xheWVyQ3JlYXRvcihj
bGllbnQsIGhpZGVSb290TGF5ZXIsIHNpemUpOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgVVNFKEFWRk9VTkRBVElPTikKKyAgICByZXR1cm4gTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OmNyZWF0ZShjbGllbnQsIGhpZGVSb290TGF5ZXIsIHNpemUpOworI2Vsc2UKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmgKaW5kZXggNGZmNTdkN2M3ZDU5YTcxZDU2N2JjMmFiZDlmNjE5
MmIyYmZiY2NjMC4uNDAxYTcyNzBkZGQ2NDM2YTM0MmRiZWM0NzhiMDZjMDRjMjJkODcyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaApAQCAtNDIsMTEg
KzQyLDEzIEBAIHB1YmxpYzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkNsaWVudCgp
ID0gZGVmYXVsdDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
clN0YXR1c0RpZENoYW5nZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImKSA9IDA7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyJikgPSAwOwogICAgICAgICB2aXJ0dWFsIFdURjo6TWVkaWFU
aW1lIHN0cmVhbVRpbWUoKSBjb25zdCA9IDA7CiAgICAgfTsKIAotICAgIGV4cGxpY2l0IFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcihDbGllbnQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlKENsaWVudCYs
IGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSk7CisgICAgdXNpbmcgTGF5ZXJDcmVhdG9yID0g
c3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gKCopKENsaWVudCYsIGJv
b2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZv
aWQgc2V0Q3JlYXRvcihMYXllckNyZWF0b3IpOworCiAgICAgdmlydHVhbCB+U2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyKCkgPSBkZWZhdWx0OwogCiAgICAgdmlydHVhbCBib29sIGRpZEZhaWwoKSBj
b25zdCA9IDA7CkBAIC02Niw3ICs2OCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQbGF0Zm9y
bUxheWVyKiByb290TGF5ZXIoKSA9IDA7CiAKIHByb3RlY3RlZDoKKyAgICBleHBsaWNpdCBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIoQ2xpZW50Jik7CisKICAgICBXZWFrUHRyPENsaWVudD4gbV9j
bGllbnQ7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIExheWVyQ3JlYXRvciBtX2xheWVyQ3JlYXRv
cjsKIH07CiAKIGlubGluZSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcihDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmluZGV4IDI5Y2RlYTQzYjlmYThm
MDYxZGMwY2YxNDAzYjM1MmE5MWRmY2ZjMWQuLjdhM2IzOGRhOGQzODJlMWM4MTdiZjIyZDQ1OTJh
NjVkNjlhMjA2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaApAQCAtNjksOCArNjksNiBAQCBwcml2YXRlOgogICAg
IHZvaWQgZW5xdWV1ZVNhbXBsZShNZWRpYVNhbXBsZSYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXJF
bnF1ZXVlZFNhbXBsZXMoKSBmaW5hbDsKIAotICAgIHZvaWQgZW5zdXJlTGF5ZXJzKCk7Ci0KICAg
ICB2b2lkIHJlbW92ZU9sZFNhbXBsZXNGcm9tUGVuZGluZ1F1ZXVlKCk7CiAgICAgdm9pZCBhZGRT
YW1wbGVUb1BlbmRpbmdRdWV1ZShNZWRpYVNhbXBsZSYpOwogICAgIHZvaWQgcmVxdWVzdE5vdGlm
aWNhdGlvbldoZW5SZWFkeUZvclZpZGVvRGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbQppbmRleCBmMGM5Y2M3
M2ZhZDg0NTMxYzk3OTE2NDFkMzgzY2NlNDk3M2M4OWMyLi45NWI2OTAwYWIyNDFhMDcyYmNmYzQz
YmJkNDhlZTJmMTExZGU5YTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2lt
cG9ydCA8UXVhcnR6Q29yZS9DQVRyYW5zYWN0aW9uLmg+CiAKICNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CisjaW1wb3J0IDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KIAogI2ltcG9ydCA8cGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAKQEAgLTQ4LDggKzQ5LDggQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIC0gKGlkKWluaXRXaXRoUGFyZW50OihMb2NhbFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllciopY2FsbGJhY2s7CiAtICh2b2lkKWludmFsaWRhdGU7Ci0tICh2b2lkKWJl
Z2luT2JzZXJ2aW5nTGF5ZXJzOwotLSAodm9pZClzdG9wT2JzZXJ2aW5nTGF5ZXJzOworLSAodm9p
ZClzdGFydDsKKy0gKHZvaWQpc3RvcDsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkFWU2Ft
cGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXIKQEAgLTcyLDM4ICs3MywzMyBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogLSAodm9pZClpbnZhbGlkYXRlCiB7Ci0gICAgW3NlbGYgc3Rv
cE9ic2VydmluZ0xheWVyc107CisgICAgW3NlbGYgc3RvcF07CiAgICAgX3BhcmVudCA9IG51bGxw
dHI7CiB9CiAKLS0gKHZvaWQpYmVnaW5PYnNlcnZpbmdMYXllcnMKKy0gKHZvaWQpc3RhcnQKIHsK
ICAgICBBU1NFUlQoX3BhcmVudCk7CiAgICAgQVNTRVJUKF9wYXJlbnQtPmRpc3BsYXlMYXllcigp
KTsKLSAgICBBU1NFUlQoX3BhcmVudC0+cm9vdExheWVyKCkpOwogCiAgICAgW19wYXJlbnQtPmRp
c3BsYXlMYXllcigpIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAInN0YXR1cyIgb3B0aW9u
czpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bmlsXTsKICAgICBbX3BhcmVu
dC0+ZGlzcGxheUxheWVyKCkgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiZXJyb3IiIG9w
dGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0Om5pbF07Ci0gICAgW19w
YXJlbnQtPnJvb3RMYXllcigpIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImJvdW5kcyIg
b3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bmlsXTsKIH0KIAot
LSAodm9pZClzdG9wT2JzZXJ2aW5nTGF5ZXJzCistICh2b2lkKXN0b3AKIHsKLSAgICBpZiAoIV9w
YXJlbnQpCisgICAgaWYgKCFfcGFyZW50IHx8ICFfcGFyZW50LT5kaXNwbGF5TGF5ZXIoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKF9wYXJlbnQtPmRpc3BsYXlMYXllcigpKSB7Ci0gICAg
ICAgIFtfcGFyZW50LT5kaXNwbGF5TGF5ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBh
dGg6QCJzdGF0dXMiXTsKLSAgICAgICAgW19wYXJlbnQtPmRpc3BsYXlMYXllcigpIHJlbW92ZU9i
c2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImVycm9yIl07Ci0gICAgfQotICAgIGlmIChfcGFyZW50
LT5yb290TGF5ZXIoKSkKLSAgICAgICAgW19wYXJlbnQtPnJvb3RMYXllcigpIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgZm9yS2V5UGF0aDpAImJvdW5kcyJdOworICAgIFtfcGFyZW50LT5kaXNwbGF5TGF5
ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJzdGF0dXMiXTsKKyAgICBbX3Bh
cmVudC0+ZGlzcGxheUxheWVyKCkgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiZXJy
b3IiXTsKIH0KIAogLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtl
eVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBj
b250ZXh0Oih2b2lkICopY29udGV4dAogewogICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKICAg
ICBVTlVTRURfUEFSQU0oa2V5UGF0aCk7CisgICAgVU5VU0VEX1BBUkFNKGNoYW5nZSk7CiAgICAg
QVNTRVJUKF9wYXJlbnQpOwogCiAgICAgaWYgKCFfcGFyZW50KQpAQCAtMTMyLDI5ICsxMjgsNiBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgIH0KLQotICAgIGlmIChbW2NoYW5nZSB2YWx1ZUZvcktleTpOU0tleVZhbHVlQ2hhbmdl
Tm90aWZpY2F0aW9uSXNQcmlvcktleV0gYm9vbFZhbHVlXSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKChDQUxheWVyICopb2JqZWN0ID09IF9wYXJlbnQtPnJvb3RMYXllcigpKSB7Ci0gICAg
ICAgIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJib3VuZHMiXSkgewotICAgICAgICAg
ICAgaWYgKCFfcGFyZW50KQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAg
aWYgKGlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgICAgICAgICAgX3BhcmVudC0+cm9vdExheWVy
Qm91bmRzRGlkQ2hhbmdlKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gUmV0YWlu
UHRyPFdlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXI+KHNlbGYpXSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKCFwcm90ZWN0ZWRTZWxmLT5fcGFyZW50KQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fcGFyZW50LT5y
b290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0g
ICAgfQotCiB9CiBAZW5kCiAKQEAgLTE5Niw3ICsxNjksNyBAQCBMb2NhbFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoUmV0YWluUHRyPEFWU2Ft
cGxlQgogCiAgICAgbV9yb290TGF5ZXIuZ2V0KCkuYm91bmRzID0gQ0dSZWN0TWFrZSgwLCAwLCBz
aXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOwogCi0gICAgW21fc3RhdHVzQ2hhbmdlTGlzdGVu
ZXIgYmVnaW5PYnNlcnZpbmdMYXllcnNdOworICAgIFttX3N0YXR1c0NoYW5nZUxpc3RlbmVyIHN0
YXJ0XTsKIAogICAgIFttX3Jvb3RMYXllciBhZGRTdWJsYXllcjptX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5nZXQoKV07CiAKQEAgLTIwOCw3ICsxODEsNyBAQCBMb2NhbFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoUmV0YWluUHRyPEFWU2Ft
cGxlQgogCiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6fkxvY2FsU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyKCkKIHsKLSAgICBbbV9zdGF0dXNDaGFuZ2VMaXN0ZW5lciBzdG9wT2JzZXJ2
aW5nTGF5ZXJzXTsKKyAgICBtX3N0YXR1c0NoYW5nZUxpc3RlbmVyID0gbnVsbHB0cjsKIAogICAg
IG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWUuY2xlYXIoKTsKIApAQCAtMjM1LDE0ICsyMDgsNiBA
QCB2b2lkIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpsYXllckVycm9yRGlkQ2hhbmdl
KCkKICAgICAvLyBGSVhNRTogTG9nIGVycm9yLgogfQogCi12b2lkIExvY2FsU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpyb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKQotewotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgaWYgKCFtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuOwotICAg
IG1fY2xpZW50LT5zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKnRoaXMp
OwotfQotCiBQbGF0Zm9ybUxheWVyKiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZGlz
cGxheUxheWVyKCkKIHsKICAgICByZXR1cm4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0
KCk7CkBAIC0yODQsNiArMjQ5LDggQEAgdm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6dXBkYXRlQWZmaW5lVHJhbnNmb3JtKENHQWZmaW5lVHJhbnNmb3JtIHRyYW4KIHZvaWQgTG9j
YWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKENHUmVj
dCB2aWRlb0JvdW5kcywgQ0dQb2ludCBwb3NpdGlvbikKIHsKICAgICBydW5XaXRob3V0QW5pbWF0
aW9ucyhbJl0geworICAgICAgICBtX3Jvb3RMYXllci5nZXQoKS5ib3VuZHMgPSB2aWRlb0JvdW5k
czsKKyAgICAgICAgbV9yb290TGF5ZXIuZ2V0KCkucG9zaXRpb24gPSBwb3NpdGlvbjsKICAgICAg
ICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkuYm91bmRzID0gdmlkZW9Cb3VuZHM7
CiAgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpLnBvc2l0aW9uID0gcG9z
aXRpb247CiAgICAgfSk7CkBAIC0zMDEsNiArMjY4LDEyIEBAIHZvaWQgTG9jYWxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OmZsdXNoQW5kUmVtb3ZlSW1hZ2UoKQogCiB2b2lkIExvY2FsU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOjplbnF1ZXVlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7
CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1w
bGVBdHRhY2htZW50c0FycmF5KHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBs
ZUJ1ZmZlciwgdHJ1ZSk7CisgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgQ0ZBcnJheUdldENv
dW50KGF0dGFjaG1lbnRzQXJyYXkpOyArK2kpIHsKKyAgICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFy
eVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5UmVm
PihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKKyAgICAgICAg
Q0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlf
RGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgfQorCiAgICAgaWYgKCFb
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgaXNSZWFkeUZvck1vcmVNZWRpYURhdGFdKSB7CiAg
ICAgICAgIGFkZFNhbXBsZVRvUGVuZGluZ1F1ZXVlKHNhbXBsZSk7CiAgICAgICAgIHJlcXVlc3RO
b3RpZmljYXRpb25XaGVuUmVhZHlGb3JWaWRlb0RhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgKaW5kZXggZDlhZjI3YTYwMTBkNzk4ODY2MjUyZWVlMzhhNWM1MDVlN2FlYjg1ZC4uNWJhZWM1
NmFlYjlkZGJkMzMwM2RlZWZhZTE2NTU4ODBmYjMxNTY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLmgKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAK
IE9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci1PQkpDX0NMQVNTIFdlYkFW
U2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXI7CitPQkpDX0NMQVNTIFdlYlJvb3RTYW1w
bGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lcjsKIAogbmFtZXNwYWNlIFBBTCB7CiBjbGFzcyBD
bG9jazsKQEAgLTgyLDYgKzgyLDkgQEAgcHVibGljOgogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0No
YW5uZWwoKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisgICAgUGxhdGZvcm1MYXllciogcm9vdExh
eWVyKCkgY29uc3Q7CisgICAgdm9pZCByb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKTsKKwogcHJp
dmF0ZToKICAgICAvLyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKIApAQCAtMjQ0LDEzICsy
NDcsMTQgQEAgcHJpdmF0ZToKIAogICAgIC8vIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xp
ZW50CiAgICAgdm9pZCBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRDaGFuZ2UoU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyJikgZmluYWw7Ci0gICAgdm9pZCBzYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJikgZmluYWw7
CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xv
Z2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiAjZW5kaWYKIAorICAgIFJl
dGFpblB0cjxXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXI+IG1fYm91bmRz
Q2hhbmdlTGlzdGVuZXI7CisKICAgICBib29sIG1fdmlkZW9NaXJyb3JlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3BsYXlpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggZGY5ZTIwNTdhOGI2OTlkNzJlNjI2MjYw
MzA4YTA5Y2VmNTY1MmQ0NS4uMjVmMjA3YTAxZDg0MDYwODM0NzYzODI3ZTgzMDBiOWQ5MzhkNDhj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtNDgsNiArNDgsOTEgQEAKICNpbXBv
cnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91
bmRhdGlvblNvZnRMaW5rLmg+CiAKK0BpbnRlcmZhY2UgV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5k
c0NoYW5nZUxpc3RlbmVyIDogTlNPYmplY3QgeworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyogX3BhcmVudDsKK30KKworLSAoaWQpaW5pdFdpdGhQYXJl
bnQ6KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyopY2FsbGJh
Y2s7CistICh2b2lkKWludmFsaWRhdGU7CistICh2b2lkKXN0YXJ0OworLSAodm9pZClzdG9wOwor
QGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxp
c3RlbmVyCisKKy0gKGlkKWluaXRXaXRoUGFyZW50OihXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMqKXBhcmVudAoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIg
aW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3BhcmVudCA9IHBhcmVudDsKKwor
ICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbc2VsZiBpbnZh
bGlkYXRlXTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKHZvaWQpaW52YWxpZGF0ZQor
eworICAgIFtzZWxmIHN0b3BdOworICAgIF9wYXJlbnQgPSBudWxscHRyOworfQorCistICh2b2lk
KXN0YXJ0Cit7CisgICAgQVNTRVJUKF9wYXJlbnQpOworICAgIEFTU0VSVChfcGFyZW50LT5yb290
TGF5ZXIoKSk7CisKKyAgICBbX3BhcmVudC0+cm9vdExheWVyKCkgYWRkT2JzZXJ2ZXI6c2VsZiBm
b3JLZXlQYXRoOkAiYm91bmRzIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcg
Y29udGV4dDpuaWxdOworfQorCistICh2b2lkKXN0b3AKK3sKKyAgICBpZiAoIV9wYXJlbnQpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChfcGFyZW50LT5yb290TGF5ZXIoKSkKKyAgICAgICAg
W19wYXJlbnQtPnJvb3RMYXllcigpIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImJv
dW5kcyJdOworfQorCistICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICop
a2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdl
IGNvbnRleHQ6KHZvaWQgKiljb250ZXh0Cit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwor
ICAgIFVOVVNFRF9QQVJBTShrZXlQYXRoKTsKKyAgICBBU1NFUlQoX3BhcmVudCk7CisKKyAgICBp
ZiAoIV9wYXJlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChbW2NoYW5nZSB2YWx1ZUZv
cktleTpOU0tleVZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSXNQcmlvcktleV0gYm9vbFZhbHVlXSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKChDQUxheWVyICopb2JqZWN0ID09IF9wYXJlbnQt
PnJvb3RMYXllcigpKSB7CisgICAgICAgIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJi
b3VuZHMiXSkgeworICAgICAgICAgICAgaWYgKCFfcGFyZW50KQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICAgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgICAgICAg
ICAgX3BhcmVudC0+cm9vdExheWVyQm91bmRzRGlkQ2hhbmdlKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtw
cm90ZWN0ZWRTZWxmID0gUmV0YWluUHRyPFdlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VM
aXN0ZW5lcj4oc2VsZildIHsKKyAgICAgICAgICAgICAgICBpZiAoIXByb3RlY3RlZFNlbGYtPl9w
YXJlbnQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIHBy
b3RlY3RlZFNlbGYtPl9wYXJlbnQtPnJvb3RMYXllckJvdW5kc0RpZENoYW5nZSgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKK30KK0BlbmQKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogdXNpbmcgbmFtZXNwYWNlIFBBTDsKIApAQCAtNjQsNiArMTQ5LDcgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMoTWVkaWEKICAgICAsIG1fbG9nZ2VyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dnZXIo
KSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nSWRlbnRpZmll
cigpKQogI2VuZGlmCisgICAgLCBtX2JvdW5kc0NoYW5nZUxpc3RlbmVyKGFkb3B0TlMoW1tXZWJS
b290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50
OnRoaXNdKSkKIHsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKIH0KQEAgLTgyLDYgKzE2
OCw4IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6fk1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQygpCiAgICAgICAgICAgICB0cmFjay0+cmVtb3ZlT2Jz
ZXJ2ZXIoKnRoaXMpOwogICAgIH0KIAorICAgIFttX2JvdW5kc0NoYW5nZUxpc3RlbmVyIHN0b3Bd
OworCiAgICAgZGVzdHJveUxheWVycygpOwogCiAgICAgYXV0byBhdWRpb1RyYWNrTWFwID0gV1RG
TW92ZShtX2F1ZGlvVHJhY2tNYXApOwpAQCAtMjg0LDcgKzM3Miw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVMYXllcnMoKQogICAgICAgICByZXR1
cm47CiAKICAgICBhdXRvIHNpemUgPSBzbmFwcGVkSW50UmVjdChtX3BsYXllci0+cGxheWVyQ29u
dGVudEJveFJlY3QoKSkuc2l6ZSgpOwotICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID0g
TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSgqdGhpcywgaGlkZVJvb3RMYXll
cigpLCBzaXplKTsKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA9IFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6Y3JlYXRlKCp0aGlzLCBoaWRlUm9vdExheWVyKCksIHNpemUpOwogCiAg
ICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikgewogICAgICAgICBFUlJPUl9MT0co
TE9HSURFTlRJRklFUiwgIkNyZWF0aW5nIHRoZSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgZmFp
bGVkLiIpOwpAQCAtMjk1LDYgKzM4Myw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjplbnN1cmVMYXllcnMoKQogICAgIHVwZGF0ZURpc3BsYXlMYXllcigpOwog
CiAgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVvTGF5ZXIobV9zYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpLCBzaXplKTsKKworICAgIFttX2JvdW5k
c0NoYW5nZUxpc3RlbmVyIHN0YXJ0XTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OmRlc3Ryb3lMYXllcnMoKQpAQCAtMzY1LDYgKzQ1NSwxMSBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cHJlcGFyZVRvUGxheSgpCiAg
ICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9CiAKK1BsYXRmb3JtTGF5ZXIqIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cm9vdExheWVyKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgPyBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci0+cm9vdExheWVyKCkgOiBudWxscHRyOworfQorCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewog
ICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgfHwgIW1fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLT5yb290TGF5ZXIoKSB8fCBtX2Rpc3BsYXlNb2RlID09IE5vbmUpCkBAIC05NDgs
NyArMTA0Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1
cGRhdGVEaXNwbGF5TGF5ZXIoKQogICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gYm91bmRzID0gbV9zYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXItPmJvdW5kcygpOworICAgIGF1dG8gYm91bmRzID0gcm9vdExheWVyKCkuYm91bmRz
OwogICAgIGF1dG8gdmlkZW9Cb3VuZHMgPSBib3VuZHM7CiAgICAgaWYgKG1fdmlkZW9Sb3RhdGlv
biA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQgfHwgbV92aWRlb1JvdGF0aW9u
ID09IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0KQogICAgICAgICBzdGQ6OnN3YXAo
dmlkZW9Cb3VuZHMuc2l6ZS53aWR0aCwgdmlkZW9Cb3VuZHMuc2l6ZS5oZWlnaHQpOwpAQCAtOTU2
LDcgKzEwNTEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
dXBkYXRlRGlzcGxheUxheWVyKCkKICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+dXBk
YXRlQm91bmRzQW5kUG9zaXRpb24odmlkZW9Cb3VuZHMsIHsgYm91bmRzLnNpemUud2lkdGggLyAy
LCBib3VuZHMuc2l6ZS5oZWlnaHQgLyAyfSk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJCb3VuZHNEaWRDaGFu
Z2UoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJikKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpyb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKQogewogICAgIHVwZGF0
ZURpc3BsYXlMYXllcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IDFhMjRiYmZjMDcyZDI2ZmVjNzE2NTNhOTU5ZmQ3M2IwYTJmNDNk
NmIuLjk4MDgxYWE2YjJjYzNiOGM0YTVhZDUyZjg5YzhkMjIwZGNiZTIzZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI0LDYgKzI0LDgg
QEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFS
ZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbgorJChQUk9KRUNU
X0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9X
ZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vz
cy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1l
c3NhZ2VzLmluCkBAIC0xMDgsNiArMTEwLDcgQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ1JlbW90
ZUNvZGVjcy5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKaW5kZXggMWRjNTQ2NTI4ZjViYTIyZDczNjUwZTAwNGJhMjgxZWMyMmYy
NjIzNS4uOWI2MGQxNTVmOWViM2VkMzZkN2VjMTkwYWI3NDFiMjBmMTBkN2ZlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xNTEsNiAr
MTUxLDEyIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZl
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZXNS
ZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzUmVwbGllcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlc1JlcGxpZXMuaApAQCAtMTYwLDYgKzE2Niw5IEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYklu
c3BlY3RvclByb3h5TWVzc2FnZXNSZXBsCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3Bl
Y3RvclVJTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NlY0l0ZW1TaGltUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VjSXRlbVNo
aW1Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
YTE5ZDA3OWUwMDNhYThiZjJhMzg1MzFmZDlkZWFjNTFhNzY0ZmIyZi4uYzM0YWY1Y2QzYTE3NDdm
MjZlYzQ0ODljYWQ4M2ZmMmRiNmM1MjZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMTUwLDkgKzE1MCwxMiBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBSZW1vdGVNZWRp
YVJlY29yZGVyTWFuYWdlciBcCiAgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgXAogICAg
IFJlbW90ZU9iamVjdFJlZ2lzdHJ5IFwKKyAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIgXAorICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgXAogICAgIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIFwKICAgICBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eSBc
CiAgICAgUmVtb3RlV2ViSW5zcGVjdG9yVUkgXAorICAgIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ciBcCiAgICAgU2VjSXRlbVNoaW1Qcm94eSBcCiAgICAgU2VydmljZVdvcmtlckZldGNoVGFzayBc
CiAgICAgU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNDZi
MTM0OTg4OWU0ZGY1MDgwYzNiYjFhMTdhODYxZGM0ZTRiNzRiYi4uYzA5NDhkMDk5NWI5NmNiNTNl
NTNmNGE3YWNlM2YzODZjYjUxMzhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDksNiArNDksOSBAQAog
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rp
b24uaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVk
ZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBAIC0xNjIsNiArMTY1
LDE0IEBAIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciYgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9UcmFjCiAKICAgICByZXR1cm4gKm1fYXVkaW9UcmFj
a1JlbmRlcmVyTWFuYWdlcjsKIH0KKworUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlciYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIp
CisgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciA9IG1ha2VVbmlxdWU8
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcj4obV9jb25uZWN0aW9uLmNvcHlS
ZWYoKSk7CisKKyAgICByZXR1cm4gKm1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsK
K30KICNlbmRpZgogI2VuZGlmCiAKQEAgLTIwOSw2ICsyMjAsMTQgQEAgdm9pZCBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIEkKICAgICAgICAgYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcigpLmRpZFJlY2VpdmVS
ZW5kZXJlck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpIHsKKyAgICAgICAgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpLmRpZFJlY2Vp
dmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1l
c3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSkgeworICAgICAgICBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkuZGlkUmVj
ZWl2ZUxheWVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KICNlbmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJS
VEMpCkBAIC0yMzEsNiArMjUwLDEyIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvCiAgICAgICAg
IHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9t
R1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0sp
CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKKyAgICAgICAgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpLmRpZFJlY2VpdmVT
eW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rl
cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICNlbmRpZgogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBjYzIxMTBiNWZhMjE5NDVjNmM0Mzk4OGNjODkx
NWY5YzU4NTFmNjllLi5iOThkNjJmMDYyMTQ5Njg2YWFiNGYwMDVjODUzZGNjNjRjZjdmMmM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7
CiBjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOworY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cjsKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiAKIGNsYXNzIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MKQEAgLTc2LDYgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVN
ZWRpYVJlY29yZGVyTWFuYWdlciYgbWVkaWFSZWNvcmRlck1hbmFnZXIoKTsKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyJiBhdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyKCk7CisgICAgUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlciYgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpOwog
I2VuZGlmCiAjZW5kaWYKIApAQCAtOTgsNiArMTAwLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZWNvcmRl
ck1hbmFnZXI7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+IG1fYXVkaW9UcmFja1Jl
bmRlcmVyTWFuYWdlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogI2Vu
ZGlmCiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzYyOTIxMGU1ZWVmYTgz
YzBmMzYwZDUwODcxMjg2OTgyZjBjZDBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBA
IC0wLDAgKzEsMTQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgorCisjaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVz
c2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI+IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRl
KFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6
Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6
ZSkKK3sKKyAgICBhdXRvIGxheWVyID0gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcj4obmV3IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihpZGVudGlm
aWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBoaWRlUm9vdExheWVyLCBzaXplKSk7CisgICAgcmV0
dXJuIGxheWVyLT5tX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA/IFdURk1vdmUobGF5ZXIpIDog
bnVsbHB0cjsKK30KKworUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaGlkZVJv
b3RMYXllciwgSW50U2l6ZSBzaXplKQorICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisg
ICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAsIG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyKExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoKnRo
aXMsIGhpZGVSb290TGF5ZXIsIHNpemUpKQoreworICAgIEFTU0VSVChtX3NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcik7CisgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29u
dGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOworICAgIG1fbGF5ZXJIb3N0
aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290
TGF5ZXIoKSk7Cit9CisKK1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6flJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpCit7Cit9CisKK09wdGlvbmFsPExheWVySG9zdGluZ0Nv
bnRleHRJRD4gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjb250ZXh0SUQoKQorewor
ICAgIHJldHVybiBtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpOworfQorCitDR1Jl
Y3QgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpib3VuZHMoKSBjb25zdAoreworICAg
IHJldHVybiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+Ym91bmRzKCk7Cit9CisKK3ZvaWQg
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVEaXNwbGF5TW9kZShib29sIGhp
ZGVEaXNwbGF5TGF5ZXIsIGJvb2wgaGlkZVJvb3RMYXllcikKK3sKKyAgICBtX3NhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci0+dXBkYXRlRGlzcGxheU1vZGUoaGlkZURpc3BsYXlMYXllciwgaGlkZVJv
b3RMYXllcik7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRh
dGVBZmZpbmVUcmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKQoreworICAgIG1f
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT51cGRhdGVBZmZpbmVUcmFuc2Zvcm0odHJhbnNmb3Jt
KTsKK30KKwordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUJvdW5k
c0FuZFBvc2l0aW9uKENHUmVjdCBib3VuZHMsIENHUG9pbnQgcG9zaXRpb24pCit7CisgICAgbV9z
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKGJvdW5kcywg
cG9zaXRpb24pOworfQorCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1
c2goKQoreworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5mbHVzaCgpOworfQorCit2
b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2hBbmRSZW1vdmVJbWFnZSgp
Cit7CisgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPmZsdXNoQW5kUmVtb3ZlSW1hZ2Uo
KTsKK30KKwordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1w
bGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCit7CisgICAgbV9t
ZWRpYVRpbWUgPSByZW1vdGVTYW1wbGUudGltZSgpOworCisgICAgaWYgKCFtX2ltYWdlVHJhbnNm
ZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gcmVt
b3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpCisgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24g
PSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0
KCkpOworCisgICAgQVNTRVJUKG1faW1hZ2VUcmFuc2ZlclNlc3Npb24pOworICAgIGlmICghbV9p
bWFnZVRyYW5zZmVyU2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBzYW1wbGVS
ZWYgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShyZW1vdGVTYW1w
bGUuc3VyZmFjZSgpLCByZW1vdGVTYW1wbGUudGltZSgpLCByZW1vdGVTYW1wbGUuc2l6ZSgpKTsK
KworICAgIEFTU0VSVChzYW1wbGVSZWYpOworICAgIGlmICghc2FtcGxlUmVmKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+ZW5xdWV1ZVNhbXBsZSgq
c2FtcGxlUmVmKTsKK30KKwordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNs
ZWFyRW5xdWV1ZWRTYW1wbGVzKCkKK3sKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+
Y2xlYXJFbnF1ZXVlZFNhbXBsZXMoKTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOworfQorCit2b2lkIFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyU3RhdHVzRGlkQ2hhbmdl
KFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpCit7CisgICAgc2VuZChNZXNzYWdl
czo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpTZXREaWRGYWlsIHsgbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXItPmRpZEZhaWwoKSB9KTsKK30KKworV1RGOjpNZWRpYVRpbWUgUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpzdHJlYW1UaW1lKCkgY29uc3QKK3sKKyAgICAvLyBUaGlz
IGlzIG9ubHkgYW4gYXBwcm94aW1hdGlvbiB3aGljaCB3aWxsIGNsZWFyIGFsbCBzYW1wbGVzIGVu
cXVldWVkIGluIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGV4Y2VwdCB0aGUgb25lIGJlaW5n
IHB1c2hlZC4KKyAgICByZXR1cm4gbV9tZWRpYVRpbWU7Cit9CisKK30KKworI2VuZGlmIC8vIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFD
SykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjc4YmJlNDc3OTI3NGQyMjFkYThmMTFjZDRhMWU0YjAzOGE4NzcxNWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQu
aCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVy
LmgiCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CitjbGFzcyBSZW1vdGVWaWRl
b1NhbXBsZTsKK2NsYXNzIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjsKK307CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgOiBwdWJs
aWMgV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQsIHB1YmxpYyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGUoU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVySWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgYm9vbCBoaWRlUm9vdExh
eWVyLCBXZWJDb3JlOjpJbnRTaXplKTsKKyAgICB+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyKCk7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICBP
cHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+IGNvbnRleHRJRCgpOworICAgIENHUmVjdCBi
b3VuZHMoKSBjb25zdDsKKyAgICAKK3ByaXZhdGU6CisgICAgUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSk7CisKKyAg
ICB2b2lkIHVwZGF0ZURpc3BsYXlNb2RlKGJvb2wgaGlkZURpc3BsYXlMYXllciwgYm9vbCBoaWRl
Um9vdExheWVyKTsKKyAgICB2b2lkIHVwZGF0ZUFmZmluZVRyYW5zZm9ybShDR0FmZmluZVRyYW5z
Zm9ybSk7CisgICAgdm9pZCB1cGRhdGVCb3VuZHNBbmRQb3NpdGlvbihDR1JlY3QsIENHUG9pbnQp
OworICAgIHZvaWQgZmx1c2goKTsKKyAgICB2b2lkIGZsdXNoQW5kUmVtb3ZlSW1hZ2UoKTsKKyAg
ICB2b2lkIGVucXVldWVTYW1wbGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7CisgICAg
dm9pZCBjbGVhckVucXVldWVkU2FtcGxlcygpOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVy
CisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZp
bmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9pZGVudGlmaWVyLnRvVUludDY0KCk7IH0KKworICAgIC8vIFdlYkNvcmU6
OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50CisgICAgdm9pZCBzYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJTdGF0dXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyJikgZmluYWw7CisgICAgV1RGOjpNZWRpYVRpbWUgc3RyZWFtVGltZSgpIGNvbnN0IGZpbmFs
OworCisgICAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7
CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXll
ckhvc3RpbmdDb250ZXh0PiBtX2xheWVySG9zdGluZ0NvbnRleHQ7CisgICAgV1RGOjpNZWRpYVRp
bWUgbV9tZWRpYVRpbWU7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmI3YmJlZmZhMzViY2Q2MDZjNDg4ZTFmNmMxYmJhZWQ4YTFmZjY5YmYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM2IEBACisj
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIgTm90UmVmQ291bnRlZCB7CisgICAgVXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxh
eUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIpCisgICAgVXBkYXRlQWZmaW5lVHJhbnNmb3JtKENH
QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSkKKyAgICBVcGRhdGVCb3VuZHNBbmRQb3NpdGlvbihD
R1JlY3QgYm91bmRzLCBDR1BvaW50IHBvc2l0aW9uKQorICAgIEZsdXNoKCkKKyAgICBGbHVzaEFu
ZFJlbW92ZUltYWdlKCkKKyAgICBFbnF1ZXVlU2FtcGxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2Ft
cGxlIHNhbXBsZSkKKyAgICBDbGVhckVucXVldWVkU2FtcGxlcygpCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGI5YmU0OWNhYzcyZjQ0ZTcxNzk3N2M0YTQ2NmUyZTI3OWYxYjE0ZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRl
ICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5l
Y3Rpb24pKQoreworfQorCitSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjp+
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpID0gZGVmYXVsdDsKKwordm9p
ZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTGF5ZXJN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIGlmIChhdXRvKiBsYXllciA9IG1fbGF5ZXJzLmdldChtYWtlT2JqZWN0SWRlbnRp
ZmllcjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0
aW5hdGlvbklEKCkpKSkKKyAgICAgICAgbGF5ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworfQorCisvLyBGSVhNRTogV2Ugc2hvdWxkIHJlZmFjdG9yIGNvZGUgdG8g
dXNlIGFuIGFzeW5jaHJvbm91cyBJUEMuCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXI6OmNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZp
ZXIgaWRlbnRpZmllciwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUsIE1lc3NhZ2Vz
OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllckRlbGF5
ZWRSZXBseSYmIHJlcGx5KQoreworICAgIEFTU0VSVCghbV9sYXllcnMuY29udGFpbnMoaWRlbnRp
ZmllcikpOworICAgIGF1dG8gbGF5ZXIgPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OmNyZWF0ZShpZGVudGlmaWVyLCBtX2Nvbm5lY3Rpb24uY29weVJlZigpLCBoaWRlUm9vdExheWVy
LCBzaXplKTsKKyAgICBpZiAoIWxheWVyKQorICAgICAgICByZXR1cm4gcmVwbHkoeyB9LCB7IH0p
OworCisgICAgcmVwbHkobGF5ZXItPmNvbnRleHRJRCgpLCBsYXllci0+Ym91bmRzKCkpOworICAg
IG1fbGF5ZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGxheWVyKSk7Cit9CisKK3ZvaWQgUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6cmVsZWFzZUxheWVyKFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9s
YXllcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fbGF5ZXJzLnJlbW92ZShpZGVudGlm
aWVyKTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZjliMzBjNzYxNjIzZGQ5NDhkMjliZTBmMzdmMGFkMGY0N2U1YTlhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5B
QkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIgorI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2Ug
SVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOworCitjbGFz
cyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyIGZpbmFsIDogcHJpdmF0ZSBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcihS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlcigpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9t
V2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+JiBlbmNvZGVyKSB7IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyLCBlbmNvZGVyKTsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVy
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFs
OworCisgICAgdm9pZCBjcmVhdGVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlm
aWVyLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUsIE1lc3NhZ2VzOjpSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllckRlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIHJlbGVhc2VMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVu
dGlmaWVyKTsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBI
YXNoTWFwPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+PiBtX2xheWVyczsKK307CisKK30KKwor
I2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNDQ5NTMzYjUxNjVkZThjNzdiZmU0NjJmNzk4YTMzZDE2OWUwNzc3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKK21lc3NhZ2VzIC0+IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIgTm90UmVmQ291bnRlZCB7CisgICAgQ3JlYXRlTGF5ZXIoV2ViS2l0OjpTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJJZGVudGlmaWVyIGlkLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6Oklu
dFNpemUgc2l6ZSkgLT4gKE9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBj
b250ZXh0SUQsIENHUmVjdCBib3VuZHMpIFN5bmNocm9ub3VzCisgICAgUmVsZWFzZUxheWVyKFdl
YktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCkKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAyNTY0ZjUyODgy
OGY1MWQwM2NkZDMwYzdmZjg3NmQyNWRkYTU0NWNhLi5kYzllMTRmNWFjZGY2OTg0MTEzN2JmY2Ix
MGU0ZTY0NmNjNDJlYTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKQEAgLTIyNSw2ICsyMjUsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9k
ZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dl
YktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcics
CiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggODRkNDM5YzUwNTQw
NGI3ZTU5MDViMzZlN2RlYzc2ODlkZGZhOTQ1NC4uN2JmNzFjMTdhYmRkM2Q4YjEzMTkwMjIwMDU4
YzlmOWMyMTlmNjBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgKQEAgLTQ0Niw2ICs0NDYsMjYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCYpOwogICAgIHN0YXRpYyBP
cHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShEZWNvZGVyJik7CiB9Owor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+IHsKKyAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOworICAgIHN0YXRpYyBPcHRpb25hbDxDR1Bv
aW50PiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxDR1NpemU+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHU2l6ZSk7
CisgICAgc3RhdGljIE9wdGlvbmFsPENHU2l6ZT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dSZWN0PiB7CisgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBDR1JlY3QpOworICAgIHN0YXRpYyBPcHRpb25hbDxDR1JlY3Q+IGRl
Y29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENH
QWZmaW5lVHJhbnNmb3JtPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0Fm
ZmluZVRyYW5zZm9ybSk7CisgICAgc3RhdGljIE9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBk
ZWNvZGUoRGVjb2RlciYpOworfTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2Rl
cnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
TWFjLm1tCmluZGV4IDViYTUyYzkwYWViMGZlYWQ2ZjQ0OGQ3MDg2ZjU5YTJhZTZlOWU5NTIuLjhj
YmRhZmJlMTQ2ZmM3NzFjMjlmM2FjOWIxYWUxYWFlOGI0NmE4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAtNTQ4
LDYgKzU0OCw3OSBAQCBPcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPjo6ZGVjbwogICAgIHJldHVybiBXVEZNb3Zl
KGNvbW1hbmQpOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIENHUmVjdCByZWN0KQoreworICAgIGVuY29kZXIgPDwgcmVjdC5vcmlnaW4g
PDwgcmVjdC5zaXplOworfQorCitPcHRpb25hbDxDR1JlY3Q+IEFyZ3VtZW50Q29kZXI8Q0dSZWN0
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8Q0dQb2ludD4gb3Jp
Z2luOworICAgIGRlY29kZXIgPj4gb3JpZ2luOworICAgIGlmICghb3JpZ2luKQorICAgICAgICBy
ZXR1cm4geyB9OworCisgICAgT3B0aW9uYWw8Q0dTaXplPiBzaXplOworICAgIGRlY29kZXIgPj4g
c2l6ZTsKKyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4g
Q0dSZWN0IHsgKm9yaWdpbiwgKnNpemUgfTsKK30KKwordm9pZCBBcmd1bWVudENvZGVyPENHU2l6
ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1NpemUgc2l6ZSkKK3sKKyAgICBlbmNvZGVy
IDw8IHNpemUud2lkdGggPDwgc2l6ZS5oZWlnaHQ7Cit9CisKK09wdGlvbmFsPENHU2l6ZT4gQXJn
dW1lbnRDb2RlcjxDR1NpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBDR1Np
emUgc2l6ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUud2lkdGgpKQorICAgICAgICBy
ZXR1cm4geyB9OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZS5oZWlnaHQpKQorICAgICAg
ICByZXR1cm4geyB9OworICAgIHJldHVybiBzaXplOworfQorCit2b2lkIEFyZ3VtZW50Q29kZXI8
Q0dQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1BvaW50IHBvaW50KQoreworICAg
IGVuY29kZXIgPDwgcG9pbnQueCA8PCBwb2ludC55OworfQorCitPcHRpb25hbDxDR1BvaW50PiBB
cmd1bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBD
R1BvaW50IHBvaW50OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCisgICAgICAg
IHJldHVybiB7IH07CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKyAgICByZXR1cm4gcG9pbnQ7Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxD
R0FmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5z
Zm9ybSB0cmFuc2Zvcm0pCit7CisgICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zv
cm0uYiA8PCB0cmFuc2Zvcm0uYyA8PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJh
bnNmb3JtLnR5OworfQorCitPcHRpb25hbDxDR0FmZmluZVRyYW5zZm9ybT4gQXJndW1lbnRDb2Rl
cjxDR0FmZmluZVRyYW5zZm9ybT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIENH
QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5z
Zm9ybS5hKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRy
YW5zZm9ybS5iKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHRyYW5zZm9ybS5jKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHRyYW5zZm9ybS5kKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHRyYW5zZm9ybS50eCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZSh0cmFuc2Zvcm0udHkpKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVy
biB0cmFuc2Zvcm07Cit9CisKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAKIHZvaWQg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyJiBjb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA0NzJl
NGUwMmY2ODBjNGFlZTYzYmY0NTg1Yjg3NTczMDU4ZmYzNGFlLi4zNjRiY2Q4OTBiNTA5ZTgxOGI2
Mjc0MGQ1NjUzYzcwMDQ5ZDk3YTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI4LDYgKzI4LDggQEAgR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCiBH
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXIuY3BwCiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAogR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwCitHUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCitHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcApAQCAtNTI4LDYgKzUzMCw4IEBAIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3MuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
aXZhdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNw
cAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNw
cAorV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKK1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAog
CiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cmlu
ZGV4IGIyMzgzMmFiMjdhNzRiNTdjMjY1ZjkzMjlhMGJlMmNjMGYwOTljYjkuLjZhOGUyZTY5MDVj
MzViYzFiYzQ4YzQ2OWE2ZWM2Yzg1ZDVmODI0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAg
LTY0NCw1ICs2NDQsOCBAQCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
TWVzc2FnZVJlY2VpdmVyLmNwcAogVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMWM3MGU2NDVlODQzM2YxNGFlMDBkNTdkMmMyNTQzYTAwZTBjMmYyNC4uYjlk
NjgzNTA5ZmEwMTA3ZmFiNWNjNjYwMTJiMGQ3ZDY4Mjg3OTBlNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjkxLDYgKzMyOTEsOCBA
QAogCQkzRjkxNUMwRTFGNTY0REVEMDAxODNDRTkgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbTsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTNGOTE1QzBGMUY1NjRERUQwMDE4M0NFOSAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1Mu
aDsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZCMDhFNDIxRjYwQjI0MDAwNUU1MzEy
IC8qIGlPUy54Y2Fzc2V0cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGZvbGRlci5hc3NldGNhdGFsb2c7IHBhdGggPSBpT1MueGNhc3NldHM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDI0RkMwMjNDRjEwNDUwMEZERjk4RSAvKiBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDEwMjRGQzEyM0NGMTA0NTAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMDNGQkExMjA2MUJEQjcwMEMyRUFGOCAvKiBOZXR3b3JrTG9hZENoZWNr
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0xvYWRDaGVja2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDNGQkEyMjA2MUJEQjgwMEMyRUFG
OCAvKiBOZXR3b3JrTG9hZENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTmV0d29ya0xvYWRDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEwNDgyQ0IxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDTmV0d29yay5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0zNDIyLDYgKzM0MjQsMTYgQEAKIAkJNDFGQ0Q2QUQyM0NDQzI2
MDAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkFFMjNDQ0MyNjEwMEM2MjU2NyAvKiBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkFGMjNDQ0MyNjEwMEM2MjU2NyAvKiBBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkIzMjNDREM2MDQwMEM2MjU2NyAvKiBT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxRkNENkI0MjNDRENBQzIwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkI1
MjNDREUxQzYwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QjYyM0NERTFDNjAwQzYyNTY3IC8qIFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxRkNENkI3MjNDREU1M0QwMEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QjgyM0NERTUzRTAwQzYyNTY3IC8q
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
RkNENkJDMjNDRTAzMTgwMEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2
QkQyM0NFMDQzRjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDFGQ0Q2QkUyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxRkNENkJGMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MEFFQkYxREMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9y
eUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZE1l
bW9yeUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1OTk4NDEyMjgz
M0U2MDAwRTYxMzczIC8qIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDQ5RDkwRDgyMUZENjNGRTAwRjY3N0MwIC8qIExvY2FsQXV0aGVudGljYXRpb25T
b2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2Fs
QXV0aGVudGljYXRpb25Tb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTcyMTksNiArNzIzMSwxMiBAQAogCQkJCTQxNzZFODkyMjNDMzRENkUwMDNFODNGRSAvKiBNZWRp
YVJlY29yZGVyUHJvdmlkZXIuaCAqLywKIAkJCQk0MTcyMTk4QzIzQjYxMkU4MDBBRTU2ODYgLyog
UlRDRGVjb2RlcklkZW50aWZpZXIuaCAqLywKIAkJCQk0MTU4NjQ5QTIzQkUwOTI0MDBBMEE2MUUg
LyogUlRDRW5jb2RlcklkZW50aWZpZXIuaCAqLywKKwkJCQk0MUZDRDZCNzIzQ0RFNTNEMDBDNjI1
NjcgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCAqLywKKwkJCQk0MUZDRDZCMzIzQ0RD
NjA0MDBDNjI1NjcgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggKi8sCisJCQkJNDFGQ0Q2
QjgyM0NERTUzRTAwQzYyNTY3IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5p
biAqLywKKwkJCQk0MUZDRDZCQzIzQ0UwMzE4MDBDNjI1NjcgLyogU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVySWRlbnRpZmllci5oICovLAorCQkJCTQxMDI0RkMxMjNDRjEwNDUwMEZERjk4RSAvKiBT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLywKKwkJCQk0MTAyNEZDMDIzQ0Yx
MDQ1MDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oICovLAogCQkJ
KTsKIAkJCXBhdGggPSB3ZWJydGM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNzI0
MSw2ICs3MjU5LDEyIEBACiAJCQkJNDE3NkU4OUEyM0MzNkY3MTAwM0U4M0ZFIC8qIFJlbW90ZU1l
ZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcCAqLywKIAkJCQk0MTc2RTg5OTIzQzM2RDhFMDAzRTgzRkUg
LyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaCAqLywKIAkJCQk0MTc2RTg5QjIzQzM3MjIy
MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJ
CQkJNDFGQ0Q2QjUyM0NERTFDNjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5jcHAgKi8sCisJCQkJNDFGQ0Q2QjQyM0NEQ0FDMjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5oICovLAorCQkJCTQxRkNENkI2MjNDREUxQzYwMEM2MjU2NyAv
KiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJNDFG
Q0Q2QkUyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXIuY3BwICovLAorCQkJCTQxRkNENkJGMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8sCisJCQkJNDFGQ0Q2QkQyM0NFMDQzRjAw
QzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMu
aW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC0xMjA2OCw2ICsxMjA5Miw3IEBACiAJCQkJNDFERTdDNkMyMjI3OEYxRTAwNTMyQjY1
IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3
ODcyMTJCNkFCMTAwRjQ5M0ZEIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBMUFEQUZCNjIzNjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVtb3J5LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERp
c3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1
IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUEzMzRERUQxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFw
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNjhFRURFMjMwM0E5MDIw
MEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTEyMjE3LDcgKzEyMjQyLDYgQEAKIAkJCQkyRDExQjdENTIxMjZBMjgzMDA2Rjg4
NzggLyogVW5pZmllZFNvdXJjZTcyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzExMjEy
RjNCMzMwMDQ5QzE3NCAvKiBVbmlmaWVkU291cmNlNzItbW0ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyRDU0QzMxMDIxMkYzQjMzMDA0OUMxNzQgLyogVW5pZmllZFNvdXJjZTczLW1tLm1tIGluIFNv
dXJjZXMgKi8sCi0JCQkJNTc1QjFCQkEyM0NFOUMxMzAwMjA2MzlBIC8qIFdlYkF1dG9tYXRpb25T
ZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCN0Q2MjEyNkEyODMwMDZGODg3OCAv
KiBVbmlmaWVkU291cmNlNzMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1NEMzMTUyMTJGM0Iz
MzAwNDlDMTc0IC8qIFVuaWZpZWRTb3VyY2U3NC1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJE
MTFCN0Q3MjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNzQuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0xMjI2NCw3ICsxMjI4OCw5IEBACiAJCQkJMUE2MDIyNEMxOEMxNkI5RjAwQzNFOEM5
IC8qIFZpc2l0ZWRMaW5rU3RvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUE4RTdEM0MxOEMxNTE0OTAwNUE3MDJBIC8qIFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3RENFRDcwMjE0MkVFNjgw
MDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzVCMUJCQTIzQ0U5QzEzMDAyMDYzOUEgLyogV2Vi
QXV0b21hdGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwQTE5NTcxQzkwMDY4
RjAwRkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTU3NUIxQkI4MjNDRTlCRkMwMDIwNjM5QSAvKiBXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMEExOTUzMUM4RkZERkIwMEZF
MEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBMUZFQzFDMTYyN0I0NTcwMDcwMEY2RCAvKiBXZWJDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMDkzNDQ3MTMxNUI5MjIw
MDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMTIyODAsNyArMTIzMDYsNiBAQAogCQkJCUJDMEU2MDYxMTJENkJBOTEwMDEyQTcy
QSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkMwRTYxODIxMkQ2Q0IxRDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMDUyMzc1MUM3
M0QzOEYwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVs
YXRlZElucHV0RGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzNFODM1QjIzQTFC
NzUwMDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZFREJEQ0Q2MUU2OEQyMDAwMEE1OUY4RiAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1
cHREaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDOEUy
QTM1MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0xMjMzNiw3ICsxMjM2MSw2IEBACiAJCQkJNjM3MjgxQTMyMUFEQzc0
NDAwOUUwREU2IC8qIFdLRG93bmxvYWRQcm9ncmVzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVD
RTkxMjBEMjI5M0MyMTkwMDVCRUM3OCAvKiBXS01haW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQk0
NjU3RDg4QTIyNjY0QTJGMDA1REU4MjMgLyogV0tPcmllbnRhdGlvbkFjY2Vzc0FsZXJ0Lm1tIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNTc1QjFCQjgyM0NFOUJGQzAwMjA2MzlBIC8qIFdlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNBMjZEODMyMTdBRDFCODAw
Rjk3QTM1IC8qIFdLU2FmZUJyb3dzaW5nV2FybmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFE
QjAxOTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3QTc4RkYzMzIyNDE5MTlCMDA5NjQ4M0UgLyogV0tTdG9yYWdlQWNjZXNzQWxlcnQubW0g
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMThlOTM2ZGUzMjMwNzcwZjI0MzYxYjZhYmFh
OGUxN2U0ZDJlNWFjMC4uNTNhODVlNmFhMDhiNmI5ZTgzMzJmYmI5NTZkZGFhOWM3OTI1YTA4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKQEAgLTY0LDYgKzY1LDE1IEBAIHZv
aWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OlN0cmluCiB7CiB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlciYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OnNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIoKQoreworICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyKQorICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgPSBtYWtl
VW5pcXVlPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+KCk7CisgICAgcmV0dXJuICpt
X3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtNzYsNyArODYsMTMgQEAgdm9pZCBHUFVQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkQKICAgICAgICAgICAgIGNhcHR1cmVNYW5hZ2VyLT5kaWRSZWNlaXZlTWVzc2FnZUZy
b21HUFVQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19UUkFDSykKKyAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKS5kaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKGNvbm5l
Y3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKICNpZiBVU0UoTElCV0VCUlRDKSAmJiBQTEFURk9STShDT0NPQSkKICAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVj
czo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmxpYldlYlJUQ0NvZGVjcygpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5oCmluZGV4IGE4YWQ0ZmVlODZiMjY1OWI0YWZmYjdjNDg0ZGExODFjM2JlZjI3ZDAu
LjQ2MDBlNTNiYjI4NGQ3NDhjZjM5MTFiOTRkYjU1OTlhOWNiNDVmMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTI4
LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJDb25uZWN0
aW9uLmgiCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKQEAgLTUxLDYgKzUyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXVkaXRUb2tlbihPcHRp
b25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuKSB7IG1fYXVkaXRUb2tlbiA9IGF1ZGl0VG9r
ZW47IH0KICAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuKCkgY29uc3QgeyBy
ZXR1cm4gbV9hdWRpdFRva2VuOyB9CiAjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKTsK
KyNlbmRpZgogCiBwcml2YXRlOgogICAgIEdQVVByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllcik7CkBAIC02Niw2ICs3MCw5IEBAIHByaXZhdGU6CiAjaWYgSEFWRShB
VURJVF9UT0tFTikKICAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBtX2F1ZGl0VG9rZW47CiAj
ZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyPiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CisjZW5kaWYK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3Bw
CmluZGV4IDU0N2Q0NWYyYWVmNzljZGFiOWQyZTM0ZWZjOTJlMGRjNzY3MDAwMWMuLjE4MGFjNmQy
NDZmNmM3MWEwZGNlMzkzMzNmOTBmNzhlNzg0NTkxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5jcHAKQEAgLTM3MCw4ICszNzAsMTIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncykKICAgICBSZW1v
dGVNZWRpYVBsYXllclN1cHBvcnQ6OnNldFJlZ2lzdGVyUmVtb3RlUGxheWVyQ2FsbGJhY2soc2V0
dGluZ3MudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkgPyBXVEZNb3ZlKHJlZ2lzdGVyRW5naW5lKSA6
IFJlbW90ZU1lZGlhUGxheWVyU3VwcG9ydDo6UmVnaXN0ZXJSZW1vdGVQbGF5ZXJDYWxsYmFjaygp
KTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0gICAgaWYgKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgp
KQorICAgIGlmIChzZXR0aW5ncy51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSkgewogICAgICAgICBX
ZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0Q3JlYXRvcihXZWJLaXQ6
OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUpOworICAgICAgICBXZWJDb3Jl
OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldENyZWF0b3IoW10oYXV0byYgY2xpZW50LCBi
b29sIGhpZGVSb290TGF5ZXIsIGF1dG8gc2l6ZSkgeworICAgICAgICAgICAgcmV0dXJuIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlcigpLmNyZWF0ZUxheWVyKGNsaWVudCwgaGlkZVJvb3RMYXll
ciwgc2l6ZSk7CisgICAgICAgIH0pOworICAgIH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTAxNjFhYWQ5NDc0ZDZiMGYxZjkwMGIwNTQ0
ZjU5ODBkMzY5OGZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcApAQCAtMCwwICsxLDEzMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2luY2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgiCisjaW5jbHVkZSAi
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYg
bWFuYWdlciwgQ2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXpl
KQoreworICAgIGF1dG8gbGF5ZXIgPSBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyPihuZXcgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKG1hbmFnZXIsIGNsaWVudCwgaGlk
ZVJvb3RMYXllciwgc2l6ZSkpOworICAgIHJldHVybiBsYXllci0+cm9vdExheWVyKCkgPyBXVEZN
b3ZlKGxheWVyKSA6IG51bGxwdHI7Cit9CisKK1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6U2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIG1h
bmFnZXIsIENsaWVudCYgY2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkK
KyAgICA6IFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihjbGllbnQpCisgICAgLCBt
X21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX2Nvbm5lY3Rpb24oV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkpCisgICAgLCBtX2lkZW50aWZpZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmll
cjo6Z2VuZXJhdGUoKSkKK3sKKyAgICBtYW5hZ2VyLmFkZExheWVyKCp0aGlzKTsKKworICAgIE9w
dGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4gY29udGV4dElkOworICAgIGlmICghbV9jb25u
ZWN0aW9uLT5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlcjo6Q3JlYXRlTGF5ZXIgeyBtX2lkZW50aWZpZXIsIGhpZGVSb290TGF5ZXIsIHNpemUg
fSwgTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OkNyZWF0
ZUxheWVyOjpSZXBseSB7IGNvbnRleHRJZCwgbV9ib3VuZHMgfSwgMCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICghY29udGV4dElkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZpZGVv
TGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGlu
Z0NvbnRleHQoKmNvbnRleHRJZCk7Cit9CisKK1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6flNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpSZWxlYXNlTGF5ZXIg
eyBtX2lkZW50aWZpZXIgfSwgMCk7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5h
Z2VyLT5yZW1vdmVMYXllcigqdGhpcyk7Cit9CisKK2Jvb2wgU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpkaWRGYWlsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kaWRGYWlsOworfQorCit2b2lk
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlz
cGxheUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlVwZGF0ZURpc3BsYXlN
b2RlIHsgaGlkZURpc3BsYXlMYXllciwgaGlkZVJvb3RMYXllciB9LCBtX2lkZW50aWZpZXIpOwor
fQorCitDR1JlY3QgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpib3VuZHMoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2JvdW5kczsKK30KKwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OnVwZGF0ZUFmZmluZVRyYW5zZm9ybShDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCit7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OlVwZGF0ZUFmZmluZVRyYW5zZm9ybSB7IHRyYW5zZm9ybSB9LCBtX2lkZW50aWZpZXIp
OworfQorCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQm91bmRzQW5kUG9z
aXRpb24oQ0dSZWN0IGJvdW5kcywgQ0dQb2ludCBwb3NpdGlvbikKK3sKKyAgICBtX2JvdW5kcyA9
IGJvdW5kczsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6VXBkYXRlQm91bmRzQW5kUG9zaXRpb24geyBib3VuZHMsIHBvc2l0
aW9uIH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpmbHVzaCgpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkZsdXNoIHsgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9p
ZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmZsdXNoQW5kUmVtb3ZlSW1hZ2UoKQoreworICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpGbHVzaEFuZFJlbW92ZUltYWdlIHsgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBs
ZSkKK3sKKyAgICBpZiAoYXV0byByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3Jl
YXRlKHNhbXBsZSkpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpFbnF1ZXVlU2FtcGxlIHsgKnJlbW90ZVNhbXBsZSB9
LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y2xl
YXJFbnF1ZXVlZFNhbXBsZXMoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGVhckVucXVldWVkU2FtcGxlcyB7IH0s
IG1faWRlbnRpZmllcik7Cit9CisKK1BsYXRmb3JtTGF5ZXIqIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6cm9vdExheWVyKCkKK3sKKyAgICByZXR1cm4gbV92aWRlb0xheWVyLmdldCgpOworfQor
Cit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0RGlkRmFpbChib29sIHZhbHVlKQor
eworICAgIG1fZGlkRmFpbCA9IHZhbHVlOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjU5YzUyZmRmNjljNmJiOTk3MjU5ZDU0MmMyYzg2
NTcwMzgyNzBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKQEAgLTAsMCArMSw3NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJ
REVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJl
Y2VpdmVyLmgiCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllci5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CisKK2NsYXNzIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIsIHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcj4geworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGUoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlciYsIENsaWVudCYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSk7Cisg
ICAgflNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpOworCisgICAgU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVySWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOworCitwcml2YXRlOgorICAgIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiwgQ2xpZW50JiwgYm9vbCBoaWRlUm9v
dExheWVyLCBXZWJDb3JlOjpJbnRTaXplKTsKKworICAgIC8vIFdlYkNvcmU6OlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcgorICAgIGJvb2wgZGlkRmFpbCgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQg
dXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxheUxheWVyLCBib29sIGhpZGVSb290TGF5
ZXIpIGZpbmFsOworICAgIENHUmVjdCBib3VuZHMoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHVw
ZGF0ZUFmZmluZVRyYW5zZm9ybShDR0FmZmluZVRyYW5zZm9ybSkgZmluYWw7CisgICAgdm9pZCB1
cGRhdGVCb3VuZHNBbmRQb3NpdGlvbihDR1JlY3QsIENHUG9pbnQpIGZpbmFsOworICAgIHZvaWQg
Zmx1c2goKSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoQW5kUmVtb3ZlSW1hZ2UoKSBmaW5hbDsKKyAg
ICB2b2lkIGVucXVldWVTYW1wbGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICB2
b2lkIGNsZWFyRW5xdWV1ZWRTYW1wbGVzKCkgZmluYWw7CisgICAgUGxhdGZvcm1MYXllciogcm9v
dExheWVyKCkgZmluYWw7CisgICAgCisgICAgdm9pZCBzZXREaWRGYWlsKGJvb2wpOworCisgICAg
V2Vha1B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyPiBtX21hbmFnZXI7CisgICAg
UmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworCisgICAgUmV0YWluUHRyPFBsYXRmb3Jt
TGF5ZXI+IG1fdmlkZW9MYXllcjsKKyAgICBDR1JlY3QgbV9ib3VuZHM7CisgICAgYm9vbCBtX2Rp
ZEZhaWwgeyBmYWxzZSB9OworfTsKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZlZWZmYWY1MmE2OWNlYTE5YWZkODQ4ZTdhODU2NGYwNzJmNWJiOTIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworbWVzc2FnZXMgLT4gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIE5vdFJlZkNv
dW50ZWQgeworICAgIFNldERpZEZhaWwoYm9vbCB2YWx1ZSkKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg2OTVm
ZmM4ZTljYzAzNDMyODY2MzZmNjJmNjk5NWRkY2QyNDNmMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UgLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50
aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVySWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRl
bnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MjJmNzcz
ZDg1ZDgyYmUxZjJmMzcxNTAzZWU4ZGNmY2VhZmNlOTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCIKKworI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19U
UkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXI6OmRpZFJlY2VpdmVMYXllck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGF1dG8qIGxheWVyID0gbV9sYXll
cnMuZ2V0KG1ha2VPYmplY3RJZGVudGlmaWVyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50
aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpLmdldCgpKQorICAgICAgICBsYXll
ci0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7Cit9CisKK3N0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXI6OmNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
Q2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSBzaXpl
KQoreworICAgIGF1dG8gbGF5ZXIgPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSgq
dGhpcywgY2xpZW50LCBoaWRlUm9vdExheWVyLCBzaXplKTsKKyAgICBpZiAoIWxheWVyKQorICAg
ICAgICByZXR1cm4geyB9OworCisgICAgbV9sYXllcnMuYWRkKGxheWVyLT5pZGVudGlmaWVyKCks
IG1ha2VXZWFrUHRyKCpsYXllcikpOworICAgIHJldHVybiBsYXllcjsKK30KKwordm9pZCBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjphZGRMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXImIGxheWVyKQoreworICAgIEFTU0VSVCghbV9sYXllcnMuY29udGFpbnMobGF5ZXIuaWRl
bnRpZmllcigpKSk7CisgICAgbV9sYXllcnMuYWRkKGxheWVyLmlkZW50aWZpZXIoKSwgbWFrZVdl
YWtQdHIobGF5ZXIpKTsKK30KKwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
OjpyZW1vdmVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImIGxheWVyKQoreworICAgIEFT
U0VSVChtX2xheWVycy5jb250YWlucyhsYXllci5pZGVudGlmaWVyKCkpKTsKKyAgICBtX2xheWVy
cy5yZW1vdmUobGF5ZXIuaWRlbnRpZmllcigpKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lY2MzYWY3MGQ4NWY4
N2NjZmIzZGUyNjE0ZDNmODU5M2M4ZDQzNGYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworICAg
IH5TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworCisgICAgdm9p
ZCBhZGRMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImKTsKKyAgICB2b2lkIHJlbW92ZUxh
eWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTGF5
ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZUxheWVyKFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50JiwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJD
b3JlOjpJbnRTaXplKTsKKworcHJpdmF0ZToKKyAgICBIYXNoTWFwPFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcklkZW50aWZpZXIsIFdlYWtQdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPj4gbV9s
YXllcnM7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0p
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387901</attachid>
            <date>2020-01-16 02:54:31 -0800</date>
            <delta_ts>2020-01-16 05:01:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206286-20200116115429.patch</filename>
            <type>text/plain</type>
            <size>99633</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlhMjNkYWU2ZTU0Mjgx
NDVkY2E2ZDcxMzhlNzBhMmE0NDYxODY3OS4uZDM0NmU3ZDEwYzdmN2Y3ODkxZGQ1MmVhOWFkMDBi
MjEyNTAzZTdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIwLTAxLTE2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
TWVkaWFTdHJlYW0gdmlkZW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjI4NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHdheSBmb3IgV2Vi
S2l0IGxheWVyIHRvIGNyZWF0ZSBpdHMgb3duIHNwZWNpZmljIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci4KKyAgICAgICAgV2ViS2l0IGxheWVyIGNhbiBzZXQgYSBmdW5jdGlvbiBwb2ludGVyIHRo
YXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuCisgICAg
ICAgIElmIG5vbmUgaXMgcHJvdmlkZWQsIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGlz
IHVzZWQuCisKKyAgICAgICAgVXBkYXRlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQyB0byBtb25pdG9yIGl0c2VsZiBpdHMgcm9vdCBsYXllciBib3VuZHMgY2hhbmdlLgorICAg
ICAgICBDb252ZXJzZWx5LCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBubyBsb25nZXIg
bW9uaXRvcnMgaXRzIHJvb3QgbGF5ZXIgYm91bmRzIGNoYW5nZS4KKyAgICAgICAgVGhpcyByZW1v
dmVzIHRoZSBuZWVkIGZvciBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudCB0byBiZSBu
b3RpZmllZCBvZiBib3VuZHMgY2hhbmdlLgorCisgICAgICAgIFdlYlJUQyBpbmNvbWluZyB2aWRl
byB0cmFja3MgZG8gbm90IGhhdmUgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMgc28gd2UgbWFyayB0
aGVtIGFzIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LgorICAgICAg
ICBUaGlzIGlzIGN1cnJlbnRseSBsb3N0IHdoZW4gZG9pbmcgSVBDIGZyb20gV2ViUHJvY2VzcyB0
byBOZXR3b3JrUHJvY2Vzcy4gQWRkIHRoaXMgaW5mb3JtYXRpb24gZm9yIGV2ZXJ5IGVucXVldWVk
IHNhbXBsZSBpbiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci4KKyAgICAgICAgV2UgbWln
aHQgd2FudCBpbiB0aGUgZnV0dXJlIHRvIHNlcmlhbGl6ZSBhbGwgYXR0YWNobWVudHMgb2YgdGhl
IHNhbXBsZS4KKworICAgICAgICBNYW51YWxseSB0ZXN0ZWQuCisKKyAgICAgICAgKiBTb3VyY2Vz
Q29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OnNldENyZWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLm1tOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1
c0NoYW5nZUxpc3RlbmVyIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV2ViQVZTYW1wbGVCdWZm
ZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBzdGFydF0pOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1
ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIHN0b3BdKToKKyAgICAgICAgKC1bV2ViQVZTYW1wbGVC
dWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0
OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+TG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2Fs
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjplbnF1ZXVlU2FtcGxlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgICgt
W1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBpbml0V2l0aFBhcmVudDpd
KToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyIGRl
YWxsb2NdKToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3Rl
bmVyIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0No
YW5nZUxpc3RlbmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3Vu
ZHNDaGFuZ2VMaXN0ZW5lciBzdG9wXSk6CisgICAgICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJC
b3VuZHNDaGFuZ2VMaXN0ZW5lciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5n
ZTpjb250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp+TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5zdXJlTGF5ZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cm9vdExh
eWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6dXBkYXRlRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cm9vdExheWVyQm91bmRzRGlkQ2hhbmdl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcDoK
KyAgICAgICAgVW5pZmllZCBidWlsZCBmaXguCisKIDIwMjAtMDEtMTUgIHlvdWVubiBmYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBhbiBhYnN0cmFjdCBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDE5YTFkODlhNjRlMTY3MTM0YWM5ZDM1
ZDhkYTIwYTMxYjMwNDRhMC4uMjI5YTc2MjAwNzY1N2E4MjEyYmUzMTIwZTZjYjIzYTliYTQ3YmEz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAyMC0wMS0xNiAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIE1lZGlhU3RyZWFt
IHZpZGVvIHRyYWNrIHJlbmRlcmluZyBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYyODYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgV2ViUHJvY2VzcyBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIgYW5kIEdQVVByb2Nlc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLgorICAgICAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgaXMgYSB3cmFw
cGVyIGFyb3VuZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci4KKworICAgICAgICBBIHN5
bmNocm9ub3VzIElQQyBpcyB1c2VkIGF0IGNyZWF0aW9uIHRpbWUgb2YgdGhlIGxheWVyIHRvIG1h
a2Ugc3VyZSB3ZSBoYXZlIGEgc2hhcmVkIGxheWVyIHN5bmNocm9ub3VzbHkuCisgICAgICAgIEZ1
dHVyZSByZWZhY3RvcmluZyBzaG91bGQgYWxsb3cgdG8gcmVtb3ZlIHRoYXQgY29uc3RyYWludCBh
cyBkb25lIGluIHJlZ3VsYXIgdmlkZW8gcGxheWluZy4KKworICAgICAgICBPdmVycmlkZSBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIgY3JlYXRlIGZ1bmN0aW9uIHBvaW50ZXIgd2hlbiByZW5kZXJp
bmcgaXMgdG8gYmUgZG9uZSBpbiBHUFVQcm9jZXNzLgorCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZl
TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6On5SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNvbnRleHRJRCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Ym91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVEaXNwbGF5TW9kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQWZm
aW5lVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOjp1cGRhdGVCb3VuZHNBbmRQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2gpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmZsdXNoQW5kUmVtb3ZlSW1hZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNsZWFy
RW5xdWV1ZWRTYW1wbGVzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyU3RhdHVzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpzdHJlYW1UaW1lIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDogQWRkZWQuCisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2Vz
LmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y3JlYXRlTGF5ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpy
ZWxlYXNlTGF5ZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENH
UmVjdD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVj
b2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dB
ZmZpbmVUcmFuc2Zvcm0+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENH
QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OnNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKToKKyAg
ICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpk
aWRGYWlsIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
Ojp1cGRhdGVEaXNwbGF5TW9kZSk6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6Ym91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjp1cGRhdGVBZmZpbmVUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViS2l0OjpTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaCk6CisgICAgICAgIChXZWJL
aXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2hBbmRSZW1vdmVJbWFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZW5xdWV1ZVNhbXBsZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y2xlYXJFbnF1ZXVlZFNh
bXBsZXMpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnJvb3RM
YXllcik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0RGlk
RmFpbCk6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Ym91bmRz
Q2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllci5oOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y3JlYXRlTGF5ZXIpOgorICAg
ICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjphZGRMYXllcik6
CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OnJlbW92
ZUxheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaDoKKwogMjAyMC0wMS0xNSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIE1lZGlhU3RyZWFtIGF1ZGlvIHRyYWNrIHJlbmRlcmlu
ZyBpbiBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCA4OTA2ZjU3ZGM5ZDMy
NGM5ZjBiZDFlZmI4NTBiMjBhOTUyMGUxOTBiLi44ZTJhYWRkMGNmZjdhNjBmMWQzMmZjOGIzYjlh
YzdhZjhjY2NhMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTIzMCw2ICsyMzAsNyBA
QCBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zR0xBTkdMRS5jcHAgQG5vLXVuaWZ5
CiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcCBAbm8t
dW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAg
QG5vLXVuaWZ5CiAKK3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbC5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIEBuby11
bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGNjMzVhNTg5MTEzNDExYjE1ODYyMGJmNDAxOTE2ZWZkNzQzZWU5NGQuLjA3YTIx
ZjRmM2UyM2Q4ZTQ3OTE0Y2E4ZjQyMTAyZDQyMjU1Y2UzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcyNzksNiArNzI3OSw3
IEBACiAJCTNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTVmlld3BvcnRSdWxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGRkZGOUFCMTU5RDlCMDYwMDIwQkJE
NSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNv
bHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWV3cG9ydFN0eWxlUmVz
b2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMjRGQzgyM0NGMjU0RjAw
RkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTA2MjZBNzIyODBBMjJBMDA2RDFCNTkgLyogSlNBdWRpb05vZGVDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBdWRpb05vZGVDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA3OTA4QTFGQzNFNEYyMDA2MUIyN0Eg
LyogQ2xpZW50T3JpZ2luLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaWVu
dE9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA5MzgyODIzNDc3OTlB
MDA5NDI4QkEgLyogSlNBYm9ydENvbnRyb2xsZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNBYm9ydENvbnRyb2xsZXJDdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYzMzEsNiArMTYzMzIsNyBAQAogCQkJCTA3NkYwRDBB
MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCAqLywK
IAkJCQlDREJFQUVBQjE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9i
akMuaCAqLywKIAkJCQlDREJFQUVBQTE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25H
cm91cEFWRk9iakMubW0gKi8sCisJCQkJNDEwMjRGQzgyM0NGMjU0RjAwRkRGOThFIC8qIFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgKi8sCiAJCQkJNDE0NTk4QkUyM0M4QUFCODAwMkI5Q0M4
IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oICovLAogCQkJCUNEMzM2RjYzMTdGQTBBNEQw
MERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oICovLAogCQkJCTA3MDlENzkwMUFFNTU1
N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Qx
MWMyOTZiYTU2NTYzYTliNTRiZDg4YmUyYTI5ODgyMTRjYmViYwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisKKyNpbmNsdWRlICJMb2NhbFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6TGF5ZXJDcmVhdG9yIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bV9sYXll
ckNyZWF0b3IgPSBudWxscHRyOwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldENy
ZWF0b3IoTGF5ZXJDcmVhdG9yIGNyZWF0b3IpCit7CisgICAgbV9sYXllckNyZWF0b3IgPSBjcmVh
dG9yOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgYm9vbCBoaWRlUm9v
dExheWVyLCBJbnRTaXplIHNpemUpCit7CisgICAgaWYgKG1fbGF5ZXJDcmVhdG9yKQorICAgICAg
ICByZXR1cm4gbV9sYXllckNyZWF0b3IoY2xpZW50LCBoaWRlUm9vdExheWVyLCBzaXplKTsKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCisgICAgcmV0dXJu
IExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoY2xpZW50LCBoaWRlUm9vdExh
eWVyLCBzaXplKTsKKyNlbHNlCisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmluZGV4IDRmZjU3
ZDdjN2Q1OWE3MWQ1NjdiYzJhYmQ5ZjYxOTJiMmJmYmNjYzAuLjQwMWE3MjcwZGRkNjQzNmEzNDJk
YmVjNDc4YjA2YzA0YzIyZDg3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmgKQEAgLTQyLDExICs0MiwxMyBAQCBwdWJsaWM6CiAgICAgcHVibGljOgog
ICAgICAgICB2aXJ0dWFsIH5DbGllbnQoKSA9IGRlZmF1bHQ7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRDaGFuZ2UoU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyJikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyQm91bmRzRGlkQ2hhbmdlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpID0gMDsKICAg
ICAgICAgdmlydHVhbCBXVEY6Ok1lZGlhVGltZSBzdHJlYW1UaW1lKCkgY29uc3QgPSAwOwogICAg
IH07CiAKLSAgICBleHBsaWNpdCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoQ2xpZW50Jik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI+IGNyZWF0ZShDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUpOwor
ICAgIHVzaW5nIExheWVyQ3JlYXRvciA9IHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI+ICgqKShDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldENyZWF0b3IoTGF5ZXJDcmVhdG9yKTsKKwog
ICAgIHZpcnR1YWwgflNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpID0gZGVmYXVsdDsKIAogICAg
IHZpcnR1YWwgYm9vbCBkaWRGYWlsKCkgY29uc3QgPSAwOwpAQCAtNjYsNyArNjgsMTIgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcm9vdExheWVyKCkgPSAwOwogCiBwcm90
ZWN0ZWQ6CisgICAgZXhwbGljaXQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKENsaWVudCYpOwor
CiAgICAgV2Vha1B0cjxDbGllbnQ+IG1fY2xpZW50OworCitwcml2YXRlOgorICAgIHN0YXRpYyBM
YXllckNyZWF0b3IgbV9sYXllckNyZWF0b3I7CiB9OwogCiBpbmxpbmUgU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoQ2xpZW50JiBjbGllbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuaAppbmRleCAyOWNkZWE0M2I5ZmE4ZjA2MWRjMGNmMTQwM2IzNTJhOTFkZmNmYzFkLi43YTNi
MzhkYThkMzgyZTFjODE3YmYyMmQ0NTkyYTY1ZDY5YTIwNjkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKQEAgLTY5
LDggKzY5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVucXVldWVTYW1wbGUoTWVkaWFTYW1wbGUm
KSBmaW5hbDsKICAgICB2b2lkIGNsZWFyRW5xdWV1ZWRTYW1wbGVzKCkgZmluYWw7CiAKLSAgICB2
b2lkIGVuc3VyZUxheWVycygpOwotCiAgICAgdm9pZCByZW1vdmVPbGRTYW1wbGVzRnJvbVBlbmRp
bmdRdWV1ZSgpOwogICAgIHZvaWQgYWRkU2FtcGxlVG9QZW5kaW5nUXVldWUoTWVkaWFTYW1wbGUm
KTsKICAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRpb25XaGVuUmVhZHlGb3JWaWRlb0RhdGEoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIubW0KaW5kZXggZjBjOWNjNzNmYWQ4NDUzMWM5NzkxNjQxZDM4M2NjZTQ5NzNjODlj
Mi4uOTViNjkwMGFiMjQxYTA3MmJjZmM0M2JiZDQ4ZWUyZjExMWRlOWEyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
bW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FUcmFuc2FjdGlvbi5o
PgogCiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL2NmL1R5cGVDYXN0
c0NGLmg+CiAKICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgogCkBA
IC00OCw4ICs0OSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAtIChpZClpbml0V2l0
aFBhcmVudDooTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqKWNhbGxiYWNrOwogLSAodm9p
ZClpbnZhbGlkYXRlOwotLSAodm9pZCliZWdpbk9ic2VydmluZ0xheWVyczsKLS0gKHZvaWQpc3Rv
cE9ic2VydmluZ0xheWVyczsKKy0gKHZvaWQpc3RhcnQ7CistICh2b2lkKXN0b3A7CiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyCkBA
IC03MiwzOCArNzMsMzMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIC0gKHZvaWQpaW52
YWxpZGF0ZQogewotICAgIFtzZWxmIHN0b3BPYnNlcnZpbmdMYXllcnNdOworICAgIFtzZWxmIHN0
b3BdOwogICAgIF9wYXJlbnQgPSBudWxscHRyOwogfQogCi0tICh2b2lkKWJlZ2luT2JzZXJ2aW5n
TGF5ZXJzCistICh2b2lkKXN0YXJ0CiB7CiAgICAgQVNTRVJUKF9wYXJlbnQpOwogICAgIEFTU0VS
VChfcGFyZW50LT5kaXNwbGF5TGF5ZXIoKSk7Ci0gICAgQVNTRVJUKF9wYXJlbnQtPnJvb3RMYXll
cigpKTsKIAogICAgIFtfcGFyZW50LT5kaXNwbGF5TGF5ZXIoKSBhZGRPYnNlcnZlcjpzZWxmIGZv
cktleVBhdGg6QCJzdGF0dXMiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBj
b250ZXh0Om5pbF07CiAgICAgW19wYXJlbnQtPmRpc3BsYXlMYXllcigpIGFkZE9ic2VydmVyOnNl
bGYgZm9yS2V5UGF0aDpAImVycm9yIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25O
ZXcgY29udGV4dDpuaWxdOwotICAgIFtfcGFyZW50LT5yb290TGF5ZXIoKSBhZGRPYnNlcnZlcjpz
ZWxmIGZvcktleVBhdGg6QCJib3VuZHMiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlv
bk5ldyBjb250ZXh0Om5pbF07CiB9CiAKLS0gKHZvaWQpc3RvcE9ic2VydmluZ0xheWVycworLSAo
dm9pZClzdG9wCiB7Ci0gICAgaWYgKCFfcGFyZW50KQorICAgIGlmICghX3BhcmVudCB8fCAhX3Bh
cmVudC0+ZGlzcGxheUxheWVyKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChfcGFyZW50
LT5kaXNwbGF5TGF5ZXIoKSkgewotICAgICAgICBbX3BhcmVudC0+ZGlzcGxheUxheWVyKCkgcmVt
b3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAic3RhdHVzIl07Ci0gICAgICAgIFtfcGFyZW50
LT5kaXNwbGF5TGF5ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJlcnJvciJd
OwotICAgIH0KLSAgICBpZiAoX3BhcmVudC0+cm9vdExheWVyKCkpCi0gICAgICAgIFtfcGFyZW50
LT5yb290TGF5ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJib3VuZHMiXTsK
KyAgICBbX3BhcmVudC0+ZGlzcGxheUxheWVyKCkgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQ
YXRoOkAic3RhdHVzIl07CisgICAgW19wYXJlbnQtPmRpc3BsYXlMYXllcigpIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgZm9yS2V5UGF0aDpAImVycm9yIl07CiB9CiAKIC0gKHZvaWQpb2JzZXJ2ZVZhbHVl
Rm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdl
OihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKIHsKICAgICBV
TlVTRURfUEFSQU0oY29udGV4dCk7CiAgICAgVU5VU0VEX1BBUkFNKGtleVBhdGgpOworICAgIFVO
VVNFRF9QQVJBTShjaGFuZ2UpOwogICAgIEFTU0VSVChfcGFyZW50KTsKIAogICAgIGlmICghX3Bh
cmVudCkKQEAgLTEzMiwyOSArMTI4LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBpZiAoW1tjaGFuZ2UgdmFs
dWVGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbklzUHJpb3JLZXldIGJvb2xWYWx1
ZV0pCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICgoQ0FMYXllciAqKW9iamVjdCA9PSBfcGFy
ZW50LT5yb290TGF5ZXIoKSkgewotICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5n
OkAiYm91bmRzIl0pIHsKLSAgICAgICAgICAgIGlmICghX3BhcmVudCkKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChpc01haW5UaHJlYWQoKSkgewotICAgICAgICAg
ICAgICAgIF9wYXJlbnQtPnJvb3RMYXllckJvdW5kc0RpZENoYW5nZSgpOwotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbcHJvdGVjdGVkU2VsZiA9IFJldGFpblB0cjxXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5n
ZUxpc3RlbmVyPihzZWxmKV0gewotICAgICAgICAgICAgICAgIGlmICghcHJvdGVjdGVkU2VsZi0+
X3BhcmVudCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICAgICAg
cHJvdGVjdGVkU2VsZi0+X3BhcmVudC0+cm9vdExheWVyQm91bmRzRGlkQ2hhbmdlKCk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLQogfQogQGVuZAogCkBAIC0xOTYsNyArMTY5
LDcgQEAgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKFJldGFpblB0cjxBVlNhbXBsZUIKIAogICAgIG1fcm9vdExheWVyLmdldCgpLmJv
dW5kcyA9IENHUmVjdE1ha2UoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKIAot
ICAgIFttX3N0YXR1c0NoYW5nZUxpc3RlbmVyIGJlZ2luT2JzZXJ2aW5nTGF5ZXJzXTsKKyAgICBb
bV9zdGF0dXNDaGFuZ2VMaXN0ZW5lciBzdGFydF07CiAKICAgICBbbV9yb290TGF5ZXIgYWRkU3Vi
bGF5ZXI6bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCldOwogCkBAIC0yMDgsNyArMTgx
LDcgQEAgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKFJldGFpblB0cjxBVlNhbXBsZUIKIAogTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6On5Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpCiB7Ci0gICAgW21fc3RhdHVz
Q2hhbmdlTGlzdGVuZXIgc3RvcE9ic2VydmluZ0xheWVyc107CisgICAgbV9zdGF0dXNDaGFuZ2VM
aXN0ZW5lciA9IG51bGxwdHI7CiAKICAgICBtX3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlLmNsZWFy
KCk7CiAKQEAgLTIzNSwxNCArMjA4LDYgQEAgdm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6bGF5ZXJFcnJvckRpZENoYW5nZSgpCiAgICAgLy8gRklYTUU6IExvZyBlcnJvci4KIH0K
IAotdm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6cm9vdExheWVyQm91bmRzRGlk
Q2hhbmdlKCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmICghbV9jbGll
bnQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2NsaWVudC0+c2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyQm91bmRzRGlkQ2hhbmdlKCp0aGlzKTsKLX0KLQogUGxhdGZvcm1MYXllciogTG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmRpc3BsYXlMYXllcigpCiB7CiAgICAgcmV0dXJuIG1fc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpOwpAQCAtMjg0LDYgKzI0OSw4IEBAIHZvaWQgTG9j
YWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUFmZmluZVRyYW5zZm9ybShDR0FmZmlu
ZVRyYW5zZm9ybSB0cmFuCiB2b2lkIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRh
dGVCb3VuZHNBbmRQb3NpdGlvbihDR1JlY3QgdmlkZW9Cb3VuZHMsIENHUG9pbnQgcG9zaXRpb24p
CiB7CiAgICAgcnVuV2l0aG91dEFuaW1hdGlvbnMoWyZdIHsKKyAgICAgICAgbV9yb290TGF5ZXIu
Z2V0KCkuYm91bmRzID0gdmlkZW9Cb3VuZHM7CisgICAgICAgIG1fcm9vdExheWVyLmdldCgpLnBv
c2l0aW9uID0gcG9zaXRpb247CiAgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdl
dCgpLmJvdW5kcyA9IHZpZGVvQm91bmRzOwogICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5nZXQoKS5wb3NpdGlvbiA9IHBvc2l0aW9uOwogICAgIH0pOwpAQCAtMzAxLDYgKzI2OCwx
MiBAQCB2b2lkIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaEFuZFJlbW92ZUlt
YWdlKCkKIAogdm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZW5xdWV1ZVNhbXBs
ZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogeworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJh
eSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUucGxhdGZv
cm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsIHRydWUpOworICAgIGZvciAoQ0ZJbmRl
eCBpID0gMDsgaSA8IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7Cisg
ICAgICAgIENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nh
c3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2ht
ZW50c0FycmF5LCBpKSk7CisgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRz
LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRy
dWUpOworICAgIH0KKwogICAgIGlmICghW21fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGlzUmVh
ZHlGb3JNb3JlTWVkaWFEYXRhXSkgewogICAgICAgICBhZGRTYW1wbGVUb1BlbmRpbmdRdWV1ZShz
YW1wbGUpOwogICAgICAgICByZXF1ZXN0Tm90aWZpY2F0aW9uV2hlblJlYWR5Rm9yVmlkZW9EYXRh
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IGQ5YWYyN2E2MDEwZDc5ODg2NjI1MmVl
ZTM4YTVjNTA1ZTdhZWI4NWQuLjViYWVjNTZhZWI5ZGRiZDMzMDNkZWVmYWUxNjU1ODgwZmIzMTU2
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVk
ZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogCiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOwotT0JKQ19DTEFTUyBXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVy
OworT0JKQ19DTEFTUyBXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXI7CiAK
IG5hbWVzcGFjZSBQQUwgewogY2xhc3MgQ2xvY2s7CkBAIC04Miw2ICs4Miw5IEBAIHB1YmxpYzoK
ICAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAor
ICAgIFBsYXRmb3JtTGF5ZXIqIHJvb3RMYXllcigpIGNvbnN0OworICAgIHZvaWQgcm9vdExheWVy
Qm91bmRzRGlkQ2hhbmdlKCk7CisKIHByaXZhdGU6CiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlCiAKQEAgLTI0NCwxMyArMjQ3LDE0IEBAIHByaXZhdGU6CiAKICAgICAvLyBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudAogICAgIHZvaWQgc2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyU3RhdHVzRGlkQ2hhbmdlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpIGZpbmFsOwot
ICAgIHZvaWQgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQm91bmRzRGlkQ2hhbmdlKFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllciYpIGZpbmFsOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVu
dGlmaWVyOwogI2VuZGlmCiAKKyAgICBSZXRhaW5QdHI8V2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5k
c0NoYW5nZUxpc3RlbmVyPiBtX2JvdW5kc0NoYW5nZUxpc3RlbmVyOworCiAgICAgYm9vbCBtX3Zp
ZGVvTWlycm9yZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9wbGF5aW5nIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4
IGRmOWUyMDU3YThiNjk5ZDcyZTYyNjI2MDMwOGEwOWNlZjU2NTJkNDUuLjI1ZjIwN2EwMWQ4NDA2
MDgzNDc2MzgyN2U4MzAwYjlkOTM4ZDQ4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0K
QEAgLTQ4LDYgKzQ4LDkxIEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4K
ICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgogCitAaW50ZXJmYWNl
IFdlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciA6IE5TT2JqZWN0IHsKKyAg
ICBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMqIF9wYXJlbnQ7
Cit9CisKKy0gKGlkKWluaXRXaXRoUGFyZW50OihXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMqKWNhbGxiYWNrOworLSAodm9pZClpbnZhbGlkYXRlOworLSAodm9p
ZClzdGFydDsKKy0gKHZvaWQpc3RvcDsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYlJvb3RT
YW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lcgorCistIChpZClpbml0V2l0aFBhcmVudDoo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKilwYXJlbnQKK3sK
KyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIF9wYXJlbnQgPSBwYXJlbnQ7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClk
ZWFsbG9jCit7CisgICAgW3NlbGYgaW52YWxpZGF0ZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOwor
fQorCistICh2b2lkKWludmFsaWRhdGUKK3sKKyAgICBbc2VsZiBzdG9wXTsKKyAgICBfcGFyZW50
ID0gbnVsbHB0cjsKK30KKworLSAodm9pZClzdGFydAoreworICAgIEFTU0VSVChfcGFyZW50KTsK
KyAgICBBU1NFUlQoX3BhcmVudC0+cm9vdExheWVyKCkpOworCisgICAgW19wYXJlbnQtPnJvb3RM
YXllcigpIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImJvdW5kcyIgb3B0aW9uczpOU0tl
eVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bmlsXTsKK30KKworLSAodm9pZClzdG9w
Cit7CisgICAgaWYgKCFfcGFyZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoX3BhcmVu
dC0+cm9vdExheWVyKCkpCisgICAgICAgIFtfcGFyZW50LT5yb290TGF5ZXIoKSByZW1vdmVPYnNl
cnZlcjpzZWxmIGZvcktleVBhdGg6QCJib3VuZHMiXTsKK30KKworLSAodm9pZClvYnNlcnZlVmFs
dWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFu
Z2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAoreworICAg
IFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oa2V5UGF0aCk7CisgICAg
QVNTRVJUKF9wYXJlbnQpOworCisgICAgaWYgKCFfcGFyZW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoW1tjaGFuZ2UgdmFsdWVGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5vdGlmaWNhdGlv
bklzUHJpb3JLZXldIGJvb2xWYWx1ZV0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgoQ0FM
YXllciAqKW9iamVjdCA9PSBfcGFyZW50LT5yb290TGF5ZXIoKSkgeworICAgICAgICBpZiAoW2tl
eVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiYm91bmRzIl0pIHsKKyAgICAgICAgICAgIGlmICghX3Bh
cmVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmIChpc01haW5U
aHJlYWQoKSkgeworICAgICAgICAgICAgICAgIF9wYXJlbnQtPnJvb3RMYXllckJvdW5kc0RpZENo
YW5nZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFJldGFpblB0cjxXZWJSb290
U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXI+KHNlbGYpXSB7CisgICAgICAgICAgICAg
ICAgaWYgKCFwcm90ZWN0ZWRTZWxmLT5fcGFyZW50KQorICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fcGFyZW50LT5yb290TGF5ZXJC
b3VuZHNEaWRDaGFuZ2UoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCit9
CitAZW5kCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKQEAg
LTY0LDYgKzE0OSw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhCiAgICAgLCBtX2xvZ2dlcihw
bGF5ZXItPm1lZGlhUGxheWVyTG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVy
LT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKICNlbmRpZgorICAgICwgbV9ib3VuZHNDaGFu
Z2VMaXN0ZW5lcihhZG9wdE5TKFtbV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3Rl
bmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCiB7CiAgICAgSU5GT19MT0coTE9HSURF
TlRJRklFUik7CiB9CkBAIC04Miw2ICsxNjgsOCBAQCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoKQogICAg
ICAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKICAgICB9CiAKKyAgICBbbV9i
b3VuZHNDaGFuZ2VMaXN0ZW5lciBzdG9wXTsKKwogICAgIGRlc3Ryb3lMYXllcnMoKTsKIAogICAg
IGF1dG8gYXVkaW9UcmFja01hcCA9IFdURk1vdmUobV9hdWRpb1RyYWNrTWFwKTsKQEAgLTI4NCw3
ICszNzIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5z
dXJlTGF5ZXJzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBzaXplID0gc25hcHBlZElu
dFJlY3QobV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKTsKLSAgICBtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllciA9IExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpj
cmVhdGUoKnRoaXMsIGhpZGVSb290TGF5ZXIoKSwgc2l6ZSk7CisgICAgbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIgPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSgqdGhpcywgaGlk
ZVJvb3RMYXllcigpLCBzaXplKTsKIAogICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIpIHsKICAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJDcmVhdGluZyB0aGUgU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyIGZhaWxlZC4iKTsKQEAgLTI5NSw2ICszODMsOCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5zdXJlTGF5ZXJzKCkKICAg
ICB1cGRhdGVEaXNwbGF5TGF5ZXIoKTsKIAogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyLT5zZXRWaWRlb0xheWVyKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIo
KSwgc2l6ZSk7CisKKyAgICBbbV9ib3VuZHNDaGFuZ2VMaXN0ZW5lciBzdGFydF07CiB9CiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpkZXN0cm95TGF5ZXJzKCkK
QEAgLTM2NSw2ICs0NTUsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnByZXBhcmVUb1BsYXkoKQogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogfQog
CitQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJv
b3RMYXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
ID8gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpIDogbnVsbHB0cjsKK30K
KwogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpw
bGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyIHx8ICFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+cm9vdExheWVyKCkgfHwgbV9kaXNw
bGF5TW9kZSA9PSBOb25lKQpAQCAtOTQ4LDcgKzEwNDMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlRGlzcGxheUxheWVyKCkKICAgICBpZiAoIW1f
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGJv
dW5kcyA9IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5ib3VuZHMoKTsKKyAgICBhdXRvIGJv
dW5kcyA9IHJvb3RMYXllcigpLmJvdW5kczsKICAgICBhdXRvIHZpZGVvQm91bmRzID0gYm91bmRz
OwogICAgIGlmIChtX3ZpZGVvUm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246
OlJpZ2h0IHx8IG1fdmlkZW9Sb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6
TGVmdCkKICAgICAgICAgc3RkOjpzd2FwKHZpZGVvQm91bmRzLnNpemUud2lkdGgsIHZpZGVvQm91
bmRzLnNpemUuaGVpZ2h0KTsKQEAgLTk1Niw3ICsxMDUxLDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZURpc3BsYXlMYXllcigpCiAgICAgbV9zYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXItPnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKHZpZGVvQm91bmRz
LCB7IGJvdW5kcy5zaXplLndpZHRoIC8gMiwgYm91bmRzLnNpemUuaGVpZ2h0IC8gMn0pOwogfQog
Ci12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyQm91bmRzRGlkQ2hhbmdlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cm9vdExheWVyQm91bmRz
RGlkQ2hhbmdlKCkKIHsKICAgICB1cGRhdGVEaXNwbGF5TGF5ZXIoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5j
cHAKaW5kZXggODBmNmIxODcyNTIyOTY4ZWE3ZDk1NzZiN2UwMDU2MzMzMjU4ODIzYy4uMjgyMWVm
ODFkNzVkZmIwZmYwNWE4NWJlNWM5ZmJjMjU4YjU2MmViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKQEAg
LTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDxDb3Jl
R3JhcGhpY3MvQ0dDb250ZXh0Lmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHUERGRG9jdW1l
bnQuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1JBTVNpemUuaD4KICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKaW5kZXggMWEyNGJiZmMwNzJkMjZmZWM3MTY1M2E5NTlmZDczYjBhMmY0M2Q2Yi4u
OTgwODFhYTZiMmNjM2I4YzRhNWFkNTJmODljOGQyMjBkY2JlMjNlMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMjQsNiArMjQsOCBAQCAk
KFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29y
ZGVyTWFuYWdlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNv
b2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0N1
c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2Fn
ZXMuaW4KQEAgLTEwOCw2ICsxMTAsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDUmVtb3RlQ29k
ZWNzLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdAppbmRleCAxZGM1NDY1MjhmNWJhMjJkNzM2NTBlMDA0YmEyODFlYzIyZjI2MjM1
Li45YjYwZDE1NWY5ZWIzZWQzNmQ3ZWMxOTBhYjc0MWIyMGYxMGQ3ZmVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE1MSw2ICsxNTEs
MTIgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1IKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2Jq
ZWN0UmVnaXN0cnlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXNSZXBsaWVzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvck1lc3NhZ2VzUmVwbGllcy5oCkBAIC0xNjAsNiArMTY2LDkgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVj
dG9yUHJveHlNZXNzYWdlc1JlcGwKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9y
VUlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZWNJdGVtU2hpbVBy
b3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBhMTlk
MDc5ZTAwM2FhOGJmMmEzODUzMWZkOWRlYWM1MWE3NjRmYjJmLi5jMzRhZjVjZDNhMTc0N2YyNmVj
NDQ4OWNhZDgzZmYyZGI2YzUyNmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0x
NTAsOSArMTUwLDEyIEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZU1lZGlhUmVj
b3JkZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBcCiAgICAgUmVt
b3RlT2JqZWN0UmVnaXN0cnkgXAorICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBc
CisgICAgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciBcCiAgICAgUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IgXAogICAgIFJlbW90ZVdlYkluc3BlY3RvclByb3h5IFwKICAg
ICBSZW1vdGVXZWJJbnNwZWN0b3JVSSBcCisgICAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIFwK
ICAgICBTZWNJdGVtU2hpbVByb3h5IFwKICAgICBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIFwKICAg
ICBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA0NmIxMzQ5
ODg5ZTRkZjUwODBjM2JiMWExN2E4NjFkYzRlNGI3NGJiLi5jMDk0OGQwOTk1Yjk2Y2I1M2U1M2Y0
YTdhY2UzZjM4NmNiNTEzOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00OSw2ICs0OSw5IEBACiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5o
IgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKQEAgLTE2Miw2ICsxNjUsMTQg
QEAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyJiBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjphdWRpb1RyYWMKIAogICAgIHJldHVybiAqbV9hdWRpb1RyYWNrUmVu
ZGVyZXJNYW5hZ2VyOwogfQorCitSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyKCkKK3sKKyAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcikKKyAg
ICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyID0gbWFrZVVuaXF1ZTxSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyPihtX2Nvbm5lY3Rpb24uY29weVJlZigp
KTsKKworICAgIHJldHVybiAqbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOworfQog
I2VuZGlmCiAjZW5kaWYKIApAQCAtMjA5LDYgKzIyMCwxNCBAQCB2b2lkIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSQogICAgICAgICBhdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZVJlbmRl
cmVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkg
eworICAgICAgICBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZU1l
c3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2Fn
ZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CisgICAgICAgIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKS5kaWRSZWNlaXZl
TGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAg
fQogI2VuZGlmCiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykK
QEAgLTIzMSw2ICsyNTAsMTIgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAgICAgICAgdXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21HUFVQ
cm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19UUkFDSykKKyAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewor
ICAgICAgICBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogI2VuZGlmCiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGNjMjExMGI1ZmEyMTk0NWM2YzQzOTg4Y2M4OTE1Zjlj
NTg1MWY2OWUuLmI5OGQ2MmYwNjIxNDk2ODZhYWI0ZjAwNWM4NTNkY2M2NGNmN2YyYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaApAQCAtNDQsNiArNDQsNyBAQCBjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNs
YXNzIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI7CitjbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwog
Y2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIAogY2xhc3MgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcwpAQCAtNzYsNiArNzcsNyBAQCBwcml2YXRlOgogICAgIFJlbW90ZU1lZGlh
UmVjb3JkZXJNYW5hZ2VyJiBtZWRpYVJlY29yZGVyTWFuYWdlcigpOwogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIm
IGF1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXIoKTsKKyAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAjZW5k
aWYKICNlbmRpZgogCkBAIC05OCw2ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcj4gbV9yZW1vdGVNZWRpYVJlY29yZGVyTWFu
YWdlcjsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcj4gbV9hdWRpb1RyYWNrUmVuZGVy
ZXJNYW5hZ2VyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyPiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiAjZW5kaWYK
ICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NjI5MjEwZTVlZWZhODNjMGYz
NjBkNTA4NzEyODY5ODJmMGNkMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTAs
MCArMSwxNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdl
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcj4gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplKQor
eworICAgIGF1dG8gbGF5ZXIgPSBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyPihuZXcgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKGlkZW50aWZpZXIs
IFdURk1vdmUoY29ubmVjdGlvbiksIGhpZGVSb290TGF5ZXIsIHNpemUpKTsKKyAgICByZXR1cm4g
bGF5ZXItPm1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID8gV1RGTW92ZShsYXllcikgOiBudWxs
cHRyOworfQorCitSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBoaWRlUm9vdExh
eWVyLCBJbnRTaXplIHNpemUpCisgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAs
IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICwgbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIoTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSgqdGhpcywg
aGlkZVJvb3RMYXllciwgc2l6ZSkpCit7CisgICAgQVNTRVJUKG1fc2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyKTsKKyAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2xheWVySG9zdGluZ0NvbnRleHQgPSBMYXllckhvc3RpbmdDb250ZXh0
OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNzKCk7CisgICAgbV9sYXllckhvc3RpbmdD
b250ZXh0LT5zZXRSb290TGF5ZXIobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXll
cigpKTsKK30KKworUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+UmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyKCkKK3sKK30KKworT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4
dElEPiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNvbnRleHRJRCgpCit7CisgICAg
cmV0dXJuIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCk7Cit9CisKK0NHUmVjdCBS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmJvdW5kcygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5ib3VuZHMoKTsKK30KKwordm9pZCBSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZURpc3BsYXlNb2RlKGJvb2wgaGlkZURp
c3BsYXlMYXllciwgYm9vbCBoaWRlUm9vdExheWVyKQoreworICAgIG1fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLT51cGRhdGVEaXNwbGF5TW9kZShoaWRlRGlzcGxheUxheWVyLCBoaWRlUm9vdExh
eWVyKTsKK30KKwordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUFm
ZmluZVRyYW5zZm9ybShDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCit7CisgICAgbV9zYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXItPnVwZGF0ZUFmZmluZVRyYW5zZm9ybSh0cmFuc2Zvcm0pOwor
fQorCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQm91bmRzQW5k
UG9zaXRpb24oQ0dSZWN0IGJvdW5kcywgQ0dQb2ludCBwb3NpdGlvbikKK3sKKyAgICBtX3NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci0+dXBkYXRlQm91bmRzQW5kUG9zaXRpb24oYm91bmRzLCBwb3Np
dGlvbik7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaCgp
Cit7CisgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPmZsdXNoKCk7Cit9CisKK3ZvaWQg
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaEFuZFJlbW92ZUltYWdlKCkKK3sK
KyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+Zmx1c2hBbmRSZW1vdmVJbWFnZSgpOwor
fQorCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZW5xdWV1ZVNhbXBsZShX
ZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBtX21lZGlh
VGltZSA9IHJlbW90ZVNhbXBsZS50aW1lKCk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNl
c3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVT
YW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IElt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7
CisKKyAgICBBU1NFUlQobV9pbWFnZVRyYW5zZmVyU2Vzc2lvbik7CisgICAgaWYgKCFtX2ltYWdl
VHJhbnNmZXJTZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHNhbXBsZVJlZiA9
IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5z
dXJmYWNlKCksIHJlbW90ZVNhbXBsZS50aW1lKCksIHJlbW90ZVNhbXBsZS5zaXplKCkpOworCisg
ICAgQVNTRVJUKHNhbXBsZVJlZik7CisgICAgaWYgKCFzYW1wbGVSZWYpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5lbnF1ZXVlU2FtcGxlKCpzYW1w
bGVSZWYpOworfQorCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y2xlYXJF
bnF1ZXVlZFNhbXBsZXMoKQoreworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5jbGVh
ckVucXVldWVkU2FtcGxlcygpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAg
IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRDaGFuZ2UoV2Vi
Q29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNldERpZEZhaWwgeyBtX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci0+ZGlkRmFpbCgpIH0pOworfQorCitXVEY6Ok1lZGlhVGltZSBSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OnN0cmVhbVRpbWUoKSBjb25zdAoreworICAgIC8vIFRoaXMgaXMg
b25seSBhbiBhcHByb3hpbWF0aW9uIHdoaWNoIHdpbGwgY2xlYXIgYWxsIHNhbXBsZXMgZW5xdWV1
ZWQgaW4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgZXhjZXB0IHRoZSBvbmUgYmVpbmcgcHVz
aGVkLgorICAgIHJldHVybiBtX21lZGlhVGltZTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzhiYmU0Nzc5Mjc0ZDIyMWRhOGYxMWNkNGExZTRiMDM4YTg3NzE1YgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIK
KyNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKK2NsYXNzIFJlbW90ZVZpZGVvU2Ft
cGxlOworY2xhc3MgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOworfTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA6IHB1YmxpYyBX
ZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudCwgcHVibGljIElQQzo6TWVz
c2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBib29sIGhpZGVSb290TGF5ZXIs
IFdlYkNvcmU6OkludFNpemUpOworICAgIH5SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIo
KTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIE9wdGlv
bmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4gY29udGV4dElEKCk7CisgICAgQ0dSZWN0IGJvdW5k
cygpIGNvbnN0OworICAgIAorcHJpdmF0ZToKKyAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplKTsKKworICAgIHZv
aWQgdXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxheUxheWVyLCBib29sIGhpZGVSb290
TGF5ZXIpOworICAgIHZvaWQgdXBkYXRlQWZmaW5lVHJhbnNmb3JtKENHQWZmaW5lVHJhbnNmb3Jt
KTsKKyAgICB2b2lkIHVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKENHUmVjdCwgQ0dQb2ludCk7Cisg
ICAgdm9pZCBmbHVzaCgpOworICAgIHZvaWQgZmx1c2hBbmRSZW1vdmVJbWFnZSgpOworICAgIHZv
aWQgZW5xdWV1ZVNhbXBsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmKTsKKyAgICB2b2lk
IGNsZWFyRW5xdWV1ZWRTYW1wbGVzKCk7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAg
ICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7
CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsgfQorCisgICAgLy8gV2ViQ29yZTo6U2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQKKyAgICB2b2lkIHNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllclN0YXR1c0RpZENoYW5nZShXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIm
KSBmaW5hbDsKKyAgICBXVEY6Ok1lZGlhVGltZSBzdHJlYW1UaW1lKCkgY29uc3QgZmluYWw7CisK
KyAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAg
ICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4g
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9z
dGluZ0NvbnRleHQ+IG1fbGF5ZXJIb3N0aW5nQ29udGV4dDsKKyAgICBXVEY6Ok1lZGlhVGltZSBt
X21lZGlhVGltZTsKK307CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjdiYmVmZmEzNWJjZDYwNmM0ODhlMWY2YzFiYmFlZDhhMWZmNjliZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzYgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBO
b3RSZWZDb3VudGVkIHsKKyAgICBVcGRhdGVEaXNwbGF5TW9kZShib29sIGhpZGVEaXNwbGF5TGF5
ZXIsIGJvb2wgaGlkZVJvb3RMYXllcikKKyAgICBVcGRhdGVBZmZpbmVUcmFuc2Zvcm0oQ0dBZmZp
bmVUcmFuc2Zvcm0gdHJhbnNmb3JtKQorICAgIFVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKENHUmVj
dCBib3VuZHMsIENHUG9pbnQgcG9zaXRpb24pCisgICAgRmx1c2goKQorICAgIEZsdXNoQW5kUmVt
b3ZlSW1hZ2UoKQorICAgIEVucXVldWVTYW1wbGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUg
c2FtcGxlKQorICAgIENsZWFyRW5xdWV1ZWRTYW1wbGVzKCkKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Yjli
ZTQ5Y2FjNzJmNDRlNzE3OTc3YzRhNDY2ZTJlMjc5ZjFiMTRlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVO
QUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkRl
Y29kZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXI6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlv
bikpCit7Cit9CisKK1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6On5SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworCit2b2lkIFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmRpZFJlY2VpdmVMYXllck1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7
CisgICAgaWYgKGF1dG8qIGxheWVyID0gbV9sYXllcnMuZ2V0KG1ha2VPYmplY3RJZGVudGlmaWVy
PFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0
aW9uSUQoKSkpKQorICAgICAgICBsYXllci0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2Rlcik7Cit9CisKKy8vIEZJWE1FOiBXZSBzaG91bGQgcmVmYWN0b3IgY29kZSB0byB1c2Ug
YW4gYXN5bmNocm9ub3VzIElQQy4KK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlcjo6Y3JlYXRlTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSwgTWVzc2FnZXM6OlJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OkNyZWF0ZUxheWVyRGVsYXllZFJl
cGx5JiYgcmVwbHkpCit7CisgICAgQVNTRVJUKCFtX2xheWVycy5jb250YWlucyhpZGVudGlmaWVy
KSk7CisgICAgYXV0byBsYXllciA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3Jl
YXRlKGlkZW50aWZpZXIsIG1fY29ubmVjdGlvbi5jb3B5UmVmKCksIGhpZGVSb290TGF5ZXIsIHNp
emUpOworICAgIGlmICghbGF5ZXIpCisgICAgICAgIHJldHVybiByZXBseSh7IH0sIHsgfSk7CisK
KyAgICByZXBseShsYXllci0+Y29udGV4dElEKCksIGxheWVyLT5ib3VuZHMoKSk7CisgICAgbV9s
YXllcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUobGF5ZXIpKTsKK30KKwordm9pZCBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpyZWxlYXNlTGF5ZXIoU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIEFTU0VSVChtX2xheWVy
cy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9sYXllcnMucmVtb3ZlKGlkZW50aWZpZXIp
OworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmOWIz
MGM3NjE2MjNkZDk0OGQyOWJlMGYzN2YwYWQwZjQ3ZTVhOWEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIuaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUo
VklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmgiCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBJUEMg
eworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERlY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7CisKK2NsYXNzIFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgZmluYWwgOiBwcml2YXRlIElQQzo6
TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKFJlZjxJ
UEM6OkNvbm5lY3Rpb24+JiYpOworICAgIH5SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVMYXllck1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQ
cm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVy
KSB7IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mIGVuY29kZXIpIHsgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIs
IGVuY29kZXIpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CisK
KyAgICB2b2lkIGNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIs
IGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSwgTWVzc2FnZXM6OlJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OkNyZWF0ZUxheWVyRGVsYXllZFJlcGx5JiYp
OworICAgIHZvaWQgcmVsZWFzZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZp
ZXIpOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hN
YXA8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4+IG1fbGF5ZXJzOworfTsKKworfQorCisjZW5k
aWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJ
REVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0
NDk1MzNiNTE2NWRlOGM3N2JmZTQ2MmY3OThhMzNkMTY5ZTA3NzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworbWVzc2FnZXMgLT4gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciBO
b3RSZWZDb3VudGVkIHsKKyAgICBDcmVhdGVMYXllcihXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcklkZW50aWZpZXIgaWQsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6
ZSBzaXplKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGNvbnRl
eHRJRCwgQ0dSZWN0IGJvdW5kcykgU3luY2hyb25vdXMKKyAgICBSZWxlYXNlTGF5ZXIoV2ViS2l0
OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyIGlkKQorfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDI1NjRmNTI4ODI4ZjUx
ZDAzY2RkMzBjN2ZmODc2ZDI1ZGRhNTQ1Y2EuLmRjOWUxNGY1YWNkZjY5ODQxMTM3YmZjYjEwZTRl
NjQ2Y2M0MmVhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpA
QCAtMjI1LDYgKzIyNSw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xh
cmVkKCk6CiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0
OjpSVENFbmNvZGVySWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA4NGQ0MzljNTA1NDA0Yjdl
NTkwNWIzNmU3ZGVjNzY4OWRkZmE5NDU0Li43YmY3MWMxN2FiZGQzZDhiMTMxOTAyMjAwNThjOWY5
YzIxOWY2MGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaApAQCAtNDQ2LDYgKzQ0NiwyNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kJik7CiAgICAgc3RhdGljIE9wdGlv
bmFsPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gZGVjb2RlKERlY29kZXImKTsKIH07CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dQb2ludD4geworICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgQ0dQb2ludCk7CisgICAgc3RhdGljIE9wdGlvbmFsPENHUG9pbnQ+
IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PENHU2l6ZT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dTaXplKTsKKyAg
ICBzdGF0aWMgT3B0aW9uYWw8Q0dTaXplPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxDR1JlY3Q+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIENHUmVjdCk7CisgICAgc3RhdGljIE9wdGlvbmFsPENHUmVjdD4gZGVjb2Rl
KERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dBZmZp
bmVUcmFuc2Zvcm0+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHQWZmaW5l
VHJhbnNmb3JtKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29k
ZShEZWNvZGVyJik7Cit9OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMu
bW0KaW5kZXggNWJhNTJjOTBhZWIwZmVhZDZmNDQ4ZDcwODZmNTlhMmFlNmU5ZTk1Mi4uOGNiZGFm
YmUxNDZmYzc3MWMyOWYzYWM5YjFhZTFhYWU4YjQ2YThiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCkBAIC01NDgsNiAr
NTQ4LDc5IEBAIE9wdGlvbmFsPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+OjpkZWNvCiAgICAgcmV0dXJuIFdURk1vdmUoY29t
bWFuZCk7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgQ0dSZWN0IHJlY3QpCit7CisgICAgZW5jb2RlciA8PCByZWN0Lm9yaWdpbiA8PCBy
ZWN0LnNpemU7Cit9CisKK09wdGlvbmFsPENHUmVjdD4gQXJndW1lbnRDb2RlcjxDR1JlY3Q+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxDR1BvaW50PiBvcmlnaW47
CisgICAgZGVjb2RlciA+PiBvcmlnaW47CisgICAgaWYgKCFvcmlnaW4pCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBPcHRpb25hbDxDR1NpemU+IHNpemU7CisgICAgZGVjb2RlciA+PiBzaXpl
OworICAgIGlmICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBDR1Jl
Y3QgeyAqb3JpZ2luLCAqc2l6ZSB9OworfQorCit2b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENHU2l6ZSBzaXplKQoreworICAgIGVuY29kZXIgPDwg
c2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsKK30KKworT3B0aW9uYWw8Q0dTaXplPiBBcmd1bWVu
dENvZGVyPENHU2l6ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIENHU2l6ZSBz
aXplOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZS53aWR0aCkpCisgICAgICAgIHJldHVy
biB7IH07CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplLmhlaWdodCkpCisgICAgICAgIHJl
dHVybiB7IH07CisgICAgcmV0dXJuIHNpemU7Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxDR1Bv
aW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENHUG9pbnQgcG9pbnQpCit7CisgICAgZW5j
b2RlciA8PCBwb2ludC54IDw8IHBvaW50Lnk7Cit9CisKK09wdGlvbmFsPENHUG9pbnQ+IEFyZ3Vt
ZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIENHUG9p
bnQgcG9pbnQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2ludC54KSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvaW50LnkpKQorICAgICAgICByZXR1
cm4geyB9OworICAgIHJldHVybiBwb2ludDsKK30KKwordm9pZCBBcmd1bWVudENvZGVyPENHQWZm
aW5lVHJhbnNmb3JtPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENHQWZmaW5lVHJhbnNmb3Jt
IHRyYW5zZm9ybSkKK3sKKyAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybS5hIDw8IHRyYW5zZm9ybS5i
IDw8IHRyYW5zZm9ybS5jIDw8IHRyYW5zZm9ybS5kIDw8IHRyYW5zZm9ybS50eCA8PCB0cmFuc2Zv
cm0udHk7Cit9CisKK09wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENH
QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgQ0dBZmZp
bmVUcmFuc2Zvcm0gdHJhbnNmb3JtOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3Jt
LmEpKQorICAgICAgICByZXR1cm4geyB9OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNm
b3JtLmIpKQorICAgICAgICByZXR1cm4geyB9OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJh
bnNmb3JtLmMpKQorICAgICAgICByZXR1cm4geyB9OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
dHJhbnNmb3JtLmQpKQorICAgICAgICByZXR1cm4geyB9OworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUodHJhbnNmb3JtLnR4KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHRyYW5zZm9ybS50eSkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIHRy
YW5zZm9ybTsKK30KKwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRs
ZXImIGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDQ3MmU0ZTAy
ZjY4MGM0YWVlNjNiZjQ1ODViODc1NzMwNThmZjM0YWUuLjM2NGJjZDg5MGI1MDllODE4YjYyNzQw
ZDU2NTNjNzAwNDlkOTdhNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjgsNiArMjgsOCBAQCBHUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKIEdQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5j
cHAKIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCiBHUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKK0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKK0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuY3BwCkBAIC01MjgsNiArNTMwLDggQEAgV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldl
YlJUQ0NvZGVjcy5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0
ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCiBX
ZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCitX
ZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAorV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCiAKIFdl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXgg
YjIzODMyYWIyN2E3NGI1N2MyNjVmOTMyOWEwYmUyY2MwZjA5OWNiOS4uNmE4ZTJlNjkwNWMzNWJj
MWJjNDhjNDY5YTZlYzZjODVkNWY4MjRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjQ0
LDUgKzY0NCw4IEBAIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVz
c2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAK
IFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VSZWNlaXZlci5jcHAKK1NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1lc3NhZ2VSZWNlaXZlci5jcHAKIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNz
YWdlUmVjZWl2ZXIuY3BwCiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAxYzcwZTY0NWU4NDMzZjE0YWUwMGQ1N2QyYzI1NDNhMDBlMGMyZjI0Li5iOWQ2ODM1
MDlmYTAxMDdmYWI1Y2M2NjAxMmIwZDdkNjgyODc5MGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyOTEsNiArMzI5MSw4IEBACiAJ
CTNGOTE1QzBFMUY1NjRERUQwMDE4M0NFOSAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVySU9TLm1tOyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
M0Y5MTVDMEYxRjU2NERFRDAwMTgzQ0U5IC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJ
T1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oOyBw
YXRoID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkIwOEU0MjFGNjBCMjQwMDA1RTUzMTIgLyog
aU9TLnhjYXNzZXRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gZm9sZGVyLmFzc2V0Y2F0YWxvZzsgcGF0aCA9IGlPUy54Y2Fzc2V0czsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMjRGQzAyM0NGMTA0NTAwRkRGOThFIC8qIFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MTAyNEZDMTIzQ0YxMDQ1MDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDEwM0ZCQTEyMDYxQkRCNzAwQzJFQUY4IC8qIE5ldHdvcmtMb2FkQ2hlY2tlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrTG9hZENoZWNrZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwM0ZCQTIyMDYxQkRCODAwQzJFQUY4IC8q
IE5ldHdvcmtMb2FkQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBOZXR3b3JrTG9hZENoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTA0ODJDQjFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENOZXR3b3JrLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTM0MjIsNiArMzQyNCwxNiBAQAogCQk0MUZDRDZBRDIzQ0NDMjYwMDBD
NjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQ0Q2QUUyM0NDQzI2MTAwQzYyNTY3IC8qIEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQ0Q2QUYyM0NDQzI2MTAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QjMyM0NEQzYwNDAwQzYyNTY3IC8qIFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDFGQ0Q2QjQyM0NEQ0FDMjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QjUyM0NE
RTFDNjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZCNjIzQ0RFMUM2MDBDNjI1NjcgLyogUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDFGQ0Q2QjcyM0NERTUzRDAwQzYyNTY3IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZCODIzQ0RFNTNFMDBDNjI1NjcgLyogU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2
QkMyM0NFMDMxODAwQzYyNTY3IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZCRDIz
Q0UwNDNGMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MUZDRDZCRTIzQ0UwNDQwMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDFGQ0Q2QkYyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NDUwQUVCRjFEQzNGQUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29j
b2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkTWVtb3J5
Q29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU5OTg0MTIyODMzRTYw
MDBFNjEzNzMgLyogU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NDlEOTBEODIxRkQ2M0ZFMDBGNjc3QzAgLyogTG9jYWxBdXRoZW50aWNhdGlvblNvZnRM
aW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxBdXRo
ZW50aWNhdGlvblNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzIx
OSw2ICs3MjMxLDEyIEBACiAJCQkJNDE3NkU4OTIyM0MzNEQ2RTAwM0U4M0ZFIC8qIE1lZGlhUmVj
b3JkZXJQcm92aWRlci5oICovLAogCQkJCTQxNzIxOThDMjNCNjEyRTgwMEFFNTY4NiAvKiBSVENE
ZWNvZGVySWRlbnRpZmllci5oICovLAogCQkJCTQxNTg2NDlBMjNCRTA5MjQwMEEwQTYxRSAvKiBS
VENFbmNvZGVySWRlbnRpZmllci5oICovLAorCQkJCTQxRkNENkI3MjNDREU1M0QwMEM2MjU2NyAv
KiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovLAorCQkJCTQxRkNENkIzMjNDREM2MDQw
MEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCAqLywKKwkJCQk0MUZDRDZCODIz
Q0RFNTNFMDBDNjI1NjcgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluICov
LAorCQkJCTQxRkNENkJDMjNDRTAzMTgwMEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJJZGVudGlmaWVyLmggKi8sCisJCQkJNDEwMjRGQzEyM0NGMTA0NTAwRkRGOThFIC8qIFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwICovLAorCQkJCTQxMDI0RkMwMjNDRjEwNDUw
MEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkpOwog
CQkJcGF0aCA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC03MjQxLDYg
KzcyNTksMTIgQEAKIAkJCQk0MTc2RTg5QTIzQzM2RjcxMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFS
ZWNvcmRlck1hbmFnZXIuY3BwICovLAogCQkJCTQxNzZFODk5MjNDMzZEOEUwMDNFODNGRSAvKiBS
ZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oICovLAogCQkJCTQxNzZFODlCMjNDMzcyMjIwMDNF
ODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCQk0
MUZDRDZCNTIzQ0RFMUM2MDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmNwcCAqLywKKwkJCQk0MUZDRDZCNDIzQ0RDQUMyMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLmggKi8sCisJCQkJNDFGQ0Q2QjYyM0NERTFDNjAwQzYyNTY3IC8qIFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiAqLywKKwkJCQk0MUZDRDZC
RTIzQ0UwNDQwMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5jcHAgKi8sCisJCQkJNDFGQ0Q2QkYyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCAqLywKKwkJCQk0MUZDRDZCRDIzQ0UwNDNGMDBDNjI1
NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbiAq
LywKIAkJCSk7CiAJCQlwYXRoID0gd2VicnRjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTEyMDY4LDYgKzEyMDkyLDcgQEAKIAkJCQk0MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUgLyog
U2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc4NzIx
MkI2QUIxMDBGNDkzRkQgLyogU2hhcmVhYmxlQml0bWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUExQURBRkI2MjM2OEU2QTgwMDlDQjc3NiAvKiBTaGFyZWRNZW1vcnkuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRlZElucHV0RGlzcGF0
Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyog
U21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTMzNERFRDE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM2OEVFREUyMzAzQTkwMjAwQkRC
MTFBIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMTIyMTcsNyArMTIyNDIsNiBAQAogCQkJCTJEMTFCN0Q1MjEyNkEyODMwMDZGODg3OCAv
KiBVbmlmaWVkU291cmNlNzIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1NEMzMTEyMTJGM0Iz
MzAwNDlDMTc0IC8qIFVuaWZpZWRTb3VyY2U3Mi1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJE
NTRDMzEwMjEyRjNCMzMwMDQ5QzE3NCAvKiBVbmlmaWVkU291cmNlNzMtbW0ubW0gaW4gU291cmNl
cyAqLywKLQkJCQk1NzVCMUJCQTIzQ0U5QzEzMDAyMDYzOUEgLyogV2ViQXV0b21hdGlvblNlc3Np
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3RDYyMTI2QTI4MzAwNkY4ODc4IC8qIFVu
aWZpZWRTb3VyY2U3My5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDU0QzMxNTIxMkYzQjMzMDA0
OUMxNzQgLyogVW5pZmllZFNvdXJjZTc0LW1tLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3
RDcyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U3NC5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTEyMjY0LDcgKzEyMjg4LDkgQEAKIAkJCQkxQTYwMjI0QzE4QzE2QjlGMDBDM0U4QzkgLyog
VmlzaXRlZExpbmtTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QThFN0QzQzE4QzE1MTQ5MDA1QTcwMkEgLyogVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTdEQ0VENzAyMTQyRUU2ODAwMTZC
ODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTU3NUIxQkJBMjNDRTlDMTMwMDIwNjM5QSAvKiBXZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzBBMTk1NzFDOTAwNjhGMDBG
RTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNTc1QjFCQjgyM0NFOUJGQzAwMjA2MzlBIC8qIFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwQTE5NTMxQzhGRkRGQjAwRkUwRUJC
IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUExRkVDMUMxNjI3QjQ1NzAwNzAwRjZEIC8qIFdlYkNvbm5lY3Rpb25NZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMwOTM0NDcxMzE1QjkyMjAwOTdB
N0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xMjI4MCw3ICsxMjMwNiw2IEBACiAJCQkJQkMwRTYwNjExMkQ2QkE5MTAwMTJBNzJBIC8q
IFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzBFNjE4MjEyRDZDQjFEMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwNTIzNzUxQzczRDM4
RjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEgLyogU2ltdWxhdGVk
SW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzM0U4MzVCMjNBMUI3NTAw
MERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkVEQkRDRDYxRTY4RDIwMDAwQTU5RjhGIC8qIFdlYkluc3BlY3RvckludGVycnVwdERp
c3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM4RTJBMzUx
Mjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTEyMzM2LDcgKzEyMzYxLDYgQEAKIAkJCQk2MzcyODFBMzIxQURDNzQ0MDA5
RTBERTYgLyogV0tEb3dubG9hZFByb2dyZXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNFOTEy
MEQyMjkzQzIxOTAwNUJFQzc4IC8qIFdLTWFpbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ2NTdE
ODhBMjI2NjRBMkYwMDVERTgyMyAvKiBXS09yaWVudGF0aW9uQWNjZXNzQWxlcnQubW0gaW4gU291
cmNlcyAqLywKLQkJCQk1NzVCMUJCODIzQ0U5QkZDMDAyMDYzOUEgLyogV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1Q0EyNkQ4MzIxN0FEMUI4MDBGOTdB
MzUgLyogV0tTYWZlQnJvd3NpbmdXYXJuaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMURCMDE5
NDQyMTFDRjAwNTAwOUZCM0U4IC8qIFdLU2hhcmVTaGVldC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdBNzhGRjMzMjI0MTkxOUIwMDk2NDgzRSAvKiBXS1N0b3JhZ2VBY2Nlc3NBbGVydC5tbSBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCAxOGU5MzZkZTMyMzA3NzBmMjQzNjFiNmFiYWE4ZTE3
ZTRkMmU1YWMwLi41M2E4NWU2YWEwOGI2YjllODMzMmZiYjk1NmRkYWE5Yzc5MjVhMDgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAtNjQsNiArNjUsMTUgQEAgdm9pZCBH
UFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6U3RyaW4KIHsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
VklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCitTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyJiBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6c2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIpCisgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciA9IG1ha2VVbmlx
dWU8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcj4oKTsKKyAgICByZXR1cm4gKm1fc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKK30KKyNlbmRpZgorCiB2b2lkIEdQVVByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKSB7CkBAIC03Niw3ICs4NiwxMyBAQCB2b2lkIEdQVVByb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RAogICAgICAgICAgICAgY2FwdHVyZU1hbmFnZXItPmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQ
VVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0j
ZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6U2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlcigpLmRpZFJlY2VpdmVMYXllck1lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYgLy8gUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShWSURFT19UUkFDSykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQogI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bGliV2ViUlRDQ29kZWNzKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmgKaW5kZXggYThhZDRmZWU4NmIyNjU5YjRhZmZiN2M0ODRkYTE4MWMzYmVmMjdkMC4uNDYw
MGU1M2JiMjg0ZDc0OGNmMzkxMWI5NGRiNTU5OWE5Y2I0NWYyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMjgsNiAr
MjgsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApA
QCAtNTEsNiArNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdWRpdFRva2VuKE9wdGlvbmFs
PGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4pIHsgbV9hdWRpdFRva2VuID0gYXVkaXRUb2tlbjsg
fQogICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4oKSBjb25zdCB7IHJldHVy
biBtX2F1ZGl0VG9rZW47IH0KICNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
VklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlciYgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpOworI2Vu
ZGlmCiAKIHByaXZhdGU6CiAgICAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyKTsKQEAgLTY2LDYgKzcwLDkgQEAgcHJpdmF0ZToKICNpZiBIQVZFKEFVRElU
X1RPS0VOKQogICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG1fYXVkaXRUb2tlbjsKICNlbmRp
ZgorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKKyNlbmRpZgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKaW5k
ZXggNTQ3ZDQ1ZjJhZWY3OWNkYWI5ZDJlMzRlZmM5MmUwZGM3NjcwMDAxYy4uMTgwYWM2ZDI0NmY2
YzcxYTBkY2UzOTMzM2Y5MGY3OGU3ODQ1OTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
LmNwcApAQCAtMzcwLDggKzM3MCwxMiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzKQogICAgIFJlbW90ZU1l
ZGlhUGxheWVyU3VwcG9ydDo6c2V0UmVnaXN0ZXJSZW1vdGVQbGF5ZXJDYWxsYmFjayhzZXR0aW5n
cy51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSA/IFdURk1vdmUocmVnaXN0ZXJFbmdpbmUpIDogUmVt
b3RlTWVkaWFQbGF5ZXJTdXBwb3J0OjpSZWdpc3RlclJlbW90ZVBsYXllckNhbGxiYWNrKCkpOwog
CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLSAgICBpZiAoc2V0dGluZ3MudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkpCisg
ICAgaWYgKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpKSB7CiAgICAgICAgIFdlYkNv
cmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRDcmVhdG9yKFdlYktpdDo6QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNyZWF0ZSk7CisgICAgICAgIFdlYkNvcmU6OlNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0Q3JlYXRvcihbXShhdXRvJiBjbGllbnQsIGJvb2wg
aGlkZVJvb3RMYXllciwgYXV0byBzaXplKSB7CisgICAgICAgICAgICByZXR1cm4gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyKCkuY3JlYXRlTGF5ZXIoY2xpZW50LCBoaWRlUm9vdExheWVyLCBz
aXplKTsKKyAgICAgICAgfSk7CisgICAgfQogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlMDE2MWFhZDk0NzRkNmIwZjFmOTAwYjA1NDRmNTk4
MGQzNjk4ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5j
bHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCIKKyNpbmNsdWRlICJSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OmNyZWF0ZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBtYW5h
Z2VyLCBDbGllbnQmIGNsaWVudCwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUpCit7
CisgICAgYXV0byBsYXllciA9IHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI+KG5ldyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIobWFuYWdlciwgY2xpZW50LCBoaWRlUm9v
dExheWVyLCBzaXplKSk7CisgICAgcmV0dXJuIGxheWVyLT5yb290TGF5ZXIoKSA/IFdURk1vdmUo
bGF5ZXIpIDogbnVsbHB0cjsKK30KKworU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgbWFuYWdl
ciwgQ2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplKQorICAg
IDogV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKGNsaWVudCkKKyAgICAsIG1fbWFu
YWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKKyAgICAsIG1fY29ubmVjdGlvbihXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSkK
KyAgICAsIG1faWRlbnRpZmllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpKQoreworICAgIG1hbmFnZXIuYWRkTGF5ZXIoKnRoaXMpOworCisgICAgT3B0aW9u
YWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBjb250ZXh0SWQ7CisgICAgaWYgKCFtX2Nvbm5lY3Rp
b24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyOjpDcmVhdGVMYXllciB7IG1faWRlbnRpZmllciwgaGlkZVJvb3RMYXllciwgc2l6ZSB9LCBN
ZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Q3JlYXRlTGF5
ZXI6OlJlcGx5IHsgY29udGV4dElkLCBtX2JvdW5kcyB9LCAwKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKCFjb250ZXh0SWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdmlkZW9MYXll
ciA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29u
dGV4dCgqY29udGV4dElkKTsKK30KKworU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+U2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OlJlbGVhc2VMYXllciB7IG1f
aWRlbnRpZmllciB9LCAwKTsKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXIt
PnJlbW92ZUxheWVyKCp0aGlzKTsKK30KKworYm9vbCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OmRpZEZhaWwoKSBjb25zdAoreworICAgIHJldHVybiBtX2RpZEZhaWw7Cit9CisKK3ZvaWQgU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVEaXNwbGF5TW9kZShib29sIGhpZGVEaXNwbGF5
TGF5ZXIsIGJvb2wgaGlkZVJvb3RMYXllcikKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6VXBkYXRlRGlzcGxheU1vZGUg
eyBoaWRlRGlzcGxheUxheWVyLCBoaWRlUm9vdExheWVyIH0sIG1faWRlbnRpZmllcik7Cit9CisK
K0NHUmVjdCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmJvdW5kcygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fYm91bmRzOworfQorCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBk
YXRlQWZmaW5lVHJhbnNmb3JtKENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSkKK3sKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6VXBkYXRlQWZmaW5lVHJhbnNmb3JtIHsgdHJhbnNmb3JtIH0sIG1faWRlbnRpZmllcik7Cit9
CisKK3ZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVCb3VuZHNBbmRQb3NpdGlv
bihDR1JlY3QgYm91bmRzLCBDR1BvaW50IHBvc2l0aW9uKQoreworICAgIG1fYm91bmRzID0gYm91
bmRzOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpVcGRhdGVCb3VuZHNBbmRQb3NpdGlvbiB7IGJvdW5kcywgcG9zaXRpb24g
fSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmZs
dXNoKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6Rmx1c2ggeyB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2hBbmRSZW1vdmVJbWFnZSgpCit7CisgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OkZsdXNoQW5kUmVtb3ZlSW1hZ2UgeyB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZW5xdWV1ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQor
eworICAgIGlmIChhdXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUo
c2FtcGxlKSkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkVucXVldWVTYW1wbGUgeyAqcmVtb3RlU2FtcGxlIH0sIG1f
aWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjbGVhckVu
cXVldWVkU2FtcGxlcygpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsZWFyRW5xdWV1ZWRTYW1wbGVzIHsgfSwgbV9p
ZGVudGlmaWVyKTsKK30KKworUGxhdGZvcm1MYXllciogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
Ojpyb290TGF5ZXIoKQoreworICAgIHJldHVybiBtX3ZpZGVvTGF5ZXIuZ2V0KCk7Cit9CisKK3Zv
aWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpzZXREaWRGYWlsKGJvb2wgdmFsdWUpCit7Cisg
ICAgbV9kaWRGYWlsID0gdmFsdWU7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyNTljNTJmZGY2OWM2YmI5OTcyNTlkNTQyYzJjODY1NzAz
ODI3MGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaApAQCAtMCwwICsxLDc2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9f
VFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaD4KKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlcjsKKworY2xhc3MgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGZp
bmFsIDogcHVibGljIFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciwgcHVibGljIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
JiwgQ2xpZW50JiwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplKTsKKyAgICB+
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKCk7CisKKyAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0K
KworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImLCBDbGllbnQmLCBib29sIGhpZGVSb290TGF5
ZXIsIFdlYkNvcmU6OkludFNpemUpOworCisgICAgLy8gV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyCisgICAgYm9vbCBkaWRGYWlsKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCB1cGRh
dGVEaXNwbGF5TW9kZShib29sIGhpZGVEaXNwbGF5TGF5ZXIsIGJvb2wgaGlkZVJvb3RMYXllcikg
ZmluYWw7CisgICAgQ0dSZWN0IGJvdW5kcygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgdXBkYXRl
QWZmaW5lVHJhbnNmb3JtKENHQWZmaW5lVHJhbnNmb3JtKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0
ZUJvdW5kc0FuZFBvc2l0aW9uKENHUmVjdCwgQ0dQb2ludCkgZmluYWw7CisgICAgdm9pZCBmbHVz
aCgpIGZpbmFsOworICAgIHZvaWQgZmx1c2hBbmRSZW1vdmVJbWFnZSgpIGZpbmFsOworICAgIHZv
aWQgZW5xdWV1ZVNhbXBsZShXZWJDb3JlOjpNZWRpYVNhbXBsZSYpIGZpbmFsOworICAgIHZvaWQg
Y2xlYXJFbnF1ZXVlZFNhbXBsZXMoKSBmaW5hbDsKKyAgICBQbGF0Zm9ybUxheWVyKiByb290TGF5
ZXIoKSBmaW5hbDsKKyAgICAKKyAgICB2b2lkIHNldERpZEZhaWwoYm9vbCk7CisKKyAgICBXZWFr
UHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IG1fbWFuYWdlcjsKKyAgICBSZWY8
SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisKKyAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXll
cj4gbV92aWRlb0xheWVyOworICAgIENHUmVjdCBtX2JvdW5kczsKKyAgICBib29sIG1fZGlkRmFp
bCB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmVlZmZhZjUyYTY5Y2VhMTlhZmQ4NDhlN2E4NTY0ZjA3MmY1YmI5MgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisjIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCittZXNzYWdlcyAtPiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgTm90UmVmQ291bnRl
ZCB7CisgICAgU2V0RGlkRmFpbChib29sIHZhbHVlKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcklkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODY5NWZmYzhl
OWNjMDM0MzI4NjYzNmY2MmY2OTk1ZGRjZDI0M2YxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRl
bnRpZmllci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSAsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmll
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVu
dGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlm
aWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDgyMmY3NzNkODVk
ODJiZTFmMmYzNzE1MDNlZThkY2ZjZWFmY2U5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIgorCisjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNL
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cjo6ZGlkUmVjZWl2ZUxheWVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoYXV0byogbGF5ZXIgPSBtX2xheWVycy5n
ZXQobWFrZU9iamVjdElkZW50aWZpZXI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmll
clR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSkuZ2V0KCkpCisgICAgICAgIGxheWVyLT5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKK30KKworc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcjo6Y3JlYXRlTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGll
bnQmIGNsaWVudCwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplIHNpemUpCit7
CisgICAgYXV0byBsYXllciA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKCp0aGlz
LCBjbGllbnQsIGhpZGVSb290TGF5ZXIsIHNpemUpOworICAgIGlmICghbGF5ZXIpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBtX2xheWVycy5hZGQobGF5ZXItPmlkZW50aWZpZXIoKSwgbWFr
ZVdlYWtQdHIoKmxheWVyKSk7CisgICAgcmV0dXJuIGxheWVyOworfQorCit2b2lkIFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmFkZExheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ciYgbGF5ZXIpCit7CisgICAgQVNTRVJUKCFtX2xheWVycy5jb250YWlucyhsYXllci5pZGVudGlm
aWVyKCkpKTsKKyAgICBtX2xheWVycy5hZGQobGF5ZXIuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0
cihsYXllcikpOworfQorCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OnJl
bW92ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYgbGF5ZXIpCit7CisgICAgQVNTRVJU
KG1fbGF5ZXJzLmNvbnRhaW5zKGxheWVyLmlkZW50aWZpZXIoKSkpOworICAgIG1fbGF5ZXJzLnJl
bW92ZShsYXllci5pZGVudGlmaWVyKCkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjYzNhZjcwZDg1Zjg3Y2Nm
YjNkZTI2MTRkM2Y4NTkzYzhkNDM0ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgK
QEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKSA9IGRlZmF1bHQ7CisgICAgflNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIGFk
ZExheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpOworICAgIHZvaWQgcmVtb3ZlTGF5ZXIo
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVMYXllck1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlTGF5ZXIoU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6
OkludFNpemUpOworCitwcml2YXRlOgorICAgIEhhc2hNYXA8U2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVySWRlbnRpZmllciwgV2Vha1B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+PiBtX2xheWVy
czsKK307CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387910</attachid>
            <date>2020-01-16 05:01:11 -0800</date>
            <delta_ts>2020-01-16 08:15:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206286-20200116140108.patch</filename>
            <type>text/plain</type>
            <size>101344</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlhMjNkYWU2ZTU0Mjgx
NDVkY2E2ZDcxMzhlNzBhMmE0NDYxODY3OS4uZTYwYjRiOWY4OTM4MTI3ZWMzNjRjYmE3ZjkwNWVh
OGY1MWUzMzAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTAxLTE2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
TWVkaWFTdHJlYW0gdmlkZW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjI4NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHdheSBmb3IgV2Vi
S2l0IGxheWVyIHRvIGNyZWF0ZSBpdHMgb3duIHNwZWNpZmljIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci4KKyAgICAgICAgV2ViS2l0IGxheWVyIGNhbiBzZXQgYSBmdW5jdGlvbiBwb2ludGVyIHRo
YXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuCisgICAg
ICAgIElmIG5vbmUgaXMgcHJvdmlkZWQsIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGlz
IHVzZWQuCisKKyAgICAgICAgVXBkYXRlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQyB0byBtb25pdG9yIGl0c2VsZiBpdHMgcm9vdCBsYXllciBib3VuZHMgY2hhbmdlLgorICAg
ICAgICBDb252ZXJzZWx5LCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBubyBsb25nZXIg
bW9uaXRvcnMgaXRzIHJvb3QgbGF5ZXIgYm91bmRzIGNoYW5nZS4KKyAgICAgICAgVGhpcyByZW1v
dmVzIHRoZSBuZWVkIGZvciBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudCB0byBiZSBu
b3RpZmllZCBvZiBib3VuZHMgY2hhbmdlLgorICAgICAgICBXZSBhZGQgYW4gQVBJIHRvIHVwZGF0
ZSB0aGUgcm9vdCBsYXllciBib3VuZHMgb2YgYSBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ciBhcyB3ZWxsLAorICAgICAgICB0aGlzIEFQSSBiZWluZyB1c2VkIGJ5IEdQVVByb2Nlc3MgdG8g
bWlycm9yIGNoYW5nZXMgZG9uZSB0byBXZWJQcm9jZXNzIHJvb3QgbGF5ZXIuCisKKyAgICAgICAg
V2ViUlRDIGluY29taW5nIHZpZGVvIHRyYWNrcyBkbyBub3QgaGF2ZSBwcmVzZW50YXRpb24gdGlt
ZXN0YW1wcyBzbyB3ZSBtYXJrIHRoZW0gYXMga0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5
SW1tZWRpYXRlbHkuCisgICAgICAgIFRoaXMgaXMgY3VycmVudGx5IGxvc3Qgd2hlbiBkb2luZyBJ
UEMgZnJvbSBXZWJQcm9jZXNzIHRvIE5ldHdvcmtQcm9jZXNzLiBBZGQgdGhpcyBpbmZvcm1hdGlv
biBmb3IgZXZlcnkgZW5xdWV1ZWQgc2FtcGxlIGluIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLgorICAgICAgICBXZSBtaWdodCB3YW50IGluIHRoZSBmdXR1cmUgdG8gc2VyaWFsaXplIGFs
bCBhdHRhY2htZW50cyBvZiB0aGUgc2FtcGxlLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZC4K
KworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0Q3JlYXRvcik6CisgICAgICAgIChXZWJD
b3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW06CisgICAgICAgICgtW1dl
YkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXIgaW52YWxpZGF0ZV0pOgorICAgICAg
ICAoLVtXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIHN0YXJ0XSk6CisgICAg
ICAgICgtW1dlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXIgc3RvcF0pOgorICAg
ICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIG9ic2VydmVWYWx1
ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAgIChXZWJDb3Jl
OjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
On5Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpMb2Nh
bFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQm91bmRzQW5kUG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1w
bGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5tbToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3Rl
bmVyIGluaXRXaXRoUGFyZW50Ol0pOgorICAgICAgICAoLVtXZWJSb290U2FtcGxlQnVmZmVyQm91
bmRzQ2hhbmdlTGlzdGVuZXIgZGVhbGxvY10pOgorICAgICAgICAoLVtXZWJSb290U2FtcGxlQnVm
ZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIgaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXZWJSb290
U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIgc3RhcnRdKToKKyAgICAgICAgKC1bV2Vi
Um9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyIHN0b3BdKToKKyAgICAgICAgKC1b
V2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyIG9ic2VydmVWYWx1ZUZvcktl
eVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpl
bnN1cmVMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpyb290TGF5ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVEaXNwbGF5TGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpyb290
TGF5ZXJCb3VuZHNEaWRDaGFuZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BE
RkRvY3VtZW50SW1hZ2UuY3BwOgorICAgICAgICBVbmlmaWVkIGJ1aWxkIGZpeC4KKwogMjAyMC0w
MS0xNSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9k
dWNlIGFuIGFic3RyYWN0IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0MTlh
MWQ4OWE2NGUxNjcxMzRhYzlkMzVkOGRhMjBhMzFiMzA0NGEwLi4yMjlhNzYyMDA3NjU3YTgyMTJi
ZTMxMjBlNmNiMjNhOWJhNDdiYTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIwLTAx
LTE2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgTWVkaWFTdHJlYW0gdmlkZW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjI4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVu
dCBXZWJQcm9jZXNzIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBhbmQgR1BVUHJvY2VzcyBSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuCisgICAgICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllciBpcyBhIHdyYXBwZXIgYXJvdW5kIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLgorCisgICAgICAgIEEgc3luY2hyb25vdXMgSVBDIGlzIHVzZWQgYXQgY3JlYXRpb24gdGlt
ZSBvZiB0aGUgbGF5ZXIgdG8gbWFrZSBzdXJlIHdlIGhhdmUgYSBzaGFyZWQgbGF5ZXIgc3luY2hy
b25vdXNseS4KKyAgICAgICAgRnV0dXJlIHJlZmFjdG9yaW5nIHNob3VsZCBhbGxvdyB0byByZW1v
dmUgdGhhdCBjb25zdHJhaW50IGFzIGRvbmUgaW4gcmVndWxhciB2aWRlbyBwbGF5aW5nLgorCisg
ICAgICAgIE92ZXJyaWRlIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBjcmVhdGUgZnVuY3Rpb24g
cG9pbnRlciB3aGVuIHJlbmRlcmluZyBpcyB0byBiZSBkb25lIGluIEdQVVByb2Nlc3MuCisKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6flJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y29udGV4dElEKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpib3VuZHMgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVw
ZGF0ZURpc3BsYXlNb2RlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjp1cGRhdGVBZmZpbmVUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2hBbmRS
ZW1vdmVJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6ZW5xdWV1ZVNhbXBsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6Y2xlYXJFbnF1ZXVlZFNhbXBsZXMpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpz
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnN0cmVhbVRpbWUgY29uc3QpOgorICAg
ICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5o
OiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6UmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmRpZFJlY2VpdmVMYXllck1lc3Nh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyOjpjcmVhdGVMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXI6OnJlbGVhc2VMYXllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOiBBZGRlZC4KKyAg
ICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAg
ICAgICogU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxDR1JlY3Q+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENH
U2l6ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVj
b2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1BvaW50Pjo6ZW5jb2RlKToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1BvaW50Pjo6ZGVjb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUpOgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29u
bmVjdGlvbjo6c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcik6CisgICAgICAgIChXZWJL
aXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6On5TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OmRpZEZhaWwgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZURpc3BsYXlNb2RlKToKKyAgICAgICAgKFdlYktp
dDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpib3VuZHMgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUFmZmluZVRyYW5zZm9ybSk6Cisg
ICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQm91bmRzQW5k
UG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmZs
dXNoKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaEFu
ZFJlbW92ZUltYWdlKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjplbnF1ZXVlU2FtcGxlKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpjbGVhckVucXVldWVkU2FtcGxlcyk6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6cm9vdExheWVyKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpzZXREaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpib3VuZHNDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93
ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW46IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmRpZFJlY2VpdmVMYXllck1l
c3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
OjpjcmVhdGVMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI6OmFkZExheWVyKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcjo6cmVtb3ZlTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIwLTAxLTE1ICB5b3Vlbm4gZmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWVkaWFTdHJlYW0g
YXVkaW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CmluZGV4IDg5MDZmNTdkYzlkMzI0YzlmMGJkMWVmYjg1MGIyMGE5NTIwZTE5MGIuLjhlMmFhZGQw
Y2ZmN2E2MGYxZDMyZmM4YjNiOWFjN2FmOGNjY2EzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dApAQCAtMjMwLDYgKzIzMCw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnNH
TEFOR0xFLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuY3BwIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9y
YXJ5QU5HTEVTZXR0aW5nLmNwcCBAbm8tdW5pZnkKIAorcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tIEBuby11bmlmeQogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIEBu
by11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0gQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2MzNWE1ODkxMTM0MTFiMTU4NjIwYmY0MDE5
MTZlZmQ3NDNlZTk0ZC4uMDdhMjFmNGYzZTIzZDhlNDc5MTRjYThmNDIxMDJkNDIyNTVjZTNmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNzI3OSw2ICs3Mjc5LDcgQEAKIAkJM0ZGRkY5QTcxNTlEOUE1NTAwMjBCQkQ1IC8qIFdl
YktpdENTU1ZpZXdwb3J0UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZG
RkY5QUIxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkZGRjlBQzE1OUQ5QjA2MDAyMEJCRDUg
LyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTAyNEZDODIzQ0YyNTRGMDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDYyNkE3MjI4MEEyMkEwMDZEMUI1OSAvKiBKU0F1
ZGlvTm9kZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0F1ZGlvTm9kZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDc5
MDhBMUZDM0U0RjIwMDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2xpZW50T3JpZ2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxMDkzODI4MjM0Nzc5OUEwMDk0MjhCQSAvKiBKU0Fib3J0Q29udHJvbGxlckN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Fib3J0Q29udHJvbGxl
ckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjMzMSw2ICsxNjMz
Miw3IEBACiAJCQkJMDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5oICovLAogCQkJCUNEQkVBRUFCMTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRp
YVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oICovLAogCQkJCUNEQkVBRUFBMTlEOTJCNkMwMEJFQkE4
OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSAqLywKKwkJCQk0MTAyNEZDODIzQ0Yy
NTRGMDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCAqLywKIAkJCQk0MTQ1
OThCRTIzQzhBQUI4MDAyQjlDQzggLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggKi8sCiAJ
CQkJQ0QzMzZGNjMxN0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGLmggKi8s
CiAJCQkJMDcwOUQ3OTAxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJN
YWMuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zZDExYzI5NmJhNTY1NjNhOWI1NGJkODhiZTJhMjk4ODIxNGNiZWJj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTAsMCArMSw1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKKworI2luY2x1
ZGUgIkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpMYXllckNyZWF0b3IgU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjptX2xheWVyQ3JlYXRvciA9IG51bGxwdHI7Cit2b2lkIFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6c2V0Q3JlYXRvcihMYXllckNyZWF0b3IgY3JlYXRvcikKK3sKKyAgICBt
X2xheWVyQ3JlYXRvciA9IGNyZWF0b3I7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKENsaWVudCYg
Y2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKK3sKKyAgICBpZiAobV9s
YXllckNyZWF0b3IpCisgICAgICAgIHJldHVybiBtX2xheWVyQ3JlYXRvcihjbGllbnQsIGhpZGVS
b290TGF5ZXIsIHNpemUpOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9V
TkRBVElPTikKKyAgICByZXR1cm4gTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0
ZShjbGllbnQsIGhpZGVSb290TGF5ZXIsIHNpemUpOworI2Vsc2UKKyAgICByZXR1cm4gbnVsbHB0
cjsKKyNlbmRpZgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmgKaW5kZXggNGZmNTdkN2M3ZDU5YTcxZDU2N2JjMmFiZDlmNjE5MmIyYmZiY2NjMC4u
NDAxYTcyNzBkZGQ2NDM2YTM0MmRiZWM0NzhiMDZjMDRjMjJkODcyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaApAQCAtNDIsMTEgKzQyLDEzIEBAIHB1
YmxpYzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkNsaWVudCgpID0gZGVmYXVsdDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllclN0YXR1c0RpZENo
YW5nZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyJikgPSAwOwogICAgICAgICB2aXJ0dWFsIFdURjo6TWVkaWFUaW1lIHN0cmVhbVRp
bWUoKSBjb25zdCA9IDA7CiAgICAgfTsKIAotICAgIGV4cGxpY2l0IFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcihDbGllbnQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlKENsaWVudCYsIGJvb2wgaGlkZVJv
b3RMYXllciwgSW50U2l6ZSk7CisgICAgdXNpbmcgTGF5ZXJDcmVhdG9yID0gc3RkOjp1bmlxdWVf
cHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gKCopKENsaWVudCYsIGJvb2wgaGlkZVJvb3RM
YXllciwgSW50U2l6ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Q3JlYXRv
cihMYXllckNyZWF0b3IpOworCiAgICAgdmlydHVhbCB+U2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
KCkgPSBkZWZhdWx0OwogCiAgICAgdmlydHVhbCBib29sIGRpZEZhaWwoKSBjb25zdCA9IDA7CkBA
IC02Niw3ICs2OCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiByb290
TGF5ZXIoKSA9IDA7CiAKIHByb3RlY3RlZDoKKyAgICBleHBsaWNpdCBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIoQ2xpZW50Jik7CisKICAgICBXZWFrUHRyPENsaWVudD4gbV9jbGllbnQ7CisKK3By
aXZhdGU6CisgICAgc3RhdGljIExheWVyQ3JlYXRvciBtX2xheWVyQ3JlYXRvcjsKIH07CiAKIGlu
bGluZSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihD
bGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmluZGV4IDI5Y2RlYTQzYjlmYThmMDYxZGMwY2YxNDAz
YjM1MmE5MWRmY2ZjMWQuLjZmYWE0MDkxNmE0ZWViMDMzN2VkZDk5ODI0ZTBmMzBhODkwYTgyY2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBmaW5hbCA6IHB1
YmxpYyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxMb2Nh
bFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyPiBjcmVhdGUoQ2xpZW50JiwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplKTsKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBj
cmVhdGUoQ2xpZW50JiwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplKTsKIAogICAgIExvY2Fs
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcj4mJiwgQ2xpZW50JiwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplKTsKICAgICB+TG9j
YWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoKTsKQEAgLTU0LDcgKzU0LDggQEAgcHVibGljOgog
CiAgICAgUGxhdGZvcm1MYXllciogcm9vdExheWVyKCkgZmluYWw7CiAKLXByaXZhdGU6CisgICAg
dm9pZCB1cGRhdGVSb290TGF5ZXJCb3VuZHNBbmRQb3NpdGlvbihDR1JlY3QsIENHUG9pbnQpOwor
CiAgICAgYm9vbCBkaWRGYWlsKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHVwZGF0ZURpc3Bs
YXlNb2RlKGJvb2wgaGlkZURpc3BsYXlMYXllciwgYm9vbCBoaWRlUm9vdExheWVyKSBmaW5hbDsK
QEAgLTY5LDggKzcwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVucXVldWVTYW1wbGUoTWVkaWFT
YW1wbGUmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyRW5xdWV1ZWRTYW1wbGVzKCkgZmluYWw7CiAK
LSAgICB2b2lkIGVuc3VyZUxheWVycygpOwotCitwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlT2xk
U2FtcGxlc0Zyb21QZW5kaW5nUXVldWUoKTsKICAgICB2b2lkIGFkZFNhbXBsZVRvUGVuZGluZ1F1
ZXVlKE1lZGlhU2FtcGxlJik7CiAgICAgdm9pZCByZXF1ZXN0Tm90aWZpY2F0aW9uV2hlblJlYWR5
Rm9yVmlkZW9EYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2Fs
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tCmluZGV4IGYwYzljYzczZmFkODQ1MzFjOTc5MTY0
MWQzODNjY2U0OTczYzg5YzIuLjkyMGZkOTUyY2Q3MDZlNDU3YjlmOTJiNTcyMmZiM2IxYWYzZTFl
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0IDxRdWFydHpDb3Jl
L0NBVHJhbnNhY3Rpb24uaD4KIAogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQg
PHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogCiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsuaD4KIApAQCAtNDgsOCArNDksOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogLSAoaWQpaW5pdFdpdGhQYXJlbnQ6KExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKilj
YWxsYmFjazsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKLS0gKHZvaWQpYmVnaW5PYnNlcnZpbmdMYXll
cnM7Ci0tICh2b2lkKXN0b3BPYnNlcnZpbmdMYXllcnM7CistICh2b2lkKXN0YXJ0OworLSAodm9p
ZClzdG9wOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViQVZTYW1wbGVCdWZmZXJTdGF0dXND
aGFuZ2VMaXN0ZW5lcgpAQCAtNzIsMzggKzczLDMzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiAtICh2b2lkKWludmFsaWRhdGUKIHsKLSAgICBbc2VsZiBzdG9wT2JzZXJ2aW5nTGF5ZXJz
XTsKKyAgICBbc2VsZiBzdG9wXTsKICAgICBfcGFyZW50ID0gbnVsbHB0cjsKIH0KIAotLSAodm9p
ZCliZWdpbk9ic2VydmluZ0xheWVycworLSAodm9pZClzdGFydAogewogICAgIEFTU0VSVChfcGFy
ZW50KTsKICAgICBBU1NFUlQoX3BhcmVudC0+ZGlzcGxheUxheWVyKCkpOwotICAgIEFTU0VSVChf
cGFyZW50LT5yb290TGF5ZXIoKSk7CiAKICAgICBbX3BhcmVudC0+ZGlzcGxheUxheWVyKCkgYWRk
T2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAic3RhdHVzIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNl
cnZpbmdPcHRpb25OZXcgY29udGV4dDpuaWxdOwogICAgIFtfcGFyZW50LT5kaXNwbGF5TGF5ZXIo
KSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJlcnJvciIgb3B0aW9uczpOU0tleVZhbHVl
T2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bmlsXTsKLSAgICBbX3BhcmVudC0+cm9vdExheWVy
KCkgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiYm91bmRzIiBvcHRpb25zOk5TS2V5VmFs
dWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpuaWxdOwogfQogCi0tICh2b2lkKXN0b3BPYnNl
cnZpbmdMYXllcnMKKy0gKHZvaWQpc3RvcAogewotICAgIGlmICghX3BhcmVudCkKKyAgICBpZiAo
IV9wYXJlbnQgfHwgIV9wYXJlbnQtPmRpc3BsYXlMYXllcigpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoX3BhcmVudC0+ZGlzcGxheUxheWVyKCkpIHsKLSAgICAgICAgW19wYXJlbnQtPmRp
c3BsYXlMYXllcigpIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAInN0YXR1cyJdOwot
ICAgICAgICBbX3BhcmVudC0+ZGlzcGxheUxheWVyKCkgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JL
ZXlQYXRoOkAiZXJyb3IiXTsKLSAgICB9Ci0gICAgaWYgKF9wYXJlbnQtPnJvb3RMYXllcigpKQot
ICAgICAgICBbX3BhcmVudC0+cm9vdExheWVyKCkgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQ
YXRoOkAiYm91bmRzIl07CisgICAgW19wYXJlbnQtPmRpc3BsYXlMYXllcigpIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgZm9yS2V5UGF0aDpAInN0YXR1cyJdOworICAgIFtfcGFyZW50LT5kaXNwbGF5TGF5
ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJlcnJvciJdOwogfQogCiAtICh2
b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDoo
aWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQgKilj
b250ZXh0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwogICAgIFVOVVNFRF9QQVJBTShr
ZXlQYXRoKTsKKyAgICBVTlVTRURfUEFSQU0oY2hhbmdlKTsKICAgICBBU1NFUlQoX3BhcmVudCk7
CiAKICAgICBpZiAoIV9wYXJlbnQpCkBAIC0xMzIsMjkgKzEyOCw2IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotCi0gICAg
aWYgKFtbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOb3RpZmljYXRpb25Jc1By
aW9yS2V5XSBib29sVmFsdWVdKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoKENBTGF5ZXIg
KilvYmplY3QgPT0gX3BhcmVudC0+cm9vdExheWVyKCkpIHsKLSAgICAgICAgaWYgKFtrZXlQYXRo
IGlzRXF1YWxUb1N0cmluZzpAImJvdW5kcyJdKSB7Ci0gICAgICAgICAgICBpZiAoIV9wYXJlbnQp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoaXNNYWluVGhyZWFk
KCkpIHsKLSAgICAgICAgICAgICAgICBfcGFyZW50LT5yb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2Uo
KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBSZXRhaW5QdHI8V2ViQVZTYW1wbGVC
dWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lcj4oc2VsZildIHsKLSAgICAgICAgICAgICAgICBpZiAo
IXByb3RlY3RlZFNlbGYtPl9wYXJlbnQpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9wYXJlbnQtPnJvb3RMYXllckJvdW5kc0Rp
ZENoYW5nZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KIH0KIEBlbmQK
IApAQCAtMTY5LDcgKzE0Miw3IEBAIHN0YXRpYyB2b2lkIHJ1bldpdGhvdXRBbmltYXRpb25zKGNv
bnN0IFdURjo6RnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCiAgICAgW0NBVHJhbnNhY3Rpb24g
Y29tbWl0XTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4g
TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgYm9v
bCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUpCitzdGQ6OnVuaXF1ZV9wdHI8TG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI+IExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVh
dGUoQ2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplKQogewog
ICAgIGF1dG8gc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID0gYWRvcHROUyhbUEFMOjphbGxvY0FW
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySW5zdGFuY2UoKSBpbml0XSk7CiAgICAgaWYgKCFzYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIpCkBAIC0xOTYsNyArMTY5LDcgQEAgTG9jYWxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFJldGFpblB0cjxB
VlNhbXBsZUIKIAogICAgIG1fcm9vdExheWVyLmdldCgpLmJvdW5kcyA9IENHUmVjdE1ha2UoMCwg
MCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKIAotICAgIFttX3N0YXR1c0NoYW5nZUxp
c3RlbmVyIGJlZ2luT2JzZXJ2aW5nTGF5ZXJzXTsKKyAgICBbbV9zdGF0dXNDaGFuZ2VMaXN0ZW5l
ciBzdGFydF07CiAKICAgICBbbV9yb290TGF5ZXIgYWRkU3VibGF5ZXI6bV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuZ2V0KCldOwogCkBAIC0yMDgsNyArMTgxLDcgQEAgTG9jYWxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFJldGFpblB0cjxB
VlNhbXBsZUIKIAogTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6On5Mb2NhbFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcigpCiB7Ci0gICAgW21fc3RhdHVzQ2hhbmdlTGlzdGVuZXIgc3RvcE9i
c2VydmluZ0xheWVyc107CisgICAgbV9zdGF0dXNDaGFuZ2VMaXN0ZW5lciA9IG51bGxwdHI7CiAK
ICAgICBtX3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlLmNsZWFyKCk7CiAKQEAgLTIzNSwxNCArMjA4
LDYgQEAgdm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bGF5ZXJFcnJvckRpZENo
YW5nZSgpCiAgICAgLy8gRklYTUU6IExvZyBlcnJvci4KIH0KIAotdm9pZCBMb2NhbFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6cm9vdExheWVyQm91bmRzRGlkQ2hhbmdlKCkKLXsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybjsK
LSAgICBtX2NsaWVudC0+c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQm91bmRzRGlkQ2hhbmdlKCp0
aGlzKTsKLX0KLQogUGxhdGZvcm1MYXllciogTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OmRpc3BsYXlMYXllcigpCiB7CiAgICAgcmV0dXJuIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmdldCgpOwpAQCAtMjg5LDYgKzI1NCwxNiBAQCB2b2lkIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOjp1cGRhdGVCb3VuZHNBbmRQb3NpdGlvbihDR1JlY3QgdmlkZW9Cb3VuZHMsCiAgICAg
fSk7CiB9CiAKK3ZvaWQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZVJvb3RM
YXllckJvdW5kc0FuZFBvc2l0aW9uKENHUmVjdCB2aWRlb0JvdW5kcywgQ0dQb2ludCBwb3NpdGlv
bikKK3sKKyAgICBydW5XaXRob3V0QW5pbWF0aW9ucyhbJl0geworICAgICAgICBtX3Jvb3RMYXll
ci5nZXQoKS5ib3VuZHMgPSB2aWRlb0JvdW5kczsKKyAgICAgICAgbV9yb290TGF5ZXIuZ2V0KCku
cG9zaXRpb24gPSBwb3NpdGlvbjsKKyAgICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
Z2V0KCkuYm91bmRzID0gdmlkZW9Cb3VuZHM7CisgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmdldCgpLnBvc2l0aW9uID0gcG9zaXRpb247CisgICAgfSk7Cit9CisKIHZvaWQgTG9j
YWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmZsdXNoKCkKIHsKICAgICBbbV9zYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIgZmx1c2hdOwpAQCAtMzAxLDYgKzI3NiwxMiBAQCB2b2lkIExvY2FsU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaEFuZFJlbW92ZUltYWdlKCkKIAogdm9pZCBMb2Nh
bFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZW5xdWV1ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2Ft
cGxlKQogeworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUu
Y21TYW1wbGVCdWZmZXIsIHRydWUpOworICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJy
YXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7CisgICAgICAgIENGTXV0YWJsZURp
Y3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlv
bmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7Cisg
ICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2ht
ZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOworICAgIH0KKwogICAg
IGlmICghW21fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGlzUmVhZHlGb3JNb3JlTWVkaWFEYXRh
XSkgewogICAgICAgICBhZGRTYW1wbGVUb1BlbmRpbmdRdWV1ZShzYW1wbGUpOwogICAgICAgICBy
ZXF1ZXN0Tm90aWZpY2F0aW9uV2hlblJlYWR5Rm9yVmlkZW9EYXRhKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oCmluZGV4IGQ5YWYyN2E2MDEwZDc5ODg2NjI1MmVlZTM4YTVjNTA1ZTdhZWI4NWQu
LjViYWVjNTZhZWI5ZGRiZDMzMDNkZWVmYWUxNjU1ODgwZmIzMTU2N2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBl
ci5oPgogCiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOwotT0JKQ19DTEFT
UyBXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyOworT0JKQ19DTEFTUyBXZWJS
b290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXI7CiAKIG5hbWVzcGFjZSBQQUwgewog
Y2xhc3MgQ2xvY2s7CkBAIC04Miw2ICs4Miw5IEBAIHB1YmxpYzoKICAgICBXVEZMb2dDaGFubmVs
JiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAorICAgIFBsYXRmb3JtTGF5ZXIq
IHJvb3RMYXllcigpIGNvbnN0OworICAgIHZvaWQgcm9vdExheWVyQm91bmRzRGlkQ2hhbmdlKCk7
CisKIHByaXZhdGU6CiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCiAKQEAgLTI0
NCwxMyArMjQ3LDE0IEBAIHByaXZhdGU6CiAKICAgICAvLyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6OkNsaWVudAogICAgIHZvaWQgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyU3RhdHVzRGlkQ2hh
bmdlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpIGZpbmFsOwotICAgIHZvaWQgc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyQm91bmRzRGlkQ2hhbmdlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYp
IGZpbmFsOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgUmVmPGNvbnN0IExvZ2dl
cj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwogI2VuZGlmCiAK
KyAgICBSZXRhaW5QdHI8V2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyPiBt
X2JvdW5kc0NoYW5nZUxpc3RlbmVyOworCiAgICAgYm9vbCBtX3ZpZGVvTWlycm9yZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9wbGF5aW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1fbXV0ZWQgeyBm
YWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGRmOWUyMDU3YThiNjk5ZDcy
ZTYyNjI2MDMwOGEwOWNlZjU2NTJkNDUuLjI1ZjIwN2EwMWQ4NDA2MDgzNDc2MzgyN2U4MzAwYjlk
OTM4ZDQ4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTQ4LDYgKzQ4LDkxIEBA
CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jb2Nv
YS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgogCitAaW50ZXJmYWNlIFdlYlJvb3RTYW1wbGVCdWZm
ZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciA6IE5TT2JqZWN0IHsKKyAgICBXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMqIF9wYXJlbnQ7Cit9CisKKy0gKGlkKWluaXRX
aXRoUGFyZW50OihXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMq
KWNhbGxiYWNrOworLSAodm9pZClpbnZhbGlkYXRlOworLSAodm9pZClzdGFydDsKKy0gKHZvaWQp
c3RvcDsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHND
aGFuZ2VMaXN0ZW5lcgorCistIChpZClpbml0V2l0aFBhcmVudDooV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKilwYXJlbnQKK3sKKyAgICBpZiAoIShzZWxmID0g
W3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9wYXJlbnQgPSBwYXJl
bnQ7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgW3Nl
bGYgaW52YWxpZGF0ZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh2b2lkKWludmFs
aWRhdGUKK3sKKyAgICBbc2VsZiBzdG9wXTsKKyAgICBfcGFyZW50ID0gbnVsbHB0cjsKK30KKwor
LSAodm9pZClzdGFydAoreworICAgIEFTU0VSVChfcGFyZW50KTsKKyAgICBBU1NFUlQoX3BhcmVu
dC0+cm9vdExheWVyKCkpOworCisgICAgW19wYXJlbnQtPnJvb3RMYXllcigpIGFkZE9ic2VydmVy
OnNlbGYgZm9yS2V5UGF0aDpAImJvdW5kcyIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0
aW9uTmV3IGNvbnRleHQ6bmlsXTsKK30KKworLSAodm9pZClzdG9wCit7CisgICAgaWYgKCFfcGFy
ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoX3BhcmVudC0+cm9vdExheWVyKCkpCisg
ICAgICAgIFtfcGFyZW50LT5yb290TGF5ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBh
dGg6QCJib3VuZHMiXTsKK30KKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0
cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAq
KWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAoreworICAgIFVOVVNFRF9QQVJBTShjb250
ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oa2V5UGF0aCk7CisgICAgQVNTRVJUKF9wYXJlbnQpOwor
CisgICAgaWYgKCFfcGFyZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoW1tjaGFuZ2Ug
dmFsdWVGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbklzUHJpb3JLZXldIGJvb2xW
YWx1ZV0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgoQ0FMYXllciAqKW9iamVjdCA9PSBf
cGFyZW50LT5yb290TGF5ZXIoKSkgeworICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3Ry
aW5nOkAiYm91bmRzIl0pIHsKKyAgICAgICAgICAgIGlmICghX3BhcmVudCkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgICAg
ICAgICAgICAgIF9wYXJlbnQtPnJvb3RMYXllckJvdW5kc0RpZENoYW5nZSgpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbcHJvdGVjdGVkU2VsZiA9IFJldGFpblB0cjxXZWJSb290U2FtcGxlQnVmZmVyQm91bmRz
Q2hhbmdlTGlzdGVuZXI+KHNlbGYpXSB7CisgICAgICAgICAgICAgICAgaWYgKCFwcm90ZWN0ZWRT
ZWxmLT5fcGFyZW50KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
ICAgICBwcm90ZWN0ZWRTZWxmLT5fcGFyZW50LT5yb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCit9CitAZW5kCisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKQEAgLTY0LDYgKzE0OSw3IEBAIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDKE1lZGlhCiAgICAgLCBtX2xvZ2dlcihwbGF5ZXItPm1lZGlhUGxheWVy
TG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lk
ZW50aWZpZXIoKSkKICNlbmRpZgorICAgICwgbV9ib3VuZHNDaGFuZ2VMaXN0ZW5lcihhZG9wdE5T
KFtbV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0
aFBhcmVudDp0aGlzXSkpCiB7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9CkBAIC04
Miw2ICsxNjgsOCBAQCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoKQogICAgICAgICAgICAgdHJhY2stPnJl
bW92ZU9ic2VydmVyKCp0aGlzKTsKICAgICB9CiAKKyAgICBbbV9ib3VuZHNDaGFuZ2VMaXN0ZW5l
ciBzdG9wXTsKKwogICAgIGRlc3Ryb3lMYXllcnMoKTsKIAogICAgIGF1dG8gYXVkaW9UcmFja01h
cCA9IFdURk1vdmUobV9hdWRpb1RyYWNrTWFwKTsKQEAgLTI4NCw3ICszNzIsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5zdXJlTGF5ZXJzKCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgYXV0byBzaXplID0gc25hcHBlZEludFJlY3QobV9wbGF5ZXItPnBs
YXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKTsKLSAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllciA9IExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoKnRoaXMsIGhpZGVS
b290TGF5ZXIoKSwgc2l6ZSk7CisgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgPSBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSgqdGhpcywgaGlkZVJvb3RMYXllcigpLCBzaXpl
KTsKIAogICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpIHsKICAgICAgICAgRVJS
T1JfTE9HKExPR0lERU5USUZJRVIsICJDcmVhdGluZyB0aGUgU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyIGZhaWxlZC4iKTsKQEAgLTI5NSw2ICszODMsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5zdXJlTGF5ZXJzKCkKICAgICB1cGRhdGVEaXNwbGF5TGF5
ZXIoKTsKIAogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVy
KG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIoKSwgc2l6ZSk7CisKKyAgICBb
bV9ib3VuZHNDaGFuZ2VMaXN0ZW5lciBzdGFydF07CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpkZXN0cm95TGF5ZXJzKCkKQEAgLTM2NSw2ICs0NTUsMTEg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnByZXBhcmVUb1Bs
YXkoKQogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogfQogCitQbGF0Zm9ybUxheWVyKiBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJvb3RMYXllcigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID8gbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXItPnJvb3RMYXllcigpIDogbnVsbHB0cjsKK30KKwogUGxhdGZvcm1MYXllciog
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKCkgY29u
c3QKIHsKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIHx8ICFtX3NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci0+cm9vdExheWVyKCkgfHwgbV9kaXNwbGF5TW9kZSA9PSBOb25lKQpA
QCAtOTQ4LDcgKzEwNDMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6dXBkYXRlRGlzcGxheUxheWVyKCkKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGJvdW5kcyA9IG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLT5ib3VuZHMoKTsKKyAgICBhdXRvIGJvdW5kcyA9IHJvb3RMYXllcigp
LmJvdW5kczsKICAgICBhdXRvIHZpZGVvQm91bmRzID0gYm91bmRzOwogICAgIGlmIChtX3ZpZGVv
Um90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0IHx8IG1fdmlkZW9S
b3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdCkKICAgICAgICAgc3Rk
Ojpzd2FwKHZpZGVvQm91bmRzLnNpemUud2lkdGgsIHZpZGVvQm91bmRzLnNpemUuaGVpZ2h0KTsK
QEAgLTk1Niw3ICsxMDUxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnVwZGF0ZURpc3BsYXlMYXllcigpCiAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXItPnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKHZpZGVvQm91bmRzLCB7IGJvdW5kcy5zaXplLndp
ZHRoIC8gMiwgYm91bmRzLnNpemUuaGVpZ2h0IC8gMn0pOwogfQogCi12b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQm91bmRz
RGlkQ2hhbmdlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cm9vdExheWVyQm91bmRzRGlkQ2hhbmdlKCkKIHsKICAg
ICB1cGRhdGVEaXNwbGF5TGF5ZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKaW5kZXggODBmNmIxODcy
NTIyOTY4ZWE3ZDk1NzZiN2UwMDU2MzMzMjU4ODIzYy4uMjgyMWVmODFkNzVkZmIwZmYwNWE4NWJl
NWM5ZmJjMjU4YjU2MmViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dDb250ZXh0
Lmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHUERGRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxw
YWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL1JBTVNpemUuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Qg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMWEy
NGJiZmMwNzJkMjZmZWM3MTY1M2E5NTlmZDczYjBhMmY0M2Q2Yi4uOTgwODFhYTZiMmNjM2I4YzRh
NWFkNTJmODljOGQyMjBkY2JlMjNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMjQsNiArMjQsOCBAQCAkKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5tZXNzYWdl
cy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9MZWdh
Y3lDdXN0b21Qcm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4KQEAgLTEwOCw2ICsx
MTAsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDUmVtb3RlQ29kZWNzLm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAx
ZGM1NDY1MjhmNWJhMjJkNzM2NTBlMDA0YmEyODFlYzIyZjI2MjM1Li45YjYwZDE1NWY5ZWIzZWQz
NmQ3ZWMxOTBhYjc0MWIyMGYxMGQ3ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE1MSw2ICsxNTEsMTIgQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1IKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdl
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVP
YmplY3RSZWdpc3RyeU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlck1lc3NhZ2VzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1l
c3NhZ2VzUmVwbGllcy5oCkBAIC0xNjAsNiArMTY2LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlc1Jl
cGwKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdl
Ykluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0
b3JVSU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGxpZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VjSXRlbVNoaW1Qcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZWNJdGVtU2hpbVByb3h5TWVzc2FnZXNSZXBsaWVz
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBhMTlkMDc5ZTAwM2FhOGJmMmEzODUz
MWZkOWRlYWM1MWE3NjRmYjJmLi5jMzRhZjVjZDNhMTc0N2YyNmVjNDQ4OWNhZDgzZmYyZGI2YzUy
NmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNTAsOSArMTUwLDEyIEBAIE1F
U1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyIFwKICAg
ICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBcCiAgICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkg
XAorICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBcCisgICAgUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciBcCiAgICAgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IgXAogICAgIFJlbW90ZVdlYkluc3BlY3RvclByb3h5IFwKICAgICBSZW1vdGVXZWJJbnNwZWN0
b3JVSSBcCisgICAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIFwKICAgICBTZWNJdGVtU2hpbVBy
b3h5IFwKICAgICBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIFwKICAgICBTbWFydE1hZ25pZmljYXRp
b25Db250cm9sbGVyIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA0NmIxMzQ5ODg5ZTRkZjUwODBjM2JiMWEx
N2E4NjFkYzRlNGI3NGJiLi5jMDk0OGQwOTk1Yjk2Y2I1M2U1M2Y0YTdhY2UzZjM4NmNiNTEzOGVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCkBAIC00OSw2ICs0OSw5IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFS
ZWNvcmRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIgorI2luY2x1ZGUg
IlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5TWVzc2FnZXMuaCIKQEAgLTE2Miw2ICsxNjUsMTQgQEAgUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjph
dWRpb1RyYWMKIAogICAgIHJldHVybiAqbV9hdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyOwogfQor
CitSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkKK3sKKyAgICBpZiAo
IW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcikKKyAgICAgICAgbV9zYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyID0gbWFrZVVuaXF1ZTxSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyPihtX2Nvbm5lY3Rpb24uY29weVJlZigpKTsKKworICAgIHJldHVybiAq
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOworfQogI2VuZGlmCiAjZW5kaWYKIApA
QCAtMjA5LDYgKzIyMCwxNCBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSQogICAgICAgICBhdWRp
b1RyYWNrUmVuZGVyZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZVJlbmRlcmVyTWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBzYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKS5kaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKGNvbm5l
Y3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQogI2VuZGlmCiAjZW5kaWYK
ICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKQEAgLTIzMSw2ICsyNTAsMTIg
QEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAgICAgICAgdXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21HUFVQcm9jZXNzKGNvbm5lY3Rpb24s
IGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBzYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nl
c3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyNlbmRpZgogI2VuZGlmCiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CmluZGV4IGNjMjExMGI1ZmEyMTk0NWM2YzQzOTg4Y2M4OTE1ZjljNTg1MWY2OWUuLmI5OGQ2MmYw
NjIxNDk2ODZhYWI0ZjAwNWM4NTNkY2M2NGNmN2YyYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNDQsNiArNDQs
NyBAQCBjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI7CiBj
bGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUmVj
b3JkZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CitjbGFzcyBS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3MgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcwpAQCAt
NzYsNiArNzcsNyBAQCBwcml2YXRlOgogICAgIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyJiBt
ZWRpYVJlY29yZGVyTWFuYWdlcigpOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXImIGF1ZGlvVHJhY2tSZW5kZXJl
ck1hbmFnZXIoKTsKKyAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBz
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAjZW5kaWYKICNlbmRpZgogCkBAIC05
OCw2ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJl
Y29yZGVyTWFuYWdlcj4gbV9yZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjsKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlcj4gbV9hdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyPiBtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiAjZW5kaWYKICNlbmRpZgogI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdlYzI2NzljYWEwYjE5ZTg5ZGU0MTA2ZDZlNWE3NmIxNTYzYjMw
ODYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNp
bmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVv
U2FtcGxlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rp
b24sIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplKQoreworICAgIGF1dG8gbGF5ZXIg
PSBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPihuZXcgUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlv
biksIGhpZGVSb290TGF5ZXIsIHNpemUpKTsKKyAgICByZXR1cm4gbGF5ZXItPm1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyID8gV1RGTW92ZShsYXllcikgOiBudWxscHRyOworfQorCitSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUp
CisgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fY29ubmVjdGlvbihXVEZN
b3ZlKGNvbm5lY3Rpb24pKQorICAgICwgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoTG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSgqdGhpcywgaGlkZVJvb3RMYXllciwgc2l6
ZSkpCit7CisgICAgQVNTRVJUKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKTsKKyAgICBpZiAo
IW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xh
eWVySG9zdGluZ0NvbnRleHQgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5h
bEhvc3RpbmdQcm9jZXNzKCk7CisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5
ZXIobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpKTsKK30KKworUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
KCkKK3sKK30KKworT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OmNvbnRleHRJRCgpCit7CisgICAgcmV0dXJuIG1fbGF5ZXJIb3N0
aW5nQ29udGV4dC0+Y29udGV4dElEKCk7Cit9CisKK0NHUmVjdCBSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OmJvdW5kcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLT5ib3VuZHMoKTsKK30KKwordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OnVwZGF0ZURpc3BsYXlNb2RlKGJvb2wgaGlkZURpc3BsYXlMYXllciwgYm9vbCBo
aWRlUm9vdExheWVyKQoreworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT51cGRhdGVE
aXNwbGF5TW9kZShoaWRlRGlzcGxheUxheWVyLCBoaWRlUm9vdExheWVyKTsKK30KKwordm9pZCBS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUFmZmluZVRyYW5zZm9ybShDR0Fm
ZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCit7CisgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXItPnVwZGF0ZUFmZmluZVRyYW5zZm9ybSh0cmFuc2Zvcm0pOworfQorCit2b2lkIFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQm91bmRzQW5kUG9zaXRpb24oQ0dSZWN0IGJv
dW5kcywgQ0dQb2ludCBwb3NpdGlvbikKK3sKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci0+dXBkYXRlUm9vdExheWVyQm91bmRzQW5kUG9zaXRpb24oYm91bmRzLCBwb3NpdGlvbik7Cit9
CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaCgpCit7CisgICAg
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPmZsdXNoKCk7Cit9CisKK3ZvaWQgUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaEFuZFJlbW92ZUltYWdlKCkKK3sKKyAgICBtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+Zmx1c2hBbmRSZW1vdmVJbWFnZSgpOworfQorCit2b2lk
IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZW5xdWV1ZVNhbXBsZShXZWJDb3JlOjpS
ZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBtX21lZGlhVGltZSA9IHJl
bW90ZVNhbXBsZS50aW1lKCk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwg
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlk
ZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBB
U1NFUlQobV9pbWFnZVRyYW5zZmVyU2Vzc2lvbik7CisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCks
IHJlbW90ZVNhbXBsZS50aW1lKCksIHJlbW90ZVNhbXBsZS5zaXplKCkpOworCisgICAgQVNTRVJU
KHNhbXBsZVJlZik7CisgICAgaWYgKCFzYW1wbGVSZWYpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5lbnF1ZXVlU2FtcGxlKCpzYW1wbGVSZWYpOwor
fQorCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y2xlYXJFbnF1ZXVlZFNh
bXBsZXMoKQoreworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5jbGVhckVucXVldWVk
U2FtcGxlcygpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBt
X2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyJikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OlNldERpZEZhaWwgeyBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+
ZGlkRmFpbCgpIH0pOworfQorCitXVEY6Ok1lZGlhVGltZSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OnN0cmVhbVRpbWUoKSBjb25zdAoreworICAgIC8vIFRoaXMgaXMgb25seSBhbiBh
cHByb3hpbWF0aW9uIHdoaWNoIHdpbGwgY2xlYXIgYWxsIHNhbXBsZXMgZW5xdWV1ZWQgaW4gbV9z
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgZXhjZXB0IHRoZSBvbmUgYmVpbmcgcHVzaGVkLgorICAg
IHJldHVybiBtX21lZGlhVGltZTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Njg1YTY2OTc4NzE3NmIxMzcxOWNiYjhmZTk5M2NkYzFiY2U3OWNlOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRl
ICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xh
c3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKK2NsYXNzIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOworY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7Cit9OworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIDogcHVibGljIFdlYkNv
cmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklk
ZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2Vi
Q29yZTo6SW50U2l6ZSk7CisgICAgflJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpOwor
CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgT3B0aW9uYWw8
TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBjb250ZXh0SUQoKTsKKyAgICBDR1JlY3QgYm91bmRzKCkg
Y29uc3Q7CisgICAgCitwcml2YXRlOgorICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUpOworCisgICAgdm9pZCB1
cGRhdGVEaXNwbGF5TW9kZShib29sIGhpZGVEaXNwbGF5TGF5ZXIsIGJvb2wgaGlkZVJvb3RMYXll
cik7CisgICAgdm9pZCB1cGRhdGVBZmZpbmVUcmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm0pOwor
ICAgIHZvaWQgdXBkYXRlQm91bmRzQW5kUG9zaXRpb24oQ0dSZWN0LCBDR1BvaW50KTsKKyAgICB2
b2lkIGZsdXNoKCk7CisgICAgdm9pZCBmbHVzaEFuZFJlbW92ZUltYWdlKCk7CisgICAgdm9pZCBl
bnF1ZXVlU2FtcGxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOworICAgIHZvaWQgY2xl
YXJFbnF1ZXVlZFNhbXBsZXMoKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQ
Qzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAg
ICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1faWRlbnRpZmllci50b1VJbnQ2NCgpOyB9CisKKyAgICAvLyBXZWJDb3JlOjpTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudAorICAgIHZvaWQgc2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyU3RhdHVzRGlkQ2hhbmdlKFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpIGZp
bmFsOworICAgIFdURjo6TWVkaWFUaW1lIHN0cmVhbVRpbWUoKSBjb25zdCBmaW5hbDsKKworICAg
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+
IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhv
c3RpbmdDb250ZXh0PiBtX2xheWVySG9zdGluZ0NvbnRleHQ7CisgICAgV1RGOjpNZWRpYVRpbWUg
bV9tZWRpYVRpbWU7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI3YmJlZmZhMzViY2Q2MDZjNDg4ZTFmNmMxYmJhZWQ4YTFmZjY5YmYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM2IEBACisjIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIg
Tm90UmVmQ291bnRlZCB7CisgICAgVXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxheUxh
eWVyLCBib29sIGhpZGVSb290TGF5ZXIpCisgICAgVXBkYXRlQWZmaW5lVHJhbnNmb3JtKENHQWZm
aW5lVHJhbnNmb3JtIHRyYW5zZm9ybSkKKyAgICBVcGRhdGVCb3VuZHNBbmRQb3NpdGlvbihDR1Jl
Y3QgYm91bmRzLCBDR1BvaW50IHBvc2l0aW9uKQorICAgIEZsdXNoKCkKKyAgICBGbHVzaEFuZFJl
bW92ZUltYWdlKCkKKyAgICBFbnF1ZXVlU2FtcGxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxl
IHNhbXBsZSkKKyAgICBDbGVhckVucXVldWVkU2FtcGxlcygpCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI5
YmU0OWNhYzcyZjQ0ZTcxNzk3N2M0YTQ2NmUyZTI3OWYxYjE0ZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlci5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBF
TkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJE
ZWNvZGVyLmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rp
b24pKQoreworfQorCitSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjp+UmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpID0gZGVmYXVsdDsKKwordm9pZCBS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTGF5ZXJNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIGlmIChhdXRvKiBsYXllciA9IG1fbGF5ZXJzLmdldChtYWtlT2JqZWN0SWRlbnRpZmll
cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5h
dGlvbklEKCkpKSkKKyAgICAgICAgbGF5ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IGRlY29kZXIpOworfQorCisvLyBGSVhNRTogV2Ugc2hvdWxkIHJlZmFjdG9yIGNvZGUgdG8gdXNl
IGFuIGFzeW5jaHJvbm91cyBJUEMuCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI6OmNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIg
aWRlbnRpZmllciwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUsIE1lc3NhZ2VzOjpS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllckRlbGF5ZWRS
ZXBseSYmIHJlcGx5KQoreworICAgIEFTU0VSVCghbV9sYXllcnMuY29udGFpbnMoaWRlbnRpZmll
cikpOworICAgIGF1dG8gbGF5ZXIgPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNy
ZWF0ZShpZGVudGlmaWVyLCBtX2Nvbm5lY3Rpb24uY29weVJlZigpLCBoaWRlUm9vdExheWVyLCBz
aXplKTsKKyAgICBpZiAoIWxheWVyKQorICAgICAgICByZXR1cm4gcmVwbHkoeyB9LCB7IH0pOwor
CisgICAgcmVwbHkobGF5ZXItPmNvbnRleHRJRCgpLCBsYXllci0+Ym91bmRzKCkpOworICAgIG1f
bGF5ZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGxheWVyKSk7Cit9CisKK3ZvaWQgUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6cmVsZWFzZUxheWVyKFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9sYXll
cnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fbGF5ZXJzLnJlbW92ZShpZGVudGlmaWVy
KTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Zjli
MzBjNzYxNjIzZGQ5NDhkMjliZTBmMzdmMGFkMGY0N2U1YTlhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxF
KFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oIgorI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cklkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgSVBD
IHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOworCitjbGFzcyBS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyIGZpbmFsIDogcHJpdmF0ZSBJUEM6
Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcihSZWY8
SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlcigpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2Vi
UHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rl
cikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+JiBlbmNvZGVyKSB7IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
LCBlbmNvZGVyKTsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwor
CisgICAgdm9pZCBjcmVhdGVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVy
LCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUsIE1lc3NhZ2VzOjpSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllckRlbGF5ZWRSZXBseSYm
KTsKKyAgICB2b2lkIHJlbGVhc2VMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlm
aWVyKTsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBIYXNo
TWFwPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+PiBtX2xheWVyczsKK307CisKK30KKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShW
SURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NDQ5NTMzYjUxNjVkZThjNzdiZmU0NjJmNzk4YTMzZDE2OWUwNzc3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKK21lc3NhZ2VzIC0+IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIg
Tm90UmVmQ291bnRlZCB7CisgICAgQ3JlYXRlTGF5ZXIoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJJZGVudGlmaWVyIGlkLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNp
emUgc2l6ZSkgLT4gKE9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBjb250
ZXh0SUQsIENHUmVjdCBib3VuZHMpIFN5bmNocm9ub3VzCisgICAgUmVsZWFzZUxheWVyKFdlYktp
dDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCkKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAyNTY0ZjUyODgyOGY1
MWQwM2NkZDMwYzdmZjg3NmQyNWRkYTU0NWNhLi5kYzllMTRmNWFjZGY2OTg0MTEzN2JmY2IxMGU0
ZTY0NmNjNDJlYTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
QEAgLTIyNSw2ICsyMjUsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNs
YXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcics
CiAgICAgICAgICdXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktp
dDo6UlRDRW5jb2RlcklkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJZGVu
dGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggODRkNDM5YzUwNTQwNGI3
ZTU5MDViMzZlN2RlYzc2ODlkZGZhOTQ1NC4uN2JmNzFjMTdhYmRkM2Q4YjEzMTkwMjIwMDU4Yzlm
OWMyMTlmNjBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKQEAgLTQ0Niw2ICs0NDYsMjYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCYpOwogICAgIHN0YXRpYyBPcHRp
b25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShEZWNvZGVyJik7CiB9OworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+IHsKKyAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOworICAgIHN0YXRpYyBPcHRpb25hbDxDR1BvaW50
PiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxDR1NpemU+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHU2l6ZSk7Cisg
ICAgc3RhdGljIE9wdGlvbmFsPENHU2l6ZT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dSZWN0PiB7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBDR1JlY3QpOworICAgIHN0YXRpYyBPcHRpb25hbDxDR1JlY3Q+IGRlY29k
ZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZm
aW5lVHJhbnNmb3JtPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmlu
ZVRyYW5zZm9ybSk7CisgICAgc3RhdGljIE9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBkZWNv
ZGUoRGVjb2RlciYpOworfTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCmluZGV4IDViYTUyYzkwYWViMGZlYWQ2ZjQ0OGQ3MDg2ZjU5YTJhZTZlOWU5NTIuLjhjYmRh
ZmJlMTQ2ZmM3NzFjMjlmM2FjOWIxYWUxYWFlOGI0NmE4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAtNTQ4LDYg
KzU0OCw3OSBAQCBPcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPjo6ZGVjbwogICAgIHJldHVybiBXVEZNb3ZlKGNv
bW1hbmQpOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIENHUmVjdCByZWN0KQoreworICAgIGVuY29kZXIgPDwgcmVjdC5vcmlnaW4gPDwg
cmVjdC5zaXplOworfQorCitPcHRpb25hbDxDR1JlY3Q+IEFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2lu
OworICAgIGRlY29kZXIgPj4gb3JpZ2luOworICAgIGlmICghb3JpZ2luKQorICAgICAgICByZXR1
cm4geyB9OworCisgICAgT3B0aW9uYWw8Q0dTaXplPiBzaXplOworICAgIGRlY29kZXIgPj4gc2l6
ZTsKKyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gQ0dS
ZWN0IHsgKm9yaWdpbiwgKnNpemUgfTsKK30KKwordm9pZCBBcmd1bWVudENvZGVyPENHU2l6ZT46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1NpemUgc2l6ZSkKK3sKKyAgICBlbmNvZGVyIDw8
IHNpemUud2lkdGggPDwgc2l6ZS5oZWlnaHQ7Cit9CisKK09wdGlvbmFsPENHU2l6ZT4gQXJndW1l
bnRDb2RlcjxDR1NpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBDR1NpemUg
c2l6ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUud2lkdGgpKQorICAgICAgICByZXR1
cm4geyB9OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZS5oZWlnaHQpKQorICAgICAgICBy
ZXR1cm4geyB9OworICAgIHJldHVybiBzaXplOworfQorCit2b2lkIEFyZ3VtZW50Q29kZXI8Q0dQ
b2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1BvaW50IHBvaW50KQoreworICAgIGVu
Y29kZXIgPDwgcG9pbnQueCA8PCBwb2ludC55OworfQorCitPcHRpb25hbDxDR1BvaW50PiBBcmd1
bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBDR1Bv
aW50IHBvaW50OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCisgICAgICAgIHJl
dHVybiB7IH07CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICByZXR1cm4gcG9pbnQ7Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxDR0Fm
ZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9y
bSB0cmFuc2Zvcm0pCit7CisgICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0u
YiA8PCB0cmFuc2Zvcm0uYyA8PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNm
b3JtLnR5OworfQorCitPcHRpb25hbDxDR0FmZmluZVRyYW5zZm9ybT4gQXJndW1lbnRDb2RlcjxD
R0FmZmluZVRyYW5zZm9ybT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIENHQWZm
aW5lVHJhbnNmb3JtIHRyYW5zZm9ybTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9y
bS5hKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5z
Zm9ybS5iKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRy
YW5zZm9ybS5jKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHRyYW5zZm9ybS5kKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHRyYW5zZm9ybS50eCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZSh0cmFuc2Zvcm0udHkpKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiB0
cmFuc2Zvcm07Cit9CisKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAKIHZvaWQgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5k
bGVyJiBjb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA0NzJlNGUw
MmY2ODBjNGFlZTYzYmY0NTg1Yjg3NTczMDU4ZmYzNGFlLi4zNjRiY2Q4OTBiNTA5ZTgxOGI2Mjc0
MGQ1NjUzYzcwMDQ5ZDk3YTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI4LDYgKzI4LDggQEAgR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCiBHUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
Y3BwCiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAogR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwCitHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCitHUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5LmNwcApAQCAtNTI4LDYgKzUzMCw4IEBAIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3MuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZh
dGUuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcAog
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAor
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKK1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAogCiBX
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IGIyMzgzMmFiMjdhNzRiNTdjMjY1ZjkzMjlhMGJlMmNjMGYwOTljYjkuLjZhOGUyZTY5MDVjMzVi
YzFiYzQ4YzQ2OWE2ZWM2Yzg1ZDVmODI0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTY0
NCw1ICs2NDQsOCBAQCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1l
c3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVz
c2FnZVJlY2VpdmVyLmNwcAogVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMWM3MGU2NDVlODQzM2YxNGFlMDBkNTdkMmMyNTQzYTAwZTBjMmYyNC4uYjlkNjgz
NTA5ZmEwMTA3ZmFiNWNjNjYwMTJiMGQ3ZDY4Mjg3OTBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjkxLDYgKzMyOTEsOCBAQAog
CQkzRjkxNUMwRTFGNTY0REVEMDAxODNDRTkgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
cklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlcklPUy5tbTsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTNGOTE1QzBGMUY1NjRERUQwMDE4M0NFOSAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
SU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaDsg
cGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZCMDhFNDIxRjYwQjI0MDAwNUU1MzEyIC8q
IGlPUy54Y2Fzc2V0cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IGZvbGRlci5hc3NldGNhdGFsb2c7IHBhdGggPSBpT1MueGNhc3NldHM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDI0RkMwMjNDRjEwNDUwMEZERjk4RSAvKiBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDEwMjRGQzEyM0NGMTA0NTAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxMDNGQkExMjA2MUJEQjcwMEMyRUFGOCAvKiBOZXR3b3JrTG9hZENoZWNrZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0xvYWRDaGVja2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDNGQkEyMjA2MUJEQjgwMEMyRUFGOCAv
KiBOZXR3b3JrTG9hZENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTmV0d29ya0xvYWRDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDEwNDgyQ0IxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDTmV0d29yay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zNDIyLDYgKzM0MjQsMTYgQEAKIAkJNDFGQ0Q2QUQyM0NDQzI2MDAw
QzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkFFMjNDQ0MyNjEwMEM2MjU2NyAvKiBBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkFGMjNDQ0MyNjEwMEM2MjU2NyAvKiBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkIzMjNDREM2MDQwMEM2MjU2NyAvKiBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxRkNENkI0MjNDRENBQzIwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkI1MjND
REUxQzYwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QjYyM0NERTFDNjAwQzYyNTY3IC8qIFJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxRkNENkI3MjNDREU1M0QwMEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QjgyM0NERTUzRTAwQzYyNTY3IC8qIFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNE
NkJDMjNDRTAzMTgwMEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QkQy
M0NFMDQzRjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDFGQ0Q2QkUyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxRkNENkJGMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDQ1MEFFQkYxREMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNv
Y29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZE1lbW9y
eUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1OTk4NDEyMjgzM0U2
MDAwRTYxMzczIC8qIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDQ5RDkwRDgyMUZENjNGRTAwRjY3N0MwIC8qIExvY2FsQXV0aGVudGljYXRpb25Tb2Z0
TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsQXV0
aGVudGljYXRpb25Tb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcy
MTksNiArNzIzMSwxMiBAQAogCQkJCTQxNzZFODkyMjNDMzRENkUwMDNFODNGRSAvKiBNZWRpYVJl
Y29yZGVyUHJvdmlkZXIuaCAqLywKIAkJCQk0MTcyMTk4QzIzQjYxMkU4MDBBRTU2ODYgLyogUlRD
RGVjb2RlcklkZW50aWZpZXIuaCAqLywKIAkJCQk0MTU4NjQ5QTIzQkUwOTI0MDBBMEE2MUUgLyog
UlRDRW5jb2RlcklkZW50aWZpZXIuaCAqLywKKwkJCQk0MUZDRDZCNzIzQ0RFNTNEMDBDNjI1Njcg
LyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCAqLywKKwkJCQk0MUZDRDZCMzIzQ0RDNjA0
MDBDNjI1NjcgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggKi8sCisJCQkJNDFGQ0Q2Qjgy
M0NERTUzRTAwQzYyNTY3IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiAq
LywKKwkJCQk0MUZDRDZCQzIzQ0UwMzE4MDBDNjI1NjcgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVySWRlbnRpZmllci5oICovLAorCQkJCTQxMDI0RkMxMjNDRjEwNDUwMEZERjk4RSAvKiBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLywKKwkJCQk0MTAyNEZDMDIzQ0YxMDQ1
MDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oICovLAogCQkJKTsK
IAkJCXBhdGggPSB3ZWJydGM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNzI0MSw2
ICs3MjU5LDEyIEBACiAJCQkJNDE3NkU4OUEyM0MzNkY3MTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlh
UmVjb3JkZXJNYW5hZ2VyLmNwcCAqLywKIAkJCQk0MTc2RTg5OTIzQzM2RDhFMDAzRTgzRkUgLyog
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaCAqLywKIAkJCQk0MTc2RTg5QjIzQzM3MjIyMDAz
RTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJ
NDFGQ0Q2QjUyM0NERTFDNjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci5jcHAgKi8sCisJCQkJNDFGQ0Q2QjQyM0NEQ0FDMjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5oICovLAorCQkJCTQxRkNENkI2MjNDREUxQzYwMEM2MjU2NyAvKiBS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJNDFGQ0Q2
QkUyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuY3BwICovLAorCQkJCTQxRkNENkJGMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8sCisJCQkJNDFGQ0Q2QkQyM0NFMDQzRjAwQzYy
NTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0xMjA2OCw2ICsxMjA5Miw3IEBACiAJCQkJNDFERTdDNkMyMjI3OEYxRTAwNTMyQjY1IC8q
IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODcy
MTJCNkFCMTAwRjQ5M0ZEIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBMUFEQUZCNjIzNjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVtb3J5LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERpc3Bh
dGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8q
IFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUEzMzRERUQxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFwTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNjhFRURFMjMwM0E5MDIwMEJE
QjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTEyMjE3LDcgKzEyMjQyLDYgQEAKIAkJCQkyRDExQjdENTIxMjZBMjgzMDA2Rjg4Nzgg
LyogVW5pZmllZFNvdXJjZTcyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzExMjEyRjNC
MzMwMDQ5QzE3NCAvKiBVbmlmaWVkU291cmNlNzItbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RDU0QzMxMDIxMkYzQjMzMDA0OUMxNzQgLyogVW5pZmllZFNvdXJjZTczLW1tLm1tIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNTc1QjFCQkEyM0NFOUMxMzAwMjA2MzlBIC8qIFdlYkF1dG9tYXRpb25TZXNz
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCN0Q2MjEyNkEyODMwMDZGODg3OCAvKiBV
bmlmaWVkU291cmNlNzMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1NEMzMTUyMTJGM0IzMzAw
NDlDMTc0IC8qIFVuaWZpZWRTb3VyY2U3NC1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFC
N0Q3MjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNzQuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xMjI2NCw3ICsxMjI4OCw5IEBACiAJCQkJMUE2MDIyNEMxOEMxNkI5RjAwQzNFOEM5IC8q
IFZpc2l0ZWRMaW5rU3RvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUE4RTdEM0MxOEMxNTE0OTAwNUE3MDJBIC8qIFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3RENFRDcwMjE0MkVFNjgwMDE2
Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzVCMUJCQTIzQ0U5QzEzMDAyMDYzOUEgLyogV2ViQXV0
b21hdGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwQTE5NTcxQzkwMDY4RjAw
RkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTU3NUIxQkI4MjNDRTlCRkMwMDIwNjM5QSAvKiBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMEExOTUzMUM4RkZERkIwMEZFMEVC
QiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBMUZFQzFDMTYyN0I0NTcwMDcwMEY2RCAvKiBXZWJDb25uZWN0aW9uTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMDkzNDQ3MTMxNUI5MjIwMDk3
QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMTIyODAsNyArMTIzMDYsNiBAQAogCQkJCUJDMEU2MDYxMTJENkJBOTEwMDEyQTcyQSAv
KiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkMwRTYxODIxMkQ2Q0IxRDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMDUyMzc1MUM3M0Qz
OEYwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRl
ZElucHV0RGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzNFODM1QjIzQTFCNzUw
MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUZFREJEQ0Q2MUU2OEQyMDAwMEE1OUY4RiAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHRE
aXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDOEUyQTM1
MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0xMjMzNiw3ICsxMjM2MSw2IEBACiAJCQkJNjM3MjgxQTMyMUFEQzc0NDAw
OUUwREU2IC8qIFdLRG93bmxvYWRQcm9ncmVzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDRTkx
MjBEMjI5M0MyMTkwMDVCRUM3OCAvKiBXS01haW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQk0NjU3
RDg4QTIyNjY0QTJGMDA1REU4MjMgLyogV0tPcmllbnRhdGlvbkFjY2Vzc0FsZXJ0Lm1tIGluIFNv
dXJjZXMgKi8sCi0JCQkJNTc1QjFCQjgyM0NFOUJGQzAwMjA2MzlBIC8qIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNBMjZEODMyMTdBRDFCODAwRjk3
QTM1IC8qIFdLU2FmZUJyb3dzaW5nV2FybmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFEQjAx
OTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3QTc4RkYzMzIyNDE5MTlCMDA5NjQ4M0UgLyogV0tTdG9yYWdlQWNjZXNzQWxlcnQubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMThlOTM2ZGUzMjMwNzcwZjI0MzYxYjZhYmFhOGUx
N2U0ZDJlNWFjMC4uNTNhODVlNmFhMDhiNmI5ZTgzMzJmYmI5NTZkZGFhOWM3OTI1YTA4MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKQEAgLTY0LDYgKzY1LDE1IEBAIHZvaWQg
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OlN0cmluCiB7CiB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlciYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OnNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIoKQoreworICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyKQorICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgPSBtYWtlVW5p
cXVlPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+KCk7CisgICAgcmV0dXJuICptX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgewpAQCAtNzYsNyArODYsMTMgQEAgdm9pZCBHUFVQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkQKICAgICAgICAgICAgIGNhcHR1cmVNYW5hZ2VyLT5kaWRSZWNlaXZlTWVzc2FnZUZyb21H
UFVQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQot
I2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBp
ZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKS5kaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmIC8vIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKICNpZiBVU0UoTElCV0VCUlRDKSAmJiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmxpYldlYlJUQ0NvZGVjcygpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVj
dGlvbi5oCmluZGV4IGE4YWQ0ZmVlODZiMjY1OWI0YWZmYjdjNDg0ZGExODFjM2JlZjI3ZDAuLjQ2
MDBlNTNiYjI4NGQ3NDhjZjM5MTFiOTRkYjU1OTlhOWNiNDVmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTI4LDYg
KzI4LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
QEAgLTUxLDYgKzUyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXVkaXRUb2tlbihPcHRpb25h
bDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuKSB7IG1fYXVkaXRUb2tlbiA9IGF1ZGl0VG9rZW47
IH0KICAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuKCkgY29uc3QgeyByZXR1
cm4gbV9hdWRpdFRva2VuOyB9CiAjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKTsKKyNl
bmRpZgogCiBwcml2YXRlOgogICAgIEdQVVByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllcik7CkBAIC02Niw2ICs3MCw5IEBAIHByaXZhdGU6CiAjaWYgSEFWRShBVURJ
VF9UT0tFTikKICAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBtX2F1ZGl0VG9rZW47CiAjZW5k
aWYKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyPiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CisjZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmlu
ZGV4IDU0N2Q0NWYyYWVmNzljZGFiOWQyZTM0ZWZjOTJlMGRjNzY3MDAwMWMuLjE4MGFjNmQyNDZm
NmM3MWEwZGNlMzkzMzNmOTBmNzhlNzg0NTkxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5jcHAKQEAgLTM3MCw4ICszNzAsMTIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncykKICAgICBSZW1vdGVN
ZWRpYVBsYXllclN1cHBvcnQ6OnNldFJlZ2lzdGVyUmVtb3RlUGxheWVyQ2FsbGJhY2soc2V0dGlu
Z3MudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkgPyBXVEZNb3ZlKHJlZ2lzdGVyRW5naW5lKSA6IFJl
bW90ZU1lZGlhUGxheWVyU3VwcG9ydDo6UmVnaXN0ZXJSZW1vdGVQbGF5ZXJDYWxsYmFjaygpKTsK
IAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShN
RURJQV9TVFJFQU0pCi0gICAgaWYgKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpKQor
ICAgIGlmIChzZXR0aW5ncy51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSkgewogICAgICAgICBXZWJD
b3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0Q3JlYXRvcihXZWJLaXQ6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUpOworICAgICAgICBXZWJDb3JlOjpT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldENyZWF0b3IoW10oYXV0byYgY2xpZW50LCBib29s
IGhpZGVSb290TGF5ZXIsIGF1dG8gc2l6ZSkgeworICAgICAgICAgICAgcmV0dXJuIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuc2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlcigpLmNyZWF0ZUxheWVyKGNsaWVudCwgaGlkZVJvb3RMYXllciwg
c2l6ZSk7CisgICAgICAgIH0pOworICAgIH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTAxNjFhYWQ5NDc0ZDZiMGYxZjkwMGIwNTQ0ZjU5
ODBkMzY5OGZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcApAQCAtMCwwICsxLDEzMiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgiCisjaW5jbHVkZSAiUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
Kworc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpjcmVhdGUoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgbWFu
YWdlciwgQ2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplKQor
eworICAgIGF1dG8gbGF5ZXIgPSBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyPihuZXcgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKG1hbmFnZXIsIGNsaWVudCwgaGlkZVJv
b3RMYXllciwgc2l6ZSkpOworICAgIHJldHVybiBsYXllci0+cm9vdExheWVyKCkgPyBXVEZNb3Zl
KGxheWVyKSA6IG51bGxwdHI7Cit9CisKK1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6U2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIG1hbmFn
ZXIsIENsaWVudCYgY2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKKyAg
ICA6IFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihjbGllbnQpCisgICAgLCBtX21h
bmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX2Nvbm5lY3Rpb24oV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkp
CisgICAgLCBtX2lkZW50aWZpZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllcjo6
Z2VuZXJhdGUoKSkKK3sKKyAgICBtYW5hZ2VyLmFkZExheWVyKCp0aGlzKTsKKworICAgIE9wdGlv
bmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4gY29udGV4dElkOworICAgIGlmICghbV9jb25uZWN0
aW9uLT5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlcjo6Q3JlYXRlTGF5ZXIgeyBtX2lkZW50aWZpZXIsIGhpZGVSb290TGF5ZXIsIHNpemUgfSwg
TWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OkNyZWF0ZUxh
eWVyOjpSZXBseSB7IGNvbnRleHRJZCwgbV9ib3VuZHMgfSwgMCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICghY29udGV4dElkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZpZGVvTGF5
ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGluZ0Nv
bnRleHQoKmNvbnRleHRJZCk7Cit9CisKK1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6flNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcigpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpSZWxlYXNlTGF5ZXIgeyBt
X2lkZW50aWZpZXIgfSwgMCk7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2Vy
LT5yZW1vdmVMYXllcigqdGhpcyk7Cit9CisKK2Jvb2wgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpkaWRGYWlsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kaWRGYWlsOworfQorCit2b2lkIFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxh
eUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlVwZGF0ZURpc3BsYXlNb2Rl
IHsgaGlkZURpc3BsYXlMYXllciwgaGlkZVJvb3RMYXllciB9LCBtX2lkZW50aWZpZXIpOworfQor
CitDR1JlY3QgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpib3VuZHMoKSBjb25zdAoreworICAg
IHJldHVybiBtX2JvdW5kczsKK30KKwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVw
ZGF0ZUFmZmluZVRyYW5zZm9ybShDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCit7CisgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6OlVwZGF0ZUFmZmluZVRyYW5zZm9ybSB7IHRyYW5zZm9ybSB9LCBtX2lkZW50aWZpZXIpOwor
fQorCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQm91bmRzQW5kUG9zaXRp
b24oQ0dSZWN0IGJvdW5kcywgQ0dQb2ludCBwb3NpdGlvbikKK3sKKyAgICBtX2JvdW5kcyA9IGJv
dW5kczsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6VXBkYXRlQm91bmRzQW5kUG9zaXRpb24geyBib3VuZHMsIHBvc2l0aW9u
IH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpm
bHVzaCgpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OkZsdXNoIHsgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmZsdXNoQW5kUmVtb3ZlSW1hZ2UoKQoreworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpGbHVzaEFuZFJlbW92ZUltYWdlIHsgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkK
K3sKKyAgICBpZiAoYXV0byByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRl
KHNhbXBsZSkpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpFbnF1ZXVlU2FtcGxlIHsgKnJlbW90ZVNhbXBsZSB9LCBt
X2lkZW50aWZpZXIpOworfQorCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y2xlYXJF
bnF1ZXVlZFNhbXBsZXMoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGVhckVucXVldWVkU2FtcGxlcyB7IH0sIG1f
aWRlbnRpZmllcik7Cit9CisKK1BsYXRmb3JtTGF5ZXIqIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6cm9vdExheWVyKCkKK3sKKyAgICByZXR1cm4gbV92aWRlb0xheWVyLmdldCgpOworfQorCit2
b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0RGlkRmFpbChib29sIHZhbHVlKQorewor
ICAgIG1fZGlkRmFpbCA9IHZhbHVlOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjU5YzUyZmRmNjljNmJiOTk3MjU5ZDU0MmMyYzg2NTcw
MzgyNzBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVP
X1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllci5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg+CisjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXI7CisKK2NsYXNzIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBm
aW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIsIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcj4geworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGUoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ciYsIENsaWVudCYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSk7CisgICAg
flNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpOworCisgICAgU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVySWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9
CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIGZpbmFsOworCitwcml2YXRlOgorICAgIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiwgQ2xpZW50JiwgYm9vbCBoaWRlUm9vdExh
eWVyLCBXZWJDb3JlOjpJbnRTaXplKTsKKworICAgIC8vIFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcgorICAgIGJvb2wgZGlkRmFpbCgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgdXBk
YXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxheUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIp
IGZpbmFsOworICAgIENHUmVjdCBib3VuZHMoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHVwZGF0
ZUFmZmluZVRyYW5zZm9ybShDR0FmZmluZVRyYW5zZm9ybSkgZmluYWw7CisgICAgdm9pZCB1cGRh
dGVCb3VuZHNBbmRQb3NpdGlvbihDR1JlY3QsIENHUG9pbnQpIGZpbmFsOworICAgIHZvaWQgZmx1
c2goKSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoQW5kUmVtb3ZlSW1hZ2UoKSBmaW5hbDsKKyAgICB2
b2lkIGVucXVldWVTYW1wbGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICB2b2lk
IGNsZWFyRW5xdWV1ZWRTYW1wbGVzKCkgZmluYWw7CisgICAgUGxhdGZvcm1MYXllciogcm9vdExh
eWVyKCkgZmluYWw7CisgICAgCisgICAgdm9pZCBzZXREaWRGYWlsKGJvb2wpOworCisgICAgV2Vh
a1B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyPiBtX21hbmFnZXI7CisgICAgUmVm
PElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworCisgICAgUmV0YWluUHRyPFBsYXRmb3JtTGF5
ZXI+IG1fdmlkZW9MYXllcjsKKyAgICBDR1JlY3QgbV9ib3VuZHM7CisgICAgYm9vbCBtX2RpZEZh
aWwgeyBmYWxzZSB9OworfTsKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZlZWZmYWY1MmE2OWNlYTE5YWZkODQ4ZTdhODU2NGYwNzJmNWJiOTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworbWVzc2FnZXMgLT4gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIE5vdFJlZkNvdW50
ZWQgeworICAgIFNldERpZEZhaWwoYm9vbCB2YWx1ZSkKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg2OTVmZmM4
ZTljYzAzNDMyODY2MzZmNjJmNjk5NWRkY2QyNDNmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklk
ZW50aWZpZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UgLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZp
ZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVySWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRl
bnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRp
ZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MjJmNzczZDg1
ZDgyYmUxZjJmMzcxNTAzZWU4ZGNmY2VhZmNlOTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCIKKworI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFD
SykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXI6OmRpZFJlY2VpdmVMYXllck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGF1dG8qIGxheWVyID0gbV9sYXllcnMu
Z2V0KG1ha2VPYmplY3RJZGVudGlmaWVyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZp
ZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpLmdldCgpKQorICAgICAgICBsYXllci0+
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7Cit9CisKK3N0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXI6OmNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xp
ZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSBzaXplKQor
eworICAgIGF1dG8gbGF5ZXIgPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSgqdGhp
cywgY2xpZW50LCBoaWRlUm9vdExheWVyLCBzaXplKTsKKyAgICBpZiAoIWxheWVyKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgbV9sYXllcnMuYWRkKGxheWVyLT5pZGVudGlmaWVyKCksIG1h
a2VXZWFrUHRyKCpsYXllcikpOworICAgIHJldHVybiBsYXllcjsKK30KKwordm9pZCBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjphZGRMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXImIGxheWVyKQoreworICAgIEFTU0VSVCghbV9sYXllcnMuY29udGFpbnMobGF5ZXIuaWRlbnRp
ZmllcigpKSk7CisgICAgbV9sYXllcnMuYWRkKGxheWVyLmlkZW50aWZpZXIoKSwgbWFrZVdlYWtQ
dHIobGF5ZXIpKTsKK30KKwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpy
ZW1vdmVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImIGxheWVyKQoreworICAgIEFTU0VS
VChtX2xheWVycy5jb250YWlucyhsYXllci5pZGVudGlmaWVyKCkpKTsKKyAgICBtX2xheWVycy5y
ZW1vdmUobGF5ZXIuaWRlbnRpZmllcigpKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lY2MzYWY3MGQ4NWY4N2Nj
ZmIzZGUyNjE0ZDNmODU5M2M4ZDQzNGYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5o
CkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgorI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworICAgIH5T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBh
ZGRMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImKTsKKyAgICB2b2lkIHJlbW92ZUxheWVy
KFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTGF5ZXJN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZUxheWVyKFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50JiwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3Jl
OjpJbnRTaXplKTsKKworcHJpdmF0ZToKKyAgICBIYXNoTWFwPFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcklkZW50aWZpZXIsIFdlYWtQdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPj4gbV9sYXll
cnM7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387921</attachid>
            <date>2020-01-16 08:15:48 -0800</date>
            <delta_ts>2020-01-20 00:50:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-206286-20200116171545.patch</filename>
            <type>text/plain</type>
            <size>102775</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlhMjNkYWU2ZTU0Mjgx
NDVkY2E2ZDcxMzhlNzBhMmE0NDYxODY3OS4uY2ExZTJjZGQwZmMwNGU5Njk0NzVkODZmOTNkZDU4
Y2UzODgzZmFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTAxLTE2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
TWVkaWFTdHJlYW0gdmlkZW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjI4NgorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBBZGQgYSB3YXkgZm9yIFdlYktp
dCBsYXllciB0byBjcmVhdGUgaXRzIG93biBzcGVjaWZpYyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuCisgICAgICAgIFdlYktpdCBsYXllciBjYW4gc2V0IGEgZnVuY3Rpb24gcG9pbnRlciB0aGF0
IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLgorICAgICAg
ICBJZiBub25lIGlzIHByb3ZpZGVkLCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBpcyB1
c2VkLgorCisgICAgICAgIFVwZGF0ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMgdG8gbW9uaXRvciBpdHNlbGYgaXRzIHJvb3QgbGF5ZXIgYm91bmRzIGNoYW5nZS4KKyAgICAg
ICAgQ29udmVyc2VseSwgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgbm8gbG9uZ2VyIG1v
bml0b3JzIGl0cyByb290IGxheWVyIGJvdW5kcyBjaGFuZ2UuCisgICAgICAgIFRoaXMgcmVtb3Zl
cyB0aGUgbmVlZCBmb3IgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQgdG8gYmUgbm90
aWZpZWQgb2YgYm91bmRzIGNoYW5nZS4KKyAgICAgICAgV2UgYWRkIGFuIEFQSSB0byB1cGRhdGUg
dGhlIHJvb3QgbGF5ZXIgYm91bmRzIG9mIGEgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIg
YXMgd2VsbCwKKyAgICAgICAgdGhpcyBBUEkgYmVpbmcgdXNlZCBieSBHUFVQcm9jZXNzIHRvIG1p
cnJvciBjaGFuZ2VzIGRvbmUgdG8gV2ViUHJvY2VzcyByb290IGxheWVyLgorCisgICAgICAgIFdl
YlJUQyBpbmNvbWluZyB2aWRlbyB0cmFja3MgZG8gbm90IGhhdmUgcHJlc2VudGF0aW9uIHRpbWVz
dGFtcHMgc28gd2UgbWFyayB0aGVtIGFzIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUlt
bWVkaWF0ZWx5LgorICAgICAgICBUaGlzIGlzIGN1cnJlbnRseSBsb3N0IHdoZW4gZG9pbmcgSVBD
IGZyb20gV2ViUHJvY2VzcyB0byBOZXR3b3JrUHJvY2Vzcy4gQWRkIHRoaXMgaW5mb3JtYXRpb24g
Zm9yIGV2ZXJ5IGVucXVldWVkIHNhbXBsZSBpbiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci4KKyAgICAgICAgV2UgbWlnaHQgd2FudCBpbiB0aGUgZnV0dXJlIHRvIHNlcmlhbGl6ZSBhbGwg
YXR0YWNobWVudHMgb2YgdGhlIHNhbXBsZS4KKworICAgICAgICBNYW51YWxseSB0ZXN0ZWQuCisK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldENyZWF0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tOgorICAgICAgICAoLVtXZWJB
VlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIGludmFsaWRhdGVdKToKKyAgICAgICAg
KC1bV2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBzdGFydF0pOgorICAgICAg
ICAoLVtXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIHN0b3BdKToKKyAgICAg
ICAgKC1bV2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBvYnNlcnZlVmFsdWVG
b3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6
TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+
TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjplbnF1ZXVlU2FtcGxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMubW06CisgICAgICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5l
ciBpbml0V2l0aFBhcmVudDpdKToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5k
c0NoYW5nZUxpc3RlbmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZl
ckJvdW5kc0NoYW5nZUxpc3RlbmVyIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV2ViUm9vdFNh
bXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dlYlJv
b3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBzdG9wXSk6CisgICAgICAgICgtW1dl
YlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBvYnNlcnZlVmFsdWVGb3JLZXlQ
YXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5z
dXJlTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cm9vdExheWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlRGlzcGxheUxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cm9vdExh
eWVyQm91bmRzRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZE
b2N1bWVudEltYWdlLmNwcDoKKyAgICAgICAgVW5pZmllZCBidWlsZCBmaXguCisKIDIwMjAtMDEt
MTUgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVj
ZSBhbiBhYnN0cmFjdCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDE5YTFk
ODlhNjRlMTY3MTM0YWM5ZDM1ZDhkYTIwYTMxYjMwNDRhMC4uMzc4NjM2NmJhOTQxZTFlMWFlZWQ1
ZWIxNTQzY2FjZjlmMDJlYWZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAyMC0wMS0x
NiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIE1lZGlhU3RyZWFtIHZpZGVvIHRyYWNrIHJlbmRlcmluZyBpbiBHUFVQcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYyODYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgSW1wbGVtZW50IFdl
YlByb2Nlc3MgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGFuZCBHUFVQcm9jZXNzIFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci4KKyAgICAgICAgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyIGlzIGEgd3JhcHBlciBhcm91bmQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
CisKKyAgICAgICAgQSBzeW5jaHJvbm91cyBJUEMgaXMgdXNlZCBhdCBjcmVhdGlvbiB0aW1lIG9m
IHRoZSBsYXllciB0byBtYWtlIHN1cmUgd2UgaGF2ZSBhIHNoYXJlZCBsYXllciBzeW5jaHJvbm91
c2x5LgorICAgICAgICBGdXR1cmUgcmVmYWN0b3Jpbmcgc2hvdWxkIGFsbG93IHRvIHJlbW92ZSB0
aGF0IGNvbnN0cmFpbnQgYXMgZG9uZSBpbiByZWd1bGFyIHZpZGVvIHBsYXlpbmcuCisKKyAgICAg
ICAgT3ZlcnJpZGUgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGNyZWF0ZSBmdW5jdGlvbiBwb2lu
dGVyIHdoZW4gcmVuZGVyaW5nIGlzIHRvIGJlIGRvbmUgaW4gR1BVUHJvY2Vzcy4KKworICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6UmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjp+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjb250ZXh0SUQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmJvdW5kcyBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRl
RGlzcGxheU1vZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OnVwZGF0ZUFmZmluZVRyYW5zZm9ybSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQm91bmRzQW5kUG9zaXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmZsdXNoKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaEFuZFJlbW92
ZUltYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjplbnF1ZXVlU2FtcGxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpjbGVhckVucXVldWVkU2FtcGxlcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24gY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllclN0YXR1c0RpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c3RyZWFtVGltZSBjb25zdCk6CisgICAgICAg
ICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6IEFk
ZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZUxheWVyTWVzc2FnZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6
OmNyZWF0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcjo6cmVsZWFzZUxheWVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAg
ICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5OgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxDR1JlY3Q+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENHUmVjdD46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dTaXpl
Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjpkZWNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmRlY29kZSk6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0
aW9uOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
flNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6ZGlkRmFpbCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlRGlzcGxheU1vZGUpOgorICAgICAgICAoV2ViS2l0OjpT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmJvdW5kcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQWZmaW5lVHJhbnNmb3JtKToKKyAgICAg
ICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVCb3VuZHNBbmRQb3Np
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2gp
OgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmZsdXNoQW5kUmVt
b3ZlSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVu
cXVldWVTYW1wbGUpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OmNsZWFyRW5xdWV1ZWRTYW1wbGVzKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpyb290TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OnNldERpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OmJvdW5kc0NoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbjogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cklkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZUxheWVyTWVzc2Fn
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmNy
ZWF0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlcjo6YWRkTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyOjpyZW1vdmVMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMjAtMDEtMTUgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRpYVN0cmVhbSBhdWRp
byB0cmFjayByZW5kZXJpbmcgaW4gR1BVUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5k
ZXggODkwNmY1N2RjOWQzMjRjOWYwYmQxZWZiODUwYjIwYTk1MjBlMTkwYi4uOGUyYWFkZDBjZmY3
YTYwZjFkMzJmYzhiM2I5YWM3YWY4Y2NjYTM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBA
IC0yMzAsNiArMjMwLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5H
TEUuY3BwIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0
R0xBTkdMRS5jcHAgQG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1wb3JhcnlB
TkdMRVNldHRpbmcuY3BwIEBuby11bmlmeQogCitwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0gQG5vLXVuaWZ5CiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gQG5vLXVu
aWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbSBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjYzM1YTU4OTExMzQxMWIxNTg2MjBiZjQwMTkxNmVm
ZDc0M2VlOTRkLi4wN2EyMWY0ZjNlMjNkOGU0NzkxNGNhOGY0MjEwMmQ0MjI1NWNlM2ZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC03Mjc5LDYgKzcyNzksNyBAQAogCQkzRkZGRjlBNzE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0
Q1NTVmlld3BvcnRSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktp
dENTU1ZpZXdwb3J0UnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkZGRjlB
QjE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGRkZGOUFDMTU5RDlCMDYwMDIwQkJENSAvKiBW
aWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Vmlld3BvcnRTdHlsZVJlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MDI0RkM4MjNDRjI1NEYwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNjI2QTcyMjgwQTIyQTAwNkQxQjU5IC8qIEpTQXVkaW9O
b2RlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVk
aW9Ob2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNzkwOEEx
RkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEwOTM4MjgyMzQ3Nzk5QTAwOTQyOEJBIC8qIEpTQWJvcnRDb250cm9sbGVyQ3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWJvcnRDb250cm9sbGVyQ3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MzMxLDYgKzE2MzMyLDcg
QEAKIAkJCQkwNzZGMEQwQTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmggKi8sCiAJCQkJQ0RCRUFFQUIxOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2Vs
ZWN0aW9uR3JvdXBBVkZPYmpDLmggKi8sCiAJCQkJQ0RCRUFFQUExOUQ5MkI2QzAwQkVCQTg4IC8q
IE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tICovLAorCQkJCTQxMDI0RkM4MjNDRjI1NEYw
MEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovLAogCQkJCTQxNDU5OEJF
MjNDOEFBQjgwMDJCOUNDOCAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCAqLywKIAkJCQlD
RDMzNkY2MzE3RkEwQTREMDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJ
CQkwNzA5RDc5MDFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5j
cHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNkMTFjMjk2YmE1NjU2M2E5YjU0YmQ4OGJlMmEyOTg4MjE0Y2JlYmMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgorCisjaW5jbHVkZSAi
TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkxheWVyQ3JlYXRvciBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6Om1fbGF5ZXJDcmVhdG9yID0gbnVsbHB0cjsKK3ZvaWQgU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpzZXRDcmVhdG9yKExheWVyQ3JlYXRvciBjcmVhdG9yKQoreworICAgIG1fbGF5
ZXJDcmVhdG9yID0gY3JlYXRvcjsKK30KKworc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcj4gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoQ2xpZW50JiBjbGll
bnQsIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplKQoreworICAgIGlmIChtX2xheWVy
Q3JlYXRvcikKKyAgICAgICAgcmV0dXJuIG1fbGF5ZXJDcmVhdG9yKGNsaWVudCwgaGlkZVJvb3RM
YXllciwgc2l6ZSk7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFU
SU9OKQorICAgIHJldHVybiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKGNs
aWVudCwgaGlkZVJvb3RMYXllciwgc2l6ZSk7CisjZWxzZQorICAgIHJldHVybiBudWxscHRyOwor
I2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuaAppbmRleCA0ZmY1N2Q3YzdkNTlhNzFkNTY3YmMyYWJkOWY2MTkyYjJiZmJjY2MwLi40MDFh
NzI3MGRkZDY0MzZhMzQyZGJlYzQ3OGIwNmMwNGMyMmQ4NzIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC00MiwxMSArNDIsMTMgQEAgcHVibGlj
OgogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+Q2xpZW50KCkgPSBkZWZhdWx0OwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyU3RhdHVzRGlkQ2hhbmdl
KFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllckJvdW5kc0RpZENoYW5nZShTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXImKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgV1RGOjpNZWRpYVRpbWUgc3RyZWFtVGltZSgp
IGNvbnN0ID0gMDsKICAgICB9OwogCi0gICAgZXhwbGljaXQgU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyKENsaWVudCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGUoQ2xpZW50JiwgYm9vbCBoaWRlUm9vdExh
eWVyLCBJbnRTaXplKTsKKyAgICB1c2luZyBMYXllckNyZWF0b3IgPSBzdGQ6OnVuaXF1ZV9wdHI8
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiAoKikoQ2xpZW50JiwgYm9vbCBoaWRlUm9vdExheWVy
LCBJbnRTaXplKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRDcmVhdG9yKExh
eWVyQ3JlYXRvcik7CisKICAgICB2aXJ0dWFsIH5TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoKSA9
IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIGJvb2wgZGlkRmFpbCgpIGNvbnN0ID0gMDsKQEAgLTY2
LDcgKzY4LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHJvb3RMYXll
cigpID0gMDsKIAogcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcihDbGllbnQmKTsKKwogICAgIFdlYWtQdHI8Q2xpZW50PiBtX2NsaWVudDsKKworcHJpdmF0
ZToKKyAgICBzdGF0aWMgTGF5ZXJDcmVhdG9yIG1fbGF5ZXJDcmVhdG9yOwogfTsKIAogaW5saW5l
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKENsaWVu
dCYgY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmgKaW5kZXggMjljZGVhNDNiOWZhOGYwNjFkYzBjZjE0MDNiMzUy
YTkxZGZjZmMxZC4uNmZhYTQwOTE2YTRlZWIwMzM3ZWRkOTk4MjRlMGYzMGE4OTBhODJjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFdF
QkNPUkVfRVhQT1JUIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGZpbmFsIDogcHVibGlj
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciwgcHVibGljIENhbk1ha2VXZWFrUHRyPExvY2FsU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI+IGNyZWF0ZShDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUpOworICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0
ZShDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUpOwogCiAgICAgTG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIoUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
PiYmLCBDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUpOwogICAgIH5Mb2NhbFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpOwpAQCAtNTQsNyArNTQsOCBAQCBwdWJsaWM6CiAKICAg
ICBQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIoKSBmaW5hbDsKIAotcHJpdmF0ZToKKyAgICB2b2lk
IHVwZGF0ZVJvb3RMYXllckJvdW5kc0FuZFBvc2l0aW9uKENHUmVjdCwgQ0dQb2ludCk7CisKICAg
ICBib29sIGRpZEZhaWwoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgdXBkYXRlRGlzcGxheU1v
ZGUoYm9vbCBoaWRlRGlzcGxheUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIpIGZpbmFsOwpAQCAt
NjksOCArNzAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShNZWRpYVNhbXBs
ZSYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXJFbnF1ZXVlZFNhbXBsZXMoKSBmaW5hbDsKIAotICAg
IHZvaWQgZW5zdXJlTGF5ZXJzKCk7Ci0KK3ByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVPbGRTYW1w
bGVzRnJvbVBlbmRpbmdRdWV1ZSgpOwogICAgIHZvaWQgYWRkU2FtcGxlVG9QZW5kaW5nUXVldWUo
TWVkaWFTYW1wbGUmKTsKICAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRpb25XaGVuUmVhZHlGb3JW
aWRlb0RhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0KaW5kZXggZjBjOWNjNzNmYWQ4NDUzMWM5NzkxNjQxZDM4
M2NjZTQ5NzNjODljMi4uY2ZmZGI5N2YwYmY2ZTc3MGNkYzc1MzQ0Y2E5NmNiYmFkN2UwYzI5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIubW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FU
cmFuc2FjdGlvbi5oPgogCiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3Rm
L2NmL1R5cGVDYXN0c0NGLmg+CiAKICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGluay5oPgogCkBAIC00OCw4ICs0OSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAt
IChpZClpbml0V2l0aFBhcmVudDooTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqKWNhbGxi
YWNrOwogLSAodm9pZClpbnZhbGlkYXRlOwotLSAodm9pZCliZWdpbk9ic2VydmluZ0xheWVyczsK
LS0gKHZvaWQpc3RvcE9ic2VydmluZ0xheWVyczsKKy0gKHZvaWQpc3RhcnQ7CistICh2b2lkKXN0
b3A7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5n
ZUxpc3RlbmVyCkBAIC03MiwzOCArNzMsMzMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IC0gKHZvaWQpaW52YWxpZGF0ZQogewotICAgIFtzZWxmIHN0b3BPYnNlcnZpbmdMYXllcnNdOwor
ICAgIFtzZWxmIHN0b3BdOwogICAgIF9wYXJlbnQgPSBudWxscHRyOwogfQogCi0tICh2b2lkKWJl
Z2luT2JzZXJ2aW5nTGF5ZXJzCistICh2b2lkKXN0YXJ0CiB7CiAgICAgQVNTRVJUKF9wYXJlbnQp
OwogICAgIEFTU0VSVChfcGFyZW50LT5kaXNwbGF5TGF5ZXIoKSk7Ci0gICAgQVNTRVJUKF9wYXJl
bnQtPnJvb3RMYXllcigpKTsKIAogICAgIFtfcGFyZW50LT5kaXNwbGF5TGF5ZXIoKSBhZGRPYnNl
cnZlcjpzZWxmIGZvcktleVBhdGg6QCJzdGF0dXMiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2Vydmlu
Z09wdGlvbk5ldyBjb250ZXh0Om5pbF07CiAgICAgW19wYXJlbnQtPmRpc3BsYXlMYXllcigpIGFk
ZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImVycm9yIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNl
cnZpbmdPcHRpb25OZXcgY29udGV4dDpuaWxdOwotICAgIFtfcGFyZW50LT5yb290TGF5ZXIoKSBh
ZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJib3VuZHMiIG9wdGlvbnM6TlNLZXlWYWx1ZU9i
c2VydmluZ09wdGlvbk5ldyBjb250ZXh0Om5pbF07CiB9CiAKLS0gKHZvaWQpc3RvcE9ic2Vydmlu
Z0xheWVycworLSAodm9pZClzdG9wCiB7Ci0gICAgaWYgKCFfcGFyZW50KQorICAgIGlmICghX3Bh
cmVudCB8fCAhX3BhcmVudC0+ZGlzcGxheUxheWVyKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChfcGFyZW50LT5kaXNwbGF5TGF5ZXIoKSkgewotICAgICAgICBbX3BhcmVudC0+ZGlzcGxh
eUxheWVyKCkgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAic3RhdHVzIl07Ci0gICAg
ICAgIFtfcGFyZW50LT5kaXNwbGF5TGF5ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBh
dGg6QCJlcnJvciJdOwotICAgIH0KLSAgICBpZiAoX3BhcmVudC0+cm9vdExheWVyKCkpCi0gICAg
ICAgIFtfcGFyZW50LT5yb290TGF5ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6
QCJib3VuZHMiXTsKKyAgICBbX3BhcmVudC0+ZGlzcGxheUxheWVyKCkgcmVtb3ZlT2JzZXJ2ZXI6
c2VsZiBmb3JLZXlQYXRoOkAic3RhdHVzIl07CisgICAgW19wYXJlbnQtPmRpc3BsYXlMYXllcigp
IHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImVycm9yIl07CiB9CiAKIC0gKHZvaWQp
b2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClv
YmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRl
eHQKIHsKICAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAgICAgVU5VU0VEX1BBUkFNKGtleVBh
dGgpOworICAgIFVOVVNFRF9QQVJBTShjaGFuZ2UpOwogICAgIEFTU0VSVChfcGFyZW50KTsKIAog
ICAgIGlmICghX3BhcmVudCkKQEAgLTEzMiwyOSArMTI4LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBpZiAo
W1tjaGFuZ2UgdmFsdWVGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbklzUHJpb3JL
ZXldIGJvb2xWYWx1ZV0pCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICgoQ0FMYXllciAqKW9i
amVjdCA9PSBfcGFyZW50LT5yb290TGF5ZXIoKSkgewotICAgICAgICBpZiAoW2tleVBhdGggaXNF
cXVhbFRvU3RyaW5nOkAiYm91bmRzIl0pIHsKLSAgICAgICAgICAgIGlmICghX3BhcmVudCkKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChpc01haW5UaHJlYWQoKSkg
ewotICAgICAgICAgICAgICAgIF9wYXJlbnQtPnJvb3RMYXllckJvdW5kc0RpZENoYW5nZSgpOwot
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFJldGFpblB0cjxXZWJBVlNhbXBsZUJ1ZmZl
clN0YXR1c0NoYW5nZUxpc3RlbmVyPihzZWxmKV0gewotICAgICAgICAgICAgICAgIGlmICghcHJv
dGVjdGVkU2VsZi0+X3BhcmVudCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgICAgICAgICAgcHJvdGVjdGVkU2VsZi0+X3BhcmVudC0+cm9vdExheWVyQm91bmRzRGlkQ2hh
bmdlKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLQogfQogQGVuZAogCkBA
IC0xNjksNyArMTQyLDcgQEAgc3RhdGljIHZvaWQgcnVuV2l0aG91dEFuaW1hdGlvbnMoY29uc3Qg
V1RGOjpGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21t
aXRdOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBMb2Nh
bFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50LCBib29sIGhp
ZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKK3N0ZDo6dW5pcXVlX3B0cjxMb2NhbFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcj4gTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShD
bGllbnQmIGNsaWVudCwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUpCiB7CiAgICAg
YXV0byBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJJbnN0YW5jZSgpIGluaXRdKTsKICAgICBpZiAoIXNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcikKQEAgLTE5Niw3ICsxNjksNyBAQCBMb2NhbFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoUmV0YWluUHRyPEFWU2Ft
cGxlQgogCiAgICAgbV9yb290TGF5ZXIuZ2V0KCkuYm91bmRzID0gQ0dSZWN0TWFrZSgwLCAwLCBz
aXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOwogCi0gICAgW21fc3RhdHVzQ2hhbmdlTGlzdGVu
ZXIgYmVnaW5PYnNlcnZpbmdMYXllcnNdOworICAgIFttX3N0YXR1c0NoYW5nZUxpc3RlbmVyIHN0
YXJ0XTsKIAogICAgIFttX3Jvb3RMYXllciBhZGRTdWJsYXllcjptX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5nZXQoKV07CiAKQEAgLTIwOCw3ICsxODEsNyBAQCBMb2NhbFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoUmV0YWluUHRyPEFWU2Ft
cGxlQgogCiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6fkxvY2FsU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyKCkKIHsKLSAgICBbbV9zdGF0dXNDaGFuZ2VMaXN0ZW5lciBzdG9wT2JzZXJ2
aW5nTGF5ZXJzXTsKKyAgICBtX3N0YXR1c0NoYW5nZUxpc3RlbmVyID0gbnVsbHB0cjsKIAogICAg
IG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWUuY2xlYXIoKTsKIApAQCAtMjM1LDE0ICsyMDgsNiBA
QCB2b2lkIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpsYXllckVycm9yRGlkQ2hhbmdl
KCkKICAgICAvLyBGSVhNRTogTG9nIGVycm9yLgogfQogCi12b2lkIExvY2FsU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpyb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKQotewotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgaWYgKCFtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuOwotICAg
IG1fY2xpZW50LT5zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKnRoaXMp
OwotfQotCiBQbGF0Zm9ybUxheWVyKiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZGlz
cGxheUxheWVyKCkKIHsKICAgICByZXR1cm4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0
KCk7CkBAIC0yODksNiArMjU0LDE2IEBAIHZvaWQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6OnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKENHUmVjdCB2aWRlb0JvdW5kcywKICAgICB9KTsK
IH0KIAordm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlUm9vdExheWVy
Qm91bmRzQW5kUG9zaXRpb24oQ0dSZWN0IHZpZGVvQm91bmRzLCBDR1BvaW50IHBvc2l0aW9uKQor
eworICAgIHJ1bldpdGhvdXRBbmltYXRpb25zKFsmXSB7CisgICAgICAgIG1fcm9vdExheWVyLmdl
dCgpLmJvdW5kcyA9IHZpZGVvQm91bmRzOworICAgICAgICBtX3Jvb3RMYXllci5nZXQoKS5wb3Np
dGlvbiA9IHBvc2l0aW9uOworICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQo
KS5ib3VuZHMgPSB2aWRlb0JvdW5kczsKKyAgICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuZ2V0KCkucG9zaXRpb24gPSBwb3NpdGlvbjsKKyAgICB9KTsKK30KKwogdm9pZCBMb2NhbFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2goKQogewogICAgIFttX3NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllciBmbHVzaF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IGQ5YWYyN2E2
MDEwZDc5ODg2NjI1MmVlZTM4YTVjNTA1ZTdhZWI4NWQuLjViYWVjNTZhZWI5ZGRiZDMzMDNkZWVm
YWUxNjU1ODgwZmIzMTU2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0zNiw3ICsz
Niw3IEBACiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogCiBPQkpDX0NMQVNTIEFWU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOwotT0JKQ19DTEFTUyBXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1
c0NoYW5nZUxpc3RlbmVyOworT0JKQ19DTEFTUyBXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hh
bmdlTGlzdGVuZXI7CiAKIG5hbWVzcGFjZSBQQUwgewogY2xhc3MgQ2xvY2s7CkBAIC04Miw2ICs4
Miw5IEBAIHB1YmxpYzoKICAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmlu
YWw7CiAjZW5kaWYKIAorICAgIFBsYXRmb3JtTGF5ZXIqIHJvb3RMYXllcigpIGNvbnN0OworICAg
IHZvaWQgcm9vdExheWVyQm91bmRzRGlkQ2hhbmdlKCk7CisKIHByaXZhdGU6CiAgICAgLy8gTWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCiAKQEAgLTI0NCwxMyArMjQ3LDE0IEBAIHByaXZhdGU6
CiAKICAgICAvLyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudAogICAgIHZvaWQgc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyU3RhdHVzRGlkQ2hhbmdlKFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllciYpIGZpbmFsOwotICAgIHZvaWQgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQm91bmRzRGlk
Q2hhbmdlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpIGZpbmFsOwogCiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qg
dm9pZCogbV9sb2dJZGVudGlmaWVyOwogI2VuZGlmCiAKKyAgICBSZXRhaW5QdHI8V2ViUm9vdFNh
bXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyPiBtX2JvdW5kc0NoYW5nZUxpc3RlbmVyOwor
CiAgICAgYm9vbCBtX3ZpZGVvTWlycm9yZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9wbGF5aW5n
IHsgZmFsc2UgfTsKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tCmluZGV4IGRmOWUyMDU3YThiNjk5ZDcyZTYyNjI2MDMwOGEwOWNlZjU2NTJkNDUu
LjI1ZjIwN2EwMWQ4NDA2MDgzNDc2MzgyN2U4MzAwYjlkOTM4ZDQ4YzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW0KQEAgLTQ4LDYgKzQ4LDkxIEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1l
ZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5o
PgogCitAaW50ZXJmYWNlIFdlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciA6
IE5TT2JqZWN0IHsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMqIF9wYXJlbnQ7Cit9CisKKy0gKGlkKWluaXRXaXRoUGFyZW50OihXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMqKWNhbGxiYWNrOworLSAodm9pZClpbnZh
bGlkYXRlOworLSAodm9pZClzdGFydDsKKy0gKHZvaWQpc3RvcDsKK0BlbmQKKworQGltcGxlbWVu
dGF0aW9uIFdlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lcgorCistIChpZClp
bml0V2l0aFBhcmVudDooV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKilwYXJlbnQKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKworICAgIF9wYXJlbnQgPSBwYXJlbnQ7CisKKyAgICByZXR1cm4gc2VsZjsK
K30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgW3NlbGYgaW52YWxpZGF0ZV07CisgICAgW3N1
cGVyIGRlYWxsb2NdOworfQorCistICh2b2lkKWludmFsaWRhdGUKK3sKKyAgICBbc2VsZiBzdG9w
XTsKKyAgICBfcGFyZW50ID0gbnVsbHB0cjsKK30KKworLSAodm9pZClzdGFydAoreworICAgIEFT
U0VSVChfcGFyZW50KTsKKyAgICBBU1NFUlQoX3BhcmVudC0+cm9vdExheWVyKCkpOworCisgICAg
W19wYXJlbnQtPnJvb3RMYXllcigpIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImJvdW5k
cyIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bmlsXTsKK30K
KworLSAodm9pZClzdG9wCit7CisgICAgaWYgKCFfcGFyZW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoX3BhcmVudC0+cm9vdExheWVyKCkpCisgICAgICAgIFtfcGFyZW50LT5yb290TGF5
ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJib3VuZHMiXTsKK30KKworLSAo
dm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6
KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICop
Y29udGV4dAoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0o
a2V5UGF0aCk7CisgICAgQVNTRVJUKF9wYXJlbnQpOworCisgICAgaWYgKCFfcGFyZW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoW1tjaGFuZ2UgdmFsdWVGb3JLZXk6TlNLZXlWYWx1ZUNo
YW5nZU5vdGlmaWNhdGlvbklzUHJpb3JLZXldIGJvb2xWYWx1ZV0pCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICgoQ0FMYXllciAqKW9iamVjdCA9PSBfcGFyZW50LT5yb290TGF5ZXIoKSkgewor
ICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiYm91bmRzIl0pIHsKKyAgICAg
ICAgICAgIGlmICghX3BhcmVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgICAgICAgICAgICAgIF9wYXJlbnQtPnJvb3RM
YXllckJvdW5kc0RpZENoYW5nZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFJl
dGFpblB0cjxXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXI+KHNlbGYpXSB7
CisgICAgICAgICAgICAgICAgaWYgKCFwcm90ZWN0ZWRTZWxmLT5fcGFyZW50KQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fcGFy
ZW50LT5yb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CisgICAgfQorCit9CitAZW5kCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVz
cGFjZSBQQUw7CiAKQEAgLTY0LDYgKzE0OSw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhCiAg
ICAgLCBtX2xvZ2dlcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lk
ZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKICNlbmRpZgorICAg
ICwgbV9ib3VuZHNDaGFuZ2VMaXN0ZW5lcihhZG9wdE5TKFtbV2ViUm9vdFNhbXBsZUJ1ZmZlckJv
dW5kc0NoYW5nZUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCiB7CiAgICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9CkBAIC04Miw2ICsxNjgsOCBAQCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMoKQogICAgICAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKICAg
ICB9CiAKKyAgICBbbV9ib3VuZHNDaGFuZ2VMaXN0ZW5lciBzdG9wXTsKKwogICAgIGRlc3Ryb3lM
YXllcnMoKTsKIAogICAgIGF1dG8gYXVkaW9UcmFja01hcCA9IFdURk1vdmUobV9hdWRpb1RyYWNr
TWFwKTsKQEAgLTI4NCw3ICszNzIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6ZW5zdXJlTGF5ZXJzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBz
aXplID0gc25hcHBlZEludFJlY3QobV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNp
emUoKTsKLSAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA9IExvY2FsU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpjcmVhdGUoKnRoaXMsIGhpZGVSb290TGF5ZXIoKSwgc2l6ZSk7CisgICAg
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNy
ZWF0ZSgqdGhpcywgaGlkZVJvb3RMYXllcigpLCBzaXplKTsKIAogICAgIGlmICghbV9zYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIpIHsKICAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJD
cmVhdGluZyB0aGUgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGZhaWxlZC4iKTsKQEAgLTI5NSw2
ICszODMsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5z
dXJlTGF5ZXJzKCkKICAgICB1cGRhdGVEaXNwbGF5TGF5ZXIoKTsKIAogICAgIG1fdmlkZW9GdWxs
c2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVyKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLT5yb290TGF5ZXIoKSwgc2l6ZSk7CisKKyAgICBbbV9ib3VuZHNDaGFuZ2VMaXN0ZW5lciBz
dGFydF07CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpk
ZXN0cm95TGF5ZXJzKCkKQEAgLTM2NSw2ICs0NTUsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OnByZXBhcmVUb1BsYXkoKQogICAgIElORk9fTE9HKExPR0lE
RU5USUZJRVIpOwogfQogCitQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnJvb3RMYXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyID8gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigp
IDogbnVsbHB0cjsKK30KKwogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyIHx8ICFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+cm9vdExh
eWVyKCkgfHwgbV9kaXNwbGF5TW9kZSA9PSBOb25lKQpAQCAtOTQ4LDcgKzEwNDMsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlRGlzcGxheUxheWVy
KCkKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQogICAgICAgICByZXR1cm47
CiAKLSAgICBhdXRvIGJvdW5kcyA9IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5ib3VuZHMo
KTsKKyAgICBhdXRvIGJvdW5kcyA9IHJvb3RMYXllcigpLmJvdW5kczsKICAgICBhdXRvIHZpZGVv
Qm91bmRzID0gYm91bmRzOwogICAgIGlmIChtX3ZpZGVvUm90YXRpb24gPT0gTWVkaWFTYW1wbGU6
OlZpZGVvUm90YXRpb246OlJpZ2h0IHx8IG1fdmlkZW9Sb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6TGVmdCkKICAgICAgICAgc3RkOjpzd2FwKHZpZGVvQm91bmRzLnNpemUu
d2lkdGgsIHZpZGVvQm91bmRzLnNpemUuaGVpZ2h0KTsKQEAgLTk1Niw3ICsxMDUxLDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZURpc3BsYXlMYXll
cigpCiAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnVwZGF0ZUJvdW5kc0FuZFBvc2l0
aW9uKHZpZGVvQm91bmRzLCB7IGJvdW5kcy5zaXplLndpZHRoIC8gMiwgYm91bmRzLnNpemUuaGVp
Z2h0IC8gMn0pOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQm91bmRzRGlkQ2hhbmdlKFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllciYpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cm9vdExheWVyQm91bmRzRGlkQ2hhbmdlKCkKIHsKICAgICB1cGRhdGVEaXNwbGF5TGF5ZXIoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKaW5kZXggNGI5
N2E5YTBjMzBhZTJmN2ZmNjhiNDljMjc5MTNkMGQzZTI0YTE0ZC4uZjg1NWUxOWUwMzE0ZmRiNGE2
NmNhYWE3ZjlkODIxMGQ0ZWM1ZWUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFT
YW1wbGVBVkZPYmpDLmgKQEAgLTM5LDYgKzM5LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8
TWVkaWFTYW1wbGVBVkZPYmpDPiBjcmVhdGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBWaWRl
b1JvdGF0aW9uIHJvdGF0aW9uID0gVmlkZW9Sb3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9
IGZhbHNlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhU2FtcGxlQVZGT2JqQyhzYW1wbGUs
IHJvdGF0aW9uLCBtaXJyb3JlZCkpOyB9CiAgICAgc3RhdGljIFJlZlB0cjxNZWRpYVNhbXBsZUFW
Rk9iakM+IGNyZWF0ZUltYWdlU2FtcGxlKFZlY3Rvcjx1aW50OF90PiYmLCB1bnNpZ25lZCBsb25n
IHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShNZWRpYVNhbXBsZSYpOworCiAgICAgUmVm
UHRyPEpTQzo6VWludDhDbGFtcGVkQXJyYXk+IGdldFJHQkFJbWFnZURhdGEoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lKCkgY29uc3Qgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5kZXggMTcx
NTFhNWU3N2M0MGY4ZDUyMzM3ZjQ1YjY0N2E2MjIzYTkxY2RkNC4uZTg5NGI5MTRjNzY3MTgxODY0
ZDExMDA3MDY4YTgzZmUyODFiNmM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
U2FtcGxlQVZGT2JqQy5tbQpAQCAtMzExLDYgKzMxMSwxNSBAQCBSZWZQdHI8SlNDOjpVaW50OENs
YW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VEYXRhKCkgY29uc3QK
ICNlbmRpZgogfQogCit2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0QXNEaXNwbGF5SW1tZWRp
YXRlbHkoTWVkaWFTYW1wbGUmIHNhbXBsZSkKK3sKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRz
QXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLnBs
YXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCB0cnVlKTsKKyAgICBmb3IgKENG
SW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7ICsraSkg
eworICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9j
Zl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0
YWNobWVudHNBcnJheSwgaSkpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2ht
ZW50cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xl
YW5UcnVlKTsKKyAgICB9Cit9CisKIFN0cmluZyBNZWRpYVNhbXBsZUFWRk9iakM6OnRvSlNPTlN0
cmluZygpIGNvbnN0CiB7CiAgICAgYXV0byBvYmplY3QgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9j
dW1lbnRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZE
b2N1bWVudEltYWdlLmNwcAppbmRleCA4MGY2YjE4NzI1MjI5NjhlYTdkOTU3NmI3ZTAwNTYzMzMy
NTg4MjNjLi4yODIxZWY4MWQ3NWRmYjBmZjA1YTg1YmU1YzlmYmMyNThiNTYyZWIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVu
dEltYWdlLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgog
I2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0NvbnRleHQuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhp
Y3MvQ0dQREZEb2N1bWVudC5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJ
Lmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvUkFNU2l6ZS5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCAxYTI0YmJmYzA3MmQyNmZlYzcxNjUzYTk1OWZk
NzNiMGEyZjQzZDZiLi45ODA4MWFhNmIyY2MzYjhjNGE1YWQ1MmY4OWM4ZDIyMGRjYmUyM2UwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
KysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0y
NCw2ICsyNCw4IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNz
L0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0
d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5tZXNzYWdlcy5pbgpAQCAtMTA4LDYgKzExMCw3IEBAICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJX
ZWJSVENSZW1vdGVDb2RlY3MubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDFkYzU0NjUyOGY1YmEyMmQ3MzY1MGUwMDRi
YTI4MWVjMjJmMjYyMzUuLjliNjBkMTU1ZjllYjNlZDM2ZDdlYzE5MGFiNzQxYjIwZjEwZDdmZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApA
QCAtMTUxLDYgKzE1MSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUgogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNz
YWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXNSZXBs
aWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdl
c1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXNSZXBsaWVzLmgKQEAgLTE2MCw2
ICsxNjYsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzUmVwbAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2
ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclVJTWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9TZWNJdGVtU2hpbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VjSXRlbVNoaW1Qcm94
eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1NlY0l0ZW1TaGltUHJveHlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IGExOWQwNzllMDAzYWE4YmYyYTM4NTMxZmQ5ZGVhYzUxYTc2NGZiMmYuLmMzNGFm
NWNkM2ExNzQ3ZjI2ZWM0NDg5Y2FkODNmZjJkYjZjNTI2YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTE1MCw5ICsxNTAsMTIgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAg
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyIFwKICAgICBSZW1vdGVPYmplY3RSZWdpc3RyeSBcCisgICAgUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyIFwKKyAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
IFwKICAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvciBcCiAgICAgUmVtb3RlV2ViSW5zcGVj
dG9yUHJveHkgXAogICAgIFJlbW90ZVdlYkluc3BlY3RvclVJIFwKKyAgICBTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIgXAogICAgIFNlY0l0ZW1TaGltUHJveHkgXAogICAgIFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2sgXAogICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CmluZGV4IDQ2YjEzNDk4ODllNGRmNTA4MGMzYmIxYTE3YTg2MWRjNGU0Yjc0YmIuLmMwOTQ4ZDA5
OTViOTZjYjUzZTUzZjRhN2FjZTNmMzg2Y2I1MTM4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ5LDYg
KzQ5LDkgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
IgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgpAQCAt
MTYyLDYgKzE2NSwxNCBAQCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmF1ZGlvVHJhYwogCiAgICAgcmV0dXJuICpt
X2F1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXI7CiB9CisKK1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIoKQoreworICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyKQorICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgPSBt
YWtlVW5pcXVlPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+KG1fY29ubmVj
dGlvbi5jb3B5UmVmKCkpOworCisgICAgcmV0dXJuICptX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI7Cit9CiAjZW5kaWYKICNlbmRpZgogCkBAIC0yMDksNiArMjIwLDE0IEBAIHZvaWQg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJCiAgICAgICAgIGF1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXIoKS5k
aWRSZWNlaXZlUmVuZGVyZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBN
ZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIo
KS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cigpLmRpZFJlY2VpdmVMYXllck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CiAjZW5kaWYKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBV
U0UoTElCV0VCUlRDKQpAQCAtMjMxLDYgKzI1MCwxMiBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
bwogICAgICAgICB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlRnJvbUdQVVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJ
REVPX1RSQUNLKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNz
YWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKSB7CisgICAgICAgIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKS5k
aWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCBy
ZXBseUVuY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAjZW5kaWYKIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggY2MyMTEwYjVmYTIxOTQ1YzZj
NDM5ODhjYzg5MTVmOWM1ODUxZjY5ZS4uYjk4ZDYyZjA2MjE0OTY4NmFhYjRmMDA1Yzg1M2RjYzY0
Y2Y3ZjJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00NCw2ICs0NCw3IEBAIGNsYXNzIFJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OwogY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiBjbGFzcyBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlcjsKK2NsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXI7CiBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OwogCiBjbGFz
cyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCkBAIC03Niw2ICs3Nyw3IEBAIHByaXZhdGU6CiAg
ICAgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXImIG1lZGlhUmVjb3JkZXJNYW5hZ2VyKCk7CiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlciYgYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcigpOworICAgIFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXIoKTsKICNlbmRpZgogI2VuZGlmCiAKQEAgLTk4LDYgKzEwMCw3IEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyPiBtX3JlbW90ZU1l
ZGlhUmVjb3JkZXJNYW5hZ2VyOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyPiBtX2F1
ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlcjsKICNlbmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJS
VEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ1NmQ2
ZmVjYTkyMmM4NDBkODdmMGFmOWNlZjg4YTIxZmY0MjQ1YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLmNwcApAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKKworI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFD
SykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lv
blZULmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTYW1wbGVBVkZPYmpDLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI+IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKK3sK
KyAgICBhdXRvIGxheWVyID0gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcj4obmV3IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihpZGVudGlmaWVyLCBX
VEZNb3ZlKGNvbm5lY3Rpb24pLCBoaWRlUm9vdExheWVyLCBzaXplKSk7CisgICAgcmV0dXJuIGxh
eWVyLT5tX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA/IFdURk1vdmUobGF5ZXIpIDogbnVsbHB0
cjsKK30KKworUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZGVudGlm
aWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaGlkZVJvb3RMYXll
ciwgSW50U2l6ZSBzaXplKQorICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBt
X2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAsIG1fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoKnRoaXMsIGhp
ZGVSb290TGF5ZXIsIHNpemUpKQoreworICAgIEFTU0VSVChtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcik7CisgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6
Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOworICAgIG1fbGF5ZXJIb3N0aW5nQ29u
dGV4dC0+c2V0Um9vdExheWVyKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIo
KSk7Cit9CisKK1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6flJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcigpCit7Cit9CisKK09wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJ
RD4gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjb250ZXh0SUQoKQoreworICAgIHJl
dHVybiBtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpOworfQorCitDR1JlY3QgUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpib3VuZHMoKSBjb25zdAoreworICAgIHJldHVy
biBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+Ym91bmRzKCk7Cit9CisKK3ZvaWQgUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVEaXNwbGF5TW9kZShib29sIGhpZGVEaXNw
bGF5TGF5ZXIsIGJvb2wgaGlkZVJvb3RMYXllcikKK3sKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci0+dXBkYXRlRGlzcGxheU1vZGUoaGlkZURpc3BsYXlMYXllciwgaGlkZVJvb3RMYXll
cik7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVBZmZp
bmVUcmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKQoreworICAgIG1fc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLT51cGRhdGVBZmZpbmVUcmFuc2Zvcm0odHJhbnNmb3JtKTsKK30K
Kwordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUJvdW5kc0FuZFBv
c2l0aW9uKENHUmVjdCBib3VuZHMsIENHUG9pbnQgcG9zaXRpb24pCit7CisgICAgbV9zYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXItPnVwZGF0ZVJvb3RMYXllckJvdW5kc0FuZFBvc2l0aW9uKGJvdW5k
cywgcG9zaXRpb24pOworfQorCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
Zmx1c2goKQoreworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5mbHVzaCgpOworfQor
Cit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2hBbmRSZW1vdmVJbWFn
ZSgpCit7CisgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPmZsdXNoQW5kUmVtb3ZlSW1h
Z2UoKTsKK30KKwordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVT
YW1wbGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCit7CisgICAg
bV9tZWRpYVRpbWUgPSByZW1vdGVTYW1wbGUudGltZSgpOworCisgICAgaWYgKCFtX2ltYWdlVHJh
bnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0g
cmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpCisgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Np
b24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZpZGVvRm9y
bWF0KCkpOworCisgICAgQVNTRVJUKG1faW1hZ2VUcmFuc2ZlclNlc3Npb24pOworICAgIGlmICgh
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBzYW1w
bGUgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShyZW1vdGVTYW1w
bGUuc3VyZmFjZSgpLCByZW1vdGVTYW1wbGUudGltZSgpLCByZW1vdGVTYW1wbGUuc2l6ZSgpKTsK
KworICAgIEFTU0VSVChzYW1wbGUpOworICAgIGlmICghc2FtcGxlKQorICAgICAgICByZXR1cm47
CisKKyAgICBNZWRpYVNhbXBsZUFWRk9iakM6OnNldEFzRGlzcGxheUltbWVkaWF0ZWx5KCpzYW1w
bGUpOworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5lbnF1ZXVlU2FtcGxlKCpzYW1w
bGUpOworfQorCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y2xlYXJFbnF1
ZXVlZFNhbXBsZXMoKQoreworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5jbGVhckVu
cXVldWVkU2FtcGxlcygpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJl
dHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRDaGFuZ2UoV2ViQ29y
ZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNldERpZEZhaWwgeyBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci0+ZGlkRmFpbCgpIH0pOworfQorCitXVEY6Ok1lZGlhVGltZSBSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OnN0cmVhbVRpbWUoKSBjb25zdAoreworICAgIC8vIFRoaXMgaXMgb25s
eSBhbiBhcHByb3hpbWF0aW9uIHdoaWNoIHdpbGwgY2xlYXIgYWxsIHNhbXBsZXMgZW5xdWV1ZWQg
aW4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgZXhjZXB0IHRoZSBvbmUgYmVpbmcgcHVzaGVk
LgorICAgIHJldHVybiBtX21lZGlhVGltZTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBF
TkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjg1YTY2OTc4NzE3NmIxMzcxOWNiYjhmZTk5M2NkYzFiY2U3OWNlOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNp
bmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKK2NsYXNzIExvY2FsU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOworY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7Cit9OworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIDogcHVibGlj
IFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50LCBwdWJsaWMgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcklkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIGJvb2wgaGlkZVJvb3RMYXll
ciwgV2ViQ29yZTo6SW50U2l6ZSk7CisgICAgflJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cigpOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgT3B0
aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBjb250ZXh0SUQoKTsKKyAgICBDR1JlY3QgYm91
bmRzKCkgY29uc3Q7CisgICAgCitwcml2YXRlOgorICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUpOworCisgICAg
dm9pZCB1cGRhdGVEaXNwbGF5TW9kZShib29sIGhpZGVEaXNwbGF5TGF5ZXIsIGJvb2wgaGlkZVJv
b3RMYXllcik7CisgICAgdm9pZCB1cGRhdGVBZmZpbmVUcmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zv
cm0pOworICAgIHZvaWQgdXBkYXRlQm91bmRzQW5kUG9zaXRpb24oQ0dSZWN0LCBDR1BvaW50KTsK
KyAgICB2b2lkIGZsdXNoKCk7CisgICAgdm9pZCBmbHVzaEFuZFJlbW92ZUltYWdlKCk7CisgICAg
dm9pZCBlbnF1ZXVlU2FtcGxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOworICAgIHZv
aWQgY2xlYXJFbnF1ZXVlZFNhbXBsZXMoKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgor
ICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5h
bDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1faWRlbnRpZmllci50b1VJbnQ2NCgpOyB9CisKKyAgICAvLyBXZWJDb3JlOjpT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudAorICAgIHZvaWQgc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyU3RhdHVzRGlkQ2hhbmdlKFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ciYpIGZpbmFsOworICAgIFdURjo6TWVkaWFUaW1lIHN0cmVhbVRpbWUoKSBjb25zdCBmaW5hbDsK
KworICAgIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwor
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
bjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxM
YXllckhvc3RpbmdDb250ZXh0PiBtX2xheWVySG9zdGluZ0NvbnRleHQ7CisgICAgV1RGOjpNZWRp
YVRpbWUgbV9tZWRpYVRpbWU7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShN
RURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI3YmJlZmZhMzViY2Q2MDZjNDg4ZTFmNmMxYmJhZWQ4YTFmZjY5
YmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM2IEBA
CisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIgTm90UmVmQ291bnRlZCB7CisgICAgVXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlz
cGxheUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIpCisgICAgVXBkYXRlQWZmaW5lVHJhbnNmb3Jt
KENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSkKKyAgICBVcGRhdGVCb3VuZHNBbmRQb3NpdGlv
bihDR1JlY3QgYm91bmRzLCBDR1BvaW50IHBvc2l0aW9uKQorICAgIEZsdXNoKCkKKyAgICBGbHVz
aEFuZFJlbW92ZUltYWdlKCkKKyAgICBFbnF1ZXVlU2FtcGxlKFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlIHNhbXBsZSkKKyAgICBDbGVhckVucXVldWVkU2FtcGxlcygpCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGI5YmU0OWNhYzcyZjQ0ZTcxNzk3N2M0YTQ2NmUyZTI3OWYxYjE0ZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlci5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNv
bm5lY3Rpb24pKQoreworfQorCitSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
Ojp+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpID0gZGVmYXVsdDsKKwor
dm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTGF5
ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIGlmIChhdXRvKiBsYXllciA9IG1fbGF5ZXJzLmdldChtYWtlT2JqZWN0SWRl
bnRpZmllcjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5k
ZXN0aW5hdGlvbklEKCkpKSkKKyAgICAgICAgbGF5ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIGRlY29kZXIpOworfQorCisvLyBGSVhNRTogV2Ugc2hvdWxkIHJlZmFjdG9yIGNvZGUg
dG8gdXNlIGFuIGFzeW5jaHJvbm91cyBJUEMuCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXI6OmNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50
aWZpZXIgaWRlbnRpZmllciwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUsIE1lc3Nh
Z2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllckRl
bGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIEFTU0VSVCghbV9sYXllcnMuY29udGFpbnMoaWRl
bnRpZmllcikpOworICAgIGF1dG8gbGF5ZXIgPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBtX2Nvbm5lY3Rpb24uY29weVJlZigpLCBoaWRlUm9vdExh
eWVyLCBzaXplKTsKKyAgICBpZiAoIWxheWVyKQorICAgICAgICByZXR1cm4gcmVwbHkoeyB9LCB7
IH0pOworCisgICAgcmVwbHkobGF5ZXItPmNvbnRleHRJRCgpLCBsYXllci0+Ym91bmRzKCkpOwor
ICAgIG1fbGF5ZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGxheWVyKSk7Cit9CisKK3ZvaWQg
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6cmVsZWFzZUxheWVyKFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQo
bV9sYXllcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fbGF5ZXJzLnJlbW92ZShpZGVu
dGlmaWVyKTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45ZjliMzBjNzYxNjIzZGQ5NDhkMjliZTBmMzdmMGFkMGY0N2U1YTlhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
RU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIgorI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3Bh
Y2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOworCitj
bGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyIGZpbmFsIDogcHJpdmF0
ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcigpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VG
cm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYg
ZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAg
IHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6
OkVuY29kZXI+JiBlbmNvZGVyKSB7IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyLCBlbmNvZGVyKTsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2Vp
dmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZp
bmFsOworCisgICAgdm9pZCBjcmVhdGVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVu
dGlmaWVyLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUsIE1lc3NhZ2VzOjpS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllckRlbGF5ZWRS
ZXBseSYmKTsKKyAgICB2b2lkIHJlbGVhc2VMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJ
ZGVudGlmaWVyKTsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAg
ICBIYXNoTWFwPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+PiBtX2xheWVyczsKK307CisKK30K
KworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVO
QUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wNDQ5NTMzYjUxNjVkZThjNzdiZmU0NjJmNzk4YTMzZDE2OWUwNzc3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgQ3JlYXRlTGF5ZXIoV2ViS2l0OjpTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyIGlkLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6
OkludFNpemUgc2l6ZSkgLT4gKE9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElE
PiBjb250ZXh0SUQsIENHUmVjdCBib3VuZHMpIFN5bmNocm9ub3VzCisgICAgUmVsZWFzZUxheWVy
KFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCkKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAyNTY0ZjUy
ODgyOGY1MWQwM2NkZDMwYzdmZjg3NmQyNWRkYTU0NWNhLi5kYzllMTRmNWFjZGY2OTg0MTEzN2Jm
Y2IxMGU0ZTY0NmNjNDJlYTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKQEAgLTIyNSw2ICsyMjUsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2Fy
ZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFy
ZWFJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggODRkNDM5YzUw
NTQwNGI3ZTU5MDViMzZlN2RlYzc2ODlkZGZhOTQ1NC4uN2JmNzFjMTdhYmRkM2Q4YjEzMTkwMjIw
MDU4YzlmOWMyMTlmNjBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKQEAgLTQ0Niw2ICs0NDYsMjYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCYpOwogICAgIHN0YXRp
YyBPcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShEZWNvZGVyJik7CiB9
OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+IHsKKyAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOworICAgIHN0YXRpYyBPcHRpb25hbDxD
R1BvaW50PiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxDR1NpemU+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHU2l6
ZSk7CisgICAgc3RhdGljIE9wdGlvbmFsPENHU2l6ZT4gZGVjb2RlKERlY29kZXImKTsKK307CisK
K3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dSZWN0PiB7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBDR1JlY3QpOworICAgIHN0YXRpYyBPcHRpb25hbDxDR1JlY3Q+
IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PENHQWZmaW5lVHJhbnNmb3JtPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBD
R0FmZmluZVRyYW5zZm9ybSk7CisgICAgc3RhdGljIE9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3Jt
PiBkZWNvZGUoRGVjb2RlciYpOworfTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRD
b2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tCmluZGV4IDViYTUyYzkwYWViMGZlYWQ2ZjQ0OGQ3MDg2ZjU5YTJhZTZlOWU5NTIu
LjhjYmRhZmJlMTQ2ZmM3NzFjMjlmM2FjOWIxYWUxYWFlOGI0NmE4YmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAt
NTQ4LDYgKzU0OCw3OSBAQCBPcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPjo6ZGVjbwogICAgIHJldHVybiBXVEZN
b3ZlKGNvbW1hbmQpOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIENHUmVjdCByZWN0KQoreworICAgIGVuY29kZXIgPDwgcmVjdC5vcmln
aW4gPDwgcmVjdC5zaXplOworfQorCitPcHRpb25hbDxDR1JlY3Q+IEFyZ3VtZW50Q29kZXI8Q0dS
ZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8Q0dQb2ludD4g
b3JpZ2luOworICAgIGRlY29kZXIgPj4gb3JpZ2luOworICAgIGlmICghb3JpZ2luKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgT3B0aW9uYWw8Q0dTaXplPiBzaXplOworICAgIGRlY29kZXIg
Pj4gc2l6ZTsKKyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1
cm4gQ0dSZWN0IHsgKm9yaWdpbiwgKnNpemUgfTsKK30KKwordm9pZCBBcmd1bWVudENvZGVyPENH
U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1NpemUgc2l6ZSkKK3sKKyAgICBlbmNv
ZGVyIDw8IHNpemUud2lkdGggPDwgc2l6ZS5oZWlnaHQ7Cit9CisKK09wdGlvbmFsPENHU2l6ZT4g
QXJndW1lbnRDb2RlcjxDR1NpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBD
R1NpemUgc2l6ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUud2lkdGgpKQorICAgICAg
ICByZXR1cm4geyB9OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZS5oZWlnaHQpKQorICAg
ICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBzaXplOworfQorCit2b2lkIEFyZ3VtZW50Q29k
ZXI8Q0dQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1BvaW50IHBvaW50KQorewor
ICAgIGVuY29kZXIgPDwgcG9pbnQueCA8PCBwb2ludC55OworfQorCitPcHRpb25hbDxDR1BvaW50
PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBDR1BvaW50IHBvaW50OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCisgICAg
ICAgIHJldHVybiB7IH07CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gcG9pbnQ7Cit9CisKK3ZvaWQgQXJndW1lbnRDb2Rl
cjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRy
YW5zZm9ybSB0cmFuc2Zvcm0pCit7CisgICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFu
c2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwg
dHJhbnNmb3JtLnR5OworfQorCitPcHRpb25hbDxDR0FmZmluZVRyYW5zZm9ybT4gQXJndW1lbnRD
b2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRy
YW5zZm9ybS5hKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHRyYW5zZm9ybS5iKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHRyYW5zZm9ybS5jKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHRyYW5zZm9ybS5kKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHRyYW5zZm9ybS50eCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0udHkpKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJl
dHVybiB0cmFuc2Zvcm07Cit9CisKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAKIHZv
aWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxv
Y2tIYW5kbGVyJiBjb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA0
NzJlNGUwMmY2ODBjNGFlZTYzYmY0NTg1Yjg3NTczMDU4ZmYzNGFlLi4zNjRiY2Q4OTBiNTA5ZTgx
OGI2Mjc0MGQ1NjUzYzcwMDQ5ZDk3YTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI4LDYgKzI4LDggQEAg
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3Bw
CiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1h
bmFnZXIuY3BwCiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAogR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwCitHUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCitHUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcApAQCAtNTI4LDYgKzUzMCw4IEBAIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmNwcAorV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAK
K1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNw
cAogCiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CmluZGV4IGIyMzgzMmFiMjdhNzRiNTdjMjY1ZjkzMjlhMGJlMmNjMGYwOTljYjkuLjZhOGUyZTY5
MDVjMzViYzFiYzQ4YzQ2OWE2ZWM2Yzg1ZDVmODI0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
QEAgLTY0NCw1ICs2NDQsOCBAQCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrTWVzc2FnZVJlY2VpdmVyLmNwcAogVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMWM3MGU2NDVlODQzM2YxNGFlMDBkNTdkMmMyNTQzYTAwZTBjMmYyNC4u
YjlkNjgzNTA5ZmEwMTA3ZmFiNWNjNjYwMTJiMGQ3ZDY4Mjg3OTBlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjkxLDYgKzMyOTEs
OCBAQAogCQkzRjkxNUMwRTFGNTY0REVEMDAxODNDRTkgLyogV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbTsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTNGOTE1QzBGMUY1NjRERUQwMDE4M0NFOSAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJ
T1MuaDsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJ
T1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZCMDhFNDIxRjYwQjI0MDAwNUU1
MzEyIC8qIGlPUy54Y2Fzc2V0cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGZvbGRlci5hc3NldGNhdGFsb2c7IHBhdGggPSBpT1MueGNhc3NldHM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDI0RkMwMjNDRjEwNDUwMEZERjk4RSAvKiBT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMjRGQzEyM0NGMTA0NTAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMDNGQkExMjA2MUJEQjcwMEMyRUFGOCAvKiBOZXR3b3JrTG9hZENo
ZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0xvYWRDaGVj
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDNGQkEyMjA2MUJEQjgwMEMy
RUFGOCAvKiBOZXR3b3JrTG9hZENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTmV0d29ya0xvYWRDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDEwNDgyQ0IxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDTmV0d29yay5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDIyLDYgKzM0MjQsMTYgQEAKIAkJNDFGQ0Q2QUQyM0ND
QzI2MDAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkFFMjNDQ0MyNjEwMEM2MjU2NyAv
KiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkFGMjNDQ0MyNjEwMEM2MjU2NyAvKiBBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkIzMjNDREM2MDQwMEM2MjU2NyAv
KiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxRkNENkI0MjNDRENBQzIwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNE
NkI1MjNDREUxQzYwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QjYyM0NERTFDNjAwQzYyNTY3IC8q
IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxRkNENkI3MjNDREU1M0QwMEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QjgyM0NERTUzRTAwQzYyNTY3
IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxRkNENkJDMjNDRTAzMTgwMEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVu
dGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFG
Q0Q2QkQyM0NFMDQzRjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDFGQ0Q2QkUyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkJGMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MEFFQkYxREMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1l
bW9yeUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJl
ZE1lbW9yeUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1OTk4NDEy
MjgzM0U2MDAwRTYxMzczIC8qIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDQ5RDkwRDgyMUZENjNGRTAwRjY3N0MwIC8qIExvY2FsQXV0aGVudGljYXRp
b25Tb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExv
Y2FsQXV0aGVudGljYXRpb25Tb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTcyMTksNiArNzIzMSwxMiBAQAogCQkJCTQxNzZFODkyMjNDMzRENkUwMDNFODNGRSAvKiBN
ZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAqLywKIAkJCQk0MTcyMTk4QzIzQjYxMkU4MDBBRTU2ODYg
LyogUlRDRGVjb2RlcklkZW50aWZpZXIuaCAqLywKIAkJCQk0MTU4NjQ5QTIzQkUwOTI0MDBBMEE2
MUUgLyogUlRDRW5jb2RlcklkZW50aWZpZXIuaCAqLywKKwkJCQk0MUZDRDZCNzIzQ0RFNTNEMDBD
NjI1NjcgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCAqLywKKwkJCQk0MUZDRDZCMzIz
Q0RDNjA0MDBDNjI1NjcgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggKi8sCisJCQkJNDFG
Q0Q2QjgyM0NERTUzRTAwQzYyNTY3IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdl
cy5pbiAqLywKKwkJCQk0MUZDRDZCQzIzQ0UwMzE4MDBDNjI1NjcgLyogU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVySWRlbnRpZmllci5oICovLAorCQkJCTQxMDI0RkMxMjNDRjEwNDUwMEZERjk4RSAv
KiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLywKKwkJCQk0MTAyNEZDMDIz
Q0YxMDQ1MDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oICovLAog
CQkJKTsKIAkJCXBhdGggPSB3ZWJydGM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
NzI0MSw2ICs3MjU5LDEyIEBACiAJCQkJNDE3NkU4OUEyM0MzNkY3MTAwM0U4M0ZFIC8qIFJlbW90
ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcCAqLywKIAkJCQk0MTc2RTg5OTIzQzM2RDhFMDAzRTgz
RkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaCAqLywKIAkJCQk0MTc2RTg5QjIzQzM3
MjIyMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4gKi8s
CisJCQkJNDFGQ0Q2QjUyM0NERTFDNjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5jcHAgKi8sCisJCQkJNDFGQ0Q2QjQyM0NEQ0FDMjAwQzYyNTY3IC8qIFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oICovLAorCQkJCTQxRkNENkI2MjNDREUxQzYwMEM2MjU2
NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJ
NDFGQ0Q2QkUyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuY3BwICovLAorCQkJCTQxRkNENkJGMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8sCisJCQkJNDFGQ0Q2QkQyM0NFMDQz
RjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2Fn
ZXMuaW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0xMjA2OCw2ICsxMjA5Miw3IEBACiAJCQkJNDFERTdDNkMyMjI3OEYxRTAwNTMy
QjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5
MkE3ODcyMTJCNkFCMTAwRjQ5M0ZEIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBMUFEQUZCNjIzNjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVtb3J5LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1
dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMx
NUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUEzMzRERUQxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVh
TWFwTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNjhFRURFMjMwM0E5
MDIwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTEyMjE3LDcgKzEyMjQyLDYgQEAKIAkJCQkyRDExQjdENTIxMjZBMjgzMDA2
Rjg4NzggLyogVW5pZmllZFNvdXJjZTcyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzEx
MjEyRjNCMzMwMDQ5QzE3NCAvKiBVbmlmaWVkU291cmNlNzItbW0ubW0gaW4gU291cmNlcyAqLywK
IAkJCQkyRDU0QzMxMDIxMkYzQjMzMDA0OUMxNzQgLyogVW5pZmllZFNvdXJjZTczLW1tLm1tIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNTc1QjFCQkEyM0NFOUMxMzAwMjA2MzlBIC8qIFdlYkF1dG9tYXRp
b25TZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCN0Q2MjEyNkEyODMwMDZGODg3
OCAvKiBVbmlmaWVkU291cmNlNzMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1NEMzMTUyMTJG
M0IzMzAwNDlDMTc0IC8qIFVuaWZpZWRTb3VyY2U3NC1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTJEMTFCN0Q3MjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNzQuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0xMjI2NCw3ICsxMjI4OCw5IEBACiAJCQkJMUE2MDIyNEMxOEMxNkI5RjAwQzNF
OEM5IC8qIFZpc2l0ZWRMaW5rU3RvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUE4RTdEM0MxOEMxNTE0OTAwNUE3MDJBIC8qIFZpc2l0ZWRMaW5rVGFibGVDb250cm9s
bGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3RENFRDcwMjE0MkVF
NjgwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzVCMUJCQTIzQ0U5QzEzMDAyMDYzOUEgLyog
V2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwQTE5NTcxQzkw
MDY4RjAwRkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTU3NUIxQkI4MjNDRTlCRkMwMDIwNjM5QSAvKiBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMEExOTUzMUM4RkZERkIw
MEZFMEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBMUZFQzFDMTYyN0I0NTcwMDcwMEY2RCAvKiBXZWJDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMDkzNDQ3MTMxNUI5
MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTIyODAsNyArMTIzMDYsNiBAQAogCQkJCUJDMEU2MDYxMTJENkJBOTEwMDEy
QTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkMwRTYxODIxMkQ2Q0IxRDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMDUyMzc1
MUM3M0QzOEYwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzNFODM1QjIz
QTFCNzUwMDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUZFREJEQ0Q2MUU2OEQyMDAwMEE1OUY4RiAvKiBXZWJJbnNwZWN0b3JJbnRl
cnJ1cHREaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFD
OEUyQTM1MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0xMjMzNiw3ICsxMjM2MSw2IEBACiAJCQkJNjM3MjgxQTMyMUFE
Qzc0NDAwOUUwREU2IC8qIFdLRG93bmxvYWRQcm9ncmVzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTVDRTkxMjBEMjI5M0MyMTkwMDVCRUM3OCAvKiBXS01haW4ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk0NjU3RDg4QTIyNjY0QTJGMDA1REU4MjMgLyogV0tPcmllbnRhdGlvbkFjY2Vzc0FsZXJ0Lm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJNTc1QjFCQjgyM0NFOUJGQzAwMjA2MzlBIC8qIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNBMjZEODMyMTdBRDFC
ODAwRjk3QTM1IC8qIFdLU2FmZUJyb3dzaW5nV2FybmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTFEQjAxOTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3QTc4RkYzMzIyNDE5MTlCMDA5NjQ4M0UgLyogV0tTdG9yYWdlQWNjZXNzQWxlcnQu
bW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMThlOTM2ZGUzMjMwNzcwZjI0MzYxYjZh
YmFhOGUxN2U0ZDJlNWFjMC4uNTNhODVlNmFhMDhiNmI5ZTgzMzJmYmI5NTZkZGFhOWM3OTI1YTA4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENDb2Rl
Y3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKQEAgLTY0LDYgKzY1LDE1IEBA
IHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluCiB7CiB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlciYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OnNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIoKQoreworICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyKQorICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgPSBt
YWtlVW5pcXVlPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+KCk7CisgICAgcmV0dXJu
ICptX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7Cit9CisjZW5kaWYKKwogdm9pZCBH
UFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtNzYsNyArODYsMTMgQEAgdm9pZCBHUFVQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkQKICAgICAgICAgICAgIGNhcHR1cmVNYW5hZ2VyLT5kaWRSZWNlaXZlTWVzc2Fn
ZUZyb21HUFVQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19UUkFDSykK
KyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKS5kaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKGNv
bm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmIC8vIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKICNpZiBVU0UoTElCV0VCUlRDKSAmJiBQTEFURk9STShDT0NPQSkKICAgICBp
ZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkxpYldlYlJUQ0Nv
ZGVjczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmxpYldlYlJUQ0NvZGVjcygpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
Q29ubmVjdGlvbi5oCmluZGV4IGE4YWQ0ZmVlODZiMjY1OWI0YWZmYjdjNDg0ZGExODFjM2JlZjI3
ZDAuLjQ2MDBlNTNiYjI4NGQ3NDhjZjM5MTFiOTRkYjU1OTlhOWNiNDVmMjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKQEAg
LTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKQEAgLTUxLDYgKzUyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXVkaXRUb2tlbihP
cHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuKSB7IG1fYXVkaXRUb2tlbiA9IGF1ZGl0
VG9rZW47IH0KICAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuKCkgY29uc3Qg
eyByZXR1cm4gbV9hdWRpdFRva2VuOyB9CiAjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIo
KTsKKyNlbmRpZgogCiBwcml2YXRlOgogICAgIEdQVVByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllcik7CkBAIC02Niw2ICs3MCw5IEBAIHByaXZhdGU6CiAjaWYgSEFW
RShBVURJVF9UT0tFTikKICAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBtX2F1ZGl0VG9rZW47
CiAjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyPiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CisjZW5k
aWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
Y3BwCmluZGV4IDU0N2Q0NWYyYWVmNzljZGFiOWQyZTM0ZWZjOTJlMGRjNzY3MDAwMWMuLjE4MGFj
NmQyNDZmNmM3MWEwZGNlMzkzMzNmOTBmNzhlNzg0NTkxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5jcHAKQEAgLTM3MCw4ICszNzAsMTIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXI6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncykKICAgICBS
ZW1vdGVNZWRpYVBsYXllclN1cHBvcnQ6OnNldFJlZ2lzdGVyUmVtb3RlUGxheWVyQ2FsbGJhY2so
c2V0dGluZ3MudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkgPyBXVEZNb3ZlKHJlZ2lzdGVyRW5naW5l
KSA6IFJlbW90ZU1lZGlhUGxheWVyU3VwcG9ydDo6UmVnaXN0ZXJSZW1vdGVQbGF5ZXJDYWxsYmFj
aygpKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0gICAgaWYgKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRp
YSgpKQorICAgIGlmIChzZXR0aW5ncy51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSkgewogICAgICAg
ICBXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0Q3JlYXRvcihXZWJL
aXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUpOworICAgICAgICBXZWJD
b3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldENyZWF0b3IoW10oYXV0byYgY2xpZW50
LCBib29sIGhpZGVSb290TGF5ZXIsIGF1dG8gc2l6ZSkgeworICAgICAgICAgICAgcmV0dXJuIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpLmNyZWF0ZUxheWVyKGNsaWVudCwgaGlkZVJvb3RM
YXllciwgc2l6ZSk7CisgICAgICAgIH0pOworICAgIH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTAxNjFhYWQ5NDc0ZDZiMGYxZjkwMGIw
NTQ0ZjU5ODBkMzY5OGZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcApAQCAtMCwwICsxLDEz
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgiCisjaW5jbHVk
ZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ciYgbWFuYWdlciwgQ2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBz
aXplKQoreworICAgIGF1dG8gbGF5ZXIgPSBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyPihuZXcgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKG1hbmFnZXIsIGNsaWVudCwg
aGlkZVJvb3RMYXllciwgc2l6ZSkpOworICAgIHJldHVybiBsYXllci0+cm9vdExheWVyKCkgPyBX
VEZNb3ZlKGxheWVyKSA6IG51bGxwdHI7Cit9CisKK1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIm
IG1hbmFnZXIsIENsaWVudCYgY2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6
ZSkKKyAgICA6IFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihjbGllbnQpCisgICAg
LCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX2Nvbm5lY3Rpb24oV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkpCisgICAgLCBtX2lkZW50aWZpZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRp
Zmllcjo6Z2VuZXJhdGUoKSkKK3sKKyAgICBtYW5hZ2VyLmFkZExheWVyKCp0aGlzKTsKKworICAg
IE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4gY29udGV4dElkOworICAgIGlmICghbV9j
b25uZWN0aW9uLT5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlcjo6Q3JlYXRlTGF5ZXIgeyBtX2lkZW50aWZpZXIsIGhpZGVSb290TGF5ZXIsIHNp
emUgfSwgTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OkNy
ZWF0ZUxheWVyOjpSZXBseSB7IGNvbnRleHRJZCwgbV9ib3VuZHMgfSwgMCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmICghY29udGV4dElkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Zp
ZGVvTGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9z
dGluZ0NvbnRleHQoKmNvbnRleHRJZCk7Cit9CisKK1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
flNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpSZWxlYXNlTGF5
ZXIgeyBtX2lkZW50aWZpZXIgfSwgMCk7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9t
YW5hZ2VyLT5yZW1vdmVMYXllcigqdGhpcyk7Cit9CisKK2Jvb2wgU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOjpkaWRGYWlsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kaWRGYWlsOworfQorCit2
b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRl
RGlzcGxheUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIpCit7CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlVwZGF0ZURpc3Bs
YXlNb2RlIHsgaGlkZURpc3BsYXlMYXllciwgaGlkZVJvb3RMYXllciB9LCBtX2lkZW50aWZpZXIp
OworfQorCitDR1JlY3QgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpib3VuZHMoKSBjb25zdAor
eworICAgIHJldHVybiBtX2JvdW5kczsKK30KKwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6OnVwZGF0ZUFmZmluZVRyYW5zZm9ybShDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCit7
CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OlVwZGF0ZUFmZmluZVRyYW5zZm9ybSB7IHRyYW5zZm9ybSB9LCBtX2lkZW50aWZp
ZXIpOworfQorCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQm91bmRzQW5k
UG9zaXRpb24oQ0dSZWN0IGJvdW5kcywgQ0dQb2ludCBwb3NpdGlvbikKK3sKKyAgICBtX2JvdW5k
cyA9IGJvdW5kczsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6VXBkYXRlQm91bmRzQW5kUG9zaXRpb24geyBib3VuZHMsIHBv
c2l0aW9uIH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpmbHVzaCgpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkZsdXNoIHsgfSwgbV9pZGVudGlmaWVyKTsKK30KKwor
dm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmZsdXNoQW5kUmVtb3ZlSW1hZ2UoKQorewor
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOjpGbHVzaEFuZFJlbW92ZUltYWdlIHsgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9p
ZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKK3sKKyAgICBpZiAoYXV0byByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6
Y3JlYXRlKHNhbXBsZSkpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpFbnF1ZXVlU2FtcGxlIHsgKnJlbW90ZVNhbXBs
ZSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
Y2xlYXJFbnF1ZXVlZFNhbXBsZXMoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGVhckVucXVldWVkU2FtcGxlcyB7
IH0sIG1faWRlbnRpZmllcik7Cit9CisKK1BsYXRmb3JtTGF5ZXIqIFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6cm9vdExheWVyKCkKK3sKKyAgICByZXR1cm4gbV92aWRlb0xheWVyLmdldCgpOwor
fQorCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0RGlkRmFpbChib29sIHZhbHVl
KQoreworICAgIG1fZGlkRmFpbCA9IHZhbHVlOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjU5YzUyZmRmNjljNmJiOTk3MjU5ZDU0MmMy
Yzg2NTcwMzgyNzBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKQEAgLTAsMCArMSw3NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxF
KFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg+CisjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CisKK2NsYXNzIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIsIHB1
YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcj4geworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGUoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlciYsIENsaWVudCYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSk7
CisgICAgflNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpOworCisgICAgU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVySWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlm
aWVyOyB9CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOworCitwcml2YXRlOgorICAgIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiwgQ2xpZW50JiwgYm9vbCBoaWRl
Um9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplKTsKKworICAgIC8vIFdlYkNvcmU6OlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcgorICAgIGJvb2wgZGlkRmFpbCgpIGNvbnN0IGZpbmFsOworICAgIHZv
aWQgdXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxheUxheWVyLCBib29sIGhpZGVSb290
TGF5ZXIpIGZpbmFsOworICAgIENHUmVjdCBib3VuZHMoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lk
IHVwZGF0ZUFmZmluZVRyYW5zZm9ybShDR0FmZmluZVRyYW5zZm9ybSkgZmluYWw7CisgICAgdm9p
ZCB1cGRhdGVCb3VuZHNBbmRQb3NpdGlvbihDR1JlY3QsIENHUG9pbnQpIGZpbmFsOworICAgIHZv
aWQgZmx1c2goKSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoQW5kUmVtb3ZlSW1hZ2UoKSBmaW5hbDsK
KyAgICB2b2lkIGVucXVldWVTYW1wbGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAg
ICB2b2lkIGNsZWFyRW5xdWV1ZWRTYW1wbGVzKCkgZmluYWw7CisgICAgUGxhdGZvcm1MYXllciog
cm9vdExheWVyKCkgZmluYWw7CisgICAgCisgICAgdm9pZCBzZXREaWRGYWlsKGJvb2wpOworCisg
ICAgV2Vha1B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyPiBtX21hbmFnZXI7Cisg
ICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworCisgICAgUmV0YWluUHRyPFBsYXRm
b3JtTGF5ZXI+IG1fdmlkZW9MYXllcjsKKyAgICBDR1JlY3QgbV9ib3VuZHM7CisgICAgYm9vbCBt
X2RpZEZhaWwgeyBmYWxzZSB9OworfTsKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZlZWZmYWY1MmE2OWNlYTE5YWZkODQ4ZTdhODU2NGYwNzJmNWJiOTIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAm
JiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIE5vdFJl
ZkNvdW50ZWQgeworICAgIFNldERpZEZhaWwoYm9vbCB2YWx1ZSkKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg2
OTVmZmM4ZTljYzAzNDMyODY2MzZmNjJmNjk5NWRkY2QyNDNmMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UgLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL09iamVjdElk
ZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVySWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVySWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
SWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MjJm
NzczZDg1ZDgyYmUxZjJmMzcxNTAzZWU4ZGNmY2VhZmNlOTUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCIKKwor
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURF
T19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI6OmRpZFJlY2VpdmVMYXllck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGF1dG8qIGxheWVyID0gbV9s
YXllcnMuZ2V0KG1ha2VPYmplY3RJZGVudGlmaWVyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklk
ZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpLmdldCgpKQorICAgICAgICBs
YXllci0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7Cit9CisKK3N0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXI6OmNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6Q2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSBz
aXplKQoreworICAgIGF1dG8gbGF5ZXIgPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0
ZSgqdGhpcywgY2xpZW50LCBoaWRlUm9vdExheWVyLCBzaXplKTsKKyAgICBpZiAoIWxheWVyKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgbV9sYXllcnMuYWRkKGxheWVyLT5pZGVudGlmaWVy
KCksIG1ha2VXZWFrUHRyKCpsYXllcikpOworICAgIHJldHVybiBsYXllcjsKK30KKwordm9pZCBT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjphZGRMYXllcihTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXImIGxheWVyKQoreworICAgIEFTU0VSVCghbV9sYXllcnMuY29udGFpbnMobGF5ZXIu
aWRlbnRpZmllcigpKSk7CisgICAgbV9sYXllcnMuYWRkKGxheWVyLmlkZW50aWZpZXIoKSwgbWFr
ZVdlYWtQdHIobGF5ZXIpKTsKK30KKwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyOjpyZW1vdmVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImIGxheWVyKQoreworICAg
IEFTU0VSVChtX2xheWVycy5jb250YWlucyhsYXllci5pZGVudGlmaWVyKCkpKTsKKyAgICBtX2xh
eWVycy5yZW1vdmUobGF5ZXIuaWRlbnRpZmllcigpKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lY2MzYWY3MGQ4
NWY4N2NjZmIzZGUyNjE0ZDNmODU5M2M4ZDQzNGYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgorI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0Owor
ICAgIH5TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworCisgICAg
dm9pZCBhZGRMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImKTsKKyAgICB2b2lkIHJlbW92
ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpOworCisgICAgdm9pZCBkaWRSZWNlaXZl
TGF5ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZUxheWVy
KFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50JiwgYm9vbCBoaWRlUm9vdExheWVyLCBX
ZWJDb3JlOjpJbnRTaXplKTsKKworcHJpdmF0ZToKKyAgICBIYXNoTWFwPFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcklkZW50aWZpZXIsIFdlYWtQdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPj4g
bV9sYXllcnM7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJF
QU0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388216</attachid>
            <date>2020-01-20 00:50:49 -0800</date>
            <delta_ts>2020-01-20 02:39:05 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-206286-20200120095047.patch</filename>
            <type>text/plain</type>
            <size>98372</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGViZWNjNzBjNGJjZDNk
YjI4YTIyNWIxMzdkZmVmYzY0MzFlMWE2ZS4uZTg1MTIxNDhiOWYyM2YzODM3Y2JiNDVkZjRmNjc2
ZGZkN2QxMTVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTAxLTIwICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
TWVkaWFTdHJlYW0gdmlkZW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjI4NgorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBBZGQgYSB3YXkgZm9yIFdlYktp
dCBsYXllciB0byBjcmVhdGUgaXRzIG93biBzcGVjaWZpYyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuCisgICAgICAgIFdlYktpdCBsYXllciBjYW4gc2V0IGEgZnVuY3Rpb24gcG9pbnRlciB0aGF0
IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLgorICAgICAg
ICBJZiBub25lIGlzIHByb3ZpZGVkLCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBpcyB1
c2VkLgorCisgICAgICAgIFVwZGF0ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMgdG8gbW9uaXRvciBpdHNlbGYgaXRzIHJvb3QgbGF5ZXIgYm91bmRzIGNoYW5nZS4KKyAgICAg
ICAgQ29udmVyc2VseSwgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgbm8gbG9uZ2VyIG1v
bml0b3JzIGl0cyByb290IGxheWVyIGJvdW5kcyBjaGFuZ2UuCisgICAgICAgIFRoaXMgcmVtb3Zl
cyB0aGUgbmVlZCBmb3IgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQgdG8gYmUgbm90
aWZpZWQgb2YgYm91bmRzIGNoYW5nZS4KKyAgICAgICAgV2UgYWRkIGFuIEFQSSB0byB1cGRhdGUg
dGhlIHJvb3QgbGF5ZXIgYm91bmRzIG9mIGEgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIg
YXMgd2VsbCwKKyAgICAgICAgdGhpcyBBUEkgYmVpbmcgdXNlZCBieSBHUFVQcm9jZXNzIHRvIG1p
cnJvciBjaGFuZ2VzIGRvbmUgdG8gV2ViUHJvY2VzcyByb290IGxheWVyLgorCisgICAgICAgIFdl
YlJUQyBpbmNvbWluZyB2aWRlbyB0cmFja3MgZG8gbm90IGhhdmUgcHJlc2VudGF0aW9uIHRpbWVz
dGFtcHMgc28gd2UgbWFyayB0aGVtIGFzIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUlt
bWVkaWF0ZWx5LgorICAgICAgICBUaGlzIGlzIGN1cnJlbnRseSBsb3N0IHdoZW4gZG9pbmcgSVBD
IGZyb20gV2ViUHJvY2VzcyB0byBOZXR3b3JrUHJvY2Vzcy4gQWRkIHRoaXMgaW5mb3JtYXRpb24g
Zm9yIGV2ZXJ5IGVucXVldWVkIHNhbXBsZSBpbiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci4KKyAgICAgICAgV2UgbWlnaHQgd2FudCBpbiB0aGUgZnV0dXJlIHRvIHNlcmlhbGl6ZSBhbGwg
YXR0YWNobWVudHMgb2YgdGhlIHNhbXBsZS4KKworICAgICAgICBNYW51YWxseSB0ZXN0ZWQuCisK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldENyZWF0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tOgorICAgICAgICAoLVtXZWJB
VlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIGludmFsaWRhdGVdKToKKyAgICAgICAg
KC1bV2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBzdGFydF0pOgorICAgICAg
ICAoLVtXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIHN0b3BdKToKKyAgICAg
ICAgKC1bV2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBvYnNlcnZlVmFsdWVG
b3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6
TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+
TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjplbnF1ZXVlU2FtcGxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMubW06CisgICAgICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5l
ciBpbml0V2l0aFBhcmVudDpdKToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5k
c0NoYW5nZUxpc3RlbmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZl
ckJvdW5kc0NoYW5nZUxpc3RlbmVyIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV2ViUm9vdFNh
bXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dlYlJv
b3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBzdG9wXSk6CisgICAgICAgICgtW1dl
YlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBvYnNlcnZlVmFsdWVGb3JLZXlQ
YXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5z
dXJlTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cm9vdExheWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlRGlzcGxheUxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cm9vdExh
eWVyQm91bmRzRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZE
b2N1bWVudEltYWdlLmNwcDoKKyAgICAgICAgVW5pZmllZCBidWlsZCBmaXguCisKIDIwMjAtMDEt
MjAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVj
ZSBhbiBhYnN0cmFjdCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDVjMzE5
OTE3MzhkNzU5YTk1MDFhZGUxNTU5NWMwMmYyMmZiN2JlNy4uNTM3NDFjZDU3YWQ1M2I0N2NhNzFk
YjVmYTNlZjRhMWNhNGQ5MjQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAyMC0wMS0y
MCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIE1lZGlhU3RyZWFtIHZpZGVvIHRyYWNrIHJlbmRlcmluZyBpbiBHUFVQcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYyODYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgSW1wbGVtZW50IFdl
YlByb2Nlc3MgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGFuZCBHUFVQcm9jZXNzIFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci4KKyAgICAgICAgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyIGlzIGEgd3JhcHBlciBhcm91bmQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
CisKKyAgICAgICAgQSBzeW5jaHJvbm91cyBJUEMgaXMgdXNlZCBhdCBjcmVhdGlvbiB0aW1lIG9m
IHRoZSBsYXllciB0byBtYWtlIHN1cmUgd2UgaGF2ZSBhIHNoYXJlZCBsYXllciBzeW5jaHJvbm91
c2x5LgorICAgICAgICBGdXR1cmUgcmVmYWN0b3Jpbmcgc2hvdWxkIGFsbG93IHRvIHJlbW92ZSB0
aGF0IGNvbnN0cmFpbnQgYXMgZG9uZSBpbiByZWd1bGFyIHZpZGVvIHBsYXlpbmcuCisKKyAgICAg
ICAgT3ZlcnJpZGUgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGNyZWF0ZSBmdW5jdGlvbiBwb2lu
dGVyIHdoZW4gcmVuZGVyaW5nIGlzIHRvIGJlIGRvbmUgaW4gR1BVUHJvY2Vzcy4KKworICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6UmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjp+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjb250ZXh0SUQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmJvdW5kcyBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRl
RGlzcGxheU1vZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OnVwZGF0ZUFmZmluZVRyYW5zZm9ybSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQm91bmRzQW5kUG9zaXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmZsdXNoKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaEFuZFJlbW92
ZUltYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjplbnF1ZXVlU2FtcGxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpjbGVhckVucXVldWVkU2FtcGxlcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24gY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllclN0YXR1c0RpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c3RyZWFtVGltZSBjb25zdCk6CisgICAgICAg
ICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6IEFk
ZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZUxheWVyTWVzc2FnZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6
OmNyZWF0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcjo6cmVsZWFzZUxheWVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAg
ICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5OgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxDR1JlY3Q+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENHUmVjdD46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dTaXpl
Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjpkZWNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmRlY29kZSk6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0
aW9uOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
flNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6ZGlkRmFpbCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlRGlzcGxheU1vZGUpOgorICAgICAgICAoV2ViS2l0OjpT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmJvdW5kcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQWZmaW5lVHJhbnNmb3JtKToKKyAgICAg
ICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVCb3VuZHNBbmRQb3Np
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2gp
OgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmZsdXNoQW5kUmVt
b3ZlSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVu
cXVldWVTYW1wbGUpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OmNsZWFyRW5xdWV1ZWRTYW1wbGVzKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpyb290TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OnNldERpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OmJvdW5kc0NoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbjogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cklkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZUxheWVyTWVzc2Fn
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmNy
ZWF0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlcjo6YWRkTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyOjpyZW1vdmVMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMjAtMDEtMTkgIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUgYSBtZXNzYWdlIHJlY2VpdmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCA4OTA2ZjU3
ZGM5ZDMyNGM5ZjBiZDFlZmI4NTBiMjBhOTUyMGUxOTBiLi44ZTJhYWRkMGNmZjdhNjBmMWQzMmZj
OGIzYjlhYzdhZjhjY2NhMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29j
b2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTIzMCw2ICsy
MzAsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zR0xBTkdMRS5jcHAgQG5v
LXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNw
cCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0dGlu
Zy5jcHAgQG5vLXVuaWZ5CiAKK3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBAbm8tdW5pZnkKIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
IEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGIyOTlkOTQxMmMyMTc0NmZiN2Q3M2FkMTE1MGVlN2UyODVjNDQwNTcu
LmQ1YjNjZWFlZGVjZDYzMDY4M2E4ZDgwZTk4MjJiM2RmNDFkNzYyMGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcyODUsNiAr
NzI4NSw3IEBACiAJCTNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9y
dFJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTVmlld3Bv
cnRSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGRkZGOUFCMTU5RDlCMDYw
MDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5
bGVSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWV3cG9ydFN0
eWxlUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMjRGQzgyM0NG
MjU0RjAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTA2MjZBNzIyODBBMjJBMDA2RDFCNTkgLyogSlNBdWRpb05vZGVDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBdWRpb05vZGVDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA3OTA4QTFGQzNFNEYyMDA2
MUIyN0EgLyogQ2xpZW50T3JpZ2luLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENsaWVudE9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA5MzgyODIz
NDc3OTlBMDA5NDI4QkEgLyogSlNBYm9ydENvbnRyb2xsZXJDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBYm9ydENvbnRyb2xsZXJDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYzNDgsNiArMTYzNDksNyBAQAogCQkJCTA3
NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aCAqLywKIAkJCQlDREJFQUVBQjE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91
cEFWRk9iakMuaCAqLywKIAkJCQlDREJFQUVBQTE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxl
Y3Rpb25Hcm91cEFWRk9iakMubW0gKi8sCisJCQkJNDEwMjRGQzgyM0NGMjU0RjAwRkRGOThFIC8q
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgKi8sCiAJCQkJNDE0NTk4QkUyM0M4QUFCODAw
MkI5Q0M4IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oICovLAogCQkJCUNEMzM2RjYzMTdG
QTBBNEQwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oICovLAogCQkJCTA3MDlENzkw
MUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTRlNjBiNjM3MGJhOWRkMDEyZmI2YzFmMWJkNDZhYjFmMjJiZmFkYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisKKyNpbmNsdWRlICJJbnRTaXplLmgi
CisjaW5jbHVkZSAiTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkxheWVyQ3JlYXRvciBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6Om1fbGF5ZXJDcmVhdG9yID0gbnVsbHB0cjsKK3ZvaWQgU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpzZXRDcmVhdG9yKExheWVyQ3JlYXRvciBjcmVhdG9yKQor
eworICAgIG1fbGF5ZXJDcmVhdG9yID0gY3JlYXRvcjsKK30KKworc3RkOjp1bmlxdWVfcHRyPFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUo
Q2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplKQoreworICAg
IGlmIChtX2xheWVyQ3JlYXRvcikKKyAgICAgICAgcmV0dXJuIG1fbGF5ZXJDcmVhdG9yKGNsaWVu
dCwgaGlkZVJvb3RMYXllciwgc2l6ZSk7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBV
U0UoQVZGT1VOREFUSU9OKQorICAgIHJldHVybiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6Y3JlYXRlKGNsaWVudCwgaGlkZVJvb3RMYXllciwgc2l6ZSk7CisjZWxzZQorICAgIHJldHVy
biBudWxscHRyOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuaAppbmRleCA0ZmY1N2Q3YzdkNTlhNzFkNTY3YmMyYWJkOWY2MTkyYjJi
ZmJjY2MwLi40MDFhNzI3MGRkZDY0MzZhMzQyZGJlYzQ3OGIwNmMwNGMyMmQ4NzIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC00MiwxMSArNDIs
MTMgQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+Q2xpZW50KCkgPSBk
ZWZhdWx0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyU3Rh
dHVzRGlkQ2hhbmdlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpID0gMDsKLSAgICAgICAgdmly
dHVhbCB2b2lkIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckJvdW5kc0RpZENoYW5nZShTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXImKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgV1RGOjpNZWRpYVRpbWUg
c3RyZWFtVGltZSgpIGNvbnN0ID0gMDsKICAgICB9OwogCi0gICAgZXhwbGljaXQgU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyKENsaWVudCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGUoQ2xpZW50JiwgYm9v
bCBoaWRlUm9vdExheWVyLCBJbnRTaXplKTsKKyAgICB1c2luZyBMYXllckNyZWF0b3IgPSBzdGQ6
OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiAoKikoQ2xpZW50JiwgYm9vbCBo
aWRlUm9vdExheWVyLCBJbnRTaXplKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBz
ZXRDcmVhdG9yKExheWVyQ3JlYXRvcik7CisKICAgICB2aXJ0dWFsIH5TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIGJvb2wgZGlkRmFpbCgpIGNvbnN0
ID0gMDsKQEAgLTY2LDcgKzY4LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5
ZXIqIHJvb3RMYXllcigpID0gMDsKIAogcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcihDbGllbnQmKTsKKwogICAgIFdlYWtQdHI8Q2xpZW50PiBtX2NsaWVu
dDsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgTGF5ZXJDcmVhdG9yIG1fbGF5ZXJDcmVhdG9yOwog
fTsKIAogaW5saW5lIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6U2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyKENsaWVudCYgY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKaW5kZXggNmQ4OWRmMWM2M2JiMzkzNmQ3
OTAyYjE5YzY1YTYxOWIzOGU3OGFkZS4uODhiMjI0YzgwOTFjMGM5NTk0NGZmZTEwNWI2MWMwMzE2
MjAyNGJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGZp
bmFsIDogcHVibGljIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciwgcHVibGljIENhbk1ha2VXZWFr
UHRyPExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZShDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNp
emUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI+IGNyZWF0ZShDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUpOwogCiAg
ICAgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyPiYmLCBDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUpOwog
ICAgIH5Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpOwpAQCAtNTQsNyArNTQsOCBAQCBw
dWJsaWM6CiAKICAgICBQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIoKSBmaW5hbDsKIAotcHJpdmF0
ZToKKyAgICB2b2lkIHVwZGF0ZVJvb3RMYXllckJvdW5kc0FuZFBvc2l0aW9uKENHUmVjdCwgQ0dQ
b2ludCk7CisKICAgICBib29sIGRpZEZhaWwoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgdXBk
YXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxheUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIp
IGZpbmFsOwpAQCAtNjksOCArNzAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5xdWV1ZVNhbXBs
ZShNZWRpYVNhbXBsZSYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXJFbnF1ZXVlZFNhbXBsZXMoKSBm
aW5hbDsKIAotICAgIHZvaWQgZW5zdXJlTGF5ZXJzKCk7Ci0KK3ByaXZhdGU6CiAgICAgdm9pZCBy
ZW1vdmVPbGRTYW1wbGVzRnJvbVBlbmRpbmdRdWV1ZSgpOwogICAgIHZvaWQgYWRkU2FtcGxlVG9Q
ZW5kaW5nUXVldWUoTWVkaWFTYW1wbGUmKTsKICAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRpb25X
aGVuUmVhZHlGb3JWaWRlb0RhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0KaW5kZXggYjgyN2QwMWM2ZTY3MDRh
ZDA2YTg1ODBiZTRkYmU3NTQxYmE3NDBkMy4uMzVlNTVmZDYxNzczZTM5Yjg0MjlkOTJmNzM4MDBm
NGFkMDc4NmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgPFF1
YXJ0ekNvcmUvQ0FUcmFuc2FjdGlvbi5oPgogCiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgor
I2ltcG9ydCA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAKICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5oPgogCkBAIC04NCw3ICs4NSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiAgICAgW19wYXJlbnQtPmRpc3BsYXlMYXllcigpIGFkZE9ic2VydmVyOnNlbGYg
Zm9yS2V5UGF0aDpAInN0YXR1cyIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3
IGNvbnRleHQ6bmlsXTsKICAgICBbX3BhcmVudC0+ZGlzcGxheUxheWVyKCkgYWRkT2JzZXJ2ZXI6
c2VsZiBmb3JLZXlQYXRoOkAiZXJyb3IiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlv
bk5ldyBjb250ZXh0Om5pbF07Ci0gICAgW19wYXJlbnQtPnJvb3RMYXllcigpIGFkZE9ic2VydmVy
OnNlbGYgZm9yS2V5UGF0aDpAImJvdW5kcyIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0
aW9uTmV3IGNvbnRleHQ6bmlsXTsKIH0KIAogLSAodm9pZClzdG9wCkBAIC05NiwxNCArOTYsMTMg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgICAgIFtfcGFyZW50LT5kaXNwbGF5TGF5
ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJzdGF0dXMiXTsKICAgICAgICAg
W19wYXJlbnQtPmRpc3BsYXlMYXllcigpIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpA
ImVycm9yIl07CiAgICAgfQotICAgIGlmIChfcGFyZW50LT5yb290TGF5ZXIoKSkKLSAgICAgICAg
W19wYXJlbnQtPnJvb3RMYXllcigpIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImJv
dW5kcyJdOwogfQogCiAtICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICop
a2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdl
IGNvbnRleHQ6KHZvaWQgKiljb250ZXh0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwog
ICAgIFVOVVNFRF9QQVJBTShrZXlQYXRoKTsKKyAgICBVTlVTRURfUEFSQU0oY2hhbmdlKTsKICAg
ICBBU1NFUlQoX3BhcmVudCk7CiAKICAgICBpZiAoIV9wYXJlbnQpCkBAIC0xMzIsMjkgKzEzMSw2
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgfQotCi0gICAgaWYgKFtbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFu
Z2VOb3RpZmljYXRpb25Jc1ByaW9yS2V5XSBib29sVmFsdWVdKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBpZiAoKENBTGF5ZXIgKilvYmplY3QgPT0gX3BhcmVudC0+cm9vdExheWVyKCkpIHsKLSAg
ICAgICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAImJvdW5kcyJdKSB7Ci0gICAgICAg
ICAgICBpZiAoIV9wYXJlbnQpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAg
ICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgICAgICAgICBfcGFyZW50LT5yb290TGF5
ZXJCb3VuZHNEaWRDaGFuZ2UoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBSZXRh
aW5QdHI8V2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lcj4oc2VsZildIHsKLSAg
ICAgICAgICAgICAgICBpZiAoIXByb3RlY3RlZFNlbGYtPl9wYXJlbnQpCi0gICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9wYXJlbnQt
PnJvb3RMYXllckJvdW5kc0RpZENoYW5nZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0K
LSAgICB9Ci0KIH0KIEBlbmQKIApAQCAtMTY5LDcgKzE0NSw3IEBAIHN0YXRpYyB2b2lkIHJ1bldp
dGhvdXRBbmltYXRpb25zKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCiAg
ICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcj4gTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShD
bGllbnQmIGNsaWVudCwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUpCitzdGQ6OnVu
aXF1ZV9wdHI8TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IExvY2FsU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwg
SW50U2l6ZSBzaXplKQogewogICAgIGF1dG8gc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID0gYWRv
cHROUyhbUEFMOjphbGxvY0FWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySW5zdGFuY2UoKSBpbml0
XSk7CiAgICAgaWYgKCFzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCkBAIC0yMzUsMTQgKzIxMSw2
IEBAIHZvaWQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmxheWVyRXJyb3JEaWRDaGFu
Z2UoKQogICAgIC8vIEZJWE1FOiBMb2cgZXJyb3IuCiB9CiAKLXZvaWQgTG9jYWxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OnJvb3RMYXllckJvdW5kc0RpZENoYW5nZSgpCi17Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm47Ci0g
ICAgbV9jbGllbnQtPnNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckJvdW5kc0RpZENoYW5nZSgqdGhp
cyk7Ci19Ci0KIFBsYXRmb3JtTGF5ZXIqIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpk
aXNwbGF5TGF5ZXIoKQogewogICAgIHJldHVybiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5n
ZXQoKTsKQEAgLTI4OSw2ICsyNTcsMTYgQEAgdm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6dXBkYXRlQm91bmRzQW5kUG9zaXRpb24oQ0dSZWN0IHZpZGVvQm91bmRzLAogICAgIH0p
OwogfQogCit2b2lkIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVSb290TGF5
ZXJCb3VuZHNBbmRQb3NpdGlvbihDR1JlY3QgdmlkZW9Cb3VuZHMsIENHUG9pbnQgcG9zaXRpb24p
Cit7CisgICAgcnVuV2l0aG91dEFuaW1hdGlvbnMoWyZdIHsKKyAgICAgICAgbV9yb290TGF5ZXIu
Z2V0KCkuYm91bmRzID0gdmlkZW9Cb3VuZHM7CisgICAgICAgIG1fcm9vdExheWVyLmdldCgpLnBv
c2l0aW9uID0gcG9zaXRpb247CisgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdl
dCgpLmJvdW5kcyA9IHZpZGVvQm91bmRzOworICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5nZXQoKS5wb3NpdGlvbiA9IHBvc2l0aW9uOworICAgIH0pOworfQorCiB2b2lkIExvY2Fs
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaCgpCiB7CiAgICAgW21fc2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyIGZsdXNoXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5kZXggZDlhZjI3
YTYwMTBkNzk4ODY2MjUyZWVlMzhhNWM1MDVlN2FlYjg1ZC4uNWJhZWM1NmFlYjlkZGJkMzMwM2Rl
ZWZhZTE2NTU4ODBmYjMxNTY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAgLTM2LDcg
KzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAKIE9CSkNfQ0xBU1MgQVZT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci1PQkpDX0NMQVNTIFdlYkFWU2FtcGxlQnVmZmVyU3Rh
dHVzQ2hhbmdlTGlzdGVuZXI7CitPQkpDX0NMQVNTIFdlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHND
aGFuZ2VMaXN0ZW5lcjsKIAogbmFtZXNwYWNlIFBBTCB7CiBjbGFzcyBDbG9jazsKQEAgLTgyLDYg
KzgyLDkgQEAgcHVibGljOgogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBm
aW5hbDsKICNlbmRpZgogCisgICAgUGxhdGZvcm1MYXllciogcm9vdExheWVyKCkgY29uc3Q7Cisg
ICAgdm9pZCByb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKTsKKwogcHJpdmF0ZToKICAgICAvLyBN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKIApAQCAtMjQ0LDEzICsyNDcsMTQgQEAgcHJpdmF0
ZToKIAogICAgIC8vIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50CiAgICAgdm9pZCBz
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRDaGFuZ2UoU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyJikgZmluYWw7Ci0gICAgdm9pZCBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJCb3VuZHNE
aWRDaGFuZ2UoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJikgZmluYWw7CiAKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBjb25z
dCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiAjZW5kaWYKIAorICAgIFJldGFpblB0cjxXZWJSb290
U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXI+IG1fYm91bmRzQ2hhbmdlTGlzdGVuZXI7
CisKICAgICBib29sIG1fdmlkZW9NaXJyb3JlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BsYXlp
bmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0KaW5kZXggZGY5ZTIwNTdhOGI2OTlkNzJlNjI2MjYwMzA4YTA5Y2VmNTY1MmQ0
NS4uNWI1MTNmNmEyOGE2ODIxNzM4YTc3NTE4MzZmYTFlMTcwOWQxNmZjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbQpAQCAtNDgsNiArNDgsOTEgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
Lmg+CiAKK0BpbnRlcmZhY2UgV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVy
IDogTlNPYmplY3QgeworICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDPiBfcGFyZW50OworfQorCistIChpZClpbml0V2l0aFBhcmVudDooV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKiljYWxsYmFjazsKKy0g
KHZvaWQpaW52YWxpZGF0ZTsKKy0gKHZvaWQpYmVnaW47CistICh2b2lkKXN0b3A7CitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIK
KworLSAoaWQpaW5pdFdpdGhQYXJlbnQ6KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQyopcGFyZW50Cit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkp
CisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfcGFyZW50ID0gbWFrZVdlYWtQdHIocGFyZW50
KTsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbc2Vs
ZiBpbnZhbGlkYXRlXTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKHZvaWQpaW52YWxp
ZGF0ZQoreworICAgIFtzZWxmIHN0b3BdOworICAgIF9wYXJlbnQgPSBudWxscHRyOworfQorCist
ICh2b2lkKWJlZ2luCit7CisgICAgQVNTRVJUKF9wYXJlbnQpOworICAgIEFTU0VSVChfcGFyZW50
LT5yb290TGF5ZXIoKSk7CisKKyAgICBbX3BhcmVudC0+cm9vdExheWVyKCkgYWRkT2JzZXJ2ZXI6
c2VsZiBmb3JLZXlQYXRoOkAiYm91bmRzIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRp
b25OZXcgY29udGV4dDpuaWxdOworfQorCistICh2b2lkKXN0b3AKK3sKKyAgICBpZiAoIV9wYXJl
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChfcGFyZW50LT5yb290TGF5ZXIoKSkKKyAg
ICAgICAgW19wYXJlbnQtPnJvb3RMYXllcigpIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0
aDpAImJvdW5kcyJdOworfQorCistICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3Ry
aW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICop
Y2hhbmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0Cit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRl
eHQpOworICAgIFVOVVNFRF9QQVJBTShrZXlQYXRoKTsKKyAgICBBU1NFUlQoX3BhcmVudCk7CisK
KyAgICBpZiAoIV9wYXJlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChbW2NoYW5nZSB2
YWx1ZUZvcktleTpOU0tleVZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSXNQcmlvcktleV0gYm9vbFZh
bHVlXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKChDQUxheWVyICopb2JqZWN0ID09IF9w
YXJlbnQtPnJvb3RMYXllcigpKSB7CisgICAgICAgIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJp
bmc6QCJib3VuZHMiXSkgeworICAgICAgICAgICAgaWYgKCFfcGFyZW50KQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAg
ICAgICAgICAgX3BhcmVudC0+cm9vdExheWVyQm91bmRzRGlkQ2hhbmdlKCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFtwcm90ZWN0ZWRTZWxmID0gUmV0YWluUHRyPFdlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHND
aGFuZ2VMaXN0ZW5lcj4oc2VsZildIHsKKyAgICAgICAgICAgICAgICBpZiAoIXByb3RlY3RlZFNl
bGYtPl9wYXJlbnQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAg
ICAgIHByb3RlY3RlZFNlbGYtPl9wYXJlbnQtPnJvb3RMYXllckJvdW5kc0RpZENoYW5nZSgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKK30KK0BlbmQKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIFBBTDsKIApAQCAtNjQsNiArMTQ5LDcgQEAgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMoTWVkaWEKICAgICAsIG1fbG9nZ2VyKHBsYXllci0+bWVkaWFQbGF5ZXJM
b2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nSWRl
bnRpZmllcigpKQogI2VuZGlmCisgICAgLCBtX2JvdW5kc0NoYW5nZUxpc3RlbmVyKGFkb3B0TlMo
W1tXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRo
UGFyZW50OnRoaXNdKSkKIHsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKIH0KQEAgLTgy
LDYgKzE2OCw4IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6fk1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQygpCiAgICAgICAgICAgICB0cmFjay0+cmVt
b3ZlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIH0KIAorICAgIFttX2JvdW5kc0NoYW5nZUxpc3RlbmVy
IGludmFsaWRhdGVdOworCiAgICAgZGVzdHJveUxheWVycygpOwogCiAgICAgYXV0byBhdWRpb1Ry
YWNrTWFwID0gV1RGTW92ZShtX2F1ZGlvVHJhY2tNYXApOwpAQCAtMjg0LDcgKzM3Miw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVMYXllcnMoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIHNpemUgPSBzbmFwcGVkSW50UmVjdChtX3BsYXll
ci0+cGxheWVyQ29udGVudEJveFJlY3QoKSkuc2l6ZSgpOwotICAgIG1fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyID0gTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSgqdGhpcywg
aGlkZVJvb3RMYXllcigpLCBzaXplKTsKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA9
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKCp0aGlzLCBoaWRlUm9vdExheWVyKCks
IHNpemUpOwogCiAgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikgewogICAgICAg
ICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgIkNyZWF0aW5nIHRoZSBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIgZmFpbGVkLiIpOwpAQCAtMjk1LDYgKzM4Myw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVMYXllcnMoKQogICAgIHVwZGF0ZURpc3Bs
YXlMYXllcigpOwogCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVv
TGF5ZXIobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpLCBzaXplKTsKKwor
ICAgIFttX2JvdW5kc0NoYW5nZUxpc3RlbmVyIGJlZ2luXTsKIH0KIAogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmRlc3Ryb3lMYXllcnMoKQpAQCAtMzY1LDYgKzQ1
NSwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cHJlcGFy
ZVRvUGxheSgpCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9CiAKK1BsYXRmb3JtTGF5
ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cm9vdExheWVyKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgPyBtX3NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci0+cm9vdExheWVyKCkgOiBudWxscHRyOworfQorCiBQbGF0Zm9ybUxh
eWVyKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRmb3JtTGF5ZXIo
KSBjb25zdAogewogICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgfHwgIW1fc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIoKSB8fCBtX2Rpc3BsYXlNb2RlID09IE5v
bmUpCkBAIC05NDgsNyArMTA0Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjp1cGRhdGVEaXNwbGF5TGF5ZXIoKQogICAgIGlmICghbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gYm91bmRzID0gbV9zYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXItPmJvdW5kcygpOworICAgIGF1dG8gYm91bmRzID0gcm9vdExh
eWVyKCkuYm91bmRzOwogICAgIGF1dG8gdmlkZW9Cb3VuZHMgPSBib3VuZHM7CiAgICAgaWYgKG1f
dmlkZW9Sb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQgfHwgbV92
aWRlb1JvdGF0aW9uID09IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0KQogICAgICAg
ICBzdGQ6OnN3YXAodmlkZW9Cb3VuZHMuc2l6ZS53aWR0aCwgdmlkZW9Cb3VuZHMuc2l6ZS5oZWln
aHQpOwpAQCAtOTU2LDcgKzEwNTEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6dXBkYXRlRGlzcGxheUxheWVyKCkKICAgICBtX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci0+dXBkYXRlQm91bmRzQW5kUG9zaXRpb24odmlkZW9Cb3VuZHMsIHsgYm91bmRzLnNp
emUud2lkdGggLyAyLCBib3VuZHMuc2l6ZS5oZWlnaHQgLyAyfSk7CiB9CiAKLXZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJC
b3VuZHNEaWRDaGFuZ2UoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJikKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpyb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKQog
ewogICAgIHVwZGF0ZURpc3BsYXlMYXllcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVNhbXBsZUFWRk9iakMuaAppbmRleCA0Yjk3YTlhMGMzMGFlMmY3ZmY2OGI0OWMyNzkxM2Qw
ZDNlMjRhMTRkLi5mODU1ZTE5ZTAzMTRmZGI0YTY2Y2FhYTdmOWQ4MjEwZDRlYzVlZTJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVNhbXBsZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaApAQCAtMzksNiArMzks
OCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+IGNyZWF0ZShD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIFZpZGVvUm90YXRpb24gcm90YXRpb24gPSBWaWRlb1Jv
dGF0aW9uOjpOb25lLCBib29sIG1pcnJvcmVkID0gZmFsc2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTWVkaWFTYW1wbGVBVkZPYmpDKHNhbXBsZSwgcm90YXRpb24sIG1pcnJvcmVkKSk7IH0KICAg
ICBzdGF0aWMgUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gY3JlYXRlSW1hZ2VTYW1wbGUoVmVj
dG9yPHVpbnQ4X3Q+JiYsIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0
KTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldEFzRGlzcGxheUltbWVkaWF0
ZWx5KE1lZGlhU2FtcGxlJik7CisKICAgICBSZWZQdHI8SlNDOjpVaW50OENsYW1wZWRBcnJheT4g
Z2V0UkdCQUltYWdlRGF0YSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTWVkaWFUaW1lIHByZXNl
bnRhdGlvblRpbWUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhU2FtcGxlQVZGT2JqQy5tbQppbmRleCAxNzE1MWE1ZTc3YzQwZjhkNTIzMzdmNDViNjQ3YTYy
MjNhOTFjZGQ0Li5lODk0YjkxNGM3NjcxODE4NjRkMTEwMDcwNjhhODNmZTI4MWI2YzUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVNhbXBsZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCkBAIC0zMTEsNiAr
MzExLDE1IEBAIFJlZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBsZUFWRk9i
akM6OmdldFJHQkFJbWFnZURhdGEoKSBjb25zdAogI2VuZGlmCiB9CiAKK3ZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShNZWRpYVNhbXBsZSYgc2FtcGxlKQor
eworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1w
bGVCdWZmZXIsIHRydWUpOworICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJyYXlHZXRD
b3VudChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7CisgICAgICAgIENGTXV0YWJsZURpY3Rpb25h
cnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJl
Zj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7CisgICAgICAg
IENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5
X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOworICAgIH0KK30KKwogU3RyaW5n
IE1lZGlhU2FtcGxlQVZGT2JqQzo6dG9KU09OU3RyaW5nKCkgY29uc3QKIHsKICAgICBhdXRvIG9i
amVjdCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCmluZGV4IGNmMGRl
NmI4NmM2YTFjMDMzNzM4OWU5ZGJhZDVhY2Y1ODUxMTEzYjUuLmYzYzMwNGIyYzNiZWNiOGZhMzc5
MTdkNDQ3MTI3OTU5YTg2ZWM2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCkBAIC00Miw2ICs0Miw3IEBA
CiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQ29u
dGV4dC5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR1BERkRvY3VtZW50Lmg+CisjaW5jbHVk
ZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi9SQU1TaXplLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4
IDYxODIwNmJkYzk5NDdkOTgyZGU1ZGNiY2I1MWU3Y2YzMDk2YTUxODIuLjMwNDExYjE0OWM5N2Vi
NTliYmYyNzAyNWJhZjNlZmY3OTJlODEzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI0LDYgKzI0LDggQEAgJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVz
c2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMv
TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCkBAIC0xMDks
NiArMTExLDcgQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENSZW1vdGVDb2RlY3Mu
bWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3Mv
R2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIu
bWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IDlhZmI1MjI3Yjc2OTQ3OTMyY2UzNmMwMjc0NDkyNjk2YmZkNTU5MTYuLjVj
OTJiODEzMzUzZGY3MWZlNmQ2ODUwZjM3YzRmNzNmY2NmNzFlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTU0LDYgKzE1NCwxMiBA
QCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RS
ZWdpc3RyeU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWVzc2FnZXNSZXBsaWVzLmgKQEAgLTE2Myw2ICsxNjksOSBAQCAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eU1lc3NhZ2VzUmVwbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZVdlYkluc3BlY3RvclVJTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2Vz
UmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
ZWNJdGVtU2hpbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlY0l0ZW1TaGltUHJveHlN
ZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDUxMmVkZWU4
OTgwMjczNTk1MzFmMDkxMDlhM2M5ZjhlNGViNDM3NGMuLjY4MDY1Y2U4YWU0ZTU0NjdiMWQwMjli
NWM5ZTQxM2JiMTdhMTJiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE1MSw5
ICsxNTEsMTIgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUmVtb3RlTWVkaWFSZWNvcmRl
ck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyIFwKICAgICBSZW1vdGVP
YmplY3RSZWdpc3RyeSBcCisgICAgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIFwKKyAg
ICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvciBcCiAgICAgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkgXAogICAgIFJl
bW90ZVdlYkluc3BlY3RvclVJIFwKKyAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgXAogICAg
IFNlY0l0ZW1TaGltUHJveHkgXAogICAgIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sgXAogICAgIFNt
YXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDQ2YjEzNDk4ODll
NGRmNTA4MGMzYmIxYTE3YTg2MWRjNGU0Yjc0YmIuLmMwOTQ4ZDA5OTViOTZjYjUzZTUzZjRhN2Fj
ZTNmMzg2Y2I1MTM4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ5LDYgKzQ5LDkgQEAKICNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
LmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlck1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgiCiAj
aW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgpAQCAtMTYyLDYgKzE2NSwxNCBAQCBS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXImIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmF1ZGlvVHJhYwogCiAgICAgcmV0dXJuICptX2F1ZGlvVHJhY2tSZW5kZXJl
ck1hbmFnZXI7CiB9CisKK1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIo
KQoreworICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKQorICAgICAg
ICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+KG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpOwor
CisgICAgcmV0dXJuICptX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7Cit9CiAjZW5k
aWYKICNlbmRpZgogCkBAIC0yMDksNiArMjIwLDE0IEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
CiAgICAgICAgIGF1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXIoKS5kaWRSZWNlaXZlUmVuZGVyZXJN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Cisg
ICAgICAgIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKS5kaWRSZWNlaXZlTWVzc2Fn
ZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
KyAgICAgICAgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpLmRpZFJlY2VpdmVMYXll
ck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAj
ZW5kaWYKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQpAQCAt
MjMxLDYgKzI1MCwxMiBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3RpbwogICAgICAgICB1c2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbUdQVVByb2Nl
c3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAg
ICAgIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKS5kaWRSZWNlaXZlU3luY01lc3Nh
Z2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAjZW5kaWYKIAogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKaW5kZXggY2MyMTEwYjVmYTIxOTQ1YzZjNDM5ODhjYzg5MTVmOWM1ODUx
ZjY5ZS4uYjk4ZDYyZjA2MjE0OTY4NmFhYjRmMDA1Yzg1M2RjYzY0Y2Y3ZjJjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CkBAIC00NCw2ICs0NCw3IEBAIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3Mg
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjsKK2NsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiBjbGFz
cyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OwogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzCkBAIC03Niw2ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXImIG1lZGlhUmVjb3JkZXJNYW5hZ2VyKCk7CiAjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciYgYXVk
aW9UcmFja1JlbmRlcmVyTWFuYWdlcigpOworICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKTsKICNlbmRpZgog
I2VuZGlmCiAKQEAgLTk4LDYgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyPiBtX3JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2Vy
OwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyPiBtX2F1ZGlvVHJhY2tSZW5kZXJlck1h
bmFnZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKICNlbmRpZgogI2Vu
ZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ1NmQ2ZmVjYTkyMmM4NDBkODdmMGFm
OWNlZjg4YTIxZmY0MjQ1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcApAQCAtMCwwICsx
LDE0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFTYW1wbGVBVkZPYmpDLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1Nh
bXBsZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9u
LCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKK3sKKyAgICBhdXRvIGxheWVyID0g
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4obmV3IFJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24p
LCBoaWRlUm9vdExheWVyLCBzaXplKSk7CisgICAgcmV0dXJuIGxheWVyLT5tX3NhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllciA/IFdURk1vdmUobGF5ZXIpIDogbnVsbHB0cjsKK30KKworUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplKQor
ICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92
ZShjb25uZWN0aW9uKSkKKyAgICAsIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKExvY2FsU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoKnRoaXMsIGhpZGVSb290TGF5ZXIsIHNpemUp
KQoreworICAgIEFTU0VSVChtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik7CisgICAgaWYgKCFt
X3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sYXll
ckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxI
b3N0aW5nUHJvY2VzcygpOworICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVy
KG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIoKSk7Cit9CisKK1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6flJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigp
Cit7Cit9CisKK09wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4gUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpjb250ZXh0SUQoKQoreworICAgIHJldHVybiBtX2xheWVySG9zdGlu
Z0NvbnRleHQtPmNvbnRleHRJRCgpOworfQorCitDR1JlY3QgUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpib3VuZHMoKSBjb25zdAoreworICAgIHJldHVybiBtX3NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci0+Ym91bmRzKCk7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOjp1cGRhdGVEaXNwbGF5TW9kZShib29sIGhpZGVEaXNwbGF5TGF5ZXIsIGJvb2wgaGlk
ZVJvb3RMYXllcikKK3sKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+dXBkYXRlRGlz
cGxheU1vZGUoaGlkZURpc3BsYXlMYXllciwgaGlkZVJvb3RMYXllcik7Cit9CisKK3ZvaWQgUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVBZmZpbmVUcmFuc2Zvcm0oQ0dBZmZp
bmVUcmFuc2Zvcm0gdHJhbnNmb3JtKQoreworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LT51cGRhdGVBZmZpbmVUcmFuc2Zvcm0odHJhbnNmb3JtKTsKK30KKwordm9pZCBSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKENHUmVjdCBib3Vu
ZHMsIENHUG9pbnQgcG9zaXRpb24pCit7CisgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIt
PnVwZGF0ZVJvb3RMYXllckJvdW5kc0FuZFBvc2l0aW9uKGJvdW5kcywgcG9zaXRpb24pOworfQor
Cit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2goKQoreworICAgIG1f
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5mbHVzaCgpOworfQorCit2b2lkIFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2hBbmRSZW1vdmVJbWFnZSgpCit7CisgICAgbV9zYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXItPmZsdXNoQW5kUmVtb3ZlSW1hZ2UoKTsKK30KKwordm9pZCBS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCit7CisgICAgbV9tZWRpYVRpbWUgPSByZW1v
dGVTYW1wbGUudGltZSgpOworCisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1f
aW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gcmVtb3RlU2FtcGxlLnZpZGVv
Rm9ybWF0KCkpCisgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVy
U2Vzc2lvblZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpOworCisgICAgQVNT
RVJUKG1faW1hZ2VUcmFuc2ZlclNlc3Npb24pOworICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vz
c2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBzYW1wbGUgPSBtX2ltYWdlVHJhbnNm
ZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUuc3VyZmFjZSgpLCByZW1v
dGVTYW1wbGUudGltZSgpLCByZW1vdGVTYW1wbGUuc2l6ZSgpKTsKKworICAgIEFTU0VSVChzYW1w
bGUpOworICAgIGlmICghc2FtcGxlKQorICAgICAgICByZXR1cm47CisKKyAgICBNZWRpYVNhbXBs
ZUFWRk9iakM6OnNldEFzRGlzcGxheUltbWVkaWF0ZWx5KCpzYW1wbGUpOworICAgIG1fc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLT5lbnF1ZXVlU2FtcGxlKCpzYW1wbGUpOworfQorCit2b2lkIFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y2xlYXJFbnF1ZXVlZFNhbXBsZXMoKQorewor
ICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5jbGVhckVucXVldWVkU2FtcGxlcygpOwor
fQorCitJUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24u
cHRyKCk7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpzYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyJikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6OlNldERpZEZhaWwgeyBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+ZGlkRmFpbCgpIH0p
OworfQorCitXVEY6Ok1lZGlhVGltZSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnN0
cmVhbVRpbWUoKSBjb25zdAoreworICAgIC8vIFRoaXMgaXMgb25seSBhbiBhcHByb3hpbWF0aW9u
IHdoaWNoIHdpbGwgY2xlYXIgYWxsIHNhbXBsZXMgZW5xdWV1ZWQgaW4gbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIgZXhjZXB0IHRoZSBvbmUgYmVpbmcgcHVzaGVkLgorICAgIHJldHVybiBtX21l
ZGlhVGltZTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg1YTY2OTc4NzE3
NmIxMzcxOWNiYjhmZTk5M2NkYzFiY2U3OWNlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgK
QEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDsKK2NsYXNzIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOworY2xh
c3MgUmVtb3RlVmlkZW9TYW1wbGU7Cit9OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIDogcHVibGljIFdlYkNvcmU6OlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHBy
aXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcj4gY3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+JiYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6
ZSk7CisgICAgflJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpOworCisgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgT3B0aW9uYWw8TGF5ZXJIb3N0aW5n
Q29udGV4dElEPiBjb250ZXh0SUQoKTsKKyAgICBDR1JlY3QgYm91bmRzKCkgY29uc3Q7CisgICAg
Citwcml2YXRlOgorICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBib29sIGhp
ZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUpOworCisgICAgdm9pZCB1cGRhdGVEaXNwbGF5
TW9kZShib29sIGhpZGVEaXNwbGF5TGF5ZXIsIGJvb2wgaGlkZVJvb3RMYXllcik7CisgICAgdm9p
ZCB1cGRhdGVBZmZpbmVUcmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm0pOworICAgIHZvaWQgdXBk
YXRlQm91bmRzQW5kUG9zaXRpb24oQ0dSZWN0LCBDR1BvaW50KTsKKyAgICB2b2lkIGZsdXNoKCk7
CisgICAgdm9pZCBmbHVzaEFuZFJlbW92ZUltYWdlKCk7CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxl
KFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOworICAgIHZvaWQgY2xlYXJFbnF1ZXVlZFNh
bXBsZXMoKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlv
biogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBt
ZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRp
Zmllci50b1VJbnQ2NCgpOyB9CisKKyAgICAvLyBXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OkNsaWVudAorICAgIHZvaWQgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyU3RhdHVzRGlk
Q2hhbmdlKFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpIGZpbmFsOworICAgIFdU
Rjo6TWVkaWFUaW1lIHN0cmVhbVRpbWUoKSBjb25zdCBmaW5hbDsKKworICAgIFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VU
cmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdDb250ZXh0
PiBtX2xheWVySG9zdGluZ0NvbnRleHQ7CisgICAgV1RGOjpNZWRpYVRpbWUgbV9tZWRpYVRpbWU7
Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI3YmJlZmZhMzViY2Q2MDZjNDg4ZTFmNmMxYmJhZWQ4YTFmZjY5YmYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM2IEBACisjIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CittZXNzYWdlcyAtPiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgTm90UmVmQ291bnRl
ZCB7CisgICAgVXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxheUxheWVyLCBib29sIGhp
ZGVSb290TGF5ZXIpCisgICAgVXBkYXRlQWZmaW5lVHJhbnNmb3JtKENHQWZmaW5lVHJhbnNmb3Jt
IHRyYW5zZm9ybSkKKyAgICBVcGRhdGVCb3VuZHNBbmRQb3NpdGlvbihDR1JlY3QgYm91bmRzLCBD
R1BvaW50IHBvc2l0aW9uKQorICAgIEZsdXNoKCkKKyAgICBGbHVzaEFuZFJlbW92ZUltYWdlKCkK
KyAgICBFbnF1ZXVlU2FtcGxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlIHNhbXBsZSkKKyAg
ICBDbGVhckVucXVldWVkU2FtcGxlcygpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI5YmU0OWNhYzcyZjQ0
ZTcxNzk3N2M0YTQ2NmUyZTI3OWYxYjE0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCisKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9f
VFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisj
aW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29u
bmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQoreworfQor
CitSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjp+UmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlcigpID0gZGVmYXVsdDsKKwordm9pZCBSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChh
dXRvKiBsYXllciA9IG1fbGF5ZXJzLmdldChtYWtlT2JqZWN0SWRlbnRpZmllcjxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKSkK
KyAgICAgICAgbGF5ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwor
fQorCisvLyBGSVhNRTogV2Ugc2hvdWxkIHJlZmFjdG9yIGNvZGUgdG8gdXNlIGFuIGFzeW5jaHJv
bm91cyBJUEMuCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmNy
ZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwg
Ym9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUsIE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllckRlbGF5ZWRSZXBseSYmIHJlcGx5
KQoreworICAgIEFTU0VSVCghbV9sYXllcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1
dG8gbGF5ZXIgPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShpZGVudGlm
aWVyLCBtX2Nvbm5lY3Rpb24uY29weVJlZigpLCBoaWRlUm9vdExheWVyLCBzaXplKTsKKyAgICBp
ZiAoIWxheWVyKQorICAgICAgICByZXR1cm4gcmVwbHkoeyB9LCB7IH0pOworCisgICAgcmVwbHko
bGF5ZXItPmNvbnRleHRJRCgpLCBsYXllci0+Ym91bmRzKCkpOworICAgIG1fbGF5ZXJzLmFkZChp
ZGVudGlmaWVyLCBXVEZNb3ZlKGxheWVyKSk7Cit9CisKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlcjo6cmVsZWFzZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9sYXllcnMuY29udGFpbnMo
aWRlbnRpZmllcikpOworICAgIG1fbGF5ZXJzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKworfQor
CisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5B
QkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjliMzBjNzYxNjIzZGQ5
NDhkMjliZTBmMzdmMGFkMGY0N2U1YTlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
LmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNL
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oIgorI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIu
aCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENv
bm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOworCitjbGFzcyBSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyIGZpbmFsIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGlj
aXQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0
aW9uPiYmKTsKKyAgICB+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiBlbmNvZGVy
KSB7IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCBlbmNvZGVyKTsg
fQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOworCisgICAgdm9pZCBj
cmVhdGVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLCBib29sIGhpZGVS
b290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUsIE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllckRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lk
IHJlbGVhc2VMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyKTsKKworICAg
IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBIYXNoTWFwPFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI+PiBtX2xheWVyczsKK307CisKK30KKworI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDQ5NTMzYjUxNjVk
ZThjNzdiZmU0NjJmNzk4YTMzZDE2OWUwNzc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3Nh
Z2VzIC0+IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgTm90UmVmQ291bnRl
ZCB7CisgICAgQ3JlYXRlTGF5ZXIoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVu
dGlmaWVyIGlkLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUgc2l6ZSkgLT4g
KE9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBjb250ZXh0SUQsIENHUmVj
dCBib3VuZHMpIFN5bmNocm9ub3VzCisgICAgUmVsZWFzZUxheWVyKFdlYktpdDo6U2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAyNTY0ZjUyODgyOGY1MWQwM2NkZDMwYzdm
Zjg3NmQyNWRkYTU0NWNhLi5kYzllMTRmNWFjZGY2OTg0MTEzN2JmY2IxMGU0ZTY0NmNjNDJlYTI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIyNSw2ICsy
MjUsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAg
ICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UlRDRW5jb2Rl
cklkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJL
aXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggODRkNDM5YzUwNTQwNGI3ZTU5MDViMzZlN2Rl
Yzc2ODlkZGZhOTQ1NC4uN2JmNzFjMTdhYmRkM2Q4YjEzMTkwMjIwMDU4YzlmOWMyMTlmNjBiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQ0
Niw2ICs0NDYsMjYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpL
ZXlwcmVzc0NvbW1hbmQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCYpOwogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3Jl
OjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShEZWNvZGVyJik7CiB9OworCit0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIENHUG9pbnQpOworICAgIHN0YXRpYyBPcHRpb25hbDxDR1BvaW50PiBkZWNvZGUoRGVj
b2RlciYpOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxDR1NpemU+IHsK
KyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHU2l6ZSk7CisgICAgc3RhdGljIE9w
dGlvbmFsPENHU2l6ZT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8Q0dSZWN0PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBDR1JlY3QpOworICAgIHN0YXRpYyBPcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7
Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3Jt
PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7
CisgICAgc3RhdGljIE9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBkZWNvZGUoRGVjb2RlciYp
OworfTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IDVi
YTUyYzkwYWViMGZlYWQ2ZjQ0OGQ3MDg2ZjU5YTJhZTZlOWU5NTIuLjhjYmRhZmJlMTQ2ZmM3NzFj
MjlmM2FjOWIxYWUxYWFlOGI0NmE4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAtNTQ4LDYgKzU0OCw3OSBAQCBP
cHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPjo6ZGVjbwogICAgIHJldHVybiBXVEZNb3ZlKGNvbW1hbmQpOwogfQog
Cit2b2lkIEFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENH
UmVjdCByZWN0KQoreworICAgIGVuY29kZXIgPDwgcmVjdC5vcmlnaW4gPDwgcmVjdC5zaXplOwor
fQorCitPcHRpb25hbDxDR1JlY3Q+IEFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOworICAgIGRlY29k
ZXIgPj4gb3JpZ2luOworICAgIGlmICghb3JpZ2luKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgT3B0aW9uYWw8Q0dTaXplPiBzaXplOworICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICBpZiAo
IXNpemUpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gQ0dSZWN0IHsgKm9yaWdp
biwgKnNpemUgfTsKK30KKwordm9pZCBBcmd1bWVudENvZGVyPENHU2l6ZT46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBDR1NpemUgc2l6ZSkKK3sKKyAgICBlbmNvZGVyIDw8IHNpemUud2lkdGgg
PDwgc2l6ZS5oZWlnaHQ7Cit9CisKK09wdGlvbmFsPENHU2l6ZT4gQXJndW1lbnRDb2RlcjxDR1Np
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBDR1NpemUgc2l6ZTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHNpemUud2lkdGgpKQorICAgICAgICByZXR1cm4geyB9OworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZS5oZWlnaHQpKQorICAgICAgICByZXR1cm4geyB9Owor
ICAgIHJldHVybiBzaXplOworfQorCit2b2lkIEFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBDR1BvaW50IHBvaW50KQoreworICAgIGVuY29kZXIgPDwgcG9p
bnQueCA8PCBwb2ludC55OworfQorCitPcHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENH
UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBDR1BvaW50IHBvaW50Owor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCisgICAgICAgIHJldHVybiB7IH07Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICByZXR1cm4gcG9pbnQ7Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9y
bT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0p
Cit7CisgICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zv
cm0uYyA8PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OworfQor
CitPcHRpb25hbDxDR0FmZmluZVRyYW5zZm9ybT4gQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5z
Zm9ybT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIENHQWZmaW5lVHJhbnNmb3Jt
IHRyYW5zZm9ybTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS5hKSkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS5iKSkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS5jKSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS5k
KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9y
bS50eCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFu
c2Zvcm0udHkpKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiB0cmFuc2Zvcm07Cit9
CisKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiBjb250ZW50
RmlsdGVyVW5ibG9ja0hhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA5NzlmYTY1YzQ0ZGRkOGE0ZTIy
MTQ1MWUyNWRiZjBiYjgzNmRiMmQ4Li4zZGEyODAwYzljNWY3ZWFlOWZhZTJmMzZkYWQwMTMxMjM3
Zjg5ZTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI4LDYgKzI4LDggQEAgR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCiBHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwCiBHUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAogR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwCitHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCitHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1RyYWNrUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApA
QCAtNTI5LDYgKzUzMSw4IEBAIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3Mu
Y3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcAogV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAorV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKK1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAogCiBXZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGIyMzgzMmFiMjdh
NzRiNTdjMjY1ZjkzMjlhMGJlMmNjMGYwOTljYjkuLjZhOGUyZTY5MDVjMzViYzFiYzQ4YzQ2OWE2
ZWM2Yzg1ZDVmODI0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTY0NCw1ICs2NDQsOCBA
QCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRp
YVJlY29yZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2VpdmVy
LmNwcAogVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzE4
MWQwZjUzNzNhODc2ZjY3ODgwYmM2YjkyNWYxOWIwODgwZGI3ZC4uNmFkZWE1ODUwZjg4NjQzYWY3
MGY4OTUwMzFiMzg2MTU2YjJlNDNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMzAzLDYgKzMzMDMsOCBAQAogCQkzRjkxNUMwRTFG
NTY0REVEMDAxODNDRTkgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlcklPUy5tbTsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGOTE1QzBGMUY1
NjRERUQwMDE4M0NFOSAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaDsgcGF0aCA9IGlvcy9m
dWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJM0ZCMDhFNDIxRjYwQjI0MDAwNUU1MzEyIC8qIGlPUy54Y2Fzc2V0
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRl
ci5hc3NldGNhdGFsb2c7IHBhdGggPSBpT1MueGNhc3NldHM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxMDI0RkMwMjNDRjEwNDUwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDEwMjRGQzEyM0NGMTA0NTAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MDNGQkExMjA2MUJEQjcwMEMyRUFGOCAvKiBOZXR3b3JrTG9hZENoZWNrZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0xvYWRDaGVja2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMDNGQkEyMjA2MUJEQjgwMEMyRUFGOCAvKiBOZXR3b3JrTG9h
ZENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29y
a0xvYWRDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNDgyQ0Ix
REREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUlRDTmV0d29yay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0zNDM0LDYgKzM0MzYsMTYgQEAKIAkJNDFGQ0Q2QUQyM0NDQzI2MDAwQzYyNTY3IC8qIEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxRkNENkFFMjNDQ0MyNjEwMEM2MjU2NyAvKiBBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxRkNENkFGMjNDQ0MyNjEwMEM2MjU2NyAvKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxRkNENkIzMjNDREM2MDQwMEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkI0MjND
RENBQzIwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkI1MjNDREUxQzYwMEM2MjU2
NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDFGQ0Q2QjYyM0NERTFDNjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkI3
MjNDREU1M0QwMEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QjgyM0NERTUzRTAwQzYyNTY3IC8qIFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkJDMjNDRTAzMTgw
MEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QkQyM0NFMDQzRjAwQzYy
NTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QkUy
M0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxRkNENkJGMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDQ1MEFFQkYxREMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZE1lbW9yeUNvY29hLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1OTk4NDEyMjgzM0U2MDAwRTYxMzczIC8q
IFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ5RDkw
RDgyMUZENjNGRTAwRjY3N0MwIC8qIExvY2FsQXV0aGVudGljYXRpb25Tb2Z0TGluay5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsQXV0aGVudGljYXRpb25T
b2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyNDIsNiArNzI1NCwx
MiBAQAogCQkJCTQxNzZFODkyMjNDMzRENkUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaCAqLywKIAkJCQk0MTcyMTk4QzIzQjYxMkU4MDBBRTU2ODYgLyogUlRDRGVjb2RlcklkZW50
aWZpZXIuaCAqLywKIAkJCQk0MTU4NjQ5QTIzQkUwOTI0MDBBMEE2MUUgLyogUlRDRW5jb2Rlcklk
ZW50aWZpZXIuaCAqLywKKwkJCQk0MUZDRDZCNzIzQ0RFNTNEMDBDNjI1NjcgLyogU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLmNwcCAqLywKKwkJCQk0MUZDRDZCMzIzQ0RDNjA0MDBDNjI1NjcgLyog
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggKi8sCisJCQkJNDFGQ0Q2QjgyM0NERTUzRTAwQzYy
NTY3IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiAqLywKKwkJCQk0MUZD
RDZCQzIzQ0UwMzE4MDBDNjI1NjcgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmll
ci5oICovLAorCQkJCTQxMDI0RkMxMjNDRjEwNDUwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmNwcCAqLywKKwkJCQk0MTAyNEZDMDIzQ0YxMDQ1MDBGREY5OEUgLyog
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSB3
ZWJydGM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNzI2NCw2ICs3MjgyLDEyIEBA
CiAJCQkJNDE3NkU4OUEyM0MzNkY3MTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5h
Z2VyLmNwcCAqLywKIAkJCQk0MTc2RTg5OTIzQzM2RDhFMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFS
ZWNvcmRlck1hbmFnZXIuaCAqLywKIAkJCQk0MTc2RTg5QjIzQzM3MjIyMDAzRTgzRkUgLyogUmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJNDFGQ0Q2QjUyM0NE
RTFDNjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgKi8sCisJ
CQkJNDFGQ0Q2QjQyM0NEQ0FDMjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5oICovLAorCQkJCTQxRkNENkI2MjNDREUxQzYwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJNDFGQ0Q2QkUyM0NFMDQ0MDAw
QzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwICovLAor
CQkJCTQxRkNENkJGMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmggKi8sCisJCQkJNDFGQ0Q2QkQyM0NFMDQzRjAwQzYyNTY3IC8qIFJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkpOwog
CQkJcGF0aCA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmlu
ZGV4IGFjZjUzYTgzMWYzZjJiNmI1ZWZlYTkyYTY3N2FmODhiMjU2NzVkOGUuLjhkZmY1MGYzMDg4
ZWQ0NWM1OTBlYzgxZTJjMDlhMTM4YmE3YTUzNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKICNpbmNs
dWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC02NSw2ICs2NiwxNSBAQCB2b2lkIEdQVVByb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpT
dHJpbgogewogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19UUkFDSykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIm
IEdQVVByb2Nlc3NDb25uZWN0aW9uOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkK
K3sKKyAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcikKKyAgICAgICAg
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyPigpOworICAgIHJldHVybiAqbV9zYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyOworfQorI2VuZGlmCisKIHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpIHsKQEAgLTc4LDggKzg4LDEzIEBAIHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpECiAgICAgICAg
ICAgICBjYXB0dXJlTWFuYWdlci0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25u
ZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgotICAgIAor
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBzYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZUxheWVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKFZJREVPX1RSQUNLKQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCiAj
aWYgVVNFKExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSkgewogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJS
VENDb2RlY3MoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApp
bmRleCBhOGFkNGZlZTg2YjI2NTliNGFmZmI3YzQ4NGRhMTgxYzNiZWYyN2QwLi40NjAwZTUzYmIy
ODRkNzQ4Y2YzOTExYjk0ZGI1NTk5YTljYjQ1ZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCIKICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01MSw2
ICs1Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF1ZGl0VG9rZW4oT3B0aW9uYWw8YXVkaXRf
dG9rZW5fdD4gYXVkaXRUb2tlbikgeyBtX2F1ZGl0VG9rZW4gPSBhdWRpdFRva2VuOyB9CiAgICAg
T3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVkaXRUb2tlbigpIGNvbnN0IHsgcmV0dXJuIG1fYXVk
aXRUb2tlbjsgfQogI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19U
UkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyJiBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CisjZW5kaWYKIAog
cHJpdmF0ZToKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIpOwpAQCAtNjYsNiArNzAsOSBAQCBwcml2YXRlOgogI2lmIEhBVkUoQVVESVRfVE9LRU4p
CiAgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbV9hdWRpdFRva2VuOwogI2VuZGlmCisjaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA1Yjdi
ZjY5NDljZGVjMjk4ZTFjZDFkMWY2YmZhYjBhMTM1NGNkMjExLi5lZDhmZDAyMDhkNmM5YmE2NjJj
Zjk3ZDVkZmVkNDM3MDE2MzBmY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBA
IC0yNTMsOCArMjUzLDEyIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQ
cmVmZXJlbmNlcyhjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgUmVtb3RlTWVkaWFQbGF5
ZXJTdXBwb3J0OjpzZXRSZWdpc3RlclJlbW90ZVBsYXllckNhbGxiYWNrKHNldHRpbmdzLnVzZUdQ
VVByb2Nlc3NGb3JNZWRpYSgpID8gV1RGTW92ZShyZWdpc3RlckVuZ2luZSkgOiBSZW1vdGVNZWRp
YVBsYXllclN1cHBvcnQ6OlJlZ2lzdGVyUmVtb3RlUGxheWVyQ2FsbGJhY2soKSk7CiAKICNpZiBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQotICAgIGlmIChzZXR0aW5ncy51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSkKKyAgICBpZiAo
c2V0dGluZ3MudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkpIHsKICAgICAgICAgV2ViQ29yZTo6QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldENyZWF0b3IoV2ViS2l0OjpBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcjo6Y3JlYXRlKTsKKyAgICAgICAgV2ViQ29yZTo6U2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpzZXRDcmVhdG9yKFtdKGF1dG8mIGNsaWVudCwgYm9vbCBoaWRlUm9v
dExheWVyLCBhdXRvIHNpemUpIHsKKyAgICAgICAgICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIoKS5jcmVhdGVMYXllcihjbGllbnQsIGhpZGVSb290TGF5ZXIsIHNpemUpOwor
ICAgICAgICB9KTsKKyAgICB9CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWUwMTYxYWFkOTQ3NGQ2YjBmMWY5MDBiMDU0NGY1OTgwZDM2OThm
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBF
TkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJM
YXllckhvc3RpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIgorI2luY2x1ZGUgIlJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0ZDo6
dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6Y3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIG1hbmFnZXIsIENs
aWVudCYgY2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKK3sKKyAgICBh
dXRvIGxheWVyID0gc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4obmV3
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihtYW5hZ2VyLCBjbGllbnQsIGhpZGVSb290TGF5ZXIs
IHNpemUpKTsKKyAgICByZXR1cm4gbGF5ZXItPnJvb3RMYXllcigpID8gV1RGTW92ZShsYXllcikg
OiBudWxscHRyOworfQorCitTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBDbGll
bnQmIGNsaWVudCwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUpCisgICAgOiBXZWJD
b3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoY2xpZW50KQorICAgICwgbV9tYW5hZ2VyKG1h
a2VXZWFrUHRyKG1hbmFnZXIpKQorICAgICwgbV9jb25uZWN0aW9uKFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpKQorICAgICwg
bV9pZGVudGlmaWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXI6OmdlbmVyYXRl
KCkpCit7CisgICAgbWFuYWdlci5hZGRMYXllcigqdGhpcyk7CisKKyAgICBPcHRpb25hbDxMYXll
ckhvc3RpbmdDb250ZXh0SUQ+IGNvbnRleHRJZDsKKyAgICBpZiAoIW1fY29ubmVjdGlvbi0+c2Vu
ZFN5bmMoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OkNy
ZWF0ZUxheWVyIHsgbV9pZGVudGlmaWVyLCBoaWRlUm9vdExheWVyLCBzaXplIH0sIE1lc3NhZ2Vz
OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllcjo6UmVw
bHkgeyBjb250ZXh0SWQsIG1fYm91bmRzIH0sIDApKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoIWNvbnRleHRJZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92aWRlb0xheWVyID0gTGF5
ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KCpj
b250ZXh0SWQpOworfQorCitTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6On5TYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6UmVsZWFzZUxheWVyIHsgbV9pZGVudGlm
aWVyIH0sIDApOworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+cmVtb3Zl
TGF5ZXIoKnRoaXMpOworfQorCitib29sIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZGlkRmFp
bCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGlkRmFpbDsKK30KKwordm9pZCBTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZURpc3BsYXlNb2RlKGJvb2wgaGlkZURpc3BsYXlMYXllciwg
Ym9vbCBoaWRlUm9vdExheWVyKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpVcGRhdGVEaXNwbGF5TW9kZSB7IGhpZGVE
aXNwbGF5TGF5ZXIsIGhpZGVSb290TGF5ZXIgfSwgbV9pZGVudGlmaWVyKTsKK30KKworQ0dSZWN0
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Ym91bmRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9ib3VuZHM7Cit9CisKK3ZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp1cGRhdGVBZmZp
bmVUcmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKQoreworICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpVcGRh
dGVBZmZpbmVUcmFuc2Zvcm0geyB0cmFuc2Zvcm0gfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9p
ZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKENHUmVj
dCBib3VuZHMsIENHUG9pbnQgcG9zaXRpb24pCit7CisgICAgbV9ib3VuZHMgPSBib3VuZHM7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OlVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uIHsgYm91bmRzLCBwb3NpdGlvbiB9LCBtX2lk
ZW50aWZpZXIpOworfQorCit2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2goKQor
eworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpGbHVzaCB7IH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpmbHVzaEFuZFJlbW92ZUltYWdlKCkKK3sKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Rmx1c2hB
bmRSZW1vdmVJbWFnZSB7IH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjplbnF1ZXVlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCit7CisgICAg
aWYgKGF1dG8gcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUp
KQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6RW5xdWV1ZVNhbXBsZSB7ICpyZW1vdGVTYW1wbGUgfSwgbV9pZGVudGlm
aWVyKTsKK30KKwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNsZWFyRW5xdWV1ZWRT
YW1wbGVzKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xlYXJFbnF1ZXVlZFNhbXBsZXMgeyB9LCBtX2lkZW50aWZp
ZXIpOworfQorCitQbGF0Zm9ybUxheWVyKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnJvb3RM
YXllcigpCit7CisgICAgcmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKTsKK30KKwordm9pZCBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldERpZEZhaWwoYm9vbCB2YWx1ZSkKK3sKKyAgICBtX2Rp
ZEZhaWwgPSB2YWx1ZTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODI1OWM1MmZkZjY5YzZiYjk5NzI1OWQ1NDJjMmM4NjU3MDM4MjcwYQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyOworCitjbGFzcyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgZmluYWwgOiBw
dWJsaWMgV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLCBwdWJsaWMgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcj4gY3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImLCBDbGll
bnQmLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUpOworICAgIH5TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIoKTsKKworICAgIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50
aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKKworcHJpdmF0ZToKKyAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlciYsIENsaWVudCYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2Vi
Q29yZTo6SW50U2l6ZSk7CisKKyAgICAvLyBXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIKKyAgICBib29sIGRpZEZhaWwoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZURpc3Bs
YXlNb2RlKGJvb2wgaGlkZURpc3BsYXlMYXllciwgYm9vbCBoaWRlUm9vdExheWVyKSBmaW5hbDsK
KyAgICBDR1JlY3QgYm91bmRzKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCB1cGRhdGVBZmZpbmVU
cmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm0pIGZpbmFsOworICAgIHZvaWQgdXBkYXRlQm91bmRz
QW5kUG9zaXRpb24oQ0dSZWN0LCBDR1BvaW50KSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoKCkgZmlu
YWw7CisgICAgdm9pZCBmbHVzaEFuZFJlbW92ZUltYWdlKCkgZmluYWw7CisgICAgdm9pZCBlbnF1
ZXVlU2FtcGxlKFdlYkNvcmU6Ok1lZGlhU2FtcGxlJikgZmluYWw7CisgICAgdm9pZCBjbGVhckVu
cXVldWVkU2FtcGxlcygpIGZpbmFsOworICAgIFBsYXRmb3JtTGF5ZXIqIHJvb3RMYXllcigpIGZp
bmFsOworICAgIAorICAgIHZvaWQgc2V0RGlkRmFpbChib29sKTsKKworICAgIFdlYWtQdHI8U2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcj4gbV9tYW5hZ2VyOworICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKKworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3Zp
ZGVvTGF5ZXI7CisgICAgQ0dSZWN0IG1fYm91bmRzOworICAgIGJvb2wgbV9kaWRGYWlsIHsgZmFs
c2UgfTsKK307CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZWVmZmFmNTJhNjljZWExOWFmZDg0OGU3YTg1NjRmMDcyZjViYjkyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
IyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
K21lc3NhZ2VzIC0+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBOb3RSZWZDb3VudGVkIHsKKyAg
ICBTZXREaWRGYWlsKGJvb2wgdmFsdWUpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRl
bnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVySWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4Njk1ZmZjOGU5Y2MwMzQz
Mjg2NjM2ZjYyZjY5OTVkZGNkMjQzZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVy
LmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlICwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50
aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIg
PSBPYmplY3RJZGVudGlmaWVyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXJUeXBl
PjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODIyZjc3M2Q4NWQ4MmJlMWYy
ZjM3MTUwM2VlOGRjZmNlYWZjZTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAK
QEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCisKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpkaWRS
ZWNlaXZlTGF5ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChhdXRvKiBsYXllciA9IG1fbGF5ZXJzLmdldChtYWtl
T2JqZWN0SWRlbnRpZmllcjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyVHlwZT4o
ZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKS5nZXQoKSkKKyAgICAgICAgbGF5ZXItPmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyOjpjcmVhdGVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudCYgY2xp
ZW50LCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUgc2l6ZSkKK3sKKyAgICBh
dXRvIGxheWVyID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoKnRoaXMsIGNsaWVu
dCwgaGlkZVJvb3RMYXllciwgc2l6ZSk7CisgICAgaWYgKCFsYXllcikKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIG1fbGF5ZXJzLmFkZChsYXllci0+aWRlbnRpZmllcigpLCBtYWtlV2Vha1B0
cigqbGF5ZXIpKTsKKyAgICByZXR1cm4gbGF5ZXI7Cit9CisKK3ZvaWQgU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlcjo6YWRkTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJiBsYXll
cikKK3sKKyAgICBBU1NFUlQoIW1fbGF5ZXJzLmNvbnRhaW5zKGxheWVyLmlkZW50aWZpZXIoKSkp
OworICAgIG1fbGF5ZXJzLmFkZChsYXllci5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKGxheWVy
KSk7Cit9CisKK3ZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6cmVtb3ZlTGF5
ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJiBsYXllcikKK3sKKyAgICBBU1NFUlQobV9sYXll
cnMuY29udGFpbnMobGF5ZXIuaWRlbnRpZmllcigpKSk7CisgICAgbV9sYXllcnMucmVtb3ZlKGxh
eWVyLmlkZW50aWZpZXIoKSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNjM2FmNzBkODVmODdjY2ZiM2RlMjYx
NGQzZjg1OTNjOGQ0MzRmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApAQCAtMCww
ICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpID0gZGVmYXVsdDsKKyAgICB+U2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlcigpID0gZGVmYXVsdDsKKworICAgIHZvaWQgYWRkTGF5ZXIo
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJik7CisgICAgdm9pZCByZW1vdmVMYXllcihTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXImKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZUxheWVyTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGVMYXllcihTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OkNsaWVudCYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6
ZSk7CisKK3ByaXZhdGU6CisgICAgSGFzaE1hcDxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVu
dGlmaWVyLCBXZWFrUHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4+IG1fbGF5ZXJzOworfTsK
KworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>