<?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>207904</bug_id>
          
          <creation_ts>2020-02-18 12:51:48 -0800</creation_ts>
          <short_desc>Support in-band metadata cues when loading media in the GPU Process</short_desc>
          <delta_ts>2020-02-20 19:35:57 -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>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>annulen</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1620276</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-18 12:51:48 -0800</bug_when>
    <thetext>Support in-band metadata cues when loading media in the GPU Process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620277</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-18 12:52:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/59561647&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620854</commentid>
    <comment_count>2</comment_count>
      <attachid>391199</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-19 14:09:33 -0800</bug_when>
    <thetext>Created attachment 391199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621017</commentid>
    <comment_count>3</comment_count>
      <attachid>391243</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-19 18:59:26 -0800</bug_when>
    <thetext>Created attachment 391243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621024</commentid>
    <comment_count>4</comment_count>
      <attachid>391245</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-19 19:04:51 -0800</bug_when>
    <thetext>Created attachment 391245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621177</commentid>
    <comment_count>5</comment_count>
      <attachid>391282</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-20 05:56:36 -0800</bug_when>
    <thetext>Created attachment 391282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621181</commentid>
    <comment_count>6</comment_count>
      <attachid>391282</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-02-20 06:06:49 -0800</bug_when>
    <thetext>Comment on attachment 391282
Patch

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

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:27
&gt; -    CreateMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id, enum:uint8_t WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier, struct WebKit::RemoteMediaPlayerProxyConfiguration proxyConfiguration) -&gt; (struct WebKit::RemoteMediaPlayerConfiguration playerConfiguration) Synchronous
&gt; -    DeleteMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id)
&gt; +    CreateMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id, enum:uint8_t WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier, struct WebKit::RemoteMediaPlayerProxyConfiguration proxyConfiguration) -&gt; (struct WebKit::RemoteMediaPlayerConfiguration playerConfiguration) Async

😘</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621197</commentid>
    <comment_count>7</comment_count>
      <attachid>391284</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-20 07:12:42 -0800</bug_when>
    <thetext>Created attachment 391284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621202</commentid>
    <comment_count>8</comment_count>
      <attachid>391285</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-20 07:25:30 -0800</bug_when>
    <thetext>Created attachment 391285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621241</commentid>
    <comment_count>9</comment_count>
      <attachid>391292</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-20 08:55:58 -0800</bug_when>
    <thetext>Created attachment 391292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621274</commentid>
    <comment_count>10</comment_count>
      <attachid>391300</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-20 10:17:36 -0800</bug_when>
    <thetext>Created attachment 391300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621360</commentid>
    <comment_count>11</comment_count>
      <attachid>391319</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-20 12:54:26 -0800</bug_when>
    <thetext>Created attachment 391319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621405</commentid>
    <comment_count>12</comment_count>
      <attachid>391331</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-20 13:45:34 -0800</bug_when>
    <thetext>Created attachment 391331
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621436</commentid>
    <comment_count>13</comment_count>
      <attachid>391331</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-02-20 15:10:57 -0800</bug_when>
    <thetext>Comment on attachment 391331
Patch

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

&gt; Source/WebCore/platform/mac/SerializedPlatformDataCueMac.h:49
&gt; +    WEBCORE_EXPORT static NSArray* allowedClassesForNativeValues();

Nit, I think the * goes near the function name.

&gt; Source/WebCore/platform/mac/SerializedPlatformDataCueMac.mm:66
&gt; +SerializedPlatformDataCueMac::~SerializedPlatformDataCueMac()

Do you need this here now? Could it just be left out or marked = default?

&gt; Source/WebCore/platform/mac/SerializedPlatformDataCueMac.mm:116
&gt; +NSArray* SerializedPlatformDataCueMac::allowedClassesForNativeValues()

Nit: * again (I think... I&apos;m never sure of the rules in .mm files)

&gt; Source/WebCore/platform/mac/SerializedPlatformDataCueMac.mm:211
&gt;  static JSValue *jsValueWithAVMetadataItemInContext(AVMetadataItem *item, JSContext *context)

Yeah, I guess it does go on that side.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:28
&gt; -    CreateMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id, enum:uint8_t WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier, struct WebKit::RemoteMediaPlayerProxyConfiguration proxyConfiguration) -&gt; (struct WebKit::RemoteMediaPlayerConfiguration playerConfiguration) Synchronous
&gt; -    DeleteMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id)
&gt; +    CreateMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id, enum:uint8_t WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier, struct WebKit::RemoteMediaPlayerProxyConfiguration proxyConfiguration) -&gt; (struct WebKit::RemoteMediaPlayerConfiguration playerConfiguration) Async
&gt; +     DeleteMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id)

Sam already gave you love for this, so I don&apos;t need to!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621517</commentid>
    <comment_count>14</comment_count>
      <attachid>391331</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-20 18:01:38 -0800</bug_when>
    <thetext>Comment on attachment 391331
Patch

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

Thanks for the review!

&gt;&gt; Source/WebCore/platform/mac/SerializedPlatformDataCueMac.h:49
&gt;&gt; +    WEBCORE_EXPORT static NSArray* allowedClassesForNativeValues();
&gt; 
&gt; Nit, I think the * goes near the function name.

OMG, this is such a RIDICULOUS &quot;rule&quot;...

&gt;&gt; Source/WebCore/platform/mac/SerializedPlatformDataCueMac.mm:66
&gt;&gt; +SerializedPlatformDataCueMac::~SerializedPlatformDataCueMac()
&gt; 
&gt; Do you need this here now? Could it just be left out or marked = default?

Good point!

&gt;&gt; Source/WebCore/platform/mac/SerializedPlatformDataCueMac.mm:116
&gt;&gt; +NSArray* SerializedPlatformDataCueMac::allowedClassesForNativeValues()
&gt; 
&gt; Nit: * again (I think... I&apos;m never sure of the rules in .mm files)

:-/

&gt;&gt; Source/WebCore/platform/mac/SerializedPlatformDataCueMac.mm:211
&gt;&gt;  static JSValue *jsValueWithAVMetadataItemInContext(AVMetadataItem *item, JSContext *context)
&gt; 
&gt; Yeah, I guess it does go on that side.

Ditto

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:28
&gt;&gt; +     DeleteMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id)
&gt; 
&gt; Sam already gave you love for this, so I don&apos;t need to!

:-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621518</commentid>
    <comment_count>15</comment_count>
      <attachid>391366</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-20 18:05:27 -0800</bug_when>
    <thetext>Created attachment 391366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621539</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-20 19:35:10 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 391366:

editing/spelling/spellcheck-paste-continuous-disabled.html bug 208016 (authors: g.czajkowski@samsung.com and mark.lam@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621541</commentid>
    <comment_count>17</comment_count>
      <attachid>391366</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-20 19:35:55 -0800</bug_when>
    <thetext>Comment on attachment 391366
Patch

Clearing flags on attachment: 391366

Committed r257125: &lt;https://trac.webkit.org/changeset/257125&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621542</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-20 19:35:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391199</attachid>
            <date>2020-02-19 14:09:33 -0800</date>
            <delta_ts>2020-02-19 18:59:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207904-20200219140933.patch</filename>
            <type>text/plain</type>
            <size>58506</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2OTE0OWIwYzQxZDFk
NjllMTU5MWNkNTdlNGJkNDU0NTBjMDY3Zi4uNzk5Yzk5ZjhmZTljODhlMWVhYTRiZTBhMTIzYTUx
ZTFkOWQ5NTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTE5ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgaW4t
YmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0
YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4
dFRyYWNrOjpmaW5kSW5jb21wbGV0ZUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFU
ZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRl
eHRUcmFjazo6cmVtb3ZlQ3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0
VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vlc0ludGVybmFsIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpkZXNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpkYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmlzRXF1YWwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6cGxhdGZvcm1UeXBlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmVuY29kaW5nUmVxdWlyZXNQ
bGF0Zm9ybURhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6ZW5jb2RhYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFE
aWRBcnJpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2Vk
Q2xhc3Nlc0Zvck5hdGl2ZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUpOiBEZWxldGVkLgorCiAyMDIwLTAyLTE5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUGxh
dGZvcm1NZWRpYVNlc3Npb246OmNoYXJhY3RlcmlzdGljcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzMjc5NTY3
MjdkNmRlYzhmZjljN2Q4OTY4Y2VlYmEwMTA5ZWYzYjEuLmQxY2E2ZDQzMWY1ZGZhN2QwNzc0MTEy
ZDEzNjVhMmY5ZGQwYTY1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDItMTkg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9y
dCBpbi1iYW5kIG1ldGFkYXRhIGN1ZXMgd2hlbiBsb2FkaW5nIG1lZGlhIGluIHRoZSBHUFUgUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3
OTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTU2MTY0Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4
dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpl
bmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3Rl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjphZGRHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViS2l0OjpU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKToKKyAg
ICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1
ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFD
dWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaDoKKwogMjAyMC0wMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBmYXN0L2RvbS9mb2N1cy1zaGlmdC1jcmFzaC5odG1sIGFuZCBl
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tY2hhbmdlLWluLWRpc2Nvbm5lY3RlZC1mcmFtZS1j
cmFzaC5odG1sIGNyYXNoIGFmdGVyIHIyNTY4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3OGM4MzdhOGM4NDk1ZmQxM2JjOWM3
MWFmZWZmZmYxY2NlZTY2MGYzLi4yMTBjZWUzYzVhNDM0OGVlZGNkYzJmMzljOGQ0MjRkMTBjMGQ2
OGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMzUsMTAgKzEzNSwxMSBAQAogCQkwNzYzOEE5QTE4ODQ0ODcyMDBFMTVBMUIg
LyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Np
b25NYW5hZ2VySU9TLm1tICovOyB9OwogCQkwNzY5NzA4NjE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4
dFRyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi87IH07
CiAJCTA3Njk3MDg3MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzY5NzA4NTE0NjNBRDg3MDBG
NTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oICovOyB9OworCQkwNzZEMUMxRjIzRjZFQjVCMDBEOTVC
MDYgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzZEMUMxRDIzRjZEOUQ4MDBEOTVCMDYgLyog
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc2RjBEMEUxMkI4MTkyNzAwQzI2QUE0IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oICovOyB9OwogCQkwNzc2NjRGRDE4M0U2QjVDMDAxMzNC
OTIgLyogSlNRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3NjY0RkIxODNFNkI1QzAwMTMzQjkyIC8qIEpT
UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCAqLzsgfTsKIAkJMDc3QUYxNDAxOEY0QUU0MDAw
MDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0FGMTNFMThGNEFFNDAwMDAxRUQ2MSAvKiBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDc3QUYxNDMxOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3N0FGMTQxMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlTWFjLmggKi87IH07CisJCTA3N0FGMTQzMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzdBRjE0MTE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA3N0I2NDEzMUI5NEYxMkUwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyTW9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDc3QjY0MTExQjk0RjEyRTAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMDc3QjY0MTcxQjk1RjcwMzAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdCNjQxNTFC
OTVGNzAzMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzgzMjI4NTE4MDEzRUQ4MDA5
OTlFMEMgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc4MzIyODMxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaCAqLzsgfTsKQEAgLTU0NzMsNiArNTQ3NCw3IEBACiAJCTA3NjM4
QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNG
IC8qIFRleHRUcmFja0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVGV4dFRyYWNrTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3
MDg1MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRleHRUcmFja0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RTExQkUxRjY4M0UwRDAwMTc3Mzk1
IC8qIFRyYWNrUHJpdmF0ZUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVHJhY2tQcml2YXRlQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3NkYwRDA5MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2
RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1OTk1LDYgKzI1OTk3
LDcgQEAKIAkJCQlCQzZENkUyNTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovLAog
CQkJCUFCNzE3MDg4MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCAqLywKIAkJ
CQkwNzdBRjEzRTE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5o
ICovLAorCQkJCTA3NkQxQzFEMjNGNkQ5RDgwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUuaCAqLywKIAkJCQkxQTRBOTU0QjBCNEVEQ0NCMDAyRDhDM0MgLyogU2hhcmVk
QnVmZmVyLmNwcCAqLywKIAkJCQkxQTRBOTU0QzBCNEVEQ0NCMDAyRDhDM0MgLyogU2hhcmVkQnVm
ZmVyLmggKi8sCiAJCQkJODM0REZBQ0UxRjdEQUU1NzAwQzI3MjVCIC8qIFNoYXJlZFN0cmluZ0hh
c2guY3BwICovLApAQCAtMzIyNTQsNiArMzIyNTcsNyBAQAogCQkJCUUxOERGMzM1MThBQUYxMkMw
MDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc3QUYxNDAxOEY0QUU0MDAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTA3N0FGMTQzMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzZEMUMxRjIzRjZFQjVC
MDBEOTVCMDYgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzVFNDk3NjEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTZGN0Y2RDFDMzFFMzlBMDBGMTExREMgLyogU2VydmVy
T3BlbkRCUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5M0FFRTMxOURGNTY0MTAwMkE4
NkMzIC8qIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMDQwMDFiNGJhOWVkZmFlYmZl
YWYxZjI3Y2ZhMGZjZTQ0N2MxMWQ4OC4uMGU4NjhhMGJhZTdiZDIyODI0YWRjYjQ0ZWI2OGFlMTc5
YmM5MWNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0x
MzMyLDcgKzEzMzIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3Vy
Y2UoKQogICAgICAgICAgICAgbW9kZSA9IEF0dHJpYnV0ZTsKICAgICAgICAgICAgIEFTU0VSVCht
X3BsYXllcik7CiAgICAgICAgICAgICBpZiAoIW1fcGxheWVyKSB7Ci0gICAgICAgICAgICAgICAg
RVJST1JfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiIGhhcyBzcmNBdHRyIGJ1dCBtX3BsYXllciBp
cyBub3QgY3JlYXRlZCIpOworICAgICAgICAgICAgICAgIEVSUk9SX0xPRyhsb2dTaXRlSWRlbnRp
ZmllciwgImhhcyBzcmNBdHRyIGJ1dCBtX3BsYXllciBpcyBub3QgY3JlYXRlZCIpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChhdXRv
IGZpcnN0U291cmNlID0gY2hpbGRyZW5PZlR5cGU8SFRNTFNvdXJjZUVsZW1lbnQ+KCp0aGlzKS5m
aXJzdCgpKSB7CkBAIC0zNDczLDExICszNDczLDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
cGxheShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgIGlmICghc3VjY2Vz
cykgewogICAgICAgICBpZiAoc3VjY2Vzcy52YWx1ZSgpID09IE1lZGlhUGxheWJhY2tEZW5pYWxS
ZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQpCiAgICAgICAgICAgICBzZXRBdXRvcGxheUV2ZW50
UGxheWJhY2tTdGF0ZShBdXRvcGxheUV2ZW50UGxheWJhY2tTdGF0ZTo6UHJldmVudGVkQXV0b3Bs
YXkpOworICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgInJlamVjdGluZyBwcm9taXNl
OiAiLCBzdWNjZXNzLnZhbHVlKCkpOwogICAgICAgICBwcm9taXNlLnJlamVjdChOb3RBbGxvd2Vk
RXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1fZXJyb3IgJiYgbV9l
cnJvci0+Y29kZSgpID09IE1lZGlhRXJyb3I6Ok1FRElBX0VSUl9TUkNfTk9UX1NVUFBPUlRFRCkg
eworICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgInJlamVjdGluZyBwcm9taXNlIGJl
Y2F1c2Ugb2YgZXJyb3IiKTsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoTm90U3VwcG9ydGVkRXJy
b3IsICJUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0zNDk1LDYgKzM0OTcsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXko
KQogCiAgICAgYXV0byBzdWNjZXNzID0gbV9tZWRpYVNlc3Npb24tPnBsYXliYWNrUGVybWl0dGVk
KCk7CiAgICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVS
LCAicGxheWJhY2sgbm90IHBlcm1pdHRlZDogIiwgc3VjY2Vzcy52YWx1ZSgpKTsKICAgICAgICAg
aWYgKHN1Y2Nlc3MudmFsdWUoKSA9PSBNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uOjpVc2VyR2Vz
dHVyZVJlcXVpcmVkKQogICAgICAgICAgICAgc2V0QXV0b3BsYXlFdmVudFBsYXliYWNrU3RhdGUo
QXV0b3BsYXlFdmVudFBsYXliYWNrU3RhdGU6OlByZXZlbnRlZEF1dG9wbGF5KTsKICAgICAgICAg
cmV0dXJuOwpAQCAtNTA5NCw3ICs1MDk3LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hl
ZHVsZU1lZGlhRW5naW5lV2FzVXBkYXRlZCgpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVk
aWFFbmdpbmVXYXNVcGRhdGVkKCkKIHsKLSAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKKyAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworCiAgICAgYmVnaW5Qcm9jZXNzaW5nTWVkaWFQ
bGF5ZXJDYWxsYmFjaygpOwogICAgIHVwZGF0ZVJlbmRlcmVyKCk7CiAgICAgZW5kUHJvY2Vzc2lu
Z01lZGlhUGxheWVyQ2FsbGJhY2soKTsKQEAgLTUxMjksNyArNTEzMyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFFbmdpbmVXYXNVcGRhdGVkKCkKIAogdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoKQogewotICAgIElORk9fTE9HKExPR0lERU5U
SUZJRVIpOworICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsIG1fcGxheWVyLT5lbmdpbmVEZXNj
cmlwdGlvbigpKTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAgICAgbV9kcm9wcGVkVmlk
ZW9GcmFtZXMgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJh
bmREYXRhVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0
YVRleHRUcmFjay5jcHAKaW5kZXggZjA3ZjczOGQyODM2MWNjNGJmZDQ5MmM2NGE4NGFjOWJkNGNh
NjUwNC4uMGMwNGYzYzFiNWYxNzJlNzJkY2YzZmE1ZTM1YmIwZTk3MzIwODY1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwCkBAIC01
OSw3ICs1OSw3IEBAIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuCiAKIHZvaWQgSW5iYW5kRGF0YVRl
eHRUcmFjazo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRp
bWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+JiYgcGxhdGZvcm1WYWx1ZSwg
Y29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIGlmIChtX2luY29tcGxldGVDdWVNYXAuY29udGFp
bnMocGxhdGZvcm1WYWx1ZS5wdHIoKSkpCisgICAgaWYgKGZpbmRJbmNvbXBsZXRlQ3VlKHBsYXRm
b3JtVmFsdWUpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGN1ZSA9IERhdGFDdWU6OmNy
ZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdGFydCwgZW5kLCBwbGF0Zm9ybVZhbHVl
LmNvcHlSZWYoKSwgdHlwZSk7CkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgSW5iYW5kRGF0YVRleHRU
cmFjazo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGVuCiAKICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlhRWxlbWVudCgp
KSB7CiAgICAgICAgIGN1ZS0+c2V0RW5kVGltZShtZWRpYUVsZW1lbnQoKS0+ZHVyYXRpb25NZWRp
YVRpbWUoKSk7Ci0gICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5hZGQoV1RGTW92ZShwbGF0Zm9y
bVZhbHVlKSwgY3VlLmNvcHlSZWYoKSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5hcHBl
bmQoJmN1ZS5nZXQoKSk7CiAgICAgfQogCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgY3Vl
LmdldCgpKTsKQEAgLTc4LDkgKzc4LDIxIEBAIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRk
RGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuCiAgICAg
YWRkQ3VlKFdURk1vdmUoY3VlKSk7CiB9CiAKK1JlZlB0cjxEYXRhQ3VlPiBJbmJhbmREYXRhVGV4
dFRyYWNrOjpmaW5kSW5jb21wbGV0ZUN1ZShjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
JiBjdWVUb0ZpbmQpCit7CisgICAgYXV0byBpbmRleCA9IG1faW5jb21wbGV0ZUN1ZU1hcC5maW5k
TWF0Y2hpbmcoWyZdKGNvbnN0IGF1dG8mIGN1ZSkgeworICAgICAgICByZXR1cm4gY3VlVG9GaW5k
LmlzRXF1YWwoKmN1ZS0+cGxhdGZvcm1WYWx1ZSgpKTsKKyAgICB9KTsKKworICAgIGlmIChpbmRl
eCA9PSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9p
bmNvbXBsZXRlQ3VlTWFwW2luZGV4XTsKK30KKwogdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1
cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgaW5F
bmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAgUmVm
UHRyPERhdGFDdWU+IGN1ZSA9IG1faW5jb21wbGV0ZUN1ZU1hcC5nZXQoJnBsYXRmb3JtVmFsdWUp
OworICAgIGF1dG8gY3VlID0gZmluZEluY29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSk7CiAgICAg
aWYgKCFjdWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTAsNyArMTAyLDcgQEAgdm9pZCBJbmJh
bmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYKICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlh
RWxlbWVudCgpKQogICAgICAgICBlbmQgPSBtZWRpYUVsZW1lbnQoKS0+ZHVyYXRpb25NZWRpYVRp
bWUoKTsKICAgICBlbHNlCi0gICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoJnBsYXRm
b3JtVmFsdWUpOworICAgICAgICBtX2luY29tcGxldGVDdWVNYXAucmVtb3ZlRmlyc3QoY3VlKTsK
IAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJ3YXMgc3RhcnQgPSAiLCBjdWUtPnN0YXJ0
TWVkaWFUaW1lKCksICIsIGVuZCA9ICIsIGN1ZS0+ZW5kTWVkaWFUaW1lKCksICIsIHdpbGwgYmUg
c3RhcnQgPSAiLCBzdGFydCwgIiwgZW5kID0gIiwgZW5kKTsKIApAQCAtMTAyLDggKzExNCw5IEBA
IHZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUm
IHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmCiAKIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6cmVt
b3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIGlmIChhdXRvIGN1ZSA9IG1f
aW5jb21wbGV0ZUN1ZU1hcC50YWtlKCZwbGF0Zm9ybVZhbHVlKSkgeworICAgIGlmIChhdXRvIGN1
ZSA9IGZpbmRJbmNvbXBsZXRlQ3VlKHBsYXRmb3JtVmFsdWUpKSB7CiAgICAgICAgIElORk9fTE9H
KExPR0lERU5USUZJRVIsICJyZW1vdmluZzogIiwgKmN1ZSk7CisgICAgICAgIG1faW5jb21wbGV0
ZUN1ZU1hcC5yZW1vdmVGaXJzdChjdWUpOwogICAgICAgICBJbmJhbmRUZXh0VHJhY2s6OnJlbW92
ZUN1ZSgqY3VlKTsKICAgICB9CiB9CkBAIC0xMTIsNyArMTI1LDggQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gSW5iYW5kRGF0YVRleHRUcmFjazo6cmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSYgY3VlKQogewog
ICAgIEFTU0VSVChjdWUuY3VlVHlwZSgpID09IFRleHRUcmFja0N1ZTo6RGF0YSk7CiAKLSAgICBt
X2luY29tcGxldGVDdWVNYXAucmVtb3ZlKGNvbnN0X2Nhc3Q8U2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZSo+KHRvRGF0YUN1ZSgmY3VlKS0+cGxhdGZvcm1WYWx1ZSgpKSk7CisgICAgaWYgKGF1dG8g
cGxhdGZvcm1WYWx1ZSA9IGNvbnN0X2Nhc3Q8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSo+KHRv
RGF0YUN1ZSgmY3VlKS0+cGxhdGZvcm1WYWx1ZSgpKSkKKyAgICAgICAgcmVtb3ZlRGF0YUN1ZSh7
IH0sIHsgfSwgKnBsYXRmb3JtVmFsdWUpOwogCiAgICAgcmV0dXJuIEluYmFuZFRleHRUcmFjazo6
cmVtb3ZlQ3VlKGN1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0luYmFuZERhdGFUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5k
RGF0YVRleHRUcmFjay5oCmluZGV4IDFhOGJkZjZhZTUyMjhiZWYwY2Y4ZDFkYWQ5NWUzNTZmNjI4
YTQ0ZjIuLjRmYzMxM2VhY2M1MTc0MTIzMDQ2OThmNDJlM2NhZWVhOWQxOTM5NTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCkBAIC01NSw3
ICs1NSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGlt
ZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
JikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSYp
IGZpbmFsOwogCi0gICAgSGFzaE1hcDxSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4s
IFJlZlB0cjxEYXRhQ3VlPj4gbV9pbmNvbXBsZXRlQ3VlTWFwOworICAgIFJlZlB0cjxEYXRhQ3Vl
PiBmaW5kSW5jb21wbGV0ZUN1ZShjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJik7CisK
KyAgICBWZWN0b3I8UmVmUHRyPERhdGFDdWU+PiBtX2luY29tcGxldGVDdWVNYXA7CiAjZW5kaWYK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4IDQ3ZTZkZWU5M2Qw
NjkyOTk3MzYwOTUxZTUxMTIzOGQ5ZTMwNTk4ZjIuLjA3MzY1MmY0NDQ1MTVlOGQ4YTBjZGVlYjIx
YzA2YzQzNjc3MTEyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAt
OTYsNiArOTYsOCBAQCBwdWJsaWM6CiAgICAgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcygpOwogICAg
IFRleHRUcmFja0N1ZUxpc3QqIGFjdGl2ZUN1ZXMoKSBjb25zdDsKIAorICAgIFRleHRUcmFja0N1
ZUxpc3QqIGN1ZXNJbnRlcm5hbCgpIGNvbnN0IHsgcmV0dXJuIG1fY3Vlcy5nZXQoKTsgfQorCiAg
ICAgdm9pZCBjbGVhckNsaWVudCgpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CiAg
ICAgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggZTVkZjNjM2I3ODY2
ZWE5ZmQ0M2RhY2NmNGE0NjIyYmRiNjQ4OTQyMi4uY2JkZDhjMDMxZGI3Y2ZlMGU4NDU2MTE5NzYy
NjdmMjQ1MTIyNGVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmNwcApAQCAtMzQxLDExICszNDEsMTEgQEAgdm9pZCBUZXh0VHJhY2tDdWU6OnNldElzQWN0aXZl
KGJvb2wgYWN0aXZlKQogCiB1bnNpZ25lZCBUZXh0VHJhY2tDdWU6OmN1ZUluZGV4KCkgY29uc3QK
IHsKLSAgICBBU1NFUlQobV90cmFjayAmJiBtX3RyYWNrLT5jdWVzKCkpOwotICAgIGlmICghbV90
cmFjayB8fCAhbV90cmFjay0+Y3VlcygpKQorICAgIEFTU0VSVChtX3RyYWNrICYmIG1fdHJhY2st
PmN1ZXNJbnRlcm5hbCgpKTsKKyAgICBpZiAoIW1fdHJhY2sgfHwgIW1fdHJhY2stPmN1ZXNJbnRl
cm5hbCgpKQogICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1h
eCgpOwogCi0gICAgcmV0dXJuIG1fdHJhY2stPmN1ZXMoKS0+Y3VlSW5kZXgoKnRoaXMpOworICAg
IHJldHVybiBtX3RyYWNrLT5jdWVzSW50ZXJuYWwoKS0+Y3VlSW5kZXgoKnRoaXMpOwogfQogCiBi
b29sIFRleHRUcmFja0N1ZTo6aXNPcmRlcmVkQmVmb3JlKGNvbnN0IFRleHRUcmFja0N1ZSogb3Ro
ZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlLmgKaW5kZXggNDc0YWMxZDRmNzc2NGI1Y2VjMTNlMTdjNmVlMTlhOGI0MmQy
MDA3Ny4uN2ZmMDJjMWYxODY0OGVhNGI3NjE5MzIwMDA0ODYyNTFkN2ZkODNhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaApA
QCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlND
SW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTM0LDE2ICszNSwy
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWUgOiBwdWJsaWMgUmVmQ291bnRlZDxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiB7CiBwdWJs
aWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlPiBjcmVhdGUoaWQpOworCiAgICAgdmlydHVhbCB+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZSgpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpT
Qzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQdHI8SlNDOjpB
cnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNFcXVhbChj
b25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
SlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdCB7IHJl
dHVybiBKU0M6OmpzTnVsbCgpOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZl
cj4gZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFs
KGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogCi0gICAgZW51bSBQbGF0Zm9ybVR5cGUgeworICAgIGVudW0gY2xhc3MgUGxhdGZvcm1UeXBl
IHsKKyAgICAgICAgTm9uZSwKICAgICAgICAgT2JqQywKICAgICB9OwotICAgIHZpcnR1YWwgUGxh
dGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRmb3Jt
VHlwZSBwbGF0Zm9ybVR5cGUoKSBjb25zdCB7IHJldHVybiBQbGF0Zm9ybVR5cGU6Ok5vbmU7IH0K
KworICAgIHZpcnR1YWwgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZVZhbHVlIGVuY29kYWJsZVZhbHVlKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiAKIHByb3RlY3Rl
ZDoKICAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40OTVlNzU5OTE4MTAzMjZlMDE0ZGI5Y2M2NTQ0Yzk1NzcxYTEyNmJj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZVZhbHVlLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgIWRlZmluZWQoX19PQkpD
X18pCit0eXBlZGVmIHN0cnVjdCBvYmpjX29iamVjdCAqaWQ7CisjZW5kaWYKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgeworICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKTsK
K3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIFBsYXRmb3JtVHlwZSB7CisgICAgICAgIE5vbmUsCisg
ICAgICAgIE9iakMsCisgICAgfTsKKworICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1
ZShQbGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlLCBpZCBuYXRpdmVWYWx1ZSkKKyAgICAgICAgOiBt
X25hdGl2ZVZhbHVlKG5hdGl2ZVZhbHVlKQorICAgICAgICAsIG1fdHlwZShwbGF0Zm9ybVR5cGUp
CisgICAgeworICAgIH0KKyAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUoKSA9IGRl
ZmF1bHQ7CisgICAgflNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSgpID0gZGVmYXVsdDsK
KworICAgIFBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KKworICAgIFJldGFpblB0cjxpZD4gbmF0aXZlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX25h
dGl2ZVZhbHVlOyB9CisKKyAgICBib29sIGVuY29kaW5nUmVxdWlyZXNQbGF0Zm9ybURhdGEoKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gUGxhdGZvcm1UeXBlOjpPYmpDOyB9CisKK3Byb3RlY3Rl
ZDoKKyAgICBSZXRhaW5QdHI8aWQ+IG1fbmF0aXZlVmFsdWU7CisgICAgUGxhdGZvcm1UeXBlIG1f
dHlwZSB7IFBsYXRmb3JtVHlwZTo6Tm9uZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcAppbmRleCBjYTcxZTdlMGI1ODZjN2I1NWIxMTI3MzJiYWQ1OWIwMWQ4YTQxODFi
Li41N2RmY2JmNGJjN2M0ODg0NGQzODFjYjM1ZWNjNjQzYzFhYWI0YjkyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMDksNiAr
MTA5LDggQEAgcHVibGljOgogICAgIHZvaWQgcGxheSgpIGZpbmFsIHsgfQogICAgIHZvaWQgcGF1
c2UoKSBmaW5hbCB7IH0KIAorICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJOdWxsTWVkaWFQbGF5ZXIiOyB9CisKICAgICBQbGF0Zm9ybUxheWVyKiBw
bGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgRmxv
YXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRmxvYXRTaXplKCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDgyMGRhODljNDZmODcxNTMyOTZlMTY3NGRmNDZh
MWQ3NGJlMDZmOWEuLmU0OWRmNGNmOTMwZDYyOTg0M2M4ZTM4NzJjYmZiMTJjNTMyNWVhNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzA3NCw3ICszMDc0LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjptZXRhZGF0YURpZEFycml2ZShjb25zdCBSZXRh
aW5QdHI8TlNBcnIKICAgICAgICAgaWYgKGl0ZW0ua2V5U3BhY2UpCiAgICAgICAgICAgICB0eXBl
ID0gbWV0YWRhdGFUeXBlKGl0ZW0ua2V5U3BhY2UpOwogCi0gICAgICAgIG1fbWV0YWRhdGFUcmFj
ay0+YWRkRGF0YUN1ZShzdGFydCwgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpj
cmVhdGUoaXRlbSksIHR5cGUpOworICAgICAgICBtX21ldGFkYXRhVHJhY2stPmFkZERhdGFDdWUo
c3RhcnQsIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKGl0ZW0pLCB0eXBl
KTsKICAgICB9CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oCmluZGV4IGExMGRjY2MzZTFi
NWEzMGRmYmYwMTBhNzYwNTA1MjgwNmIyMTk2ZWIuLmZiMGE0OWRiMzZjYmMyODFiODdhYjQ1MzU3
YjMyMjE4ODFiNmY3YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaApAQCAtMjksMjggKzI5LDI3IEBA
CiAKICNpbmNsdWRlICJTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgiCiAKLSNpZiBVU0UoRk9V
TkRBVElPTikgJiYgIWRlZmluZWQoX19PQkpDX18pCi10eXBlZGVmIHN0cnVjdCBvYmpjX29iamVj
dCAqaWQ7Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlTWFjIGZpbmFsIDogcHVibGljIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWUgewogcHVibGljOgorICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoY29uc3QgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJik7CisgICAgZXhwbGljaXQgU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZU1hYyhpZCBuYXRpdmVWYWx1ZSk7CiAgICAgdmlydHVhbCB+U2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYygpOwotICAgIHN0YXRpYyBSZWY8U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZT4gY3JlYXRlKGlkKTsKIAogICAgIEpTQzo6SlNWYWx1ZSBkZXNlcmlhbGl6ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KikgY29uc3QgZmluYWw7CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBk
YXRhKCkgY29uc3QgZmluYWw7Ci0KICAgICBib29sIGlzRXF1YWwoY29uc3QgU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZSYpIGNvbnN0IGZpbmFsOworICAgIFBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQbGF0Zm9ybVR5cGU6Ok9iakM7IH0KKyAgICBib29s
IGVuY29kaW5nUmVxdWlyZXNQbGF0Zm9ybURhdGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CiAKLSAgICBQbGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6T2JqQzsgfQorICAgIFdFQkNPUkVfRVhQT1JU
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBlbmNvZGFibGVWYWx1ZSgpIGNvbnN0IGZp
bmFsOwogCiAgICAgaWQgbmF0aXZlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZVZhbHVl
LmdldCgpOyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTlNBcnJheSogYWxsb3dlZENs
YXNzZXNGb3JOYXRpdmVWYWx1ZXMoKTsKKwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjKGlkIG5hdGl2ZVZhbHVlKTsKIAogICAgIFJldGFpblB0cjxp
ZD4gbV9uYXRpdmVWYWx1ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLm1tCmluZGV4IGI5NDllYjdj
ZGQyMDAzOWYxY2ZmZWY4YzRjNWJjZDdiMTEzZWIxOTkuLmUzMmMwMWJlMWY5NWEwZTQxM2NiYzY4
YzU4ZTdlMDBkNDBhYjc2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLm1tCkBAIC00OCwyMSArNDgs
MjkgQEAgc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQXJyYXlJbkNvbnRleHQoTlNBcnJheSAq
LCBKU0NvbnRleHQgKik7CiBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhEaWN0aW9uYXJ5SW5D
b250ZXh0KE5TRGljdGlvbmFyeSAqLCBKU0NvbnRleHQgKik7CiBzdGF0aWMgSlNWYWx1ZSAqanNW
YWx1ZVdpdGhBVk1ldGFkYXRhSXRlbUluQ29udGV4dChBVk1ldGFkYXRhSXRlbSAqLCBKU0NvbnRl
eHQgKik7CiBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhWYWx1ZUluQ29udGV4dChpZCwgSlND
b250ZXh0ICopOworc3RhdGljIE5TRGljdGlvbmFyeSAqTlNEaWN0aW9uYXJ5V2l0aEFWTWV0YWRh
dGFJdGVtKEFWTWV0YWRhdGFJdGVtICopOwogI2VuZGlmCiAKK1JlZjxTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlPiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoaWQgbmF0aXZlVmFs
dWUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZU1hYyhuYXRpdmVWYWx1ZSkpOworfQorCiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKGlkIG5hdGl2ZVZhbHVlKQogICAgIDogU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZSgpCiAgICAgLCBtX25hdGl2ZVZhbHVlKG5hdGl2ZVZhbHVlKQog
ewogfQogCi1TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYygpCitTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjKGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYgdmFs
dWUpCisgICAgOiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkKKyAgICAsIG1fbmF0aXZlVmFs
dWUodmFsdWUubmF0aXZlVmFsdWUoKSkKIHsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKTsKIH0KIAotUmVmPFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmNyZWF0ZShpZCBu
YXRpdmVWYWx1ZSkKK1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6On5TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlTWFjKG5hdGl2ZVZhbHVlKSk7CiB9CiAKIFJlZlB0cjxBcnJheUJ1ZmZl
cj4gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6ZGF0YSgpIGNvbnN0CkBAIC04OSw3ICs5
Nyw3IEBAIEpTQzo6SlNWYWx1ZSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpkZXNlcmlh
bGl6ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpCiAKIGJvb2wgU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYzo6aXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBvdGhl
cikgY29uc3QKIHsKLSAgICBpZiAob3RoZXIucGxhdGZvcm1UeXBlKCkgIT0gU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZTo6T2JqQykKKyAgICBpZiAob3RoZXIucGxhdGZvcm1UeXBlKCkgIT0gUGxh
dGZvcm1UeXBlOjpPYmpDKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdCBTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKiBvdGhlck9iakMgPSB0b1NlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVNYWMoJm90aGVyKTsKQEAgLTEwNywxMCArMTE1LDI0IEBAIFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVNYWMqIHRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhTZXJpYWxpemVk
UGxhdGZvcm1ECiAKIGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMqIHRvU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKiBy
ZXApCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihyZXAt
PnBsYXRmb3JtVHlwZSgpID09IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6Ok9iakMpOworICAg
IFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocmVwLT5wbGF0Zm9ybVR5
cGUoKSA9PSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpOwog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFj
Kj4ocmVwKTsKIH0KIAorTlNBcnJheSogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6YWxs
b3dlZENsYXNzZXNGb3JOYXRpdmVWYWx1ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxSZXRhaW5QdHI8TlNBcnJheT4+IGFsbG93ZWRDbGFzc2VzKEBbIFtOU1N0cmluZyBjbGFzc10s
IFtOU051bWJlciBjbGFzc10sIFtOU0xvY2FsZSBjbGFzc10sIFtOU0RpY3Rpb25hcnkgY2xhc3Nd
LCBbTlNBcnJheSBjbGFzc10sIFtOU0RhdGEgY2xhc3NdIF0pOworICAgIHJldHVybiBhbGxvd2Vk
Q2xhc3Nlcy5nZXQoKS5nZXQoKTsKK30KKworU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmVuY29kYWJsZVZhbHVlKCkgY29uc3QKK3sK
KyAgICBpZiAoW21fbmF0aXZlVmFsdWUuZ2V0KCkgaXNLaW5kT2ZDbGFzczpQQUw6OmdldEFWTWV0
YWRhdGFJdGVtQ2xhc3MoKV0pCisgICAgICAgIHJldHVybiB7IFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDLCBOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0
YUl0ZW0obV9uYXRpdmVWYWx1ZS5nZXQoKSkgfTsKKworICAgIHJldHVybiB7IFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDLCBtX25hdGl2ZVZhbHVlLmdl
dCgpIH07Cit9CisKICNpZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogc3RhdGljIEpTVmFsdWUgKmpz
VmFsdWVXaXRoVmFsdWVJbkNvbnRleHQoaWQgdmFsdWUsIEpTQ29udGV4dCAqY29udGV4dCkKIHsK
QEAgLTE5Myw2ICsyMTUsMTEgQEAgc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoRGljdGlvbmFy
eUluQ29udGV4dChOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnksIEpTQ29udGUKIH0KIAogc3RhdGlj
IEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZNZXRhZGF0YUl0
ZW0gKml0ZW0sIEpTQ29udGV4dCAqY29udGV4dCkKK3sKKyAgICByZXR1cm4ganNWYWx1ZVdpdGhE
aWN0aW9uYXJ5SW5Db250ZXh0KE5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShpdGVtKSwg
Y29udGV4dCk7Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKk5TRGljdGlvbmFyeVdpdGhBVk1l
dGFkYXRhSXRlbShBVk1ldGFkYXRhSXRlbSAqaXRlbSkKIHsKICAgICBOU011dGFibGVEaWN0aW9u
YXJ5ICpkaWN0aW9uYXJ5ID0gW05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeV07CiAKQEAg
LTIzMCw3ICsyNTcsNyBAQCBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhBVk1ldGFkYXRhSXRl
bUluQ29udGV4dChBVk1ldGFkYXRhSXRlbSAqaXRlbSwgSlNDb250ZQogICAgIGlmIChpdGVtLnZh
bHVlKQogICAgICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6aXRlbS52YWx1ZSBmb3JLZXk6QCJk
YXRhIl07CiAKLSAgICByZXR1cm4ganNWYWx1ZVdpdGhEaWN0aW9uYXJ5SW5Db250ZXh0KGRpY3Rp
b25hcnksIGNvbnRleHQpOworICAgIHJldHVybiBkaWN0aW9uYXJ5OwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2NGYzY2Jm
MjBjNTJjMzYyMDZhYWViOWM0OTk3YTcyZjViZTQwZjg3Li40Y2JkNDYxNGI2MmI4YzNlN2Q0ZjU2
Y2E5NTBjOTQ0NzYxMjk5MzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0yNCw4ICsyNCw4IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQog
CiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVk
IHsKLSAgICBDcmVhdGVNZWRpYVBsYXllcihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYktp
dDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9u
KSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXll
ckNvbmZpZ3VyYXRpb24pIFN5bmNocm9ub3VzCi0gICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViS2l0
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkKQorICAgIENyZWF0ZU1lZGlh
UGxheWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51
bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
clByb3h5Q29uZmlndXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRpb24pIC0+IChzdHJ1Y3QgV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5
bmMKKyAgICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkKQogCiAgICAgR2V0U3VwcG9ydGVkVHlwZXMoZW51bTp1aW50OF90IFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdp
bmVJZGVudGlmaWVyKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCiAgICAg
U3VwcG9ydHNUeXBlQW5kQ29kZWNzKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0
IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgdHlwZSkgLT4gKGVudW06dWlu
dDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCkgU3lu
Y2hyb25vdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVUZXh0VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlVGV4dFRyYWNrUHJveHkuY3BwCmluZGV4IGI3NmRjOWIwZDQ2Zjg2Yjc3OTU3ZDNiM2I3ODU0
NTljMzk0OWIyYTYuLjMyYzliN2UxMmU1YTcyY2IwYmJiZDBhOTVlMDMxMThlMDcyNDBiYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRU
cmFja1Byb3h5LmNwcApAQCAtOTYsMjUgKzk2LDI1IEBAIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJv
eHk6Omxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikKICAgICBjb25maWd1cmF0aW9u
Q2hhbmdlZCgpOwogfQogCi12b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNv
bnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkK
K3ZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkRGF0YUN1ZSht
X2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9j
YXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3RoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIo
KSk7CiB9CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLXZvaWQgUmVtb3RlVGV4dFRyYWNr
UHJveHk6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUmVm
PFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+JiYsIGNvbnN0IFN0cmluZyYpCit2b2lkIFJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0
IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4mJiBjdWVEYXRh
LCBjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dl
YlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OkFkZERhdGFDdWVXaXRoVHlwZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEt
PmVuY29kYWJsZVZhbHVlKCksIHR5cGUpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwogfQogCi12
b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5Ojp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYs
IGNvbnN0IE1lZGlhVGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKQordm9pZCBSZW1v
dGVUZXh0VHJhY2tQcm94eTo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBj
b25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3VlRGF0YSkK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6VXBkYXRlRGF0YUN1ZShtX2lk
ZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fcGxheWVy
LmlkZW5kaWZpZXIoKSk7CiB9CiAKLXZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OnJlbW92ZURh
dGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZSYpCit2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjpyZW1vdmVEYXRhQ3VlKGNv
bnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlJiBjdWVEYXRhKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV93
ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpSZW1vdmVEYXRhQ3VlKG1faWRlbnRpZmllciwgc3RhcnQsIGVuZCwgY3VlRGF0YS5lbmNv
ZGFibGVWYWx1ZSgpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAxYzAw
YmRhNTNmNWI2YjQzNGVhNzE5NzlmNGU2MzIxMzgxZGE1NzJjLi44YzlmYTIxYWYzOGE3MTYyYzZj
MjA5ZTkzOTQ2ODkwNmEyNWMzY2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1NlYXJjaFBvcHVwTWVudS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3Jr
ZXJEYXRhLmg+CkBAIC0zMTc0LDQgKzMxNzUsMzIgQEAgT3B0aW9uYWw8U2VyaWFsaXplZEF0dGFj
aG1lbnREYXRhPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGEK
IAogI2VuZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKKyNpZiBFTkFCTEUoVklE
RU8pCit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZVZhbHVlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZSYgdmFsdWUpCit7CisgICAgYm9vbCBoYXNQbGF0Zm9ybURhdGEgPSB2YWx1
ZS5lbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKCk7CisgICAgZW5jb2RlciA8PCBoYXNQbGF0
Zm9ybURhdGE7CisKKyAgICBlbmNvZGVyLmVuY29kZUVudW0odmFsdWUucGxhdGZvcm1UeXBlKCkp
OworICAgIGlmIChoYXNQbGF0Zm9ybURhdGEpCisgICAgICAgIGVuY29kZVBsYXRmb3JtRGF0YShl
bmNvZGVyLCB2YWx1ZSk7Cit9CisKK09wdGlvbmFsPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVW
YWx1ZT4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWU+OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGJvb2wgaGFzUGxhdGZv
cm1EYXRhOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzUGxhdGZvcm1EYXRhKSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlIHR5cGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZUVudW0odHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoaGFz
UGxhdGZvcm1EYXRhKQorICAgICAgICByZXR1cm4gZGVjb2RlUGxhdGZvcm1EYXRhKGRlY29kZXIs
IHR5cGUpOworCisgICAgcmV0dXJuIHt7IH19OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRl
eCA3YmY3MWMxN2FiZGQzZDhiMTMxOTAyMjAwNThjOWY5YzIxOWY2MGIzLi5lMzgxNGUyMWY4MzM2
YWFmMmY0NDQzMjMyZTM0NGUwMDc0ZGFlMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvTm90aWZpY2F0aW9uRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1l
ZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
dG9yZWRDcmVkZW50aWFsc1BvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyVHlwZS5o
PgpAQCAtODE5LDYgKzgyMCwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YT4gewogCiAjZW5kaWYgLy8gRU5BQkxFKEFU
VEFDSE1FTlRfRUxFTUVOVCkKIAorI2lmIEVOQUJMRShWSURFTykKK3RlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiB7
CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHN0
YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNv
cmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gZGVjb2RlUGxhdGZvcm1EYXRhKERl
Y29kZXImLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3Jt
VHlwZSk7Cit9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIElQQwogCiBuYW1lc3BhY2UgV1RG
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRD
b2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tCmluZGV4IGVlMjIyNDIzZjA0N2M5YmYwOTM2MzlkODEyYjE4MmQ4MzYxODBlZmUu
Ljg2MDRjMzRhNGJlNTU3NjRjNWMwMjE4ODc3NzZmOGMwYTFkZDllMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAt
MzcsNiArMzcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5o
PgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9NYWNo
U2VuZFJpZ2h0Lmg+CiAKQEAgLTY2OSw0ICs2NzAsMjcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERl
Y28KIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU8pCit2b2lkIEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlUGxhdGZvcm1EYXRh
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZSYgdGFyZ2V0KQoreworICAgIEFTU0VSVCh0YXJnZXQucGxhdGZvcm1UeXBlKCkgPT0g
V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9i
akMpOworICAgIGlmICh0YXJnZXQucGxhdGZvcm1UeXBlKCkgPT0gV2ViQ29yZTo6U2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpCisgICAgICAgIGVuY29k
ZU9iamVjdChlbmNvZGVyLCB0YXJnZXQubmF0aXZlVmFsdWUoKS5nZXQoKSk7Cit9CisKK09wdGlv
bmFsPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZGVjb2RlUGxhdGZv
cm1EYXRhKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZTo6UGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSkKK3sKKyAgICBBU1NFUlQocGxhdGZv
cm1UeXBlID09IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZv
cm1UeXBlOjpPYmpDKTsKKworICAgIGlmIChwbGF0Zm9ybVR5cGUgIT0gV2ViQ29yZTo6U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBhdXRvIG9iamVjdCA9IGRlY29kZU9iamVjdChkZWNv
ZGVyLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2VkQ2xhc3Nl
c0Zvck5hdGl2ZVZhbHVlcygpKTsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHJldHVybiBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWUgeyBwbGF0Zm9ybVR5cGUsIG9iamVjdC52YWx1ZSgpLmdldCgpIH07Cit9CisjZW5k
aWYKKwogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5k
ZXggOWRjMGViYjYwNjY0ODk3ZjgyZGI3ZTA1MTgwOGYwZTQ4OWRjNTI3OS4uYTYwYmI0ZjljZDIz
MWQ5MTkwMzgyNDIxNDJlM2IwZWU5OGUzN2JkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcApAQCAtNjcsMTMgKzY3LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogfSB3aGls
ZSAoMCkKICNlbmRpZgogCi1NZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1h
bmFnZXIsIGNvbnN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlv
bikKK01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1l
ZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciBlbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBs
YXllcklkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlcikKICAgICA6
IG1fcGxheWVyKHBsYXllcikKICAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcihwbGF5ZXItPmNy
ZWF0ZVJlc291cmNlTG9hZGVyKCkpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1f
cmVtb3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV9pZChwbGF5
ZXJJZGVudGlmaWVyKQotICAgICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCiAjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcigmcGxheWVyLT5tZWRpYVBsYXll
ckxvZ2dlcigpKQogICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKCkpCkBAIC04Miw2ICs4MSwxMiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYQog
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6c2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQoreworICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmln
dXJhdGlvbik7CisgICAgbV9wbGF5ZXItPm1lZGlhRW5naW5lVXBkYXRlZCgpOworfQorCiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogewogICAg
IElORk9fTE9HKExPR0lERU5USUZJRVIpOwpAQCAtNDg0LDYgKzQ4OSw0MCBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aQogICAgICAgICB0cmFjay0+cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFdU
Rk1vdmUoZGF0YSkpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkRGF0
YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSYm
IHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCit7Cisg
ICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAo
Y29uc3QgYXV0byYgdHJhY2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAg
ICB0cmFjay0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXVEZNb3Zl
KGRhdGEpKTsKK30KKworI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQordm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZShUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGEsIFN0cmluZyYmIHR5cGUpCit7Cisg
ICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAo
Y29uc3QgYXV0byYgdHJhY2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAg
ICB0cmFjay0+YWRkRGF0YUN1ZVdpdGhUeXBlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCks
IFdURk1vdmUoZGF0YSksIFdURk1vdmUodHlwZSkpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGEpCit7CisgICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5j
b250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAoY29uc3QgYXV0byYgdHJhY2sgPSBtX3Rl
eHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICB0cmFjay0+dXBkYXRlRGF0YUN1ZShX
VEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXVEZNb3ZlKGRhdGEpKTsKK30KKwordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFDdWUoVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5k
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhKQoreworICAgIEFTU0VSVCht
X3RleHRUcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOworCisgICAgaWYgKGNvbnN0IGF1dG8m
IHRyYWNrID0gbV90ZXh0VHJhY2tzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgdHJhY2stPnJl
bW92ZURhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgV1RGTW92ZShkYXRhKSk7
Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVZp
ZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBhdXRvIGFk
ZFJlc3VsdCA9IG1fdmlkZW9UcmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzN2UxMWY0YWQwMjVhMTgzMGU1Y2YzYzg5
NTAwZGE4Li44YjBjZTM5YzUwMzM1ZjYyNDFjMGU5Mjg0ZmY5MzAxNGRlMTBiZTgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTQwLDEyICs0MCwxNCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CitjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZTsKIGNsYXNzIFRleHRUcmFja1ByaXZhdGVSZW1vdGU7CitjbGFzcyBVc2VyRGF0
YTsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOwogc3RydWN0IFRleHRUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb247CkBAIC01OSwxNCArNjEsMTYgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
IGZpbmFsCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBwbGF5
ZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlciwgY29uc3QgUmVtb3Rl
TWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUoV2ViQ29yZTo6TWVk
aWFQbGF5ZXIqIHBsYXllciwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2Vy
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlPihwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsIG1hbmFnZXIs
IGNvbmZpZ3VyYXRpb24pOworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU+KHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWRlbnRpZmllciwg
bWFuYWdlcik7CiAgICAgfQogCi0gICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKFdlYkNvcmU6
Ok1lZGlhUGxheWVyKiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXImLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mKTsKKyAg
ICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYpOwogICAgIH5N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKTsKIAorICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihS
ZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik7CisKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgdm9p
ZCBpbnZhbGlkYXRlKCkgeyBtX2ludmFsaWQgPSB0cnVlOyB9CkBAIC0xMDQsNiArMTA4LDEzIEBA
IHB1YmxpYzoKICAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UmJik7CiAgICAgdm9pZCBwYXJzZVdlYlZUVEN1
ZURhdGFTdHJ1Y3QoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6SVNPV2Vi
VlRUQ3VlJiYpOwogCisgICAgdm9pZCBhZGREYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVy
ZW5jZSYmKTsKKyNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKKyAgICB2b2lkIGFkZERhdGFDdWVX
aXRoVHlwZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwg
TWVkaWFUaW1lJiYgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUm
JiwgU3RyaW5nJiYpOworICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBXZWJDb3JlOjpT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJik7CisgICAgdm9pZCByZW1vdmVEYXRhQ3Vl
KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRp
bWUmJiBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKKyNl
bmRpZgorCiAgICAgdm9pZCByZXF1ZXN0UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIp
OwogICAgIHZvaWQgcmVzb3VyY2VOb3RTdXBwb3J0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KaW5kZXggYzQwNGRjNjc0MDczN2EzNjhkNGZhNjk0MmE4
ZTk2MDk3Nzg0NjA3Yi4uZTg4OTdiNmExMGExMGQ0YjcwMDkyOThjN2FhMjcyOGJmZTExMjk3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KQEAgLTUwLDEw
ICs1MCwxMiBAQCBtZXNzYWdlcyAtPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgTm90UmVmQ291
bnRlZCB7CiAgICAgUGFyc2VXZWJWVFRDdWVEYXRhKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciB0cmFja0lELCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBQYXJzZVdl
YlZUVEN1ZURhdGFTdHJ1Y3QoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRy
YWNrSUQsIFdlYkNvcmU6OklTT1dlYlZUVEN1ZSBjdWVEYXRhKQogCi0gICAgIyMgQWRkRGF0YUN1
ZShNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRh
KQotICAgICMjIEFkZERhdGFDdWUoTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJD
b3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlIGRhdGEsIFN0cmluZyB0eXBlKQotICAgICMj
IFVwZGF0ZURhdGFDdWUoTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlIGRhdGEpCi0gICAgIyMgUmVtb3ZlRGF0YUN1ZShNZWRp
YVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUgZGF0YSkKKyAgICBBZGREYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIElQQzo6RGF0
YVJlZmVyZW5jZSBkYXRhKQorI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQorICAgIEFkZERhdGFD
dWVXaXRoVHlwZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwg
TWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWUgY3VlRGF0YSwgU3RyaW5nIHR5cGUpCisgICAgVXBkYXRlRGF0YUN1ZShX
ZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgTWVkaWFUaW1lIHN0
YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUgY3VlRGF0YSkKKyAgICBSZW1vdmVEYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNv
cmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBjdWVEYXRhKQorI2VuZGlmCiAKICAg
ICAjIyBBZGRHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhIGN1ZSkKICAgICAjIyBV
cGRhdGVHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhIGN1ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA4ZjA1Mzc2ODM3OGViMDVjZWQzMjFmZmNmMTE5MjNiNTll
ZWZjMzJiLi4zOGE1M2EwY2JjZmY4OWQ0NWViY2Q0MWU3ZTZjMzU4M2JkMjdkM2FhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0xNDQsNyArMTQ0LDYgQEAgdm9pZCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGEKIAogc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW1vdGVNZWRpYVBsYXllcihNZWRp
YVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIGlkID0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKIAogICAgIFJlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uIHByb3h5Q29uZmlndXJhdGlvbjsKICAgICBwcm94eUNvbmZpZ3Vy
YXRpb24ucmVmZXJyZXIgPSBwbGF5ZXItPnJlZmVycmVyKCk7CkBAIC0xNTksMTUgKzE1OCwxOSBA
QCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6OmNyZWF0ZVJlbQogICAgIHByb3h5Q29uZmlndXJhdGlvbi5zaG91bGRV
c2VQZXJzaXN0ZW50Q2FjaGUgPSBwbGF5ZXItPnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpOwog
ICAgIHByb3h5Q29uZmlndXJhdGlvbi5pc1ZpZGVvID0gcGxheWVyLT5pc1ZpZGVvUGxheWVyKCk7
CiAKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOwogICAgIFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5
ZXJDb25maWd1cmF0aW9uOwotICAgIGJvb2wgc2VuZFN1Y2NlZWRlZCA9IGdwdVByb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXIoaWQsIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXI6OlJlcGx5KHBsYXllckNvbmZpZ3VyYXRpb24pLCAw
KTsKLSAgICBpZiAoIXNlbmRTdWNjZWVkZWQpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJGYWls
ZWQgdG8gY3JlYXRlIHJlbW90ZSBtZWRpYSBwbGF5ZXIuIik7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KKyAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpD
cmVhdGVNZWRpYVBsYXllcihpZGVudGlmaWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwcm94
eUNvbmZpZ3VyYXRpb24pLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgaWRl
bnRpZmllcl0oYXV0byYmIHBsYXllckNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgaWYgKCF3ZWFr
VGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoY29uc3QgYXV0byYgcGxh
eWVyID0gbV9wbGF5ZXJzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgICAgIHBsYXllci0+c2V0
Q29uZmlndXJhdGlvbihXVEZNb3ZlKHBsYXllckNvbmZpZ3VyYXRpb24pKTsKKyAgICB9LCAwKTsK
KworICAgIGF1dG8gcmVtb3RlUGxheWVyID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjcmVh
dGUocGxheWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBpZGVudGlmaWVyLCAqdGhpcyk7Cisg
ICAgbV9wbGF5ZXJzLmFkZChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cigqcmVtb3RlUGxheWVyKSk7
CiAKLSAgICBhdXRvIHJlbW90ZVBsYXllciA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y3Jl
YXRlKHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWQsICp0aGlzLCBwbGF5ZXJDb25m
aWd1cmF0aW9uKTsKLSAgICBtX3BsYXllcnMuYWRkKGlkLCBtYWtlV2Vha1B0cigqcmVtb3RlUGxh
eWVyKSk7CiAgICAgcmV0dXJuIHJlbW90ZVBsYXllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmgKaW5kZXggYjI2NmIzOTg0YzM4MGNkMzY0ODIyMTQzNWQzZjg0ZmUxYjVhYTc3NS4uMzIw
ZWMzMDE4OWQ2ZmM1NjJmMmFlYmZmNTFjOTBmNzRlZGY4ZGEwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5oCkBAIC01MSw3ICs1MSw4IEBAIGNsYXNzIFdlYlByb2Nlc3M7CiBzdHJ1Y3QgVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyCi0gICAgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQgeworICAgIDogcHVibGlj
IFdlYlByb2Nlc3NTdXBwbGVtZW50CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyKFdlYlByb2Nlc3MmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Rl
eHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDVjNzg3NjRlMGMxNzQxMGNiMjM3NjhhNDUx
NWJkNDIwNDU4MzQzZjEuLjRmMDkzNTkyMjMyNjQyMDZiNzVkYmFhZmQxYTMxZDhkOGY0NzY3MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcApAQCAtODgsNjYgKzg4LDcyIEBAIHZvaWQgVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihUZXh0VHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhCiAgICAgbV9pc0RlZmF1bHQgPSBjb25maWd1cmF0aW9uLmlzRGVmYXVs
dDsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWdu
ZWQpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1
ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLSNpZiBFTkFCTEUoREFUQUNV
RV9WQUxVRSkKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWU+JiYsIGNvbnN0IFN0cmluZyYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1v
dGU6OnVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShj
b25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZSYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZUdlbmVy
aWNDdWUoR2VuZXJpY0N1ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZv
aWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUm
IHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYp
CisKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0
cmluZyYmIGhlYWRlcikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGll
bnQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICBj
bGllbnQtPnBhcnNlV2ViVlRURmlsZUhlYWRlcihXVEZNb3ZlKGhlYWRlcikpOwogfQogCi0jZW5k
aWYKLQotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGRHZW5lcmljQ3VlKEdlbmVyaWND
dWVEYXRhJikKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRh
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNs
aWVudCgpKQorICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0YShyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKIH0KIAotdm9pZCBU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikK
K3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KElT
T1dlYlZUVEN1ZSYmIGN1ZURhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NF
UlQoY2xpZW50KCkpOworICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKKyAg
ICAgICAgY2xpZW50LT5wYXJzZVdlYlZUVEN1ZURhdGEoV1RGTW92ZShjdWVEYXRhKSk7CiB9CiAK
LXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3Vl
RGF0YSYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWUoTWVkaWFUaW1l
JiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSkKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYgKGF1
dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICBjbGllbnQtPmFkZERhdGFDdWUo
V1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7CiB9CiAKLQotdm9pZCBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQorI2lmIEVO
QUJMRShEQVRBQ1VFX1ZBTFVFKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRh
Q3VlV2l0aFR5cGUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YVZhbHVlLCBTdHJpbmcmJiB0eXBlKQogewogICAg
IEFTU0VSVChjbGllbnQoKSk7CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgp
KQotICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRURmlsZUhlYWRlcihXVEZNb3ZlKGhlYWRlcikp
OworICAgICAgICBjbGllbnQtPmFkZERhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5k
KSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKGRhdGFWYWx1ZS5uYXRpdmVWYWx1
ZSgpLmdldCgpKSwgdHlwZSk7CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFy
c2VXZWJWVFRDdWVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3ZvaWQgVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVk
aWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUp
CiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+
Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRDdWVEYXRhKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCkpOworICAgICAgICBj
bGllbnQtPnVwZGF0ZURhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKGRhdGFWYWx1ZS5uYXRpdmVWYWx1ZSgpLmdldCgp
KSk7CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRh
U3RydWN0KElTT1dlYlZUVEN1ZSYmIGN1ZURhdGEpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1v
dGU6OnJlbW92ZURhdGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YVZhbHVlKQogewogICAgIEFTU0VSVChj
bGllbnQoKSk7CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQotICAgICAg
ICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0YShXVEZNb3ZlKGN1ZURhdGEpKTsKKyAgICAgICAg
Y2xpZW50LT5yZW1vdmVEYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShkYXRhVmFsdWUubmF0aXZlVmFsdWUoKS5nZXQo
KSkpOwogfQotCisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRl
UmVtb3RlLmgKaW5kZXggNmFjOWM2OWQwMTkyMGQ5Yzk0MTMyYjg4M2U1NmY2NWJkOGVjM2NjYy4u
N2I3ZjcwM2NiNDk3ZGVkZWEzOTFkYjU5Y2M5MmJlY2UxNWE1OTJlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRl
UmVtb3RlLmgKQEAgLTMyLDYgKzMyLDExIEBACiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5o
PgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBHZW5lcmljQ3VlRGF0YTsKK2NsYXNzIElT
T1dlYlZUVEN1ZTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTsKQEAgLTQ0LDIxICs0OSwyMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFRleHRUcmFja1ByaXZhdGVSZW1vdGUocGxheWVyLCBpZGVuZGlmaWVy
LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiAgICAgfQogCi0gICAgdm9pZCBhZGREYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lk
KiwgdW5zaWduZWQpOworICAgIHZvaWQgYWRkRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVk
aWFUaW1lJiYgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UmJik7CiAKICNpZiBFTkFCTEUoREFUQUNV
RV9WQUxVRSkKLSAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiYmLCBjb25z
dCBTdHJpbmcmKTsKLSAgICB2b2lkIHVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFy
dCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKTsKLSAg
ICB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFU
aW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKTsKKyAgICB2b2lkIGFkZERhdGFD
dWVXaXRoVHlwZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiwgU3RyaW5nJiYpOworICAgIHZvaWQgdXBkYXRlRGF0YUN1
ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUmJik7CisgICAgdm9pZCByZW1vdmVEYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0
LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKICNl
bmRpZgogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJik7Ci0gICAgdm9p
ZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJik7Ci0gICAgdm9pZCByZW1vdmVHZW5l
cmljQ3VlKEdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9pZCBhZGRHZW5lcmljQ3VlKFdlYkNvcmU6
OkdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKFdlYkNvcmU6Okdl
bmVyaWNDdWVEYXRhJik7CisgICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVy
aWNDdWVEYXRhJik7CiAKICAgICB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJik7
CiAgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7
Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoSVNPV2ViVlRUQ3VlJiYpOworICAg
IHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFdlYkNvcmU6OklTT1dlYlZUVEN1ZSYmKTsK
IAogICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbiYmKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDViMzJlOWQzMDk5NDZjNWViYjU5YmMyOGMyMzU1Njhi
NDJkMTI2MTUuLjU2NTllMDk1MGEzMzM3ZTAwM2E2MWFlZTI2NTViYWQ0ZGFjZDJkNWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMi0xOSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29u
QGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGluLWJhbmQgbWV0YWRhdGEgY3VlcyB3aGVu
IGxvYWRpbmcgbWVkaWEgaW4gdGhlIEdQVSBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc5MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU5NTYxNjQ3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0wMi0xOSAgSmFzb24g
TGF3cmVuY2UgIDxsYXdyZW5jZS5qQGFwcGxlLmNvbT4KIAogICAgICAgICBbIE1hYyB3azIgXSBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2hhci9oYXItcGFnZS5odG1sIGlzIGZsYWt5IGZh
aWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGIyNDAy
Yjk0OWE5ZjdjNzYxYzk3ZDlkMjJmYjZjMTI1NDE4YzRhOTQuLjkxM2E1ZDQ0ODQyZmFiOWNlNDcz
NGJkZGYzN2M0ZWFlNWQyMDc1ZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2dwdS1wcm9jZXNz
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMjI5LDYgKzIyOSw4IEBAIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQuaHRt
bCBbIFBhc3MgXQogaHR0cC90ZXN0cy9tZWRpYS90cmFjay90cmFjay13ZWJ2dHQtc2xvdy1sb2Fk
aW5nLmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvbWVkaWEvdHJhY2svdHJhY2std2VidnR0LXNs
b3ctbG9hZGluZy0yLmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy13ZWJ2
dHQtdHJhY2tzLmh0bWwgWyBQYXNzIF0KK2h0dHAvdGVzdHMvbWVkaWEvdHJhY2staW4tYmFuZC1o
bHMtbWV0YWRhdGEuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9tZWRpYS90cmFjay1pbi1iYW5k
LWhscy1tZXRhZGF0YS1jcmFzaC5odG1sIFsgUGFzcyBdCiAKIGFjY2Vzc2liaWxpdHkvbWVkaWEt
ZWxlbWVudC5odG1sIFsgU2tpcCBdCiBmYXN0L2Jsb2NrL2Zsb2F0L2xpc3QtbWFya2VyLWlzLWZs
b2F0LWNyYXNoLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391243</attachid>
            <date>2020-02-19 18:59:26 -0800</date>
            <delta_ts>2020-02-19 19:04:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207904-20200219185926.patch</filename>
            <type>text/plain</type>
            <size>60719</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2OTE0OWIwYzQxZDFk
NjllMTU5MWNkNTdlNGJkNDU0NTBjMDY3Zi4uNzk5Yzk5ZjhmZTljODhlMWVhYTRiZTBhMTIzYTUx
ZTFkOWQ5NTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTE5ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgaW4t
YmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0
YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4
dFRyYWNrOjpmaW5kSW5jb21wbGV0ZUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFU
ZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRl
eHRUcmFjazo6cmVtb3ZlQ3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0
VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vlc0ludGVybmFsIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpkZXNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpkYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmlzRXF1YWwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6cGxhdGZvcm1UeXBlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmVuY29kaW5nUmVxdWlyZXNQ
bGF0Zm9ybURhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6ZW5jb2RhYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFE
aWRBcnJpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2Vk
Q2xhc3Nlc0Zvck5hdGl2ZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUpOiBEZWxldGVkLgorCiAyMDIwLTAyLTE5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUGxh
dGZvcm1NZWRpYVNlc3Npb246OmNoYXJhY3RlcmlzdGljcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzMjc5NTY3
MjdkNmRlYzhmZjljN2Q4OTY4Y2VlYmEwMTA5ZWYzYjEuLmQxY2E2ZDQzMWY1ZGZhN2QwNzc0MTEy
ZDEzNjVhMmY5ZGQwYTY1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDItMTkg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9y
dCBpbi1iYW5kIG1ldGFkYXRhIGN1ZXMgd2hlbiBsb2FkaW5nIG1lZGlhIGluIHRoZSBHUFUgUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3
OTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTU2MTY0Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4
dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpl
bmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3Rl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjphZGRHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViS2l0OjpU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKToKKyAg
ICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1
ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFD
dWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaDoKKwogMjAyMC0wMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBmYXN0L2RvbS9mb2N1cy1zaGlmdC1jcmFzaC5odG1sIGFuZCBl
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tY2hhbmdlLWluLWRpc2Nvbm5lY3RlZC1mcmFtZS1j
cmFzaC5odG1sIGNyYXNoIGFmdGVyIHIyNTY4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjQ4MGYyYTNm
MjJlZTBkMzc0YWM5ODgwNjA2MjJmMWFkZjJlNzI1Yy4uNDRiY2EyMGI3ZmU1NjY4NTcxZWU4Mjhm
OTc0NWQ1MGUxZjZkZTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NjQsNiArMTc2NCw3IEBAIHBs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAogcGxhdGZv
cm0vU2Nyb2xsYmFyVGhlbWUuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5j
cHAKK3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCiBwbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuY3BwCiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAKIHBsYXRm
b3JtL1NoYXJlZFN0cmluZ0hhc2guY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzhjODM3YThjODQ5NWZkMTNiYzljNzFhZmVm
ZmZmMWNjZWU2NjBmMy4uNGQwYzE1MTUwNTE2YmZmNDExYTYxZjlkMzc5YjAwMTVkNDcyNTFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTM1LDEwICsxMzUsMTEgQEAKIAkJMDc2MzhBOUExODg0NDg3MjAwRTE1QTFCIC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzYzOEE5ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbSAqLzsgfTsKIAkJMDc2OTcwODYxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFj
a0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwICovOyB9OwogCQkw
NzY5NzA4NzE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODUxNDYzQUQ4NzAwRjUwMkNG
IC8qIFRleHRUcmFja0xpc3QuaCAqLzsgfTsKKwkJMDc2RDFDMUYyM0Y2RUI1QjAwRDk1QjA2IC8q
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3NkYwRDBFMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaCAqLzsgfTsKIAkJMDc3NjY0RkQxODNFNkI1QzAwMTMzQjkyIC8q
IEpTUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NzY2NEZCMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50LmggKi87IH07CiAJCTA3N0FGMTQwMThGNEFFNDAwMDAxRUQ2
MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdBRjEzRTE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTA3N0FGMTQzMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzdBRjE0MTE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZU1hYy5oICovOyB9OworCQkwNzdBRjE0MzE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc3QUYxNDExOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNzdCNjQxMzFCOTRGMTJFMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3N0I2NDExMUI5NEYxMkUwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9j
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3
N0I2NDE3MUI5NUY3MDMwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QjY0MTUxQjk1Rjcw
MzAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc4MzIyODUxODAxM0VEODAwOTk5RTBD
IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3ODMyMjgzMTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlLmggKi87IH07CkBAIC01NDczLDYgKzU0NzQsNyBAQAogCQkwNzYzOEE5ODE4
ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBU
ZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRl
eHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzY5NzA4NTE0
NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUZXh0VHJhY2tMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3NkQxQzFEMjNGNkQ5RDgwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBU
cmFja1ByaXZhdGVCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRyYWNrUHJpdmF0ZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZG
MEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkYwRDBB
MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NDkwLDYgKzU0OTIsNyBAQAog
CQkwNzg0NjM0MDE0NUIxNTFBMDBBNThERjEgLyogSlNUcmFja0V2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2MzQxMTQ1QjE1MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUcmFja0V2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBK
U1RyYWNrQ3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVHJhY2tD
dXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc4NjMzRDcyM0ZFMDk2NDAw
ODdBRTIxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3ODdDNDY3MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01l
ZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3ODdDNDY4MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzhFMDk0ODE3RDE3MDk2MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbUF1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1
OTk0LDcgKzI1OTk3LDkgQEAKIAkJCQlCQzI0NDFDMzBFOEI2NUQwMDA1NTMyMEYgLyogU2Nyb2xs
Vmlldy5jcHAgKi8sCiAJCQkJQkM2RDZFMjUwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcu
aCAqLywKIAkJCQlBQjcxNzA4ODBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51Lmgg
Ki8sCisJCQkJMDc4NjMzRDcyM0ZFMDk2NDAwODdBRTIxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUuY3BwICovLAogCQkJCTA3N0FGMTNFMThGNEFFNDAwMDAxRUQ2MSAvKiBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmggKi8sCisJCQkJMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovLAogCQkJCTFBNEE5NTRCMEI0RURDQ0Iw
MDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuY3BwICovLAogCQkJCTFBNEE5NTRDMEI0RURDQ0IwMDJE
OEMzQyAvKiBTaGFyZWRCdWZmZXIuaCAqLywKIAkJCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcyNUIg
LyogU2hhcmVkU3RyaW5nSGFzaC5jcHAgKi8sCkBAIC0zMjI1NCw2ICszMjI1OSw3IEBACiAJCQkJ
RTE4REYzMzUxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzdBRjE0MDE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3QUYxNDMxOEY0QjFCQjAwMDFF
RDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTA3NkQxQzFGMjNGNkVCNUIwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNkY3RjZEMUMzMUUzOUEw
MEYxMTFEQyAvKiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDkz
QUVFMzE5REY1NjQxMDAyQTg2QzMgLyogU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAw
NDAwMWI0YmE5ZWRmYWViZmVhZjFmMjdjZmEwZmNlNDQ3YzExZDg4Li4wZTg2OGEwYmFlN2JkMjI4
MjRhZGNiNDRlYjY4YWUxNzliYzkxY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTEzMzIsNyArMTMzMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgICAgICBtb2RlID0gQXR0cmlidXRlOwogICAg
ICAgICAgICAgQVNTRVJUKG1fcGxheWVyKTsKICAgICAgICAgICAgIGlmICghbV9wbGF5ZXIpIHsK
LSAgICAgICAgICAgICAgICBFUlJPUl9MT0cobG9nU2l0ZUlkZW50aWZpZXIsICIgaGFzIHNyY0F0
dHIgYnV0IG1fcGxheWVyIGlzIG5vdCBjcmVhdGVkIik7CisgICAgICAgICAgICAgICAgRVJST1Jf
TE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiaGFzIHNyY0F0dHIgYnV0IG1fcGxheWVyIGlzIG5vdCBj
cmVhdGVkIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UgaWYgKGF1dG8gZmlyc3RTb3VyY2UgPSBjaGlsZHJlbk9mVHlwZTxIVE1MU291cmNl
RWxlbWVudD4oKnRoaXMpLmZpcnN0KCkpIHsKQEAgLTM0NzMsMTEgKzM0NzMsMTMgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpwbGF5KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2Up
CiAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIGlmIChzdWNjZXNzLnZhbHVlKCkgPT0gTWVk
aWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZCkKICAgICAgICAgICAg
IHNldEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlKEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
OjpQcmV2ZW50ZWRBdXRvcGxheSk7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAi
cmVqZWN0aW5nIHByb21pc2U6ICIsIHN1Y2Nlc3MudmFsdWUoKSk7CiAgICAgICAgIHByb21pc2Uu
cmVqZWN0KE5vdEFsbG93ZWRFcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAobV9lcnJvciAmJiBtX2Vycm9yLT5jb2RlKCkgPT0gTWVkaWFFcnJvcjo6TUVESUFfRVJSX1NS
Q19OT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAicmVq
ZWN0aW5nIHByb21pc2UgYmVjYXVzZSBvZiBlcnJvciIpOwogICAgICAgICBwcm9taXNlLnJlamVj
dChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM0OTUsNiArMzQ5Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6cGxheSgpCiAKICAgICBhdXRvIHN1Y2Nlc3MgPSBtX21lZGlhU2Vzc2lvbi0+
cGxheWJhY2tQZXJtaXR0ZWQoKTsKICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgRVJST1Jf
TE9HKExPR0lERU5USUZJRVIsICJwbGF5YmFjayBub3QgcGVybWl0dGVkOiAiLCBzdWNjZXNzLnZh
bHVlKCkpOwogICAgICAgICBpZiAoc3VjY2Vzcy52YWx1ZSgpID09IE1lZGlhUGxheWJhY2tEZW5p
YWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQpCiAgICAgICAgICAgICBzZXRBdXRvcGxheUV2
ZW50UGxheWJhY2tTdGF0ZShBdXRvcGxheUV2ZW50UGxheWJhY2tTdGF0ZTo6UHJldmVudGVkQXV0
b3BsYXkpOwogICAgICAgICByZXR1cm47CkBAIC01MDk0LDcgKzUwOTcsOCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTWVkaWFFbmdpbmVXYXNVcGRhdGVkKCkKIAogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogewotICAgIElORk9fTE9HKExP
R0lERU5USUZJRVIpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKICAgICBiZWdp
blByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAgICAgdXBkYXRlUmVuZGVyZXIoKTsK
ICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwpAQCAtNTEyOSw3ICs1MTMz
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogCiB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCiB7Ci0gICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7CisgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgbV9w
bGF5ZXItPmVuZ2luZURlc2NyaXB0aW9uKCkpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
ICAgICBtX2Ryb3BwZWRWaWRlb0ZyYW1lcyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAppbmRleCBmMDdmNzM4ZDI4MzYxY2M0YmZk
NDkyYzY0YTg0YWM5YmQ0Y2E2NTA0Li4wYzA0ZjNjMWI1ZjE3MmU3MmRjZjNmYTVlMzViYjBlOTcz
MjA4NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFU
ZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRl
eHRUcmFjay5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjph
ZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW4KIAog
dm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4m
JiBwbGF0Zm9ybVZhbHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgaWYgKG1faW5jb21w
bGV0ZUN1ZU1hcC5jb250YWlucyhwbGF0Zm9ybVZhbHVlLnB0cigpKSkKKyAgICBpZiAoZmluZElu
Y29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8g
Y3VlID0gRGF0YUN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0YXJ0LCBl
bmQsIHBsYXRmb3JtVmFsdWUuY29weVJlZigpLCB0eXBlKTsKQEAgLTcwLDcgKzcwLDcgQEAgdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW4KIAogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUluZmluaXRlKCkg
JiYgbWVkaWFFbGVtZW50KCkpIHsKICAgICAgICAgY3VlLT5zZXRFbmRUaW1lKG1lZGlhRWxlbWVu
dCgpLT5kdXJhdGlvbk1lZGlhVGltZSgpKTsKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLmFk
ZChXVEZNb3ZlKHBsYXRmb3JtVmFsdWUpLCBjdWUuY29weVJlZigpKTsKKyAgICAgICAgbV9pbmNv
bXBsZXRlQ3VlTWFwLmFwcGVuZCgmY3VlLmdldCgpKTsKICAgICB9CiAKICAgICBJTkZPX0xPRyhM
T0dJREVOVElGSUVSLCBjdWUuZ2V0KCkpOwpAQCAtNzgsOSArNzgsMjEgQEAgdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW4KICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAorUmVmUHRyPERhdGFD
dWU+IEluYmFuZERhdGFUZXh0VHJhY2s6OmZpbmRJbmNvbXBsZXRlQ3VlKGNvbnN0IFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmIGN1ZVRvRmluZCkKK3sKKyAgICBhdXRvIGluZGV4ID0gbV9pbmNv
bXBsZXRlQ3VlTWFwLmZpbmRNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgY3VlKSB7CisgICAgICAg
IHJldHVybiBjdWVUb0ZpbmQuaXNFcXVhbCgqY3VlLT5wbGF0Zm9ybVZhbHVlKCkpOworICAgIH0p
OworCisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIHJldHVybiBtX2luY29tcGxldGVDdWVNYXBbaW5kZXhdOworfQorCiB2b2lkIEluYmFu
ZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBpbkVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgcGxhdGZvcm1W
YWx1ZSkKIHsKLSAgICBSZWZQdHI8RGF0YUN1ZT4gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdl
dCgmcGxhdGZvcm1WYWx1ZSk7CisgICAgYXV0byBjdWUgPSBmaW5kSW5jb21wbGV0ZUN1ZShwbGF0
Zm9ybVZhbHVlKTsKICAgICBpZiAoIWN1ZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05MCw3ICsx
MDIsNyBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJgogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUlu
ZmluaXRlKCkgJiYgbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIGVuZCA9IG1lZGlhRWxlbWVudCgp
LT5kdXJhdGlvbk1lZGlhVGltZSgpOwogICAgIGVsc2UKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3Vl
TWFwLnJlbW92ZSgmcGxhdGZvcm1WYWx1ZSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5y
ZW1vdmVGaXJzdChjdWUpOwogCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIndhcyBzdGFy
dCA9ICIsIGN1ZS0+c3RhcnRNZWRpYVRpbWUoKSwgIiwgZW5kID0gIiwgY3VlLT5lbmRNZWRpYVRp
bWUoKSwgIiwgd2lsbCBiZSBzdGFydCA9ICIsIHN0YXJ0LCAiLCBlbmQgPSAiLCBlbmQpOwogCkBA
IC0xMDIsOCArMTE0LDkgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYKIAogdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAg
aWYgKGF1dG8gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLnRha2UoJnBsYXRmb3JtVmFsdWUpKSB7
CisgICAgaWYgKGF1dG8gY3VlID0gZmluZEluY29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSkpIHsK
ICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJlbW92aW5nOiAiLCAqY3VlKTsKKyAg
ICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZUZpcnN0KGN1ZSk7CiAgICAgICAgIEluYmFu
ZFRleHRUcmFjazo6cmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0KIH0KQEAgLTExMiw3ICsxMjUsOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpyZW1vdmVDdWUoVGV4dFRy
YWNrQ3VlJiBjdWUpCiB7CiAgICAgQVNTRVJUKGN1ZS5jdWVUeXBlKCkgPT0gVGV4dFRyYWNrQ3Vl
OjpEYXRhKTsKIAotICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoY29uc3RfY2FzdDxTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlKj4odG9EYXRhQ3VlKCZjdWUpLT5wbGF0Zm9ybVZhbHVlKCkp
KTsKKyAgICBpZiAoYXV0byBwbGF0Zm9ybVZhbHVlID0gY29uc3RfY2FzdDxTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlKj4odG9EYXRhQ3VlKCZjdWUpLT5wbGF0Zm9ybVZhbHVlKCkpKQorICAgICAg
ICByZW1vdmVEYXRhQ3VlKHsgfSwgeyB9LCAqcGxhdGZvcm1WYWx1ZSk7CiAKICAgICByZXR1cm4g
SW5iYW5kVGV4dFRyYWNrOjpyZW1vdmVDdWUoY3VlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKaW5kZXggMWE4YmRmNmFlNTIyOGJlZjBj
ZjhkMWRhZDk1ZTM1NmY2MjhhNDRmMi4uNGZjMzEzZWFjYzUxNzQxMjMwNDY5OGY0MmUzY2FlZWE5
ZDE5Mzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRh
VGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4
dFRyYWNrLmgKQEAgLTU1LDcgKzU1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZURhdGFD
dWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVD
dWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7CiAKLSAgICBIYXNoTWFwPFJlZlB0cjxTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlPiwgUmVmUHRyPERhdGFDdWU+PiBtX2luY29tcGxldGVDdWVNYXA7Cisg
ICAgUmVmUHRyPERhdGFDdWU+IGZpbmRJbmNvbXBsZXRlQ3VlKGNvbnN0IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWUmKTsKKworICAgIFZlY3RvcjxSZWZQdHI8RGF0YUN1ZT4+IG1faW5jb21wbGV0
ZUN1ZU1hcDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgK
aW5kZXggNDdlNmRlZTkzZDA2OTI5OTczNjA5NTFlNTExMjM4ZDllMzA1OThmMi4uMDczNjUyZjQ0
NDUxNWU4ZDhhMGNkZWViMjFjMDZjNDM2NzcxMTJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5oCkBAIC05Niw2ICs5Niw4IEBAIHB1YmxpYzoKICAgICBUZXh0VHJhY2tDdWVM
aXN0KiBjdWVzKCk7CiAgICAgVGV4dFRyYWNrQ3VlTGlzdCogYWN0aXZlQ3VlcygpIGNvbnN0Owog
CisgICAgVGV4dFRyYWNrQ3VlTGlzdCogY3Vlc0ludGVybmFsKCkgY29uc3QgeyByZXR1cm4gbV9j
dWVzLmdldCgpOyB9CisKICAgICB2b2lkIGNsZWFyQ2xpZW50KCkgb3ZlcnJpZGUgeyBtX2NsaWVu
dCA9IG51bGxwdHI7IH0KICAgICBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApp
bmRleCBlNWRmM2MzYjc4NjZlYTlmZDQzZGFjY2Y0YTQ2MjJiZGI2NDg5NDIyLi5jYmRkOGMwMzFk
YjdjZmUwZTg0NTYxMTk3NjI2N2YyNDUxMjI0ZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC0zNDEsMTEgKzM0MSwxMSBAQCB2b2lkIFRleHRUcmFj
a0N1ZTo6c2V0SXNBY3RpdmUoYm9vbCBhY3RpdmUpCiAKIHVuc2lnbmVkIFRleHRUcmFja0N1ZTo6
Y3VlSW5kZXgoKSBjb25zdAogewotICAgIEFTU0VSVChtX3RyYWNrICYmIG1fdHJhY2stPmN1ZXMo
KSk7Ci0gICAgaWYgKCFtX3RyYWNrIHx8ICFtX3RyYWNrLT5jdWVzKCkpCisgICAgQVNTRVJUKG1f
dHJhY2sgJiYgbV90cmFjay0+Y3Vlc0ludGVybmFsKCkpOworICAgIGlmICghbV90cmFjayB8fCAh
bV90cmFjay0+Y3Vlc0ludGVybmFsKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCk7CiAKLSAgICByZXR1cm4gbV90cmFjay0+Y3VlcygpLT5jdWVJ
bmRleCgqdGhpcyk7CisgICAgcmV0dXJuIG1fdHJhY2stPmN1ZXNJbnRlcm5hbCgpLT5jdWVJbmRl
eCgqdGhpcyk7CiB9CiAKIGJvb2wgVGV4dFRyYWNrQ3VlOjppc09yZGVyZWRCZWZvcmUoY29uc3Qg
VGV4dFRyYWNrQ3VlKiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaAppbmRleCA0NzRhYzFkNGY3NzY0YjVjZWMx
M2UxN2M2ZWUxOWE4YjQyZDIwMDc3Li4wODU1MGZkZTc3MTRhMmVkNWRhMGVkYjkxNTU2N2EyMTM4
ZjgwZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAK
KyNpbmNsdWRlICJTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
IApAQCAtMzQsMTYgKzM1LDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWU+IHsKIHB1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWU+IGNyZWF0ZShTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUmJik7CisKICAgICB2aXJ0dWFsIH5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkgPSBkZWZh
dWx0OwogCi0gICAgdmlydHVhbCBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpKU0dsb2Jh
bE9iamVjdCopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVy
PiBkYXRhKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFsKGNvbnN0IFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBKU0M6OkpTVmFs
dWUgZGVzZXJpYWxpemUoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNvbnN0IHsgcmV0dXJuIEpTQzo6
anNOdWxsKCk7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiBkYXRhKCkg
Y29uc3QgeyByZXR1cm4geyB9OyB9CisgICAgdmlydHVhbCBib29sIGlzRXF1YWwoY29uc3QgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBl
bnVtIFBsYXRmb3JtVHlwZSB7CisgICAgZW51bSBjbGFzcyBQbGF0Zm9ybVR5cGUgeworICAgICAg
ICBOb25lLAogICAgICAgICBPYmpDLAogICAgIH07Ci0gICAgdmlydHVhbCBQbGF0Zm9ybVR5cGUg
cGxhdGZvcm1UeXBlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGxhdGZvcm1UeXBlIHBsYXRm
b3JtVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFBsYXRmb3JtVHlwZTo6Tm9uZTsgfQorCisgICAgdmly
dHVhbCBib29sIGVuY29kaW5nUmVxdWlyZXNQbGF0Zm9ybURhdGEoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorCisgICAgdmlydHVhbCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgZW5j
b2RhYmxlVmFsdWUoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIAogcHJvdGVjdGVkOgogICAgIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRiYzYzMzRhYmUyYjM0YzlmNGFlYjJhM2ZmY2JiZmM3OTFjMGFkZjAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWUuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgIWRlZmluZWQoX19PQkpDX18pCit0eXBlZGVmIHN0
cnVjdCBvYmpjX29iamVjdCAqaWQ7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQordXNp
bmcgUGxhdGZvcm1OYXRpdmVWYWx1ZSA9IGlkOworI2Vsc2UKK3VzaW5nIFBsYXRmb3JtTmF0aXZl
VmFsdWUgPSB2b2lkKjsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUpOworcHVibGljOgorICAgIGVudW0gY2xh
c3MgUGxhdGZvcm1UeXBlIHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgT2JqQywKKyAgICB9Owor
CisgICAgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKFBsYXRmb3JtVHlwZSBwbGF0Zm9y
bVR5cGUsIFBsYXRmb3JtTmF0aXZlVmFsdWUgbmF0aXZlVmFsdWUpCisgICAgICAgIDogbV9uYXRp
dmVWYWx1ZShuYXRpdmVWYWx1ZSkKKyAgICAgICAgLCBtX3R5cGUocGxhdGZvcm1UeXBlKQorICAg
IHsKKyAgICB9CisgICAgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKCkgPSBkZWZhdWx0
OworICAgIH5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUoKSA9IGRlZmF1bHQ7CisKKyAg
ICBQbGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisK
KyAgICBQbGF0Zm9ybU5hdGl2ZVZhbHVlIG5hdGl2ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9u
YXRpdmVWYWx1ZTsgfQorCisgICAgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlID09IFBsYXRmb3JtVHlwZTo6T2JqQzsgfQorCitwcm90ZWN0
ZWQ6CisgICAgUGxhdGZvcm1OYXRpdmVWYWx1ZSBtX25hdGl2ZVZhbHVlIHsgbnVsbHB0ciB9Owor
ICAgIFBsYXRmb3JtVHlwZSBtX3R5cGUgeyBQbGF0Zm9ybVR5cGU6Ok5vbmUgfTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggY2E3MWU3ZTBiNTg2YzdiNTViMTEy
NzMyYmFkNTliMDFkOGE0MTgxYi4uNTdkZmNiZjRiYzdjNDg4NDRkMzgxY2IzNWVjYzY0M2MxYWFi
NGI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcApAQCAtMTA5LDYgKzEwOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXkoKSBmaW5h
bCB7IH0KICAgICB2b2lkIHBhdXNlKCkgZmluYWwgeyB9CiAKKyAgICBTdHJpbmcgZW5naW5lRGVz
Y3JpcHRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTnVsbE1lZGlhUGxheWVyIjsgfQorCiAg
ICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51
bGxwdHI7IH0KIAogICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIEZsb2F0U2l6ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA4MjBkYTg5YzQ2
Zjg3MTUzMjk2ZTE2NzRkZjQ2YTFkNzRiZTA2ZjlhLi5iMzdjNDQxMTMxNDk4ODc5NTQ2ZWM4YTU3
YTBkZDhlMTFmNzg0Njk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTMwNzQsNyArMzA3
NCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFE
aWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPE5TQXJyCiAgICAgICAgIGlmIChpdGVtLmtleVNwYWNl
KQogICAgICAgICAgICAgdHlwZSA9IG1ldGFkYXRhVHlwZShpdGVtLmtleVNwYWNlKTsKIAotICAg
ICAgICBtX21ldGFkYXRhVHJhY2stPmFkZERhdGFDdWUoc3RhcnQsIGVuZCwgU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZU1hYzo6Y3JlYXRlKGl0ZW0pLCB0eXBlKTsKKyAgICAgICAgbV9tZXRhZGF0
YVRyYWNrLT5hZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6
OmNyZWF0ZSh7IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZv
cm1UeXBlOjpPYmpDLCBpdGVtIH0pLCB0eXBlKTsKICAgICB9CiAjZW5kaWYKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZU1hYy5oCmluZGV4IGExMGRjY2MzZTFiNWEzMGRmYmYwMTBhNzYwNTA1MjgwNmIyMTk2ZWIu
LjI2ZDg0YjlhODkyZDZhZmM4NGFlOTNlZGJiMmYwYWI0YmQwNmUzZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMuaApAQCAtMjksMjggKzI5LDI2IEBACiAKICNpbmNsdWRlICJTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlLmgiCiAKLSNpZiBVU0UoRk9VTkRBVElPTikgJiYgIWRlZmluZWQoX19PQkpDX18p
Ci10eXBlZGVmIHN0cnVjdCBvYmpjX29iamVjdCAqaWQ7Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjIGZpbmFsIDogcHVi
bGljIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgewogcHVibGljOgorICAgIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVNYWMoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOwogICAg
IHZpcnR1YWwgflNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoKTsKLSAgICBzdGF0aWMgUmVm
PFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IGNyZWF0ZShpZCk7CiAKICAgICBKU0M6OkpTVmFs
dWUgZGVzZXJpYWxpemUoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNvbnN0IGZpbmFsOwogICAgIFJl
ZlB0cjxBcnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0IGZpbmFsOwotCiAgICAgYm9vbCBpc0VxdWFs
KGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25zdCBmaW5hbDsKKyAgICBQbGF0
Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUGxhdGZvcm1UeXBl
OjpPYmpDOyB9CisgICAgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6Ok9iakM7IH0K
KyAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgZW5jb2Rh
YmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKIAogICAgIGlkIG5hdGl2ZVZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9uYXRpdmVWYWx1ZS5nZXQoKTsgfQogCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IE5TQXJyYXkqIGFsbG93ZWRDbGFzc2VzRm9yTmF0aXZlVmFsdWVzKCk7CisKIHByaXZhdGU6Ci0g
ICAgZXhwbGljaXQgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhpZCBuYXRpdmVWYWx1ZSk7
CiAKICAgICBSZXRhaW5QdHI8aWQ+IG1fbmF0aXZlVmFsdWU7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1h
Yy5tbQppbmRleCBiOTQ5ZWI3Y2RkMjAwMzlmMWNmZmVmOGM0YzViY2Q3YjExM2ViMTk5Li5jOTg0
YTllZWE3YTk1OWI2NGFjYzdmMTJkNTE2MDcyMTM4YzdhZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1h
Yy5tbQpAQCAtNDgsMjEgKzQ4LDIzIEBAIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aEFycmF5
SW5Db250ZXh0KE5TQXJyYXkgKiwgSlNDb250ZXh0ICopOwogc3RhdGljIEpTVmFsdWUgKmpzVmFs
dWVXaXRoRGljdGlvbmFyeUluQ29udGV4dChOU0RpY3Rpb25hcnkgKiwgSlNDb250ZXh0ICopOwog
c3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZNZXRh
ZGF0YUl0ZW0gKiwgSlNDb250ZXh0ICopOwogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoVmFs
dWVJbkNvbnRleHQoaWQsIEpTQ29udGV4dCAqKTsKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKk5TRGlj
dGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShBVk1ldGFkYXRhSXRlbSAqKTsKICNlbmRpZgogCi1T
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFj
KGlkIG5hdGl2ZVZhbHVlKQotICAgIDogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSgpCi0gICAg
LCBtX25hdGl2ZVZhbHVlKG5hdGl2ZVZhbHVlKQorUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWU+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUmJiB2YWx1ZSkKIHsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjKFdURk1vdmUodmFsdWUpKSk7CiB9CiAKLVNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVNYWM6On5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKCkKK1Nlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgdmFsdWUpCisgICAgOiBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlKCkKKyAgICAsIG1fbmF0aXZlVmFsdWUodmFsdWUubmF0aXZlVmFsdWUoKSkK
IHsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHZhbHVlLnBs
YXRmb3JtVHlwZSgpID09IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1U
eXBlOjpPYmpDKTsKIH0KIAotUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmNyZWF0ZShpZCBuYXRpdmVWYWx1ZSkKK1NlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVNYWM6On5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKG5hdGl2
ZVZhbHVlKSk7CiB9CiAKIFJlZlB0cjxBcnJheUJ1ZmZlcj4gU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZU1hYzo6ZGF0YSgpIGNvbnN0CkBAIC04OSw3ICs5MSw3IEBAIEpTQzo6SlNWYWx1ZSBTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpkZXNlcmlhbGl6ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpCiAKIGJvb2wgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6aXNFcXVhbChjb25z
dCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAob3Ro
ZXIucGxhdGZvcm1UeXBlKCkgIT0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6T2JqQykKKyAg
ICBpZiAob3RoZXIucGxhdGZvcm1UeXBlKCkgIT0gUGxhdGZvcm1UeXBlOjpPYmpDKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFj
KiBvdGhlck9iakMgPSB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoJm90aGVyKTsKQEAg
LTEwNywxMCArMTA5LDI0IEBAIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMqIHRvU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhTZXJpYWxpemVkUGxhdGZvcm1ECiAKIGNvbnN0IFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMqIHRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhj
b25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKiByZXApCiB7Ci0gICAgUkVMRUFTRV9BU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihyZXAtPnBsYXRmb3JtVHlwZSgpID09IFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWU6Ok9iakMpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04ocmVwLT5wbGF0Zm9ybVR5cGUoKSA9PSBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxj
b25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKj4ocmVwKTsKIH0KIAorTlNBcnJheSog
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6YWxsb3dlZENsYXNzZXNGb3JOYXRpdmVWYWx1
ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNBcnJheT4+IGFs
bG93ZWRDbGFzc2VzKEBbIFtOU1N0cmluZyBjbGFzc10sIFtOU051bWJlciBjbGFzc10sIFtOU0xv
Y2FsZSBjbGFzc10sIFtOU0RpY3Rpb25hcnkgY2xhc3NdLCBbTlNBcnJheSBjbGFzc10sIFtOU0Rh
dGEgY2xhc3NdIF0pOworICAgIHJldHVybiBhbGxvd2VkQ2xhc3Nlcy5nZXQoKS5nZXQoKTsKK30K
KworU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWM6OmVuY29kYWJsZVZhbHVlKCkgY29uc3QKK3sKKyAgICBpZiAoW21fbmF0aXZlVmFsdWUu
Z2V0KCkgaXNLaW5kT2ZDbGFzczpQQUw6OmdldEFWTWV0YWRhdGFJdGVtQ2xhc3MoKV0pCisgICAg
ICAgIHJldHVybiB7IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBl
OjpPYmpDLCBOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0ZW0obV9uYXRpdmVWYWx1ZS5nZXQo
KSkgfTsKKworICAgIHJldHVybiB7IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxh
dGZvcm1UeXBlOjpPYmpDLCBtX25hdGl2ZVZhbHVlLmdldCgpIH07Cit9CisKICNpZiBKU0NfT0JK
Q19BUElfRU5BQkxFRAogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoVmFsdWVJbkNvbnRleHQo
aWQgdmFsdWUsIEpTQ29udGV4dCAqY29udGV4dCkKIHsKQEAgLTE5Myw2ICsyMDksMTEgQEAgc3Rh
dGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29udGV4dChOU0RpY3Rpb25hcnkg
KmRpY3Rpb25hcnksIEpTQ29udGUKIH0KIAogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZN
ZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZNZXRhZGF0YUl0ZW0gKml0ZW0sIEpTQ29udGV4dCAqY29u
dGV4dCkKK3sKKyAgICByZXR1cm4ganNWYWx1ZVdpdGhEaWN0aW9uYXJ5SW5Db250ZXh0KE5TRGlj
dGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShpdGVtKSwgY29udGV4dCk7Cit9CisKK3N0YXRpYyBO
U0RpY3Rpb25hcnkgKk5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShBVk1ldGFkYXRhSXRl
bSAqaXRlbSkKIHsKICAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5ID0gW05TTXV0
YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeV07CiAKQEAgLTIzMCw3ICsyNTEsNyBAQCBzdGF0aWMg
SlNWYWx1ZSAqanNWYWx1ZVdpdGhBVk1ldGFkYXRhSXRlbUluQ29udGV4dChBVk1ldGFkYXRhSXRl
bSAqaXRlbSwgSlNDb250ZQogICAgIGlmIChpdGVtLnZhbHVlKQogICAgICAgICBbZGljdGlvbmFy
eSBzZXRPYmplY3Q6aXRlbS52YWx1ZSBmb3JLZXk6QCJkYXRhIl07CiAKLSAgICByZXR1cm4ganNW
YWx1ZVdpdGhEaWN0aW9uYXJ5SW5Db250ZXh0KGRpY3Rpb25hcnksIGNvbnRleHQpOworICAgIHJl
dHVybiBkaWN0aW9uYXJ5OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2NGYzY2JmMjBjNTJjMzYyMDZhYWViOWM0OTk3YTcy
ZjViZTQwZjg3Li40Y2JkNDYxNGI2MmI4YzNlN2Q0ZjU2Y2E5NTBjOTQ0NzYxMjk5MzJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw4ICsy
NCw4IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVNZWRpYVBsYXll
cihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVt
b3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9uKSAtPiAoc3RydWN0IFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24pIFN5bmNocm9u
b3VzCi0gICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkKQorICAgIENyZWF0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiBwcm94
eUNvbmZpZ3VyYXRpb24pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllckNvbmZp
Z3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKKyAgICAgRGVsZXRlTWVkaWFQbGF5
ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkKQogCiAgICAg
R2V0U3VwcG9ydGVkVHlwZXMoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKSAtPiAoVmVjdG9y
PFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCiAgICAgU3VwcG9ydHNUeXBlQW5kQ29kZWNzKGVu
dW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZp
ZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnMgdHlwZSkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCkgU3luY2hyb25vdXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwCmlu
ZGV4IGI3NmRjOWIwZDQ2Zjg2Yjc3OTU3ZDNiM2I3ODU0NTljMzk0OWIyYTYuLjMyYzliN2UxMmU1
YTcyY2IwYmJiZDBhOTVlMDMxMThlMDcyNDBiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcApAQCAtOTYsMjUg
Kzk2LDI1IEBAIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6Omxhbmd1YWdlQ2hhbmdlZChjb25z
dCBBdG9tU3RyaW5nJikKICAgICBjb25maWd1cmF0aW9uQ2hhbmdlZCgpOwogfQogCi12b2lkIFJl
bW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkKK3ZvaWQgUmVtb3RlVGV4dFRyYWNrUHJv
eHk6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBl
bmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkRGF0YUN1ZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQs
IElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRh
KSwgbGVuZ3RoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CiB9CiAKICNpZiBFTkFCTEUoREFU
QUNVRV9WQUxVRSkKLXZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OmFkZERhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWU+JiYsIGNvbnN0IFN0cmluZyYpCit2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRh
Q3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4mJiBjdWVEYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUpCiB7
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZERhdGFDdWVXaXRoVHlwZSht
X2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEtPmVuY29kYWJsZVZhbHVlKCksIHR5cGUp
LCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwogfQogCi12b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5
Ojp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWUmKQordm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6dXBkYXRl
RGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3VlRGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6VXBkYXRlRGF0YUN1ZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1
ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CiB9CiAKLXZv
aWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OnJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwg
Y29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpCit2b2lkIFJlbW90
ZVRleHRUcmFja1Byb3h5OjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBjdWVEYXRhKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVEYXRhQ3VlKG1faWRl
bnRpZmllciwgc3RhcnQsIGVuZCwgY3VlRGF0YS5lbmNvZGFibGVWYWx1ZSgpKSwgbV9wbGF5ZXIu
aWRlbmRpZmllcigpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAxYzAwYmRhNTNmNWI2YjQzNGVhNzE5NzlmNGU2
MzIxMzgxZGE1NzJjLi44YzlmYTIxYWYzOGE3MTYyYzZjMjA5ZTkzOTQ2ODkwNmEyNWMzY2EzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlcmlh
bGl6ZWRBdHRhY2htZW50RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJEYXRhLmg+CkBAIC0zMTc0LDQgKzMx
NzUsMzIgQEAgT3B0aW9uYWw8U2VyaWFsaXplZEF0dGFjaG1lbnREYXRhPiBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGEKIAogI2VuZGlmIC8vIEVOQUJMRShBVFRB
Q0hNRU5UX0VMRU1FTlQpCiAKKyNpZiBFTkFCTEUoVklERU8pCit2b2lkIEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYgdmFsdWUpCit7
CisgICAgYm9vbCBoYXNQbGF0Zm9ybURhdGEgPSB2YWx1ZS5lbmNvZGluZ1JlcXVpcmVzUGxhdGZv
cm1EYXRhKCk7CisgICAgZW5jb2RlciA8PCBoYXNQbGF0Zm9ybURhdGE7CisKKyAgICBlbmNvZGVy
LmVuY29kZUVudW0odmFsdWUucGxhdGZvcm1UeXBlKCkpOworICAgIGlmIChoYXNQbGF0Zm9ybURh
dGEpCisgICAgICAgIGVuY29kZVBsYXRmb3JtRGF0YShlbmNvZGVyLCB2YWx1ZSk7Cit9CisKK09w
dGlvbmFsPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIGJvb2wgaGFzUGxhdGZvcm1EYXRhOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaGFzUGxhdGZvcm1EYXRhKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1U
eXBlIHR5cGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odHlwZSkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoaGFzUGxhdGZvcm1EYXRhKQorICAgICAgICBy
ZXR1cm4gZGVjb2RlUGxhdGZvcm1EYXRhKGRlY29kZXIsIHR5cGUpOworCisgICAgcmV0dXJuIHt7
IH19OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA3YmY3MWMxN2FiZGQzZDhiMTMxOTAy
MjAwNThjOWY5YzIxOWY2MGIzLi5lMzgxNGUyMWY4MzM2YWFmMmY0NDQzMjMyZTM0NGUwMDc0ZGFl
MmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApA
QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uRGlyZWN0aW9u
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdv
cmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyVHlwZS5oPgpAQCAtODE5LDYgKzgyMCwxNSBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2ht
ZW50RGF0YT4gewogCiAjZW5kaWYgLy8gRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIAorI2lm
IEVOQUJMRShWSURFTykKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUm
KTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZVZhbHVlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3Jt
RGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZh
bHVlJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZT4gZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZSk7Cit9OworI2VuZGlmCisKIH0g
Ly8gbmFtZXNwYWNlIElQQwogCiBuYW1lc3BhY2UgV1RGIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IGVlMjIyNDIz
ZjA0N2M5YmYwOTM2MzlkODEyYjE4MmQ4MzYxODBlZmUuLjhkYTdjMTk4Nzc5MmI4Nzc0OWE2ZWFk
N2U5OTNmOTZjN2UxODFlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9D
Rk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAKQEAgLTY2OSw0
ICs2NzAsMjcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY28KIAogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoVklERU8pCit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZVZhbHVlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYgdmFsdWUpCit7CisgICAg
QVNTRVJUKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKTsKKyAgICBpZiAodmFsdWUucGxhdGZv
cm1UeXBlKCkgPT0gV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0
Zm9ybVR5cGU6Ok9iakMpCisgICAgICAgIGVuY29kZU9iamVjdChlbmNvZGVyLCB2YWx1ZS5uYXRp
dmVWYWx1ZSgpKTsKK30KKworT3B0aW9uYWw8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlPiAgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBl
KQoreworICAgIEFTU0VSVChwbGF0Zm9ybVR5cGUgPT0gV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpOworCisgICAgaWYgKHBsYXRmb3Jt
VHlwZSAhPSBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3Jt
VHlwZTo6T2JqQykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGF1dG8gb2Jq
ZWN0ID0gZGVjb2RlT2JqZWN0KGRlY29kZXIsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVNYWM6OmFsbG93ZWRDbGFzc2VzRm9yTmF0aXZlVmFsdWVzKCkpOworICAgIGlmICghb2Jq
ZWN0KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSB7IHBsYXRmb3JtVHlwZSwgb2JqZWN0LnZh
bHVlKCkuZ2V0KCkgfTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5ZGMwZWJiNjA2NjQ4OTdmODJkYjdlMDUxODA4ZjBl
NDg5ZGM1Mjc5Li5hNjBiYjRmOWNkMjMxZDkxOTAzODI0MjE0MmUzYjBlZTk4ZTM3YmRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC02NywxMyArNjcsMTIgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB9IHdoaWxlICgwKQogI2VuZGlmCiAKLU1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlciwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25m
aWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyJiBtYW5hZ2VyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQogICAgICwgbV9tZWRpYVJl
c291cmNlTG9hZGVyKHBsYXllci0+Y3JlYXRlUmVzb3VyY2VMb2FkZXIoKSkKICAgICAsIG1fbWFu
YWdlcihtYW5hZ2VyKQogICAgICwgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50
aWZpZXIpCiAgICAgLCBtX2lkKHBsYXllcklkZW50aWZpZXIpCi0gICAgLCBtX2NvbmZpZ3VyYXRp
b24oY29uZmlndXJhdGlvbikKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9n
Z2VyKCZwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIo
cGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKQEAgLTgyLDYgKzgxLDEyIEBAIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxh
eWVyKiBwbGF5ZXIsIE1lZGlhUGxhCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9CiAK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1l
ZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgbV9jb25maWd1
cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKKyAgICBtX3BsYXllci0+bWVkaWFFbmdp
bmVVcGRhdGVkKCk7Cit9CisKIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSgpCiB7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CkBAIC00ODQs
NiArNDg5LDQwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1
ZURhdGFTdHJ1Y3QoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpCiAgICAgICAgIHRyYWNrLT5wYXJz
ZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoV1RGTW92ZShkYXRhKSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgSVBDOjpEYXRh
UmVmZXJlbmNlJiYgZGF0YSkKK3sKKyAgICBBU1NFUlQobV90ZXh0VHJhY2tzLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKKworICAgIGlmIChjb25zdCBhdXRvJiB0cmFjayA9IG1fdGV4dFRyYWNrcy5n
ZXQoaWRlbnRpZmllcikpCisgICAgICAgIHRyYWNrLT5hZGREYXRhQ3VlKFdURk1vdmUoc3RhcnQp
LCBXVEZNb3ZlKGVuZCksIFdURk1vdmUoZGF0YSkpOworfQorCisjaWYgRU5BQkxFKERBVEFDVUVf
VkFMVUUpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBl
KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3Rh
cnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0
YSwgU3RyaW5nJiYgdHlwZSkKK3sKKyAgICBBU1NFUlQobV90ZXh0VHJhY2tzLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKKworICAgIGlmIChjb25zdCBhdXRvJiB0cmFjayA9IG1fdGV4dFRyYWNrcy5n
ZXQoaWRlbnRpZmllcikpCisgICAgICAgIHRyYWNrLT5hZGREYXRhQ3VlV2l0aFR5cGUoV1RGTW92
ZShzdGFydCksIFdURk1vdmUoZW5kKSwgV1RGTW92ZShkYXRhKSwgV1RGTW92ZSh0eXBlKSk7Cit9
CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp1cGRhdGVEYXRhQ3VlKFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlh
VGltZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YSkKK3sKKyAg
ICBBU1NFUlQobV90ZXh0VHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKworICAgIGlmIChj
b25zdCBhdXRvJiB0cmFjayA9IG1fdGV4dFRyYWNrcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHRyYWNrLT51cGRhdGVEYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdURk1v
dmUoZGF0YSkpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0
YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSYm
IHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYm
IGRhdGEpCit7CisgICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7
CisKKyAgICBpZiAoY29uc3QgYXV0byYgdHJhY2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZp
ZXIpKQorICAgICAgICB0cmFjay0+cmVtb3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92
ZShlbmQpLCBXVEZNb3ZlKGRhdGEpKTsKK30KKyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV92aWRlb1RyYWNrcy5lbnN1cmUoaWRl
bnRpZmllciwgWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDdmNzM5MDQxOTM3
ZTExZjRhZDAyNWExODMwZTVjZjNjODk1MDBkYTguLjhiMGNlMzljNTAzMzVmNjI0MWMwZTkyODRm
ZjkzMDE0ZGUxMGJlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtNDAsMTIgKzQw
LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElTT1dlYlZUVEN1ZTsKK2NsYXNz
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOwogY2xhc3MgVGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZTsKK2NsYXNzIFVzZXJEYXRhOwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU7
CiBzdHJ1Y3QgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKQEAgLTU5LDE0ICs2MSwxNiBAQCBjbGFzcyBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUgZmluYWwKICNlbmRpZgogewogcHVibGljOgotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXIqIHBsYXllciwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
JiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mIGNvbmZpZ3Vy
YXRpb24pCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU+IGNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVyLCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXImIG1hbmFnZXIpCiAgICAgewotICAgICAgICByZXR1cm4gbWFrZVVuaXF1
ZTxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+KHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmll
ciwgaWRlbnRpZmllciwgbWFuYWdlciwgY29uZmlndXJhdGlvbik7CisgICAgICAgIHJldHVybiBt
YWtlVW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4ocGxheWVyLCByZW1vdGVFbmdpbmVJ
ZGVudGlmaWVyLCBpZGVudGlmaWVyLCBtYW5hZ2VyKTsKICAgICB9CiAKLSAgICBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBXZWJDb3JlOjpNZWRpYVBsYXll
ckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYsIGNvbnN0IFJlbW90ZU1lZGlhUGxh
eWVyQ29uZmlndXJhdGlvbiYpOworICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShXZWJDb3Jl
OjpNZWRpYVBsYXllciosIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyJik7CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpOwogCisgICAg
dm9pZCBzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmKTsK
KwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgZmluYWw7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKSB7IG1faW52YWxpZCA9IHRydWU7
IH0KQEAgLTEwNCw2ICsxMDgsMTMgQEAgcHVibGljOgogICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVE
YXRhKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSYmKTsK
ICAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpJU09XZWJWVFRDdWUmJik7CiAKKyAgICB2b2lkIGFkZERhdGFDdWUo
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGlt
ZSYmIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlJiYpOworI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVF
KQorICAgIHZvaWQgYWRkRGF0YUN1ZVdpdGhUeXBlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmLCBTdHJpbmcmJik7CisgICAgdm9pZCB1cGRhdGVEYXRh
Q3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRp
YVRpbWUmJiBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsK
KyAgICB2b2lkIHJlbW92ZURhdGFDdWUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgTWVk
aWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlJiYpOworI2VuZGlmCisKICAgICB2b2lkIHJlcXVlc3RSZXNvdXJjZShS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW1vdmVSZXNvdXJjZShSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCByZXNvdXJjZU5vdFN1cHBvcnRlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgppbmRleCBjNDA0
ZGM2NzQwNzM3YTM2OGQ0ZmE2OTQyYThlOTYwOTc3ODQ2MDdiLi5lODg5N2I2YTEwYTEwZDRiNzAw
OTI5OGM3YWEyNzI4YmZlMTEyOTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5tZXNzYWdlcy5pbgpAQCAtNTAsMTAgKzUwLDEyIEBAIG1lc3NhZ2VzIC0+IE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSBOb3RSZWZDb3VudGVkIHsKICAgICBQYXJzZVdlYlZUVEN1ZURhdGEoV2Vi
S2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIElQQzo6RGF0YVJlZmVy
ZW5jZSBkYXRhKQogICAgIFBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChXZWJLaXQ6OlRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgV2ViQ29yZTo6SVNPV2ViVlRUQ3VlIGN1ZURh
dGEpCiAKLSAgICAjIyBBZGREYXRhQ3VlKE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwg
SVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCi0gICAgIyMgQWRkRGF0YUN1ZShNZWRpYVRpbWUgc3Rh
cnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgZGF0
YSwgU3RyaW5nIHR5cGUpCi0gICAgIyMgVXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUgc3RhcnQsIE1l
ZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgZGF0YSkKLSAg
ICAjIyBSZW1vdmVEYXRhQ3VlKE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSBkYXRhKQorICAgIEFkZERhdGFDdWUoV2ViS2l0
OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIE1lZGlhVGltZSBzdGFydCwg
TWVkaWFUaW1lIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCisjaWYgRU5BQkxFKERBVEFD
VUVfVkFMVUUpCisgICAgQWRkRGF0YUN1ZVdpdGhUeXBlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdl
YkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBjdWVEYXRhLCBTdHJpbmcgdHlw
ZSkKKyAgICBVcGRhdGVEYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBjdWVEYXRhKQorICAgIFJlbW92ZURhdGFDdWUoV2Vi
S2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIE1lZGlhVGltZSBzdGFy
dCwgTWVkaWFUaW1lIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
IGN1ZURhdGEpCisjZW5kaWYKIAogICAgICMjIEFkZEdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJp
Y0N1ZURhdGEgY3VlKQogICAgICMjIFVwZGF0ZUdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJpY0N1
ZURhdGEgY3VlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IDhmMDUzNzY4Mzc4
ZWIwNWNlZDMyMWZmY2YxMTkyM2I1OWVlZmMzMmIuLjM4YTUzYTBjYmNmZjg5ZDQ1ZWJjZDQxZTdl
NmMzNTgzYmQyN2QzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTE0NCw3
ICsxNDQsNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6aW5pdGlhbGl6ZShjb25z
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYQogCiBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNyZWF0
ZVJlbW90ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKQogewotICAgIGF1
dG8gaWQgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwog
CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0
aW9uOwogICAgIHByb3h5Q29uZmlndXJhdGlvbi5yZWZlcnJlciA9IHBsYXllci0+cmVmZXJyZXIo
KTsKQEAgLTE1OSwxNSArMTU4LDE5IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtCiAgICAgcHJv
eHlDb25maWd1cmF0aW9uLnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSA9IHBsYXllci0+c2hvdWxk
VXNlUGVyc2lzdGVudENhY2hlKCk7CiAgICAgcHJveHlDb25maWd1cmF0aW9uLmlzVmlkZW8gPSBw
bGF5ZXItPmlzVmlkZW9QbGF5ZXIoKTsKIAorICAgIGF1dG8gaWRlbnRpZmllciA9IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAgICAgUmVtb3RlTWVkaWFQ
bGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb247Ci0gICAgYm9vbCBzZW5kU3Vj
Y2VlZGVkID0gZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVBsYXllcihp
ZCwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgcHJveHlDb25maWd1cmF0aW9uKSwgTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVBsYXllcjo6UmVwbHko
cGxheWVyQ29uZmlndXJhdGlvbiksIDApOwotICAgIGlmICghc2VuZFN1Y2NlZWRlZCkgewotICAg
ICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byBjcmVhdGUgcmVtb3RlIG1lZGlhIHBsYXllci4i
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQorICAgIGdwdVByb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkZW50aWZpZXIsIHJlbW90
ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIFt0aGlzLCB3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVyXShhdXRvJiYgcGxheWVyQ29uZmlndXJhdGlv
bikgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkZW50aWZpZXIpKQor
ICAgICAgICAgICAgcGxheWVyLT5zZXRDb25maWd1cmF0aW9uKFdURk1vdmUocGxheWVyQ29uZmln
dXJhdGlvbikpOworICAgIH0sIDApOworCisgICAgYXV0byByZW1vdGVQbGF5ZXIgPSBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZShwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIs
IGlkZW50aWZpZXIsICp0aGlzKTsKKyAgICBtX3BsYXllcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VX
ZWFrUHRyKCpyZW1vdGVQbGF5ZXIpKTsKIAotICAgIGF1dG8gcmVtb3RlUGxheWVyID0gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpjcmVhdGUocGxheWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVy
LCBpZCwgKnRoaXMsIHBsYXllckNvbmZpZ3VyYXRpb24pOwotICAgIG1fcGxheWVycy5hZGQoaWQs
IG1ha2VXZWFrUHRyKCpyZW1vdGVQbGF5ZXIpKTsKICAgICByZXR1cm4gcmVtb3RlUGxheWVyOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAppbmRleCBiMjY2YjM5ODRjMzgwY2QzNjQ4MjIx
NDM1ZDNmODRmZTFiNWFhNzc1Li4zMjBlYzMwMTg5ZDZmYzU2MmYyYWViZmY1MWM5MGY3NGVkZjhk
YTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKQEAgLTUxLDcgKzUxLDggQEAgY2xhc3Mg
V2ViUHJvY2VzczsKIHN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogCiBj
bGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIKLSAgICA6IHB1YmxpYyBXZWJQcm9jZXNzU3Vw
cGxlbWVudCB7CisgICAgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQKKyAgICAsIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+IHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIoV2ViUHJvY2VzcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggNWM3
ODc2NGUwYzE3NDEwY2IyMzc2OGE0NTE1YmQ0MjA0NTgzNDNmMS4uNmE2NjIyYTM5NTQ5OTAwNzEw
NmJkNDkwOTcxMTA1ZDU4YjgzYTk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBAIC04
OCw2NiArODgsNzIgQEAgdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1
cmF0aW9uKFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmEKICAgICBtX2lzRGVmYXVsdCA9
IGNvbmZpZ3VyYXRpb24uaXNEZWZhdWx0OwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1v
dGU6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBl
bmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6
YWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYg
ZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4mJiwgY29uc3QgU3RyaW5nJikKK3Zv
aWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0
YSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRl
UmVtb3RlOjp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlh
VGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikKK3ZvaWQgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTo6cmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpyZW1vdmVE
YXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlJikKKwordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpw
YXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgQVNTRVJUKGNsaWVudCgpKTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0gdGhp
cy0+Y2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFdURk1v
dmUoaGVhZGVyKSk7CiB9CiAKLSNlbmRpZgotCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6
OmFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQVNTRVJUKGNsaWVudCgpKTsKKyAgICBpZiAo
YXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+cGFyc2VXZWJW
VFRDdWVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0
YS5zaXplKCkpOwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUdlbmVy
aWNDdWUoR2VuZXJpY0N1ZURhdGEmKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJz
ZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoSVNPV2ViVlRUQ3VlJiYgY3VlRGF0YSkKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVu
dCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0YShX
VEZNb3ZlKGN1ZURhdGEpKTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpyZW1v
dmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZTo6YWRkRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBJUEM6OkRh
dGFSZWZlcmVuY2UmJiBkYXRhKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQVNTRVJU
KGNsaWVudCgpKTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisgICAg
ICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKIH0K
IAotCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRURmlsZUhlYWRlcihT
dHJpbmcmJiBoZWFkZXIpCisjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCit2b2lkIFRleHRUcmFj
a1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZShNZWRpYVRpbWUmJiBzdGFydCwgTWVk
aWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUs
IFN0cmluZyYmIHR5cGUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byog
Y2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRGaWxl
SGVhZGVyKFdURk1vdmUoaGVhZGVyKSk7CisgICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZN
b3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVh
dGUoV1RGTW92ZShkYXRhVmFsdWUpKSwgdHlwZSk7CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0
YSkKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUm
JiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUm
JiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xp
ZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRDdWVEYXRh
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCkp
OworICAgICAgICBjbGllbnQtPnVwZGF0ZURhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUo
ZW5kKSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUoZGF0YVZhbHVl
KSkpOwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3VlRGF0
YVN0cnVjdChJU09XZWJWVFRDdWUmJiBjdWVEYXRhKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjpyZW1vdmVEYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGFWYWx1ZSkKIHsKICAgICBBU1NFUlQo
Y2xpZW50KCkpOwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAg
ICAgY2xpZW50LT5wYXJzZVdlYlZUVEN1ZURhdGEoV1RGTW92ZShjdWVEYXRhKSk7CisgICAgICAg
IGNsaWVudC0+cmVtb3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CiB9Ci0K
KyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaApp
bmRleCA2YWM5YzY5ZDAxOTIwZDljOTQxMzJiODgzZTU2ZjY1YmQ4ZWMzY2NjLi43YjdmNzAzY2I0
OTdkZWRlYTM5MWRiNTljYzkyYmVjZTE1YTU5MmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaApA
QCAtMzIsNiArMzIsMTEgQEAKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmg+CiAKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdlbmVyaWNDdWVEYXRhOworY2xhc3MgSVNPV2ViVlRUQ3Vl
OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOwpAQCAtNDQsMjEgKzQ5LDIxIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUo
Y29uZmlndXJhdGlvbikpKTsKICAgICB9CiAKLSAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25l
ZCk7CisgICAgdm9pZCBhZGREYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBl
bmQsIElQQzo6RGF0YVJlZmVyZW5jZSYmKTsKIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQot
ICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRp
bWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+JiYsIGNvbnN0IFN0cmluZyYp
OwotICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBN
ZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpOwotICAgIHZvaWQgcmVt
b3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwg
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpOworICAgIHZvaWQgYWRkRGF0YUN1ZVdpdGhUeXBl
KE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZSYmLCBTdHJpbmcmJik7CisgICAgdm9pZCB1cGRhdGVEYXRhQ3VlKE1lZGlhVGlt
ZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1
ZSYmKTsKKyAgICB2b2lkIHJlbW92ZURhdGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGlt
ZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOwogI2VuZGlmCiAKLSAg
ICB2b2lkIGFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKTsKLSAgICB2b2lkIHVwZGF0ZUdl
bmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKTsKLSAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoR2Vu
ZXJpY0N1ZURhdGEmKTsKKyAgICB2b2lkIGFkZEdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJpY0N1
ZURhdGEmKTsKKyAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJpY0N1ZURh
dGEmKTsKKyAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEm
KTsKIAogICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmKTsKICAgICB2b2lk
IHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKLSAgICB2b2lk
IHBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChJU09XZWJWVFRDdWUmJik7CisgICAgdm9pZCBwYXJz
ZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoV2ViQ29yZTo6SVNPV2ViVlRUQ3VlJiYpOwogCiAgICAgdm9p
ZCB1cGRhdGVDb25maWd1cmF0aW9uKFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
JiYpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNWIzMmU5ZDMwOTk0NmM1ZWJiNTliYzI4YzIzNTU2OGI0MmQxMjYxNS4u
NTY1OWUwOTUwYTMzMzdlMDAzYTYxYWVlMjY1NWJhZDRkYWNkMmQ1ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIwLTAyLTE5ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgorCisgICAgICAgIFN1cHBvcnQgaW4tYmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBt
ZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNzkwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBncHUt
cHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAyLTE5ICBKYXNvbiBMYXdyZW5jZSAg
PGxhd3JlbmNlLmpAYXBwbGUuY29tPgogCiAgICAgICAgIFsgTWFjIHdrMiBdIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvaGFyL2hhci1wYWdlLmh0bWwgaXMgZmxha3kgZmFpbGluZwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYjI0MDJiOTQ5YTlmN2M3
NjFjOTdkOWQyMmZiNmMxMjU0MThjNGE5NC4uOTEzYTVkNDQ4NDJmYWI5Y2U0NzM0YmRkZjM3YzRl
YWU1ZDIwNzVlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCkBA
IC0yMjksNiArMjI5LDggQEAgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC5odG1sIFsgUGFzcyBd
CiBodHRwL3Rlc3RzL21lZGlhL3RyYWNrL3RyYWNrLXdlYnZ0dC1zbG93LWxvYWRpbmcuaHRtbCBb
IFBhc3MgXQogaHR0cC90ZXN0cy9tZWRpYS90cmFjay90cmFjay13ZWJ2dHQtc2xvdy1sb2FkaW5n
LTIuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLXdlYnZ0dC10cmFja3Mu
aHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9tZWRpYS90cmFjay1pbi1iYW5kLWhscy1tZXRhZGF0
YS5odG1sIFsgUGFzcyBdCitodHRwL3Rlc3RzL21lZGlhL3RyYWNrLWluLWJhbmQtaGxzLW1ldGFk
YXRhLWNyYXNoLmh0bWwgWyBQYXNzIF0KIAogYWNjZXNzaWJpbGl0eS9tZWRpYS1lbGVtZW50Lmh0
bWwgWyBTa2lwIF0KIGZhc3QvYmxvY2svZmxvYXQvbGlzdC1tYXJrZXItaXMtZmxvYXQtY3Jhc2gu
aHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391245</attachid>
            <date>2020-02-19 19:04:51 -0800</date>
            <delta_ts>2020-02-20 05:56:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207904-20200219190450.patch</filename>
            <type>text/plain</type>
            <size>62790</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2OTE0OWIwYzQxZDFk
NjllMTU5MWNkNTdlNGJkNDU0NTBjMDY3Zi4uNzk5Yzk5ZjhmZTljODhlMWVhYTRiZTBhMTIzYTUx
ZTFkOWQ5NTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTE5ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgaW4t
YmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0
YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4
dFRyYWNrOjpmaW5kSW5jb21wbGV0ZUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFU
ZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRl
eHRUcmFjazo6cmVtb3ZlQ3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0
VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vlc0ludGVybmFsIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpkZXNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpkYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmlzRXF1YWwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6cGxhdGZvcm1UeXBlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmVuY29kaW5nUmVxdWlyZXNQ
bGF0Zm9ybURhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6ZW5jb2RhYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFE
aWRBcnJpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2Vk
Q2xhc3Nlc0Zvck5hdGl2ZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUpOiBEZWxldGVkLgorCiAyMDIwLTAyLTE5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUGxh
dGZvcm1NZWRpYVNlc3Npb246OmNoYXJhY3RlcmlzdGljcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzMjc5NTY3
MjdkNmRlYzhmZjljN2Q4OTY4Y2VlYmEwMTA5ZWYzYjEuLmQxY2E2ZDQzMWY1ZGZhN2QwNzc0MTEy
ZDEzNjVhMmY5ZGQwYTY1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDItMTkg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9y
dCBpbi1iYW5kIG1ldGFkYXRhIGN1ZXMgd2hlbiBsb2FkaW5nIG1lZGlhIGluIHRoZSBHUFUgUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3
OTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTU2MTY0Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4
dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpl
bmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3Rl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjphZGRHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViS2l0OjpU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKToKKyAg
ICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1
ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFD
dWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaDoKKwogMjAyMC0wMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBmYXN0L2RvbS9mb2N1cy1zaGlmdC1jcmFzaC5odG1sIGFuZCBl
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tY2hhbmdlLWluLWRpc2Nvbm5lY3RlZC1mcmFtZS1j
cmFzaC5odG1sIGNyYXNoIGFmdGVyIHIyNTY4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjQ4MGYyYTNm
MjJlZTBkMzc0YWM5ODgwNjA2MjJmMWFkZjJlNzI1Yy4uNDRiY2EyMGI3ZmU1NjY4NTcxZWU4Mjhm
OTc0NWQ1MGUxZjZkZTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NjQsNiArMTc2NCw3IEBAIHBs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAogcGxhdGZv
cm0vU2Nyb2xsYmFyVGhlbWUuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5j
cHAKK3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCiBwbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuY3BwCiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAKIHBsYXRm
b3JtL1NoYXJlZFN0cmluZ0hhc2guY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzhjODM3YThjODQ5NWZkMTNiYzljNzFhZmVm
ZmZmMWNjZWU2NjBmMy4uNGQwYzE1MTUwNTE2YmZmNDExYTYxZjlkMzc5YjAwMTVkNDcyNTFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTM1LDEwICsxMzUsMTEgQEAKIAkJMDc2MzhBOUExODg0NDg3MjAwRTE1QTFCIC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzYzOEE5ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbSAqLzsgfTsKIAkJMDc2OTcwODYxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFj
a0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwICovOyB9OwogCQkw
NzY5NzA4NzE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODUxNDYzQUQ4NzAwRjUwMkNG
IC8qIFRleHRUcmFja0xpc3QuaCAqLzsgfTsKKwkJMDc2RDFDMUYyM0Y2RUI1QjAwRDk1QjA2IC8q
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3NkYwRDBFMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaCAqLzsgfTsKIAkJMDc3NjY0RkQxODNFNkI1QzAwMTMzQjkyIC8q
IEpTUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NzY2NEZCMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50LmggKi87IH07CiAJCTA3N0FGMTQwMThGNEFFNDAwMDAxRUQ2
MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdBRjEzRTE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTA3N0FGMTQzMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzdBRjE0MTE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZU1hYy5oICovOyB9OworCQkwNzdBRjE0MzE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc3QUYxNDExOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNzdCNjQxMzFCOTRGMTJFMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3N0I2NDExMUI5NEYxMkUwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9j
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3
N0I2NDE3MUI5NUY3MDMwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QjY0MTUxQjk1Rjcw
MzAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc4MzIyODUxODAxM0VEODAwOTk5RTBD
IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3ODMyMjgzMTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlLmggKi87IH07CkBAIC01NDczLDYgKzU0NzQsNyBAQAogCQkwNzYzOEE5ODE4
ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBU
ZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRl
eHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzY5NzA4NTE0
NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUZXh0VHJhY2tMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3NkQxQzFEMjNGNkQ5RDgwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBU
cmFja1ByaXZhdGVCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRyYWNrUHJpdmF0ZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZG
MEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkYwRDBB
MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NDkwLDYgKzU0OTIsNyBAQAog
CQkwNzg0NjM0MDE0NUIxNTFBMDBBNThERjEgLyogSlNUcmFja0V2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2MzQxMTQ1QjE1MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUcmFja0V2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBK
U1RyYWNrQ3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVHJhY2tD
dXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc4NjMzRDcyM0ZFMDk2NDAw
ODdBRTIxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3ODdDNDY3MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01l
ZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3ODdDNDY4MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzhFMDk0ODE3RDE3MDk2MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbUF1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1
OTk0LDcgKzI1OTk3LDkgQEAKIAkJCQlCQzI0NDFDMzBFOEI2NUQwMDA1NTMyMEYgLyogU2Nyb2xs
Vmlldy5jcHAgKi8sCiAJCQkJQkM2RDZFMjUwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcu
aCAqLywKIAkJCQlBQjcxNzA4ODBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51Lmgg
Ki8sCisJCQkJMDc4NjMzRDcyM0ZFMDk2NDAwODdBRTIxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUuY3BwICovLAogCQkJCTA3N0FGMTNFMThGNEFFNDAwMDAxRUQ2MSAvKiBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmggKi8sCisJCQkJMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovLAogCQkJCTFBNEE5NTRCMEI0RURDQ0Iw
MDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuY3BwICovLAogCQkJCTFBNEE5NTRDMEI0RURDQ0IwMDJE
OEMzQyAvKiBTaGFyZWRCdWZmZXIuaCAqLywKIAkJCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcyNUIg
LyogU2hhcmVkU3RyaW5nSGFzaC5jcHAgKi8sCkBAIC0zMjI1NCw2ICszMjI1OSw3IEBACiAJCQkJ
RTE4REYzMzUxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzdBRjE0MDE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3QUYxNDMxOEY0QjFCQjAwMDFF
RDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTA3NkQxQzFGMjNGNkVCNUIwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNkY3RjZEMUMzMUUzOUEw
MEYxMTFEQyAvKiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDkz
QUVFMzE5REY1NjQxMDAyQTg2QzMgLyogU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAw
NDAwMWI0YmE5ZWRmYWViZmVhZjFmMjdjZmEwZmNlNDQ3YzExZDg4Li4wZTg2OGEwYmFlN2JkMjI4
MjRhZGNiNDRlYjY4YWUxNzliYzkxY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTEzMzIsNyArMTMzMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgICAgICBtb2RlID0gQXR0cmlidXRlOwogICAg
ICAgICAgICAgQVNTRVJUKG1fcGxheWVyKTsKICAgICAgICAgICAgIGlmICghbV9wbGF5ZXIpIHsK
LSAgICAgICAgICAgICAgICBFUlJPUl9MT0cobG9nU2l0ZUlkZW50aWZpZXIsICIgaGFzIHNyY0F0
dHIgYnV0IG1fcGxheWVyIGlzIG5vdCBjcmVhdGVkIik7CisgICAgICAgICAgICAgICAgRVJST1Jf
TE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiaGFzIHNyY0F0dHIgYnV0IG1fcGxheWVyIGlzIG5vdCBj
cmVhdGVkIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UgaWYgKGF1dG8gZmlyc3RTb3VyY2UgPSBjaGlsZHJlbk9mVHlwZTxIVE1MU291cmNl
RWxlbWVudD4oKnRoaXMpLmZpcnN0KCkpIHsKQEAgLTM0NzMsMTEgKzM0NzMsMTMgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpwbGF5KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2Up
CiAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIGlmIChzdWNjZXNzLnZhbHVlKCkgPT0gTWVk
aWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZCkKICAgICAgICAgICAg
IHNldEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlKEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
OjpQcmV2ZW50ZWRBdXRvcGxheSk7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAi
cmVqZWN0aW5nIHByb21pc2U6ICIsIHN1Y2Nlc3MudmFsdWUoKSk7CiAgICAgICAgIHByb21pc2Uu
cmVqZWN0KE5vdEFsbG93ZWRFcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAobV9lcnJvciAmJiBtX2Vycm9yLT5jb2RlKCkgPT0gTWVkaWFFcnJvcjo6TUVESUFfRVJSX1NS
Q19OT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAicmVq
ZWN0aW5nIHByb21pc2UgYmVjYXVzZSBvZiBlcnJvciIpOwogICAgICAgICBwcm9taXNlLnJlamVj
dChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM0OTUsNiArMzQ5Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6cGxheSgpCiAKICAgICBhdXRvIHN1Y2Nlc3MgPSBtX21lZGlhU2Vzc2lvbi0+
cGxheWJhY2tQZXJtaXR0ZWQoKTsKICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgRVJST1Jf
TE9HKExPR0lERU5USUZJRVIsICJwbGF5YmFjayBub3QgcGVybWl0dGVkOiAiLCBzdWNjZXNzLnZh
bHVlKCkpOwogICAgICAgICBpZiAoc3VjY2Vzcy52YWx1ZSgpID09IE1lZGlhUGxheWJhY2tEZW5p
YWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQpCiAgICAgICAgICAgICBzZXRBdXRvcGxheUV2
ZW50UGxheWJhY2tTdGF0ZShBdXRvcGxheUV2ZW50UGxheWJhY2tTdGF0ZTo6UHJldmVudGVkQXV0
b3BsYXkpOwogICAgICAgICByZXR1cm47CkBAIC01MDk0LDcgKzUwOTcsOCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTWVkaWFFbmdpbmVXYXNVcGRhdGVkKCkKIAogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogewotICAgIElORk9fTE9HKExP
R0lERU5USUZJRVIpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKICAgICBiZWdp
blByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAgICAgdXBkYXRlUmVuZGVyZXIoKTsK
ICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwpAQCAtNTEyOSw3ICs1MTMz
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogCiB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCiB7Ci0gICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7CisgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgbV9w
bGF5ZXItPmVuZ2luZURlc2NyaXB0aW9uKCkpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
ICAgICBtX2Ryb3BwZWRWaWRlb0ZyYW1lcyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAppbmRleCBmMDdmNzM4ZDI4MzYxY2M0YmZk
NDkyYzY0YTg0YWM5YmQ0Y2E2NTA0Li4wYzA0ZjNjMWI1ZjE3MmU3MmRjZjNmYTVlMzViYjBlOTcz
MjA4NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFU
ZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRl
eHRUcmFjay5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjph
ZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW4KIAog
dm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4m
JiBwbGF0Zm9ybVZhbHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgaWYgKG1faW5jb21w
bGV0ZUN1ZU1hcC5jb250YWlucyhwbGF0Zm9ybVZhbHVlLnB0cigpKSkKKyAgICBpZiAoZmluZElu
Y29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8g
Y3VlID0gRGF0YUN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0YXJ0LCBl
bmQsIHBsYXRmb3JtVmFsdWUuY29weVJlZigpLCB0eXBlKTsKQEAgLTcwLDcgKzcwLDcgQEAgdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW4KIAogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUluZmluaXRlKCkg
JiYgbWVkaWFFbGVtZW50KCkpIHsKICAgICAgICAgY3VlLT5zZXRFbmRUaW1lKG1lZGlhRWxlbWVu
dCgpLT5kdXJhdGlvbk1lZGlhVGltZSgpKTsKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLmFk
ZChXVEZNb3ZlKHBsYXRmb3JtVmFsdWUpLCBjdWUuY29weVJlZigpKTsKKyAgICAgICAgbV9pbmNv
bXBsZXRlQ3VlTWFwLmFwcGVuZCgmY3VlLmdldCgpKTsKICAgICB9CiAKICAgICBJTkZPX0xPRyhM
T0dJREVOVElGSUVSLCBjdWUuZ2V0KCkpOwpAQCAtNzgsOSArNzgsMjEgQEAgdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW4KICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAorUmVmUHRyPERhdGFD
dWU+IEluYmFuZERhdGFUZXh0VHJhY2s6OmZpbmRJbmNvbXBsZXRlQ3VlKGNvbnN0IFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmIGN1ZVRvRmluZCkKK3sKKyAgICBhdXRvIGluZGV4ID0gbV9pbmNv
bXBsZXRlQ3VlTWFwLmZpbmRNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgY3VlKSB7CisgICAgICAg
IHJldHVybiBjdWVUb0ZpbmQuaXNFcXVhbCgqY3VlLT5wbGF0Zm9ybVZhbHVlKCkpOworICAgIH0p
OworCisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIHJldHVybiBtX2luY29tcGxldGVDdWVNYXBbaW5kZXhdOworfQorCiB2b2lkIEluYmFu
ZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBpbkVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgcGxhdGZvcm1W
YWx1ZSkKIHsKLSAgICBSZWZQdHI8RGF0YUN1ZT4gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdl
dCgmcGxhdGZvcm1WYWx1ZSk7CisgICAgYXV0byBjdWUgPSBmaW5kSW5jb21wbGV0ZUN1ZShwbGF0
Zm9ybVZhbHVlKTsKICAgICBpZiAoIWN1ZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05MCw3ICsx
MDIsNyBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJgogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUlu
ZmluaXRlKCkgJiYgbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIGVuZCA9IG1lZGlhRWxlbWVudCgp
LT5kdXJhdGlvbk1lZGlhVGltZSgpOwogICAgIGVsc2UKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3Vl
TWFwLnJlbW92ZSgmcGxhdGZvcm1WYWx1ZSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5y
ZW1vdmVGaXJzdChjdWUpOwogCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIndhcyBzdGFy
dCA9ICIsIGN1ZS0+c3RhcnRNZWRpYVRpbWUoKSwgIiwgZW5kID0gIiwgY3VlLT5lbmRNZWRpYVRp
bWUoKSwgIiwgd2lsbCBiZSBzdGFydCA9ICIsIHN0YXJ0LCAiLCBlbmQgPSAiLCBlbmQpOwogCkBA
IC0xMDIsOCArMTE0LDkgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYKIAogdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAg
aWYgKGF1dG8gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLnRha2UoJnBsYXRmb3JtVmFsdWUpKSB7
CisgICAgaWYgKGF1dG8gY3VlID0gZmluZEluY29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSkpIHsK
ICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJlbW92aW5nOiAiLCAqY3VlKTsKKyAg
ICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZUZpcnN0KGN1ZSk7CiAgICAgICAgIEluYmFu
ZFRleHRUcmFjazo6cmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0KIH0KQEAgLTExMiw3ICsxMjUsOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpyZW1vdmVDdWUoVGV4dFRy
YWNrQ3VlJiBjdWUpCiB7CiAgICAgQVNTRVJUKGN1ZS5jdWVUeXBlKCkgPT0gVGV4dFRyYWNrQ3Vl
OjpEYXRhKTsKIAotICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoY29uc3RfY2FzdDxTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlKj4odG9EYXRhQ3VlKCZjdWUpLT5wbGF0Zm9ybVZhbHVlKCkp
KTsKKyAgICBpZiAoYXV0byBwbGF0Zm9ybVZhbHVlID0gY29uc3RfY2FzdDxTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlKj4odG9EYXRhQ3VlKCZjdWUpLT5wbGF0Zm9ybVZhbHVlKCkpKQorICAgICAg
ICByZW1vdmVEYXRhQ3VlKHsgfSwgeyB9LCAqcGxhdGZvcm1WYWx1ZSk7CiAKICAgICByZXR1cm4g
SW5iYW5kVGV4dFRyYWNrOjpyZW1vdmVDdWUoY3VlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKaW5kZXggMWE4YmRmNmFlNTIyOGJlZjBj
ZjhkMWRhZDk1ZTM1NmY2MjhhNDRmMi4uNGZjMzEzZWFjYzUxNzQxMjMwNDY5OGY0MmUzY2FlZWE5
ZDE5Mzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRh
VGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4
dFRyYWNrLmgKQEAgLTU1LDcgKzU1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZURhdGFD
dWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVD
dWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7CiAKLSAgICBIYXNoTWFwPFJlZlB0cjxTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlPiwgUmVmUHRyPERhdGFDdWU+PiBtX2luY29tcGxldGVDdWVNYXA7Cisg
ICAgUmVmUHRyPERhdGFDdWU+IGZpbmRJbmNvbXBsZXRlQ3VlKGNvbnN0IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWUmKTsKKworICAgIFZlY3RvcjxSZWZQdHI8RGF0YUN1ZT4+IG1faW5jb21wbGV0
ZUN1ZU1hcDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgK
aW5kZXggNDdlNmRlZTkzZDA2OTI5OTczNjA5NTFlNTExMjM4ZDllMzA1OThmMi4uMDczNjUyZjQ0
NDUxNWU4ZDhhMGNkZWViMjFjMDZjNDM2NzcxMTJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5oCkBAIC05Niw2ICs5Niw4IEBAIHB1YmxpYzoKICAgICBUZXh0VHJhY2tDdWVM
aXN0KiBjdWVzKCk7CiAgICAgVGV4dFRyYWNrQ3VlTGlzdCogYWN0aXZlQ3VlcygpIGNvbnN0Owog
CisgICAgVGV4dFRyYWNrQ3VlTGlzdCogY3Vlc0ludGVybmFsKCkgY29uc3QgeyByZXR1cm4gbV9j
dWVzLmdldCgpOyB9CisKICAgICB2b2lkIGNsZWFyQ2xpZW50KCkgb3ZlcnJpZGUgeyBtX2NsaWVu
dCA9IG51bGxwdHI7IH0KICAgICBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApp
bmRleCBlNWRmM2MzYjc4NjZlYTlmZDQzZGFjY2Y0YTQ2MjJiZGI2NDg5NDIyLi5jYmRkOGMwMzFk
YjdjZmUwZTg0NTYxMTk3NjI2N2YyNDUxMjI0ZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC0zNDEsMTEgKzM0MSwxMSBAQCB2b2lkIFRleHRUcmFj
a0N1ZTo6c2V0SXNBY3RpdmUoYm9vbCBhY3RpdmUpCiAKIHVuc2lnbmVkIFRleHRUcmFja0N1ZTo6
Y3VlSW5kZXgoKSBjb25zdAogewotICAgIEFTU0VSVChtX3RyYWNrICYmIG1fdHJhY2stPmN1ZXMo
KSk7Ci0gICAgaWYgKCFtX3RyYWNrIHx8ICFtX3RyYWNrLT5jdWVzKCkpCisgICAgQVNTRVJUKG1f
dHJhY2sgJiYgbV90cmFjay0+Y3Vlc0ludGVybmFsKCkpOworICAgIGlmICghbV90cmFjayB8fCAh
bV90cmFjay0+Y3Vlc0ludGVybmFsKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCk7CiAKLSAgICByZXR1cm4gbV90cmFjay0+Y3VlcygpLT5jdWVJ
bmRleCgqdGhpcyk7CisgICAgcmV0dXJuIG1fdHJhY2stPmN1ZXNJbnRlcm5hbCgpLT5jdWVJbmRl
eCgqdGhpcyk7CiB9CiAKIGJvb2wgVGV4dFRyYWNrQ3VlOjppc09yZGVyZWRCZWZvcmUoY29uc3Qg
VGV4dFRyYWNrQ3VlKiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDliZmI4YTZh
MWUwN2M0ZWZmNGZhNmRkZDA5ZTNlNzlhMWU3OWU3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCkBAIC0wLDAg
KzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oIgorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBF
TkFCTEUoREFUQUNVRV9WQUxVRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIVBMQVRG
T1JNKENPQ09BKQorUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWU6OmNyZWF0ZShTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJikKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkpOwor
fQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgKaW5kZXgg
NDc0YWMxZDRmNzc2NGI1Y2VjMTNlMTdjNmVlMTlhOGI0MmQyMDA3Ny4uMDg1NTBmZGU3NzE0YTJl
ZDVkYTBlZGI5MTU1NjdhMjEzOGY4MGZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAj
aWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZh
bHVlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTM0LDE2ICszNSwyMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiB7CiBwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBjcmVhdGUoU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOworCiAgICAgdmlydHVhbCB+U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZSgpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGRlc2Vy
aWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQ
dHI8SlNDOjpBcnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBj
b25zdCB7IHJldHVybiBKU0M6OmpzTnVsbCgpOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SlNDOjpB
cnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc0VxdWFsKGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCi0gICAgZW51bSBQbGF0Zm9ybVR5cGUgeworICAgIGVudW0gY2xhc3MgUGxh
dGZvcm1UeXBlIHsKKyAgICAgICAgTm9uZSwKICAgICAgICAgT2JqQywKICAgICB9OwotICAgIHZp
cnR1YWwgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUoKSBjb25zdCB7IHJldHVybiBQbGF0Zm9ybVR5cGU6
Ok5vbmU7IH0KKworICAgIHZpcnR1YWwgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRh
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlIGVuY29kYWJsZVZhbHVlKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiAK
IHByb3RlY3RlZDoKICAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkgPSBkZWZhdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmM2MzM0YWJlMmIzNGM5ZjRhZWIyYTNmZmNiYmZj
NzkxYzBhZGYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmICFkZWZpbmVkKF9f
T0JKQ19fKQordHlwZWRlZiBzdHJ1Y3Qgb2JqY19vYmplY3QgKmlkOworI2VuZGlmCisKKyNpZiBQ
TEFURk9STShDT0NPQSkKK3VzaW5nIFBsYXRmb3JtTmF0aXZlVmFsdWUgPSBpZDsKKyNlbHNlCit1
c2luZyBQbGF0Zm9ybU5hdGl2ZVZhbHVlID0gdm9pZCo7CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgeworICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKTsKK3B1
YmxpYzoKKyAgICBlbnVtIGNsYXNzIFBsYXRmb3JtVHlwZSB7CisgICAgICAgIE5vbmUsCisgICAg
ICAgIE9iakMsCisgICAgfTsKKworICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZShQ
bGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlLCBQbGF0Zm9ybU5hdGl2ZVZhbHVlIG5hdGl2ZVZhbHVl
KQorICAgICAgICA6IG1fbmF0aXZlVmFsdWUobmF0aXZlVmFsdWUpCisgICAgICAgICwgbV90eXBl
KHBsYXRmb3JtVHlwZSkKKyAgICB7CisgICAgfQorICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZSgpID0gZGVmYXVsdDsKKyAgICB+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
KCkgPSBkZWZhdWx0OworCisgICAgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQorCisgICAgUGxhdGZvcm1OYXRpdmVWYWx1ZSBuYXRpdmVWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlVmFsdWU7IH0KKworICAgIGJvb2wgZW5jb2RpbmdSZXF1
aXJlc1BsYXRmb3JtRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBQbGF0Zm9ybVR5cGU6
Ok9iakM7IH0KKworcHJvdGVjdGVkOgorICAgIFBsYXRmb3JtTmF0aXZlVmFsdWUgbV9uYXRpdmVW
YWx1ZSB7IG51bGxwdHIgfTsKKyAgICBQbGF0Zm9ybVR5cGUgbV90eXBlIHsgUGxhdGZvcm1UeXBl
OjpOb25lIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGNh
NzFlN2UwYjU4NmM3YjU1YjExMjczMmJhZDU5YjAxZDhhNDE4MWIuLjU3ZGZjYmY0YmM3YzQ4ODQ0
ZDM4MWNiMzVlY2M2NDNjMWFhYjRiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTEwOSw2ICsxMDksOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwbGF5KCkgZmluYWwgeyB9CiAgICAgdm9pZCBwYXVzZSgpIGZpbmFsIHsgfQogCisg
ICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk51bGxN
ZWRpYVBsYXllciI7IH0KKwogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBGbG9hdFNpemUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KaW5kZXggODIwZGE4OWM0NmY4NzE1MzI5NmUxNjc0ZGY0NmExZDc0YmUwNmY5YS4uYjM3YzQ0
MTEzMTQ5ODg3OTU0NmVjOGE1N2EwZGQ4ZTExZjc4NDY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCkBAIC0zMDc0LDcgKzMwNzQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKGNvbnN0IFJldGFpblB0cjxOU0FycgogICAgICAg
ICBpZiAoaXRlbS5rZXlTcGFjZSkKICAgICAgICAgICAgIHR5cGUgPSBtZXRhZGF0YVR5cGUoaXRl
bS5rZXlTcGFjZSk7CiAKLSAgICAgICAgbV9tZXRhZGF0YVRyYWNrLT5hZGREYXRhQ3VlKHN0YXJ0
LCBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmNyZWF0ZShpdGVtKSwgdHlwZSk7
CisgICAgICAgIG1fbWV0YWRhdGFUcmFjay0+YWRkRGF0YUN1ZShzdGFydCwgZW5kLCBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoeyBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgaXRlbSB9KSwgdHlwZSk7CiAgICAgfQog
I2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaAppbmRleCBhMTBkY2NjM2UxYjVhMzBkZmJmMDEw
YTc2MDUwNTI4MDZiMjE5NmViLi4yNmQ4NGI5YTg5MmQ2YWZjODRhZTkzZWRiYjJmMGFiNGJkMDZl
M2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmgKQEAgLTI5LDI4ICsyOSwyNiBAQAogCiAjaW5jbHVk
ZSAiU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oIgogCi0jaWYgVVNFKEZPVU5EQVRJT04pICYm
ICFkZWZpbmVkKF9fT0JKQ19fKQotdHlwZWRlZiBzdHJ1Y3Qgb2JqY19vYmplY3QgKmlkOwotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZU1hYyBmaW5hbCA6IHB1YmxpYyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlIHsKIHB1Ymxp
YzoKKyAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZSYmKTsKICAgICB2aXJ0dWFsIH5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFj
KCk7Ci0gICAgc3RhdGljIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBjcmVhdGUoaWQp
OwogCiAgICAgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBj
b25zdCBmaW5hbDsKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGRhdGEoKSBjb25zdCBmaW5hbDsK
LQogICAgIGJvb2wgaXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikgY29u
c3QgZmluYWw7CisgICAgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFBsYXRmb3JtVHlwZTo6T2JqQzsgfQorICAgIGJvb2wgZW5jb2RpbmdSZXF1aXJlc1Bs
YXRmb3JtRGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIFBsYXRmb3Jt
VHlwZSBwbGF0Zm9ybVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlOjpPYmpDOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZVZhbHVlIGVuY29kYWJsZVZhbHVlKCkgY29uc3QgZmluYWw7CiAKICAgICBpZCBuYXRp
dmVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlVmFsdWUuZ2V0KCk7IH0KIAorICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5KiBhbGxvd2VkQ2xhc3Nlc0Zvck5hdGl2ZVZhbHVl
cygpOworCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVN
YWMoaWQgbmF0aXZlVmFsdWUpOwogCiAgICAgUmV0YWluUHRyPGlkPiBtX25hdGl2ZVZhbHVlOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVNYWMubW0KaW5kZXggYjk0OWViN2NkZDIwMDM5ZjFjZmZlZjhjNGM1
YmNkN2IxMTNlYjE5OS4uYzk4NGE5ZWVhN2E5NTliNjRhY2M3ZjEyZDUxNjA3MjEzOGM3YWUyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVNYWMubW0KQEAgLTQ4LDIxICs0OCwyMyBAQCBzdGF0aWMgSlNWYWx1
ZSAqanNWYWx1ZVdpdGhBcnJheUluQ29udGV4dChOU0FycmF5ICosIEpTQ29udGV4dCAqKTsKIHN0
YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aERpY3Rpb25hcnlJbkNvbnRleHQoTlNEaWN0aW9uYXJ5
ICosIEpTQ29udGV4dCAqKTsKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJ
dGVtSW5Db250ZXh0KEFWTWV0YWRhdGFJdGVtICosIEpTQ29udGV4dCAqKTsKIHN0YXRpYyBKU1Zh
bHVlICpqc1ZhbHVlV2l0aFZhbHVlSW5Db250ZXh0KGlkLCBKU0NvbnRleHQgKik7CitzdGF0aWMg
TlNEaWN0aW9uYXJ5ICpOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0ZW0oQVZNZXRhZGF0YUl0
ZW0gKik7CiAjZW5kaWYKIAotU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6U2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYyhpZCBuYXRpdmVWYWx1ZSkKLSAgICA6IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWUoKQotICAgICwgbV9uYXRpdmVWYWx1ZShuYXRpdmVWYWx1ZSkKK1JlZjxTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUo
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgdmFsdWUpCiB7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhXVEZNb3ZlKHZhbHVlKSkp
OwogfQogCi1TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYygpCitTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjKFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIHZhbHVlKQor
ICAgIDogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSgpCisgICAgLCBtX25hdGl2ZVZhbHVlKHZh
bHVlLm5hdGl2ZVZhbHVlKCkpCiB7CisgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTih2YWx1ZS5wbGF0Zm9ybVR5cGUoKSA9PSBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQyk7CiB9CiAKLVJlZjxTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlPiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUoaWQgbmF0aXZl
VmFsdWUpCitTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYygpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZU1hYyhuYXRpdmVWYWx1ZSkpOwogfQogCiBSZWZQdHI8QXJyYXlCdWZmZXI+IFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmRhdGEoKSBjb25zdApAQCAtODksNyArOTEsNyBA
QCBKU0M6OkpTVmFsdWUgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6ZGVzZXJpYWxpemUo
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aQogCiBib29sIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWM6OmlzRXF1YWwoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgb3RoZXIpIGNv
bnN0CiB7Ci0gICAgaWYgKG90aGVyLnBsYXRmb3JtVHlwZSgpICE9IFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWU6Ok9iakMpCisgICAgaWYgKG90aGVyLnBsYXRmb3JtVHlwZSgpICE9IFBsYXRmb3Jt
VHlwZTo6T2JqQykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY29uc3QgU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYyogb3RoZXJPYmpDID0gdG9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjKCZvdGhlcik7CkBAIC0xMDcsMTAgKzEwOSwyNCBAQCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlTWFjKiB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoU2VyaWFsaXplZFBsYXRm
b3JtRAogCiBjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKiB0b1NlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVNYWMoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSogcmVwKQog
ewotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocmVwLT5wbGF0
Zm9ybVR5cGUoKSA9PSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpPYmpDKTsKKyAgICBSRUxF
QVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHJlcC0+cGxhdGZvcm1UeXBlKCkg
PT0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKTsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyo+KHJl
cCk7CiB9CiAKK05TQXJyYXkqIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmFsbG93ZWRD
bGFzc2VzRm9yTmF0aXZlVmFsdWVzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0
YWluUHRyPE5TQXJyYXk+PiBhbGxvd2VkQ2xhc3NlcyhAWyBbTlNTdHJpbmcgY2xhc3NdLCBbTlNO
dW1iZXIgY2xhc3NdLCBbTlNMb2NhbGUgY2xhc3NdLCBbTlNEaWN0aW9uYXJ5IGNsYXNzXSwgW05T
QXJyYXkgY2xhc3NdLCBbTlNEYXRhIGNsYXNzXSBdKTsKKyAgICByZXR1cm4gYWxsb3dlZENsYXNz
ZXMuZ2V0KCkuZ2V0KCk7Cit9CisKK1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSgpIGNvbnN0Cit7CisgICAg
aWYgKFttX25hdGl2ZVZhbHVlLmdldCgpIGlzS2luZE9mQ2xhc3M6UEFMOjpnZXRBVk1ldGFkYXRh
SXRlbUNsYXNzKCldKQorICAgICAgICByZXR1cm4geyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
VmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgTlNEaWN0aW9uYXJ5V2l0aEFWTWV0YWRhdGFJdGVt
KG1fbmF0aXZlVmFsdWUuZ2V0KCkpIH07CisKKyAgICByZXR1cm4geyBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgbV9uYXRpdmVWYWx1ZS5nZXQoKSB9
OworfQorCiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVl
V2l0aFZhbHVlSW5Db250ZXh0KGlkIHZhbHVlLCBKU0NvbnRleHQgKmNvbnRleHQpCiB7CkBAIC0x
OTMsNiArMjA5LDExIEBAIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aERpY3Rpb25hcnlJbkNv
bnRleHQoTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5LCBKU0NvbnRlCiB9CiAKIHN0YXRpYyBKU1Zh
bHVlICpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KEFWTWV0YWRhdGFJdGVtICpp
dGVtLCBKU0NvbnRleHQgKmNvbnRleHQpCit7CisgICAgcmV0dXJuIGpzVmFsdWVXaXRoRGljdGlv
bmFyeUluQ29udGV4dChOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0ZW0oaXRlbSksIGNvbnRl
eHQpOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0
YUl0ZW0oQVZNZXRhZGF0YUl0ZW0gKml0ZW0pCiB7CiAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAq
ZGljdGlvbmFyeSA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOwogCkBAIC0yMzAs
NyArMjUxLDcgQEAgc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0ZW1JbkNv
bnRleHQoQVZNZXRhZGF0YUl0ZW0gKml0ZW0sIEpTQ29udGUKICAgICBpZiAoaXRlbS52YWx1ZSkK
ICAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0Oml0ZW0udmFsdWUgZm9yS2V5OkAiZGF0YSJd
OwogCi0gICAgcmV0dXJuIGpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29udGV4dChkaWN0aW9uYXJ5
LCBjb250ZXh0KTsKKyAgICByZXR1cm4gZGljdGlvbmFyeTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNjRmM2NiZjIwYzUy
YzM2MjA2YWFlYjljNDk5N2E3MmY1YmU0MGY4Ny4uNGNiZDQ2MTRiNjJiOGMzZTdkNGY1NmNhOTUw
Yzk0NDc2MTI5OTMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMjQsOCArMjQsOCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVz
c2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7Ci0g
ICAgQ3JlYXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFF
bmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uIHByb3h5Q29uZmlndXJhdGlvbikgLT4g
KHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25m
aWd1cmF0aW9uKSBTeW5jaHJvbm91cwotICAgIERlbGV0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKKyAgICBDcmVhdGVNZWRpYVBsYXll
cihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVt
b3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9uKSAtPiAoc3RydWN0IFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24pIEFzeW5jCisg
ICAgIERlbGV0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZCkKIAogICAgIEdldFN1cHBvcnRlZFR5cGVzKGVudW06dWludDhfdCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRl
bnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKSBTeW5jaHJvbm91cwogICAgIFN1cHBv
cnRzVHlwZUFuZENvZGVjcyhlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJD
b3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHR5cGUpIC0+IChlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIHN1cHBvcnQpIFN5bmNocm9u
b3VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4
dFRyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRl
eHRUcmFja1Byb3h5LmNwcAppbmRleCBiNzZkYzliMGQ0NmY4NmI3Nzk1N2QzYjNiNzg1NDU5YzM5
NDliMmE2Li4zMmM5YjdlMTJlNWE3MmNiMGJiYmQwYTk1ZTAzMTE4ZTA3MjQwYmMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQ
cm94eS5jcHAKQEAgLTk2LDI1ICs5NiwyNSBAQCB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5Ojps
YW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpCiAgICAgY29uZmlndXJhdGlvbkNoYW5n
ZWQoKTsKIH0KIAotdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRkRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpCit2b2lk
IFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZERhdGFDdWUobV9pZGVu
dGlmaWVyLCBzdGFydCwgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90Kj4oZGF0YSksIGxlbmd0aCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwog
fQogCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCi12b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5
OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFJlZjxTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlPiYmLCBjb25zdCBTdHJpbmcmKQordm9pZCBSZW1vdGVUZXh0
VHJhY2tQcm94eTo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRp
YVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+JiYgY3VlRGF0YSwgY29u
c3QgU3RyaW5nJiB0eXBlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpB
ZGREYXRhQ3VlV2l0aFR5cGUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLT5lbmNv
ZGFibGVWYWx1ZSgpLCB0eXBlKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKIH0KIAotdm9pZCBS
ZW1vdGVUZXh0VHJhY2tQcm94eTo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBjb25z
dCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikKK3ZvaWQgUmVtb3RlVGV4
dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3Qg
TWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmIGN1ZURhdGEpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlVwZGF0ZURhdGFDdWUobV9pZGVudGlm
aWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLmVuY29kYWJsZVZhbHVlKCkpLCBtX3BsYXllci5pZGVu
ZGlmaWVyKCkpOwogfQogCi12b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjpyZW1vdmVEYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUmKQordm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6cmVtb3ZlRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZSYgY3VlRGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
UmVtb3ZlRGF0YUN1ZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEuZW5jb2RhYmxl
VmFsdWUoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggMWMwMGJkYTUz
ZjViNmI0MzRlYTcxOTc5ZjRlNjMyMTM4MWRhNTcyYy4uOGM5ZmEyMWFmMzhhNzE2MmM2YzIwOWU5
Mzk0Njg5MDZhMjVjM2NhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWFy
Y2hQb3B1cE1lbnUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkQXR0YWNobWVudERhdGEuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2VydmljZVdvcmtlckNsaWVudERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRGF0
YS5oPgpAQCAtMzE3NCw0ICszMTc1LDMyIEBAIE9wdGlvbmFsPFNlcmlhbGl6ZWRBdHRhY2htZW50
RGF0YT4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkQXR0YWNobWVudERhCiAKICNl
bmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCisjaWYgRU5BQkxFKFZJREVPKQor
dm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1
ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWUmIHZhbHVlKQoreworICAgIGJvb2wgaGFzUGxhdGZvcm1EYXRhID0gdmFsdWUuZW5j
b2RpbmdSZXF1aXJlc1BsYXRmb3JtRGF0YSgpOworICAgIGVuY29kZXIgPDwgaGFzUGxhdGZvcm1E
YXRhOworCisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHZhbHVlLnBsYXRmb3JtVHlwZSgpKTsKKyAg
ICBpZiAoaGFzUGxhdGZvcm1EYXRhKQorICAgICAgICBlbmNvZGVQbGF0Zm9ybURhdGEoZW5jb2Rl
ciwgdmFsdWUpOworfQorCitPcHRpb25hbDxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBib29sIGhhc1BsYXRmb3JtRGF0
YTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1BsYXRmb3JtRGF0YSkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWU6OlBsYXRmb3JtVHlwZSB0eXBlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVt
KHR5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKGhhc1BsYXRm
b3JtRGF0YSkKKyAgICAgICAgcmV0dXJuIGRlY29kZVBsYXRmb3JtRGF0YShkZWNvZGVyLCB0eXBl
KTsKKworICAgIHJldHVybiB7eyB9fTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBJUEMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggN2Jm
NzFjMTdhYmRkM2Q4YjEzMTkwMjIwMDU4YzlmOWMyMTlmNjBiMy4uZTM4MTRlMjFmODMzNmFhZjJm
NDQ0MzIzMmUzNDRlMDA3NGRhZTJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05v
dGlmaWNhdGlvbkRpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNv
dXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlclR5cGUuaD4KQEAg
LTgxOSw2ICs4MjAsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpTZXJpYWxpemVkQXR0YWNobWVudERhdGE+IHsKIAogI2VuZGlmIC8vIEVOQUJMRShBVFRBQ0hN
RU5UX0VMRU1FTlQpCiAKKyNpZiBFTkFCTEUoVklERU8pCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4geworICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZVZhbHVlJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gZGVjb2RlKERlY29kZXImKTsKKyAgICBzdGF0aWMg
dm9pZCBlbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYpOworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+IGRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVy
JiwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGUp
OworfTsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBJUEMKIAogbmFtZXNwYWNlIFdURiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
TWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01h
Yy5tbQppbmRleCBlZTIyMjQyM2YwNDdjOWJmMDkzNjM5ZDgxMmIxODJkODM2MTgwZWZlLi44ZGE3
YzE5ODc3OTJiODc3NDlhNmVhZDdlOTkzZjk2YzdlMTgxZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KQEAgLTM3LDYg
KzM3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUHJvdGVjdGlvblNwYWNlLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaD4KICNp
bXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvTWFjaFNlbmRS
aWdodC5oPgogCkBAIC02NjksNCArNjcwLDI3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dD46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvCiAK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPKQordm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUmIHZhbHVlKQoreworICAgIEFTU0VSVCh2YWx1ZS5wbGF0Zm9ybVR5cGUoKSA9PSBXZWJDb3Jl
OjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQyk7Cisg
ICAgaWYgKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKQorICAgICAgICBlbmNvZGVPYmplY3Qo
ZW5jb2RlciwgdmFsdWUubmF0aXZlVmFsdWUoKSk7Cit9CisKK09wdGlvbmFsPFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXIm
IGRlY29kZXIsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZv
cm1UeXBlIHBsYXRmb3JtVHlwZSkKK3sKKyAgICBBU1NFUlQocGxhdGZvcm1UeXBlID09IFdlYkNv
cmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKTsK
KworICAgIGlmIChwbGF0Zm9ybVR5cGUgIT0gV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBhdXRvIG9iamVjdCA9IGRlY29kZU9iamVjdChkZWNvZGVyLCBXZWJDb3JlOjpT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2VkQ2xhc3Nlc0Zvck5hdGl2ZVZhbHVl
cygpKTsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgeyBwbGF0
Zm9ybVR5cGUsIG9iamVjdC52YWx1ZSgpLmdldCgpIH07Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggOWRjMGViYjYwNjY0
ODk3ZjgyZGI3ZTA1MTgwOGYwZTQ4OWRjNTI3OS4uYTYwYmI0ZjljZDIzMWQ5MTkwMzgyNDIxNDJl
M2IwZWU5OGUzN2JkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtNjcsMTMg
KzY3LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogfSB3aGlsZSAoMCkKICNlbmRpZgog
Ci1NZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRp
YVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
ZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5
ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFJl
bW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKK01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiBwbGF5
ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlm
aWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIs
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlcikKICAgICA6IG1fcGxheWVyKHBsYXll
cikKICAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcihwbGF5ZXItPmNyZWF0ZVJlc291cmNlTG9h
ZGVyKCkpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1fcmVtb3RlRW5naW5lSWRl
bnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV9pZChwbGF5ZXJJZGVudGlmaWVyKQot
ICAgICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiAgICAgLCBtX2xvZ2dlcigmcGxheWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQogICAg
ICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCkBA
IC04Miw2ICs4MSwxMiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYQogICAgIElORk9fTE9HKExP
R0lERU5USUZJRVIpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0Q29u
ZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
KQoreworICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmlndXJhdGlvbik7CisgICAg
bV9wbGF5ZXItPm1lZGlhRW5naW5lVXBkYXRlZCgpOworfQorCiBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogewogICAgIElORk9fTE9HKExPR0lE
RU5USUZJRVIpOwpAQCAtNDg0LDYgKzQ4OSw0MCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aQog
ICAgICAgICB0cmFjay0+cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFdURk1vdmUoZGF0YSkpOwog
fQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZShUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRp
bWUmJiBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCit7CisgICAgQVNTRVJUKG1fdGV4
dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAoY29uc3QgYXV0byYgdHJh
Y2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICB0cmFjay0+YWRkRGF0
YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXVEZNb3ZlKGRhdGEpKTsKK30KKwor
I2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OmFkZERhdGFDdWVXaXRoVHlwZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZSYmIGRhdGEsIFN0cmluZyYmIHR5cGUpCit7CisgICAgQVNTRVJUKG1fdGV4
dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAoY29uc3QgYXV0byYgdHJh
Y2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICB0cmFjay0+YWRkRGF0
YUN1ZVdpdGhUeXBlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdURk1vdmUoZGF0YSks
IFdURk1vdmUodHlwZSkpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dXBk
YXRlRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlh
VGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVW
YWx1ZSYmIGRhdGEpCit7CisgICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucyhpZGVudGlm
aWVyKSk7CisKKyAgICBpZiAoY29uc3QgYXV0byYgdHJhY2sgPSBtX3RleHRUcmFja3MuZ2V0KGlk
ZW50aWZpZXIpKQorICAgICAgICB0cmFjay0+dXBkYXRlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwg
V1RGTW92ZShlbmQpLCBXVEZNb3ZlKGRhdGEpKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnJlbW92ZURhdGFDdWUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhKQoreworICAgIEFTU0VSVChtX3RleHRUcmFja3MuY29u
dGFpbnMoaWRlbnRpZmllcikpOworCisgICAgaWYgKGNvbnN0IGF1dG8mIHRyYWNrID0gbV90ZXh0
VHJhY2tzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgdHJhY2stPnJlbW92ZURhdGFDdWUoV1RG
TW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgV1RGTW92ZShkYXRhKSk7Cit9CisjZW5kaWYKKwog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVZpZGVvVHJhY2soVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdmlk
ZW9UcmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
aAppbmRleCA3ZjczOTA0MTkzN2UxMWY0YWQwMjVhMTgzMGU1Y2YzYzg5NTAwZGE4Li44YjBjZTM5
YzUwMzM1ZjYyNDFjMGU5Mjg0ZmY5MzAxNGRlMTBiZTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmgKQEAgLTQwLDEyICs0MCwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJ
U09XZWJWVFRDdWU7CitjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU7CiB9CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTsKIGNs
YXNzIFRleHRUcmFja1ByaXZhdGVSZW1vdGU7CitjbGFzcyBVc2VyRGF0YTsKIGNsYXNzIFZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlOwogc3RydWN0IFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CkBAIC01OSwx
NCArNjEsMTYgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIGZpbmFsCiAjZW5kaWYK
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZT4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBwbGF5ZXIsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlm
aWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlciwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25m
aWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIHBsYXll
ciwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90
ZUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPihwbGF5ZXIsIHJl
bW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsIG1hbmFnZXIsIGNvbmZpZ3VyYXRpb24p
OworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+KHBs
YXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWRlbnRpZmllciwgbWFuYWdlcik7CiAgICAg
fQogCi0gICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImLCBj
b25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mKTsKKyAgICBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYpOwogICAgIH5NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUoKTsKIAorICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXll
ckNvbmZpZ3VyYXRpb24mJik7CisKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCkg
eyBtX2ludmFsaWQgPSB0cnVlOyB9CkBAIC0xMDQsNiArMTA4LDEzIEBAIHB1YmxpYzoKICAgICB2
b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBJUEM6
OkRhdGFSZWZlcmVuY2UmJik7CiAgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6SVNPV2ViVlRUQ3VlJiYpOwogCisg
ICAgdm9pZCBhZGREYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlhVGlt
ZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSYmKTsKKyNpZiBF
TkFCTEUoREFUQUNVRV9WQUxVRSkKKyAgICB2b2lkIGFkZERhdGFDdWVXaXRoVHlwZShUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5k
LCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiwgU3RyaW5nJiYpOwor
ICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRp
YVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWUmJik7CisgICAgdm9pZCByZW1vdmVEYXRhQ3VlKFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFdlYkNv
cmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKKyNlbmRpZgorCiAgICAgdm9p
ZCByZXF1ZXN0UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6
OkxvYWRPcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVt
b3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgcmVz
b3VyY2VOb3RTdXBwb3J0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVz
c2FnZXMuaW4KaW5kZXggYzQwNGRjNjc0MDczN2EzNjhkNGZhNjk0MmE4ZTk2MDk3Nzg0NjA3Yi4u
ZTg4OTdiNmExMGExMGQ0YjcwMDkyOThjN2FhMjcyOGJmZTExMjk3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KQEAgLTUwLDEwICs1MCwxMiBAQCBtZXNz
YWdlcyAtPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgTm90UmVmQ291bnRlZCB7CiAgICAgUGFy
c2VXZWJWVFRDdWVEYXRhKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFj
a0lELCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBQYXJzZVdlYlZUVEN1ZURhdGFTdHJ1
Y3QoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIFdlYkNvcmU6
OklTT1dlYlZUVEN1ZSBjdWVEYXRhKQogCi0gICAgIyMgQWRkRGF0YUN1ZShNZWRpYVRpbWUgc3Rh
cnQsIE1lZGlhVGltZSBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKQotICAgICMjIEFkZERh
dGFDdWUoTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlIGRhdGEsIFN0cmluZyB0eXBlKQotICAgICMjIFVwZGF0ZURhdGFDdWUo
TWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlIGRhdGEpCi0gICAgIyMgUmVtb3ZlRGF0YUN1ZShNZWRpYVRpbWUgc3RhcnQsIE1l
ZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgZGF0YSkKKyAg
ICBBZGREYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lE
LCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRh
KQorI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQorICAgIEFkZERhdGFDdWVXaXRoVHlwZShXZWJL
aXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgTWVkaWFUaW1lIHN0YXJ0
LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUg
Y3VlRGF0YSwgU3RyaW5nIHR5cGUpCisgICAgVXBkYXRlRGF0YUN1ZShXZWJLaXQ6OlRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUg
ZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgY3VlRGF0YSkKKyAg
ICBSZW1vdmVEYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFj
a0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVWYWx1ZSBjdWVEYXRhKQorI2VuZGlmCiAKICAgICAjIyBBZGRHZW5lcmlj
Q3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhIGN1ZSkKICAgICAjIyBVcGRhdGVHZW5lcmljQ3Vl
KFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhIGN1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNw
cAppbmRleCA4ZjA1Mzc2ODM3OGViMDVjZWQzMjFmZmNmMTE5MjNiNTllZWZjMzJiLi4zOGE1M2Ew
Y2JjZmY4OWQ0NWViY2Q0MWU3ZTZjMzU4M2JkMjdkM2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIuY3BwCkBAIC0xNDQsNyArMTQ0LDYgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGEKIAog
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW1vdGVNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVy
LCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRl
bnRpZmllcikKIHsKLSAgICBhdXRvIGlkID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
Zmllcjo6Z2VuZXJhdGUoKTsKIAogICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0
aW9uIHByb3h5Q29uZmlndXJhdGlvbjsKICAgICBwcm94eUNvbmZpZ3VyYXRpb24ucmVmZXJyZXIg
PSBwbGF5ZXItPnJlZmVycmVyKCk7CkBAIC0xNTksMTUgKzE1OCwxOSBAQCBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OmNyZWF0ZVJlbQogICAgIHByb3h5Q29uZmlndXJhdGlvbi5zaG91bGRVc2VQZXJzaXN0ZW50Q2Fj
aGUgPSBwbGF5ZXItPnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpOwogICAgIHByb3h5Q29uZmln
dXJhdGlvbi5pc1ZpZGVvID0gcGxheWVyLT5pc1ZpZGVvUGxheWVyKCk7CiAKKyAgICBhdXRvIGlk
ZW50aWZpZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpnZW5lcmF0ZSgp
OwogICAgIFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1cmF0aW9u
OwotICAgIGJvb2wgc2VuZFN1Y2NlZWRlZCA9IGdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6
Q3JlYXRlTWVkaWFQbGF5ZXIoaWQsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmln
dXJhdGlvbiksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q3JlYXRl
TWVkaWFQbGF5ZXI6OlJlcGx5KHBsYXllckNvbmZpZ3VyYXRpb24pLCAwKTsKLSAgICBpZiAoIXNl
bmRTdWNjZWVkZWQpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJGYWlsZWQgdG8gY3JlYXRlIHJl
bW90ZSBtZWRpYSBwbGF5ZXIuIik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KKyAg
ICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVBsYXll
cihpZGVudGlmaWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwcm94eUNvbmZpZ3VyYXRpb24p
LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgaWRlbnRpZmllcl0oYXV0byYm
IHBsYXllckNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJz
LmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgICAgIHBsYXllci0+c2V0Q29uZmlndXJhdGlvbihX
VEZNb3ZlKHBsYXllckNvbmZpZ3VyYXRpb24pKTsKKyAgICB9LCAwKTsKKworICAgIGF1dG8gcmVt
b3RlUGxheWVyID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjcmVhdGUocGxheWVyLCByZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBpZGVudGlmaWVyLCAqdGhpcyk7CisgICAgbV9wbGF5ZXJzLmFk
ZChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cigqcmVtb3RlUGxheWVyKSk7CiAKLSAgICBhdXRvIHJl
bW90ZVBsYXllciA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKHBsYXllciwgcmVt
b3RlRW5naW5lSWRlbnRpZmllciwgaWQsICp0aGlzLCBwbGF5ZXJDb25maWd1cmF0aW9uKTsKLSAg
ICBtX3BsYXllcnMuYWRkKGlkLCBtYWtlV2Vha1B0cigqcmVtb3RlUGxheWVyKSk7CiAgICAgcmV0
dXJuIHJlbW90ZVBsYXllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKaW5kZXggYjI2
NmIzOTg0YzM4MGNkMzY0ODIyMTQzNWQzZjg0ZmUxYjVhYTc3NS4uMzIwZWMzMDE4OWQ2ZmM1NjJm
MmFlYmZmNTFjOTBmNzRlZGY4ZGEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCkBAIC01
MSw3ICs1MSw4IEBAIGNsYXNzIFdlYlByb2Nlc3M7CiBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbjsKIAogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyCi0gICAgOiBw
dWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQgeworICAgIDogcHVibGljIFdlYlByb2Nlc3NTdXBw
bGVtZW50CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyKFdlYlByb2Nlc3MmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVS
ZW1vdGUuY3BwCmluZGV4IDVjNzg3NjRlMGMxNzQxMGNiMjM3NjhhNDUxNWJkNDIwNDU4MzQzZjEu
LjZhNjYyMmEzOTU0OTkwMDcxMDZiZDQ5MDk3MTEwNWQ1OGI4M2E5NmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2
YXRlUmVtb3RlLmNwcApAQCAtODgsNjYgKzg4LDcyIEBAIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
CiAgICAgbV9pc0RlZmF1bHQgPSBjb25maWd1cmF0aW9uLmlzRGVmYXVsdDsKIH0KIAotdm9pZCBU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpCit2b2lkIFRleHRU
cmFja1ByaXZhdGVSZW1vdGU6OmFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLSNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLXZvaWQg
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0
LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+JiYs
IGNvbnN0IFN0cmluZyYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUdlbmVy
aWNDdWUoR2VuZXJpY0N1ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZv
aWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUm
IHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYp
Cit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1
ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBN
ZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpCisKK3ZvaWQgVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmIGhlYWRlcikK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYg
KGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICBjbGllbnQtPnBhcnNlV2Vi
VlRURmlsZUhlYWRlcihXVEZNb3ZlKGhlYWRlcikpOwogfQogCi0jZW5kaWYKLQotdm9pZCBUZXh0
VHJhY2tQcml2YXRlUmVtb3RlOjphZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikKK3ZvaWQg
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgZGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChj
bGllbnQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAg
ICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRl
UmVtb3RlOjp1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikKK3ZvaWQgVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KElTT1dlYlZUVEN1ZSYmIGN1
ZURhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NFUlQoY2xpZW50KCkpOwor
ICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKKyAgICAgICAgY2xpZW50LT5w
YXJzZVdlYlZUVEN1ZURhdGEoV1RGTW92ZShjdWVEYXRhKSk7CiB9CiAKLXZvaWQgVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZTo6cmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpCit2b2lkIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlh
VGltZSYmIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSkKIHsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRo
aXMtPmNsaWVudCgpKQorICAgICAgICBjbGllbnQtPmFkZERhdGFDdWUoV1RGTW92ZShzdGFydCks
IFdURk1vdmUoZW5kKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkp
LCBkYXRhLnNpemUoKSk7CiB9CiAKLQotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJz
ZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQorI2lmIEVOQUJMRShEQVRBQ1VFX1ZB
TFVFKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlV2l0aFR5cGUoTWVk
aWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZVZhbHVlJiYgZGF0YVZhbHVlLCBTdHJpbmcmJiB0eXBlKQogewogICAgIEFTU0VSVChjbGllbnQo
KSk7CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQotICAgICAgICBjbGll
bnQtPnBhcnNlV2ViVlRURmlsZUhlYWRlcihXVEZNb3ZlKGhlYWRlcikpOworICAgICAgICBjbGll
bnQtPmFkZERhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUoZGF0YVZhbHVlKSksIHR5cGUpOwogfQogCi12
b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0
ZURhdGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YVZhbHVlKQogewogICAgIEFTU0VSVChjbGllbnQoKSk7
CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQotICAgICAgICBjbGllbnQt
PnBhcnNlV2ViVlRUQ3VlRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRh
dGEoKSksIGRhdGEuc2l6ZSgpKTsKKyAgICAgICAgY2xpZW50LT51cGRhdGVEYXRhQ3VlKFdURk1v
dmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0
ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
OjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoSVNPV2ViVlRUQ3VlJiYgY3VlRGF0YSkKK3ZvaWQg
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwg
TWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFs
dWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhp
cy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRDdWVEYXRhKFdURk1vdmUo
Y3VlRGF0YSkpOworICAgICAgICBjbGllbnQtPnJlbW92ZURhdGFDdWUoV1RGTW92ZShzdGFydCks
IFdURk1vdmUoZW5kKSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUo
ZGF0YVZhbHVlKSkpOwogfQotCisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmgKaW5kZXggNmFjOWM2OWQwMTkyMGQ5Yzk0MTMyYjg4M2U1NmY2NWJk
OGVjM2NjYy4uN2I3ZjcwM2NiNDk3ZGVkZWEzOTFkYjU5Y2M5MmJlY2UxNWE1OTJlMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRl
UmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmgKQEAgLTMyLDYgKzMyLDExIEBACiAjaW5jbHVkZSAiVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZS5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBHZW5lcmljQ3VlRGF0YTsK
K2NsYXNzIElTT1dlYlZUVEN1ZTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKQEAgLTQ0LDIxICs0OSwyMSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja1ByaXZhdGVSZW1vdGUocGxheWVyLCBp
ZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiAgICAgfQogCi0gICAgdm9pZCBh
ZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBj
b25zdCB2b2lkKiwgdW5zaWduZWQpOworICAgIHZvaWQgYWRkRGF0YUN1ZShNZWRpYVRpbWUmJiBz
dGFydCwgTWVkaWFUaW1lJiYgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UmJik7CiAKICNpZiBFTkFC
TEUoREFUQUNVRV9WQUxVRSkKLSAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
PiYmLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFU
aW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWUmKTsKLSAgICB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKTsKKyAgICB2b2lk
IGFkZERhdGFDdWVXaXRoVHlwZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiwgU3RyaW5nJiYpOworICAgIHZvaWQgdXBk
YXRlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWUmJik7CisgICAgdm9pZCByZW1vdmVEYXRhQ3VlKE1lZGlhVGlt
ZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1
ZSYmKTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJik7
Ci0gICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJik7Ci0gICAgdm9pZCBy
ZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9pZCBhZGRHZW5lcmljQ3Vl
KFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKFdl
YkNvcmU6OkdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKFdlYkNv
cmU6OkdlbmVyaWNDdWVEYXRhJik7CiAKICAgICB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihT
dHJpbmcmJik7CiAgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJik7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoSVNPV2ViVlRUQ3Vl
JiYpOworICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFdlYkNvcmU6OklTT1dlYlZU
VEN1ZSYmKTsKIAogICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihUZXh0VHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDViMzJlOWQzMDk5NDZjNWViYjU5YmMy
OGMyMzU1NjhiNDJkMTI2MTUuLjU2NTllMDk1MGEzMzM3ZTAwM2E2MWFlZTI2NTViYWQ0ZGFjZDJk
NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMi0xOSAgRXJpYyBDYXJsc29uICA8ZXJp
Yy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGluLWJhbmQgbWV0YWRhdGEg
Y3VlcyB3aGVuIGxvYWRpbmcgbWVkaWEgaW4gdGhlIEdQVSBQcm9jZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc5MDQKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU5NTYxNjQ3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0wMi0x
OSAgSmFzb24gTGF3cmVuY2UgIDxsYXdyZW5jZS5qQGFwcGxlLmNvbT4KIAogICAgICAgICBbIE1h
YyB3azIgXSBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2hhci9oYXItcGFnZS5odG1sIGlz
IGZsYWt5IGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGIyNDAyYjk0OWE5ZjdjNzYxYzk3ZDlkMjJmYjZjMTI1NDE4YzRhOTQuLjkxM2E1ZDQ0ODQy
ZmFiOWNlNDczNGJkZGYzN2M0ZWFlNWQyMDc1ZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2dw
dS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3Mv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMjI5LDYgKzIyOSw4IEBAIG1lZGlhL3RyYWNrL3RyYWNrLWlu
LWJhbmQuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9tZWRpYS90cmFjay90cmFjay13ZWJ2dHQt
c2xvdy1sb2FkaW5nLmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvbWVkaWEvdHJhY2svdHJhY2st
d2VidnR0LXNsb3ctbG9hZGluZy0yLmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvbWVkaWEvaGxz
L2hscy13ZWJ2dHQtdHJhY2tzLmh0bWwgWyBQYXNzIF0KK2h0dHAvdGVzdHMvbWVkaWEvdHJhY2st
aW4tYmFuZC1obHMtbWV0YWRhdGEuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9tZWRpYS90cmFj
ay1pbi1iYW5kLWhscy1tZXRhZGF0YS1jcmFzaC5odG1sIFsgUGFzcyBdCiAKIGFjY2Vzc2liaWxp
dHkvbWVkaWEtZWxlbWVudC5odG1sIFsgU2tpcCBdCiBmYXN0L2Jsb2NrL2Zsb2F0L2xpc3QtbWFy
a2VyLWlzLWZsb2F0LWNyYXNoLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391282</attachid>
            <date>2020-02-20 05:56:36 -0800</date>
            <delta_ts>2020-02-20 07:12:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207904-20200220055635.patch</filename>
            <type>text/plain</type>
            <size>63375</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2OTE0OWIwYzQxZDFk
NjllMTU5MWNkNTdlNGJkNDU0NTBjMDY3Zi4uNzk5Yzk5ZjhmZTljODhlMWVhYTRiZTBhMTIzYTUx
ZTFkOWQ5NTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTE5ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgaW4t
YmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0
YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4
dFRyYWNrOjpmaW5kSW5jb21wbGV0ZUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFU
ZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRl
eHRUcmFjazo6cmVtb3ZlQ3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0
VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vlc0ludGVybmFsIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpkZXNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpkYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmlzRXF1YWwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6cGxhdGZvcm1UeXBlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmVuY29kaW5nUmVxdWlyZXNQ
bGF0Zm9ybURhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6ZW5jb2RhYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFE
aWRBcnJpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2Vk
Q2xhc3Nlc0Zvck5hdGl2ZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUpOiBEZWxldGVkLgorCiAyMDIwLTAyLTE5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUGxh
dGZvcm1NZWRpYVNlc3Npb246OmNoYXJhY3RlcmlzdGljcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzMjc5NTY3
MjdkNmRlYzhmZjljN2Q4OTY4Y2VlYmEwMTA5ZWYzYjEuLmQxY2E2ZDQzMWY1ZGZhN2QwNzc0MTEy
ZDEzNjVhMmY5ZGQwYTY1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDItMTkg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9y
dCBpbi1iYW5kIG1ldGFkYXRhIGN1ZXMgd2hlbiBsb2FkaW5nIG1lZGlhIGluIHRoZSBHUFUgUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3
OTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTU2MTY0Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4
dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpl
bmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3Rl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjphZGRHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViS2l0OjpU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKToKKyAg
ICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1
ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFD
dWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaDoKKwogMjAyMC0wMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBmYXN0L2RvbS9mb2N1cy1zaGlmdC1jcmFzaC5odG1sIGFuZCBl
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tY2hhbmdlLWluLWRpc2Nvbm5lY3RlZC1mcmFtZS1j
cmFzaC5odG1sIGNyYXNoIGFmdGVyIHIyNTY4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjQ4MGYyYTNm
MjJlZTBkMzc0YWM5ODgwNjA2MjJmMWFkZjJlNzI1Yy4uNDRiY2EyMGI3ZmU1NjY4NTcxZWU4Mjhm
OTc0NWQ1MGUxZjZkZTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NjQsNiArMTc2NCw3IEBAIHBs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAogcGxhdGZv
cm0vU2Nyb2xsYmFyVGhlbWUuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5j
cHAKK3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCiBwbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuY3BwCiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAKIHBsYXRm
b3JtL1NoYXJlZFN0cmluZ0hhc2guY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzhjODM3YThjODQ5NWZkMTNiYzljNzFhZmVm
ZmZmMWNjZWU2NjBmMy4uNGQwYzE1MTUwNTE2YmZmNDExYTYxZjlkMzc5YjAwMTVkNDcyNTFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTM1LDEwICsxMzUsMTEgQEAKIAkJMDc2MzhBOUExODg0NDg3MjAwRTE1QTFCIC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzYzOEE5ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbSAqLzsgfTsKIAkJMDc2OTcwODYxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFj
a0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwICovOyB9OwogCQkw
NzY5NzA4NzE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODUxNDYzQUQ4NzAwRjUwMkNG
IC8qIFRleHRUcmFja0xpc3QuaCAqLzsgfTsKKwkJMDc2RDFDMUYyM0Y2RUI1QjAwRDk1QjA2IC8q
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3NkYwRDBFMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaCAqLzsgfTsKIAkJMDc3NjY0RkQxODNFNkI1QzAwMTMzQjkyIC8q
IEpTUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NzY2NEZCMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50LmggKi87IH07CiAJCTA3N0FGMTQwMThGNEFFNDAwMDAxRUQ2
MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdBRjEzRTE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTA3N0FGMTQzMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzdBRjE0MTE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZU1hYy5oICovOyB9OworCQkwNzdBRjE0MzE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc3QUYxNDExOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNzdCNjQxMzFCOTRGMTJFMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3N0I2NDExMUI5NEYxMkUwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9j
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3
N0I2NDE3MUI5NUY3MDMwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QjY0MTUxQjk1Rjcw
MzAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc4MzIyODUxODAxM0VEODAwOTk5RTBD
IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3ODMyMjgzMTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlLmggKi87IH07CkBAIC01NDczLDYgKzU0NzQsNyBAQAogCQkwNzYzOEE5ODE4
ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBU
ZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRl
eHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzY5NzA4NTE0
NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUZXh0VHJhY2tMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3NkQxQzFEMjNGNkQ5RDgwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBU
cmFja1ByaXZhdGVCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRyYWNrUHJpdmF0ZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZG
MEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkYwRDBB
MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NDkwLDYgKzU0OTIsNyBAQAog
CQkwNzg0NjM0MDE0NUIxNTFBMDBBNThERjEgLyogSlNUcmFja0V2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2MzQxMTQ1QjE1MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUcmFja0V2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBK
U1RyYWNrQ3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVHJhY2tD
dXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc4NjMzRDcyM0ZFMDk2NDAw
ODdBRTIxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3ODdDNDY3MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01l
ZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3ODdDNDY4MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzhFMDk0ODE3RDE3MDk2MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbUF1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1
OTk0LDcgKzI1OTk3LDkgQEAKIAkJCQlCQzI0NDFDMzBFOEI2NUQwMDA1NTMyMEYgLyogU2Nyb2xs
Vmlldy5jcHAgKi8sCiAJCQkJQkM2RDZFMjUwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcu
aCAqLywKIAkJCQlBQjcxNzA4ODBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51Lmgg
Ki8sCisJCQkJMDc4NjMzRDcyM0ZFMDk2NDAwODdBRTIxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUuY3BwICovLAogCQkJCTA3N0FGMTNFMThGNEFFNDAwMDAxRUQ2MSAvKiBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmggKi8sCisJCQkJMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovLAogCQkJCTFBNEE5NTRCMEI0RURDQ0Iw
MDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuY3BwICovLAogCQkJCTFBNEE5NTRDMEI0RURDQ0IwMDJE
OEMzQyAvKiBTaGFyZWRCdWZmZXIuaCAqLywKIAkJCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcyNUIg
LyogU2hhcmVkU3RyaW5nSGFzaC5jcHAgKi8sCkBAIC0zMjI1NCw2ICszMjI1OSw3IEBACiAJCQkJ
RTE4REYzMzUxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzdBRjE0MDE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3QUYxNDMxOEY0QjFCQjAwMDFF
RDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTA3NkQxQzFGMjNGNkVCNUIwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNkY3RjZEMUMzMUUzOUEw
MEYxMTFEQyAvKiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDkz
QUVFMzE5REY1NjQxMDAyQTg2QzMgLyogU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAw
NDAwMWI0YmE5ZWRmYWViZmVhZjFmMjdjZmEwZmNlNDQ3YzExZDg4Li4wZTg2OGEwYmFlN2JkMjI4
MjRhZGNiNDRlYjY4YWUxNzliYzkxY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTEzMzIsNyArMTMzMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgICAgICBtb2RlID0gQXR0cmlidXRlOwogICAg
ICAgICAgICAgQVNTRVJUKG1fcGxheWVyKTsKICAgICAgICAgICAgIGlmICghbV9wbGF5ZXIpIHsK
LSAgICAgICAgICAgICAgICBFUlJPUl9MT0cobG9nU2l0ZUlkZW50aWZpZXIsICIgaGFzIHNyY0F0
dHIgYnV0IG1fcGxheWVyIGlzIG5vdCBjcmVhdGVkIik7CisgICAgICAgICAgICAgICAgRVJST1Jf
TE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiaGFzIHNyY0F0dHIgYnV0IG1fcGxheWVyIGlzIG5vdCBj
cmVhdGVkIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UgaWYgKGF1dG8gZmlyc3RTb3VyY2UgPSBjaGlsZHJlbk9mVHlwZTxIVE1MU291cmNl
RWxlbWVudD4oKnRoaXMpLmZpcnN0KCkpIHsKQEAgLTM0NzMsMTEgKzM0NzMsMTMgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpwbGF5KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2Up
CiAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIGlmIChzdWNjZXNzLnZhbHVlKCkgPT0gTWVk
aWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZCkKICAgICAgICAgICAg
IHNldEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlKEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
OjpQcmV2ZW50ZWRBdXRvcGxheSk7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAi
cmVqZWN0aW5nIHByb21pc2U6ICIsIHN1Y2Nlc3MudmFsdWUoKSk7CiAgICAgICAgIHByb21pc2Uu
cmVqZWN0KE5vdEFsbG93ZWRFcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAobV9lcnJvciAmJiBtX2Vycm9yLT5jb2RlKCkgPT0gTWVkaWFFcnJvcjo6TUVESUFfRVJSX1NS
Q19OT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAicmVq
ZWN0aW5nIHByb21pc2UgYmVjYXVzZSBvZiBlcnJvciIpOwogICAgICAgICBwcm9taXNlLnJlamVj
dChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM0OTUsNiArMzQ5Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6cGxheSgpCiAKICAgICBhdXRvIHN1Y2Nlc3MgPSBtX21lZGlhU2Vzc2lvbi0+
cGxheWJhY2tQZXJtaXR0ZWQoKTsKICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgRVJST1Jf
TE9HKExPR0lERU5USUZJRVIsICJwbGF5YmFjayBub3QgcGVybWl0dGVkOiAiLCBzdWNjZXNzLnZh
bHVlKCkpOwogICAgICAgICBpZiAoc3VjY2Vzcy52YWx1ZSgpID09IE1lZGlhUGxheWJhY2tEZW5p
YWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQpCiAgICAgICAgICAgICBzZXRBdXRvcGxheUV2
ZW50UGxheWJhY2tTdGF0ZShBdXRvcGxheUV2ZW50UGxheWJhY2tTdGF0ZTo6UHJldmVudGVkQXV0
b3BsYXkpOwogICAgICAgICByZXR1cm47CkBAIC01MDk0LDcgKzUwOTcsOCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTWVkaWFFbmdpbmVXYXNVcGRhdGVkKCkKIAogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogewotICAgIElORk9fTE9HKExP
R0lERU5USUZJRVIpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKICAgICBiZWdp
blByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAgICAgdXBkYXRlUmVuZGVyZXIoKTsK
ICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwpAQCAtNTEyOSw3ICs1MTMz
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogCiB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCiB7Ci0gICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7CisgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgbV9w
bGF5ZXItPmVuZ2luZURlc2NyaXB0aW9uKCkpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
ICAgICBtX2Ryb3BwZWRWaWRlb0ZyYW1lcyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAppbmRleCBmMDdmNzM4ZDI4MzYxY2M0YmZk
NDkyYzY0YTg0YWM5YmQ0Y2E2NTA0Li4wYzA0ZjNjMWI1ZjE3MmU3MmRjZjNmYTVlMzViYjBlOTcz
MjA4NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFU
ZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRl
eHRUcmFjay5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjph
ZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW4KIAog
dm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4m
JiBwbGF0Zm9ybVZhbHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgaWYgKG1faW5jb21w
bGV0ZUN1ZU1hcC5jb250YWlucyhwbGF0Zm9ybVZhbHVlLnB0cigpKSkKKyAgICBpZiAoZmluZElu
Y29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8g
Y3VlID0gRGF0YUN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0YXJ0LCBl
bmQsIHBsYXRmb3JtVmFsdWUuY29weVJlZigpLCB0eXBlKTsKQEAgLTcwLDcgKzcwLDcgQEAgdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW4KIAogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUluZmluaXRlKCkg
JiYgbWVkaWFFbGVtZW50KCkpIHsKICAgICAgICAgY3VlLT5zZXRFbmRUaW1lKG1lZGlhRWxlbWVu
dCgpLT5kdXJhdGlvbk1lZGlhVGltZSgpKTsKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLmFk
ZChXVEZNb3ZlKHBsYXRmb3JtVmFsdWUpLCBjdWUuY29weVJlZigpKTsKKyAgICAgICAgbV9pbmNv
bXBsZXRlQ3VlTWFwLmFwcGVuZCgmY3VlLmdldCgpKTsKICAgICB9CiAKICAgICBJTkZPX0xPRyhM
T0dJREVOVElGSUVSLCBjdWUuZ2V0KCkpOwpAQCAtNzgsOSArNzgsMjEgQEAgdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW4KICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAorUmVmUHRyPERhdGFD
dWU+IEluYmFuZERhdGFUZXh0VHJhY2s6OmZpbmRJbmNvbXBsZXRlQ3VlKGNvbnN0IFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmIGN1ZVRvRmluZCkKK3sKKyAgICBhdXRvIGluZGV4ID0gbV9pbmNv
bXBsZXRlQ3VlTWFwLmZpbmRNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgY3VlKSB7CisgICAgICAg
IHJldHVybiBjdWVUb0ZpbmQuaXNFcXVhbCgqY3VlLT5wbGF0Zm9ybVZhbHVlKCkpOworICAgIH0p
OworCisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIHJldHVybiBtX2luY29tcGxldGVDdWVNYXBbaW5kZXhdOworfQorCiB2b2lkIEluYmFu
ZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBpbkVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgcGxhdGZvcm1W
YWx1ZSkKIHsKLSAgICBSZWZQdHI8RGF0YUN1ZT4gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdl
dCgmcGxhdGZvcm1WYWx1ZSk7CisgICAgYXV0byBjdWUgPSBmaW5kSW5jb21wbGV0ZUN1ZShwbGF0
Zm9ybVZhbHVlKTsKICAgICBpZiAoIWN1ZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05MCw3ICsx
MDIsNyBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJgogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUlu
ZmluaXRlKCkgJiYgbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIGVuZCA9IG1lZGlhRWxlbWVudCgp
LT5kdXJhdGlvbk1lZGlhVGltZSgpOwogICAgIGVsc2UKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3Vl
TWFwLnJlbW92ZSgmcGxhdGZvcm1WYWx1ZSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5y
ZW1vdmVGaXJzdChjdWUpOwogCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIndhcyBzdGFy
dCA9ICIsIGN1ZS0+c3RhcnRNZWRpYVRpbWUoKSwgIiwgZW5kID0gIiwgY3VlLT5lbmRNZWRpYVRp
bWUoKSwgIiwgd2lsbCBiZSBzdGFydCA9ICIsIHN0YXJ0LCAiLCBlbmQgPSAiLCBlbmQpOwogCkBA
IC0xMDIsOCArMTE0LDkgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYKIAogdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAg
aWYgKGF1dG8gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLnRha2UoJnBsYXRmb3JtVmFsdWUpKSB7
CisgICAgaWYgKGF1dG8gY3VlID0gZmluZEluY29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSkpIHsK
ICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJlbW92aW5nOiAiLCAqY3VlKTsKKyAg
ICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZUZpcnN0KGN1ZSk7CiAgICAgICAgIEluYmFu
ZFRleHRUcmFjazo6cmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0KIH0KQEAgLTExMiw3ICsxMjUsOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpyZW1vdmVDdWUoVGV4dFRy
YWNrQ3VlJiBjdWUpCiB7CiAgICAgQVNTRVJUKGN1ZS5jdWVUeXBlKCkgPT0gVGV4dFRyYWNrQ3Vl
OjpEYXRhKTsKIAotICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoY29uc3RfY2FzdDxTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlKj4odG9EYXRhQ3VlKCZjdWUpLT5wbGF0Zm9ybVZhbHVlKCkp
KTsKKyAgICBpZiAoYXV0byBwbGF0Zm9ybVZhbHVlID0gY29uc3RfY2FzdDxTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlKj4odG9EYXRhQ3VlKCZjdWUpLT5wbGF0Zm9ybVZhbHVlKCkpKQorICAgICAg
ICByZW1vdmVEYXRhQ3VlKHsgfSwgeyB9LCAqcGxhdGZvcm1WYWx1ZSk7CiAKICAgICByZXR1cm4g
SW5iYW5kVGV4dFRyYWNrOjpyZW1vdmVDdWUoY3VlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKaW5kZXggMWE4YmRmNmFlNTIyOGJlZjBj
ZjhkMWRhZDk1ZTM1NmY2MjhhNDRmMi4uNGZjMzEzZWFjYzUxNzQxMjMwNDY5OGY0MmUzY2FlZWE5
ZDE5Mzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRh
VGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4
dFRyYWNrLmgKQEAgLTU1LDcgKzU1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZURhdGFD
dWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVD
dWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7CiAKLSAgICBIYXNoTWFwPFJlZlB0cjxTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlPiwgUmVmUHRyPERhdGFDdWU+PiBtX2luY29tcGxldGVDdWVNYXA7Cisg
ICAgUmVmUHRyPERhdGFDdWU+IGZpbmRJbmNvbXBsZXRlQ3VlKGNvbnN0IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWUmKTsKKworICAgIFZlY3RvcjxSZWZQdHI8RGF0YUN1ZT4+IG1faW5jb21wbGV0
ZUN1ZU1hcDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgK
aW5kZXggNDdlNmRlZTkzZDA2OTI5OTczNjA5NTFlNTExMjM4ZDllMzA1OThmMi4uMDczNjUyZjQ0
NDUxNWU4ZDhhMGNkZWViMjFjMDZjNDM2NzcxMTJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5oCkBAIC05Niw2ICs5Niw4IEBAIHB1YmxpYzoKICAgICBUZXh0VHJhY2tDdWVM
aXN0KiBjdWVzKCk7CiAgICAgVGV4dFRyYWNrQ3VlTGlzdCogYWN0aXZlQ3VlcygpIGNvbnN0Owog
CisgICAgVGV4dFRyYWNrQ3VlTGlzdCogY3Vlc0ludGVybmFsKCkgY29uc3QgeyByZXR1cm4gbV9j
dWVzLmdldCgpOyB9CisKICAgICB2b2lkIGNsZWFyQ2xpZW50KCkgb3ZlcnJpZGUgeyBtX2NsaWVu
dCA9IG51bGxwdHI7IH0KICAgICBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApp
bmRleCBlNWRmM2MzYjc4NjZlYTlmZDQzZGFjY2Y0YTQ2MjJiZGI2NDg5NDIyLi5jYmRkOGMwMzFk
YjdjZmUwZTg0NTYxMTk3NjI2N2YyNDUxMjI0ZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC0zNDEsMTEgKzM0MSwxMSBAQCB2b2lkIFRleHRUcmFj
a0N1ZTo6c2V0SXNBY3RpdmUoYm9vbCBhY3RpdmUpCiAKIHVuc2lnbmVkIFRleHRUcmFja0N1ZTo6
Y3VlSW5kZXgoKSBjb25zdAogewotICAgIEFTU0VSVChtX3RyYWNrICYmIG1fdHJhY2stPmN1ZXMo
KSk7Ci0gICAgaWYgKCFtX3RyYWNrIHx8ICFtX3RyYWNrLT5jdWVzKCkpCisgICAgQVNTRVJUKG1f
dHJhY2sgJiYgbV90cmFjay0+Y3Vlc0ludGVybmFsKCkpOworICAgIGlmICghbV90cmFjayB8fCAh
bV90cmFjay0+Y3Vlc0ludGVybmFsKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCk7CiAKLSAgICByZXR1cm4gbV90cmFjay0+Y3VlcygpLT5jdWVJ
bmRleCgqdGhpcyk7CisgICAgcmV0dXJuIG1fdHJhY2stPmN1ZXNJbnRlcm5hbCgpLT5jdWVJbmRl
eCgqdGhpcyk7CiB9CiAKIGJvb2wgVGV4dFRyYWNrQ3VlOjppc09yZGVyZWRCZWZvcmUoY29uc3Qg
VGV4dFRyYWNrQ3VlKiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDliZmI4YTZh
MWUwN2M0ZWZmNGZhNmRkZDA5ZTNlNzlhMWU3OWU3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCkBAIC0wLDAg
KzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oIgorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBF
TkFCTEUoREFUQUNVRV9WQUxVRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIVBMQVRG
T1JNKENPQ09BKQorUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWU6OmNyZWF0ZShTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJikKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkpOwor
fQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgKaW5kZXgg
NDc0YWMxZDRmNzc2NGI1Y2VjMTNlMTdjNmVlMTlhOGI0MmQyMDA3Ny4uMDg1NTBmZGU3NzE0YTJl
ZDVkYTBlZGI5MTU1NjdhMjEzOGY4MGZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAj
aWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZh
bHVlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTM0LDE2ICszNSwyMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiB7CiBwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBjcmVhdGUoU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOworCiAgICAgdmlydHVhbCB+U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZSgpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGRlc2Vy
aWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQ
dHI8SlNDOjpBcnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBj
b25zdCB7IHJldHVybiBKU0M6OmpzTnVsbCgpOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SlNDOjpB
cnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc0VxdWFsKGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCi0gICAgZW51bSBQbGF0Zm9ybVR5cGUgeworICAgIGVudW0gY2xhc3MgUGxh
dGZvcm1UeXBlIHsKKyAgICAgICAgTm9uZSwKICAgICAgICAgT2JqQywKICAgICB9OwotICAgIHZp
cnR1YWwgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUoKSBjb25zdCB7IHJldHVybiBQbGF0Zm9ybVR5cGU6
Ok5vbmU7IH0KKworICAgIHZpcnR1YWwgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRh
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlIGVuY29kYWJsZVZhbHVlKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiAK
IHByb3RlY3RlZDoKICAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkgPSBkZWZhdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmM2MzM0YWJlMmIzNGM5ZjRhZWIyYTNmZmNiYmZj
NzkxYzBhZGYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmICFkZWZpbmVkKF9f
T0JKQ19fKQordHlwZWRlZiBzdHJ1Y3Qgb2JqY19vYmplY3QgKmlkOworI2VuZGlmCisKKyNpZiBQ
TEFURk9STShDT0NPQSkKK3VzaW5nIFBsYXRmb3JtTmF0aXZlVmFsdWUgPSBpZDsKKyNlbHNlCit1
c2luZyBQbGF0Zm9ybU5hdGl2ZVZhbHVlID0gdm9pZCo7CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgeworICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKTsKK3B1
YmxpYzoKKyAgICBlbnVtIGNsYXNzIFBsYXRmb3JtVHlwZSB7CisgICAgICAgIE5vbmUsCisgICAg
ICAgIE9iakMsCisgICAgfTsKKworICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZShQ
bGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlLCBQbGF0Zm9ybU5hdGl2ZVZhbHVlIG5hdGl2ZVZhbHVl
KQorICAgICAgICA6IG1fbmF0aXZlVmFsdWUobmF0aXZlVmFsdWUpCisgICAgICAgICwgbV90eXBl
KHBsYXRmb3JtVHlwZSkKKyAgICB7CisgICAgfQorICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZSgpID0gZGVmYXVsdDsKKyAgICB+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
KCkgPSBkZWZhdWx0OworCisgICAgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQorCisgICAgUGxhdGZvcm1OYXRpdmVWYWx1ZSBuYXRpdmVWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlVmFsdWU7IH0KKworICAgIGJvb2wgZW5jb2RpbmdSZXF1
aXJlc1BsYXRmb3JtRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBQbGF0Zm9ybVR5cGU6
Ok9iakM7IH0KKworcHJvdGVjdGVkOgorICAgIFBsYXRmb3JtTmF0aXZlVmFsdWUgbV9uYXRpdmVW
YWx1ZSB7IG51bGxwdHIgfTsKKyAgICBQbGF0Zm9ybVR5cGUgbV90eXBlIHsgUGxhdGZvcm1UeXBl
OjpOb25lIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGNh
NzFlN2UwYjU4NmM3YjU1YjExMjczMmJhZDU5YjAxZDhhNDE4MWIuLjU3ZGZjYmY0YmM3YzQ4ODQ0
ZDM4MWNiMzVlY2M2NDNjMWFhYjRiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTEwOSw2ICsxMDksOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwbGF5KCkgZmluYWwgeyB9CiAgICAgdm9pZCBwYXVzZSgpIGZpbmFsIHsgfQogCisg
ICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk51bGxN
ZWRpYVBsYXllciI7IH0KKwogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBGbG9hdFNpemUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcAppbmRleCBmZTFj
MDY0YWU1MTI3NzIzMDhjYzJjNGNiMjI0M2ViOTJlNTMxODAwLi5iNzg2NGY3YjM3MGUzMzUyNjc1
NmNkYTYyZDcyN2FjMDdjODBiNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcApAQCAtMzMsOSArMzMsMTAgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKIHN0YXRp
YyB1aW50NjRfdCBzX3VuaXF1ZUlkID0gMDsKIAotI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
dm9pZCBUcmFja1ByaXZhdGVCYXNlOjpzZXRMb2dnZXIoY29uc3QgTG9nZ2VyJiBsb2dnZXIsIGNv
bnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIpCiB7CiAgICAgbV9sb2dnZXIgPSAmbG9nZ2VyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KaW5kZXggODIwZGE4OWM0NmY4NzE1MzI5NmUxNjc0ZGY0NmExZDc0
YmUwNmY5YS4uYjM3YzQ0MTEzMTQ5ODg3OTU0NmVjOGE1N2EwZGQ4ZTExZjc4NDY5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tCkBAIC0zMDc0LDcgKzMwNzQsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKGNvbnN0IFJldGFpblB0
cjxOU0FycgogICAgICAgICBpZiAoaXRlbS5rZXlTcGFjZSkKICAgICAgICAgICAgIHR5cGUgPSBt
ZXRhZGF0YVR5cGUoaXRlbS5rZXlTcGFjZSk7CiAKLSAgICAgICAgbV9tZXRhZGF0YVRyYWNrLT5h
ZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmNyZWF0
ZShpdGVtKSwgdHlwZSk7CisgICAgICAgIG1fbWV0YWRhdGFUcmFjay0+YWRkRGF0YUN1ZShzdGFy
dCwgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoeyBXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgaXRlbSB9KSwg
dHlwZSk7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaAppbmRleCBhMTBkY2Nj
M2UxYjVhMzBkZmJmMDEwYTc2MDUwNTI4MDZiMjE5NmViLi4yNmQ4NGI5YTg5MmQ2YWZjODRhZTkz
ZWRiYjJmMGFiNGJkMDZlM2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmgKQEAgLTI5LDI4ICsyOSwy
NiBAQAogCiAjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oIgogCi0jaWYgVVNF
KEZPVU5EQVRJT04pICYmICFkZWZpbmVkKF9fT0JKQ19fKQotdHlwZWRlZiBzdHJ1Y3Qgb2JqY19v
YmplY3QgKmlkOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZU1hYyBmaW5hbCA6IHB1YmxpYyBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlIHsKIHB1YmxpYzoKKyAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKICAgICB2aXJ0dWFsIH5TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjKCk7Ci0gICAgc3RhdGljIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlPiBjcmVhdGUoaWQpOwogCiAgICAgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6SlNH
bG9iYWxPYmplY3QqKSBjb25zdCBmaW5hbDsKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGRhdGEo
KSBjb25zdCBmaW5hbDsKLQogICAgIGJvb2wgaXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlJikgY29uc3QgZmluYWw7CisgICAgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBsYXRmb3JtVHlwZTo6T2JqQzsgfQorICAgIGJvb2wgZW5j
b2RpbmdSZXF1aXJlc1BsYXRmb3JtRGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
IAotICAgIFBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpPYmpDOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIGVuY29kYWJsZVZhbHVlKCkgY29uc3QgZmluYWw7
CiAKICAgICBpZCBuYXRpdmVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlVmFsdWUuZ2V0
KCk7IH0KIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5KiBhbGxvd2VkQ2xhc3Nl
c0Zvck5hdGl2ZVZhbHVlcygpOworCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVNYWMoaWQgbmF0aXZlVmFsdWUpOwogCiAgICAgUmV0YWluUHRyPGlkPiBt
X25hdGl2ZVZhbHVlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMubW0KaW5kZXggYjk0OWViN2NkZDIw
MDM5ZjFjZmZlZjhjNGM1YmNkN2IxMTNlYjE5OS4uYzk4NGE5ZWVhN2E5NTliNjRhY2M3ZjEyZDUx
NjA3MjEzOGM3YWUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMubW0KQEAgLTQ4LDIxICs0OCwyMyBA
QCBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhBcnJheUluQ29udGV4dChOU0FycmF5ICosIEpT
Q29udGV4dCAqKTsKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aERpY3Rpb25hcnlJbkNvbnRl
eHQoTlNEaWN0aW9uYXJ5ICosIEpTQ29udGV4dCAqKTsKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVl
V2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KEFWTWV0YWRhdGFJdGVtICosIEpTQ29udGV4dCAq
KTsKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aFZhbHVlSW5Db250ZXh0KGlkLCBKU0NvbnRl
eHQgKik7CitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0
ZW0oQVZNZXRhZGF0YUl0ZW0gKik7CiAjZW5kaWYKIAotU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZU1hYzo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhpZCBuYXRpdmVWYWx1ZSkKLSAgICA6
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUoKQotICAgICwgbV9uYXRpdmVWYWx1ZShuYXRpdmVW
YWx1ZSkKK1JlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlOjpjcmVhdGUoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgdmFsdWUpCiB7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhX
VEZNb3ZlKHZhbHVlKSkpOwogfQogCi1TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYygpCitTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFj
OjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVW
YWx1ZSYmIHZhbHVlKQorICAgIDogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSgpCisgICAgLCBt
X25hdGl2ZVZhbHVlKHZhbHVlLm5hdGl2ZVZhbHVlKCkpCiB7CisgICAgUkVMRUFTRV9BU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTih2YWx1ZS5wbGF0Zm9ybVR5cGUoKSA9PSBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQyk7CiB9CiAKLVJlZjxT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpj
cmVhdGUoaWQgbmF0aXZlVmFsdWUpCitTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYygpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhuYXRpdmVWYWx1ZSkpOwogfQogCiBSZWZQdHI8
QXJyYXlCdWZmZXI+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmRhdGEoKSBjb25zdApA
QCAtODksNyArOTEsNyBAQCBKU0M6OkpTVmFsdWUgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1h
Yzo6ZGVzZXJpYWxpemUoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aQogCiBib29sIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmlzRXF1YWwoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKG90aGVyLnBsYXRmb3JtVHlwZSgpICE9IFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6Ok9iakMpCisgICAgaWYgKG90aGVyLnBsYXRmb3JtVHlw
ZSgpICE9IFBsYXRmb3JtVHlwZTo6T2JqQykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
Y29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyogb3RoZXJPYmpDID0gdG9TZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjKCZvdGhlcik7CkBAIC0xMDcsMTAgKzEwOSwyNCBAQCBTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKiB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMo
U2VyaWFsaXplZFBsYXRmb3JtRAogCiBjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFj
KiB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoY29uc3QgU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZSogcmVwKQogewotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04ocmVwLT5wbGF0Zm9ybVR5cGUoKSA9PSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpP
YmpDKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHJlcC0+
cGxhdGZvcm1UeXBlKCkgPT0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6UGxhdGZvcm1UeXBl
OjpPYmpDKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYyo+KHJlcCk7CiB9CiAKK05TQXJyYXkqIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWM6OmFsbG93ZWRDbGFzc2VzRm9yTmF0aXZlVmFsdWVzKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TQXJyYXk+PiBhbGxvd2VkQ2xhc3NlcyhAWyBbTlNTdHJp
bmcgY2xhc3NdLCBbTlNOdW1iZXIgY2xhc3NdLCBbTlNMb2NhbGUgY2xhc3NdLCBbTlNEaWN0aW9u
YXJ5IGNsYXNzXSwgW05TQXJyYXkgY2xhc3NdLCBbTlNEYXRhIGNsYXNzXSBdKTsKKyAgICByZXR1
cm4gYWxsb3dlZENsYXNzZXMuZ2V0KCkuZ2V0KCk7Cit9CisKK1NlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSgp
IGNvbnN0Cit7CisgICAgaWYgKFttX25hdGl2ZVZhbHVlLmdldCgpIGlzS2luZE9mQ2xhc3M6UEFM
OjpnZXRBVk1ldGFkYXRhSXRlbUNsYXNzKCldKQorICAgICAgICByZXR1cm4geyBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgTlNEaWN0aW9uYXJ5V2l0
aEFWTWV0YWRhdGFJdGVtKG1fbmF0aXZlVmFsdWUuZ2V0KCkpIH07CisKKyAgICByZXR1cm4geyBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgbV9uYXRp
dmVWYWx1ZS5nZXQoKSB9OworfQorCiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKIHN0YXRpYyBK
U1ZhbHVlICpqc1ZhbHVlV2l0aFZhbHVlSW5Db250ZXh0KGlkIHZhbHVlLCBKU0NvbnRleHQgKmNv
bnRleHQpCiB7CkBAIC0xOTMsNiArMjA5LDExIEBAIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0
aERpY3Rpb25hcnlJbkNvbnRleHQoTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5LCBKU0NvbnRlCiB9
CiAKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KEFW
TWV0YWRhdGFJdGVtICppdGVtLCBKU0NvbnRleHQgKmNvbnRleHQpCit7CisgICAgcmV0dXJuIGpz
VmFsdWVXaXRoRGljdGlvbmFyeUluQ29udGV4dChOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0
ZW0oaXRlbSksIGNvbnRleHQpOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpOU0RpY3Rpb25h
cnlXaXRoQVZNZXRhZGF0YUl0ZW0oQVZNZXRhZGF0YUl0ZW0gKml0ZW0pCiB7CiAgICAgTlNNdXRh
YmxlRGljdGlvbmFyeSAqZGljdGlvbmFyeSA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25h
cnldOwogCkBAIC0yMzAsNyArMjUxLDcgQEAgc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZN
ZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZNZXRhZGF0YUl0ZW0gKml0ZW0sIEpTQ29udGUKICAgICBp
ZiAoaXRlbS52YWx1ZSkKICAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0Oml0ZW0udmFsdWUg
Zm9yS2V5OkAiZGF0YSJdOwogCi0gICAgcmV0dXJuIGpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29u
dGV4dChkaWN0aW9uYXJ5LCBjb250ZXh0KTsKKyAgICByZXR1cm4gZGljdGlvbmFyeTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggNjRmM2NiZjIwYzUyYzM2MjA2YWFlYjljNDk5N2E3MmY1YmU0MGY4Ny4uNGNiZDQ2MTRiNjJi
OGMzZTdkNGY1NmNhOTUwYzk0NDc2MTI5OTMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsOCArMjQsOCBAQAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgTm90
UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHN0
cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uIHByb3h5Q29u
ZmlndXJhdGlvbikgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKSBTeW5jaHJvbm91cwotICAgIERlbGV0ZU1lZGlhUGxh
eWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKKyAgICBD
cmVhdGVNZWRpYVBsYXllcihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9uKSAtPiAoc3Ry
dWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3Vy
YXRpb24pIEFzeW5jCisgICAgIERlbGV0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKIAogICAgIEdldFN1cHBvcnRlZFR5cGVzKGVudW06
dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKSBTeW5jaHJv
bm91cwogICAgIFN1cHBvcnRzVHlwZUFuZENvZGVjcyhlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHR5cGUpIC0+
IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIHN1
cHBvcnQpIFN5bmNocm9ub3VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcAppbmRleCBiNzZkYzliMGQ0NmY4NmI3Nzk1
N2QzYjNiNzg1NDU5YzM5NDliMmE2Li4zMmM5YjdlMTJlNWE3MmNiMGJiYmQwYTk1ZTAzMTE4ZTA3
MjQwYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VGV4dFRyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKQEAgLTk2LDI1ICs5NiwyNSBAQCB2b2lkIFJlbW90ZVRl
eHRUcmFja1Byb3h5OjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpCiAgICAgY29u
ZmlndXJhdGlvbkNoYW5nZWQoKTsKIH0KIAotdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRk
RGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwg
dW5zaWduZWQpCit2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFk
ZERhdGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGxlbmd0aCkpLCBtX3BsYXllci5p
ZGVuZGlmaWVyKCkpOwogfQogCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCi12b2lkIFJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiYmLCBjb25zdCBTdHJpbmcmKQor
dm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+
JiYgY3VlRGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpBZGREYXRhQ3VlV2l0aFR5cGUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5k
LCBjdWVEYXRhLT5lbmNvZGFibGVWYWx1ZSgpLCB0eXBlKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigp
KTsKIH0KIAotdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6dXBkYXRlRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikK
K3ZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1l
JiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUm
IGN1ZURhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlVwZGF0ZURh
dGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLmVuY29kYWJsZVZhbHVlKCkp
LCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwogfQogCi12b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5
OjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWUmKQordm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6cmVtb3Zl
RGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3VlRGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6UmVtb3ZlRGF0YUN1ZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1
ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
aW5kZXggMWMwMGJkYTUzZjViNmI0MzRlYTcxOTc5ZjRlNjMyMTM4MWRhNTcyYy4uOGM5ZmEyMWFm
MzhhNzE2MmM2YzIwOWU5Mzk0Njg5MDZhMjVjM2NhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkQXR0YWNobWVudERhdGEuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudERhdGEuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyRGF0YS5oPgpAQCAtMzE3NCw0ICszMTc1LDMyIEBAIE9wdGlvbmFsPFNlcmlh
bGl6ZWRBdHRhY2htZW50RGF0YT4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkQXR0
YWNobWVudERhCiAKICNlbmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCisjaWYg
RU5BQkxFKFZJREVPKQordm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmIHZhbHVlKQoreworICAgIGJvb2wgaGFzUGxhdGZvcm1E
YXRhID0gdmFsdWUuZW5jb2RpbmdSZXF1aXJlc1BsYXRmb3JtRGF0YSgpOworICAgIGVuY29kZXIg
PDwgaGFzUGxhdGZvcm1EYXRhOworCisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHZhbHVlLnBsYXRm
b3JtVHlwZSgpKTsKKyAgICBpZiAoaGFzUGxhdGZvcm1EYXRhKQorICAgICAgICBlbmNvZGVQbGF0
Zm9ybURhdGEoZW5jb2RlciwgdmFsdWUpOworfQorCitPcHRpb25hbDxTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWU+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZVZhbHVlPjo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBib29s
IGhhc1BsYXRmb3JtRGF0YTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1BsYXRmb3JtRGF0
YSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZSB0eXBlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGVFbnVtKHR5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgaWYgKGhhc1BsYXRmb3JtRGF0YSkKKyAgICAgICAgcmV0dXJuIGRlY29kZVBsYXRmb3JtRGF0
YShkZWNvZGVyLCB0eXBlKTsKKworICAgIHJldHVybiB7eyB9fTsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKaW5kZXggN2JmNzFjMTdhYmRkM2Q4YjEzMTkwMjIwMDU4YzlmOWMyMTlmNjBiMy4uZTM4
MTRlMjFmODMzNmFhZjJmNDQ0MzIzMmUzNDRlMDA3NGRhZTJhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkRpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNl
dHNJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dv
cmtlclR5cGUuaD4KQEAgLTgxOSw2ICs4MjAsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkQXR0YWNobWVudERhdGE+IHsKIAogI2VuZGlmIC8v
IEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKKyNpZiBFTkFCTEUoVklERU8pCit0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJik7CisgICAgc3RhdGljIE9wdGlvbmFs
PFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gZGVjb2RlKERlY29kZXIm
KTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYpOworICAgIHN0YXRpYyBPcHRp
b25hbDxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+IGRlY29kZVBsYXRm
b3JtRGF0YShEZWNvZGVyJiwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
OjpQbGF0Zm9ybVR5cGUpOworfTsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBJUEMKIAogbmFt
ZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbQppbmRleCBlZTIyMjQyM2YwNDdjOWJmMDkzNjM5ZDgxMmIxODJk
ODM2MTgwZWZlLi44ZGE3YzE5ODc3OTJiODc3NDlhNmVhZDdlOTkzZjk2YzdlMTgxZTFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWMubW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUHJvdGVjdGlvblNwYWNl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVNYWMuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0
IDx3dGYvTWFjaFNlbmRSaWdodC5oPgogCkBAIC02NjksNCArNjcwLDI3IEBAIGJvb2wgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dD46OmRlY29kZVBsYXRm
b3JtRGF0YShEZWNvCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPKQordm9pZCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29kZVBs
YXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlVmFsdWUmIHZhbHVlKQoreworICAgIEFTU0VSVCh2YWx1ZS5wbGF0Zm9ybVR5
cGUoKSA9PSBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3Jt
VHlwZTo6T2JqQyk7CisgICAgaWYgKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKQorICAgICAg
ICBlbmNvZGVPYmplY3QoZW5jb2RlciwgdmFsdWUubmF0aXZlVmFsdWUoKSk7Cit9CisKK09wdGlv
bmFsPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZGVjb2RlUGxhdGZv
cm1EYXRhKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZTo6UGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSkKK3sKKyAgICBBU1NFUlQocGxhdGZv
cm1UeXBlID09IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZv
cm1UeXBlOjpPYmpDKTsKKworICAgIGlmIChwbGF0Zm9ybVR5cGUgIT0gV2ViQ29yZTo6U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBhdXRvIG9iamVjdCA9IGRlY29kZU9iamVjdChkZWNv
ZGVyLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2VkQ2xhc3Nl
c0Zvck5hdGl2ZVZhbHVlcygpKTsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHJldHVybiBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWUgeyBwbGF0Zm9ybVR5cGUsIG9iamVjdC52YWx1ZSgpLmdldCgpIH07Cit9CisjZW5k
aWYKKwogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5k
ZXggOWRjMGViYjYwNjY0ODk3ZjgyZGI3ZTA1MTgwOGYwZTQ4OWRjNTI3OS4uYTYwYmI0ZjljZDIz
MWQ5MTkwMzgyNDIxNDJlM2IwZWU5OGUzN2JkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcApAQCAtNjcsMTMgKzY3LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogfSB3aGls
ZSAoMCkKICNlbmRpZgogCi1NZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1h
bmFnZXIsIGNvbnN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlv
bikKK01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1l
ZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciBlbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBs
YXllcklkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlcikKICAgICA6
IG1fcGxheWVyKHBsYXllcikKICAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcihwbGF5ZXItPmNy
ZWF0ZVJlc291cmNlTG9hZGVyKCkpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1f
cmVtb3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV9pZChwbGF5
ZXJJZGVudGlmaWVyKQotICAgICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCiAjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcigmcGxheWVyLT5tZWRpYVBsYXll
ckxvZ2dlcigpKQogICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKCkpCkBAIC04Miw2ICs4MSwxMiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYQog
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6c2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQoreworICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmln
dXJhdGlvbik7CisgICAgbV9wbGF5ZXItPm1lZGlhRW5naW5lVXBkYXRlZCgpOworfQorCiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogewogICAg
IElORk9fTE9HKExPR0lERU5USUZJRVIpOwpAQCAtNDg0LDYgKzQ4OSw0MCBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aQogICAgICAgICB0cmFjay0+cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFdU
Rk1vdmUoZGF0YSkpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkRGF0
YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSYm
IHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCit7Cisg
ICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAo
Y29uc3QgYXV0byYgdHJhY2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAg
ICB0cmFjay0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXVEZNb3Zl
KGRhdGEpKTsKK30KKworI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQordm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZShUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGEsIFN0cmluZyYmIHR5cGUpCit7Cisg
ICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAo
Y29uc3QgYXV0byYgdHJhY2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAg
ICB0cmFjay0+YWRkRGF0YUN1ZVdpdGhUeXBlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCks
IFdURk1vdmUoZGF0YSksIFdURk1vdmUodHlwZSkpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGEpCit7CisgICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5j
b250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAoY29uc3QgYXV0byYgdHJhY2sgPSBtX3Rl
eHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICB0cmFjay0+dXBkYXRlRGF0YUN1ZShX
VEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXVEZNb3ZlKGRhdGEpKTsKK30KKwordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFDdWUoVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5k
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhKQoreworICAgIEFTU0VSVCht
X3RleHRUcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOworCisgICAgaWYgKGNvbnN0IGF1dG8m
IHRyYWNrID0gbV90ZXh0VHJhY2tzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgdHJhY2stPnJl
bW92ZURhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgV1RGTW92ZShkYXRhKSk7
Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVZp
ZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBhdXRvIGFk
ZFJlc3VsdCA9IG1fdmlkZW9UcmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzN2UxMWY0YWQwMjVhMTgzMGU1Y2YzYzg5
NTAwZGE4Li44YjBjZTM5YzUwMzM1ZjYyNDFjMGU5Mjg0ZmY5MzAxNGRlMTBiZTgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTQwLDEyICs0MCwxNCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CitjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZTsKIGNsYXNzIFRleHRUcmFja1ByaXZhdGVSZW1vdGU7CitjbGFzcyBVc2VyRGF0
YTsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOwogc3RydWN0IFRleHRUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb247CkBAIC01OSwxNCArNjEsMTYgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
IGZpbmFsCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBwbGF5
ZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlciwgY29uc3QgUmVtb3Rl
TWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUoV2ViQ29yZTo6TWVk
aWFQbGF5ZXIqIHBsYXllciwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2Vy
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlPihwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsIG1hbmFnZXIs
IGNvbmZpZ3VyYXRpb24pOworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU+KHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWRlbnRpZmllciwg
bWFuYWdlcik7CiAgICAgfQogCi0gICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKFdlYkNvcmU6
Ok1lZGlhUGxheWVyKiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXImLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mKTsKKyAg
ICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYpOwogICAgIH5N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKTsKIAorICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihS
ZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik7CisKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgdm9p
ZCBpbnZhbGlkYXRlKCkgeyBtX2ludmFsaWQgPSB0cnVlOyB9CkBAIC0xMDQsNiArMTA4LDEzIEBA
IHB1YmxpYzoKICAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UmJik7CiAgICAgdm9pZCBwYXJzZVdlYlZUVEN1
ZURhdGFTdHJ1Y3QoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6SVNPV2Vi
VlRUQ3VlJiYpOwogCisgICAgdm9pZCBhZGREYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVy
ZW5jZSYmKTsKKyNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKKyAgICB2b2lkIGFkZERhdGFDdWVX
aXRoVHlwZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwg
TWVkaWFUaW1lJiYgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUm
JiwgU3RyaW5nJiYpOworICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBXZWJDb3JlOjpT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJik7CisgICAgdm9pZCByZW1vdmVEYXRhQ3Vl
KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRp
bWUmJiBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKKyNl
bmRpZgorCiAgICAgdm9pZCByZXF1ZXN0UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIp
OwogICAgIHZvaWQgcmVzb3VyY2VOb3RTdXBwb3J0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KaW5kZXggYzQwNGRjNjc0MDczN2EzNjhkNGZhNjk0MmE4
ZTk2MDk3Nzg0NjA3Yi4uZTg4OTdiNmExMGExMGQ0YjcwMDkyOThjN2FhMjcyOGJmZTExMjk3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KQEAgLTUwLDEw
ICs1MCwxMiBAQCBtZXNzYWdlcyAtPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgTm90UmVmQ291
bnRlZCB7CiAgICAgUGFyc2VXZWJWVFRDdWVEYXRhKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciB0cmFja0lELCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBQYXJzZVdl
YlZUVEN1ZURhdGFTdHJ1Y3QoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRy
YWNrSUQsIFdlYkNvcmU6OklTT1dlYlZUVEN1ZSBjdWVEYXRhKQogCi0gICAgIyMgQWRkRGF0YUN1
ZShNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRh
KQotICAgICMjIEFkZERhdGFDdWUoTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJD
b3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlIGRhdGEsIFN0cmluZyB0eXBlKQotICAgICMj
IFVwZGF0ZURhdGFDdWUoTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlIGRhdGEpCi0gICAgIyMgUmVtb3ZlRGF0YUN1ZShNZWRp
YVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUgZGF0YSkKKyAgICBBZGREYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIElQQzo6RGF0
YVJlZmVyZW5jZSBkYXRhKQorI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQorICAgIEFkZERhdGFD
dWVXaXRoVHlwZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwg
TWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWUgY3VlRGF0YSwgU3RyaW5nIHR5cGUpCisgICAgVXBkYXRlRGF0YUN1ZShX
ZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgTWVkaWFUaW1lIHN0
YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUgY3VlRGF0YSkKKyAgICBSZW1vdmVEYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNv
cmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBjdWVEYXRhKQorI2VuZGlmCiAKICAg
ICAjIyBBZGRHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhIGN1ZSkKICAgICAjIyBV
cGRhdGVHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhIGN1ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA4ZjA1Mzc2ODM3OGViMDVjZWQzMjFmZmNmMTE5MjNiNTll
ZWZjMzJiLi4zOGE1M2EwY2JjZmY4OWQ0NWViY2Q0MWU3ZTZjMzU4M2JkMjdkM2FhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0xNDQsNyArMTQ0LDYgQEAgdm9pZCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGEKIAogc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW1vdGVNZWRpYVBsYXllcihNZWRp
YVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIGlkID0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKIAogICAgIFJlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uIHByb3h5Q29uZmlndXJhdGlvbjsKICAgICBwcm94eUNvbmZpZ3Vy
YXRpb24ucmVmZXJyZXIgPSBwbGF5ZXItPnJlZmVycmVyKCk7CkBAIC0xNTksMTUgKzE1OCwxOSBA
QCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6OmNyZWF0ZVJlbQogICAgIHByb3h5Q29uZmlndXJhdGlvbi5zaG91bGRV
c2VQZXJzaXN0ZW50Q2FjaGUgPSBwbGF5ZXItPnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpOwog
ICAgIHByb3h5Q29uZmlndXJhdGlvbi5pc1ZpZGVvID0gcGxheWVyLT5pc1ZpZGVvUGxheWVyKCk7
CiAKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOwogICAgIFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5
ZXJDb25maWd1cmF0aW9uOwotICAgIGJvb2wgc2VuZFN1Y2NlZWRlZCA9IGdwdVByb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXIoaWQsIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXI6OlJlcGx5KHBsYXllckNvbmZpZ3VyYXRpb24pLCAw
KTsKLSAgICBpZiAoIXNlbmRTdWNjZWVkZWQpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJGYWls
ZWQgdG8gY3JlYXRlIHJlbW90ZSBtZWRpYSBwbGF5ZXIuIik7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KKyAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpD
cmVhdGVNZWRpYVBsYXllcihpZGVudGlmaWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwcm94
eUNvbmZpZ3VyYXRpb24pLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgaWRl
bnRpZmllcl0oYXV0byYmIHBsYXllckNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgaWYgKCF3ZWFr
VGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoY29uc3QgYXV0byYgcGxh
eWVyID0gbV9wbGF5ZXJzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgICAgIHBsYXllci0+c2V0
Q29uZmlndXJhdGlvbihXVEZNb3ZlKHBsYXllckNvbmZpZ3VyYXRpb24pKTsKKyAgICB9LCAwKTsK
KworICAgIGF1dG8gcmVtb3RlUGxheWVyID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjcmVh
dGUocGxheWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBpZGVudGlmaWVyLCAqdGhpcyk7Cisg
ICAgbV9wbGF5ZXJzLmFkZChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cigqcmVtb3RlUGxheWVyKSk7
CiAKLSAgICBhdXRvIHJlbW90ZVBsYXllciA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y3Jl
YXRlKHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWQsICp0aGlzLCBwbGF5ZXJDb25m
aWd1cmF0aW9uKTsKLSAgICBtX3BsYXllcnMuYWRkKGlkLCBtYWtlV2Vha1B0cigqcmVtb3RlUGxh
eWVyKSk7CiAgICAgcmV0dXJuIHJlbW90ZVBsYXllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmgKaW5kZXggYjI2NmIzOTg0YzM4MGNkMzY0ODIyMTQzNWQzZjg0ZmUxYjVhYTc3NS4uMzIw
ZWMzMDE4OWQ2ZmM1NjJmMmFlYmZmNTFjOTBmNzRlZGY4ZGEwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5oCkBAIC01MSw3ICs1MSw4IEBAIGNsYXNzIFdlYlByb2Nlc3M7CiBzdHJ1Y3QgVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyCi0gICAgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQgeworICAgIDogcHVibGlj
IFdlYlByb2Nlc3NTdXBwbGVtZW50CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyKFdlYlByb2Nlc3MmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Rl
eHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDVjNzg3NjRlMGMxNzQxMGNiMjM3NjhhNDUx
NWJkNDIwNDU4MzQzZjEuLjZhNjYyMmEzOTU0OTkwMDcxMDZiZDQ5MDk3MTEwNWQ1OGI4M2E5NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcApAQCAtODgsNjYgKzg4LDcyIEBAIHZvaWQgVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihUZXh0VHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhCiAgICAgbV9pc0RlZmF1bHQgPSBjb25maWd1cmF0aW9uLmlzRGVmYXVs
dDsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWdu
ZWQpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1
ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLSNpZiBFTkFCTEUoREFUQUNV
RV9WQUxVRSkKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWU+JiYsIGNvbnN0IFN0cmluZyYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1v
dGU6OnVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShj
b25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZSYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZUdlbmVy
aWNDdWUoR2VuZXJpY0N1ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZv
aWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUm
IHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYp
CisKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0
cmluZyYmIGhlYWRlcikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGll
bnQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICBj
bGllbnQtPnBhcnNlV2ViVlRURmlsZUhlYWRlcihXVEZNb3ZlKGhlYWRlcikpOwogfQogCi0jZW5k
aWYKLQotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGRHZW5lcmljQ3VlKEdlbmVyaWND
dWVEYXRhJikKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRh
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNs
aWVudCgpKQorICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0YShyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKIH0KIAotdm9pZCBU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikK
K3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KElT
T1dlYlZUVEN1ZSYmIGN1ZURhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NF
UlQoY2xpZW50KCkpOworICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKKyAg
ICAgICAgY2xpZW50LT5wYXJzZVdlYlZUVEN1ZURhdGEoV1RGTW92ZShjdWVEYXRhKSk7CiB9CiAK
LXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3Vl
RGF0YSYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWUoTWVkaWFUaW1l
JiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSkKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYgKGF1
dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICBjbGllbnQtPmFkZERhdGFDdWUo
V1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7CiB9CiAKLQotdm9pZCBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQorI2lmIEVO
QUJMRShEQVRBQ1VFX1ZBTFVFKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRh
Q3VlV2l0aFR5cGUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YVZhbHVlLCBTdHJpbmcmJiB0eXBlKQogewogICAg
IEFTU0VSVChjbGllbnQoKSk7CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgp
KQotICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRURmlsZUhlYWRlcihXVEZNb3ZlKGhlYWRlcikp
OworICAgICAgICBjbGllbnQtPmFkZERhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5k
KSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUoZGF0YVZhbHVlKSks
IHR5cGUpOwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3Vl
RGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit2b2lkIFRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnVwZGF0ZURhdGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVu
ZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YVZhbHVlKQogewogICAgIEFT
U0VSVChjbGllbnQoKSk7CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQot
ICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKKyAgICAgICAgY2xpZW50LT51cGRh
dGVEYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKIH0KIAotdm9pZCBUZXh0VHJh
Y2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoSVNPV2ViVlRUQ3VlJiYg
Y3VlRGF0YSkKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShNZWRp
YVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
VmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0
byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRD
dWVEYXRhKFdURk1vdmUoY3VlRGF0YSkpOworICAgICAgICBjbGllbnQtPnJlbW92ZURhdGFDdWUo
V1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6
Y3JlYXRlKFdURk1vdmUoZGF0YVZhbHVlKSkpOwogfQotCisjZW5kaWYKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgKaW5kZXggNmFjOWM2OWQwMTkyMGQ5Yzk0
MTMyYjg4M2U1NmY2NWJkOGVjM2NjYy4uN2I3ZjcwM2NiNDk3ZGVkZWEzOTFkYjU5Y2M5MmJlY2Ux
NWE1OTJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9U
ZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgKQEAgLTMyLDYgKzMyLDExIEBACiAjaW5j
bHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBH
ZW5lcmljQ3VlRGF0YTsKK2NsYXNzIElTT1dlYlZUVEN1ZTsKK30KKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKQEAgLTQ0LDIxICs0OSwyMSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja1ByaXZhdGVS
ZW1vdGUocGxheWVyLCBpZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiAgICAg
fQogCi0gICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpOworICAgIHZvaWQgYWRkRGF0YUN1
ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2Um
Jik7CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2b2lkIGFkZERhdGFDdWUoY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlPiYmLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHVwZGF0ZURhdGFD
dWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmKTsKLSAgICB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFU
aW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWUmKTsKKyAgICB2b2lkIGFkZERhdGFDdWVXaXRoVHlwZShNZWRpYVRpbWUmJiBzdGFydCwgTWVk
aWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiwgU3RyaW5nJiYp
OworICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYg
ZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJik7CisgICAgdm9pZCByZW1vdmVE
YXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVWYWx1ZSYmKTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEdl
bmVyaWNDdWVEYXRhJik7Ci0gICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRh
Jik7Ci0gICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9p
ZCBhZGRHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9pZCB1cGRh
dGVHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9pZCByZW1vdmVH
ZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhJik7CiAKICAgICB2b2lkIHBhcnNlV2Vi
VlRURmlsZUhlYWRlcihTdHJpbmcmJik7CiAgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1
Y3QoSVNPV2ViVlRUQ3VlJiYpOworICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFdl
YkNvcmU6OklTT1dlYlZUVEN1ZSYmKTsKIAogICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDViMzJlOWQz
MDk5NDZjNWViYjU5YmMyOGMyMzU1NjhiNDJkMTI2MTUuLjU2NTllMDk1MGEzMzM3ZTAwM2E2MWFl
ZTI2NTViYWQ0ZGFjZDJkNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMi0xOSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGlu
LWJhbmQgbWV0YWRhdGEgY3VlcyB3aGVuIGxvYWRpbmcgbWVkaWEgaW4gdGhlIEdQVSBQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc5MDQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5NTYxNjQ3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAyMC0wMi0xOSAgSmFzb24gTGF3cmVuY2UgIDxsYXdyZW5jZS5qQGFwcGxlLmNvbT4K
IAogICAgICAgICBbIE1hYyB3azIgXSBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2hhci9o
YXItcGFnZS5odG1sIGlzIGZsYWt5IGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2dw
dS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGIyNDAyYjk0OWE5ZjdjNzYxYzk3ZDlkMjJmYjZjMTI1NDE4YzRh
OTQuLjkxM2E1ZDQ0ODQyZmFiOWNlNDczNGJkZGYzN2M0ZWFlNWQyMDc1ZTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjI5LDYgKzIyOSw4IEBAIG1lZGlh
L3RyYWNrL3RyYWNrLWluLWJhbmQuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9tZWRpYS90cmFj
ay90cmFjay13ZWJ2dHQtc2xvdy1sb2FkaW5nLmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvbWVk
aWEvdHJhY2svdHJhY2std2VidnR0LXNsb3ctbG9hZGluZy0yLmh0bWwgWyBQYXNzIF0KIGh0dHAv
dGVzdHMvbWVkaWEvaGxzL2hscy13ZWJ2dHQtdHJhY2tzLmh0bWwgWyBQYXNzIF0KK2h0dHAvdGVz
dHMvbWVkaWEvdHJhY2staW4tYmFuZC1obHMtbWV0YWRhdGEuaHRtbCBbIFBhc3MgXQoraHR0cC90
ZXN0cy9tZWRpYS90cmFjay1pbi1iYW5kLWhscy1tZXRhZGF0YS1jcmFzaC5odG1sIFsgUGFzcyBd
CiAKIGFjY2Vzc2liaWxpdHkvbWVkaWEtZWxlbWVudC5odG1sIFsgU2tpcCBdCiBmYXN0L2Jsb2Nr
L2Zsb2F0L2xpc3QtbWFya2VyLWlzLWZsb2F0LWNyYXNoLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391284</attachid>
            <date>2020-02-20 07:12:42 -0800</date>
            <delta_ts>2020-02-20 07:25:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207904-20200220071241.patch</filename>
            <type>text/plain</type>
            <size>64142</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2OTE0OWIwYzQxZDFk
NjllMTU5MWNkNTdlNGJkNDU0NTBjMDY3Zi4uNzk5Yzk5ZjhmZTljODhlMWVhYTRiZTBhMTIzYTUx
ZTFkOWQ5NTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTE5ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgaW4t
YmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0
YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4
dFRyYWNrOjpmaW5kSW5jb21wbGV0ZUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFU
ZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRl
eHRUcmFjazo6cmVtb3ZlQ3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0
VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vlc0ludGVybmFsIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpkZXNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpkYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmlzRXF1YWwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6cGxhdGZvcm1UeXBlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmVuY29kaW5nUmVxdWlyZXNQ
bGF0Zm9ybURhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6ZW5jb2RhYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFE
aWRBcnJpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2Vk
Q2xhc3Nlc0Zvck5hdGl2ZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUpOiBEZWxldGVkLgorCiAyMDIwLTAyLTE5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUGxh
dGZvcm1NZWRpYVNlc3Npb246OmNoYXJhY3RlcmlzdGljcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzMjc5NTY3
MjdkNmRlYzhmZjljN2Q4OTY4Y2VlYmEwMTA5ZWYzYjEuLmQxY2E2ZDQzMWY1ZGZhN2QwNzc0MTEy
ZDEzNjVhMmY5ZGQwYTY1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDItMTkg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9y
dCBpbi1iYW5kIG1ldGFkYXRhIGN1ZXMgd2hlbiBsb2FkaW5nIG1lZGlhIGluIHRoZSBHUFUgUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3
OTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTU2MTY0Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4
dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpl
bmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3Rl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjphZGRHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViS2l0OjpU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKToKKyAg
ICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1
ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFD
dWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaDoKKwogMjAyMC0wMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBmYXN0L2RvbS9mb2N1cy1zaGlmdC1jcmFzaC5odG1sIGFuZCBl
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tY2hhbmdlLWluLWRpc2Nvbm5lY3RlZC1mcmFtZS1j
cmFzaC5odG1sIGNyYXNoIGFmdGVyIHIyNTY4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjQ4MGYyYTNm
MjJlZTBkMzc0YWM5ODgwNjA2MjJmMWFkZjJlNzI1Yy4uNDRiY2EyMGI3ZmU1NjY4NTcxZWU4Mjhm
OTc0NWQ1MGUxZjZkZTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NjQsNiArMTc2NCw3IEBAIHBs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAogcGxhdGZv
cm0vU2Nyb2xsYmFyVGhlbWUuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5j
cHAKK3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCiBwbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuY3BwCiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAKIHBsYXRm
b3JtL1NoYXJlZFN0cmluZ0hhc2guY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzhjODM3YThjODQ5NWZkMTNiYzljNzFhZmVm
ZmZmMWNjZWU2NjBmMy4uNGQwYzE1MTUwNTE2YmZmNDExYTYxZjlkMzc5YjAwMTVkNDcyNTFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTM1LDEwICsxMzUsMTEgQEAKIAkJMDc2MzhBOUExODg0NDg3MjAwRTE1QTFCIC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzYzOEE5ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbSAqLzsgfTsKIAkJMDc2OTcwODYxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFj
a0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwICovOyB9OwogCQkw
NzY5NzA4NzE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODUxNDYzQUQ4NzAwRjUwMkNG
IC8qIFRleHRUcmFja0xpc3QuaCAqLzsgfTsKKwkJMDc2RDFDMUYyM0Y2RUI1QjAwRDk1QjA2IC8q
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3NkYwRDBFMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaCAqLzsgfTsKIAkJMDc3NjY0RkQxODNFNkI1QzAwMTMzQjkyIC8q
IEpTUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NzY2NEZCMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50LmggKi87IH07CiAJCTA3N0FGMTQwMThGNEFFNDAwMDAxRUQ2
MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdBRjEzRTE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTA3N0FGMTQzMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzdBRjE0MTE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZU1hYy5oICovOyB9OworCQkwNzdBRjE0MzE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc3QUYxNDExOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNzdCNjQxMzFCOTRGMTJFMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3N0I2NDExMUI5NEYxMkUwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9j
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3
N0I2NDE3MUI5NUY3MDMwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QjY0MTUxQjk1Rjcw
MzAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc4MzIyODUxODAxM0VEODAwOTk5RTBD
IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3ODMyMjgzMTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlLmggKi87IH07CkBAIC01NDczLDYgKzU0NzQsNyBAQAogCQkwNzYzOEE5ODE4
ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBU
ZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRl
eHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzY5NzA4NTE0
NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUZXh0VHJhY2tMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3NkQxQzFEMjNGNkQ5RDgwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBU
cmFja1ByaXZhdGVCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRyYWNrUHJpdmF0ZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZG
MEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkYwRDBB
MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NDkwLDYgKzU0OTIsNyBAQAog
CQkwNzg0NjM0MDE0NUIxNTFBMDBBNThERjEgLyogSlNUcmFja0V2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2MzQxMTQ1QjE1MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUcmFja0V2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBK
U1RyYWNrQ3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVHJhY2tD
dXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc4NjMzRDcyM0ZFMDk2NDAw
ODdBRTIxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3ODdDNDY3MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01l
ZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3ODdDNDY4MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzhFMDk0ODE3RDE3MDk2MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbUF1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1
OTk0LDcgKzI1OTk3LDkgQEAKIAkJCQlCQzI0NDFDMzBFOEI2NUQwMDA1NTMyMEYgLyogU2Nyb2xs
Vmlldy5jcHAgKi8sCiAJCQkJQkM2RDZFMjUwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcu
aCAqLywKIAkJCQlBQjcxNzA4ODBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51Lmgg
Ki8sCisJCQkJMDc4NjMzRDcyM0ZFMDk2NDAwODdBRTIxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUuY3BwICovLAogCQkJCTA3N0FGMTNFMThGNEFFNDAwMDAxRUQ2MSAvKiBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmggKi8sCisJCQkJMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovLAogCQkJCTFBNEE5NTRCMEI0RURDQ0Iw
MDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuY3BwICovLAogCQkJCTFBNEE5NTRDMEI0RURDQ0IwMDJE
OEMzQyAvKiBTaGFyZWRCdWZmZXIuaCAqLywKIAkJCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcyNUIg
LyogU2hhcmVkU3RyaW5nSGFzaC5jcHAgKi8sCkBAIC0zMjI1NCw2ICszMjI1OSw3IEBACiAJCQkJ
RTE4REYzMzUxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzdBRjE0MDE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3QUYxNDMxOEY0QjFCQjAwMDFF
RDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTA3NkQxQzFGMjNGNkVCNUIwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNkY3RjZEMUMzMUUzOUEw
MEYxMTFEQyAvKiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDkz
QUVFMzE5REY1NjQxMDAyQTg2QzMgLyogU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAw
NDAwMWI0YmE5ZWRmYWViZmVhZjFmMjdjZmEwZmNlNDQ3YzExZDg4Li4wZTg2OGEwYmFlN2JkMjI4
MjRhZGNiNDRlYjY4YWUxNzliYzkxY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTEzMzIsNyArMTMzMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgICAgICBtb2RlID0gQXR0cmlidXRlOwogICAg
ICAgICAgICAgQVNTRVJUKG1fcGxheWVyKTsKICAgICAgICAgICAgIGlmICghbV9wbGF5ZXIpIHsK
LSAgICAgICAgICAgICAgICBFUlJPUl9MT0cobG9nU2l0ZUlkZW50aWZpZXIsICIgaGFzIHNyY0F0
dHIgYnV0IG1fcGxheWVyIGlzIG5vdCBjcmVhdGVkIik7CisgICAgICAgICAgICAgICAgRVJST1Jf
TE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiaGFzIHNyY0F0dHIgYnV0IG1fcGxheWVyIGlzIG5vdCBj
cmVhdGVkIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UgaWYgKGF1dG8gZmlyc3RTb3VyY2UgPSBjaGlsZHJlbk9mVHlwZTxIVE1MU291cmNl
RWxlbWVudD4oKnRoaXMpLmZpcnN0KCkpIHsKQEAgLTM0NzMsMTEgKzM0NzMsMTMgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpwbGF5KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2Up
CiAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIGlmIChzdWNjZXNzLnZhbHVlKCkgPT0gTWVk
aWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZCkKICAgICAgICAgICAg
IHNldEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlKEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
OjpQcmV2ZW50ZWRBdXRvcGxheSk7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAi
cmVqZWN0aW5nIHByb21pc2U6ICIsIHN1Y2Nlc3MudmFsdWUoKSk7CiAgICAgICAgIHByb21pc2Uu
cmVqZWN0KE5vdEFsbG93ZWRFcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAobV9lcnJvciAmJiBtX2Vycm9yLT5jb2RlKCkgPT0gTWVkaWFFcnJvcjo6TUVESUFfRVJSX1NS
Q19OT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAicmVq
ZWN0aW5nIHByb21pc2UgYmVjYXVzZSBvZiBlcnJvciIpOwogICAgICAgICBwcm9taXNlLnJlamVj
dChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM0OTUsNiArMzQ5Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6cGxheSgpCiAKICAgICBhdXRvIHN1Y2Nlc3MgPSBtX21lZGlhU2Vzc2lvbi0+
cGxheWJhY2tQZXJtaXR0ZWQoKTsKICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgRVJST1Jf
TE9HKExPR0lERU5USUZJRVIsICJwbGF5YmFjayBub3QgcGVybWl0dGVkOiAiLCBzdWNjZXNzLnZh
bHVlKCkpOwogICAgICAgICBpZiAoc3VjY2Vzcy52YWx1ZSgpID09IE1lZGlhUGxheWJhY2tEZW5p
YWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQpCiAgICAgICAgICAgICBzZXRBdXRvcGxheUV2
ZW50UGxheWJhY2tTdGF0ZShBdXRvcGxheUV2ZW50UGxheWJhY2tTdGF0ZTo6UHJldmVudGVkQXV0
b3BsYXkpOwogICAgICAgICByZXR1cm47CkBAIC01MDk0LDcgKzUwOTcsOCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTWVkaWFFbmdpbmVXYXNVcGRhdGVkKCkKIAogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogewotICAgIElORk9fTE9HKExP
R0lERU5USUZJRVIpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKICAgICBiZWdp
blByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAgICAgdXBkYXRlUmVuZGVyZXIoKTsK
ICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwpAQCAtNTEyOSw3ICs1MTMz
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogCiB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCiB7Ci0gICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7CisgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgbV9w
bGF5ZXItPmVuZ2luZURlc2NyaXB0aW9uKCkpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
ICAgICBtX2Ryb3BwZWRWaWRlb0ZyYW1lcyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAppbmRleCBmMDdmNzM4ZDI4MzYxY2M0YmZk
NDkyYzY0YTg0YWM5YmQ0Y2E2NTA0Li4wYzA0ZjNjMWI1ZjE3MmU3MmRjZjNmYTVlMzViYjBlOTcz
MjA4NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFU
ZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRl
eHRUcmFjay5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjph
ZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW4KIAog
dm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4m
JiBwbGF0Zm9ybVZhbHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgaWYgKG1faW5jb21w
bGV0ZUN1ZU1hcC5jb250YWlucyhwbGF0Zm9ybVZhbHVlLnB0cigpKSkKKyAgICBpZiAoZmluZElu
Y29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8g
Y3VlID0gRGF0YUN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0YXJ0LCBl
bmQsIHBsYXRmb3JtVmFsdWUuY29weVJlZigpLCB0eXBlKTsKQEAgLTcwLDcgKzcwLDcgQEAgdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW4KIAogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUluZmluaXRlKCkg
JiYgbWVkaWFFbGVtZW50KCkpIHsKICAgICAgICAgY3VlLT5zZXRFbmRUaW1lKG1lZGlhRWxlbWVu
dCgpLT5kdXJhdGlvbk1lZGlhVGltZSgpKTsKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLmFk
ZChXVEZNb3ZlKHBsYXRmb3JtVmFsdWUpLCBjdWUuY29weVJlZigpKTsKKyAgICAgICAgbV9pbmNv
bXBsZXRlQ3VlTWFwLmFwcGVuZCgmY3VlLmdldCgpKTsKICAgICB9CiAKICAgICBJTkZPX0xPRyhM
T0dJREVOVElGSUVSLCBjdWUuZ2V0KCkpOwpAQCAtNzgsOSArNzgsMjEgQEAgdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW4KICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAorUmVmUHRyPERhdGFD
dWU+IEluYmFuZERhdGFUZXh0VHJhY2s6OmZpbmRJbmNvbXBsZXRlQ3VlKGNvbnN0IFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmIGN1ZVRvRmluZCkKK3sKKyAgICBhdXRvIGluZGV4ID0gbV9pbmNv
bXBsZXRlQ3VlTWFwLmZpbmRNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgY3VlKSB7CisgICAgICAg
IHJldHVybiBjdWVUb0ZpbmQuaXNFcXVhbCgqY3VlLT5wbGF0Zm9ybVZhbHVlKCkpOworICAgIH0p
OworCisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIHJldHVybiBtX2luY29tcGxldGVDdWVNYXBbaW5kZXhdOworfQorCiB2b2lkIEluYmFu
ZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBpbkVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgcGxhdGZvcm1W
YWx1ZSkKIHsKLSAgICBSZWZQdHI8RGF0YUN1ZT4gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdl
dCgmcGxhdGZvcm1WYWx1ZSk7CisgICAgYXV0byBjdWUgPSBmaW5kSW5jb21wbGV0ZUN1ZShwbGF0
Zm9ybVZhbHVlKTsKICAgICBpZiAoIWN1ZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05MCw3ICsx
MDIsNyBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJgogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUlu
ZmluaXRlKCkgJiYgbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIGVuZCA9IG1lZGlhRWxlbWVudCgp
LT5kdXJhdGlvbk1lZGlhVGltZSgpOwogICAgIGVsc2UKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3Vl
TWFwLnJlbW92ZSgmcGxhdGZvcm1WYWx1ZSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5y
ZW1vdmVGaXJzdChjdWUpOwogCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIndhcyBzdGFy
dCA9ICIsIGN1ZS0+c3RhcnRNZWRpYVRpbWUoKSwgIiwgZW5kID0gIiwgY3VlLT5lbmRNZWRpYVRp
bWUoKSwgIiwgd2lsbCBiZSBzdGFydCA9ICIsIHN0YXJ0LCAiLCBlbmQgPSAiLCBlbmQpOwogCkBA
IC0xMDIsOCArMTE0LDkgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYKIAogdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAg
aWYgKGF1dG8gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLnRha2UoJnBsYXRmb3JtVmFsdWUpKSB7
CisgICAgaWYgKGF1dG8gY3VlID0gZmluZEluY29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSkpIHsK
ICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJlbW92aW5nOiAiLCAqY3VlKTsKKyAg
ICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZUZpcnN0KGN1ZSk7CiAgICAgICAgIEluYmFu
ZFRleHRUcmFjazo6cmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0KIH0KQEAgLTExMiw3ICsxMjUsOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpyZW1vdmVDdWUoVGV4dFRy
YWNrQ3VlJiBjdWUpCiB7CiAgICAgQVNTRVJUKGN1ZS5jdWVUeXBlKCkgPT0gVGV4dFRyYWNrQ3Vl
OjpEYXRhKTsKIAotICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoY29uc3RfY2FzdDxTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlKj4odG9EYXRhQ3VlKCZjdWUpLT5wbGF0Zm9ybVZhbHVlKCkp
KTsKKyAgICBpZiAoYXV0byBwbGF0Zm9ybVZhbHVlID0gY29uc3RfY2FzdDxTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlKj4odG9EYXRhQ3VlKCZjdWUpLT5wbGF0Zm9ybVZhbHVlKCkpKQorICAgICAg
ICByZW1vdmVEYXRhQ3VlKHsgfSwgeyB9LCAqcGxhdGZvcm1WYWx1ZSk7CiAKICAgICByZXR1cm4g
SW5iYW5kVGV4dFRyYWNrOjpyZW1vdmVDdWUoY3VlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKaW5kZXggMWE4YmRmNmFlNTIyOGJlZjBj
ZjhkMWRhZDk1ZTM1NmY2MjhhNDRmMi4uNGZjMzEzZWFjYzUxNzQxMjMwNDY5OGY0MmUzY2FlZWE5
ZDE5Mzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRh
VGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4
dFRyYWNrLmgKQEAgLTU1LDcgKzU1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZURhdGFD
dWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVD
dWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7CiAKLSAgICBIYXNoTWFwPFJlZlB0cjxTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlPiwgUmVmUHRyPERhdGFDdWU+PiBtX2luY29tcGxldGVDdWVNYXA7Cisg
ICAgUmVmUHRyPERhdGFDdWU+IGZpbmRJbmNvbXBsZXRlQ3VlKGNvbnN0IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWUmKTsKKworICAgIFZlY3RvcjxSZWZQdHI8RGF0YUN1ZT4+IG1faW5jb21wbGV0
ZUN1ZU1hcDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgK
aW5kZXggNDdlNmRlZTkzZDA2OTI5OTczNjA5NTFlNTExMjM4ZDllMzA1OThmMi4uMDczNjUyZjQ0
NDUxNWU4ZDhhMGNkZWViMjFjMDZjNDM2NzcxMTJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5oCkBAIC05Niw2ICs5Niw4IEBAIHB1YmxpYzoKICAgICBUZXh0VHJhY2tDdWVM
aXN0KiBjdWVzKCk7CiAgICAgVGV4dFRyYWNrQ3VlTGlzdCogYWN0aXZlQ3VlcygpIGNvbnN0Owog
CisgICAgVGV4dFRyYWNrQ3VlTGlzdCogY3Vlc0ludGVybmFsKCkgY29uc3QgeyByZXR1cm4gbV9j
dWVzLmdldCgpOyB9CisKICAgICB2b2lkIGNsZWFyQ2xpZW50KCkgb3ZlcnJpZGUgeyBtX2NsaWVu
dCA9IG51bGxwdHI7IH0KICAgICBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApp
bmRleCBlNWRmM2MzYjc4NjZlYTlmZDQzZGFjY2Y0YTQ2MjJiZGI2NDg5NDIyLi5jYmRkOGMwMzFk
YjdjZmUwZTg0NTYxMTk3NjI2N2YyNDUxMjI0ZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC0zNDEsMTEgKzM0MSwxMSBAQCB2b2lkIFRleHRUcmFj
a0N1ZTo6c2V0SXNBY3RpdmUoYm9vbCBhY3RpdmUpCiAKIHVuc2lnbmVkIFRleHRUcmFja0N1ZTo6
Y3VlSW5kZXgoKSBjb25zdAogewotICAgIEFTU0VSVChtX3RyYWNrICYmIG1fdHJhY2stPmN1ZXMo
KSk7Ci0gICAgaWYgKCFtX3RyYWNrIHx8ICFtX3RyYWNrLT5jdWVzKCkpCisgICAgQVNTRVJUKG1f
dHJhY2sgJiYgbV90cmFjay0+Y3Vlc0ludGVybmFsKCkpOworICAgIGlmICghbV90cmFjayB8fCAh
bV90cmFjay0+Y3Vlc0ludGVybmFsKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCk7CiAKLSAgICByZXR1cm4gbV90cmFjay0+Y3VlcygpLT5jdWVJ
bmRleCgqdGhpcyk7CisgICAgcmV0dXJuIG1fdHJhY2stPmN1ZXNJbnRlcm5hbCgpLT5jdWVJbmRl
eCgqdGhpcyk7CiB9CiAKIGJvb2wgVGV4dFRyYWNrQ3VlOjppc09yZGVyZWRCZWZvcmUoY29uc3Qg
VGV4dFRyYWNrQ3VlKiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDliZmI4YTZh
MWUwN2M0ZWZmNGZhNmRkZDA5ZTNlNzlhMWU3OWU3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCkBAIC0wLDAg
KzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oIgorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBF
TkFCTEUoREFUQUNVRV9WQUxVRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIVBMQVRG
T1JNKENPQ09BKQorUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWU6OmNyZWF0ZShTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJikKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkpOwor
fQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgKaW5kZXgg
NDc0YWMxZDRmNzc2NGI1Y2VjMTNlMTdjNmVlMTlhOGI0MmQyMDA3Ny4uMDg1NTBmZGU3NzE0YTJl
ZDVkYTBlZGI5MTU1NjdhMjEzOGY4MGZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAj
aWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZh
bHVlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTM0LDE2ICszNSwyMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiB7CiBwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBjcmVhdGUoU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOworCiAgICAgdmlydHVhbCB+U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZSgpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGRlc2Vy
aWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQ
dHI8SlNDOjpBcnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBj
b25zdCB7IHJldHVybiBKU0M6OmpzTnVsbCgpOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SlNDOjpB
cnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc0VxdWFsKGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCi0gICAgZW51bSBQbGF0Zm9ybVR5cGUgeworICAgIGVudW0gY2xhc3MgUGxh
dGZvcm1UeXBlIHsKKyAgICAgICAgTm9uZSwKICAgICAgICAgT2JqQywKICAgICB9OwotICAgIHZp
cnR1YWwgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUoKSBjb25zdCB7IHJldHVybiBQbGF0Zm9ybVR5cGU6
Ok5vbmU7IH0KKworICAgIHZpcnR1YWwgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRh
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlIGVuY29kYWJsZVZhbHVlKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiAK
IHByb3RlY3RlZDoKICAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkgPSBkZWZhdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmM2MzM0YWJlMmIzNGM5ZjRhZWIyYTNmZmNiYmZj
NzkxYzBhZGYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmICFkZWZpbmVkKF9f
T0JKQ19fKQordHlwZWRlZiBzdHJ1Y3Qgb2JqY19vYmplY3QgKmlkOworI2VuZGlmCisKKyNpZiBQ
TEFURk9STShDT0NPQSkKK3VzaW5nIFBsYXRmb3JtTmF0aXZlVmFsdWUgPSBpZDsKKyNlbHNlCit1
c2luZyBQbGF0Zm9ybU5hdGl2ZVZhbHVlID0gdm9pZCo7CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgeworICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKTsKK3B1
YmxpYzoKKyAgICBlbnVtIGNsYXNzIFBsYXRmb3JtVHlwZSB7CisgICAgICAgIE5vbmUsCisgICAg
ICAgIE9iakMsCisgICAgfTsKKworICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZShQ
bGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlLCBQbGF0Zm9ybU5hdGl2ZVZhbHVlIG5hdGl2ZVZhbHVl
KQorICAgICAgICA6IG1fbmF0aXZlVmFsdWUobmF0aXZlVmFsdWUpCisgICAgICAgICwgbV90eXBl
KHBsYXRmb3JtVHlwZSkKKyAgICB7CisgICAgfQorICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZSgpID0gZGVmYXVsdDsKKyAgICB+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
KCkgPSBkZWZhdWx0OworCisgICAgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQorCisgICAgUGxhdGZvcm1OYXRpdmVWYWx1ZSBuYXRpdmVWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlVmFsdWU7IH0KKworICAgIGJvb2wgZW5jb2RpbmdSZXF1
aXJlc1BsYXRmb3JtRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBQbGF0Zm9ybVR5cGU6
Ok9iakM7IH0KKworcHJvdGVjdGVkOgorICAgIFBsYXRmb3JtTmF0aXZlVmFsdWUgbV9uYXRpdmVW
YWx1ZSB7IG51bGxwdHIgfTsKKyAgICBQbGF0Zm9ybVR5cGUgbV90eXBlIHsgUGxhdGZvcm1UeXBl
OjpOb25lIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQu
aAppbmRleCA5YTNiNjNjZGY3MTc4YWJiMWI1YTM4ODI5YzU1ZTEyOGVkYjdhMjRhLi43YmNiYTg3
N2M1YTM4YmYyZTE4MWI0Mjc4NWFiMTVmNTExNTYwMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaApAQCAtMjksNiAr
MjksNyBAQAogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIK
ICNpbmNsdWRlICJHcmFwaGljc1R5cGVzR0wuaCIKKyNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNp
bmNsdWRlICJJbWFnZVBhaW50aW5nT3B0aW9ucy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNp
bmNsdWRlICJOYXRpdmVJbWFnZS5oIgpAQCAtNDEsNyArNDIsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDsKIGNsYXNzIEhvc3RXaW5kb3c7CiBj
bGFzcyBJbWFnZTsKLWNsYXNzIEltYWdlRGF0YTsKIAogZW51bSBCYWNraW5nU3RvcmVDb3B5IHsK
ICAgICBDb3B5QmFja2luZ1N0b3JlLCAvLyBHdWFyYW50ZWUgc3Vic2VxdWVudCBkcmF3cyBkb24n
dCBhZmZlY3QgdGhlIGNvcHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKaW5kZXggY2E3MWU3ZTBiNTg2YzdiNTViMTEyNzMyYmFkNTliMDFk
OGE0MTgxYi4uNTdkZmNiZjRiYzdjNDg4NDRkMzgxY2IzNWVjYzY0M2MxYWFiNGI5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAt
MTA5LDYgKzEwOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXkoKSBmaW5hbCB7IH0KICAgICB2
b2lkIHBhdXNlKCkgZmluYWwgeyB9CiAKKyAgICBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBj
b25zdCBmaW5hbCB7IHJldHVybiAiTnVsbE1lZGlhUGxheWVyIjsgfQorCiAgICAgUGxhdGZvcm1M
YXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KIAog
ICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEZsb2F0U2l6
ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFj
a1ByaXZhdGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2UuY3BwCmluZGV4IGZlMWMwNjRhZTUxMjc3MjMwOGNjMmM0Y2IyMjQzZWI5MmU1
MzE4MDAuLmI3ODY0ZjdiMzcwZTMzNTI2NzU2Y2RhNjJkNzI3YWMwN2M4MGI2MzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2Uu
Y3BwCkBAIC0zMyw5ICszMywxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKKwogc3RhdGljIHVpbnQ2NF90IHNfdW5pcXVlSWQgPSAwOwogCi0j
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiB2b2lkIFRyYWNrUHJpdmF0ZUJhc2U6OnNldExvZ2dl
cihjb25zdCBMb2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcikKIHsKICAg
ICBtX2xvZ2dlciA9ICZsb2dnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA4MjBkYTg5
YzQ2Zjg3MTUzMjk2ZTE2NzRkZjQ2YTFkNzRiZTA2ZjlhLi5iMzdjNDQxMTMxNDk4ODc5NTQ2ZWM4
YTU3YTBkZDhlMTFmNzg0Njk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTMwNzQsNyAr
MzA3NCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRh
dGFEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPE5TQXJyCiAgICAgICAgIGlmIChpdGVtLmtleVNw
YWNlKQogICAgICAgICAgICAgdHlwZSA9IG1ldGFkYXRhVHlwZShpdGVtLmtleVNwYWNlKTsKIAot
ICAgICAgICBtX21ldGFkYXRhVHJhY2stPmFkZERhdGFDdWUoc3RhcnQsIGVuZCwgU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYzo6Y3JlYXRlKGl0ZW0pLCB0eXBlKTsKKyAgICAgICAgbV9tZXRh
ZGF0YVRyYWNrLT5hZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWU6OmNyZWF0ZSh7IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxh
dGZvcm1UeXBlOjpPYmpDLCBpdGVtIH0pLCB0eXBlKTsKICAgICB9CiAjZW5kaWYKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYy5oCmluZGV4IGExMGRjY2MzZTFiNWEzMGRmYmYwMTBhNzYwNTA1MjgwNmIyMTk2
ZWIuLjI2ZDg0YjlhODkyZDZhZmM4NGFlOTNlZGJiMmYwYWI0YmQwNmUzZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFj
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVNYWMuaApAQCAtMjksMjggKzI5LDI2IEBACiAKICNpbmNsdWRlICJTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlLmgiCiAKLSNpZiBVU0UoRk9VTkRBVElPTikgJiYgIWRlZmluZWQoX19PQkpD
X18pCi10eXBlZGVmIHN0cnVjdCBvYmpjX29iamVjdCAqaWQ7Ci0jZW5kaWYKLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjIGZpbmFsIDog
cHVibGljIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgewogcHVibGljOgorICAgIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVNYWMoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOwog
ICAgIHZpcnR1YWwgflNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoKTsKLSAgICBzdGF0aWMg
UmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IGNyZWF0ZShpZCk7CiAKICAgICBKU0M6OkpT
VmFsdWUgZGVzZXJpYWxpemUoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNvbnN0IGZpbmFsOwogICAg
IFJlZlB0cjxBcnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0IGZpbmFsOwotCiAgICAgYm9vbCBpc0Vx
dWFsKGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25zdCBmaW5hbDsKKyAgICBQ
bGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUGxhdGZvcm1U
eXBlOjpPYmpDOyB9CisgICAgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlw
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6Ok9iakM7
IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgZW5j
b2RhYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKIAogICAgIGlkIG5hdGl2ZVZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV9uYXRpdmVWYWx1ZS5nZXQoKTsgfQogCisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIE5TQXJyYXkqIGFsbG93ZWRDbGFzc2VzRm9yTmF0aXZlVmFsdWVzKCk7CisKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhpZCBuYXRpdmVWYWx1
ZSk7CiAKICAgICBSZXRhaW5QdHI8aWQ+IG1fbmF0aXZlVmFsdWU7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZU1hYy5tbQppbmRleCBiOTQ5ZWI3Y2RkMjAwMzlmMWNmZmVmOGM0YzViY2Q3YjExM2ViMTk5Li5j
OTg0YTllZWE3YTk1OWI2NGFjYzdmMTJkNTE2MDcyMTM4YzdhZTI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZU1hYy5tbQpAQCAtNDgsMjEgKzQ4LDIzIEBAIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aEFy
cmF5SW5Db250ZXh0KE5TQXJyYXkgKiwgSlNDb250ZXh0ICopOwogc3RhdGljIEpTVmFsdWUgKmpz
VmFsdWVXaXRoRGljdGlvbmFyeUluQ29udGV4dChOU0RpY3Rpb25hcnkgKiwgSlNDb250ZXh0ICop
Owogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZN
ZXRhZGF0YUl0ZW0gKiwgSlNDb250ZXh0ICopOwogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRo
VmFsdWVJbkNvbnRleHQoaWQsIEpTQ29udGV4dCAqKTsKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKk5T
RGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShBVk1ldGFkYXRhSXRlbSAqKTsKICNlbmRpZgog
Ci1TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
TWFjKGlkIG5hdGl2ZVZhbHVlKQotICAgIDogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSgpCi0g
ICAgLCBtX25hdGl2ZVZhbHVlKG5hdGl2ZVZhbHVlKQorUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWU+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWUmJiB2YWx1ZSkKIHsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFdURk1vdmUodmFsdWUpKSk7CiB9CiAKLVNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVNYWM6On5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKCkKK1Nl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMo
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgdmFsdWUpCisgICAgOiBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlKCkKKyAgICAsIG1fbmF0aXZlVmFsdWUodmFsdWUubmF0aXZlVmFsdWUo
KSkKIHsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHZhbHVl
LnBsYXRmb3JtVHlwZSgpID09IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZv
cm1UeXBlOjpPYmpDKTsKIH0KIAotUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmNyZWF0ZShpZCBuYXRpdmVWYWx1ZSkKK1NlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVNYWM6On5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKCkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKG5h
dGl2ZVZhbHVlKSk7CiB9CiAKIFJlZlB0cjxBcnJheUJ1ZmZlcj4gU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYzo6ZGF0YSgpIGNvbnN0CkBAIC04OSw3ICs5MSw3IEBAIEpTQzo6SlNWYWx1ZSBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpkZXNlcmlhbGl6ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpCiAKIGJvb2wgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6aXNFcXVhbChj
b25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAo
b3RoZXIucGxhdGZvcm1UeXBlKCkgIT0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6T2JqQykK
KyAgICBpZiAob3RoZXIucGxhdGZvcm1UeXBlKCkgIT0gUGxhdGZvcm1UeXBlOjpPYmpDKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
TWFjKiBvdGhlck9iakMgPSB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoJm90aGVyKTsK
QEAgLTEwNywxMCArMTA5LDI0IEBAIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMqIHRvU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhTZXJpYWxpemVkUGxhdGZvcm1ECiAKIGNvbnN0IFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMqIHRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1h
Yyhjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKiByZXApCiB7Ci0gICAgUkVMRUFTRV9B
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihyZXAtPnBsYXRmb3JtVHlwZSgpID09IFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6Ok9iakMpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04ocmVwLT5wbGF0Zm9ybVR5cGUoKSA9PSBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpOwogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKj4ocmVwKTsKIH0KIAorTlNBcnJh
eSogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6YWxsb3dlZENsYXNzZXNGb3JOYXRpdmVW
YWx1ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNBcnJheT4+
IGFsbG93ZWRDbGFzc2VzKEBbIFtOU1N0cmluZyBjbGFzc10sIFtOU051bWJlciBjbGFzc10sIFtO
U0xvY2FsZSBjbGFzc10sIFtOU0RpY3Rpb25hcnkgY2xhc3NdLCBbTlNBcnJheSBjbGFzc10sIFtO
U0RhdGEgY2xhc3NdIF0pOworICAgIHJldHVybiBhbGxvd2VkQ2xhc3Nlcy5nZXQoKS5nZXQoKTsK
K30KKworU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVNYWM6OmVuY29kYWJsZVZhbHVlKCkgY29uc3QKK3sKKyAgICBpZiAoW21fbmF0aXZlVmFs
dWUuZ2V0KCkgaXNLaW5kT2ZDbGFzczpQQUw6OmdldEFWTWV0YWRhdGFJdGVtQ2xhc3MoKV0pCisg
ICAgICAgIHJldHVybiB7IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1U
eXBlOjpPYmpDLCBOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0ZW0obV9uYXRpdmVWYWx1ZS5n
ZXQoKSkgfTsKKworICAgIHJldHVybiB7IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6
UGxhdGZvcm1UeXBlOjpPYmpDLCBtX25hdGl2ZVZhbHVlLmdldCgpIH07Cit9CisKICNpZiBKU0Nf
T0JKQ19BUElfRU5BQkxFRAogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoVmFsdWVJbkNvbnRl
eHQoaWQgdmFsdWUsIEpTQ29udGV4dCAqY29udGV4dCkKIHsKQEAgLTE5Myw2ICsyMDksMTEgQEAg
c3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29udGV4dChOU0RpY3Rpb25h
cnkgKmRpY3Rpb25hcnksIEpTQ29udGUKIH0KIAogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRo
QVZNZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZNZXRhZGF0YUl0ZW0gKml0ZW0sIEpTQ29udGV4dCAq
Y29udGV4dCkKK3sKKyAgICByZXR1cm4ganNWYWx1ZVdpdGhEaWN0aW9uYXJ5SW5Db250ZXh0KE5T
RGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShpdGVtKSwgY29udGV4dCk7Cit9CisKK3N0YXRp
YyBOU0RpY3Rpb25hcnkgKk5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShBVk1ldGFkYXRh
SXRlbSAqaXRlbSkKIHsKICAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5ID0gW05T
TXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeV07CiAKQEAgLTIzMCw3ICsyNTEsNyBAQCBzdGF0
aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhBVk1ldGFkYXRhSXRlbUluQ29udGV4dChBVk1ldGFkYXRh
SXRlbSAqaXRlbSwgSlNDb250ZQogICAgIGlmIChpdGVtLnZhbHVlKQogICAgICAgICBbZGljdGlv
bmFyeSBzZXRPYmplY3Q6aXRlbS52YWx1ZSBmb3JLZXk6QCJkYXRhIl07CiAKLSAgICByZXR1cm4g
anNWYWx1ZVdpdGhEaWN0aW9uYXJ5SW5Db250ZXh0KGRpY3Rpb25hcnksIGNvbnRleHQpOworICAg
IHJldHVybiBkaWN0aW9uYXJ5OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2NGYzY2JmMjBjNTJjMzYyMDZhYWViOWM0OTk3
YTcyZjViZTQwZjg3Li40Y2JkNDYxNGI2MmI4YzNlN2Q0ZjU2Y2E5NTBjOTQ0NzYxMjk5MzJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw4
ICsyNCw4IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVNZWRpYVBs
YXllcihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGVudW06
dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9uKSAtPiAoc3RydWN0IFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24pIFN5bmNo
cm9ub3VzCi0gICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkKQorICAgIENyZWF0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlm
aWVyLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiBw
cm94eUNvbmZpZ3VyYXRpb24pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllckNv
bmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKKyAgICAgRGVsZXRlTWVkaWFQ
bGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkKQogCiAg
ICAgR2V0U3VwcG9ydGVkVHlwZXMoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKSAtPiAoVmVj
dG9yPFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCiAgICAgU3VwcG9ydHNUeXBlQW5kQ29kZWNz
KGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhRW5naW5l
U3VwcG9ydFBhcmFtZXRlcnMgdHlwZSkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCkgU3luY2hyb25vdXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3Bw
CmluZGV4IGI3NmRjOWIwZDQ2Zjg2Yjc3OTU3ZDNiM2I3ODU0NTljMzk0OWIyYTYuLjMyYzliN2Ux
MmU1YTcyY2IwYmJiZDBhOTVlMDMxMThlMDcyNDBiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcApAQCAtOTYs
MjUgKzk2LDI1IEBAIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6Omxhbmd1YWdlQ2hhbmdlZChj
b25zdCBBdG9tU3RyaW5nJikKICAgICBjb25maWd1cmF0aW9uQ2hhbmdlZCgpOwogfQogCi12b2lk
IFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0
IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkKK3ZvaWQgUmVtb3RlVGV4dFRyYWNr
UHJveHk6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkRGF0YUN1ZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBl
bmQsIElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihk
YXRhKSwgbGVuZ3RoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CiB9CiAKICNpZiBFTkFCTEUo
REFUQUNVRV9WQUxVRSkKLXZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OmFkZERhdGFDdWUoY29u
c3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWU+JiYsIGNvbnN0IFN0cmluZyYpCit2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGRE
YXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4mJiBjdWVEYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZERhdGFDdWVXaXRoVHlw
ZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEtPmVuY29kYWJsZVZhbHVlKCksIHR5
cGUpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwogfQogCi12b2lkIFJlbW90ZVRleHRUcmFja1By
b3h5Ojp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKQordm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6dXBk
YXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwg
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3VlRGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6VXBkYXRlRGF0YUN1ZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQs
IGN1ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CiB9CiAK
LXZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OnJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1l
JiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpCit2b2lkIFJl
bW90ZVRleHRUcmFja1Byb3h5OjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBjdWVEYXRh
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpSZW1vdmVEYXRhQ3VlKG1f
aWRlbnRpZmllciwgc3RhcnQsIGVuZCwgY3VlRGF0YS5lbmNvZGFibGVWYWx1ZSgpKSwgbV9wbGF5
ZXIuaWRlbmRpZmllcigpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAxYzAwYmRhNTNmNWI2YjQzNGVhNzE5Nzlm
NGU2MzIxMzgxZGE1NzJjLi44YzlmYTIxYWYzOGE3MTYyYzZjMjA5ZTkzOTQ2ODkwNmEyNWMzY2Ez
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
QEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
cmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZVZhbHVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJEYXRhLmg+CkBAIC0zMTc0LDQg
KzMxNzUsMzIgQEAgT3B0aW9uYWw8U2VyaWFsaXplZEF0dGFjaG1lbnREYXRhPiBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGEKIAogI2VuZGlmIC8vIEVOQUJMRShB
VFRBQ0hNRU5UX0VMRU1FTlQpCiAKKyNpZiBFTkFCTEUoVklERU8pCit2b2lkIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYgdmFsdWUp
Cit7CisgICAgYm9vbCBoYXNQbGF0Zm9ybURhdGEgPSB2YWx1ZS5lbmNvZGluZ1JlcXVpcmVzUGxh
dGZvcm1EYXRhKCk7CisgICAgZW5jb2RlciA8PCBoYXNQbGF0Zm9ybURhdGE7CisKKyAgICBlbmNv
ZGVyLmVuY29kZUVudW0odmFsdWUucGxhdGZvcm1UeXBlKCkpOworICAgIGlmIChoYXNQbGF0Zm9y
bURhdGEpCisgICAgICAgIGVuY29kZVBsYXRmb3JtRGF0YShlbmNvZGVyLCB2YWx1ZSk7Cit9CisK
K09wdGlvbmFsPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIGJvb2wgaGFzUGxhdGZvcm1EYXRhOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoaGFzUGxhdGZvcm1EYXRhKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZv
cm1UeXBlIHR5cGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odHlwZSkpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoaGFzUGxhdGZvcm1EYXRhKQorICAgICAg
ICByZXR1cm4gZGVjb2RlUGxhdGZvcm1EYXRhKGRlY29kZXIsIHR5cGUpOworCisgICAgcmV0dXJu
IHt7IH19OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA3YmY3MWMxN2FiZGQzZDhiMTMx
OTAyMjAwNThjOWY5YzIxOWY2MGIzLi5lMzgxNGUyMWY4MzM2YWFmMmY0NDQzMjMyZTM0NGUwMDc0
ZGFlMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uRGlyZWN0
aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRDcmVkZW50aWFsc1BvbGlj
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyVHlwZS5oPgpAQCAtODE5LDYgKzgyMCwxNSBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRh
Y2htZW50RGF0YT4gewogCiAjZW5kaWYgLy8gRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIAor
I2lmIEVOQUJMRShWSURFTykKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiB7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUmKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRm
b3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZVZhbHVlJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZT4gZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZSk7Cit9OworI2VuZGlmCisK
IH0gLy8gbmFtZXNwYWNlIElQQwogCiBuYW1lc3BhY2UgV1RGIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IGVlMjIy
NDIzZjA0N2M5YmYwOTM2MzlkODEyYjE4MmQ4MzYxODBlZmUuLjhkYTdjMTk4Nzc5MmI4Nzc0OWE2
ZWFkN2U5OTNmOTZjN2UxODFlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VF
cnJvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oPgogI2ltcG9ydCA8cGFsL3NwaS9j
Zi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAKQEAgLTY2
OSw0ICs2NzAsMjcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY28KIAogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoVklERU8pCit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYgdmFsdWUpCit7Cisg
ICAgQVNTRVJUKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKTsKKyAgICBpZiAodmFsdWUucGxh
dGZvcm1UeXBlKCkgPT0gV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQ
bGF0Zm9ybVR5cGU6Ok9iakMpCisgICAgICAgIGVuY29kZU9iamVjdChlbmNvZGVyLCB2YWx1ZS5u
YXRpdmVWYWx1ZSgpKTsKK30KKworT3B0aW9uYWw8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZVZhbHVlPiAgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGUgcGxhdGZvcm1U
eXBlKQoreworICAgIEFTU0VSVChwbGF0Zm9ybVR5cGUgPT0gV2ViQ29yZTo6U2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpOworCisgICAgaWYgKHBsYXRm
b3JtVHlwZSAhPSBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRm
b3JtVHlwZTo6T2JqQykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGF1dG8g
b2JqZWN0ID0gZGVjb2RlT2JqZWN0KGRlY29kZXIsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVNYWM6OmFsbG93ZWRDbGFzc2VzRm9yTmF0aXZlVmFsdWVzKCkpOworICAgIGlmICgh
b2JqZWN0KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIFdlYkNv
cmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSB7IHBsYXRmb3JtVHlwZSwgb2JqZWN0
LnZhbHVlKCkuZ2V0KCkgfTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5ZGMwZWJiNjA2NjQ4OTdmODJkYjdlMDUxODA4
ZjBlNDg5ZGM1Mjc5Li5hNjBiYjRmOWNkMjMxZDkxOTAzODI0MjE0MmUzYjBlZTk4ZTM3YmRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC02NywxMyArNjcsMTIgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiB9IHdoaWxlICgwKQogI2VuZGlmCiAKLU1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiBwbGF5ZXIs
IE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVy
LCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlciwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJD
b25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyJiBtYW5hZ2VyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQogICAgICwgbV9tZWRp
YVJlc291cmNlTG9hZGVyKHBsYXllci0+Y3JlYXRlUmVzb3VyY2VMb2FkZXIoKSkKICAgICAsIG1f
bWFuYWdlcihtYW5hZ2VyKQogICAgICwgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlk
ZW50aWZpZXIpCiAgICAgLCBtX2lkKHBsYXllcklkZW50aWZpZXIpCi0gICAgLCBtX2NvbmZpZ3Vy
YXRpb24oY29uZmlndXJhdGlvbikKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1f
bG9nZ2VyKCZwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZp
ZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKQEAgLTgyLDYgKzgxLDEyIEBA
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlh
UGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxhCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9
CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90
ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgbV9jb25m
aWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKKyAgICBtX3BsYXllci0+bWVkaWFF
bmdpbmVVcGRhdGVkKCk7Cit9CisKIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZSgpCiB7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CkBAIC00
ODQsNiArNDg5LDQwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZU
VEN1ZURhdGFTdHJ1Y3QoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpCiAgICAgICAgIHRyYWNrLT5w
YXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoV1RGTW92ZShkYXRhKSk7CiB9CiAKK3ZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgSVBDOjpE
YXRhUmVmZXJlbmNlJiYgZGF0YSkKK3sKKyAgICBBU1NFUlQobV90ZXh0VHJhY2tzLmNvbnRhaW5z
KGlkZW50aWZpZXIpKTsKKworICAgIGlmIChjb25zdCBhdXRvJiB0cmFjayA9IG1fdGV4dFRyYWNr
cy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHRyYWNrLT5hZGREYXRhQ3VlKFdURk1vdmUoc3Rh
cnQpLCBXVEZNb3ZlKGVuZCksIFdURk1vdmUoZGF0YSkpOworfQorCisjaWYgRU5BQkxFKERBVEFD
VUVfVkFMVUUpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhU
eXBlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lJiYg
c3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYg
ZGF0YSwgU3RyaW5nJiYgdHlwZSkKK3sKKyAgICBBU1NFUlQobV90ZXh0VHJhY2tzLmNvbnRhaW5z
KGlkZW50aWZpZXIpKTsKKworICAgIGlmIChjb25zdCBhdXRvJiB0cmFjayA9IG1fdGV4dFRyYWNr
cy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHRyYWNrLT5hZGREYXRhQ3VlV2l0aFR5cGUoV1RG
TW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgV1RGTW92ZShkYXRhKSwgV1RGTW92ZSh0eXBlKSk7
Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp1cGRhdGVEYXRhQ3VlKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1l
ZGlhVGltZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YSkKK3sK
KyAgICBBU1NFUlQobV90ZXh0VHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKworICAgIGlm
IChjb25zdCBhdXRvJiB0cmFjayA9IG1fdGV4dFRyYWNrcy5nZXQoaWRlbnRpZmllcikpCisgICAg
ICAgIHRyYWNrLT51cGRhdGVEYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdU
Rk1vdmUoZGF0YSkpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3Zl
RGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGlt
ZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1
ZSYmIGRhdGEpCit7CisgICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVy
KSk7CisKKyAgICBpZiAoY29uc3QgYXV0byYgdHJhY2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50
aWZpZXIpKQorICAgICAgICB0cmFjay0+cmVtb3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RG
TW92ZShlbmQpLCBXVEZNb3ZlKGRhdGEpKTsKK30KKyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25m
aWd1cmF0aW9uKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV92aWRlb1RyYWNrcy5lbnN1cmUo
aWRlbnRpZmllciwgWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDdmNzM5MDQx
OTM3ZTExZjRhZDAyNWExODMwZTVjZjNjODk1MDBkYTguLjhiMGNlMzljNTAzMzVmNjI0MWMwZTky
ODRmZjkzMDE0ZGUxMGJlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtNDAsMTIg
KzQwLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElTT1dlYlZUVEN1ZTsKK2Ns
YXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTsKIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOwogY2xhc3MgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTsKK2NsYXNzIFVzZXJEYXRhOwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGU7CiBzdHJ1Y3QgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiBzdHJ1Y3Qg
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKQEAgLTU5LDE0ICs2MSwxNiBAQCBjbGFz
cyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgZmluYWwKICNlbmRpZgogewogcHVibGljOgotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUo
V2ViQ29yZTo6TWVkaWFQbGF5ZXIqIHBsYXllciwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyJiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mIGNvbmZp
Z3VyYXRpb24pCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU+IGNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVyLCBXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmll
ciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIpCiAgICAgewotICAgICAgICByZXR1cm4gbWFrZVVu
aXF1ZTxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+KHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRp
ZmllciwgaWRlbnRpZmllciwgbWFuYWdlciwgY29uZmlndXJhdGlvbik7CisgICAgICAgIHJldHVy
biBtYWtlVW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4ocGxheWVyLCByZW1vdGVFbmdp
bmVJZGVudGlmaWVyLCBpZGVudGlmaWVyLCBtYW5hZ2VyKTsKICAgICB9CiAKLSAgICBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYsIGNvbnN0IFJlbW90ZU1lZGlh
UGxheWVyQ29uZmlndXJhdGlvbiYpOworICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShXZWJD
b3JlOjpNZWRpYVBsYXllciosIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5l
SWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyJik7CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpOwogCisg
ICAgdm9pZCBzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYm
KTsKKwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKSB7IG1faW52YWxpZCA9IHRy
dWU7IH0KQEAgLTEwNCw2ICsxMDgsMTMgQEAgcHVibGljOgogICAgIHZvaWQgcGFyc2VXZWJWVFRD
dWVEYXRhKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSYm
KTsKICAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpJU09XZWJWVFRDdWUmJik7CiAKKyAgICB2b2lkIGFkZERhdGFD
dWUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlh
VGltZSYmIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlJiYpOworI2lmIEVOQUJMRShEQVRBQ1VFX1ZB
TFVFKQorICAgIHZvaWQgYWRkRGF0YUN1ZVdpdGhUeXBlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFdlYkNvcmU6OlNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmLCBTdHJpbmcmJik7CisgICAgdm9pZCB1cGRhdGVE
YXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBN
ZWRpYVRpbWUmJiBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYm
KTsKKyAgICB2b2lkIHJlbW92ZURhdGFDdWUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwg
TWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZVZhbHVlJiYpOworI2VuZGlmCisKICAgICB2b2lkIHJlcXVlc3RSZXNvdXJj
ZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW1vdmVSZXNvdXJjZShSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCByZXNvdXJjZU5vdFN1cHBvcnRl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgppbmRleCBj
NDA0ZGM2NzQwNzM3YTM2OGQ0ZmE2OTQyYThlOTYwOTc3ODQ2MDdiLi5lODg5N2I2YTEwYTEwZDRi
NzAwOTI5OGM3YWEyNzI4YmZlMTEyOTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5tZXNzYWdlcy5pbgpAQCAtNTAsMTAgKzUwLDEyIEBAIG1lc3NhZ2VzIC0+IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZSBOb3RSZWZDb3VudGVkIHsKICAgICBQYXJzZVdlYlZUVEN1ZURhdGEo
V2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIElQQzo6RGF0YVJl
ZmVyZW5jZSBkYXRhKQogICAgIFBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChXZWJLaXQ6OlRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgV2ViQ29yZTo6SVNPV2ViVlRUQ3VlIGN1
ZURhdGEpCiAKLSAgICAjIyBBZGREYXRhQ3VlKE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVu
ZCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCi0gICAgIyMgQWRkRGF0YUN1ZShNZWRpYVRpbWUg
c3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUg
ZGF0YSwgU3RyaW5nIHR5cGUpCi0gICAgIyMgVXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUgc3RhcnQs
IE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgZGF0YSkK
LSAgICAjIyBSZW1vdmVEYXRhQ3VlKE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgV2Vi
Q29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSBkYXRhKQorICAgIEFkZERhdGFDdWUoV2Vi
S2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIE1lZGlhVGltZSBzdGFy
dCwgTWVkaWFUaW1lIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCisjaWYgRU5BQkxFKERB
VEFDVUVfVkFMVUUpCisgICAgQWRkRGF0YUN1ZVdpdGhUeXBlKFdlYktpdDo6VHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQs
IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBjdWVEYXRhLCBTdHJpbmcg
dHlwZSkKKyAgICBVcGRhdGVEYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBjdWVEYXRhKQorICAgIFJlbW92ZURhdGFDdWUo
V2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIE1lZGlhVGltZSBz
dGFydCwgTWVkaWFUaW1lIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZh
bHVlIGN1ZURhdGEpCisjZW5kaWYKIAogICAgICMjIEFkZEdlbmVyaWNDdWUoV2ViQ29yZTo6R2Vu
ZXJpY0N1ZURhdGEgY3VlKQogICAgICMjIFVwZGF0ZUdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJp
Y0N1ZURhdGEgY3VlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IDhmMDUzNzY4
Mzc4ZWIwNWNlZDMyMWZmY2YxMTkyM2I1OWVlZmMzMmIuLjM4YTUzYTBjYmNmZjg5ZDQ1ZWJjZDQx
ZTdlNmMzNTgzYmQyN2QzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTE0
NCw3ICsxNDQsNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6aW5pdGlhbGl6ZShj
b25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYQogCiBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNy
ZWF0ZVJlbW90ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKQogewotICAg
IGF1dG8gaWQgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpnZW5lcmF0ZSgp
OwogCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1
cmF0aW9uOwogICAgIHByb3h5Q29uZmlndXJhdGlvbi5yZWZlcnJlciA9IHBsYXllci0+cmVmZXJy
ZXIoKTsKQEAgLTE1OSwxNSArMTU4LDE5IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtCiAgICAg
cHJveHlDb25maWd1cmF0aW9uLnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSA9IHBsYXllci0+c2hv
dWxkVXNlUGVyc2lzdGVudENhY2hlKCk7CiAgICAgcHJveHlDb25maWd1cmF0aW9uLmlzVmlkZW8g
PSBwbGF5ZXItPmlzVmlkZW9QbGF5ZXIoKTsKIAorICAgIGF1dG8gaWRlbnRpZmllciA9IE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAgICAgUmVtb3RlTWVk
aWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb247Ci0gICAgYm9vbCBzZW5k
U3VjY2VlZGVkID0gZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMo
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVBsYXll
cihpZCwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgcHJveHlDb25maWd1cmF0aW9uKSwgTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVBsYXllcjo6UmVw
bHkocGxheWVyQ29uZmlndXJhdGlvbiksIDApOwotICAgIGlmICghc2VuZFN1Y2NlZWRlZCkgewot
ICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byBjcmVhdGUgcmVtb3RlIG1lZGlhIHBsYXll
ci4iKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQorICAgIGdwdVByb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkZW50aWZpZXIsIHJl
bW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVyXShhdXRvJiYgcGxheWVyQ29uZmlndXJh
dGlvbikgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkZW50aWZpZXIp
KQorICAgICAgICAgICAgcGxheWVyLT5zZXRDb25maWd1cmF0aW9uKFdURk1vdmUocGxheWVyQ29u
ZmlndXJhdGlvbikpOworICAgIH0sIDApOworCisgICAgYXV0byByZW1vdGVQbGF5ZXIgPSBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZShwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIGlkZW50aWZpZXIsICp0aGlzKTsKKyAgICBtX3BsYXllcnMuYWRkKGlkZW50aWZpZXIsIG1h
a2VXZWFrUHRyKCpyZW1vdGVQbGF5ZXIpKTsKIAotICAgIGF1dG8gcmVtb3RlUGxheWVyID0gTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjcmVhdGUocGxheWVyLCByZW1vdGVFbmdpbmVJZGVudGlm
aWVyLCBpZCwgKnRoaXMsIHBsYXllckNvbmZpZ3VyYXRpb24pOwotICAgIG1fcGxheWVycy5hZGQo
aWQsIG1ha2VXZWFrUHRyKCpyZW1vdGVQbGF5ZXIpKTsKICAgICByZXR1cm4gcmVtb3RlUGxheWVy
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAppbmRleCBiMjY2YjM5ODRjMzgwY2QzNjQ4
MjIxNDM1ZDNmODRmZTFiNWFhNzc1Li4zMjBlYzMwMTg5ZDZmYzU2MmYyYWViZmY1MWM5MGY3NGVk
ZjhkYTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKQEAgLTUxLDcgKzUxLDggQEAgY2xh
c3MgV2ViUHJvY2VzczsKIHN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwog
CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIKLSAgICA6IHB1YmxpYyBXZWJQcm9jZXNz
U3VwcGxlbWVudCB7CisgICAgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQKKyAgICAsIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIoV2ViUHJvY2VzcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXgg
NWM3ODc2NGUwYzE3NDEwY2IyMzc2OGE0NTE1YmQ0MjA0NTgzNDNmMS4uNmE2NjIyYTM5NTQ5OTAw
NzEwNmJkNDkwOTcxMTA1ZDU4YjgzYTk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBA
IC04OCw2NiArODgsNzIgQEAgdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25m
aWd1cmF0aW9uKFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmEKICAgICBtX2lzRGVmYXVs
dCA9IGNvbmZpZ3VyYXRpb24uaXNEZWZhdWx0OwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVS
ZW1vdGU6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZTo6YWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAotI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotdm9pZCBUZXh0VHJhY2tQcml2YXRl
UmVtb3RlOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGlt
ZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4mJiwgY29uc3QgU3RyaW5nJikK
K3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3Vl
RGF0YSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlOjp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikKK3ZvaWQgVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZTo6cmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpyZW1v
dmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikKKwordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
OjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgQVNTRVJUKGNsaWVudCgpKTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0g
dGhpcy0+Y2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFdU
Rk1vdmUoaGVhZGVyKSk7CiB9CiAKLSNlbmRpZgotCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1v
dGU6OmFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKQordm9pZCBUZXh0VHJhY2tQcml2YXRl
UmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRh
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQVNTRVJUKGNsaWVudCgpKTsKKyAgICBp
ZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+cGFyc2VX
ZWJWVFRDdWVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwg
ZGF0YS5zaXplKCkpOwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUdl
bmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpw
YXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoSVNPV2ViVlRUQ3VlJiYgY3VlRGF0YSkKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYgKGF1dG8qIGNs
aWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0
YShXVEZNb3ZlKGN1ZURhdGEpKTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpy
ZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6YWRkRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBJUEM6
OkRhdGFSZWZlcmVuY2UmJiBkYXRhKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQVNT
RVJUKGNsaWVudCgpKTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisg
ICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsK
IH0KIAotCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRURmlsZUhlYWRl
cihTdHJpbmcmJiBoZWFkZXIpCisjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCit2b2lkIFRleHRU
cmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZShNZWRpYVRpbWUmJiBzdGFydCwg
TWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFs
dWUsIFN0cmluZyYmIHR5cGUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0
byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRG
aWxlSGVhZGVyKFdURk1vdmUoaGVhZGVyKSk7CisgICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShX
VEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpj
cmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSwgdHlwZSk7CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
ZGF0YSkKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShNZWRpYVRp
bWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byog
Y2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRDdWVE
YXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXpl
KCkpOworICAgICAgICBjbGllbnQtPnVwZGF0ZURhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1v
dmUoZW5kKSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUoZGF0YVZh
bHVlKSkpOwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3Vl
RGF0YVN0cnVjdChJU09XZWJWVFRDdWUmJiBjdWVEYXRhKQordm9pZCBUZXh0VHJhY2tQcml2YXRl
UmVtb3RlOjpyZW1vdmVEYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQs
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGFWYWx1ZSkKIHsKICAgICBBU1NF
UlQoY2xpZW50KCkpOwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAg
ICAgICAgY2xpZW50LT5wYXJzZVdlYlZUVEN1ZURhdGEoV1RGTW92ZShjdWVEYXRhKSk7CisgICAg
ICAgIGNsaWVudC0+cmVtb3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CiB9
Ci0KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUu
aAppbmRleCA2YWM5YzY5ZDAxOTIwZDljOTQxMzJiODgzZTU2ZjY1YmQ4ZWMzY2NjLi43YjdmNzAz
Y2I0OTdkZWRlYTM5MWRiNTljYzkyYmVjZTE1YTU5MmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUu
aApAQCAtMzIsNiArMzIsMTEgQEAKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmg+CiAKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdlbmVyaWNDdWVEYXRhOworY2xhc3MgSVNPV2ViVlRU
Q3VlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOwpAQCAtNDQsMjEgKzQ5LDIxIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlkZW5kaWZpZXIsIFdURk1v
dmUoY29uZmlndXJhdGlvbikpKTsKICAgICB9CiAKLSAgICB2b2lkIGFkZERhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNp
Z25lZCk7CisgICAgdm9pZCBhZGREYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUm
JiBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSYmKTsKIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVF
KQotICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRp
YVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+JiYsIGNvbnN0IFN0cmlu
ZyYpOwotICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpOwotICAgIHZvaWQg
cmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVu
ZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpOworICAgIHZvaWQgYWRkRGF0YUN1ZVdpdGhU
eXBlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZSYmLCBTdHJpbmcmJik7CisgICAgdm9pZCB1cGRhdGVEYXRhQ3VlKE1lZGlh
VGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVW
YWx1ZSYmKTsKKyAgICB2b2lkIHJlbW92ZURhdGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlh
VGltZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOwogI2VuZGlmCiAK
LSAgICB2b2lkIGFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKTsKLSAgICB2b2lkIHVwZGF0
ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKTsKLSAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUo
R2VuZXJpY0N1ZURhdGEmKTsKKyAgICB2b2lkIGFkZEdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJp
Y0N1ZURhdGEmKTsKKyAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJpY0N1
ZURhdGEmKTsKKyAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJpY0N1ZURh
dGEmKTsKIAogICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmKTsKICAgICB2
b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKLSAgICB2
b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChJU09XZWJWVFRDdWUmJik7CisgICAgdm9pZCBw
YXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoV2ViQ29yZTo6SVNPV2ViVlRUQ3VlJiYpOwogCiAgICAg
dm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uJiYpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNWIzMmU5ZDMwOTk0NmM1ZWJiNTliYzI4YzIzNTU2OGI0MmQxMjYx
NS4uNTY1OWUwOTUwYTMzMzdlMDAzYTYxYWVlMjY1NWJhZDRkYWNkMmQ1ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDIwLTAyLTE5ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFN1cHBvcnQgaW4tYmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGlu
ZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2
NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBn
cHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAyLTE5ICBKYXNvbiBMYXdyZW5j
ZSAgPGxhd3JlbmNlLmpAYXBwbGUuY29tPgogCiAgICAgICAgIFsgTWFjIHdrMiBdIGh0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvaGFyL2hhci1wYWdlLmh0bWwgaXMgZmxha3kgZmFpbGluZwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYjI0MDJiOTQ5YTlm
N2M3NjFjOTdkOWQyMmZiNmMxMjU0MThjNGE5NC4uOTEzYTVkNDQ4NDJmYWI5Y2U0NzM0YmRkZjM3
YzRlYWU1ZDIwNzVlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25z
CkBAIC0yMjksNiArMjI5LDggQEAgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC5odG1sIFsgUGFz
cyBdCiBodHRwL3Rlc3RzL21lZGlhL3RyYWNrL3RyYWNrLXdlYnZ0dC1zbG93LWxvYWRpbmcuaHRt
bCBbIFBhc3MgXQogaHR0cC90ZXN0cy9tZWRpYS90cmFjay90cmFjay13ZWJ2dHQtc2xvdy1sb2Fk
aW5nLTIuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLXdlYnZ0dC10cmFj
a3MuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9tZWRpYS90cmFjay1pbi1iYW5kLWhscy1tZXRh
ZGF0YS5odG1sIFsgUGFzcyBdCitodHRwL3Rlc3RzL21lZGlhL3RyYWNrLWluLWJhbmQtaGxzLW1l
dGFkYXRhLWNyYXNoLmh0bWwgWyBQYXNzIF0KIAogYWNjZXNzaWJpbGl0eS9tZWRpYS1lbGVtZW50
Lmh0bWwgWyBTa2lwIF0KIGZhc3QvYmxvY2svZmxvYXQvbGlzdC1tYXJrZXItaXMtZmxvYXQtY3Jh
c2guaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391285</attachid>
            <date>2020-02-20 07:25:30 -0800</date>
            <delta_ts>2020-02-20 08:55:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207904-20200220072530.patch</filename>
            <type>text/plain</type>
            <size>63375</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2OTE0OWIwYzQxZDFk
NjllMTU5MWNkNTdlNGJkNDU0NTBjMDY3Zi4uNzk5Yzk5ZjhmZTljODhlMWVhYTRiZTBhMTIzYTUx
ZTFkOWQ5NTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTE5ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgaW4t
YmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0
YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4
dFRyYWNrOjpmaW5kSW5jb21wbGV0ZUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFU
ZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRl
eHRUcmFjazo6cmVtb3ZlQ3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0
VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vlc0ludGVybmFsIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpkZXNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpkYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmlzRXF1YWwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6cGxhdGZvcm1UeXBlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmVuY29kaW5nUmVxdWlyZXNQ
bGF0Zm9ybURhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6ZW5jb2RhYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFE
aWRBcnJpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2Vk
Q2xhc3Nlc0Zvck5hdGl2ZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUpOiBEZWxldGVkLgorCiAyMDIwLTAyLTE5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUGxh
dGZvcm1NZWRpYVNlc3Npb246OmNoYXJhY3RlcmlzdGljcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzMjc5NTY3
MjdkNmRlYzhmZjljN2Q4OTY4Y2VlYmEwMTA5ZWYzYjEuLmQxY2E2ZDQzMWY1ZGZhN2QwNzc0MTEy
ZDEzNjVhMmY5ZGQwYTY1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDItMTkg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9y
dCBpbi1iYW5kIG1ldGFkYXRhIGN1ZXMgd2hlbiBsb2FkaW5nIG1lZGlhIGluIHRoZSBHUFUgUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3
OTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTU2MTY0Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4
dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpl
bmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3Rl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjphZGRHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViS2l0OjpU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKToKKyAg
ICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1
ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFD
dWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaDoKKwogMjAyMC0wMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBmYXN0L2RvbS9mb2N1cy1zaGlmdC1jcmFzaC5odG1sIGFuZCBl
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tY2hhbmdlLWluLWRpc2Nvbm5lY3RlZC1mcmFtZS1j
cmFzaC5odG1sIGNyYXNoIGFmdGVyIHIyNTY4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjQ4MGYyYTNm
MjJlZTBkMzc0YWM5ODgwNjA2MjJmMWFkZjJlNzI1Yy4uNDRiY2EyMGI3ZmU1NjY4NTcxZWU4Mjhm
OTc0NWQ1MGUxZjZkZTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NjQsNiArMTc2NCw3IEBAIHBs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAogcGxhdGZv
cm0vU2Nyb2xsYmFyVGhlbWUuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5j
cHAKK3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCiBwbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuY3BwCiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAKIHBsYXRm
b3JtL1NoYXJlZFN0cmluZ0hhc2guY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzhjODM3YThjODQ5NWZkMTNiYzljNzFhZmVm
ZmZmMWNjZWU2NjBmMy4uNGQwYzE1MTUwNTE2YmZmNDExYTYxZjlkMzc5YjAwMTVkNDcyNTFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTM1LDEwICsxMzUsMTEgQEAKIAkJMDc2MzhBOUExODg0NDg3MjAwRTE1QTFCIC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzYzOEE5ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbSAqLzsgfTsKIAkJMDc2OTcwODYxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFj
a0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwICovOyB9OwogCQkw
NzY5NzA4NzE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODUxNDYzQUQ4NzAwRjUwMkNG
IC8qIFRleHRUcmFja0xpc3QuaCAqLzsgfTsKKwkJMDc2RDFDMUYyM0Y2RUI1QjAwRDk1QjA2IC8q
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3NkYwRDBFMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaCAqLzsgfTsKIAkJMDc3NjY0RkQxODNFNkI1QzAwMTMzQjkyIC8q
IEpTUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NzY2NEZCMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50LmggKi87IH07CiAJCTA3N0FGMTQwMThGNEFFNDAwMDAxRUQ2
MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdBRjEzRTE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTA3N0FGMTQzMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzdBRjE0MTE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZU1hYy5oICovOyB9OworCQkwNzdBRjE0MzE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc3QUYxNDExOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNzdCNjQxMzFCOTRGMTJFMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3N0I2NDExMUI5NEYxMkUwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9j
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3
N0I2NDE3MUI5NUY3MDMwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QjY0MTUxQjk1Rjcw
MzAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc4MzIyODUxODAxM0VEODAwOTk5RTBD
IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3ODMyMjgzMTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlLmggKi87IH07CkBAIC01NDczLDYgKzU0NzQsNyBAQAogCQkwNzYzOEE5ODE4
ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBU
ZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRl
eHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzY5NzA4NTE0
NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUZXh0VHJhY2tMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3NkQxQzFEMjNGNkQ5RDgwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBU
cmFja1ByaXZhdGVCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRyYWNrUHJpdmF0ZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZG
MEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkYwRDBB
MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NDkwLDYgKzU0OTIsNyBAQAog
CQkwNzg0NjM0MDE0NUIxNTFBMDBBNThERjEgLyogSlNUcmFja0V2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2MzQxMTQ1QjE1MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUcmFja0V2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBK
U1RyYWNrQ3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVHJhY2tD
dXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc4NjMzRDcyM0ZFMDk2NDAw
ODdBRTIxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3ODdDNDY3MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01l
ZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3ODdDNDY4MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzhFMDk0ODE3RDE3MDk2MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbUF1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1
OTk0LDcgKzI1OTk3LDkgQEAKIAkJCQlCQzI0NDFDMzBFOEI2NUQwMDA1NTMyMEYgLyogU2Nyb2xs
Vmlldy5jcHAgKi8sCiAJCQkJQkM2RDZFMjUwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcu
aCAqLywKIAkJCQlBQjcxNzA4ODBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51Lmgg
Ki8sCisJCQkJMDc4NjMzRDcyM0ZFMDk2NDAwODdBRTIxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUuY3BwICovLAogCQkJCTA3N0FGMTNFMThGNEFFNDAwMDAxRUQ2MSAvKiBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmggKi8sCisJCQkJMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovLAogCQkJCTFBNEE5NTRCMEI0RURDQ0Iw
MDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuY3BwICovLAogCQkJCTFBNEE5NTRDMEI0RURDQ0IwMDJE
OEMzQyAvKiBTaGFyZWRCdWZmZXIuaCAqLywKIAkJCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcyNUIg
LyogU2hhcmVkU3RyaW5nSGFzaC5jcHAgKi8sCkBAIC0zMjI1NCw2ICszMjI1OSw3IEBACiAJCQkJ
RTE4REYzMzUxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzdBRjE0MDE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3QUYxNDMxOEY0QjFCQjAwMDFF
RDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTA3NkQxQzFGMjNGNkVCNUIwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNkY3RjZEMUMzMUUzOUEw
MEYxMTFEQyAvKiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDkz
QUVFMzE5REY1NjQxMDAyQTg2QzMgLyogU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAw
NDAwMWI0YmE5ZWRmYWViZmVhZjFmMjdjZmEwZmNlNDQ3YzExZDg4Li4wZTg2OGEwYmFlN2JkMjI4
MjRhZGNiNDRlYjY4YWUxNzliYzkxY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTEzMzIsNyArMTMzMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgICAgICBtb2RlID0gQXR0cmlidXRlOwogICAg
ICAgICAgICAgQVNTRVJUKG1fcGxheWVyKTsKICAgICAgICAgICAgIGlmICghbV9wbGF5ZXIpIHsK
LSAgICAgICAgICAgICAgICBFUlJPUl9MT0cobG9nU2l0ZUlkZW50aWZpZXIsICIgaGFzIHNyY0F0
dHIgYnV0IG1fcGxheWVyIGlzIG5vdCBjcmVhdGVkIik7CisgICAgICAgICAgICAgICAgRVJST1Jf
TE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiaGFzIHNyY0F0dHIgYnV0IG1fcGxheWVyIGlzIG5vdCBj
cmVhdGVkIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UgaWYgKGF1dG8gZmlyc3RTb3VyY2UgPSBjaGlsZHJlbk9mVHlwZTxIVE1MU291cmNl
RWxlbWVudD4oKnRoaXMpLmZpcnN0KCkpIHsKQEAgLTM0NzMsMTEgKzM0NzMsMTMgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpwbGF5KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2Up
CiAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIGlmIChzdWNjZXNzLnZhbHVlKCkgPT0gTWVk
aWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZCkKICAgICAgICAgICAg
IHNldEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlKEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
OjpQcmV2ZW50ZWRBdXRvcGxheSk7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAi
cmVqZWN0aW5nIHByb21pc2U6ICIsIHN1Y2Nlc3MudmFsdWUoKSk7CiAgICAgICAgIHByb21pc2Uu
cmVqZWN0KE5vdEFsbG93ZWRFcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAobV9lcnJvciAmJiBtX2Vycm9yLT5jb2RlKCkgPT0gTWVkaWFFcnJvcjo6TUVESUFfRVJSX1NS
Q19OT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAicmVq
ZWN0aW5nIHByb21pc2UgYmVjYXVzZSBvZiBlcnJvciIpOwogICAgICAgICBwcm9taXNlLnJlamVj
dChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM0OTUsNiArMzQ5Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6cGxheSgpCiAKICAgICBhdXRvIHN1Y2Nlc3MgPSBtX21lZGlhU2Vzc2lvbi0+
cGxheWJhY2tQZXJtaXR0ZWQoKTsKICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgRVJST1Jf
TE9HKExPR0lERU5USUZJRVIsICJwbGF5YmFjayBub3QgcGVybWl0dGVkOiAiLCBzdWNjZXNzLnZh
bHVlKCkpOwogICAgICAgICBpZiAoc3VjY2Vzcy52YWx1ZSgpID09IE1lZGlhUGxheWJhY2tEZW5p
YWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQpCiAgICAgICAgICAgICBzZXRBdXRvcGxheUV2
ZW50UGxheWJhY2tTdGF0ZShBdXRvcGxheUV2ZW50UGxheWJhY2tTdGF0ZTo6UHJldmVudGVkQXV0
b3BsYXkpOwogICAgICAgICByZXR1cm47CkBAIC01MDk0LDcgKzUwOTcsOCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTWVkaWFFbmdpbmVXYXNVcGRhdGVkKCkKIAogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogewotICAgIElORk9fTE9HKExP
R0lERU5USUZJRVIpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKICAgICBiZWdp
blByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAgICAgdXBkYXRlUmVuZGVyZXIoKTsK
ICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwpAQCAtNTEyOSw3ICs1MTMz
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogCiB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCiB7Ci0gICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7CisgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgbV9w
bGF5ZXItPmVuZ2luZURlc2NyaXB0aW9uKCkpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
ICAgICBtX2Ryb3BwZWRWaWRlb0ZyYW1lcyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAppbmRleCBmMDdmNzM4ZDI4MzYxY2M0YmZk
NDkyYzY0YTg0YWM5YmQ0Y2E2NTA0Li4wYzA0ZjNjMWI1ZjE3MmU3MmRjZjNmYTVlMzViYjBlOTcz
MjA4NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFU
ZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRl
eHRUcmFjay5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjph
ZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW4KIAog
dm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4m
JiBwbGF0Zm9ybVZhbHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgaWYgKG1faW5jb21w
bGV0ZUN1ZU1hcC5jb250YWlucyhwbGF0Zm9ybVZhbHVlLnB0cigpKSkKKyAgICBpZiAoZmluZElu
Y29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8g
Y3VlID0gRGF0YUN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0YXJ0LCBl
bmQsIHBsYXRmb3JtVmFsdWUuY29weVJlZigpLCB0eXBlKTsKQEAgLTcwLDcgKzcwLDcgQEAgdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW4KIAogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUluZmluaXRlKCkg
JiYgbWVkaWFFbGVtZW50KCkpIHsKICAgICAgICAgY3VlLT5zZXRFbmRUaW1lKG1lZGlhRWxlbWVu
dCgpLT5kdXJhdGlvbk1lZGlhVGltZSgpKTsKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLmFk
ZChXVEZNb3ZlKHBsYXRmb3JtVmFsdWUpLCBjdWUuY29weVJlZigpKTsKKyAgICAgICAgbV9pbmNv
bXBsZXRlQ3VlTWFwLmFwcGVuZCgmY3VlLmdldCgpKTsKICAgICB9CiAKICAgICBJTkZPX0xPRyhM
T0dJREVOVElGSUVSLCBjdWUuZ2V0KCkpOwpAQCAtNzgsOSArNzgsMjEgQEAgdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW4KICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAorUmVmUHRyPERhdGFD
dWU+IEluYmFuZERhdGFUZXh0VHJhY2s6OmZpbmRJbmNvbXBsZXRlQ3VlKGNvbnN0IFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmIGN1ZVRvRmluZCkKK3sKKyAgICBhdXRvIGluZGV4ID0gbV9pbmNv
bXBsZXRlQ3VlTWFwLmZpbmRNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgY3VlKSB7CisgICAgICAg
IHJldHVybiBjdWVUb0ZpbmQuaXNFcXVhbCgqY3VlLT5wbGF0Zm9ybVZhbHVlKCkpOworICAgIH0p
OworCisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIHJldHVybiBtX2luY29tcGxldGVDdWVNYXBbaW5kZXhdOworfQorCiB2b2lkIEluYmFu
ZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBpbkVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgcGxhdGZvcm1W
YWx1ZSkKIHsKLSAgICBSZWZQdHI8RGF0YUN1ZT4gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdl
dCgmcGxhdGZvcm1WYWx1ZSk7CisgICAgYXV0byBjdWUgPSBmaW5kSW5jb21wbGV0ZUN1ZShwbGF0
Zm9ybVZhbHVlKTsKICAgICBpZiAoIWN1ZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05MCw3ICsx
MDIsNyBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJgogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUlu
ZmluaXRlKCkgJiYgbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIGVuZCA9IG1lZGlhRWxlbWVudCgp
LT5kdXJhdGlvbk1lZGlhVGltZSgpOwogICAgIGVsc2UKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3Vl
TWFwLnJlbW92ZSgmcGxhdGZvcm1WYWx1ZSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5y
ZW1vdmVGaXJzdChjdWUpOwogCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIndhcyBzdGFy
dCA9ICIsIGN1ZS0+c3RhcnRNZWRpYVRpbWUoKSwgIiwgZW5kID0gIiwgY3VlLT5lbmRNZWRpYVRp
bWUoKSwgIiwgd2lsbCBiZSBzdGFydCA9ICIsIHN0YXJ0LCAiLCBlbmQgPSAiLCBlbmQpOwogCkBA
IC0xMDIsOCArMTE0LDkgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYKIAogdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAg
aWYgKGF1dG8gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLnRha2UoJnBsYXRmb3JtVmFsdWUpKSB7
CisgICAgaWYgKGF1dG8gY3VlID0gZmluZEluY29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSkpIHsK
ICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJlbW92aW5nOiAiLCAqY3VlKTsKKyAg
ICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZUZpcnN0KGN1ZSk7CiAgICAgICAgIEluYmFu
ZFRleHRUcmFjazo6cmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0KIH0KQEAgLTExMiw3ICsxMjUsOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpyZW1vdmVDdWUoVGV4dFRy
YWNrQ3VlJiBjdWUpCiB7CiAgICAgQVNTRVJUKGN1ZS5jdWVUeXBlKCkgPT0gVGV4dFRyYWNrQ3Vl
OjpEYXRhKTsKIAotICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoY29uc3RfY2FzdDxTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlKj4odG9EYXRhQ3VlKCZjdWUpLT5wbGF0Zm9ybVZhbHVlKCkp
KTsKKyAgICBpZiAoYXV0byBwbGF0Zm9ybVZhbHVlID0gY29uc3RfY2FzdDxTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlKj4odG9EYXRhQ3VlKCZjdWUpLT5wbGF0Zm9ybVZhbHVlKCkpKQorICAgICAg
ICByZW1vdmVEYXRhQ3VlKHsgfSwgeyB9LCAqcGxhdGZvcm1WYWx1ZSk7CiAKICAgICByZXR1cm4g
SW5iYW5kVGV4dFRyYWNrOjpyZW1vdmVDdWUoY3VlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKaW5kZXggMWE4YmRmNmFlNTIyOGJlZjBj
ZjhkMWRhZDk1ZTM1NmY2MjhhNDRmMi4uNGZjMzEzZWFjYzUxNzQxMjMwNDY5OGY0MmUzY2FlZWE5
ZDE5Mzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRh
VGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4
dFRyYWNrLmgKQEAgLTU1LDcgKzU1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZURhdGFD
dWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVD
dWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7CiAKLSAgICBIYXNoTWFwPFJlZlB0cjxTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlPiwgUmVmUHRyPERhdGFDdWU+PiBtX2luY29tcGxldGVDdWVNYXA7Cisg
ICAgUmVmUHRyPERhdGFDdWU+IGZpbmRJbmNvbXBsZXRlQ3VlKGNvbnN0IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWUmKTsKKworICAgIFZlY3RvcjxSZWZQdHI8RGF0YUN1ZT4+IG1faW5jb21wbGV0
ZUN1ZU1hcDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgK
aW5kZXggNDdlNmRlZTkzZDA2OTI5OTczNjA5NTFlNTExMjM4ZDllMzA1OThmMi4uMDczNjUyZjQ0
NDUxNWU4ZDhhMGNkZWViMjFjMDZjNDM2NzcxMTJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5oCkBAIC05Niw2ICs5Niw4IEBAIHB1YmxpYzoKICAgICBUZXh0VHJhY2tDdWVM
aXN0KiBjdWVzKCk7CiAgICAgVGV4dFRyYWNrQ3VlTGlzdCogYWN0aXZlQ3VlcygpIGNvbnN0Owog
CisgICAgVGV4dFRyYWNrQ3VlTGlzdCogY3Vlc0ludGVybmFsKCkgY29uc3QgeyByZXR1cm4gbV9j
dWVzLmdldCgpOyB9CisKICAgICB2b2lkIGNsZWFyQ2xpZW50KCkgb3ZlcnJpZGUgeyBtX2NsaWVu
dCA9IG51bGxwdHI7IH0KICAgICBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApp
bmRleCBlNWRmM2MzYjc4NjZlYTlmZDQzZGFjY2Y0YTQ2MjJiZGI2NDg5NDIyLi5jYmRkOGMwMzFk
YjdjZmUwZTg0NTYxMTk3NjI2N2YyNDUxMjI0ZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC0zNDEsMTEgKzM0MSwxMSBAQCB2b2lkIFRleHRUcmFj
a0N1ZTo6c2V0SXNBY3RpdmUoYm9vbCBhY3RpdmUpCiAKIHVuc2lnbmVkIFRleHRUcmFja0N1ZTo6
Y3VlSW5kZXgoKSBjb25zdAogewotICAgIEFTU0VSVChtX3RyYWNrICYmIG1fdHJhY2stPmN1ZXMo
KSk7Ci0gICAgaWYgKCFtX3RyYWNrIHx8ICFtX3RyYWNrLT5jdWVzKCkpCisgICAgQVNTRVJUKG1f
dHJhY2sgJiYgbV90cmFjay0+Y3Vlc0ludGVybmFsKCkpOworICAgIGlmICghbV90cmFjayB8fCAh
bV90cmFjay0+Y3Vlc0ludGVybmFsKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCk7CiAKLSAgICByZXR1cm4gbV90cmFjay0+Y3VlcygpLT5jdWVJ
bmRleCgqdGhpcyk7CisgICAgcmV0dXJuIG1fdHJhY2stPmN1ZXNJbnRlcm5hbCgpLT5jdWVJbmRl
eCgqdGhpcyk7CiB9CiAKIGJvb2wgVGV4dFRyYWNrQ3VlOjppc09yZGVyZWRCZWZvcmUoY29uc3Qg
VGV4dFRyYWNrQ3VlKiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDliZmI4YTZh
MWUwN2M0ZWZmNGZhNmRkZDA5ZTNlNzlhMWU3OWU3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCkBAIC0wLDAg
KzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oIgorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBF
TkFCTEUoREFUQUNVRV9WQUxVRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIVBMQVRG
T1JNKENPQ09BKQorUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWU6OmNyZWF0ZShTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJikKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkpOwor
fQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgKaW5kZXgg
NDc0YWMxZDRmNzc2NGI1Y2VjMTNlMTdjNmVlMTlhOGI0MmQyMDA3Ny4uMDg1NTBmZGU3NzE0YTJl
ZDVkYTBlZGI5MTU1NjdhMjEzOGY4MGZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAj
aWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZh
bHVlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTM0LDE2ICszNSwyMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiB7CiBwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBjcmVhdGUoU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOworCiAgICAgdmlydHVhbCB+U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZSgpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGRlc2Vy
aWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQ
dHI8SlNDOjpBcnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBj
b25zdCB7IHJldHVybiBKU0M6OmpzTnVsbCgpOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SlNDOjpB
cnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc0VxdWFsKGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCi0gICAgZW51bSBQbGF0Zm9ybVR5cGUgeworICAgIGVudW0gY2xhc3MgUGxh
dGZvcm1UeXBlIHsKKyAgICAgICAgTm9uZSwKICAgICAgICAgT2JqQywKICAgICB9OwotICAgIHZp
cnR1YWwgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUoKSBjb25zdCB7IHJldHVybiBQbGF0Zm9ybVR5cGU6
Ok5vbmU7IH0KKworICAgIHZpcnR1YWwgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRh
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlIGVuY29kYWJsZVZhbHVlKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiAK
IHByb3RlY3RlZDoKICAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkgPSBkZWZhdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmM2MzM0YWJlMmIzNGM5ZjRhZWIyYTNmZmNiYmZj
NzkxYzBhZGYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmICFkZWZpbmVkKF9f
T0JKQ19fKQordHlwZWRlZiBzdHJ1Y3Qgb2JqY19vYmplY3QgKmlkOworI2VuZGlmCisKKyNpZiBQ
TEFURk9STShDT0NPQSkKK3VzaW5nIFBsYXRmb3JtTmF0aXZlVmFsdWUgPSBpZDsKKyNlbHNlCit1
c2luZyBQbGF0Zm9ybU5hdGl2ZVZhbHVlID0gdm9pZCo7CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgeworICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKTsKK3B1
YmxpYzoKKyAgICBlbnVtIGNsYXNzIFBsYXRmb3JtVHlwZSB7CisgICAgICAgIE5vbmUsCisgICAg
ICAgIE9iakMsCisgICAgfTsKKworICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZShQ
bGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlLCBQbGF0Zm9ybU5hdGl2ZVZhbHVlIG5hdGl2ZVZhbHVl
KQorICAgICAgICA6IG1fbmF0aXZlVmFsdWUobmF0aXZlVmFsdWUpCisgICAgICAgICwgbV90eXBl
KHBsYXRmb3JtVHlwZSkKKyAgICB7CisgICAgfQorICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZSgpID0gZGVmYXVsdDsKKyAgICB+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
KCkgPSBkZWZhdWx0OworCisgICAgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQorCisgICAgUGxhdGZvcm1OYXRpdmVWYWx1ZSBuYXRpdmVWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlVmFsdWU7IH0KKworICAgIGJvb2wgZW5jb2RpbmdSZXF1
aXJlc1BsYXRmb3JtRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBQbGF0Zm9ybVR5cGU6
Ok9iakM7IH0KKworcHJvdGVjdGVkOgorICAgIFBsYXRmb3JtTmF0aXZlVmFsdWUgbV9uYXRpdmVW
YWx1ZSB7IG51bGxwdHIgfTsKKyAgICBQbGF0Zm9ybVR5cGUgbV90eXBlIHsgUGxhdGZvcm1UeXBl
OjpOb25lIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGNh
NzFlN2UwYjU4NmM3YjU1YjExMjczMmJhZDU5YjAxZDhhNDE4MWIuLjU3ZGZjYmY0YmM3YzQ4ODQ0
ZDM4MWNiMzVlY2M2NDNjMWFhYjRiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTEwOSw2ICsxMDksOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwbGF5KCkgZmluYWwgeyB9CiAgICAgdm9pZCBwYXVzZSgpIGZpbmFsIHsgfQogCisg
ICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk51bGxN
ZWRpYVBsYXllciI7IH0KKwogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBGbG9hdFNpemUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcAppbmRleCBmZTFj
MDY0YWU1MTI3NzIzMDhjYzJjNGNiMjI0M2ViOTJlNTMxODAwLi5iNzg2NGY3YjM3MGUzMzUyNjc1
NmNkYTYyZDcyN2FjMDdjODBiNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcApAQCAtMzMsOSArMzMsMTAgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKIHN0YXRp
YyB1aW50NjRfdCBzX3VuaXF1ZUlkID0gMDsKIAotI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
dm9pZCBUcmFja1ByaXZhdGVCYXNlOjpzZXRMb2dnZXIoY29uc3QgTG9nZ2VyJiBsb2dnZXIsIGNv
bnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIpCiB7CiAgICAgbV9sb2dnZXIgPSAmbG9nZ2VyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KaW5kZXggODIwZGE4OWM0NmY4NzE1MzI5NmUxNjc0ZGY0NmExZDc0
YmUwNmY5YS4uYjM3YzQ0MTEzMTQ5ODg3OTU0NmVjOGE1N2EwZGQ4ZTExZjc4NDY5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tCkBAIC0zMDc0LDcgKzMwNzQsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKGNvbnN0IFJldGFpblB0
cjxOU0FycgogICAgICAgICBpZiAoaXRlbS5rZXlTcGFjZSkKICAgICAgICAgICAgIHR5cGUgPSBt
ZXRhZGF0YVR5cGUoaXRlbS5rZXlTcGFjZSk7CiAKLSAgICAgICAgbV9tZXRhZGF0YVRyYWNrLT5h
ZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmNyZWF0
ZShpdGVtKSwgdHlwZSk7CisgICAgICAgIG1fbWV0YWRhdGFUcmFjay0+YWRkRGF0YUN1ZShzdGFy
dCwgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoeyBXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgaXRlbSB9KSwg
dHlwZSk7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaAppbmRleCBhMTBkY2Nj
M2UxYjVhMzBkZmJmMDEwYTc2MDUwNTI4MDZiMjE5NmViLi4yNmQ4NGI5YTg5MmQ2YWZjODRhZTkz
ZWRiYjJmMGFiNGJkMDZlM2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmgKQEAgLTI5LDI4ICsyOSwy
NiBAQAogCiAjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oIgogCi0jaWYgVVNF
KEZPVU5EQVRJT04pICYmICFkZWZpbmVkKF9fT0JKQ19fKQotdHlwZWRlZiBzdHJ1Y3Qgb2JqY19v
YmplY3QgKmlkOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZU1hYyBmaW5hbCA6IHB1YmxpYyBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlIHsKIHB1YmxpYzoKKyAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKICAgICB2aXJ0dWFsIH5TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjKCk7Ci0gICAgc3RhdGljIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlPiBjcmVhdGUoaWQpOwogCiAgICAgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6SlNH
bG9iYWxPYmplY3QqKSBjb25zdCBmaW5hbDsKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGRhdGEo
KSBjb25zdCBmaW5hbDsKLQogICAgIGJvb2wgaXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlJikgY29uc3QgZmluYWw7CisgICAgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBsYXRmb3JtVHlwZTo6T2JqQzsgfQorICAgIGJvb2wgZW5j
b2RpbmdSZXF1aXJlc1BsYXRmb3JtRGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
IAotICAgIFBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpPYmpDOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIGVuY29kYWJsZVZhbHVlKCkgY29uc3QgZmluYWw7
CiAKICAgICBpZCBuYXRpdmVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlVmFsdWUuZ2V0
KCk7IH0KIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5KiBhbGxvd2VkQ2xhc3Nl
c0Zvck5hdGl2ZVZhbHVlcygpOworCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVNYWMoaWQgbmF0aXZlVmFsdWUpOwogCiAgICAgUmV0YWluUHRyPGlkPiBt
X25hdGl2ZVZhbHVlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMubW0KaW5kZXggYjk0OWViN2NkZDIw
MDM5ZjFjZmZlZjhjNGM1YmNkN2IxMTNlYjE5OS4uYzk4NGE5ZWVhN2E5NTliNjRhY2M3ZjEyZDUx
NjA3MjEzOGM3YWUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMubW0KQEAgLTQ4LDIxICs0OCwyMyBA
QCBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhBcnJheUluQ29udGV4dChOU0FycmF5ICosIEpT
Q29udGV4dCAqKTsKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aERpY3Rpb25hcnlJbkNvbnRl
eHQoTlNEaWN0aW9uYXJ5ICosIEpTQ29udGV4dCAqKTsKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVl
V2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KEFWTWV0YWRhdGFJdGVtICosIEpTQ29udGV4dCAq
KTsKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aFZhbHVlSW5Db250ZXh0KGlkLCBKU0NvbnRl
eHQgKik7CitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0
ZW0oQVZNZXRhZGF0YUl0ZW0gKik7CiAjZW5kaWYKIAotU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZU1hYzo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhpZCBuYXRpdmVWYWx1ZSkKLSAgICA6
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUoKQotICAgICwgbV9uYXRpdmVWYWx1ZShuYXRpdmVW
YWx1ZSkKK1JlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlOjpjcmVhdGUoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgdmFsdWUpCiB7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhX
VEZNb3ZlKHZhbHVlKSkpOwogfQogCi1TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYygpCitTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFj
OjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVW
YWx1ZSYmIHZhbHVlKQorICAgIDogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSgpCisgICAgLCBt
X25hdGl2ZVZhbHVlKHZhbHVlLm5hdGl2ZVZhbHVlKCkpCiB7CisgICAgUkVMRUFTRV9BU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTih2YWx1ZS5wbGF0Zm9ybVR5cGUoKSA9PSBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQyk7CiB9CiAKLVJlZjxT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpj
cmVhdGUoaWQgbmF0aXZlVmFsdWUpCitTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYygpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhuYXRpdmVWYWx1ZSkpOwogfQogCiBSZWZQdHI8
QXJyYXlCdWZmZXI+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmRhdGEoKSBjb25zdApA
QCAtODksNyArOTEsNyBAQCBKU0M6OkpTVmFsdWUgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1h
Yzo6ZGVzZXJpYWxpemUoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aQogCiBib29sIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmlzRXF1YWwoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKG90aGVyLnBsYXRmb3JtVHlwZSgpICE9IFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6Ok9iakMpCisgICAgaWYgKG90aGVyLnBsYXRmb3JtVHlw
ZSgpICE9IFBsYXRmb3JtVHlwZTo6T2JqQykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
Y29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyogb3RoZXJPYmpDID0gdG9TZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjKCZvdGhlcik7CkBAIC0xMDcsMTAgKzEwOSwyNCBAQCBTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKiB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMo
U2VyaWFsaXplZFBsYXRmb3JtRAogCiBjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFj
KiB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoY29uc3QgU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZSogcmVwKQogewotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04ocmVwLT5wbGF0Zm9ybVR5cGUoKSA9PSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpP
YmpDKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHJlcC0+
cGxhdGZvcm1UeXBlKCkgPT0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6UGxhdGZvcm1UeXBl
OjpPYmpDKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYyo+KHJlcCk7CiB9CiAKK05TQXJyYXkqIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWM6OmFsbG93ZWRDbGFzc2VzRm9yTmF0aXZlVmFsdWVzKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TQXJyYXk+PiBhbGxvd2VkQ2xhc3NlcyhAWyBbTlNTdHJp
bmcgY2xhc3NdLCBbTlNOdW1iZXIgY2xhc3NdLCBbTlNMb2NhbGUgY2xhc3NdLCBbTlNEaWN0aW9u
YXJ5IGNsYXNzXSwgW05TQXJyYXkgY2xhc3NdLCBbTlNEYXRhIGNsYXNzXSBdKTsKKyAgICByZXR1
cm4gYWxsb3dlZENsYXNzZXMuZ2V0KCkuZ2V0KCk7Cit9CisKK1NlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSgp
IGNvbnN0Cit7CisgICAgaWYgKFttX25hdGl2ZVZhbHVlLmdldCgpIGlzS2luZE9mQ2xhc3M6UEFM
OjpnZXRBVk1ldGFkYXRhSXRlbUNsYXNzKCldKQorICAgICAgICByZXR1cm4geyBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgTlNEaWN0aW9uYXJ5V2l0
aEFWTWV0YWRhdGFJdGVtKG1fbmF0aXZlVmFsdWUuZ2V0KCkpIH07CisKKyAgICByZXR1cm4geyBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgbV9uYXRp
dmVWYWx1ZS5nZXQoKSB9OworfQorCiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKIHN0YXRpYyBK
U1ZhbHVlICpqc1ZhbHVlV2l0aFZhbHVlSW5Db250ZXh0KGlkIHZhbHVlLCBKU0NvbnRleHQgKmNv
bnRleHQpCiB7CkBAIC0xOTMsNiArMjA5LDExIEBAIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0
aERpY3Rpb25hcnlJbkNvbnRleHQoTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5LCBKU0NvbnRlCiB9
CiAKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KEFW
TWV0YWRhdGFJdGVtICppdGVtLCBKU0NvbnRleHQgKmNvbnRleHQpCit7CisgICAgcmV0dXJuIGpz
VmFsdWVXaXRoRGljdGlvbmFyeUluQ29udGV4dChOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0
ZW0oaXRlbSksIGNvbnRleHQpOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpOU0RpY3Rpb25h
cnlXaXRoQVZNZXRhZGF0YUl0ZW0oQVZNZXRhZGF0YUl0ZW0gKml0ZW0pCiB7CiAgICAgTlNNdXRh
YmxlRGljdGlvbmFyeSAqZGljdGlvbmFyeSA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25h
cnldOwogCkBAIC0yMzAsNyArMjUxLDcgQEAgc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZN
ZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZNZXRhZGF0YUl0ZW0gKml0ZW0sIEpTQ29udGUKICAgICBp
ZiAoaXRlbS52YWx1ZSkKICAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0Oml0ZW0udmFsdWUg
Zm9yS2V5OkAiZGF0YSJdOwogCi0gICAgcmV0dXJuIGpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29u
dGV4dChkaWN0aW9uYXJ5LCBjb250ZXh0KTsKKyAgICByZXR1cm4gZGljdGlvbmFyeTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggNjRmM2NiZjIwYzUyYzM2MjA2YWFlYjljNDk5N2E3MmY1YmU0MGY4Ny4uNGNiZDQ2MTRiNjJi
OGMzZTdkNGY1NmNhOTUwYzk0NDc2MTI5OTMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsOCArMjQsOCBAQAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgTm90
UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHN0
cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uIHByb3h5Q29u
ZmlndXJhdGlvbikgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKSBTeW5jaHJvbm91cwotICAgIERlbGV0ZU1lZGlhUGxh
eWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKKyAgICBD
cmVhdGVNZWRpYVBsYXllcihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9uKSAtPiAoc3Ry
dWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3Vy
YXRpb24pIEFzeW5jCisgICAgIERlbGV0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKIAogICAgIEdldFN1cHBvcnRlZFR5cGVzKGVudW06
dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKSBTeW5jaHJv
bm91cwogICAgIFN1cHBvcnRzVHlwZUFuZENvZGVjcyhlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHR5cGUpIC0+
IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIHN1
cHBvcnQpIFN5bmNocm9ub3VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcAppbmRleCBiNzZkYzliMGQ0NmY4NmI3Nzk1
N2QzYjNiNzg1NDU5YzM5NDliMmE2Li4zMmM5YjdlMTJlNWE3MmNiMGJiYmQwYTk1ZTAzMTE4ZTA3
MjQwYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VGV4dFRyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKQEAgLTk2LDI1ICs5NiwyNSBAQCB2b2lkIFJlbW90ZVRl
eHRUcmFja1Byb3h5OjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpCiAgICAgY29u
ZmlndXJhdGlvbkNoYW5nZWQoKTsKIH0KIAotdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRk
RGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwg
dW5zaWduZWQpCit2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFk
ZERhdGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGxlbmd0aCkpLCBtX3BsYXllci5p
ZGVuZGlmaWVyKCkpOwogfQogCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCi12b2lkIFJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiYmLCBjb25zdCBTdHJpbmcmKQor
dm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+
JiYgY3VlRGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpBZGREYXRhQ3VlV2l0aFR5cGUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5k
LCBjdWVEYXRhLT5lbmNvZGFibGVWYWx1ZSgpLCB0eXBlKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigp
KTsKIH0KIAotdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6dXBkYXRlRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikK
K3ZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1l
JiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUm
IGN1ZURhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlVwZGF0ZURh
dGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLmVuY29kYWJsZVZhbHVlKCkp
LCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwogfQogCi12b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5
OjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWUmKQordm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6cmVtb3Zl
RGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3VlRGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6UmVtb3ZlRGF0YUN1ZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1
ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
aW5kZXggMWMwMGJkYTUzZjViNmI0MzRlYTcxOTc5ZjRlNjMyMTM4MWRhNTcyYy4uOGM5ZmEyMWFm
MzhhNzE2MmM2YzIwOWU5Mzk0Njg5MDZhMjVjM2NhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkQXR0YWNobWVudERhdGEuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudERhdGEuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyRGF0YS5oPgpAQCAtMzE3NCw0ICszMTc1LDMyIEBAIE9wdGlvbmFsPFNlcmlh
bGl6ZWRBdHRhY2htZW50RGF0YT4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkQXR0
YWNobWVudERhCiAKICNlbmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCisjaWYg
RU5BQkxFKFZJREVPKQordm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmIHZhbHVlKQoreworICAgIGJvb2wgaGFzUGxhdGZvcm1E
YXRhID0gdmFsdWUuZW5jb2RpbmdSZXF1aXJlc1BsYXRmb3JtRGF0YSgpOworICAgIGVuY29kZXIg
PDwgaGFzUGxhdGZvcm1EYXRhOworCisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHZhbHVlLnBsYXRm
b3JtVHlwZSgpKTsKKyAgICBpZiAoaGFzUGxhdGZvcm1EYXRhKQorICAgICAgICBlbmNvZGVQbGF0
Zm9ybURhdGEoZW5jb2RlciwgdmFsdWUpOworfQorCitPcHRpb25hbDxTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWU+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZVZhbHVlPjo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBib29s
IGhhc1BsYXRmb3JtRGF0YTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1BsYXRmb3JtRGF0
YSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZSB0eXBlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGVFbnVtKHR5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgaWYgKGhhc1BsYXRmb3JtRGF0YSkKKyAgICAgICAgcmV0dXJuIGRlY29kZVBsYXRmb3JtRGF0
YShkZWNvZGVyLCB0eXBlKTsKKworICAgIHJldHVybiB7eyB9fTsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKaW5kZXggN2JmNzFjMTdhYmRkM2Q4YjEzMTkwMjIwMDU4YzlmOWMyMTlmNjBiMy4uZTM4
MTRlMjFmODMzNmFhZjJmNDQ0MzIzMmUzNDRlMDA3NGRhZTJhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkRpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNl
dHNJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dv
cmtlclR5cGUuaD4KQEAgLTgxOSw2ICs4MjAsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkQXR0YWNobWVudERhdGE+IHsKIAogI2VuZGlmIC8v
IEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKKyNpZiBFTkFCTEUoVklERU8pCit0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJik7CisgICAgc3RhdGljIE9wdGlvbmFs
PFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gZGVjb2RlKERlY29kZXIm
KTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYpOworICAgIHN0YXRpYyBPcHRp
b25hbDxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+IGRlY29kZVBsYXRm
b3JtRGF0YShEZWNvZGVyJiwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
OjpQbGF0Zm9ybVR5cGUpOworfTsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBJUEMKIAogbmFt
ZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbQppbmRleCBlZTIyMjQyM2YwNDdjOWJmMDkzNjM5ZDgxMmIxODJk
ODM2MTgwZWZlLi44ZGE3YzE5ODc3OTJiODc3NDlhNmVhZDdlOTkzZjk2YzdlMTgxZTFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWMubW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUHJvdGVjdGlvblNwYWNl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVNYWMuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0
IDx3dGYvTWFjaFNlbmRSaWdodC5oPgogCkBAIC02NjksNCArNjcwLDI3IEBAIGJvb2wgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dD46OmRlY29kZVBsYXRm
b3JtRGF0YShEZWNvCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPKQordm9pZCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29kZVBs
YXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlVmFsdWUmIHZhbHVlKQoreworICAgIEFTU0VSVCh2YWx1ZS5wbGF0Zm9ybVR5
cGUoKSA9PSBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3Jt
VHlwZTo6T2JqQyk7CisgICAgaWYgKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKQorICAgICAg
ICBlbmNvZGVPYmplY3QoZW5jb2RlciwgdmFsdWUubmF0aXZlVmFsdWUoKSk7Cit9CisKK09wdGlv
bmFsPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZGVjb2RlUGxhdGZv
cm1EYXRhKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZTo6UGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSkKK3sKKyAgICBBU1NFUlQocGxhdGZv
cm1UeXBlID09IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZv
cm1UeXBlOjpPYmpDKTsKKworICAgIGlmIChwbGF0Zm9ybVR5cGUgIT0gV2ViQ29yZTo6U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBhdXRvIG9iamVjdCA9IGRlY29kZU9iamVjdChkZWNv
ZGVyLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2VkQ2xhc3Nl
c0Zvck5hdGl2ZVZhbHVlcygpKTsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHJldHVybiBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWUgeyBwbGF0Zm9ybVR5cGUsIG9iamVjdC52YWx1ZSgpLmdldCgpIH07Cit9CisjZW5k
aWYKKwogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5k
ZXggOWRjMGViYjYwNjY0ODk3ZjgyZGI3ZTA1MTgwOGYwZTQ4OWRjNTI3OS4uYTYwYmI0ZjljZDIz
MWQ5MTkwMzgyNDIxNDJlM2IwZWU5OGUzN2JkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcApAQCAtNjcsMTMgKzY3LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogfSB3aGls
ZSAoMCkKICNlbmRpZgogCi1NZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1h
bmFnZXIsIGNvbnN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlv
bikKK01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1l
ZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciBlbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBs
YXllcklkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlcikKICAgICA6
IG1fcGxheWVyKHBsYXllcikKICAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcihwbGF5ZXItPmNy
ZWF0ZVJlc291cmNlTG9hZGVyKCkpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1f
cmVtb3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV9pZChwbGF5
ZXJJZGVudGlmaWVyKQotICAgICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCiAjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcigmcGxheWVyLT5tZWRpYVBsYXll
ckxvZ2dlcigpKQogICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKCkpCkBAIC04Miw2ICs4MSwxMiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYQog
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6c2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQoreworICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmln
dXJhdGlvbik7CisgICAgbV9wbGF5ZXItPm1lZGlhRW5naW5lVXBkYXRlZCgpOworfQorCiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogewogICAg
IElORk9fTE9HKExPR0lERU5USUZJRVIpOwpAQCAtNDg0LDYgKzQ4OSw0MCBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aQogICAgICAgICB0cmFjay0+cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFdU
Rk1vdmUoZGF0YSkpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkRGF0
YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSYm
IHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCit7Cisg
ICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAo
Y29uc3QgYXV0byYgdHJhY2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAg
ICB0cmFjay0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXVEZNb3Zl
KGRhdGEpKTsKK30KKworI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQordm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZShUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGEsIFN0cmluZyYmIHR5cGUpCit7Cisg
ICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAo
Y29uc3QgYXV0byYgdHJhY2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAg
ICB0cmFjay0+YWRkRGF0YUN1ZVdpdGhUeXBlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCks
IFdURk1vdmUoZGF0YSksIFdURk1vdmUodHlwZSkpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGEpCit7CisgICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5j
b250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAoY29uc3QgYXV0byYgdHJhY2sgPSBtX3Rl
eHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICB0cmFjay0+dXBkYXRlRGF0YUN1ZShX
VEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXVEZNb3ZlKGRhdGEpKTsKK30KKwordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFDdWUoVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5k
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhKQoreworICAgIEFTU0VSVCht
X3RleHRUcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOworCisgICAgaWYgKGNvbnN0IGF1dG8m
IHRyYWNrID0gbV90ZXh0VHJhY2tzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgdHJhY2stPnJl
bW92ZURhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgV1RGTW92ZShkYXRhKSk7
Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVZp
ZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBhdXRvIGFk
ZFJlc3VsdCA9IG1fdmlkZW9UcmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzN2UxMWY0YWQwMjVhMTgzMGU1Y2YzYzg5
NTAwZGE4Li44YjBjZTM5YzUwMzM1ZjYyNDFjMGU5Mjg0ZmY5MzAxNGRlMTBiZTgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTQwLDEyICs0MCwxNCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CitjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZTsKIGNsYXNzIFRleHRUcmFja1ByaXZhdGVSZW1vdGU7CitjbGFzcyBVc2VyRGF0
YTsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOwogc3RydWN0IFRleHRUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb247CkBAIC01OSwxNCArNjEsMTYgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
IGZpbmFsCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBwbGF5
ZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlciwgY29uc3QgUmVtb3Rl
TWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUoV2ViQ29yZTo6TWVk
aWFQbGF5ZXIqIHBsYXllciwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2Vy
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlPihwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsIG1hbmFnZXIs
IGNvbmZpZ3VyYXRpb24pOworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU+KHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWRlbnRpZmllciwg
bWFuYWdlcik7CiAgICAgfQogCi0gICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKFdlYkNvcmU6
Ok1lZGlhUGxheWVyKiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXImLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mKTsKKyAg
ICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYpOwogICAgIH5N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKTsKIAorICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihS
ZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik7CisKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgdm9p
ZCBpbnZhbGlkYXRlKCkgeyBtX2ludmFsaWQgPSB0cnVlOyB9CkBAIC0xMDQsNiArMTA4LDEzIEBA
IHB1YmxpYzoKICAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UmJik7CiAgICAgdm9pZCBwYXJzZVdlYlZUVEN1
ZURhdGFTdHJ1Y3QoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6SVNPV2Vi
VlRUQ3VlJiYpOwogCisgICAgdm9pZCBhZGREYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVy
ZW5jZSYmKTsKKyNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKKyAgICB2b2lkIGFkZERhdGFDdWVX
aXRoVHlwZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwg
TWVkaWFUaW1lJiYgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUm
JiwgU3RyaW5nJiYpOworICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBXZWJDb3JlOjpT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJik7CisgICAgdm9pZCByZW1vdmVEYXRhQ3Vl
KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRp
bWUmJiBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKKyNl
bmRpZgorCiAgICAgdm9pZCByZXF1ZXN0UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIp
OwogICAgIHZvaWQgcmVzb3VyY2VOb3RTdXBwb3J0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KaW5kZXggYzQwNGRjNjc0MDczN2EzNjhkNGZhNjk0MmE4
ZTk2MDk3Nzg0NjA3Yi4uZTg4OTdiNmExMGExMGQ0YjcwMDkyOThjN2FhMjcyOGJmZTExMjk3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KQEAgLTUwLDEw
ICs1MCwxMiBAQCBtZXNzYWdlcyAtPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgTm90UmVmQ291
bnRlZCB7CiAgICAgUGFyc2VXZWJWVFRDdWVEYXRhKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciB0cmFja0lELCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBQYXJzZVdl
YlZUVEN1ZURhdGFTdHJ1Y3QoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRy
YWNrSUQsIFdlYkNvcmU6OklTT1dlYlZUVEN1ZSBjdWVEYXRhKQogCi0gICAgIyMgQWRkRGF0YUN1
ZShNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRh
KQotICAgICMjIEFkZERhdGFDdWUoTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJD
b3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlIGRhdGEsIFN0cmluZyB0eXBlKQotICAgICMj
IFVwZGF0ZURhdGFDdWUoTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlIGRhdGEpCi0gICAgIyMgUmVtb3ZlRGF0YUN1ZShNZWRp
YVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUgZGF0YSkKKyAgICBBZGREYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIElQQzo6RGF0
YVJlZmVyZW5jZSBkYXRhKQorI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQorICAgIEFkZERhdGFD
dWVXaXRoVHlwZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwg
TWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWUgY3VlRGF0YSwgU3RyaW5nIHR5cGUpCisgICAgVXBkYXRlRGF0YUN1ZShX
ZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgTWVkaWFUaW1lIHN0
YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUgY3VlRGF0YSkKKyAgICBSZW1vdmVEYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNv
cmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBjdWVEYXRhKQorI2VuZGlmCiAKICAg
ICAjIyBBZGRHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhIGN1ZSkKICAgICAjIyBV
cGRhdGVHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhIGN1ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA4ZjA1Mzc2ODM3OGViMDVjZWQzMjFmZmNmMTE5MjNiNTll
ZWZjMzJiLi4zOGE1M2EwY2JjZmY4OWQ0NWViY2Q0MWU3ZTZjMzU4M2JkMjdkM2FhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0xNDQsNyArMTQ0LDYgQEAgdm9pZCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGEKIAogc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW1vdGVNZWRpYVBsYXllcihNZWRp
YVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIGlkID0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKIAogICAgIFJlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uIHByb3h5Q29uZmlndXJhdGlvbjsKICAgICBwcm94eUNvbmZpZ3Vy
YXRpb24ucmVmZXJyZXIgPSBwbGF5ZXItPnJlZmVycmVyKCk7CkBAIC0xNTksMTUgKzE1OCwxOSBA
QCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6OmNyZWF0ZVJlbQogICAgIHByb3h5Q29uZmlndXJhdGlvbi5zaG91bGRV
c2VQZXJzaXN0ZW50Q2FjaGUgPSBwbGF5ZXItPnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpOwog
ICAgIHByb3h5Q29uZmlndXJhdGlvbi5pc1ZpZGVvID0gcGxheWVyLT5pc1ZpZGVvUGxheWVyKCk7
CiAKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOwogICAgIFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5
ZXJDb25maWd1cmF0aW9uOwotICAgIGJvb2wgc2VuZFN1Y2NlZWRlZCA9IGdwdVByb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXIoaWQsIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXI6OlJlcGx5KHBsYXllckNvbmZpZ3VyYXRpb24pLCAw
KTsKLSAgICBpZiAoIXNlbmRTdWNjZWVkZWQpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJGYWls
ZWQgdG8gY3JlYXRlIHJlbW90ZSBtZWRpYSBwbGF5ZXIuIik7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KKyAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpD
cmVhdGVNZWRpYVBsYXllcihpZGVudGlmaWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwcm94
eUNvbmZpZ3VyYXRpb24pLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgaWRl
bnRpZmllcl0oYXV0byYmIHBsYXllckNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgaWYgKCF3ZWFr
VGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoY29uc3QgYXV0byYgcGxh
eWVyID0gbV9wbGF5ZXJzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgICAgIHBsYXllci0+c2V0
Q29uZmlndXJhdGlvbihXVEZNb3ZlKHBsYXllckNvbmZpZ3VyYXRpb24pKTsKKyAgICB9LCAwKTsK
KworICAgIGF1dG8gcmVtb3RlUGxheWVyID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjcmVh
dGUocGxheWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBpZGVudGlmaWVyLCAqdGhpcyk7Cisg
ICAgbV9wbGF5ZXJzLmFkZChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cigqcmVtb3RlUGxheWVyKSk7
CiAKLSAgICBhdXRvIHJlbW90ZVBsYXllciA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y3Jl
YXRlKHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWQsICp0aGlzLCBwbGF5ZXJDb25m
aWd1cmF0aW9uKTsKLSAgICBtX3BsYXllcnMuYWRkKGlkLCBtYWtlV2Vha1B0cigqcmVtb3RlUGxh
eWVyKSk7CiAgICAgcmV0dXJuIHJlbW90ZVBsYXllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmgKaW5kZXggYjI2NmIzOTg0YzM4MGNkMzY0ODIyMTQzNWQzZjg0ZmUxYjVhYTc3NS4uMzIw
ZWMzMDE4OWQ2ZmM1NjJmMmFlYmZmNTFjOTBmNzRlZGY4ZGEwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5oCkBAIC01MSw3ICs1MSw4IEBAIGNsYXNzIFdlYlByb2Nlc3M7CiBzdHJ1Y3QgVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyCi0gICAgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQgeworICAgIDogcHVibGlj
IFdlYlByb2Nlc3NTdXBwbGVtZW50CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyKFdlYlByb2Nlc3MmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Rl
eHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDVjNzg3NjRlMGMxNzQxMGNiMjM3NjhhNDUx
NWJkNDIwNDU4MzQzZjEuLjZhNjYyMmEzOTU0OTkwMDcxMDZiZDQ5MDk3MTEwNWQ1OGI4M2E5NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcApAQCAtODgsNjYgKzg4LDcyIEBAIHZvaWQgVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihUZXh0VHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhCiAgICAgbV9pc0RlZmF1bHQgPSBjb25maWd1cmF0aW9uLmlzRGVmYXVs
dDsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWdu
ZWQpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1
ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLSNpZiBFTkFCTEUoREFUQUNV
RV9WQUxVRSkKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWU+JiYsIGNvbnN0IFN0cmluZyYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1v
dGU6OnVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShj
b25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZSYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZUdlbmVy
aWNDdWUoR2VuZXJpY0N1ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZv
aWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUm
IHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYp
CisKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0
cmluZyYmIGhlYWRlcikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGll
bnQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICBj
bGllbnQtPnBhcnNlV2ViVlRURmlsZUhlYWRlcihXVEZNb3ZlKGhlYWRlcikpOwogfQogCi0jZW5k
aWYKLQotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGRHZW5lcmljQ3VlKEdlbmVyaWND
dWVEYXRhJikKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRh
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNs
aWVudCgpKQorICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0YShyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKIH0KIAotdm9pZCBU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikK
K3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KElT
T1dlYlZUVEN1ZSYmIGN1ZURhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NF
UlQoY2xpZW50KCkpOworICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKKyAg
ICAgICAgY2xpZW50LT5wYXJzZVdlYlZUVEN1ZURhdGEoV1RGTW92ZShjdWVEYXRhKSk7CiB9CiAK
LXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3Vl
RGF0YSYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWUoTWVkaWFUaW1l
JiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSkKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYgKGF1
dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICBjbGllbnQtPmFkZERhdGFDdWUo
V1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7CiB9CiAKLQotdm9pZCBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQorI2lmIEVO
QUJMRShEQVRBQ1VFX1ZBTFVFKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRh
Q3VlV2l0aFR5cGUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YVZhbHVlLCBTdHJpbmcmJiB0eXBlKQogewogICAg
IEFTU0VSVChjbGllbnQoKSk7CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgp
KQotICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRURmlsZUhlYWRlcihXVEZNb3ZlKGhlYWRlcikp
OworICAgICAgICBjbGllbnQtPmFkZERhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5k
KSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUoZGF0YVZhbHVlKSks
IHR5cGUpOwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3Vl
RGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit2b2lkIFRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnVwZGF0ZURhdGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVu
ZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YVZhbHVlKQogewogICAgIEFT
U0VSVChjbGllbnQoKSk7CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQot
ICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKKyAgICAgICAgY2xpZW50LT51cGRh
dGVEYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKIH0KIAotdm9pZCBUZXh0VHJh
Y2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoSVNPV2ViVlRUQ3VlJiYg
Y3VlRGF0YSkKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShNZWRp
YVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
VmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0
byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRD
dWVEYXRhKFdURk1vdmUoY3VlRGF0YSkpOworICAgICAgICBjbGllbnQtPnJlbW92ZURhdGFDdWUo
V1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6
Y3JlYXRlKFdURk1vdmUoZGF0YVZhbHVlKSkpOwogfQotCisjZW5kaWYKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgKaW5kZXggNmFjOWM2OWQwMTkyMGQ5Yzk0
MTMyYjg4M2U1NmY2NWJkOGVjM2NjYy4uN2I3ZjcwM2NiNDk3ZGVkZWEzOTFkYjU5Y2M5MmJlY2Ux
NWE1OTJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9U
ZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgKQEAgLTMyLDYgKzMyLDExIEBACiAjaW5j
bHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBH
ZW5lcmljQ3VlRGF0YTsKK2NsYXNzIElTT1dlYlZUVEN1ZTsKK30KKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKQEAgLTQ0LDIxICs0OSwyMSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja1ByaXZhdGVS
ZW1vdGUocGxheWVyLCBpZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiAgICAg
fQogCi0gICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpOworICAgIHZvaWQgYWRkRGF0YUN1
ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2Um
Jik7CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2b2lkIGFkZERhdGFDdWUoY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlPiYmLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHVwZGF0ZURhdGFD
dWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmKTsKLSAgICB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFU
aW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWUmKTsKKyAgICB2b2lkIGFkZERhdGFDdWVXaXRoVHlwZShNZWRpYVRpbWUmJiBzdGFydCwgTWVk
aWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiwgU3RyaW5nJiYp
OworICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYg
ZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJik7CisgICAgdm9pZCByZW1vdmVE
YXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVWYWx1ZSYmKTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEdl
bmVyaWNDdWVEYXRhJik7Ci0gICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRh
Jik7Ci0gICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9p
ZCBhZGRHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9pZCB1cGRh
dGVHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9pZCByZW1vdmVH
ZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhJik7CiAKICAgICB2b2lkIHBhcnNlV2Vi
VlRURmlsZUhlYWRlcihTdHJpbmcmJik7CiAgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1
Y3QoSVNPV2ViVlRUQ3VlJiYpOworICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFdl
YkNvcmU6OklTT1dlYlZUVEN1ZSYmKTsKIAogICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDViMzJlOWQz
MDk5NDZjNWViYjU5YmMyOGMyMzU1NjhiNDJkMTI2MTUuLjU2NTllMDk1MGEzMzM3ZTAwM2E2MWFl
ZTI2NTViYWQ0ZGFjZDJkNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMi0xOSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGlu
LWJhbmQgbWV0YWRhdGEgY3VlcyB3aGVuIGxvYWRpbmcgbWVkaWEgaW4gdGhlIEdQVSBQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc5MDQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5NTYxNjQ3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAyMC0wMi0xOSAgSmFzb24gTGF3cmVuY2UgIDxsYXdyZW5jZS5qQGFwcGxlLmNvbT4K
IAogICAgICAgICBbIE1hYyB3azIgXSBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2hhci9o
YXItcGFnZS5odG1sIGlzIGZsYWt5IGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2dw
dS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGIyNDAyYjk0OWE5ZjdjNzYxYzk3ZDlkMjJmYjZjMTI1NDE4YzRh
OTQuLjkxM2E1ZDQ0ODQyZmFiOWNlNDczNGJkZGYzN2M0ZWFlNWQyMDc1ZTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjI5LDYgKzIyOSw4IEBAIG1lZGlh
L3RyYWNrL3RyYWNrLWluLWJhbmQuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9tZWRpYS90cmFj
ay90cmFjay13ZWJ2dHQtc2xvdy1sb2FkaW5nLmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvbWVk
aWEvdHJhY2svdHJhY2std2VidnR0LXNsb3ctbG9hZGluZy0yLmh0bWwgWyBQYXNzIF0KIGh0dHAv
dGVzdHMvbWVkaWEvaGxzL2hscy13ZWJ2dHQtdHJhY2tzLmh0bWwgWyBQYXNzIF0KK2h0dHAvdGVz
dHMvbWVkaWEvdHJhY2staW4tYmFuZC1obHMtbWV0YWRhdGEuaHRtbCBbIFBhc3MgXQoraHR0cC90
ZXN0cy9tZWRpYS90cmFjay1pbi1iYW5kLWhscy1tZXRhZGF0YS1jcmFzaC5odG1sIFsgUGFzcyBd
CiAKIGFjY2Vzc2liaWxpdHkvbWVkaWEtZWxlbWVudC5odG1sIFsgU2tpcCBdCiBmYXN0L2Jsb2Nr
L2Zsb2F0L2xpc3QtbWFya2VyLWlzLWZsb2F0LWNyYXNoLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391292</attachid>
            <date>2020-02-20 08:55:58 -0800</date>
            <delta_ts>2020-02-20 10:17:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207904-20200220085557.patch</filename>
            <type>text/plain</type>
            <size>63929</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2OTE0OWIwYzQxZDFk
NjllMTU5MWNkNTdlNGJkNDU0NTBjMDY3Zi4uNzk5Yzk5ZjhmZTljODhlMWVhYTRiZTBhMTIzYTUx
ZTFkOWQ5NTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTE5ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgaW4t
YmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0
YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4
dFRyYWNrOjpmaW5kSW5jb21wbGV0ZUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFU
ZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRl
eHRUcmFjazo6cmVtb3ZlQ3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0
VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vlc0ludGVybmFsIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpkZXNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpkYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmlzRXF1YWwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6cGxhdGZvcm1UeXBlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmVuY29kaW5nUmVxdWlyZXNQ
bGF0Zm9ybURhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6ZW5jb2RhYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFE
aWRBcnJpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2Vk
Q2xhc3Nlc0Zvck5hdGl2ZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUpOiBEZWxldGVkLgorCiAyMDIwLTAyLTE5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUGxh
dGZvcm1NZWRpYVNlc3Npb246OmNoYXJhY3RlcmlzdGljcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzMjc5NTY3
MjdkNmRlYzhmZjljN2Q4OTY4Y2VlYmEwMTA5ZWYzYjEuLmQxY2E2ZDQzMWY1ZGZhN2QwNzc0MTEy
ZDEzNjVhMmY5ZGQwYTY1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDItMTkg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9y
dCBpbi1iYW5kIG1ldGFkYXRhIGN1ZXMgd2hlbiBsb2FkaW5nIG1lZGlhIGluIHRoZSBHUFUgUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3
OTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTU2MTY0Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4
dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpl
bmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3Rl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjphZGRHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViS2l0OjpU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKToKKyAg
ICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1
ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFD
dWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaDoKKwogMjAyMC0wMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBmYXN0L2RvbS9mb2N1cy1zaGlmdC1jcmFzaC5odG1sIGFuZCBl
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tY2hhbmdlLWluLWRpc2Nvbm5lY3RlZC1mcmFtZS1j
cmFzaC5odG1sIGNyYXNoIGFmdGVyIHIyNTY4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDc0MWNm
MjcyZGFhMTk4Yjg3Njc4OGJhNWY4YWMyYzc1MzFjM2YxYWEuLmFkNGY3MWQ3YzRiNDk2OTEwMzIx
NjMzY2FhZmMzOGQ2MGY2MmNmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtOTk4LDYgKzk5OCw3
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9T
Y3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oCiAgICAgcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgK
ICAgICBwbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgKKyAgICBwbGF0Zm9ybS9T
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaAogICAgIHBsYXRmb3JtL1NoYXJlZEJ1ZmZl
ci5oCiAgICAgcGxhdGZvcm0vU2hhcmVkU3RyaW5nSGFzaC5oCiAgICAgcGxhdGZvcm0vU3VkZGVu
VGVybWluYXRpb24uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAyNDgwZjJhM2YyMmVlMGQzNzRhYzk4ODA2
MDYyMmYxYWRmMmU3MjVjLi40NGJjYTIwYjdmZTU2Njg1NzFlZTgyOGY5NzQ1ZDUwZTFmNmRlOTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtMTc2NCw2ICsxNzY0LDcgQEAgcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVt
ZS5jcHAKIHBsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmNwcAorcGxhdGZvcm0vU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKIHBs
YXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmNwcAogcGxhdGZvcm0vU2hhcmVkU3RyaW5n
SGFzaC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA3OGM4MzdhOGM4NDk1ZmQxM2JjOWM3MWFmZWZmZmYxY2NlZTY2MGYzLi40
ZDBjMTUxNTA1MTZiZmY0MTFhNjFmOWQzNzliMDAxNWQ0NzI1MWU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzUsMTAgKzEz
NSwxMSBAQAogCQkwNzYzOEE5QTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdl
cklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICovOyB9
OwogCQkwNzY5NzA4NjE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzY5NzA4NDE0NjNBRDg3
MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi87IH07CiAJCTA3Njk3MDg3MTQ2M0FEODcw
MEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzY5NzA4NTE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlz
dC5oICovOyB9OworCQkwNzZEMUMxRjIzRjZFQjVCMDBEOTVCMDYgLyogU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzZEMUMxRDIzRjZEOUQ4MDBEOTVCMDYgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDc2RjBEMEUxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oICovOyB9OwogCQkwNzc2NjRGRDE4M0U2QjVDMDAxMzNCOTIgLyogSlNRdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDc3NjY0RkIxODNFNkI1QzAwMTMzQjkyIC8qIEpTUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnQuaCAqLzsgfTsKIAkJMDc3QUYxNDAxOEY0QUU0MDAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3N0FGMTNFMThGNEFFNDAwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
MDc3QUYxNDMxOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0FGMTQx
MThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmggKi87IH07
CisJCTA3N0FGMTQzMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdB
RjE0MTE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3N0I2NDEz
MUI5NEYxMkUwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QjY0MTExQjk0RjEy
RTAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc3QjY0MTcxQjk1RjcwMzAw
M0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdCNjQxNTFCOTVGNzAzMDAzRTlBRDUgLyogTWVk
aWFQbGF5YmFja1RhcmdldE1vY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNzgzMjI4NTE4MDEzRUQ4MDA5OTlFMEMgLyogTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDc4MzIyODMxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCAq
LzsgfTsKQEAgLTU0NzMsNiArNTQ3NCw3IEBACiAJCTA3NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAv
KiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFRyYWNrTGlzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg1MTQ2M0FEODcwMEY1MDJDRiAv
KiBUZXh0VHJhY2tMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRU
cmFja0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2RDFDMUQyM0Y2RDlE
ODAwRDk1QjA2IC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc2RTExQkUxRjY4M0UwRDAwMTc3Mzk1IC8qIFRyYWNrUHJpdmF0ZUJhc2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHJhY2tQcml2YXRlQmFz
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkYwRDA5MTJCODE5MjcwMEMy
NkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU0OTAsNiArNTQ5Miw3IEBACiAJCTA3ODQ2MzQwMTQ1QjE1
MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNUcmFja0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDc4NDYzNDExNDVCMTUxQTAwQTU4REYxIC8qIEpTVHJhY2tFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RyYWNrRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc4NDYzODQxNDVCMUI4RTAwQTU4REYxIC8qIEpTVHJhY2tDdXN0b20uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUcmFja0N1c3RvbS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwNzg2MzNENzIzRkUwOTY0MDA4N0FFMjEgLyogU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4N0M0Njcx
QkZCREY2RjAwNkRDRDdGIC8qIEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFUcmFja1N1cHBvcnRl
ZENvbnN0cmFpbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4N0M0Njgx
QkZCREY2RjAwNkRDRDdGIC8qIEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0
cmFpbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3OEUwOTQ4MTdEMTcwOTYw
MDQyMEFBMSAvKiBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjU5OTQsNyArMjU5OTcsOSBA
QAogCQkJCUJDMjQ0MUMzMEU4QjY1RDAwMDU1MzIwRiAvKiBTY3JvbGxWaWV3LmNwcCAqLywKIAkJ
CQlCQzZENkUyNTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovLAogCQkJCUFCNzE3
MDg4MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCAqLywKKwkJCQkwNzg2MzNE
NzIzRkUwOTY0MDA4N0FFMjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAgKi8sCiAJ
CQkJMDc3QUYxM0UxOEY0QUU0MDAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUu
aCAqLywKKwkJCQkwNzZEMUMxRDIzRjZEOUQ4MDBEOTVCMDYgLyogU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZVZhbHVlLmggKi8sCiAJCQkJMUE0QTk1NEIwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJl
ZEJ1ZmZlci5jcHAgKi8sCiAJCQkJMUE0QTk1NEMwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJlZEJ1
ZmZlci5oICovLAogCQkJCTgzNERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdI
YXNoLmNwcCAqLywKQEAgLTMyMjU0LDYgKzMyMjU5LDcgQEAKIAkJCQlFMThERjMzNTE4QUFGMTJD
MDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3N0FGMTQwMThGNEFFNDAwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwNzdBRjE0MzE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc2RDFDMUYyM0Y2RUI1
QjAwRDk1QjA2IC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTc1RTQ5NzYxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2RjdGNkQxQzMxRTM5QTAwRjExMURDIC8qIFNlcnZl
ck9wZW5EQlJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEOTNBRUUzMTlERjU2NDEwMDJB
ODZDMyAvKiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDA0MDAxYjRiYTllZGZhZWJm
ZWFmMWYyN2NmYTBmY2U0NDdjMTFkODguLjBlODY4YTBiYWU3YmQyMjgyNGFkY2I0NGViNjhhZTE3
OWJjOTFjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAt
MTMzMiw3ICsxMzMyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3RNZWRpYVJlc291
cmNlKCkKICAgICAgICAgICAgIG1vZGUgPSBBdHRyaWJ1dGU7CiAgICAgICAgICAgICBBU1NFUlQo
bV9wbGF5ZXIpOwogICAgICAgICAgICAgaWYgKCFtX3BsYXllcikgewotICAgICAgICAgICAgICAg
IEVSUk9SX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgIiBoYXMgc3JjQXR0ciBidXQgbV9wbGF5ZXIg
aXMgbm90IGNyZWF0ZWQiKTsKKyAgICAgICAgICAgICAgICBFUlJPUl9MT0cobG9nU2l0ZUlkZW50
aWZpZXIsICJoYXMgc3JjQXR0ciBidXQgbV9wbGF5ZXIgaXMgbm90IGNyZWF0ZWQiKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoYXV0
byBmaXJzdFNvdXJjZSA9IGNoaWxkcmVuT2ZUeXBlPEhUTUxTb3VyY2VFbGVtZW50PigqdGhpcyku
Zmlyc3QoKSkgewpAQCAtMzQ3MywxMSArMzQ3MywxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICBpZiAoIXN1Y2Nl
c3MpIHsKICAgICAgICAgaWYgKHN1Y2Nlc3MudmFsdWUoKSA9PSBNZWRpYVBsYXliYWNrRGVuaWFs
UmVhc29uOjpVc2VyR2VzdHVyZVJlcXVpcmVkKQogICAgICAgICAgICAgc2V0QXV0b3BsYXlFdmVu
dFBsYXliYWNrU3RhdGUoQXV0b3BsYXlFdmVudFBsYXliYWNrU3RhdGU6OlByZXZlbnRlZEF1dG9w
bGF5KTsKKyAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJyZWplY3RpbmcgcHJvbWlz
ZTogIiwgc3VjY2Vzcy52YWx1ZSgpKTsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoTm90QWxsb3dl
ZEVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtX2Vycm9yICYmIG1f
ZXJyb3ItPmNvZGUoKSA9PSBNZWRpYUVycm9yOjpNRURJQV9FUlJfU1JDX05PVF9TVVBQT1JURUQp
IHsKKyAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJyZWplY3RpbmcgcHJvbWlzZSBi
ZWNhdXNlIG9mIGVycm9yIik7CiAgICAgICAgIHByb21pc2UucmVqZWN0KE5vdFN1cHBvcnRlZEVy
cm9yLCAiVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMzQ5NSw2ICszNDk3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5
KCkKIAogICAgIGF1dG8gc3VjY2VzcyA9IG1fbWVkaWFTZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRl
ZCgpOwogICAgIGlmICghc3VjY2VzcykgeworICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklF
UiwgInBsYXliYWNrIG5vdCBwZXJtaXR0ZWQ6ICIsIHN1Y2Nlc3MudmFsdWUoKSk7CiAgICAgICAg
IGlmIChzdWNjZXNzLnZhbHVlKCkgPT0gTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNlckdl
c3R1cmVSZXF1aXJlZCkKICAgICAgICAgICAgIHNldEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
KEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlOjpQcmV2ZW50ZWRBdXRvcGxheSk7CiAgICAgICAg
IHJldHVybjsKQEAgLTUwOTQsNyArNTA5Nyw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2No
ZWR1bGVNZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhRW5naW5lV2FzVXBkYXRlZCgpCiB7Ci0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7Cisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKwogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlh
UGxheWVyQ2FsbGJhY2soKTsKICAgICB1cGRhdGVSZW5kZXJlcigpOwogICAgIGVuZFByb2Nlc3Np
bmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CkBAIC01MTI5LDcgKzUxMzMsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhRW5naW5lV2FzVXBkYXRlZCgpCiAKIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKCkKIHsKLSAgICBJTkZPX0xPRyhMT0dJREVO
VElGSUVSKTsKKyAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCBtX3BsYXllci0+ZW5naW5lRGVz
Y3JpcHRpb24oKSk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIG1fZHJvcHBlZFZp
ZGVvRnJhbWVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kRGF0YVRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERh
dGFUZXh0VHJhY2suY3BwCmluZGV4IGYwN2Y3MzhkMjgzNjFjYzRiZmQ0OTJjNjRhODRhYzliZDRj
YTY1MDQuLjBjMDRmM2MxYjVmMTcyZTcyZGNmM2ZhNWUzNWJiMGU5NzMyMDg2NTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcApAQCAt
NTksNyArNTksNyBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFkZERhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbgogCiB2b2lkIEluYmFuZERhdGFU
ZXh0VHJhY2s6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFU
aW1lJiBlbmQsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiYmIHBsYXRmb3JtVmFsdWUs
IGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLSAgICBpZiAobV9pbmNvbXBsZXRlQ3VlTWFwLmNvbnRh
aW5zKHBsYXRmb3JtVmFsdWUucHRyKCkpKQorICAgIGlmIChmaW5kSW5jb21wbGV0ZUN1ZShwbGF0
Zm9ybVZhbHVlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBjdWUgPSBEYXRhQ3VlOjpj
cmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RhcnQsIGVuZCwgcGxhdGZvcm1WYWx1
ZS5jb3B5UmVmKCksIHR5cGUpOwpAQCAtNzAsNyArNzAsNyBAQCB2b2lkIEluYmFuZERhdGFUZXh0
VHJhY2s6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbgogCiAgICAgaWYgKGVuZC5pc1Bvc2l0aXZlSW5maW5pdGUoKSAmJiBtZWRpYUVsZW1lbnQo
KSkgewogICAgICAgICBjdWUtPnNldEVuZFRpbWUobWVkaWFFbGVtZW50KCktPmR1cmF0aW9uTWVk
aWFUaW1lKCkpOwotICAgICAgICBtX2luY29tcGxldGVDdWVNYXAuYWRkKFdURk1vdmUocGxhdGZv
cm1WYWx1ZSksIGN1ZS5jb3B5UmVmKCkpOworICAgICAgICBtX2luY29tcGxldGVDdWVNYXAuYXBw
ZW5kKCZjdWUuZ2V0KCkpOwogICAgIH0KIAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsIGN1
ZS5nZXQoKSk7CkBAIC03OCw5ICs3OCwyMSBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFk
ZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbgogICAg
IGFkZEN1ZShXVEZNb3ZlKGN1ZSkpOwogfQogCitSZWZQdHI8RGF0YUN1ZT4gSW5iYW5kRGF0YVRl
eHRUcmFjazo6ZmluZEluY29tcGxldGVDdWUoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZSYgY3VlVG9GaW5kKQoreworICAgIGF1dG8gaW5kZXggPSBtX2luY29tcGxldGVDdWVNYXAuZmlu
ZE1hdGNoaW5nKFsmXShjb25zdCBhdXRvJiBjdWUpIHsKKyAgICAgICAgcmV0dXJuIGN1ZVRvRmlu
ZC5pc0VxdWFsKCpjdWUtPnBsYXRmb3JtVmFsdWUoKSk7CisgICAgfSk7CisKKyAgICBpZiAoaW5k
ZXggPT0gbm90Rm91bmQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIG1f
aW5jb21wbGV0ZUN1ZU1hcFtpbmRleF07Cit9CisKIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6
dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGlu
RW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIFJl
ZlB0cjxEYXRhQ3VlPiBjdWUgPSBtX2luY29tcGxldGVDdWVNYXAuZ2V0KCZwbGF0Zm9ybVZhbHVl
KTsKKyAgICBhdXRvIGN1ZSA9IGZpbmRJbmNvbXBsZXRlQ3VlKHBsYXRmb3JtVmFsdWUpOwogICAg
IGlmICghY3VlKQogICAgICAgICByZXR1cm47CiAKQEAgLTkwLDcgKzEwMiw3IEBAIHZvaWQgSW5i
YW5kRGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBj
b25zdCBNZWRpYVRpbWUmCiAgICAgaWYgKGVuZC5pc1Bvc2l0aXZlSW5maW5pdGUoKSAmJiBtZWRp
YUVsZW1lbnQoKSkKICAgICAgICAgZW5kID0gbWVkaWFFbGVtZW50KCktPmR1cmF0aW9uTWVkaWFU
aW1lKCk7CiAgICAgZWxzZQotICAgICAgICBtX2luY29tcGxldGVDdWVNYXAucmVtb3ZlKCZwbGF0
Zm9ybVZhbHVlKTsKKyAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZUZpcnN0KGN1ZSk7
CiAKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAid2FzIHN0YXJ0ID0gIiwgY3VlLT5zdGFy
dE1lZGlhVGltZSgpLCAiLCBlbmQgPSAiLCBjdWUtPmVuZE1lZGlhVGltZSgpLCAiLCB3aWxsIGJl
IHN0YXJ0ID0gIiwgc3RhcnQsICIsIGVuZCA9ICIsIGVuZCk7CiAKQEAgLTEwMiw4ICsxMTQsOSBA
QCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1l
JiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJgogCiB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnJl
bW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZSYgcGxhdGZvcm1WYWx1ZSkKIHsKLSAgICBpZiAoYXV0byBjdWUgPSBt
X2luY29tcGxldGVDdWVNYXAudGFrZSgmcGxhdGZvcm1WYWx1ZSkpIHsKKyAgICBpZiAoYXV0byBj
dWUgPSBmaW5kSW5jb21wbGV0ZUN1ZShwbGF0Zm9ybVZhbHVlKSkgewogICAgICAgICBJTkZPX0xP
RyhMT0dJREVOVElGSUVSLCAicmVtb3Zpbmc6ICIsICpjdWUpOworICAgICAgICBtX2luY29tcGxl
dGVDdWVNYXAucmVtb3ZlRmlyc3QoY3VlKTsKICAgICAgICAgSW5iYW5kVGV4dFRyYWNrOjpyZW1v
dmVDdWUoKmN1ZSk7CiAgICAgfQogfQpAQCAtMTEyLDcgKzEyNSw4IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEluYmFuZERhdGFUZXh0VHJhY2s6OnJlbW92ZUN1ZShUZXh0VHJhY2tDdWUmIGN1ZSkKIHsK
ICAgICBBU1NFUlQoY3VlLmN1ZVR5cGUoKSA9PSBUZXh0VHJhY2tDdWU6OkRhdGEpOwogCi0gICAg
bV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZShjb25zdF9jYXN0PFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUqPih0b0RhdGFDdWUoJmN1ZSktPnBsYXRmb3JtVmFsdWUoKSkpOworICAgIGlmIChhdXRv
IHBsYXRmb3JtVmFsdWUgPSBjb25zdF9jYXN0PFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUqPih0
b0RhdGFDdWUoJmN1ZSktPnBsYXRmb3JtVmFsdWUoKSkpCisgICAgICAgIHJlbW92ZURhdGFDdWUo
eyB9LCB7IH0sICpwbGF0Zm9ybVZhbHVlKTsKIAogICAgIHJldHVybiBJbmJhbmRUZXh0VHJhY2s6
OnJlbW92ZUN1ZShjdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9JbmJhbmREYXRhVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZERhdGFUZXh0VHJhY2suaAppbmRleCAxYThiZGY2YWU1MjI4YmVmMGNmOGQxZGFkOTVlMzU2ZjYy
OGE0NGYyLi40ZmMzMTNlYWNjNTE3NDEyMzA0Njk4ZjQyZTNjYWVlYTlkMTkzOTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaApAQCAtNTUs
NyArNTUsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZSYpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlbW92ZUN1ZShUZXh0VHJhY2tDdWUm
KSBmaW5hbDsKIAotICAgIEhhc2hNYXA8UmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+
LCBSZWZQdHI8RGF0YUN1ZT4+IG1faW5jb21wbGV0ZUN1ZU1hcDsKKyAgICBSZWZQdHI8RGF0YUN1
ZT4gZmluZEluY29tcGxldGVDdWUoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpOwor
CisgICAgVmVjdG9yPFJlZlB0cjxEYXRhQ3VlPj4gbV9pbmNvbXBsZXRlQ3VlTWFwOwogI2VuZGlm
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAppbmRleCA0N2U2ZGVlOTNk
MDY5Mjk5NzM2MDk1MWU1MTEyMzhkOWUzMDU5OGYyLi4wNzM2NTJmNDQ0NTE1ZThkOGEwY2RlZWIy
MWMwNmM0MzY3NzExMmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKQEAg
LTk2LDYgKzk2LDggQEAgcHVibGljOgogICAgIFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMoKTsKICAg
ICBUZXh0VHJhY2tDdWVMaXN0KiBhY3RpdmVDdWVzKCkgY29uc3Q7CiAKKyAgICBUZXh0VHJhY2tD
dWVMaXN0KiBjdWVzSW50ZXJuYWwoKSBjb25zdCB7IHJldHVybiBtX2N1ZXMuZ2V0KCk7IH0KKwog
ICAgIHZvaWQgY2xlYXJDbGllbnQoKSBvdmVycmlkZSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQog
ICAgIFRleHRUcmFja0NsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IGU1ZGYzYzNiNzg2
NmVhOWZkNDNkYWNjZjRhNDYyMmJkYjY0ODk0MjIuLmNiZGQ4YzAzMWRiN2NmZTBlODQ1NjExOTc2
MjY3ZjI0NTEyMjRlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1
ZS5jcHAKQEAgLTM0MSwxMSArMzQxLDExIEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjpzZXRJc0FjdGl2
ZShib29sIGFjdGl2ZSkKIAogdW5zaWduZWQgVGV4dFRyYWNrQ3VlOjpjdWVJbmRleCgpIGNvbnN0
CiB7Ci0gICAgQVNTRVJUKG1fdHJhY2sgJiYgbV90cmFjay0+Y3VlcygpKTsKLSAgICBpZiAoIW1f
dHJhY2sgfHwgIW1fdHJhY2stPmN1ZXMoKSkKKyAgICBBU1NFUlQobV90cmFjayAmJiBtX3RyYWNr
LT5jdWVzSW50ZXJuYWwoKSk7CisgICAgaWYgKCFtX3RyYWNrIHx8ICFtX3RyYWNrLT5jdWVzSW50
ZXJuYWwoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+Ojpt
YXgoKTsKIAotICAgIHJldHVybiBtX3RyYWNrLT5jdWVzKCktPmN1ZUluZGV4KCp0aGlzKTsKKyAg
ICByZXR1cm4gbV90cmFjay0+Y3Vlc0ludGVybmFsKCktPmN1ZUluZGV4KCp0aGlzKTsKIH0KIAog
Ym9vbCBUZXh0VHJhY2tDdWU6OmlzT3JkZXJlZEJlZm9yZShjb25zdCBUZXh0VHJhY2tDdWUqIG90
aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWJmYjhhNmExZTA3YzRlZmY0ZmE2ZGRk
MDllM2U3OWExZTc5ZTcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlLmgiCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShEQVRBQ1VFX1ZB
TFVFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitSZWY8
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3Jl
YXRlKFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUoKSk7Cit9CisjZW5kaWYKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaAppbmRleCA0NzRhYzFkNGY3NzY0YjVj
ZWMxM2UxN2M2ZWUxOWE4YjQyZDIwMDc3Li4wODU1MGZkZTc3MTRhMmVkNWRhMGVkYjkxNTU2N2Ey
MTM4ZjgwZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoVklERU8p
CiAKKyNpbmNsdWRlICJTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KIApAQCAtMzQsMTYgKzM1LDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWU+IHsKIHB1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IGNyZWF0ZShTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
VmFsdWUmJik7CisKICAgICB2aXJ0dWFsIH5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkgPSBk
ZWZhdWx0OwogCi0gICAgdmlydHVhbCBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpKU0ds
b2JhbE9iamVjdCopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxKU0M6OkFycmF5QnVm
ZmVyPiBkYXRhKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFsKGNvbnN0IFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBKU0M6OkpT
VmFsdWUgZGVzZXJpYWxpemUoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNvbnN0IHsgcmV0dXJuIEpT
Qzo6anNOdWxsKCk7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiBkYXRh
KCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisgICAgdmlydHVhbCBib29sIGlzRXF1YWwoY29uc3Qg
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAg
ICBlbnVtIFBsYXRmb3JtVHlwZSB7CisgICAgZW51bSBjbGFzcyBQbGF0Zm9ybVR5cGUgeworICAg
ICAgICBOb25lLAogICAgICAgICBPYmpDLAogICAgIH07Ci0gICAgdmlydHVhbCBQbGF0Zm9ybVR5
cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGxhdGZvcm1UeXBlIHBs
YXRmb3JtVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFBsYXRmb3JtVHlwZTo6Tm9uZTsgfQorCisgICAg
dmlydHVhbCBib29sIGVuY29kaW5nUmVxdWlyZXNQbGF0Zm9ybURhdGEoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorCisgICAgdmlydHVhbCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUg
ZW5jb2RhYmxlVmFsdWUoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIAogcHJvdGVjdGVkOgogICAg
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRiYzYzMzRhYmUyYjM0YzlmNGFlYjJhM2ZmY2JiZmM3OTFjMGFkZjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgIWRlZmluZWQoX19PQkpDX18pCit0eXBlZGVm
IHN0cnVjdCBvYmpjX29iamVjdCAqaWQ7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
dXNpbmcgUGxhdGZvcm1OYXRpdmVWYWx1ZSA9IGlkOworI2Vsc2UKK3VzaW5nIFBsYXRmb3JtTmF0
aXZlVmFsdWUgPSB2b2lkKjsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUpOworcHVibGljOgorICAgIGVudW0g
Y2xhc3MgUGxhdGZvcm1UeXBlIHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgT2JqQywKKyAgICB9
OworCisgICAgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKFBsYXRmb3JtVHlwZSBwbGF0
Zm9ybVR5cGUsIFBsYXRmb3JtTmF0aXZlVmFsdWUgbmF0aXZlVmFsdWUpCisgICAgICAgIDogbV9u
YXRpdmVWYWx1ZShuYXRpdmVWYWx1ZSkKKyAgICAgICAgLCBtX3R5cGUocGxhdGZvcm1UeXBlKQor
ICAgIHsKKyAgICB9CisgICAgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKCkgPSBkZWZh
dWx0OworICAgIH5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUoKSA9IGRlZmF1bHQ7CisK
KyAgICBQbGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9
CisKKyAgICBQbGF0Zm9ybU5hdGl2ZVZhbHVlIG5hdGl2ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9uYXRpdmVWYWx1ZTsgfQorCisgICAgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRh
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFBsYXRmb3JtVHlwZTo6T2JqQzsgfQorCitwcm90
ZWN0ZWQ6CisgICAgUGxhdGZvcm1OYXRpdmVWYWx1ZSBtX25hdGl2ZVZhbHVlIHsgbnVsbHB0ciB9
OworICAgIFBsYXRmb3JtVHlwZSBtX3R5cGUgeyBQbGF0Zm9ybVR5cGU6Ok5vbmUgfTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggY2E3MWU3ZTBiNTg2YzdiNTVi
MTEyNzMyYmFkNTliMDFkOGE0MTgxYi4uNTdkZmNiZjRiYzdjNDg4NDRkMzgxY2IzNWVjYzY0M2Mx
YWFiNGI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcApAQCAtMTA5LDYgKzEwOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXkoKSBm
aW5hbCB7IH0KICAgICB2b2lkIHBhdXNlKCkgZmluYWwgeyB9CiAKKyAgICBTdHJpbmcgZW5naW5l
RGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTnVsbE1lZGlhUGxheWVyIjsgfQor
CiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG51bGxwdHI7IH0KIAogICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIEZsb2F0U2l6ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuY3BwCmluZGV4IGZlMWMwNjRhZTUxMjc3MjMwOGNj
MmM0Y2IyMjQzZWI5MmU1MzE4MDAuLmI3ODY0ZjdiMzcwZTMzNTI2NzU2Y2RhNjJkNzI3YWMwN2M4
MGI2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Ry
YWNrUHJpdmF0ZUJhc2UuY3BwCkBAIC0zMyw5ICszMywxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKwogc3RhdGljIHVpbnQ2NF90IHNfdW5p
cXVlSWQgPSAwOwogCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiB2b2lkIFRyYWNrUHJpdmF0
ZUJhc2U6OnNldExvZ2dlcihjb25zdCBMb2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9nSWRl
bnRpZmllcikKIHsKICAgICBtX2xvZ2dlciA9ICZsb2dnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQppbmRleCA4MjBkYTg5YzQ2Zjg3MTUzMjk2ZTE2NzRkZjQ2YTFkNzRiZTA2ZjlhLi5iMzdjNDQx
MTMxNDk4ODc5NTQ2ZWM4YTU3YTBkZDhlMTFmNzg0Njk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KQEAgLTMwNzQsNyArMzA3NCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPE5TQXJyCiAgICAgICAg
IGlmIChpdGVtLmtleVNwYWNlKQogICAgICAgICAgICAgdHlwZSA9IG1ldGFkYXRhVHlwZShpdGVt
LmtleVNwYWNlKTsKIAotICAgICAgICBtX21ldGFkYXRhVHJhY2stPmFkZERhdGFDdWUoc3RhcnQs
IGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6Y3JlYXRlKGl0ZW0pLCB0eXBlKTsK
KyAgICAgICAgbV9tZXRhZGF0YVRyYWNrLT5hZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZSh7IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDLCBpdGVtIH0pLCB0eXBlKTsKICAgICB9CiAj
ZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oCmluZGV4IGExMGRjY2MzZTFiNWEzMGRmYmYwMTBh
NzYwNTA1MjgwNmIyMTk2ZWIuLjI2ZDg0YjlhODkyZDZhZmM4NGFlOTNlZGJiMmYwYWI0YmQwNmUz
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaApAQCAtMjksMjggKzI5LDI2IEBACiAKICNpbmNsdWRl
ICJTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgiCiAKLSNpZiBVU0UoRk9VTkRBVElPTikgJiYg
IWRlZmluZWQoX19PQkpDX18pCi10eXBlZGVmIHN0cnVjdCBvYmpjX29iamVjdCAqaWQ7Ci0jZW5k
aWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjIGZpbmFsIDogcHVibGljIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgewogcHVibGlj
OgorICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlJiYpOwogICAgIHZpcnR1YWwgflNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMo
KTsKLSAgICBzdGF0aWMgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IGNyZWF0ZShpZCk7
CiAKICAgICBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNv
bnN0IGZpbmFsOwogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0IGZpbmFsOwot
CiAgICAgYm9vbCBpc0VxdWFsKGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25z
dCBmaW5hbDsKKyAgICBQbGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gUGxhdGZvcm1UeXBlOjpPYmpDOyB9CisgICAgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxh
dGZvcm1EYXRhKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgUGxhdGZvcm1U
eXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWU6Ok9iakM7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUgZW5jb2RhYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKIAogICAgIGlkIG5hdGl2
ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVWYWx1ZS5nZXQoKTsgfQogCisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIE5TQXJyYXkqIGFsbG93ZWRDbGFzc2VzRm9yTmF0aXZlVmFsdWVz
KCk7CisKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1h
YyhpZCBuYXRpdmVWYWx1ZSk7CiAKICAgICBSZXRhaW5QdHI8aWQ+IG1fbmF0aXZlVmFsdWU7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5tbQppbmRleCBiOTQ5ZWI3Y2RkMjAwMzlmMWNmZmVmOGM0YzVi
Y2Q3YjExM2ViMTk5Li5jOTg0YTllZWE3YTk1OWI2NGFjYzdmMTJkNTE2MDcyMTM4YzdhZTI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5tbQpAQCAtNDgsMjEgKzQ4LDIzIEBAIHN0YXRpYyBKU1ZhbHVl
ICpqc1ZhbHVlV2l0aEFycmF5SW5Db250ZXh0KE5TQXJyYXkgKiwgSlNDb250ZXh0ICopOwogc3Rh
dGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29udGV4dChOU0RpY3Rpb25hcnkg
KiwgSlNDb250ZXh0ICopOwogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0
ZW1JbkNvbnRleHQoQVZNZXRhZGF0YUl0ZW0gKiwgSlNDb250ZXh0ICopOwogc3RhdGljIEpTVmFs
dWUgKmpzVmFsdWVXaXRoVmFsdWVJbkNvbnRleHQoaWQsIEpTQ29udGV4dCAqKTsKK3N0YXRpYyBO
U0RpY3Rpb25hcnkgKk5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShBVk1ldGFkYXRhSXRl
bSAqKTsKICNlbmRpZgogCi1TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlTWFjKGlkIG5hdGl2ZVZhbHVlKQotICAgIDogU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZSgpCi0gICAgLCBtX25hdGl2ZVZhbHVlKG5hdGl2ZVZhbHVlKQorUmVmPFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiB2YWx1ZSkKIHsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFdURk1vdmUodmFsdWUpKSk7
CiB9CiAKLVNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6On5TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlTWFjKCkKK1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OlNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVNYWMoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgdmFsdWUpCisg
ICAgOiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkKKyAgICAsIG1fbmF0aXZlVmFsdWUodmFs
dWUubmF0aXZlVmFsdWUoKSkKIHsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKTsKIH0KIAotUmVmPFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmNyZWF0ZShpZCBuYXRpdmVW
YWx1ZSkKK1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6On5TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlTWFjKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlTWFjKG5hdGl2ZVZhbHVlKSk7CiB9CiAKIFJlZlB0cjxBcnJheUJ1ZmZlcj4gU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6ZGF0YSgpIGNvbnN0CkBAIC04OSw3ICs5MSw3IEBA
IEpTQzo6SlNWYWx1ZSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpkZXNlcmlhbGl6ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpCiAKIGJvb2wgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZU1hYzo6aXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBvdGhlcikgY29u
c3QKIHsKLSAgICBpZiAob3RoZXIucGxhdGZvcm1UeXBlKCkgIT0gU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6T2JqQykKKyAgICBpZiAob3RoZXIucGxhdGZvcm1UeXBlKCkgIT0gUGxhdGZvcm1U
eXBlOjpPYmpDKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdCBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlTWFjKiBvdGhlck9iakMgPSB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMoJm90aGVyKTsKQEAgLTEwNywxMCArMTA5LDI0IEBAIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVNYWMqIHRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhTZXJpYWxpemVkUGxhdGZv
cm1ECiAKIGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMqIHRvU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZU1hYyhjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKiByZXApCiB7
Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihyZXAtPnBsYXRm
b3JtVHlwZSgpID09IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6Ok9iakMpOworICAgIFJFTEVB
U0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocmVwLT5wbGF0Zm9ybVR5cGUoKSA9
PSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpOwogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKj4ocmVw
KTsKIH0KIAorTlNBcnJheSogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6YWxsb3dlZENs
YXNzZXNGb3JOYXRpdmVWYWx1ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRh
aW5QdHI8TlNBcnJheT4+IGFsbG93ZWRDbGFzc2VzKEBbIFtOU1N0cmluZyBjbGFzc10sIFtOU051
bWJlciBjbGFzc10sIFtOU0xvY2FsZSBjbGFzc10sIFtOU0RpY3Rpb25hcnkgY2xhc3NdLCBbTlNB
cnJheSBjbGFzc10sIFtOU0RhdGEgY2xhc3NdIF0pOworICAgIHJldHVybiBhbGxvd2VkQ2xhc3Nl
cy5nZXQoKS5nZXQoKTsKK30KKworU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmVuY29kYWJsZVZhbHVlKCkgY29uc3QKK3sKKyAgICBp
ZiAoW21fbmF0aXZlVmFsdWUuZ2V0KCkgaXNLaW5kT2ZDbGFzczpQQUw6OmdldEFWTWV0YWRhdGFJ
dGVtQ2xhc3MoKV0pCisgICAgICAgIHJldHVybiB7IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVW
YWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDLCBOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0ZW0o
bV9uYXRpdmVWYWx1ZS5nZXQoKSkgfTsKKworICAgIHJldHVybiB7IFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDLCBtX25hdGl2ZVZhbHVlLmdldCgpIH07
Cit9CisKICNpZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVX
aXRoVmFsdWVJbkNvbnRleHQoaWQgdmFsdWUsIEpTQ29udGV4dCAqY29udGV4dCkKIHsKQEAgLTE5
Myw2ICsyMDksMTEgQEAgc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29u
dGV4dChOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnksIEpTQ29udGUKIH0KIAogc3RhdGljIEpTVmFs
dWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZNZXRhZGF0YUl0ZW0gKml0
ZW0sIEpTQ29udGV4dCAqY29udGV4dCkKK3sKKyAgICByZXR1cm4ganNWYWx1ZVdpdGhEaWN0aW9u
YXJ5SW5Db250ZXh0KE5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShpdGVtKSwgY29udGV4
dCk7Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKk5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRh
SXRlbShBVk1ldGFkYXRhSXRlbSAqaXRlbSkKIHsKICAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpk
aWN0aW9uYXJ5ID0gW05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeV07CiAKQEAgLTIzMCw3
ICsyNTEsNyBAQCBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhBVk1ldGFkYXRhSXRlbUluQ29u
dGV4dChBVk1ldGFkYXRhSXRlbSAqaXRlbSwgSlNDb250ZQogICAgIGlmIChpdGVtLnZhbHVlKQog
ICAgICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6aXRlbS52YWx1ZSBmb3JLZXk6QCJkYXRhIl07
CiAKLSAgICByZXR1cm4ganNWYWx1ZVdpdGhEaWN0aW9uYXJ5SW5Db250ZXh0KGRpY3Rpb25hcnks
IGNvbnRleHQpOworICAgIHJldHVybiBkaWN0aW9uYXJ5OwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2NGYzY2JmMjBjNTJj
MzYyMDZhYWViOWM0OTk3YTcyZjViZTQwZjg3Li40Y2JkNDYxNGI2MmI4YzNlN2Q0ZjU2Y2E5NTBj
OTQ0NzYxMjk5MzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yNCw4ICsyNCw4IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNz
YWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAg
ICBDcmVhdGVNZWRpYVBsYXllcihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9uKSAtPiAo
c3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZp
Z3VyYXRpb24pIFN5bmNocm9ub3VzCi0gICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkKQorICAgIENyZWF0ZU1lZGlhUGxheWVy
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50
OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29uZmlndXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRpb24pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKKyAg
ICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkKQogCiAgICAgR2V0U3VwcG9ydGVkVHlwZXMoZW51bTp1aW50OF90IFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVu
dGlmaWVyKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCiAgICAgU3VwcG9y
dHNUeXBlQW5kQ29kZWNzKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYkNv
cmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgdHlwZSkgLT4gKGVudW06dWludDhfdCBX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCkgU3luY2hyb25v
dXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0
VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4
dFRyYWNrUHJveHkuY3BwCmluZGV4IGI3NmRjOWIwZDQ2Zjg2Yjc3OTU3ZDNiM2I3ODU0NTljMzk0
OWIyYTYuLjMyYzliN2UxMmU1YTcyY2IwYmJiZDBhOTVlMDMxMThlMDcyNDBiYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1By
b3h5LmNwcApAQCAtOTYsMjUgKzk2LDI1IEBAIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6Omxh
bmd1YWdlQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikKICAgICBjb25maWd1cmF0aW9uQ2hhbmdl
ZCgpOwogfQogCi12b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkKK3ZvaWQg
UmVtb3RlVGV4dFRyYWNrUHJveHk6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkRGF0YUN1ZShtX2lkZW50
aWZpZXIsIHN0YXJ0LCBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3RoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CiB9
CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLXZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6
OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUmVmPFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWU+JiYsIGNvbnN0IFN0cmluZyYpCit2b2lkIFJlbW90ZVRleHRU
cmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlh
VGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4mJiBjdWVEYXRhLCBjb25z
dCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFk
ZERhdGFDdWVXaXRoVHlwZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEtPmVuY29k
YWJsZVZhbHVlKCksIHR5cGUpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwogfQogCi12b2lkIFJl
bW90ZVRleHRUcmFja1Byb3h5Ojp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0
IE1lZGlhVGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKQordm9pZCBSZW1vdGVUZXh0
VHJhY2tQcm94eTo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBN
ZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3VlRGF0YSkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6VXBkYXRlRGF0YUN1ZShtX2lkZW50aWZp
ZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fcGxheWVyLmlkZW5k
aWZpZXIoKSk7CiB9CiAKLXZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OnJlbW92ZURhdGFDdWUo
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZSYpCit2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlJiBjdWVEYXRhKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpS
ZW1vdmVEYXRhQ3VlKG1faWRlbnRpZmllciwgc3RhcnQsIGVuZCwgY3VlRGF0YS5lbmNvZGFibGVW
YWx1ZSgpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAxYzAwYmRhNTNm
NWI2YjQzNGVhNzE5NzlmNGU2MzIxMzgxZGE1NzJjLi44YzlmYTIxYWYzOGE3MTYyYzZjMjA5ZTkz
OTQ2ODkwNmEyNWMzY2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKQEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlYXJj
aFBvcHVwTWVudS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJEYXRh
Lmg+CkBAIC0zMTc0LDQgKzMxNzUsMzIgQEAgT3B0aW9uYWw8U2VyaWFsaXplZEF0dGFjaG1lbnRE
YXRhPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGEKIAogI2Vu
ZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKKyNpZiBFTkFCTEUoVklERU8pCit2
b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZSYgdmFsdWUpCit7CisgICAgYm9vbCBoYXNQbGF0Zm9ybURhdGEgPSB2YWx1ZS5lbmNv
ZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKCk7CisgICAgZW5jb2RlciA8PCBoYXNQbGF0Zm9ybURh
dGE7CisKKyAgICBlbmNvZGVyLmVuY29kZUVudW0odmFsdWUucGxhdGZvcm1UeXBlKCkpOworICAg
IGlmIChoYXNQbGF0Zm9ybURhdGEpCisgICAgICAgIGVuY29kZVBsYXRmb3JtRGF0YShlbmNvZGVy
LCB2YWx1ZSk7Cit9CisKK09wdGlvbmFsPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4g
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGJvb2wgaGFzUGxhdGZvcm1EYXRh
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzUGxhdGZvcm1EYXRhKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZTo6UGxhdGZvcm1UeXBlIHR5cGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0o
dHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoaGFzUGxhdGZv
cm1EYXRhKQorICAgICAgICByZXR1cm4gZGVjb2RlUGxhdGZvcm1EYXRhKGRlY29kZXIsIHR5cGUp
OworCisgICAgcmV0dXJuIHt7IH19OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIElQQwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA3YmY3
MWMxN2FiZGQzZDhiMTMxOTAyMjAwNThjOWY5YzIxOWY2MGIzLi5lMzgxNGUyMWY4MzM2YWFmMmY0
NDQzMjMyZTM0NGUwMDc0ZGFlMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90
aWZpY2F0aW9uRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRD
cmVkZW50aWFsc1BvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyVHlwZS5oPgpAQCAt
ODE5LDYgKzgyMCwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YT4gewogCiAjZW5kaWYgLy8gRU5BQkxFKEFUVEFDSE1F
TlRfRUxFTUVOVCkKIAorI2lmIEVOQUJMRShWSURFTykKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiB7CisgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlVmFsdWUmKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHN0YXRpYyB2
b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXIm
LCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZSk7
Cit9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIElQQwogCiBuYW1lc3BhY2UgV1RGIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCmluZGV4IGVlMjIyNDIzZjA0N2M5YmYwOTM2MzlkODEyYjE4MmQ4MzYxODBlZmUuLjhkYTdj
MTk4Nzc5MmI4Nzc0OWE2ZWFkN2U5OTNmOTZjN2UxODFlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAtMzcsNiAr
MzcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3Qu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oPgogI2lt
cG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJp
Z2h0Lmg+CiAKQEAgLTY2OSw0ICs2NzAsMjcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY28KIAog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU8pCit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1
ZSYgdmFsdWUpCit7CisgICAgQVNTRVJUKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKTsKKyAg
ICBpZiAodmFsdWUucGxhdGZvcm1UeXBlKCkgPT0gV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpCisgICAgICAgIGVuY29kZU9iamVjdChl
bmNvZGVyLCB2YWx1ZS5uYXRpdmVWYWx1ZSgpKTsKK30KKworT3B0aW9uYWw8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiAgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYg
ZGVjb2RlciwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9y
bVR5cGUgcGxhdGZvcm1UeXBlKQoreworICAgIEFTU0VSVChwbGF0Zm9ybVR5cGUgPT0gV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpOwor
CisgICAgaWYgKHBsYXRmb3JtVHlwZSAhPSBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIGF1dG8gb2JqZWN0ID0gZGVjb2RlT2JqZWN0KGRlY29kZXIsIFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmFsbG93ZWRDbGFzc2VzRm9yTmF0aXZlVmFsdWVz
KCkpOworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgcmV0dXJuIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSB7IHBsYXRm
b3JtVHlwZSwgb2JqZWN0LnZhbHVlKCkuZ2V0KCkgfTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5ZGMwZWJiNjA2NjQ4
OTdmODJkYjdlMDUxODA4ZjBlNDg5ZGM1Mjc5Li5hNjBiYjRmOWNkMjMxZDkxOTAzODI0MjE0MmUz
YjBlZTk4ZTM3YmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC02NywxMyAr
NjcsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9IHdoaWxlICgwKQogI2VuZGlmCiAK
LU1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlh
UGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBl
bmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBsYXll
cklkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlciwgY29uc3QgUmVt
b3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXll
ciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZp
ZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyKQogICAgIDogbV9wbGF5ZXIocGxheWVy
KQogICAgICwgbV9tZWRpYVJlc291cmNlTG9hZGVyKHBsYXllci0+Y3JlYXRlUmVzb3VyY2VMb2Fk
ZXIoKSkKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogICAgICwgbV9yZW1vdGVFbmdpbmVJZGVu
dGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCiAgICAgLCBtX2lkKHBsYXllcklkZW50aWZpZXIpCi0g
ICAgLCBtX2NvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbikKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKICAgICAsIG1fbG9nZ2VyKCZwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2VyKCkpCiAgICAg
LCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKQEAg
LTgyLDYgKzgxLDEyIEBAIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxhCiAgICAgSU5GT19MT0coTE9H
SURFTlRJRklFUik7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRDb25m
aWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24p
Cit7CisgICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKKyAgICBt
X3BsYXllci0+bWVkaWFFbmdpbmVVcGRhdGVkKCk7Cit9CisKIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpCiB7CiAgICAgSU5GT19MT0coTE9HSURF
TlRJRklFUik7CkBAIC00ODQsNiArNDg5LDQwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpCiAg
ICAgICAgIHRyYWNrLT5wYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoV1RGTW92ZShkYXRhKSk7CiB9
CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGlt
ZSYmIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSkKK3sKKyAgICBBU1NFUlQobV90ZXh0
VHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKworICAgIGlmIChjb25zdCBhdXRvJiB0cmFj
ayA9IG1fdGV4dFRyYWNrcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHRyYWNrLT5hZGREYXRh
Q3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdURk1vdmUoZGF0YSkpOworfQorCisj
aWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
YWRkRGF0YUN1ZVdpdGhUeXBlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZVZhbHVlJiYgZGF0YSwgU3RyaW5nJiYgdHlwZSkKK3sKKyAgICBBU1NFUlQobV90ZXh0
VHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKworICAgIGlmIChjb25zdCBhdXRvJiB0cmFj
ayA9IG1fdGV4dFRyYWNrcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHRyYWNrLT5hZGREYXRh
Q3VlV2l0aFR5cGUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgV1RGTW92ZShkYXRhKSwg
V1RGTW92ZSh0eXBlKSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp1cGRh
dGVEYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgTWVkaWFU
aW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZh
bHVlJiYgZGF0YSkKK3sKKyAgICBBU1NFUlQobV90ZXh0VHJhY2tzLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKKworICAgIGlmIChjb25zdCBhdXRvJiB0cmFjayA9IG1fdGV4dFRyYWNrcy5nZXQoaWRl
bnRpZmllcikpCisgICAgICAgIHRyYWNrLT51cGRhdGVEYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBX
VEZNb3ZlKGVuZCksIFdURk1vdmUoZGF0YSkpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGEpCit7CisgICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250
YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAoY29uc3QgYXV0byYgdHJhY2sgPSBtX3RleHRU
cmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICB0cmFjay0+cmVtb3ZlRGF0YUN1ZShXVEZN
b3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXVEZNb3ZlKGRhdGEpKTsKK30KKyNlbmRpZgorCiB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayhUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV92aWRl
b1RyYWNrcy5lbnN1cmUoaWRlbnRpZmllciwgWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5o
CmluZGV4IDdmNzM5MDQxOTM3ZTExZjRhZDAyNWExODMwZTVjZjNjODk1MDBkYTguLjhiMGNlMzlj
NTAzMzVmNjI0MWMwZTkyODRmZjkzMDE0ZGUxMGJlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaApAQCAtNDAsMTIgKzQwLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElT
T1dlYlZUVEN1ZTsKK2NsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOwogY2xh
c3MgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTsKK2NsYXNzIFVzZXJEYXRhOwogY2xhc3MgVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGU7CiBzdHJ1Y3QgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb247CiBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKQEAgLTU5LDE0
ICs2MSwxNiBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgZmluYWwKICNlbmRpZgog
ewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlPiBjcmVhdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIHBsYXllciwgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZp
Z3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU+IGNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVy
LCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3Rl
RW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIpCiAgICAgewotICAgICAg
ICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+KHBsYXllciwgcmVt
b3RlRW5naW5lSWRlbnRpZmllciwgaWRlbnRpZmllciwgbWFuYWdlciwgY29uZmlndXJhdGlvbik7
CisgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4ocGxh
eWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBpZGVudGlmaWVyLCBtYW5hZ2VyKTsKICAgICB9
CiAKLSAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYsIGNv
bnN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpOworICAgIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZShXZWJDb3JlOjpNZWRpYVBsYXllciosIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJik7CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZSgpOwogCisgICAgdm9pZCBzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVy
Q29uZmlndXJhdGlvbiYmKTsKKwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKSB7
IG1faW52YWxpZCA9IHRydWU7IH0KQEAgLTEwNCw2ICsxMDgsMTMgQEAgcHVibGljOgogICAgIHZv
aWQgcGFyc2VXZWJWVFRDdWVEYXRhKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIElQQzo6
RGF0YVJlZmVyZW5jZSYmKTsKICAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJDb3JlOjpJU09XZWJWVFRDdWUmJik7CiAKKyAg
ICB2b2lkIGFkZERhdGFDdWUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgTWVkaWFUaW1l
JiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlJiYpOworI2lmIEVO
QUJMRShEQVRBQ1VFX1ZBTFVFKQorICAgIHZvaWQgYWRkRGF0YUN1ZVdpdGhUeXBlKFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQs
IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmLCBTdHJpbmcmJik7Cisg
ICAgdm9pZCB1cGRhdGVEYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlh
VGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZSYmKTsKKyAgICB2b2lkIHJlbW92ZURhdGFDdWUoVHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOworI2VuZGlmCisKICAgICB2b2lk
IHJlcXVlc3RSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6
TG9hZE9wdGlvbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW1v
dmVSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCByZXNv
dXJjZU5vdFN1cHBvcnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNz
YWdlcy5pbgppbmRleCBjNDA0ZGM2NzQwNzM3YTM2OGQ0ZmE2OTQyYThlOTYwOTc3ODQ2MDdiLi5l
ODg5N2I2YTEwYTEwZDRiNzAwOTI5OGM3YWEyNzI4YmZlMTEyOTdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpAQCAtNTAsMTAgKzUwLDEyIEBAIG1lc3Nh
Z2VzIC0+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBOb3RSZWZDb3VudGVkIHsKICAgICBQYXJz
ZVdlYlZUVEN1ZURhdGEoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNr
SUQsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIFBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVj
dChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgV2ViQ29yZTo6
SVNPV2ViVlRUQ3VlIGN1ZURhdGEpCiAKLSAgICAjIyBBZGREYXRhQ3VlKE1lZGlhVGltZSBzdGFy
dCwgTWVkaWFUaW1lIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCi0gICAgIyMgQWRkRGF0
YUN1ZShNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWUgZGF0YSwgU3RyaW5nIHR5cGUpCi0gICAgIyMgVXBkYXRlRGF0YUN1ZShN
ZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWUgZGF0YSkKLSAgICAjIyBSZW1vdmVEYXRhQ3VlKE1lZGlhVGltZSBzdGFydCwgTWVk
aWFUaW1lIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSBkYXRhKQorICAg
IEFkZERhdGFDdWUoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQs
IE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEp
CisjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCisgICAgQWRkRGF0YUN1ZVdpdGhUeXBlKFdlYktp
dDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQs
IE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBj
dWVEYXRhLCBTdHJpbmcgdHlwZSkKKyAgICBVcGRhdGVEYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBl
bmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBjdWVEYXRhKQorICAg
IFJlbW92ZURhdGFDdWUoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNr
SUQsIE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZVZhbHVlIGN1ZURhdGEpCisjZW5kaWYKIAogICAgICMjIEFkZEdlbmVyaWND
dWUoV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEgY3VlKQogICAgICMjIFVwZGF0ZUdlbmVyaWNDdWUo
V2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEgY3VlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3Bw
CmluZGV4IDhmMDUzNzY4Mzc4ZWIwNWNlZDMyMWZmY2YxMTkyM2I1OWVlZmMzMmIuLjM4YTUzYTBj
YmNmZjg5ZDQ1ZWJjZDQxZTdlNmMzNTgzYmQyN2QzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5jcHAKQEAgLTE0NCw3ICsxNDQsNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYQogCiBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6OmNyZWF0ZVJlbW90ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIs
IE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVu
dGlmaWVyKQogewotICAgIGF1dG8gaWQgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOwogCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRp
b24gcHJveHlDb25maWd1cmF0aW9uOwogICAgIHByb3h5Q29uZmlndXJhdGlvbi5yZWZlcnJlciA9
IHBsYXllci0+cmVmZXJyZXIoKTsKQEAgLTE1OSwxNSArMTU4LDE5IEBAIHN0ZDo6dW5pcXVlX3B0
cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
Y3JlYXRlUmVtCiAgICAgcHJveHlDb25maWd1cmF0aW9uLnNob3VsZFVzZVBlcnNpc3RlbnRDYWNo
ZSA9IHBsYXllci0+c2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCk7CiAgICAgcHJveHlDb25maWd1
cmF0aW9uLmlzVmlkZW8gPSBwbGF5ZXItPmlzVmlkZW9QbGF5ZXIoKTsKIAorICAgIGF1dG8gaWRl
bnRpZmllciA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7
CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb247
Ci0gICAgYm9vbCBzZW5kU3VjY2VlZGVkID0gZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpD
cmVhdGVNZWRpYVBsYXllcihpZCwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgcHJveHlDb25maWd1
cmF0aW9uKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDcmVhdGVN
ZWRpYVBsYXllcjo6UmVwbHkocGxheWVyQ29uZmlndXJhdGlvbiksIDApOwotICAgIGlmICghc2Vu
ZFN1Y2NlZWRlZCkgewotICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byBjcmVhdGUgcmVt
b3RlIG1lZGlhIHBsYXllci4iKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQorICAg
IGdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVy
KGlkZW50aWZpZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlvbiks
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVyXShhdXRvJiYg
cGxheWVyQ29uZmlndXJhdGlvbikgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMu
Z2V0KGlkZW50aWZpZXIpKQorICAgICAgICAgICAgcGxheWVyLT5zZXRDb25maWd1cmF0aW9uKFdU
Rk1vdmUocGxheWVyQ29uZmlndXJhdGlvbikpOworICAgIH0sIDApOworCisgICAgYXV0byByZW1v
dGVQbGF5ZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZShwbGF5ZXIsIHJlbW90
ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsICp0aGlzKTsKKyAgICBtX3BsYXllcnMuYWRk
KGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKCpyZW1vdGVQbGF5ZXIpKTsKIAotICAgIGF1dG8gcmVt
b3RlUGxheWVyID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjcmVhdGUocGxheWVyLCByZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBpZCwgKnRoaXMsIHBsYXllckNvbmZpZ3VyYXRpb24pOwotICAg
IG1fcGxheWVycy5hZGQoaWQsIG1ha2VXZWFrUHRyKCpyZW1vdGVQbGF5ZXIpKTsKICAgICByZXR1
cm4gcmVtb3RlUGxheWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAppbmRleCBiMjY2
YjM5ODRjMzgwY2QzNjQ4MjIxNDM1ZDNmODRmZTFiNWFhNzc1Li4zMjBlYzMwMTg5ZDZmYzU2MmYy
YWViZmY1MWM5MGY3NGVkZjhkYTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKQEAgLTUx
LDcgKzUxLDggQEAgY2xhc3MgV2ViUHJvY2VzczsKIHN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uOwogCiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIKLSAgICA6IHB1
YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCB7CisgICAgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBs
ZW1lbnQKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNp
dCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIoV2ViUHJvY2VzcyYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZS5jcHAKaW5kZXggNWM3ODc2NGUwYzE3NDEwY2IyMzc2OGE0NTE1YmQ0MjA0NTgzNDNmMS4u
NmE2NjIyYTM5NTQ5OTAwNzEwNmJkNDkwOTcxMTA1ZDU4YjgzYTk2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZh
dGVSZW1vdGUuY3BwCkBAIC04OCw2NiArODgsNzIgQEAgdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmEK
ICAgICBtX2lzRGVmYXVsdCA9IGNvbmZpZ3VyYXRpb24uaXNEZWZhdWx0OwogfQogCi12b2lkIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkKK3ZvaWQgVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZTo6YWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotdm9pZCBU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4mJiwg
Y29uc3QgU3RyaW5nJikKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlR2VuZXJp
Y0N1ZShHZW5lcmljQ3VlRGF0YSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9p
ZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYg
c3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikK
K3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3Vl
RGF0YSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlOjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikKKwordm9pZCBUZXh0VHJh
Y2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQVNTRVJUKGNsaWVudCgpKTsKKyAgICBpZiAo
YXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+cGFyc2VXZWJW
VFRGaWxlSGVhZGVyKFdURk1vdmUoaGVhZGVyKSk7CiB9CiAKLSNlbmRpZgotCi12b2lkIFRleHRU
cmFja1ByaXZhdGVSZW1vdGU6OmFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKQordm9pZCBU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiBkYXRhKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQVNTRVJUKGNs
aWVudCgpKTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisgICAgICAg
IGNsaWVudC0+cGFyc2VXZWJWVFRDdWVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCkpOwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVS
ZW1vdGU6OnVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKQordm9pZCBUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoSVNPV2ViVlRUQ3VlJiYgY3Vl
RGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGllbnQoKSk7Cisg
ICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICBjbGllbnQtPnBh
cnNlV2ViVlRUQ3VlRGF0YShXVEZNb3ZlKGN1ZURhdGEpKTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlOjpyZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikKK3ZvaWQgVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFU
aW1lJiYgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhKQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgQVNTRVJUKGNsaWVudCgpKTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0gdGhp
cy0+Y2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwg
V1RGTW92ZShlbmQpLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSks
IGRhdGEuc2l6ZSgpKTsKIH0KIAotCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNl
V2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJiBoZWFkZXIpCisjaWYgRU5BQkxFKERBVEFDVUVfVkFM
VUUpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZShNZWRp
YVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
VmFsdWUmJiBkYXRhVmFsdWUsIFN0cmluZyYmIHR5cGUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgp
KTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVu
dC0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFdURk1vdmUoaGVhZGVyKSk7CisgICAgICAgIGNsaWVu
dC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSwgdHlwZSk7CiB9CiAKLXZv
aWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRl
RGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsK
ICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+
cGFyc2VXZWJWVFRDdWVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0
YSgpKSwgZGF0YS5zaXplKCkpOworICAgICAgICBjbGllbnQtPnVwZGF0ZURhdGFDdWUoV1RGTW92
ZShzdGFydCksIFdURk1vdmUoZW5kKSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRl
KFdURk1vdmUoZGF0YVZhbHVlKSkpOwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6
OnBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChJU09XZWJWVFRDdWUmJiBjdWVEYXRhKQordm9pZCBU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpyZW1vdmVEYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBN
ZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGFWYWx1
ZSkKIHsKICAgICBBU1NFUlQoY2xpZW50KCkpOwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlz
LT5jbGllbnQoKSkKLSAgICAgICAgY2xpZW50LT5wYXJzZVdlYlZUVEN1ZURhdGEoV1RGTW92ZShj
dWVEYXRhKSk7CisgICAgICAgIGNsaWVudC0+cmVtb3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwg
V1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShk
YXRhVmFsdWUpKSk7CiB9Ci0KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2
YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuaAppbmRleCA2YWM5YzY5ZDAxOTIwZDljOTQxMzJiODgzZTU2ZjY1YmQ4
ZWMzY2NjLi43YjdmNzAzY2I0OTdkZWRlYTM5MWRiNTljYzkyYmVjZTE1YTU5MmUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVS
ZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuaApAQCAtMzIsNiArMzIsMTEgQEAKICNpbmNsdWRlICJUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbmJhbmRUZXh0VHJhY2tQ
cml2YXRlLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdlbmVyaWNDdWVEYXRhOwor
Y2xhc3MgSVNPV2ViVlRUQ3VlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOwpAQCAtNDQsMjEgKzQ5LDIxIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlk
ZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKICAgICB9CiAKLSAgICB2b2lkIGFk
ZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNv
bnN0IHZvaWQqLCB1bnNpZ25lZCk7CisgICAgdm9pZCBhZGREYXRhQ3VlKE1lZGlhVGltZSYmIHN0
YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSYmKTsKIAogI2lmIEVOQUJM
RShEQVRBQ1VFX1ZBTFVFKQotICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+
JiYsIGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZSYpOwotICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpOworICAgIHZvaWQg
YWRkRGF0YUN1ZVdpdGhUeXBlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmLCBTdHJpbmcmJik7CisgICAgdm9pZCB1cGRh
dGVEYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKKyAgICB2b2lkIHJlbW92ZURhdGFDdWUoTWVkaWFUaW1l
JiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
JiYpOwogI2VuZGlmCiAKLSAgICB2b2lkIGFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKTsK
LSAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKTsKLSAgICB2b2lkIHJl
bW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKTsKKyAgICB2b2lkIGFkZEdlbmVyaWNDdWUo
V2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEmKTsKKyAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoV2Vi
Q29yZTo6R2VuZXJpY0N1ZURhdGEmKTsKKyAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoV2ViQ29y
ZTo6R2VuZXJpY0N1ZURhdGEmKTsKIAogICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0
cmluZyYmKTsKICAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmKTsKLSAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChJU09XZWJWVFRDdWUm
Jik7CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoV2ViQ29yZTo6SVNPV2ViVlRU
Q3VlJiYpOwogCiAgICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKFRleHRUcmFja1ByaXZhdGVS
ZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWIzMmU5ZDMwOTk0NmM1ZWJiNTliYzI4
YzIzNTU2OGI0MmQxMjYxNS4uNTY1OWUwOTUwYTMzMzdlMDAzYTYxYWVlMjY1NWJhZDRkYWNkMmQ1
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAyLTE5ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgaW4tYmFuZCBtZXRhZGF0YSBj
dWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAyLTE5
ICBKYXNvbiBMYXdyZW5jZSAgPGxhd3JlbmNlLmpAYXBwbGUuY29tPgogCiAgICAgICAgIFsgTWFj
IHdrMiBdIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvaGFyL2hhci1wYWdlLmh0bWwgaXMg
Zmxha3kgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggYjI0MDJiOTQ5YTlmN2M3NjFjOTdkOWQyMmZiNmMxMjU0MThjNGE5NC4uOTEzYTVkNDQ4NDJm
YWI5Y2U0NzM0YmRkZjM3YzRlYWU1ZDIwNzVlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZ3B1
LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0yMjksNiArMjI5LDggQEAgbWVkaWEvdHJhY2svdHJhY2staW4t
YmFuZC5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL21lZGlhL3RyYWNrL3RyYWNrLXdlYnZ0dC1z
bG93LWxvYWRpbmcuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9tZWRpYS90cmFjay90cmFjay13
ZWJ2dHQtc2xvdy1sb2FkaW5nLTIuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9tZWRpYS9obHMv
aGxzLXdlYnZ0dC10cmFja3MuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9tZWRpYS90cmFjay1p
bi1iYW5kLWhscy1tZXRhZGF0YS5odG1sIFsgUGFzcyBdCitodHRwL3Rlc3RzL21lZGlhL3RyYWNr
LWluLWJhbmQtaGxzLW1ldGFkYXRhLWNyYXNoLmh0bWwgWyBQYXNzIF0KIAogYWNjZXNzaWJpbGl0
eS9tZWRpYS1lbGVtZW50Lmh0bWwgWyBTa2lwIF0KIGZhc3QvYmxvY2svZmxvYXQvbGlzdC1tYXJr
ZXItaXMtZmxvYXQtY3Jhc2guaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391300</attachid>
            <date>2020-02-20 10:17:36 -0800</date>
            <delta_ts>2020-02-20 12:54:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207904-20200220101735.patch</filename>
            <type>text/plain</type>
            <size>65207</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2OTE0OWIwYzQxZDFk
NjllMTU5MWNkNTdlNGJkNDU0NTBjMDY3Zi4uNzk5Yzk5ZjhmZTljODhlMWVhYTRiZTBhMTIzYTUx
ZTFkOWQ5NTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTE5ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgaW4t
YmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0
YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4
dFRyYWNrOjpmaW5kSW5jb21wbGV0ZUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFU
ZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRl
eHRUcmFjazo6cmVtb3ZlQ3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0
VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vlc0ludGVybmFsIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpkZXNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpkYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmlzRXF1YWwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6cGxhdGZvcm1UeXBlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmVuY29kaW5nUmVxdWlyZXNQ
bGF0Zm9ybURhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6ZW5jb2RhYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFE
aWRBcnJpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2Vk
Q2xhc3Nlc0Zvck5hdGl2ZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUpOiBEZWxldGVkLgorCiAyMDIwLTAyLTE5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUGxh
dGZvcm1NZWRpYVNlc3Npb246OmNoYXJhY3RlcmlzdGljcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzMjc5NTY3
MjdkNmRlYzhmZjljN2Q4OTY4Y2VlYmEwMTA5ZWYzYjEuLmQxY2E2ZDQzMWY1ZGZhN2QwNzc0MTEy
ZDEzNjVhMmY5ZGQwYTY1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDItMTkg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9y
dCBpbi1iYW5kIG1ldGFkYXRhIGN1ZXMgd2hlbiBsb2FkaW5nIG1lZGlhIGluIHRoZSBHUFUgUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3
OTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTU2MTY0Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4
dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpl
bmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3Rl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjphZGRHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViS2l0OjpU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKToKKyAg
ICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1
ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFD
dWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaDoKKwogMjAyMC0wMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBmYXN0L2RvbS9mb2N1cy1zaGlmdC1jcmFzaC5odG1sIGFuZCBl
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tY2hhbmdlLWluLWRpc2Nvbm5lY3RlZC1mcmFtZS1j
cmFzaC5odG1sIGNyYXNoIGFmdGVyIHIyNTY4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjQ4MGYyYTNm
MjJlZTBkMzc0YWM5ODgwNjA2MjJmMWFkZjJlNzI1Yy4uNDRiY2EyMGI3ZmU1NjY4NTcxZWU4Mjhm
OTc0NWQ1MGUxZjZkZTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NjQsNiArMTc2NCw3IEBAIHBs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAogcGxhdGZv
cm0vU2Nyb2xsYmFyVGhlbWUuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5j
cHAKK3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCiBwbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuY3BwCiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAKIHBsYXRm
b3JtL1NoYXJlZFN0cmluZ0hhc2guY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzhjODM3YThjODQ5NWZkMTNiYzljNzFhZmVm
ZmZmMWNjZWU2NjBmMy4uNGQwYzE1MTUwNTE2YmZmNDExYTYxZjlkMzc5YjAwMTVkNDcyNTFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTM1LDEwICsxMzUsMTEgQEAKIAkJMDc2MzhBOUExODg0NDg3MjAwRTE1QTFCIC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzYzOEE5ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbSAqLzsgfTsKIAkJMDc2OTcwODYxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFj
a0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwICovOyB9OwogCQkw
NzY5NzA4NzE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODUxNDYzQUQ4NzAwRjUwMkNG
IC8qIFRleHRUcmFja0xpc3QuaCAqLzsgfTsKKwkJMDc2RDFDMUYyM0Y2RUI1QjAwRDk1QjA2IC8q
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3NkYwRDBFMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaCAqLzsgfTsKIAkJMDc3NjY0RkQxODNFNkI1QzAwMTMzQjkyIC8q
IEpTUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NzY2NEZCMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50LmggKi87IH07CiAJCTA3N0FGMTQwMThGNEFFNDAwMDAxRUQ2
MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdBRjEzRTE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTA3N0FGMTQzMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzdBRjE0MTE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZU1hYy5oICovOyB9OworCQkwNzdBRjE0MzE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc3QUYxNDExOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNzdCNjQxMzFCOTRGMTJFMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3N0I2NDExMUI5NEYxMkUwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9j
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3
N0I2NDE3MUI5NUY3MDMwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QjY0MTUxQjk1Rjcw
MzAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc4MzIyODUxODAxM0VEODAwOTk5RTBD
IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3ODMyMjgzMTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlLmggKi87IH07CkBAIC01NDczLDYgKzU0NzQsNyBAQAogCQkwNzYzOEE5ODE4
ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBU
ZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRl
eHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzY5NzA4NTE0
NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUZXh0VHJhY2tMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3NkQxQzFEMjNGNkQ5RDgwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBU
cmFja1ByaXZhdGVCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRyYWNrUHJpdmF0ZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZG
MEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkYwRDBB
MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NDkwLDYgKzU0OTIsNyBAQAog
CQkwNzg0NjM0MDE0NUIxNTFBMDBBNThERjEgLyogSlNUcmFja0V2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2MzQxMTQ1QjE1MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUcmFja0V2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBK
U1RyYWNrQ3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVHJhY2tD
dXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc4NjMzRDcyM0ZFMDk2NDAw
ODdBRTIxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3ODdDNDY3MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01l
ZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3ODdDNDY4MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJhY2tTdXBwb3J0ZWRD
b25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzhFMDk0ODE3RDE3MDk2MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbUF1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1
OTk0LDcgKzI1OTk3LDkgQEAKIAkJCQlCQzI0NDFDMzBFOEI2NUQwMDA1NTMyMEYgLyogU2Nyb2xs
Vmlldy5jcHAgKi8sCiAJCQkJQkM2RDZFMjUwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcu
aCAqLywKIAkJCQlBQjcxNzA4ODBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51Lmgg
Ki8sCisJCQkJMDc4NjMzRDcyM0ZFMDk2NDAwODdBRTIxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUuY3BwICovLAogCQkJCTA3N0FGMTNFMThGNEFFNDAwMDAxRUQ2MSAvKiBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmggKi8sCisJCQkJMDc2RDFDMUQyM0Y2RDlEODAwRDk1QjA2IC8qIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovLAogCQkJCTFBNEE5NTRCMEI0RURDQ0Iw
MDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuY3BwICovLAogCQkJCTFBNEE5NTRDMEI0RURDQ0IwMDJE
OEMzQyAvKiBTaGFyZWRCdWZmZXIuaCAqLywKIAkJCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcyNUIg
LyogU2hhcmVkU3RyaW5nSGFzaC5jcHAgKi8sCkBAIC0zMjI1NCw2ICszMjI1OSw3IEBACiAJCQkJ
RTE4REYzMzUxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzdBRjE0MDE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3QUYxNDMxOEY0QjFCQjAwMDFF
RDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTA3NkQxQzFGMjNGNkVCNUIwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNkY3RjZEMUMzMUUzOUEw
MEYxMTFEQyAvKiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDkz
QUVFMzE5REY1NjQxMDAyQTg2QzMgLyogU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAw
NDAwMWI0YmE5ZWRmYWViZmVhZjFmMjdjZmEwZmNlNDQ3YzExZDg4Li4wZTg2OGEwYmFlN2JkMjI4
MjRhZGNiNDRlYjY4YWUxNzliYzkxY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTEzMzIsNyArMTMzMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgICAgICBtb2RlID0gQXR0cmlidXRlOwogICAg
ICAgICAgICAgQVNTRVJUKG1fcGxheWVyKTsKICAgICAgICAgICAgIGlmICghbV9wbGF5ZXIpIHsK
LSAgICAgICAgICAgICAgICBFUlJPUl9MT0cobG9nU2l0ZUlkZW50aWZpZXIsICIgaGFzIHNyY0F0
dHIgYnV0IG1fcGxheWVyIGlzIG5vdCBjcmVhdGVkIik7CisgICAgICAgICAgICAgICAgRVJST1Jf
TE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiaGFzIHNyY0F0dHIgYnV0IG1fcGxheWVyIGlzIG5vdCBj
cmVhdGVkIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UgaWYgKGF1dG8gZmlyc3RTb3VyY2UgPSBjaGlsZHJlbk9mVHlwZTxIVE1MU291cmNl
RWxlbWVudD4oKnRoaXMpLmZpcnN0KCkpIHsKQEAgLTM0NzMsMTEgKzM0NzMsMTMgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpwbGF5KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2Up
CiAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIGlmIChzdWNjZXNzLnZhbHVlKCkgPT0gTWVk
aWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZCkKICAgICAgICAgICAg
IHNldEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlKEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
OjpQcmV2ZW50ZWRBdXRvcGxheSk7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAi
cmVqZWN0aW5nIHByb21pc2U6ICIsIHN1Y2Nlc3MudmFsdWUoKSk7CiAgICAgICAgIHByb21pc2Uu
cmVqZWN0KE5vdEFsbG93ZWRFcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAobV9lcnJvciAmJiBtX2Vycm9yLT5jb2RlKCkgPT0gTWVkaWFFcnJvcjo6TUVESUFfRVJSX1NS
Q19OT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAicmVq
ZWN0aW5nIHByb21pc2UgYmVjYXVzZSBvZiBlcnJvciIpOwogICAgICAgICBwcm9taXNlLnJlamVj
dChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM0OTUsNiArMzQ5Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6cGxheSgpCiAKICAgICBhdXRvIHN1Y2Nlc3MgPSBtX21lZGlhU2Vzc2lvbi0+
cGxheWJhY2tQZXJtaXR0ZWQoKTsKICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgRVJST1Jf
TE9HKExPR0lERU5USUZJRVIsICJwbGF5YmFjayBub3QgcGVybWl0dGVkOiAiLCBzdWNjZXNzLnZh
bHVlKCkpOwogICAgICAgICBpZiAoc3VjY2Vzcy52YWx1ZSgpID09IE1lZGlhUGxheWJhY2tEZW5p
YWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQpCiAgICAgICAgICAgICBzZXRBdXRvcGxheUV2
ZW50UGxheWJhY2tTdGF0ZShBdXRvcGxheUV2ZW50UGxheWJhY2tTdGF0ZTo6UHJldmVudGVkQXV0
b3BsYXkpOwogICAgICAgICByZXR1cm47CkBAIC01MDk0LDcgKzUwOTcsOCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTWVkaWFFbmdpbmVXYXNVcGRhdGVkKCkKIAogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogewotICAgIElORk9fTE9HKExP
R0lERU5USUZJRVIpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKICAgICBiZWdp
blByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAgICAgdXBkYXRlUmVuZGVyZXIoKTsK
ICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwpAQCAtNTEyOSw3ICs1MTMz
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogCiB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCiB7Ci0gICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7CisgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgbV9w
bGF5ZXItPmVuZ2luZURlc2NyaXB0aW9uKCkpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
ICAgICBtX2Ryb3BwZWRWaWRlb0ZyYW1lcyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAppbmRleCBmMDdmNzM4ZDI4MzYxY2M0YmZk
NDkyYzY0YTg0YWM5YmQ0Y2E2NTA0Li4wYzA0ZjNjMWI1ZjE3MmU3MmRjZjNmYTVlMzViYjBlOTcz
MjA4NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFU
ZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRl
eHRUcmFjay5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjph
ZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW4KIAog
dm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4m
JiBwbGF0Zm9ybVZhbHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgaWYgKG1faW5jb21w
bGV0ZUN1ZU1hcC5jb250YWlucyhwbGF0Zm9ybVZhbHVlLnB0cigpKSkKKyAgICBpZiAoZmluZElu
Y29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8g
Y3VlID0gRGF0YUN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0YXJ0LCBl
bmQsIHBsYXRmb3JtVmFsdWUuY29weVJlZigpLCB0eXBlKTsKQEAgLTcwLDcgKzcwLDcgQEAgdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW4KIAogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUluZmluaXRlKCkg
JiYgbWVkaWFFbGVtZW50KCkpIHsKICAgICAgICAgY3VlLT5zZXRFbmRUaW1lKG1lZGlhRWxlbWVu
dCgpLT5kdXJhdGlvbk1lZGlhVGltZSgpKTsKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLmFk
ZChXVEZNb3ZlKHBsYXRmb3JtVmFsdWUpLCBjdWUuY29weVJlZigpKTsKKyAgICAgICAgbV9pbmNv
bXBsZXRlQ3VlTWFwLmFwcGVuZCgmY3VlLmdldCgpKTsKICAgICB9CiAKICAgICBJTkZPX0xPRyhM
T0dJREVOVElGSUVSLCBjdWUuZ2V0KCkpOwpAQCAtNzgsOSArNzgsMjEgQEAgdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW4KICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAorUmVmUHRyPERhdGFD
dWU+IEluYmFuZERhdGFUZXh0VHJhY2s6OmZpbmRJbmNvbXBsZXRlQ3VlKGNvbnN0IFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmIGN1ZVRvRmluZCkKK3sKKyAgICBhdXRvIGluZGV4ID0gbV9pbmNv
bXBsZXRlQ3VlTWFwLmZpbmRNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgY3VlKSB7CisgICAgICAg
IHJldHVybiBjdWVUb0ZpbmQuaXNFcXVhbCgqY3VlLT5wbGF0Zm9ybVZhbHVlKCkpOworICAgIH0p
OworCisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIHJldHVybiBtX2luY29tcGxldGVDdWVNYXBbaW5kZXhdOworfQorCiB2b2lkIEluYmFu
ZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBpbkVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgcGxhdGZvcm1W
YWx1ZSkKIHsKLSAgICBSZWZQdHI8RGF0YUN1ZT4gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdl
dCgmcGxhdGZvcm1WYWx1ZSk7CisgICAgYXV0byBjdWUgPSBmaW5kSW5jb21wbGV0ZUN1ZShwbGF0
Zm9ybVZhbHVlKTsKICAgICBpZiAoIWN1ZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05MCw3ICsx
MDIsNyBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJgogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUlu
ZmluaXRlKCkgJiYgbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIGVuZCA9IG1lZGlhRWxlbWVudCgp
LT5kdXJhdGlvbk1lZGlhVGltZSgpOwogICAgIGVsc2UKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3Vl
TWFwLnJlbW92ZSgmcGxhdGZvcm1WYWx1ZSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5y
ZW1vdmVGaXJzdChjdWUpOwogCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIndhcyBzdGFy
dCA9ICIsIGN1ZS0+c3RhcnRNZWRpYVRpbWUoKSwgIiwgZW5kID0gIiwgY3VlLT5lbmRNZWRpYVRp
bWUoKSwgIiwgd2lsbCBiZSBzdGFydCA9ICIsIHN0YXJ0LCAiLCBlbmQgPSAiLCBlbmQpOwogCkBA
IC0xMDIsOCArMTE0LDkgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYKIAogdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAg
aWYgKGF1dG8gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLnRha2UoJnBsYXRmb3JtVmFsdWUpKSB7
CisgICAgaWYgKGF1dG8gY3VlID0gZmluZEluY29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSkpIHsK
ICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJlbW92aW5nOiAiLCAqY3VlKTsKKyAg
ICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZUZpcnN0KGN1ZSk7CiAgICAgICAgIEluYmFu
ZFRleHRUcmFjazo6cmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0KIH0KQEAgLTExMiw3ICsxMjUsOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpyZW1vdmVDdWUoVGV4dFRy
YWNrQ3VlJiBjdWUpCiB7CiAgICAgQVNTRVJUKGN1ZS5jdWVUeXBlKCkgPT0gVGV4dFRyYWNrQ3Vl
OjpEYXRhKTsKIAotICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoY29uc3RfY2FzdDxTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlKj4odG9EYXRhQ3VlKCZjdWUpLT5wbGF0Zm9ybVZhbHVlKCkp
KTsKKyAgICBpZiAoYXV0byBwbGF0Zm9ybVZhbHVlID0gY29uc3RfY2FzdDxTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlKj4odG9EYXRhQ3VlKCZjdWUpLT5wbGF0Zm9ybVZhbHVlKCkpKQorICAgICAg
ICByZW1vdmVEYXRhQ3VlKHsgfSwgeyB9LCAqcGxhdGZvcm1WYWx1ZSk7CiAKICAgICByZXR1cm4g
SW5iYW5kVGV4dFRyYWNrOjpyZW1vdmVDdWUoY3VlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKaW5kZXggMWE4YmRmNmFlNTIyOGJlZjBj
ZjhkMWRhZDk1ZTM1NmY2MjhhNDRmMi4uNGZjMzEzZWFjYzUxNzQxMjMwNDY5OGY0MmUzY2FlZWE5
ZDE5Mzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRh
VGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4
dFRyYWNrLmgKQEAgLTU1LDcgKzU1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZURhdGFD
dWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUmKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVD
dWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7CiAKLSAgICBIYXNoTWFwPFJlZlB0cjxTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlPiwgUmVmUHRyPERhdGFDdWU+PiBtX2luY29tcGxldGVDdWVNYXA7Cisg
ICAgUmVmUHRyPERhdGFDdWU+IGZpbmRJbmNvbXBsZXRlQ3VlKGNvbnN0IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWUmKTsKKworICAgIFZlY3RvcjxSZWZQdHI8RGF0YUN1ZT4+IG1faW5jb21wbGV0
ZUN1ZU1hcDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgK
aW5kZXggNDdlNmRlZTkzZDA2OTI5OTczNjA5NTFlNTExMjM4ZDllMzA1OThmMi4uMDczNjUyZjQ0
NDUxNWU4ZDhhMGNkZWViMjFjMDZjNDM2NzcxMTJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5oCkBAIC05Niw2ICs5Niw4IEBAIHB1YmxpYzoKICAgICBUZXh0VHJhY2tDdWVM
aXN0KiBjdWVzKCk7CiAgICAgVGV4dFRyYWNrQ3VlTGlzdCogYWN0aXZlQ3VlcygpIGNvbnN0Owog
CisgICAgVGV4dFRyYWNrQ3VlTGlzdCogY3Vlc0ludGVybmFsKCkgY29uc3QgeyByZXR1cm4gbV9j
dWVzLmdldCgpOyB9CisKICAgICB2b2lkIGNsZWFyQ2xpZW50KCkgb3ZlcnJpZGUgeyBtX2NsaWVu
dCA9IG51bGxwdHI7IH0KICAgICBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApp
bmRleCBlNWRmM2MzYjc4NjZlYTlmZDQzZGFjY2Y0YTQ2MjJiZGI2NDg5NDIyLi5jYmRkOGMwMzFk
YjdjZmUwZTg0NTYxMTk3NjI2N2YyNDUxMjI0ZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC0zNDEsMTEgKzM0MSwxMSBAQCB2b2lkIFRleHRUcmFj
a0N1ZTo6c2V0SXNBY3RpdmUoYm9vbCBhY3RpdmUpCiAKIHVuc2lnbmVkIFRleHRUcmFja0N1ZTo6
Y3VlSW5kZXgoKSBjb25zdAogewotICAgIEFTU0VSVChtX3RyYWNrICYmIG1fdHJhY2stPmN1ZXMo
KSk7Ci0gICAgaWYgKCFtX3RyYWNrIHx8ICFtX3RyYWNrLT5jdWVzKCkpCisgICAgQVNTRVJUKG1f
dHJhY2sgJiYgbV90cmFjay0+Y3Vlc0ludGVybmFsKCkpOworICAgIGlmICghbV90cmFjayB8fCAh
bV90cmFjay0+Y3Vlc0ludGVybmFsKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCk7CiAKLSAgICByZXR1cm4gbV90cmFjay0+Y3VlcygpLT5jdWVJ
bmRleCgqdGhpcyk7CisgICAgcmV0dXJuIG1fdHJhY2stPmN1ZXNJbnRlcm5hbCgpLT5jdWVJbmRl
eCgqdGhpcyk7CiB9CiAKIGJvb2wgVGV4dFRyYWNrQ3VlOjppc09yZGVyZWRCZWZvcmUoY29uc3Qg
VGV4dFRyYWNrQ3VlKiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDliZmI4YTZh
MWUwN2M0ZWZmNGZhNmRkZDA5ZTNlNzlhMWU3OWU3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCkBAIC0wLDAg
KzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oIgorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBF
TkFCTEUoREFUQUNVRV9WQUxVRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIVBMQVRG
T1JNKENPQ09BKQorUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWU6OmNyZWF0ZShTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJikKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkpOwor
fQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgKaW5kZXgg
NDc0YWMxZDRmNzc2NGI1Y2VjMTNlMTdjNmVlMTlhOGI0MmQyMDA3Ny4uMDg1NTBmZGU3NzE0YTJl
ZDVkYTBlZGI5MTU1NjdhMjEzOGY4MGZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAj
aWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZh
bHVlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTM0LDE2ICszNSwyMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiB7CiBwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBjcmVhdGUoU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOworCiAgICAgdmlydHVhbCB+U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZSgpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGRlc2Vy
aWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQ
dHI8SlNDOjpBcnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBj
b25zdCB7IHJldHVybiBKU0M6OmpzTnVsbCgpOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SlNDOjpB
cnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc0VxdWFsKGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCi0gICAgZW51bSBQbGF0Zm9ybVR5cGUgeworICAgIGVudW0gY2xhc3MgUGxh
dGZvcm1UeXBlIHsKKyAgICAgICAgTm9uZSwKICAgICAgICAgT2JqQywKICAgICB9OwotICAgIHZp
cnR1YWwgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUoKSBjb25zdCB7IHJldHVybiBQbGF0Zm9ybVR5cGU6
Ok5vbmU7IH0KKworICAgIHZpcnR1YWwgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRh
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlIGVuY29kYWJsZVZhbHVlKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CiAK
IHByb3RlY3RlZDoKICAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkgPSBkZWZhdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmM2MzM0YWJlMmIzNGM5ZjRhZWIyYTNmZmNiYmZj
NzkxYzBhZGYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmICFkZWZpbmVkKF9f
T0JKQ19fKQordHlwZWRlZiBzdHJ1Y3Qgb2JqY19vYmplY3QgKmlkOworI2VuZGlmCisKKyNpZiBQ
TEFURk9STShDT0NPQSkKK3VzaW5nIFBsYXRmb3JtTmF0aXZlVmFsdWUgPSBpZDsKKyNlbHNlCit1
c2luZyBQbGF0Zm9ybU5hdGl2ZVZhbHVlID0gdm9pZCo7CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgeworICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKTsKK3B1
YmxpYzoKKyAgICBlbnVtIGNsYXNzIFBsYXRmb3JtVHlwZSB7CisgICAgICAgIE5vbmUsCisgICAg
ICAgIE9iakMsCisgICAgfTsKKworICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZShQ
bGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlLCBQbGF0Zm9ybU5hdGl2ZVZhbHVlIG5hdGl2ZVZhbHVl
KQorICAgICAgICA6IG1fbmF0aXZlVmFsdWUobmF0aXZlVmFsdWUpCisgICAgICAgICwgbV90eXBl
KHBsYXRmb3JtVHlwZSkKKyAgICB7CisgICAgfQorICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZSgpID0gZGVmYXVsdDsKKyAgICB+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
KCkgPSBkZWZhdWx0OworCisgICAgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQorCisgICAgUGxhdGZvcm1OYXRpdmVWYWx1ZSBuYXRpdmVWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlVmFsdWU7IH0KKworICAgIGJvb2wgZW5jb2RpbmdSZXF1
aXJlc1BsYXRmb3JtRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBQbGF0Zm9ybVR5cGU6
Ok9iakM7IH0KKworcHJvdGVjdGVkOgorICAgIFBsYXRmb3JtTmF0aXZlVmFsdWUgbV9uYXRpdmVW
YWx1ZSB7IG51bGxwdHIgfTsKKyAgICBQbGF0Zm9ybVR5cGUgbV90eXBlIHsgUGxhdGZvcm1UeXBl
OjpOb25lIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGNh
NzFlN2UwYjU4NmM3YjU1YjExMjczMmJhZDU5YjAxZDhhNDE4MWIuLjU3ZGZjYmY0YmM3YzQ4ODQ0
ZDM4MWNiMzVlY2M2NDNjMWFhYjRiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTEwOSw2ICsxMDksOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwbGF5KCkgZmluYWwgeyB9CiAgICAgdm9pZCBwYXVzZSgpIGZpbmFsIHsgfQogCisg
ICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk51bGxN
ZWRpYVBsYXllciI7IH0KKwogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBGbG9hdFNpemUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcAppbmRleCBmZTFj
MDY0YWU1MTI3NzIzMDhjYzJjNGNiMjI0M2ViOTJlNTMxODAwLi5iNzg2NGY3YjM3MGUzMzUyNjc1
NmNkYTYyZDcyN2FjMDdjODBiNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcApAQCAtMzMsOSArMzMsMTAgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKIHN0YXRp
YyB1aW50NjRfdCBzX3VuaXF1ZUlkID0gMDsKIAotI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
dm9pZCBUcmFja1ByaXZhdGVCYXNlOjpzZXRMb2dnZXIoY29uc3QgTG9nZ2VyJiBsb2dnZXIsIGNv
bnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIpCiB7CiAgICAgbV9sb2dnZXIgPSAmbG9nZ2VyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KaW5kZXggODIwZGE4OWM0NmY4NzE1MzI5NmUxNjc0ZGY0NmExZDc0
YmUwNmY5YS4uYjM3YzQ0MTEzMTQ5ODg3OTU0NmVjOGE1N2EwZGQ4ZTExZjc4NDY5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tCkBAIC0zMDc0LDcgKzMwNzQsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKGNvbnN0IFJldGFpblB0
cjxOU0FycgogICAgICAgICBpZiAoaXRlbS5rZXlTcGFjZSkKICAgICAgICAgICAgIHR5cGUgPSBt
ZXRhZGF0YVR5cGUoaXRlbS5rZXlTcGFjZSk7CiAKLSAgICAgICAgbV9tZXRhZGF0YVRyYWNrLT5h
ZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmNyZWF0
ZShpdGVtKSwgdHlwZSk7CisgICAgICAgIG1fbWV0YWRhdGFUcmFjay0+YWRkRGF0YUN1ZShzdGFy
dCwgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoeyBXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgaXRlbSB9KSwg
dHlwZSk7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaAppbmRleCBhMTBkY2Nj
M2UxYjVhMzBkZmJmMDEwYTc2MDUwNTI4MDZiMjE5NmViLi4yNmQ4NGI5YTg5MmQ2YWZjODRhZTkz
ZWRiYjJmMGFiNGJkMDZlM2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmgKQEAgLTI5LDI4ICsyOSwy
NiBAQAogCiAjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oIgogCi0jaWYgVVNF
KEZPVU5EQVRJT04pICYmICFkZWZpbmVkKF9fT0JKQ19fKQotdHlwZWRlZiBzdHJ1Y3Qgb2JqY19v
YmplY3QgKmlkOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZU1hYyBmaW5hbCA6IHB1YmxpYyBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlIHsKIHB1YmxpYzoKKyAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKICAgICB2aXJ0dWFsIH5TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjKCk7Ci0gICAgc3RhdGljIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlPiBjcmVhdGUoaWQpOwogCiAgICAgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6SlNH
bG9iYWxPYmplY3QqKSBjb25zdCBmaW5hbDsKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGRhdGEo
KSBjb25zdCBmaW5hbDsKLQogICAgIGJvb2wgaXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlJikgY29uc3QgZmluYWw7CisgICAgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBsYXRmb3JtVHlwZTo6T2JqQzsgfQorICAgIGJvb2wgZW5j
b2RpbmdSZXF1aXJlc1BsYXRmb3JtRGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
IAotICAgIFBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpPYmpDOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIGVuY29kYWJsZVZhbHVlKCkgY29uc3QgZmluYWw7
CiAKICAgICBpZCBuYXRpdmVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlVmFsdWUuZ2V0
KCk7IH0KIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5KiBhbGxvd2VkQ2xhc3Nl
c0Zvck5hdGl2ZVZhbHVlcygpOworCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVNYWMoaWQgbmF0aXZlVmFsdWUpOwogCiAgICAgUmV0YWluUHRyPGlkPiBt
X25hdGl2ZVZhbHVlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMubW0KaW5kZXggYjk0OWViN2NkZDIw
MDM5ZjFjZmZlZjhjNGM1YmNkN2IxMTNlYjE5OS4uYzk4NGE5ZWVhN2E5NTliNjRhY2M3ZjEyZDUx
NjA3MjEzOGM3YWUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMubW0KQEAgLTQ4LDIxICs0OCwyMyBA
QCBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhBcnJheUluQ29udGV4dChOU0FycmF5ICosIEpT
Q29udGV4dCAqKTsKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aERpY3Rpb25hcnlJbkNvbnRl
eHQoTlNEaWN0aW9uYXJ5ICosIEpTQ29udGV4dCAqKTsKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVl
V2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KEFWTWV0YWRhdGFJdGVtICosIEpTQ29udGV4dCAq
KTsKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aFZhbHVlSW5Db250ZXh0KGlkLCBKU0NvbnRl
eHQgKik7CitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0
ZW0oQVZNZXRhZGF0YUl0ZW0gKik7CiAjZW5kaWYKIAotU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZU1hYzo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhpZCBuYXRpdmVWYWx1ZSkKLSAgICA6
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUoKQotICAgICwgbV9uYXRpdmVWYWx1ZShuYXRpdmVW
YWx1ZSkKK1JlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlOjpjcmVhdGUoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgdmFsdWUpCiB7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhX
VEZNb3ZlKHZhbHVlKSkpOwogfQogCi1TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYygpCitTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFj
OjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVW
YWx1ZSYmIHZhbHVlKQorICAgIDogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSgpCisgICAgLCBt
X25hdGl2ZVZhbHVlKHZhbHVlLm5hdGl2ZVZhbHVlKCkpCiB7CisgICAgUkVMRUFTRV9BU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTih2YWx1ZS5wbGF0Zm9ybVR5cGUoKSA9PSBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQyk7CiB9CiAKLVJlZjxT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpj
cmVhdGUoaWQgbmF0aXZlVmFsdWUpCitTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYygpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhuYXRpdmVWYWx1ZSkpOwogfQogCiBSZWZQdHI8
QXJyYXlCdWZmZXI+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmRhdGEoKSBjb25zdApA
QCAtODksNyArOTEsNyBAQCBKU0M6OkpTVmFsdWUgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1h
Yzo6ZGVzZXJpYWxpemUoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aQogCiBib29sIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmlzRXF1YWwoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKG90aGVyLnBsYXRmb3JtVHlwZSgpICE9IFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6Ok9iakMpCisgICAgaWYgKG90aGVyLnBsYXRmb3JtVHlw
ZSgpICE9IFBsYXRmb3JtVHlwZTo6T2JqQykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
Y29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyogb3RoZXJPYmpDID0gdG9TZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjKCZvdGhlcik7CkBAIC0xMDcsMTAgKzEwOSwyNCBAQCBTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKiB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMo
U2VyaWFsaXplZFBsYXRmb3JtRAogCiBjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFj
KiB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoY29uc3QgU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZSogcmVwKQogewotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04ocmVwLT5wbGF0Zm9ybVR5cGUoKSA9PSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpP
YmpDKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHJlcC0+
cGxhdGZvcm1UeXBlKCkgPT0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6UGxhdGZvcm1UeXBl
OjpPYmpDKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYyo+KHJlcCk7CiB9CiAKK05TQXJyYXkqIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWM6OmFsbG93ZWRDbGFzc2VzRm9yTmF0aXZlVmFsdWVzKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TQXJyYXk+PiBhbGxvd2VkQ2xhc3NlcyhAWyBbTlNTdHJp
bmcgY2xhc3NdLCBbTlNOdW1iZXIgY2xhc3NdLCBbTlNMb2NhbGUgY2xhc3NdLCBbTlNEaWN0aW9u
YXJ5IGNsYXNzXSwgW05TQXJyYXkgY2xhc3NdLCBbTlNEYXRhIGNsYXNzXSBdKTsKKyAgICByZXR1
cm4gYWxsb3dlZENsYXNzZXMuZ2V0KCkuZ2V0KCk7Cit9CisKK1NlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSgp
IGNvbnN0Cit7CisgICAgaWYgKFttX25hdGl2ZVZhbHVlLmdldCgpIGlzS2luZE9mQ2xhc3M6UEFM
OjpnZXRBVk1ldGFkYXRhSXRlbUNsYXNzKCldKQorICAgICAgICByZXR1cm4geyBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgTlNEaWN0aW9uYXJ5V2l0
aEFWTWV0YWRhdGFJdGVtKG1fbmF0aXZlVmFsdWUuZ2V0KCkpIH07CisKKyAgICByZXR1cm4geyBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgbV9uYXRp
dmVWYWx1ZS5nZXQoKSB9OworfQorCiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKIHN0YXRpYyBK
U1ZhbHVlICpqc1ZhbHVlV2l0aFZhbHVlSW5Db250ZXh0KGlkIHZhbHVlLCBKU0NvbnRleHQgKmNv
bnRleHQpCiB7CkBAIC0xOTMsNiArMjA5LDExIEBAIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0
aERpY3Rpb25hcnlJbkNvbnRleHQoTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5LCBKU0NvbnRlCiB9
CiAKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KEFW
TWV0YWRhdGFJdGVtICppdGVtLCBKU0NvbnRleHQgKmNvbnRleHQpCit7CisgICAgcmV0dXJuIGpz
VmFsdWVXaXRoRGljdGlvbmFyeUluQ29udGV4dChOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0
ZW0oaXRlbSksIGNvbnRleHQpOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpOU0RpY3Rpb25h
cnlXaXRoQVZNZXRhZGF0YUl0ZW0oQVZNZXRhZGF0YUl0ZW0gKml0ZW0pCiB7CiAgICAgTlNNdXRh
YmxlRGljdGlvbmFyeSAqZGljdGlvbmFyeSA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25h
cnldOwogCkBAIC0yMzAsNyArMjUxLDcgQEAgc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZN
ZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZNZXRhZGF0YUl0ZW0gKml0ZW0sIEpTQ29udGUKICAgICBp
ZiAoaXRlbS52YWx1ZSkKICAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0Oml0ZW0udmFsdWUg
Zm9yS2V5OkAiZGF0YSJdOwogCi0gICAgcmV0dXJuIGpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29u
dGV4dChkaWN0aW9uYXJ5LCBjb250ZXh0KTsKKyAgICByZXR1cm4gZGljdGlvbmFyeTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggNjRmM2NiZjIwYzUyYzM2MjA2YWFlYjljNDk5N2E3MmY1YmU0MGY4Ny4uNGNiZDQ2MTRiNjJi
OGMzZTdkNGY1NmNhOTUwYzk0NDc2MTI5OTMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsOCArMjQsOCBAQAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgTm90
UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHN0
cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uIHByb3h5Q29u
ZmlndXJhdGlvbikgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKSBTeW5jaHJvbm91cwotICAgIERlbGV0ZU1lZGlhUGxh
eWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKKyAgICBD
cmVhdGVNZWRpYVBsYXllcihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9uKSAtPiAoc3Ry
dWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3Vy
YXRpb24pIEFzeW5jCisgICAgIERlbGV0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKIAogICAgIEdldFN1cHBvcnRlZFR5cGVzKGVudW06
dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKSBTeW5jaHJv
bm91cwogICAgIFN1cHBvcnRzVHlwZUFuZENvZGVjcyhlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHR5cGUpIC0+
IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIHN1
cHBvcnQpIFN5bmNocm9ub3VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcAppbmRleCBiNzZkYzliMGQ0NmY4NmI3Nzk1
N2QzYjNiNzg1NDU5YzM5NDliMmE2Li4zMmM5YjdlMTJlNWE3MmNiMGJiYmQwYTk1ZTAzMTE4ZTA3
MjQwYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VGV4dFRyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKQEAgLTk2LDI1ICs5NiwyNSBAQCB2b2lkIFJlbW90ZVRl
eHRUcmFja1Byb3h5OjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpCiAgICAgY29u
ZmlndXJhdGlvbkNoYW5nZWQoKTsKIH0KIAotdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRk
RGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwg
dW5zaWduZWQpCit2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFk
ZERhdGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGxlbmd0aCkpLCBtX3BsYXllci5p
ZGVuZGlmaWVyKCkpOwogfQogCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCi12b2lkIFJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiYmLCBjb25zdCBTdHJpbmcmKQor
dm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+
JiYgY3VlRGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpBZGREYXRhQ3VlV2l0aFR5cGUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5k
LCBjdWVEYXRhLT5lbmNvZGFibGVWYWx1ZSgpLCB0eXBlKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigp
KTsKIH0KIAotdm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6dXBkYXRlRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikK
K3ZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1l
JiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUm
IGN1ZURhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OlVwZGF0ZURh
dGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLmVuY29kYWJsZVZhbHVlKCkp
LCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwogfQogCi12b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5
OjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWUmKQordm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6cmVtb3Zl
RGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3VlRGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6UmVtb3ZlRGF0YUN1ZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1
ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
aW5kZXggMWMwMGJkYTUzZjViNmI0MzRlYTcxOTc5ZjRlNjMyMTM4MWRhNTcyYy4uOGM5ZmEyMWFm
MzhhNzE2MmM2YzIwOWU5Mzk0Njg5MDZhMjVjM2NhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkQXR0YWNobWVudERhdGEuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudERhdGEuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyRGF0YS5oPgpAQCAtMzE3NCw0ICszMTc1LDMyIEBAIE9wdGlvbmFsPFNlcmlh
bGl6ZWRBdHRhY2htZW50RGF0YT4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkQXR0
YWNobWVudERhCiAKICNlbmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCisjaWYg
RU5BQkxFKFZJREVPKQordm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmIHZhbHVlKQoreworICAgIGJvb2wgaGFzUGxhdGZvcm1E
YXRhID0gdmFsdWUuZW5jb2RpbmdSZXF1aXJlc1BsYXRmb3JtRGF0YSgpOworICAgIGVuY29kZXIg
PDwgaGFzUGxhdGZvcm1EYXRhOworCisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHZhbHVlLnBsYXRm
b3JtVHlwZSgpKTsKKyAgICBpZiAoaGFzUGxhdGZvcm1EYXRhKQorICAgICAgICBlbmNvZGVQbGF0
Zm9ybURhdGEoZW5jb2RlciwgdmFsdWUpOworfQorCitPcHRpb25hbDxTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWU+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZVZhbHVlPjo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBib29s
IGhhc1BsYXRmb3JtRGF0YTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1BsYXRmb3JtRGF0
YSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZSB0eXBlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGVFbnVtKHR5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgaWYgKGhhc1BsYXRmb3JtRGF0YSkKKyAgICAgICAgcmV0dXJuIGRlY29kZVBsYXRmb3JtRGF0
YShkZWNvZGVyLCB0eXBlKTsKKworICAgIHJldHVybiB7eyB9fTsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKaW5kZXggN2JmNzFjMTdhYmRkM2Q4YjEzMTkwMjIwMDU4YzlmOWMyMTlmNjBiMy4uZTM4
MTRlMjFmODMzNmFhZjJmNDQ0MzIzMmUzNDRlMDA3NGRhZTJhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkRpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNl
dHNJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dv
cmtlclR5cGUuaD4KQEAgLTgxOSw2ICs4MjAsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkQXR0YWNobWVudERhdGE+IHsKIAogI2VuZGlmIC8v
IEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKKyNpZiBFTkFCTEUoVklERU8pCit0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJik7CisgICAgc3RhdGljIE9wdGlvbmFs
PFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gZGVjb2RlKERlY29kZXIm
KTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYpOworICAgIHN0YXRpYyBPcHRp
b25hbDxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+IGRlY29kZVBsYXRm
b3JtRGF0YShEZWNvZGVyJiwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
OjpQbGF0Zm9ybVR5cGUpOworfTsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBJUEMKIAogbmFt
ZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNv
cmVBcmd1bWVudENvZGVyc0N1cmwuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJD
b3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcAppbmRleCA4NTJkZjMxZGI5OGNjODZiNmIzMzkxMzdh
N2MxN2E4YzM5YTkwMzFhLi4wNTI3NTMzZWUwOTcwMjhhYTM1OGYzZDE4ZTkxYzcxNjU3ZjMxYjhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENv
ZGVyc0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzQ3VybC5jcHAKQEAgLTI0Niw0ICsyNDYsMTcgQEAgYm9vbCBBcmd1bWVudENvZGVy
PEZvbnRIYW5kbGU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIEZvbnRIYW5kbGUmKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShWSURFTykKK3ZvaWQgQXJndW1lbnRD
b2RlcjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjplbmNvZGVQbGF0Zm9ybURhdGEo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiB2
YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworT3B0aW9uYWw8U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiAgQXJndW1lbnRDb2RlcjxTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgV2Vi
Q29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGUgcGxhdGZv
cm1UeXBlKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNv
cmVBcmd1bWVudENvZGVyc01hYy5tbQppbmRleCBlZTIyMjQyM2YwNDdjOWJmMDkzNjM5ZDgxMmIx
ODJkODM2MTgwZWZlLi44ZGE3YzE5ODc3OTJiODc3NDlhNmVhZDdlOTkzZjk2YzdlMTgxZTFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2Rl
cnNNYWMubW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUHJvdGVjdGlvblNw
YWNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVNYWMuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1w
b3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgogCkBAIC02NjksNCArNjcwLDI3IEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dD46OmRlY29kZVBs
YXRmb3JtRGF0YShEZWNvCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPKQordm9pZCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29k
ZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWUmIHZhbHVlKQoreworICAgIEFTU0VSVCh2YWx1ZS5wbGF0Zm9y
bVR5cGUoKSA9PSBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRm
b3JtVHlwZTo6T2JqQyk7CisgICAgaWYgKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKQorICAg
ICAgICBlbmNvZGVPYmplY3QoZW5jb2RlciwgdmFsdWUubmF0aXZlVmFsdWUoKSk7Cit9CisKK09w
dGlvbmFsPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gIEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZGVjb2RlUGxh
dGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSkKK3sKKyAgICBBU1NFUlQocGxh
dGZvcm1UeXBlID09IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxh
dGZvcm1UeXBlOjpPYmpDKTsKKworICAgIGlmIChwbGF0Zm9ybVR5cGUgIT0gV2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBhdXRvIG9iamVjdCA9IGRlY29kZU9iamVjdChk
ZWNvZGVyLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2VkQ2xh
c3Nlc0Zvck5hdGl2ZVZhbHVlcygpKTsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUgeyBwbGF0Zm9ybVR5cGUsIG9iamVjdC52YWx1ZSgpLmdldCgpIH07Cit9Cisj
ZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAppbmRleCBlNjdmMGVkNjJm
ZGE4MmQ1NGVjOWUyMzgzNGQ0Yzg3MTA2ODIzNWQyLi5kNGUyN2MwNDRhYTQzZDdhMTMwMWZlMjAy
YWZiOTBkYmZiZmM0MjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dl
YkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3Nv
dXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKQEAgLTI2Myw1ICsyNjMsMTggQEAgYm9v
bCBBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYs
IEZvbnRIYW5kbGUmKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShWSURFTykK
K3ZvaWQgQXJndW1lbnRDb2RlcjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjplbmNv
ZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZVZhbHVlJiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwor
T3B0aW9uYWw8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiAgQXJndW1lbnRDb2RlcjxT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2Rl
ciYgZGVjb2RlciwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0
Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcAppbmRleCA5ZGMwZWJiNjA2NjQ4OTdmODJkYjdlMDUxODA4ZjBlNDg5ZGM1Mjc5Li5hNjBi
YjRmOWNkMjMxZDkxOTAzODI0MjE0MmUzYjBlZTk4ZTM3YmRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwCkBAIC02NywxMyArNjcsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiB9IHdoaWxlICgwKQogI2VuZGlmCiAKLU1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlciYgbWFuYWdlciwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiBjb25m
aWd1cmF0aW9uKQorTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2Vy
KQogICAgIDogbV9wbGF5ZXIocGxheWVyKQogICAgICwgbV9tZWRpYVJlc291cmNlTG9hZGVyKHBs
YXllci0+Y3JlYXRlUmVzb3VyY2VMb2FkZXIoKSkKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQog
ICAgICwgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCiAgICAgLCBt
X2lkKHBsYXllcklkZW50aWZpZXIpCi0gICAgLCBtX2NvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlv
bikKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKCZwbGF5ZXItPm1l
ZGlhUGxheWVyTG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBs
YXllckxvZ0lkZW50aWZpZXIoKSkKQEAgLTgyLDYgKzgxLDEyIEBAIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1l
ZGlhUGxhCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmln
dXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92
ZShjb25maWd1cmF0aW9uKTsKKyAgICBtX3BsYXllci0+bWVkaWFFbmdpbmVVcGRhdGVkKCk7Cit9
CisKIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgp
CiB7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CkBAIC00ODQsNiArNDg5LDQwIEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpCiAgICAgICAgIHRyYWNrLT5wYXJzZVdlYlZUVEN1ZURhdGFT
dHJ1Y3QoV1RGTW92ZShkYXRhKSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjphZGREYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgTWVk
aWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0
YSkKK3sKKyAgICBBU1NFUlQobV90ZXh0VHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKwor
ICAgIGlmIChjb25zdCBhdXRvJiB0cmFjayA9IG1fdGV4dFRyYWNrcy5nZXQoaWRlbnRpZmllcikp
CisgICAgICAgIHRyYWNrLT5hZGREYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCks
IFdURk1vdmUoZGF0YSkpOworfQorCisjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBlKFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYm
IGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YSwgU3RyaW5nJiYgdHlw
ZSkKK3sKKyAgICBBU1NFUlQobV90ZXh0VHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKwor
ICAgIGlmIChjb25zdCBhdXRvJiB0cmFjayA9IG1fdGV4dFRyYWNrcy5nZXQoaWRlbnRpZmllcikp
CisgICAgICAgIHRyYWNrLT5hZGREYXRhQ3VlV2l0aFR5cGUoV1RGTW92ZShzdGFydCksIFdURk1v
dmUoZW5kKSwgV1RGTW92ZShkYXRhKSwgV1RGTW92ZSh0eXBlKSk7Cit9CisKK3ZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjp1cGRhdGVEYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YSkKK3sKKyAgICBBU1NFUlQobV90ZXh0
VHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKworICAgIGlmIChjb25zdCBhdXRvJiB0cmFj
ayA9IG1fdGV4dFRyYWNrcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHRyYWNrLT51cGRhdGVE
YXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdURk1vdmUoZGF0YSkpOworfQor
Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRp
bWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGEpCit7CisgICAg
QVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAoY29u
c3QgYXV0byYgdHJhY2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICB0
cmFjay0+cmVtb3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXVEZNb3Zl
KGRhdGEpKTsKK30KKyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRk
UmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAg
IGF1dG8gYWRkUmVzdWx0ID0gbV92aWRlb1RyYWNrcy5lbnN1cmUoaWRlbnRpZmllciwgWyZdIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDdmNzM5MDQxOTM3ZTExZjRhZDAyNWExODMw
ZTVjZjNjODk1MDBkYTguLjhiMGNlMzljNTAzMzVmNjI0MWMwZTkyODRmZjkzMDE0ZGUxMGJlODEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtNDAsMTIgKzQwLDE0IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIElTT1dlYlZUVEN1ZTsKK2NsYXNzIFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVWYWx1ZTsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlOwogY2xhc3MgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTsKK2NsYXNz
IFVzZXJEYXRhOwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU7CiBzdHJ1Y3QgVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbjsKQEAgLTU5LDE0ICs2MSwxNiBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUgZmluYWwKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUoV2ViQ29yZTo6TWVkaWFQbGF5
ZXIqIHBsYXllciwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBjb25z
dCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IGNyZWF0ZShXZWJD
b3JlOjpNZWRpYVBsYXllciogcGxheWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIm
IG1hbmFnZXIpCiAgICAgewotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU+KHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWRlbnRpZmllciwg
bWFuYWdlciwgY29uZmlndXJhdGlvbik7CisgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZT4ocGxheWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBpZGVu
dGlmaWVyLCBtYW5hZ2VyKTsKICAgICB9CiAKLSAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUo
V2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlciYsIGNvbnN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlv
biYpOworICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShXZWJDb3JlOjpNZWRpYVBsYXllcios
IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJik7
CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpOwogCisgICAgdm9pZCBzZXRDb25maWd1
cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmKTsKKwogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAK
ICAgICB2b2lkIGludmFsaWRhdGUoKSB7IG1faW52YWxpZCA9IHRydWU7IH0KQEAgLTEwNCw2ICsx
MDgsMTMgQEAgcHVibGljOgogICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSYmKTsKICAgICB2b2lkIHBhcnNl
V2ViVlRUQ3VlRGF0YVN0cnVjdChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpJU09XZWJWVFRDdWUmJik7CiAKKyAgICB2b2lkIGFkZERhdGFDdWUoVHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgSVBDOjpE
YXRhUmVmZXJlbmNlJiYpOworI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQorICAgIHZvaWQgYWRk
RGF0YUN1ZVdpdGhUeXBlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYm
IHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZSYmLCBTdHJpbmcmJik7CisgICAgdm9pZCB1cGRhdGVEYXRhQ3VlKFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFdl
YkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKKyAgICB2b2lkIHJlbW92
ZURhdGFDdWUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQs
IE1lZGlhVGltZSYmIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
JiYpOworI2VuZGlmCisKICAgICB2b2lkIHJlcXVlc3RSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCByZW1vdmVSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllcik7CiAgICAgdm9pZCByZXNvdXJjZU5vdFN1cHBvcnRlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgppbmRleCBjNDA0ZGM2NzQwNzM3YTM2OGQ0
ZmE2OTQyYThlOTYwOTc3ODQ2MDdiLi5lODg5N2I2YTEwYTEwZDRiNzAwOTI5OGM3YWEyNzI4YmZl
MTEyOTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpA
QCAtNTAsMTAgKzUwLDEyIEBAIG1lc3NhZ2VzIC0+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBO
b3RSZWZDb3VudGVkIHsKICAgICBQYXJzZVdlYlZUVEN1ZURhdGEoV2ViS2l0OjpUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKQogICAg
IFBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgdHJhY2tJRCwgV2ViQ29yZTo6SVNPV2ViVlRUQ3VlIGN1ZURhdGEpCiAKLSAgICAjIyBB
ZGREYXRhQ3VlKE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgSVBDOjpEYXRhUmVmZXJl
bmNlIGRhdGEpCi0gICAgIyMgQWRkRGF0YUN1ZShNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBl
bmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgZGF0YSwgU3RyaW5nIHR5cGUp
Ci0gICAgIyMgVXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdl
YkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgZGF0YSkKLSAgICAjIyBSZW1vdmVEYXRh
Q3VlKE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZSBkYXRhKQorICAgIEFkZERhdGFDdWUoV2ViS2l0OjpUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwg
SVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCisjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCisgICAg
QWRkRGF0YUN1ZVdpdGhUeXBlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0
cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBjdWVEYXRhLCBTdHJpbmcgdHlwZSkKKyAgICBVcGRhdGVE
YXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBNZWRp
YVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZSBjdWVEYXRhKQorICAgIFJlbW92ZURhdGFDdWUoV2ViS2l0OjpUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVu
ZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIGN1ZURhdGEpCisjZW5k
aWYKIAogICAgICMjIEFkZEdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEgY3VlKQog
ICAgICMjIFVwZGF0ZUdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEgY3VlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IDhmMDUzNzY4Mzc4ZWIwNWNlZDMyMWZmY2Yx
MTkyM2I1OWVlZmMzMmIuLjM4YTUzYTBjYmNmZjg5ZDQ1ZWJjZDQxZTdlNmMzNTgzYmQyN2QzYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTE0NCw3ICsxNDQsNiBAQCB2b2lk
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJiBwYQogCiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNyZWF0ZVJlbW90ZU1lZGlhUGxh
eWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKQogewotICAgIGF1dG8gaWQgPSBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwogCiAgICAgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9uOwogICAgIHByb3h5
Q29uZmlndXJhdGlvbi5yZWZlcnJlciA9IHBsYXllci0+cmVmZXJyZXIoKTsKQEAgLTE1OSwxNSAr
MTU4LDE5IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtCiAgICAgcHJveHlDb25maWd1cmF0aW9u
LnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSA9IHBsYXllci0+c2hvdWxkVXNlUGVyc2lzdGVudENh
Y2hlKCk7CiAgICAgcHJveHlDb25maWd1cmF0aW9uLmlzVmlkZW8gPSBwbGF5ZXItPmlzVmlkZW9Q
bGF5ZXIoKTsKIAorICAgIGF1dG8gaWRlbnRpZmllciA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0
aW9uIHBsYXllckNvbmZpZ3VyYXRpb247Ci0gICAgYm9vbCBzZW5kU3VjY2VlZGVkID0gZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVBsYXllcihpZCwgcmVtb3RlRW5naW5l
SWRlbnRpZmllciwgcHJveHlDb25maWd1cmF0aW9uKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVBsYXllcjo6UmVwbHkocGxheWVyQ29uZmlndXJh
dGlvbiksIDApOwotICAgIGlmICghc2VuZFN1Y2NlZWRlZCkgewotICAgICAgICBXVEZMb2dBbHdh
eXMoIkZhaWxlZCB0byBjcmVhdGUgcmVtb3RlIG1lZGlhIHBsYXllci4iKTsKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgfQorICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkZW50aWZpZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRo
aXMpLCBpZGVudGlmaWVyXShhdXRvJiYgcGxheWVyQ29uZmlndXJhdGlvbikgeworICAgICAgICBp
ZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChjb25zdCBh
dXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICAgICAgcGxh
eWVyLT5zZXRDb25maWd1cmF0aW9uKFdURk1vdmUocGxheWVyQ29uZmlndXJhdGlvbikpOworICAg
IH0sIDApOworCisgICAgYXV0byByZW1vdGVQbGF5ZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OmNyZWF0ZShwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsICp0
aGlzKTsKKyAgICBtX3BsYXllcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKCpyZW1vdGVQ
bGF5ZXIpKTsKIAotICAgIGF1dG8gcmVtb3RlUGxheWVyID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpjcmVhdGUocGxheWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBpZCwgKnRoaXMsIHBs
YXllckNvbmZpZ3VyYXRpb24pOwotICAgIG1fcGxheWVycy5hZGQoaWQsIG1ha2VXZWFrUHRyKCpy
ZW1vdGVQbGF5ZXIpKTsKICAgICByZXR1cm4gcmVtb3RlUGxheWVyOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIuaAppbmRleCBiMjY2YjM5ODRjMzgwY2QzNjQ4MjIxNDM1ZDNmODRmZTFiNWFh
Nzc1Li4zMjBlYzMwMTg5ZDZmYzU2MmYyYWViZmY1MWM5MGY3NGVkZjhkYTAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyLmgKQEAgLTUxLDcgKzUxLDggQEAgY2xhc3MgV2ViUHJvY2VzczsKIHN0
cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogCiBjbGFzcyBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXIKLSAgICA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCB7CisgICAg
OiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIoV2ViUHJv
Y2VzcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9U
ZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggNWM3ODc2NGUwYzE3NDEwY2Iy
Mzc2OGE0NTE1YmQ0MjA0NTgzNDNmMS4uNmE2NjIyYTM5NTQ5OTAwNzEwNmJkNDkwOTcxMTA1ZDU4
YjgzYTk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9U
ZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBAIC04OCw2NiArODgsNzIgQEAg
dm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKFRleHRUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmEKICAgICBtX2lzRGVmYXVsdCA9IGNvbmZpZ3VyYXRpb24u
aXNEZWZhdWx0OwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWUo
Y29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQq
LCB1bnNpZ25lZCkKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkR2VuZXJpY0N1ZShH
ZW5lcmljQ3VlRGF0YSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotI2lmIEVOQUJM
RShEQVRBQ1VFX1ZBTFVFKQotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZT4mJiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTo6dXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVE
YXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlJikKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVt
b3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlJikKKwordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVI
ZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQVNT
RVJUKGNsaWVudCgpKTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisg
ICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFdURk1vdmUoaGVhZGVyKSk7CiB9
CiAKLSNlbmRpZgotCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZEdlbmVyaWNDdWUo
R2VuZXJpY0N1ZURhdGEmKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZU
VEN1ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgQVNTRVJUKGNsaWVudCgpKTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0g
dGhpcy0+Y2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRDdWVEYXRhKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCkpOwogfQog
Ci12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1
ZURhdGEmKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFT
dHJ1Y3QoSVNPV2ViVlRUQ3VlJiYgY3VlRGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVu
dCgpKQorICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0YShXVEZNb3ZlKGN1ZURhdGEp
KTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpyZW1vdmVHZW5lcmljQ3VlKEdl
bmVyaWNDdWVEYXRhJikKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZShN
ZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UmJiBk
YXRhKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQVNTRVJUKGNsaWVudCgpKTsKKyAg
ICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+YWRk
RGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCByZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKIH0KIAotCi12b2lkIFRleHRU
cmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJiBoZWFkZXIp
CisjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6
OmFkZERhdGFDdWVXaXRoVHlwZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUsIFN0cmluZyYmIHR5cGUp
CiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+
Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFdURk1vdmUo
aGVhZGVyKSk7CisgICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RG
TW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRh
VmFsdWUpKSwgdHlwZSk7CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VX
ZWJWVFRDdWVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3ZvaWQgVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFU
aW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUpCiB7
CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xp
ZW50KCkpCi0gICAgICAgIGNsaWVudC0+cGFyc2VXZWJWVFRDdWVEYXRhKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCkpOworICAgICAgICBjbGll
bnQtPnVwZGF0ZURhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUoZGF0YVZhbHVlKSkpOwogfQogCi12b2lk
IFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChJU09XZWJW
VFRDdWUmJiBjdWVEYXRhKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpyZW1vdmVEYXRh
Q3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZSYmIGRhdGFWYWx1ZSkKIHsKICAgICBBU1NFUlQoY2xpZW50KCkpOwogICAg
IGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAgICAgY2xpZW50LT5wYXJz
ZVdlYlZUVEN1ZURhdGEoV1RGTW92ZShjdWVEYXRhKSk7CisgICAgICAgIGNsaWVudC0+cmVtb3Zl
RGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CiB9Ci0KKyNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaAppbmRleCA2YWM5YzY5ZDAx
OTIwZDljOTQxMzJiODgzZTU2ZjY1YmQ4ZWMzY2NjLi43YjdmNzAzY2I0OTdkZWRlYTM5MWRiNTlj
YzkyYmVjZTE1YTU5MmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaApAQCAtMzIsNiArMzIsMTEg
QEAKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIEdlbmVyaWNDdWVEYXRhOworY2xhc3MgSVNPV2ViVlRUQ3VlOworfQorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwpAQCAtNDQsMjEg
KzQ5LDIxIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikp
KTsKICAgICB9CiAKLSAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCk7CisgICAgdm9pZCBh
ZGREYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJl
ZmVyZW5jZSYmKTsKIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAgIHZvaWQgYWRkRGF0
YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+JiYsIGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgdXBk
YXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwg
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpOwotICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShjb25z
dCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZSYpOworICAgIHZvaWQgYWRkRGF0YUN1ZVdpdGhUeXBlKE1lZGlhVGltZSYmIHN0
YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmLCBT
dHJpbmcmJik7CisgICAgdm9pZCB1cGRhdGVEYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRp
YVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKKyAgICB2b2lk
IHJlbW92ZURhdGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOwogI2VuZGlmCiAKLSAgICB2b2lkIGFkZEdlbmVy
aWNDdWUoR2VuZXJpY0N1ZURhdGEmKTsKLSAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJp
Y0N1ZURhdGEmKTsKLSAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKTsK
KyAgICB2b2lkIGFkZEdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEmKTsKKyAgICB2
b2lkIHVwZGF0ZUdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEmKTsKKyAgICB2b2lk
IHJlbW92ZUdlbmVyaWNDdWUoV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEmKTsKIAogICAgIHZvaWQg
cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmKTsKICAgICB2b2lkIHBhcnNlV2ViVlRUQ3Vl
RGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKLSAgICB2b2lkIHBhcnNlV2ViVlRUQ3Vl
RGF0YVN0cnVjdChJU09XZWJWVFRDdWUmJik7CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGFT
dHJ1Y3QoV2ViQ29yZTo6SVNPV2ViVlRUQ3VlJiYpOwogCiAgICAgdm9pZCB1cGRhdGVDb25maWd1
cmF0aW9uKFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NWIzMmU5ZDMwOTk0NmM1ZWJiNTliYzI4YzIzNTU2OGI0MmQxMjYxNS4uNTY1OWUwOTUwYTMzMzdl
MDAzYTYxYWVlMjY1NWJhZDRkYWNkMmQ1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAy
LTE5ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1
cHBvcnQgaW4tYmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BV
IFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNzkwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBncHUtcHJvY2Vzcy9UZXN0RXhw
ZWN0YXRpb25zOgorCiAyMDIwLTAyLTE5ICBKYXNvbiBMYXdyZW5jZSAgPGxhd3JlbmNlLmpAYXBw
bGUuY29tPgogCiAgICAgICAgIFsgTWFjIHdrMiBdIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvaGFyL2hhci1wYWdlLmh0bWwgaXMgZmxha3kgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL2dwdS1wcm9j
ZXNzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYjI0MDJiOTQ5YTlmN2M3NjFjOTdkOWQyMmZiNmMx
MjU0MThjNGE5NC4uOTEzYTVkNDQ4NDJmYWI5Y2U0NzM0YmRkZjM3YzRlYWU1ZDIwNzVlOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjksNiArMjI5LDgg
QEAgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL21l
ZGlhL3RyYWNrL3RyYWNrLXdlYnZ0dC1zbG93LWxvYWRpbmcuaHRtbCBbIFBhc3MgXQogaHR0cC90
ZXN0cy9tZWRpYS90cmFjay90cmFjay13ZWJ2dHQtc2xvdy1sb2FkaW5nLTIuaHRtbCBbIFBhc3Mg
XQogaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLXdlYnZ0dC10cmFja3MuaHRtbCBbIFBhc3MgXQor
aHR0cC90ZXN0cy9tZWRpYS90cmFjay1pbi1iYW5kLWhscy1tZXRhZGF0YS5odG1sIFsgUGFzcyBd
CitodHRwL3Rlc3RzL21lZGlhL3RyYWNrLWluLWJhbmQtaGxzLW1ldGFkYXRhLWNyYXNoLmh0bWwg
WyBQYXNzIF0KIAogYWNjZXNzaWJpbGl0eS9tZWRpYS1lbGVtZW50Lmh0bWwgWyBTa2lwIF0KIGZh
c3QvYmxvY2svZmxvYXQvbGlzdC1tYXJrZXItaXMtZmxvYXQtY3Jhc2guaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391319</attachid>
            <date>2020-02-20 12:54:26 -0800</date>
            <delta_ts>2020-02-20 13:45:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207904-20200220125425.patch</filename>
            <type>text/plain</type>
            <size>65761</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2OTE0OWIwYzQxZDFk
NjllMTU5MWNkNTdlNGJkNDU0NTBjMDY3Zi4uNzk5Yzk5ZjhmZTljODhlMWVhYTRiZTBhMTIzYTUx
ZTFkOWQ5NTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTE5ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgaW4t
YmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0
YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4
dFRyYWNrOjpmaW5kSW5jb21wbGV0ZUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFU
ZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRl
eHRUcmFjazo6cmVtb3ZlQ3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0
VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vlc0ludGVybmFsIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpkZXNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpkYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmlzRXF1YWwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6cGxhdGZvcm1UeXBlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmVuY29kaW5nUmVxdWlyZXNQ
bGF0Zm9ybURhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6ZW5jb2RhYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFE
aWRBcnJpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2Vk
Q2xhc3Nlc0Zvck5hdGl2ZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUpOiBEZWxldGVkLgorCiAyMDIwLTAyLTE5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUGxh
dGZvcm1NZWRpYVNlc3Npb246OmNoYXJhY3RlcmlzdGljcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzMjc5NTY3
MjdkNmRlYzhmZjljN2Q4OTY4Y2VlYmEwMTA5ZWYzYjEuLmQxY2E2ZDQzMWY1ZGZhN2QwNzc0MTEy
ZDEzNjVhMmY5ZGQwYTY1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDItMTkg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9y
dCBpbi1iYW5kIG1ldGFkYXRhIGN1ZXMgd2hlbiBsb2FkaW5nIG1lZGlhIGluIHRoZSBHUFUgUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3
OTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTU2MTY0Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4
dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpl
bmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3Rl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjphZGRHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViS2l0OjpU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKToKKyAg
ICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1
ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFD
dWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaDoKKwogMjAyMC0wMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBmYXN0L2RvbS9mb2N1cy1zaGlmdC1jcmFzaC5odG1sIGFuZCBl
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tY2hhbmdlLWluLWRpc2Nvbm5lY3RlZC1mcmFtZS1j
cmFzaC5odG1sIGNyYXNoIGFmdGVyIHIyNTY4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDc0MWNm
MjcyZGFhMTk4Yjg3Njc4OGJhNWY4YWMyYzc1MzFjM2YxYWEuLmFkNGY3MWQ3YzRiNDk2OTEwMzIx
NjMzY2FhZmMzOGQ2MGY2MmNmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtOTk4LDYgKzk5OCw3
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9T
Y3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oCiAgICAgcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgK
ICAgICBwbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgKKyAgICBwbGF0Zm9ybS9T
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaAogICAgIHBsYXRmb3JtL1NoYXJlZEJ1ZmZl
ci5oCiAgICAgcGxhdGZvcm0vU2hhcmVkU3RyaW5nSGFzaC5oCiAgICAgcGxhdGZvcm0vU3VkZGVu
VGVybWluYXRpb24uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAyNDgwZjJhM2YyMmVlMGQzNzRhYzk4ODA2
MDYyMmYxYWRmMmU3MjVjLi40NGJjYTIwYjdmZTU2Njg1NzFlZTgyOGY5NzQ1ZDUwZTFmNmRlOTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtMTc2NCw2ICsxNzY0LDcgQEAgcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVt
ZS5jcHAKIHBsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmNwcAorcGxhdGZvcm0vU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKIHBs
YXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmNwcAogcGxhdGZvcm0vU2hhcmVkU3RyaW5n
SGFzaC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA3OGM4MzdhOGM4NDk1ZmQxM2JjOWM3MWFmZWZmZmYxY2NlZTY2MGYzLi40
ZDBjMTUxNTA1MTZiZmY0MTFhNjFmOWQzNzliMDAxNWQ0NzI1MWU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzUsMTAgKzEz
NSwxMSBAQAogCQkwNzYzOEE5QTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdl
cklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICovOyB9
OwogCQkwNzY5NzA4NjE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzY5NzA4NDE0NjNBRDg3
MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi87IH07CiAJCTA3Njk3MDg3MTQ2M0FEODcw
MEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzY5NzA4NTE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlz
dC5oICovOyB9OworCQkwNzZEMUMxRjIzRjZFQjVCMDBEOTVCMDYgLyogU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzZEMUMxRDIzRjZEOUQ4MDBEOTVCMDYgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDc2RjBEMEUxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oICovOyB9OwogCQkwNzc2NjRGRDE4M0U2QjVDMDAxMzNCOTIgLyogSlNRdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDc3NjY0RkIxODNFNkI1QzAwMTMzQjkyIC8qIEpTUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnQuaCAqLzsgfTsKIAkJMDc3QUYxNDAxOEY0QUU0MDAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3N0FGMTNFMThGNEFFNDAwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
MDc3QUYxNDMxOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0FGMTQx
MThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmggKi87IH07
CisJCTA3N0FGMTQzMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdB
RjE0MTE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3N0I2NDEz
MUI5NEYxMkUwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QjY0MTExQjk0RjEy
RTAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc3QjY0MTcxQjk1RjcwMzAw
M0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdCNjQxNTFCOTVGNzAzMDAzRTlBRDUgLyogTWVk
aWFQbGF5YmFja1RhcmdldE1vY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNzgzMjI4NTE4MDEzRUQ4MDA5OTlFMEMgLyogTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDc4MzIyODMxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCAq
LzsgfTsKQEAgLTU0NzMsNiArNTQ3NCw3IEBACiAJCTA3NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAv
KiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFRyYWNrTGlzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg1MTQ2M0FEODcwMEY1MDJDRiAv
KiBUZXh0VHJhY2tMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRU
cmFja0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2RDFDMUQyM0Y2RDlE
ODAwRDk1QjA2IC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc2RTExQkUxRjY4M0UwRDAwMTc3Mzk1IC8qIFRyYWNrUHJpdmF0ZUJhc2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHJhY2tQcml2YXRlQmFz
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkYwRDA5MTJCODE5MjcwMEMy
NkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU0OTAsNiArNTQ5Miw3IEBACiAJCTA3ODQ2MzQwMTQ1QjE1
MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNUcmFja0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDc4NDYzNDExNDVCMTUxQTAwQTU4REYxIC8qIEpTVHJhY2tFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RyYWNrRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc4NDYzODQxNDVCMUI4RTAwQTU4REYxIC8qIEpTVHJhY2tDdXN0b20uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUcmFja0N1c3RvbS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwNzg2MzNENzIzRkUwOTY0MDA4N0FFMjEgLyogU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4N0M0Njcx
QkZCREY2RjAwNkRDRDdGIC8qIEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFUcmFja1N1cHBvcnRl
ZENvbnN0cmFpbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4N0M0Njgx
QkZCREY2RjAwNkRDRDdGIC8qIEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0
cmFpbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3OEUwOTQ4MTdEMTcwOTYw
MDQyMEFBMSAvKiBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjU5OTQsNyArMjU5OTcsOSBA
QAogCQkJCUJDMjQ0MUMzMEU4QjY1RDAwMDU1MzIwRiAvKiBTY3JvbGxWaWV3LmNwcCAqLywKIAkJ
CQlCQzZENkUyNTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovLAogCQkJCUFCNzE3
MDg4MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCAqLywKKwkJCQkwNzg2MzNE
NzIzRkUwOTY0MDA4N0FFMjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAgKi8sCiAJ
CQkJMDc3QUYxM0UxOEY0QUU0MDAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUu
aCAqLywKKwkJCQkwNzZEMUMxRDIzRjZEOUQ4MDBEOTVCMDYgLyogU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZVZhbHVlLmggKi8sCiAJCQkJMUE0QTk1NEIwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJl
ZEJ1ZmZlci5jcHAgKi8sCiAJCQkJMUE0QTk1NEMwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJlZEJ1
ZmZlci5oICovLAogCQkJCTgzNERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdI
YXNoLmNwcCAqLywKQEAgLTMyMjU0LDYgKzMyMjU5LDcgQEAKIAkJCQlFMThERjMzNTE4QUFGMTJD
MDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3N0FGMTQwMThGNEFFNDAwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwNzdBRjE0MzE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc2RDFDMUYyM0Y2RUI1
QjAwRDk1QjA2IC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTc1RTQ5NzYxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2RjdGNkQxQzMxRTM5QTAwRjExMURDIC8qIFNlcnZl
ck9wZW5EQlJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEOTNBRUUzMTlERjU2NDEwMDJB
ODZDMyAvKiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDA0MDAxYjRiYTllZGZhZWJm
ZWFmMWYyN2NmYTBmY2U0NDdjMTFkODguLjBlODY4YTBiYWU3YmQyMjgyNGFkY2I0NGViNjhhZTE3
OWJjOTFjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAt
MTMzMiw3ICsxMzMyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3RNZWRpYVJlc291
cmNlKCkKICAgICAgICAgICAgIG1vZGUgPSBBdHRyaWJ1dGU7CiAgICAgICAgICAgICBBU1NFUlQo
bV9wbGF5ZXIpOwogICAgICAgICAgICAgaWYgKCFtX3BsYXllcikgewotICAgICAgICAgICAgICAg
IEVSUk9SX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgIiBoYXMgc3JjQXR0ciBidXQgbV9wbGF5ZXIg
aXMgbm90IGNyZWF0ZWQiKTsKKyAgICAgICAgICAgICAgICBFUlJPUl9MT0cobG9nU2l0ZUlkZW50
aWZpZXIsICJoYXMgc3JjQXR0ciBidXQgbV9wbGF5ZXIgaXMgbm90IGNyZWF0ZWQiKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoYXV0
byBmaXJzdFNvdXJjZSA9IGNoaWxkcmVuT2ZUeXBlPEhUTUxTb3VyY2VFbGVtZW50PigqdGhpcyku
Zmlyc3QoKSkgewpAQCAtMzQ3MywxMSArMzQ3MywxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICBpZiAoIXN1Y2Nl
c3MpIHsKICAgICAgICAgaWYgKHN1Y2Nlc3MudmFsdWUoKSA9PSBNZWRpYVBsYXliYWNrRGVuaWFs
UmVhc29uOjpVc2VyR2VzdHVyZVJlcXVpcmVkKQogICAgICAgICAgICAgc2V0QXV0b3BsYXlFdmVu
dFBsYXliYWNrU3RhdGUoQXV0b3BsYXlFdmVudFBsYXliYWNrU3RhdGU6OlByZXZlbnRlZEF1dG9w
bGF5KTsKKyAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJyZWplY3RpbmcgcHJvbWlz
ZTogIiwgc3VjY2Vzcy52YWx1ZSgpKTsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoTm90QWxsb3dl
ZEVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtX2Vycm9yICYmIG1f
ZXJyb3ItPmNvZGUoKSA9PSBNZWRpYUVycm9yOjpNRURJQV9FUlJfU1JDX05PVF9TVVBQT1JURUQp
IHsKKyAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJyZWplY3RpbmcgcHJvbWlzZSBi
ZWNhdXNlIG9mIGVycm9yIik7CiAgICAgICAgIHByb21pc2UucmVqZWN0KE5vdFN1cHBvcnRlZEVy
cm9yLCAiVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMzQ5NSw2ICszNDk3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5
KCkKIAogICAgIGF1dG8gc3VjY2VzcyA9IG1fbWVkaWFTZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRl
ZCgpOwogICAgIGlmICghc3VjY2VzcykgeworICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklF
UiwgInBsYXliYWNrIG5vdCBwZXJtaXR0ZWQ6ICIsIHN1Y2Nlc3MudmFsdWUoKSk7CiAgICAgICAg
IGlmIChzdWNjZXNzLnZhbHVlKCkgPT0gTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNlckdl
c3R1cmVSZXF1aXJlZCkKICAgICAgICAgICAgIHNldEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
KEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlOjpQcmV2ZW50ZWRBdXRvcGxheSk7CiAgICAgICAg
IHJldHVybjsKQEAgLTUwOTQsNyArNTA5Nyw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2No
ZWR1bGVNZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhRW5naW5lV2FzVXBkYXRlZCgpCiB7Ci0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7Cisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKwogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlh
UGxheWVyQ2FsbGJhY2soKTsKICAgICB1cGRhdGVSZW5kZXJlcigpOwogICAgIGVuZFByb2Nlc3Np
bmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CkBAIC01MTI5LDcgKzUxMzMsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhRW5naW5lV2FzVXBkYXRlZCgpCiAKIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKCkKIHsKLSAgICBJTkZPX0xPRyhMT0dJREVO
VElGSUVSKTsKKyAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCBtX3BsYXllci0+ZW5naW5lRGVz
Y3JpcHRpb24oKSk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIG1fZHJvcHBlZFZp
ZGVvRnJhbWVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kRGF0YVRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERh
dGFUZXh0VHJhY2suY3BwCmluZGV4IGYwN2Y3MzhkMjgzNjFjYzRiZmQ0OTJjNjRhODRhYzliZDRj
YTY1MDQuLjBjMDRmM2MxYjVmMTcyZTcyZGNmM2ZhNWUzNWJiMGU5NzMyMDg2NTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcApAQCAt
NTksNyArNTksNyBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFkZERhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbgogCiB2b2lkIEluYmFuZERhdGFU
ZXh0VHJhY2s6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFU
aW1lJiBlbmQsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiYmIHBsYXRmb3JtVmFsdWUs
IGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLSAgICBpZiAobV9pbmNvbXBsZXRlQ3VlTWFwLmNvbnRh
aW5zKHBsYXRmb3JtVmFsdWUucHRyKCkpKQorICAgIGlmIChmaW5kSW5jb21wbGV0ZUN1ZShwbGF0
Zm9ybVZhbHVlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBjdWUgPSBEYXRhQ3VlOjpj
cmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RhcnQsIGVuZCwgcGxhdGZvcm1WYWx1
ZS5jb3B5UmVmKCksIHR5cGUpOwpAQCAtNzAsNyArNzAsNyBAQCB2b2lkIEluYmFuZERhdGFUZXh0
VHJhY2s6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbgogCiAgICAgaWYgKGVuZC5pc1Bvc2l0aXZlSW5maW5pdGUoKSAmJiBtZWRpYUVsZW1lbnQo
KSkgewogICAgICAgICBjdWUtPnNldEVuZFRpbWUobWVkaWFFbGVtZW50KCktPmR1cmF0aW9uTWVk
aWFUaW1lKCkpOwotICAgICAgICBtX2luY29tcGxldGVDdWVNYXAuYWRkKFdURk1vdmUocGxhdGZv
cm1WYWx1ZSksIGN1ZS5jb3B5UmVmKCkpOworICAgICAgICBtX2luY29tcGxldGVDdWVNYXAuYXBw
ZW5kKCZjdWUuZ2V0KCkpOwogICAgIH0KIAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsIGN1
ZS5nZXQoKSk7CkBAIC03OCw5ICs3OCwyMSBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFk
ZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbgogICAg
IGFkZEN1ZShXVEZNb3ZlKGN1ZSkpOwogfQogCitSZWZQdHI8RGF0YUN1ZT4gSW5iYW5kRGF0YVRl
eHRUcmFjazo6ZmluZEluY29tcGxldGVDdWUoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZSYgY3VlVG9GaW5kKQoreworICAgIGF1dG8gaW5kZXggPSBtX2luY29tcGxldGVDdWVNYXAuZmlu
ZE1hdGNoaW5nKFsmXShjb25zdCBhdXRvJiBjdWUpIHsKKyAgICAgICAgcmV0dXJuIGN1ZVRvRmlu
ZC5pc0VxdWFsKCpjdWUtPnBsYXRmb3JtVmFsdWUoKSk7CisgICAgfSk7CisKKyAgICBpZiAoaW5k
ZXggPT0gbm90Rm91bmQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIG1f
aW5jb21wbGV0ZUN1ZU1hcFtpbmRleF07Cit9CisKIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6
dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGlu
RW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIFJl
ZlB0cjxEYXRhQ3VlPiBjdWUgPSBtX2luY29tcGxldGVDdWVNYXAuZ2V0KCZwbGF0Zm9ybVZhbHVl
KTsKKyAgICBhdXRvIGN1ZSA9IGZpbmRJbmNvbXBsZXRlQ3VlKHBsYXRmb3JtVmFsdWUpOwogICAg
IGlmICghY3VlKQogICAgICAgICByZXR1cm47CiAKQEAgLTkwLDcgKzEwMiw3IEBAIHZvaWQgSW5i
YW5kRGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBj
b25zdCBNZWRpYVRpbWUmCiAgICAgaWYgKGVuZC5pc1Bvc2l0aXZlSW5maW5pdGUoKSAmJiBtZWRp
YUVsZW1lbnQoKSkKICAgICAgICAgZW5kID0gbWVkaWFFbGVtZW50KCktPmR1cmF0aW9uTWVkaWFU
aW1lKCk7CiAgICAgZWxzZQotICAgICAgICBtX2luY29tcGxldGVDdWVNYXAucmVtb3ZlKCZwbGF0
Zm9ybVZhbHVlKTsKKyAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZUZpcnN0KGN1ZSk7
CiAKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAid2FzIHN0YXJ0ID0gIiwgY3VlLT5zdGFy
dE1lZGlhVGltZSgpLCAiLCBlbmQgPSAiLCBjdWUtPmVuZE1lZGlhVGltZSgpLCAiLCB3aWxsIGJl
IHN0YXJ0ID0gIiwgc3RhcnQsICIsIGVuZCA9ICIsIGVuZCk7CiAKQEAgLTEwMiw4ICsxMTQsOSBA
QCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1l
JiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJgogCiB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnJl
bW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZSYgcGxhdGZvcm1WYWx1ZSkKIHsKLSAgICBpZiAoYXV0byBjdWUgPSBt
X2luY29tcGxldGVDdWVNYXAudGFrZSgmcGxhdGZvcm1WYWx1ZSkpIHsKKyAgICBpZiAoYXV0byBj
dWUgPSBmaW5kSW5jb21wbGV0ZUN1ZShwbGF0Zm9ybVZhbHVlKSkgewogICAgICAgICBJTkZPX0xP
RyhMT0dJREVOVElGSUVSLCAicmVtb3Zpbmc6ICIsICpjdWUpOworICAgICAgICBtX2luY29tcGxl
dGVDdWVNYXAucmVtb3ZlRmlyc3QoY3VlKTsKICAgICAgICAgSW5iYW5kVGV4dFRyYWNrOjpyZW1v
dmVDdWUoKmN1ZSk7CiAgICAgfQogfQpAQCAtMTEyLDcgKzEyNSw4IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEluYmFuZERhdGFUZXh0VHJhY2s6OnJlbW92ZUN1ZShUZXh0VHJhY2tDdWUmIGN1ZSkKIHsK
ICAgICBBU1NFUlQoY3VlLmN1ZVR5cGUoKSA9PSBUZXh0VHJhY2tDdWU6OkRhdGEpOwogCi0gICAg
bV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZShjb25zdF9jYXN0PFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUqPih0b0RhdGFDdWUoJmN1ZSktPnBsYXRmb3JtVmFsdWUoKSkpOworICAgIGlmIChhdXRv
IHBsYXRmb3JtVmFsdWUgPSBjb25zdF9jYXN0PFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUqPih0
b0RhdGFDdWUoJmN1ZSktPnBsYXRmb3JtVmFsdWUoKSkpCisgICAgICAgIHJlbW92ZURhdGFDdWUo
eyB9LCB7IH0sICpwbGF0Zm9ybVZhbHVlKTsKIAogICAgIHJldHVybiBJbmJhbmRUZXh0VHJhY2s6
OnJlbW92ZUN1ZShjdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9JbmJhbmREYXRhVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZERhdGFUZXh0VHJhY2suaAppbmRleCAxYThiZGY2YWU1MjI4YmVmMGNmOGQxZGFkOTVlMzU2ZjYy
OGE0NGYyLi40ZmMzMTNlYWNjNTE3NDEyMzA0Njk4ZjQyZTNjYWVlYTlkMTkzOTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaApAQCAtNTUs
NyArNTUsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZSYpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlbW92ZUN1ZShUZXh0VHJhY2tDdWUm
KSBmaW5hbDsKIAotICAgIEhhc2hNYXA8UmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+
LCBSZWZQdHI8RGF0YUN1ZT4+IG1faW5jb21wbGV0ZUN1ZU1hcDsKKyAgICBSZWZQdHI8RGF0YUN1
ZT4gZmluZEluY29tcGxldGVDdWUoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpOwor
CisgICAgVmVjdG9yPFJlZlB0cjxEYXRhQ3VlPj4gbV9pbmNvbXBsZXRlQ3VlTWFwOwogI2VuZGlm
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAppbmRleCA0N2U2ZGVlOTNk
MDY5Mjk5NzM2MDk1MWU1MTEyMzhkOWUzMDU5OGYyLi4wNzM2NTJmNDQ0NTE1ZThkOGEwY2RlZWIy
MWMwNmM0MzY3NzExMmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKQEAg
LTk2LDYgKzk2LDggQEAgcHVibGljOgogICAgIFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMoKTsKICAg
ICBUZXh0VHJhY2tDdWVMaXN0KiBhY3RpdmVDdWVzKCkgY29uc3Q7CiAKKyAgICBUZXh0VHJhY2tD
dWVMaXN0KiBjdWVzSW50ZXJuYWwoKSBjb25zdCB7IHJldHVybiBtX2N1ZXMuZ2V0KCk7IH0KKwog
ICAgIHZvaWQgY2xlYXJDbGllbnQoKSBvdmVycmlkZSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQog
ICAgIFRleHRUcmFja0NsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IGU1ZGYzYzNiNzg2
NmVhOWZkNDNkYWNjZjRhNDYyMmJkYjY0ODk0MjIuLmNiZGQ4YzAzMWRiN2NmZTBlODQ1NjExOTc2
MjY3ZjI0NTEyMjRlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1
ZS5jcHAKQEAgLTM0MSwxMSArMzQxLDExIEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjpzZXRJc0FjdGl2
ZShib29sIGFjdGl2ZSkKIAogdW5zaWduZWQgVGV4dFRyYWNrQ3VlOjpjdWVJbmRleCgpIGNvbnN0
CiB7Ci0gICAgQVNTRVJUKG1fdHJhY2sgJiYgbV90cmFjay0+Y3VlcygpKTsKLSAgICBpZiAoIW1f
dHJhY2sgfHwgIW1fdHJhY2stPmN1ZXMoKSkKKyAgICBBU1NFUlQobV90cmFjayAmJiBtX3RyYWNr
LT5jdWVzSW50ZXJuYWwoKSk7CisgICAgaWYgKCFtX3RyYWNrIHx8ICFtX3RyYWNrLT5jdWVzSW50
ZXJuYWwoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+Ojpt
YXgoKTsKIAotICAgIHJldHVybiBtX3RyYWNrLT5jdWVzKCktPmN1ZUluZGV4KCp0aGlzKTsKKyAg
ICByZXR1cm4gbV90cmFjay0+Y3Vlc0ludGVybmFsKCktPmN1ZUluZGV4KCp0aGlzKTsKIH0KIAog
Ym9vbCBUZXh0VHJhY2tDdWU6OmlzT3JkZXJlZEJlZm9yZShjb25zdCBUZXh0VHJhY2tDdWUqIG90
aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWJmYjhhNmExZTA3YzRlZmY0ZmE2ZGRk
MDllM2U3OWExZTc5ZTcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlLmgiCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShEQVRBQ1VFX1ZB
TFVFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitSZWY8
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3Jl
YXRlKFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUoKSk7Cit9CisjZW5kaWYKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaAppbmRleCA0NzRhYzFkNGY3NzY0YjVj
ZWMxM2UxN2M2ZWUxOWE4YjQyZDIwMDc3Li4wODU1MGZkZTc3MTRhMmVkNWRhMGVkYjkxNTU2N2Ey
MTM4ZjgwZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoVklERU8p
CiAKKyNpbmNsdWRlICJTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KIApAQCAtMzQsMTYgKzM1LDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWU+IHsKIHB1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IGNyZWF0ZShTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
VmFsdWUmJik7CisKICAgICB2aXJ0dWFsIH5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkgPSBk
ZWZhdWx0OwogCi0gICAgdmlydHVhbCBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpKU0ds
b2JhbE9iamVjdCopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxKU0M6OkFycmF5QnVm
ZmVyPiBkYXRhKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFsKGNvbnN0IFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBKU0M6OkpT
VmFsdWUgZGVzZXJpYWxpemUoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNvbnN0IHsgcmV0dXJuIEpT
Qzo6anNOdWxsKCk7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiBkYXRh
KCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisgICAgdmlydHVhbCBib29sIGlzRXF1YWwoY29uc3Qg
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAg
ICBlbnVtIFBsYXRmb3JtVHlwZSB7CisgICAgZW51bSBjbGFzcyBQbGF0Zm9ybVR5cGUgeworICAg
ICAgICBOb25lLAogICAgICAgICBPYmpDLAogICAgIH07Ci0gICAgdmlydHVhbCBQbGF0Zm9ybVR5
cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGxhdGZvcm1UeXBlIHBs
YXRmb3JtVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFBsYXRmb3JtVHlwZTo6Tm9uZTsgfQorCisgICAg
dmlydHVhbCBib29sIGVuY29kaW5nUmVxdWlyZXNQbGF0Zm9ybURhdGEoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorCisgICAgdmlydHVhbCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUg
ZW5jb2RhYmxlVmFsdWUoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIAogcHJvdGVjdGVkOgogICAg
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRiYzYzMzRhYmUyYjM0YzlmNGFlYjJhM2ZmY2JiZmM3OTFjMGFkZjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgIWRlZmluZWQoX19PQkpDX18pCit0eXBlZGVm
IHN0cnVjdCBvYmpjX29iamVjdCAqaWQ7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
dXNpbmcgUGxhdGZvcm1OYXRpdmVWYWx1ZSA9IGlkOworI2Vsc2UKK3VzaW5nIFBsYXRmb3JtTmF0
aXZlVmFsdWUgPSB2b2lkKjsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUpOworcHVibGljOgorICAgIGVudW0g
Y2xhc3MgUGxhdGZvcm1UeXBlIHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgT2JqQywKKyAgICB9
OworCisgICAgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKFBsYXRmb3JtVHlwZSBwbGF0
Zm9ybVR5cGUsIFBsYXRmb3JtTmF0aXZlVmFsdWUgbmF0aXZlVmFsdWUpCisgICAgICAgIDogbV9u
YXRpdmVWYWx1ZShuYXRpdmVWYWx1ZSkKKyAgICAgICAgLCBtX3R5cGUocGxhdGZvcm1UeXBlKQor
ICAgIHsKKyAgICB9CisgICAgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKCkgPSBkZWZh
dWx0OworICAgIH5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUoKSA9IGRlZmF1bHQ7CisK
KyAgICBQbGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9
CisKKyAgICBQbGF0Zm9ybU5hdGl2ZVZhbHVlIG5hdGl2ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9uYXRpdmVWYWx1ZTsgfQorCisgICAgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRh
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFBsYXRmb3JtVHlwZTo6T2JqQzsgfQorCitwcm90
ZWN0ZWQ6CisgICAgUGxhdGZvcm1OYXRpdmVWYWx1ZSBtX25hdGl2ZVZhbHVlIHsgbnVsbHB0ciB9
OworICAgIFBsYXRmb3JtVHlwZSBtX3R5cGUgeyBQbGF0Zm9ybVR5cGU6Ok5vbmUgfTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggY2E3MWU3ZTBiNTg2YzdiNTVi
MTEyNzMyYmFkNTliMDFkOGE0MTgxYi4uNTdkZmNiZjRiYzdjNDg4NDRkMzgxY2IzNWVjYzY0M2Mx
YWFiNGI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcApAQCAtMTA5LDYgKzEwOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXkoKSBm
aW5hbCB7IH0KICAgICB2b2lkIHBhdXNlKCkgZmluYWwgeyB9CiAKKyAgICBTdHJpbmcgZW5naW5l
RGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTnVsbE1lZGlhUGxheWVyIjsgfQor
CiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG51bGxwdHI7IH0KIAogICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIEZsb2F0U2l6ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuY3BwCmluZGV4IGZlMWMwNjRhZTUxMjc3MjMwOGNj
MmM0Y2IyMjQzZWI5MmU1MzE4MDAuLmI3ODY0ZjdiMzcwZTMzNTI2NzU2Y2RhNjJkNzI3YWMwN2M4
MGI2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Ry
YWNrUHJpdmF0ZUJhc2UuY3BwCkBAIC0zMyw5ICszMywxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKwogc3RhdGljIHVpbnQ2NF90IHNfdW5p
cXVlSWQgPSAwOwogCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiB2b2lkIFRyYWNrUHJpdmF0
ZUJhc2U6OnNldExvZ2dlcihjb25zdCBMb2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9nSWRl
bnRpZmllcikKIHsKICAgICBtX2xvZ2dlciA9ICZsb2dnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQppbmRleCA4MjBkYTg5YzQ2Zjg3MTUzMjk2ZTE2NzRkZjQ2YTFkNzRiZTA2ZjlhLi5iMzdjNDQx
MTMxNDk4ODc5NTQ2ZWM4YTU3YTBkZDhlMTFmNzg0Njk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KQEAgLTMwNzQsNyArMzA3NCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPE5TQXJyCiAgICAgICAg
IGlmIChpdGVtLmtleVNwYWNlKQogICAgICAgICAgICAgdHlwZSA9IG1ldGFkYXRhVHlwZShpdGVt
LmtleVNwYWNlKTsKIAotICAgICAgICBtX21ldGFkYXRhVHJhY2stPmFkZERhdGFDdWUoc3RhcnQs
IGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6Y3JlYXRlKGl0ZW0pLCB0eXBlKTsK
KyAgICAgICAgbV9tZXRhZGF0YVRyYWNrLT5hZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZSh7IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDLCBpdGVtIH0pLCB0eXBlKTsKICAgICB9CiAj
ZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oCmluZGV4IGExMGRjY2MzZTFiNWEzMGRmYmYwMTBh
NzYwNTA1MjgwNmIyMTk2ZWIuLjI2ZDg0YjlhODkyZDZhZmM4NGFlOTNlZGJiMmYwYWI0YmQwNmUz
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaApAQCAtMjksMjggKzI5LDI2IEBACiAKICNpbmNsdWRl
ICJTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgiCiAKLSNpZiBVU0UoRk9VTkRBVElPTikgJiYg
IWRlZmluZWQoX19PQkpDX18pCi10eXBlZGVmIHN0cnVjdCBvYmpjX29iamVjdCAqaWQ7Ci0jZW5k
aWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjIGZpbmFsIDogcHVibGljIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgewogcHVibGlj
OgorICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlJiYpOwogICAgIHZpcnR1YWwgflNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMo
KTsKLSAgICBzdGF0aWMgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IGNyZWF0ZShpZCk7
CiAKICAgICBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNv
bnN0IGZpbmFsOwogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0IGZpbmFsOwot
CiAgICAgYm9vbCBpc0VxdWFsKGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25z
dCBmaW5hbDsKKyAgICBQbGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gUGxhdGZvcm1UeXBlOjpPYmpDOyB9CisgICAgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxh
dGZvcm1EYXRhKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgUGxhdGZvcm1U
eXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWU6Ok9iakM7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUgZW5jb2RhYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKIAogICAgIGlkIG5hdGl2
ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVWYWx1ZS5nZXQoKTsgfQogCisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIE5TQXJyYXkqIGFsbG93ZWRDbGFzc2VzRm9yTmF0aXZlVmFsdWVz
KCk7CisKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1h
YyhpZCBuYXRpdmVWYWx1ZSk7CiAKICAgICBSZXRhaW5QdHI8aWQ+IG1fbmF0aXZlVmFsdWU7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5tbQppbmRleCBiOTQ5ZWI3Y2RkMjAwMzlmMWNmZmVmOGM0YzVi
Y2Q3YjExM2ViMTk5Li5jOTg0YTllZWE3YTk1OWI2NGFjYzdmMTJkNTE2MDcyMTM4YzdhZTI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5tbQpAQCAtNDgsMjEgKzQ4LDIzIEBAIHN0YXRpYyBKU1ZhbHVl
ICpqc1ZhbHVlV2l0aEFycmF5SW5Db250ZXh0KE5TQXJyYXkgKiwgSlNDb250ZXh0ICopOwogc3Rh
dGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29udGV4dChOU0RpY3Rpb25hcnkg
KiwgSlNDb250ZXh0ICopOwogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0
ZW1JbkNvbnRleHQoQVZNZXRhZGF0YUl0ZW0gKiwgSlNDb250ZXh0ICopOwogc3RhdGljIEpTVmFs
dWUgKmpzVmFsdWVXaXRoVmFsdWVJbkNvbnRleHQoaWQsIEpTQ29udGV4dCAqKTsKK3N0YXRpYyBO
U0RpY3Rpb25hcnkgKk5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShBVk1ldGFkYXRhSXRl
bSAqKTsKICNlbmRpZgogCi1TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlTWFjKGlkIG5hdGl2ZVZhbHVlKQotICAgIDogU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZSgpCi0gICAgLCBtX25hdGl2ZVZhbHVlKG5hdGl2ZVZhbHVlKQorUmVmPFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiB2YWx1ZSkKIHsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFdURk1vdmUodmFsdWUpKSk7
CiB9CiAKLVNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6On5TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlTWFjKCkKK1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OlNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVNYWMoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgdmFsdWUpCisg
ICAgOiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkKKyAgICAsIG1fbmF0aXZlVmFsdWUodmFs
dWUubmF0aXZlVmFsdWUoKSkKIHsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKTsKIH0KIAotUmVmPFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmNyZWF0ZShpZCBuYXRpdmVW
YWx1ZSkKK1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6On5TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlTWFjKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlTWFjKG5hdGl2ZVZhbHVlKSk7CiB9CiAKIFJlZlB0cjxBcnJheUJ1ZmZlcj4gU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6ZGF0YSgpIGNvbnN0CkBAIC04OSw3ICs5MSw3IEBA
IEpTQzo6SlNWYWx1ZSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpkZXNlcmlhbGl6ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpCiAKIGJvb2wgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZU1hYzo6aXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBvdGhlcikgY29u
c3QKIHsKLSAgICBpZiAob3RoZXIucGxhdGZvcm1UeXBlKCkgIT0gU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6T2JqQykKKyAgICBpZiAob3RoZXIucGxhdGZvcm1UeXBlKCkgIT0gUGxhdGZvcm1U
eXBlOjpPYmpDKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdCBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlTWFjKiBvdGhlck9iakMgPSB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMoJm90aGVyKTsKQEAgLTEwNywxMCArMTA5LDI0IEBAIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVNYWMqIHRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhTZXJpYWxpemVkUGxhdGZv
cm1ECiAKIGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMqIHRvU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZU1hYyhjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKiByZXApCiB7
Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihyZXAtPnBsYXRm
b3JtVHlwZSgpID09IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6Ok9iakMpOworICAgIFJFTEVB
U0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocmVwLT5wbGF0Zm9ybVR5cGUoKSA9
PSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpOwogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKj4ocmVw
KTsKIH0KIAorTlNBcnJheSogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6YWxsb3dlZENs
YXNzZXNGb3JOYXRpdmVWYWx1ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRh
aW5QdHI8TlNBcnJheT4+IGFsbG93ZWRDbGFzc2VzKEBbIFtOU1N0cmluZyBjbGFzc10sIFtOU051
bWJlciBjbGFzc10sIFtOU0xvY2FsZSBjbGFzc10sIFtOU0RpY3Rpb25hcnkgY2xhc3NdLCBbTlNB
cnJheSBjbGFzc10sIFtOU0RhdGEgY2xhc3NdIF0pOworICAgIHJldHVybiBhbGxvd2VkQ2xhc3Nl
cy5nZXQoKS5nZXQoKTsKK30KKworU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmVuY29kYWJsZVZhbHVlKCkgY29uc3QKK3sKKyAgICBp
ZiAoW21fbmF0aXZlVmFsdWUuZ2V0KCkgaXNLaW5kT2ZDbGFzczpQQUw6OmdldEFWTWV0YWRhdGFJ
dGVtQ2xhc3MoKV0pCisgICAgICAgIHJldHVybiB7IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVW
YWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDLCBOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0ZW0o
bV9uYXRpdmVWYWx1ZS5nZXQoKSkgfTsKKworICAgIHJldHVybiB7IFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDLCBtX25hdGl2ZVZhbHVlLmdldCgpIH07
Cit9CisKICNpZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVX
aXRoVmFsdWVJbkNvbnRleHQoaWQgdmFsdWUsIEpTQ29udGV4dCAqY29udGV4dCkKIHsKQEAgLTE5
Myw2ICsyMDksMTEgQEAgc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29u
dGV4dChOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnksIEpTQ29udGUKIH0KIAogc3RhdGljIEpTVmFs
dWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZNZXRhZGF0YUl0ZW0gKml0
ZW0sIEpTQ29udGV4dCAqY29udGV4dCkKK3sKKyAgICByZXR1cm4ganNWYWx1ZVdpdGhEaWN0aW9u
YXJ5SW5Db250ZXh0KE5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShpdGVtKSwgY29udGV4
dCk7Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKk5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRh
SXRlbShBVk1ldGFkYXRhSXRlbSAqaXRlbSkKIHsKICAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpk
aWN0aW9uYXJ5ID0gW05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeV07CiAKQEAgLTIzMCw3
ICsyNTEsNyBAQCBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhBVk1ldGFkYXRhSXRlbUluQ29u
dGV4dChBVk1ldGFkYXRhSXRlbSAqaXRlbSwgSlNDb250ZQogICAgIGlmIChpdGVtLnZhbHVlKQog
ICAgICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6aXRlbS52YWx1ZSBmb3JLZXk6QCJkYXRhIl07
CiAKLSAgICByZXR1cm4ganNWYWx1ZVdpdGhEaWN0aW9uYXJ5SW5Db250ZXh0KGRpY3Rpb25hcnks
IGNvbnRleHQpOworICAgIHJldHVybiBkaWN0aW9uYXJ5OwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2NGYzY2JmMjBjNTJj
MzYyMDZhYWViOWM0OTk3YTcyZjViZTQwZjg3Li40Y2JkNDYxNGI2MmI4YzNlN2Q0ZjU2Y2E5NTBj
OTQ0NzYxMjk5MzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yNCw4ICsyNCw4IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNz
YWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAg
ICBDcmVhdGVNZWRpYVBsYXllcihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9uKSAtPiAo
c3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZp
Z3VyYXRpb24pIFN5bmNocm9ub3VzCi0gICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkKQorICAgIENyZWF0ZU1lZGlhUGxheWVy
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50
OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29uZmlndXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRpb24pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKKyAg
ICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkKQogCiAgICAgR2V0U3VwcG9ydGVkVHlwZXMoZW51bTp1aW50OF90IFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVu
dGlmaWVyKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCiAgICAgU3VwcG9y
dHNUeXBlQW5kQ29kZWNzKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYkNv
cmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgdHlwZSkgLT4gKGVudW06dWludDhfdCBX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCkgU3luY2hyb25v
dXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0
VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4
dFRyYWNrUHJveHkuY3BwCmluZGV4IGI3NmRjOWIwZDQ2Zjg2Yjc3OTU3ZDNiM2I3ODU0NTljMzk0
OWIyYTYuLjMyYzliN2UxMmU1YTcyY2IwYmJiZDBhOTVlMDMxMThlMDcyNDBiYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1By
b3h5LmNwcApAQCAtOTYsMjUgKzk2LDI1IEBAIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6Omxh
bmd1YWdlQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikKICAgICBjb25maWd1cmF0aW9uQ2hhbmdl
ZCgpOwogfQogCi12b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkKK3ZvaWQg
UmVtb3RlVGV4dFRyYWNrUHJveHk6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkRGF0YUN1ZShtX2lkZW50
aWZpZXIsIHN0YXJ0LCBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3RoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CiB9
CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLXZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6
OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUmVmPFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWU+JiYsIGNvbnN0IFN0cmluZyYpCit2b2lkIFJlbW90ZVRleHRU
cmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlh
VGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4mJiBjdWVEYXRhLCBjb25z
dCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFk
ZERhdGFDdWVXaXRoVHlwZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEtPmVuY29k
YWJsZVZhbHVlKCksIHR5cGUpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwogfQogCi12b2lkIFJl
bW90ZVRleHRUcmFja1Byb3h5Ojp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0
IE1lZGlhVGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKQordm9pZCBSZW1vdGVUZXh0
VHJhY2tQcm94eTo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBN
ZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3VlRGF0YSkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6VXBkYXRlRGF0YUN1ZShtX2lkZW50aWZp
ZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fcGxheWVyLmlkZW5k
aWZpZXIoKSk7CiB9CiAKLXZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OnJlbW92ZURhdGFDdWUo
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZSYpCit2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlJiBjdWVEYXRhKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpS
ZW1vdmVEYXRhQ3VlKG1faWRlbnRpZmllciwgc3RhcnQsIGVuZCwgY3VlRGF0YS5lbmNvZGFibGVW
YWx1ZSgpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAxYzAwYmRhNTNm
NWI2YjQzNGVhNzE5NzlmNGU2MzIxMzgxZGE1NzJjLi44YzlmYTIxYWYzOGE3MTYyYzZjMjA5ZTkz
OTQ2ODkwNmEyNWMzY2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKQEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlYXJj
aFBvcHVwTWVudS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJEYXRh
Lmg+CkBAIC0zMTc0LDQgKzMxNzUsMzIgQEAgT3B0aW9uYWw8U2VyaWFsaXplZEF0dGFjaG1lbnRE
YXRhPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGEKIAogI2Vu
ZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKKyNpZiBFTkFCTEUoVklERU8pCit2
b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZSYgdmFsdWUpCit7CisgICAgYm9vbCBoYXNQbGF0Zm9ybURhdGEgPSB2YWx1ZS5lbmNv
ZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKCk7CisgICAgZW5jb2RlciA8PCBoYXNQbGF0Zm9ybURh
dGE7CisKKyAgICBlbmNvZGVyLmVuY29kZUVudW0odmFsdWUucGxhdGZvcm1UeXBlKCkpOworICAg
IGlmIChoYXNQbGF0Zm9ybURhdGEpCisgICAgICAgIGVuY29kZVBsYXRmb3JtRGF0YShlbmNvZGVy
LCB2YWx1ZSk7Cit9CisKK09wdGlvbmFsPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4g
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGJvb2wgaGFzUGxhdGZvcm1EYXRh
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzUGxhdGZvcm1EYXRhKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZTo6UGxhdGZvcm1UeXBlIHR5cGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0o
dHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoaGFzUGxhdGZv
cm1EYXRhKQorICAgICAgICByZXR1cm4gZGVjb2RlUGxhdGZvcm1EYXRhKGRlY29kZXIsIHR5cGUp
OworCisgICAgcmV0dXJuIHt7IH19OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIElQQwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA3YmY3
MWMxN2FiZGQzZDhiMTMxOTAyMjAwNThjOWY5YzIxOWY2MGIzLi5lMzgxNGUyMWY4MzM2YWFmMmY0
NDQzMjMyZTM0NGUwMDc0ZGFlMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90
aWZpY2F0aW9uRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRD
cmVkZW50aWFsc1BvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyVHlwZS5oPgpAQCAt
ODE5LDYgKzgyMCwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YT4gewogCiAjZW5kaWYgLy8gRU5BQkxFKEFUVEFDSE1F
TlRfRUxFTUVOVCkKIAorI2lmIEVOQUJMRShWSURFTykKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiB7CisgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlVmFsdWUmKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHN0YXRpYyB2
b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXIm
LCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZSk7
Cit9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIElQQwogCiBuYW1lc3BhY2UgV1RGIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVy
c0N1cmwuY3BwCmluZGV4IDg1MmRmMzFkYjk4Y2M4NmI2YjMzOTEzN2E3YzE3YThjMzlhOTAzMWEu
LjA1Mjc1MzNlZTA5NzAyOGFhMzU4ZjNkMThlOTFjNzE2NTdmMzFiOGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNw
cApAQCAtMjQ2LDQgKzI0NiwxNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmRl
Y29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgRm9udEhhbmRsZSYpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCisjaWYgRU5BQkxFKFZJREVPKQordm9pZCBBcmd1bWVudENvZGVyPFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmIHZhbHVlKQoreworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitPcHRpb25hbDxTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWU+ICBBcmd1bWVudENvZGVyPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46
OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUpCit7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2Rl
cnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
TWFjLm1tCmluZGV4IGVlMjIyNDIzZjA0N2M5YmYwOTM2MzlkODEyYjE4MmQ4MzYxODBlZmUuLjhk
YTdjMTk4Nzc5MmI4Nzc0OWE2ZWFkN2U5OTNmOTZjN2UxODFlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAtMzcs
NiArMzcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVl
c3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oPgog
I2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9NYWNoU2Vu
ZFJpZ2h0Lmg+CiAKQEAgLTY2OSw0ICs2NzAsMjcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY28K
IAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU8pCit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVW
YWx1ZSYgdmFsdWUpCit7CisgICAgQVNTRVJUKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFdlYkNv
cmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKTsK
KyAgICBpZiAodmFsdWUucGxhdGZvcm1UeXBlKCkgPT0gV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpCisgICAgICAgIGVuY29kZU9iamVj
dChlbmNvZGVyLCB2YWx1ZS5uYXRpdmVWYWx1ZSgpKTsKK30KKworT3B0aW9uYWw8V2ViQ29yZTo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiAgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2Rl
ciYgZGVjb2RlciwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0
Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKQoreworICAgIEFTU0VSVChwbGF0Zm9ybVR5cGUgPT0gV2Vi
Q29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMp
OworCisgICAgaWYgKHBsYXRmb3JtVHlwZSAhPSBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIGF1dG8gb2JqZWN0ID0gZGVjb2RlT2JqZWN0KGRlY29kZXIsIFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmFsbG93ZWRDbGFzc2VzRm9yTmF0aXZlVmFs
dWVzKCkpOworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSB7IHBs
YXRmb3JtVHlwZSwgb2JqZWN0LnZhbHVlKCkuZ2V0KCkgfTsKK30KKyNlbmRpZgorCiB9IC8vIG5h
bWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNv
cmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCmluZGV4IGU2N2YwZWQ2MmZkYTgyZDU0ZWM5ZTIzODM0
ZDRjODcxMDY4MjM1ZDIuLmQ0ZTI3YzA0NGFhNDNkN2ExMzAxZmUyMDJhZmI5MGRiZmJmYzQyOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNTb3VwLmNwcApAQCAtMjYzLDUgKzI2MywxOCBAQCBib29sIEFyZ3VtZW50Q29kZXI8
Rm9udEhhbmRsZT46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgRm9udEhhbmRsZSYpCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKFZJREVPKQordm9pZCBBcmd1bWVudENv
ZGVyPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29kZVBsYXRmb3JtRGF0YShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmIHZh
bHVlKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitPcHRpb25hbDxTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+ICBBcmd1bWVudENvZGVyPFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBXZWJD
b3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZSBwbGF0Zm9y
bVR5cGUpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorI2VuZGlmCisKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDlkYzBl
YmI2MDY2NDg5N2Y4MmRiN2UwNTE4MDhmMGU0ODlkYzUyNzkuLmE2MGJiNGY5Y2QyMzFkOTE5MDM4
MjQyMTQyZTNiMGVlOThlMzdiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAg
LTY3LDEzICs2NywxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIH0gd2hpbGUgKDApCiAj
ZW5kaWYKIAotTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBj
b25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCitNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXll
ciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5l
SWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJZGVu
dGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIpCiAgICAgOiBtX3BsYXll
cihwbGF5ZXIpCiAgICAgLCBtX21lZGlhUmVzb3VyY2VMb2FkZXIocGxheWVyLT5jcmVhdGVSZXNv
dXJjZUxvYWRlcigpKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBtX3JlbW90ZUVu
Z2luZUlkZW50aWZpZXIoZW5naW5lSWRlbnRpZmllcikKICAgICAsIG1faWQocGxheWVySWRlbnRp
ZmllcikKLSAgICAsIG1fY29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKQogI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogICAgICwgbV9sb2dnZXIoJnBsYXllci0+bWVkaWFQbGF5ZXJMb2dnZXIo
KSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nSWRlbnRpZmll
cigpKQpAQCAtODIsNiArODEsMTIgQEAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGEKICAgICBJTkZP
X0xPRyhMT0dJREVOVElGSUVSKTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnNldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbikKK3sKKyAgICBtX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24p
OworICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKK30KKwogTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKIHsKICAgICBJTkZPX0xP
RyhMT0dJREVOVElGSUVSKTsKQEAgLTQ4NCw2ICs0ODksNDAgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGkKICAgICAgICAgdHJhY2stPnBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChXVEZNb3ZlKGRh
dGEpKTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWUoVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwg
TWVkaWFUaW1lJiYgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhKQoreworICAgIEFTU0VS
VChtX3RleHRUcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOworCisgICAgaWYgKGNvbnN0IGF1
dG8mIHRyYWNrID0gbV90ZXh0VHJhY2tzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgdHJhY2st
PmFkZERhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgV1RGTW92ZShkYXRhKSk7
Cit9CisKKyNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjphZGREYXRhQ3VlV2l0aFR5cGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhLCBTdHJpbmcmJiB0eXBlKQoreworICAgIEFTU0VS
VChtX3RleHRUcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOworCisgICAgaWYgKGNvbnN0IGF1
dG8mIHRyYWNrID0gbV90ZXh0VHJhY2tzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgdHJhY2st
PmFkZERhdGFDdWVXaXRoVHlwZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXVEZNb3Zl
KGRhdGEpLCBXVEZNb3ZlKHR5cGUpKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnVwZGF0ZURhdGFDdWUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUmJiBkYXRhKQoreworICAgIEFTU0VSVChtX3RleHRUcmFja3MuY29udGFpbnMo
aWRlbnRpZmllcikpOworCisgICAgaWYgKGNvbnN0IGF1dG8mIHRyYWNrID0gbV90ZXh0VHJhY2tz
LmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgdHJhY2stPnVwZGF0ZURhdGFDdWUoV1RGTW92ZShz
dGFydCksIFdURk1vdmUoZW5kKSwgV1RGTW92ZShkYXRhKSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVEYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YSkKK3sKKyAgICBBU1NFUlQobV90ZXh0VHJh
Y2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKworICAgIGlmIChjb25zdCBhdXRvJiB0cmFjayA9
IG1fdGV4dFRyYWNrcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHRyYWNrLT5yZW1vdmVEYXRh
Q3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdURk1vdmUoZGF0YSkpOworfQorI2Vu
ZGlmCisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVWaWRlb1RyYWNr
KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgYXV0byBhZGRSZXN1bHQg
PSBtX3ZpZGVvVHJhY2tzLmVuc3VyZShpZGVudGlmaWVyLCBbJl0gewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmgKaW5kZXggN2Y3MzkwNDE5MzdlMTFmNGFkMDI1YTE4MzBlNWNmM2M4OTUwMGRhOC4u
OGIwY2UzOWM1MDMzNWY2MjQxYzBlOTI4NGZmOTMwMTRkZTEwYmU4MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oCkBAIC00MCwxMiArNDAsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgSVNPV2ViVlRUQ3VlOworY2xhc3MgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVSZW1v
dGU7CiBjbGFzcyBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOworY2xhc3MgVXNlckRhdGE7CiBjbGFz
cyBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTsKIHN0cnVjdCBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbjsKIHN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwpA
QCAtNTksMTQgKzYxLDE2IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBmaW5hbAog
I2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU+IGNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVyLCBXZWJD
b3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5l
SWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFJlbW90ZU1lZGlhUGxh
eWVyQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVy
KiBwbGF5ZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlcikKICAgICB7
Ci0gICAgICAgIHJldHVybiBtYWtlVW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4ocGxh
eWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBpZGVudGlmaWVyLCBtYW5hZ2VyLCBjb25maWd1
cmF0aW9uKTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlPihwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsIG1hbmFnZXIp
OwogICAgIH0KIAotICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShXZWJDb3JlOjpNZWRpYVBs
YXllciosIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyJiwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJik7CisgICAgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImKTsKICAgICB+TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlKCk7CiAKKyAgICB2b2lkIHNldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVk
aWFQbGF5ZXJDb25maWd1cmF0aW9uJiYpOworCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAogICAgIHZvaWQgaW52YWxp
ZGF0ZSgpIHsgbV9pbnZhbGlkID0gdHJ1ZTsgfQpAQCAtMTA0LDYgKzEwOCwxMyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciwgSVBDOjpEYXRhUmVmZXJlbmNlJiYpOwogICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhU3Ry
dWN0KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OklTT1dlYlZUVEN1ZSYm
KTsKIAorICAgIHZvaWQgYWRkRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBN
ZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UmJik7
CisjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCisgICAgdm9pZCBhZGREYXRhQ3VlV2l0aFR5cGUo
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGlt
ZSYmIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYsIFN0cmlu
ZyYmKTsKKyAgICB2b2lkIHVwZGF0ZURhdGFDdWUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOworICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5k
LCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJik7CisjZW5kaWYKKwog
ICAgIHZvaWQgcmVxdWVzdFJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNl
TG9hZGVyOjpMb2FkT3B0aW9ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2
b2lkIHJlc291cmNlTm90U3VwcG9ydGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLm1lc3NhZ2VzLmluCmluZGV4IGM0MDRkYzY3NDA3MzdhMzY4ZDRmYTY5NDJhOGU5NjA5Nzc4
NDYwN2IuLmU4ODk3YjZhMTBhMTBkNGI3MDA5Mjk4YzdhYTI3MjhiZmUxMTI5N2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCkBAIC01MCwxMCArNTAsMTIg
QEAgbWVzc2FnZXMgLT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQgewog
ICAgIFBhcnNlV2ViVlRUQ3VlRGF0YShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgdHJhY2tJRCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCiAgICAgUGFyc2VXZWJWVFRDdWVE
YXRhU3RydWN0KFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBX
ZWJDb3JlOjpJU09XZWJWVFRDdWUgY3VlRGF0YSkKIAotICAgICMjIEFkZERhdGFDdWUoTWVkaWFU
aW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKLSAgICAj
IyBBZGREYXRhQ3VlKE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgV2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZSBkYXRhLCBTdHJpbmcgdHlwZSkKLSAgICAjIyBVcGRhdGVE
YXRhQ3VlKE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZSBkYXRhKQotICAgICMjIFJlbW92ZURhdGFDdWUoTWVkaWFUaW1lIHN0
YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlIGRh
dGEpCisgICAgQWRkRGF0YUN1ZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
dHJhY2tJRCwgTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBJUEM6OkRhdGFSZWZlcmVu
Y2UgZGF0YSkKKyNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKKyAgICBBZGREYXRhQ3VlV2l0aFR5
cGUoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIE1lZGlhVGlt
ZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZVZhbHVlIGN1ZURhdGEsIFN0cmluZyB0eXBlKQorICAgIFVwZGF0ZURhdGFDdWUoV2ViS2l0OjpU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIE1lZGlhVGltZSBzdGFydCwgTWVk
aWFUaW1lIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIGN1ZURh
dGEpCisgICAgUmVtb3ZlRGF0YUN1ZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgdHJhY2tJRCwgTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgY3VlRGF0YSkKKyNlbmRpZgogCiAgICAgIyMgQWRk
R2VuZXJpY0N1ZShXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSBjdWUpCiAgICAgIyMgVXBkYXRlR2Vu
ZXJpY0N1ZShXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSBjdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5jcHAKaW5kZXggOGYwNTM3NjgzNzhlYjA1Y2VkMzIxZmZjZjExOTIzYjU5ZWVmYzMyYi4u
MzhhNTNhMGNiY2ZmODlkNDVlYmNkNDFlN2U2YzM1ODNiZDI3ZDNhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLmNwcApAQCAtMTQ0LDcgKzE0NCw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHBhCiAKIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3RlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXIq
IHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVu
Z2luZUlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBpZCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAKICAgICBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29u
ZmlndXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRpb247CiAgICAgcHJveHlDb25maWd1cmF0aW9uLnJl
ZmVycmVyID0gcGxheWVyLT5yZWZlcnJlcigpOwpAQCAtMTU5LDE1ICsxNTgsMTkgQEAgc3RkOjp1
bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyOjpjcmVhdGVSZW0KICAgICBwcm94eUNvbmZpZ3VyYXRpb24uc2hvdWxkVXNlUGVyc2lz
dGVudENhY2hlID0gcGxheWVyLT5zaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUoKTsKICAgICBwcm94
eUNvbmZpZ3VyYXRpb24uaXNWaWRlbyA9IHBsYXllci0+aXNWaWRlb1BsYXllcigpOwogCisgICAg
YXV0byBpZGVudGlmaWVyID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKTsKICAgICBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmln
dXJhdGlvbjsKLSAgICBib29sIHNlbmRTdWNjZWVkZWQgPSBncHVQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwcm94
eUNvbmZpZ3VyYXRpb24pLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OkNyZWF0ZU1lZGlhUGxheWVyOjpSZXBseShwbGF5ZXJDb25maWd1cmF0aW9uKSwgMCk7Ci0gICAg
aWYgKCFzZW5kU3VjY2VlZGVkKSB7Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiRmFpbGVkIHRvIGNy
ZWF0ZSByZW1vdGUgbWVkaWEgcGxheWVyLiIpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICB9CisgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q3JlYXRlTWVk
aWFQbGF5ZXIoaWRlbnRpZmllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgcHJveHlDb25maWd1
cmF0aW9uKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGlkZW50aWZpZXJd
KGF1dG8mJiBwbGF5ZXJDb25maWd1cmF0aW9uKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1f
cGxheWVycy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgICAgICBwbGF5ZXItPnNldENvbmZpZ3Vy
YXRpb24oV1RGTW92ZShwbGF5ZXJDb25maWd1cmF0aW9uKSk7CisgICAgfSwgMCk7CisKKyAgICBh
dXRvIHJlbW90ZVBsYXllciA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKHBsYXll
ciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWRlbnRpZmllciwgKnRoaXMpOworICAgIG1fcGxh
eWVycy5hZGQoaWRlbnRpZmllciwgbWFrZVdlYWtQdHIoKnJlbW90ZVBsYXllcikpOwogCi0gICAg
YXV0byByZW1vdGVQbGF5ZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZShwbGF5
ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkLCAqdGhpcywgcGxheWVyQ29uZmlndXJhdGlv
bik7Ci0gICAgbV9wbGF5ZXJzLmFkZChpZCwgbWFrZVdlYWtQdHIoKnJlbW90ZVBsYXllcikpOwog
ICAgIHJldHVybiByZW1vdGVQbGF5ZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCmlu
ZGV4IGIyNjZiMzk4NGMzODBjZDM2NDgyMjE0MzVkM2Y4NGZlMWI1YWE3NzUuLjMyMGVjMzAxODlk
NmZjNTYyZjJhZWJmZjUxYzkwZjc0ZWRmOGRhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
aApAQCAtNTEsNyArNTEsOCBAQCBjbGFzcyBXZWJQcm9jZXNzOwogc3RydWN0IFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcgot
ICAgIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50IHsKKyAgICA6IHB1YmxpYyBXZWJQcm9j
ZXNzU3VwcGxlbWVudAorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IGV4cGxpY2l0IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcihXZWJQcm9jZXNzJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVS
ZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQ
cml2YXRlUmVtb3RlLmNwcAppbmRleCA1Yzc4NzY0ZTBjMTc0MTBjYjIzNzY4YTQ1MTViZDQyMDQ1
ODM0M2YxLi42YTY2MjJhMzk1NDk5MDA3MTA2YmQ0OTA5NzExMDVkNThiODNhOTZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVS
ZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTg4LDY2ICs4OCw3MiBAQCB2b2lkIFRleHRUcmFja1By
aXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYQogICAgIG1faXNEZWZhdWx0ID0gY29uZmlndXJhdGlvbi5pc0RlZmF1bHQ7CiB9CiAK
LXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUm
IHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKQordm9p
ZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi0jaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUp
Ci12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1l
JiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlPiYmLCBjb25zdCBTdHJpbmcmKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRh
dGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUmKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpyZW1vdmVHZW5lcmljQ3VlKEdl
bmVyaWNDdWVEYXRhJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFRleHRU
cmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKQorCit2b2lk
IFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJiBo
ZWFkZXIpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NFUlQoY2xpZW50KCkpOwor
ICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKKyAgICAgICAgY2xpZW50LT5w
YXJzZVdlYlZUVEZpbGVIZWFkZXIoV1RGTW92ZShoZWFkZXIpKTsKIH0KIAotI2VuZGlmCi0KLXZv
aWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYp
Cit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBB
U1NFUlQoY2xpZW50KCkpOworICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkK
KyAgICAgICAgY2xpZW50LT5wYXJzZVdlYlZUVEN1ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7CiB9CiAKLXZvaWQgVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZTo6dXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpCit2b2lkIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChJU09XZWJWVFRD
dWUmJiBjdWVEYXRhKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQVNTRVJUKGNsaWVu
dCgpKTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisgICAgICAgIGNs
aWVudC0+cGFyc2VXZWJWVFRDdWVEYXRhKFdURk1vdmUoY3VlRGF0YSkpOwogfQogCi12b2lkIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKQor
dm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0
LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NFUlQoY2xpZW50KCkpOworICAgIGlmIChhdXRvKiBjbGll
bnQgPSB0aGlzLT5jbGllbnQoKSkKKyAgICAgICAgY2xpZW50LT5hZGREYXRhQ3VlKFdURk1vdmUo
c3RhcnQpLCBXVEZNb3ZlKGVuZCksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEu
ZGF0YSgpKSwgZGF0YS5zaXplKCkpOwogfQogCi0KLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZTo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmIGhlYWRlcikKKyNpZiBFTkFCTEUoREFU
QUNVRV9WQUxVRSkKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhU
eXBlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZSYmIGRhdGFWYWx1ZSwgU3RyaW5nJiYgdHlwZSkKIHsKICAgICBBU1NFUlQo
Y2xpZW50KCkpOwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAg
ICAgY2xpZW50LT5wYXJzZVdlYlZUVEZpbGVIZWFkZXIoV1RGTW92ZShoZWFkZXIpKTsKKyAgICAg
ICAgY2xpZW50LT5hZGREYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpLCB0eXBlKTsK
IH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEoY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Ojp1cGRhdGVEYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGFWYWx1ZSkKIHsKICAgICBBU1NFUlQoY2xp
ZW50KCkpOwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAgICAg
Y2xpZW50LT5wYXJzZVdlYlZUVEN1ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
ZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIGNsaWVudC0+dXBkYXRlRGF0YUN1
ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
OjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KElTT1dlYlZUVEN1ZSYmIGN1ZURhdGEp
Cit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFDdWUoTWVkaWFUaW1lJiYg
c3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYg
ZGF0YVZhbHVlKQogewogICAgIEFTU0VSVChjbGllbnQoKSk7CiAgICAgaWYgKGF1dG8qIGNsaWVu
dCA9IHRoaXMtPmNsaWVudCgpKQotICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0YShX
VEZNb3ZlKGN1ZURhdGEpKTsKKyAgICAgICAgY2xpZW50LT5yZW1vdmVEYXRhQ3VlKFdURk1vdmUo
c3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShX
VEZNb3ZlKGRhdGFWYWx1ZSkpKTsKIH0KLQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRU
cmFja1ByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDZhYzljNjlkMDE5MjBkOWM5NDEzMmI4ODNl
NTZmNjViZDhlYzNjY2MuLjdiN2Y3MDNjYjQ5N2RlZGVhMzkxZGI1OWNjOTJiZWNlMTVhNTkyZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oCkBAIC0zMiw2ICszMiwxMSBAQAogI2luY2x1ZGUgIlRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0luYmFuZFRl
eHRUcmFja1ByaXZhdGUuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgR2VuZXJpY0N1
ZURhdGE7CitjbGFzcyBJU09XZWJWVFRDdWU7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CkBAIC00NCwyMSArNDksMjEgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0VHJhY2tQcml2YXRlUmVtb3RlKHBs
YXllciwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAgIH0KIAotICAg
IHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGVuZCwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKTsKKyAgICB2b2lkIGFkZERhdGFDdWUoTWVkaWFU
aW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlJiYpOwogCiAj
aWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCi0gICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlh
VGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZT4mJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCB1cGRhdGVEYXRhQ3VlKGNvbnN0
IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlJik7Ci0gICAgdm9pZCByZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJik7Cisg
ICAgdm9pZCBhZGREYXRhQ3VlV2l0aFR5cGUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYm
IGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYsIFN0cmluZyYmKTsKKyAgICB2
b2lkIHVwZGF0ZURhdGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOworICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShN
ZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWUmJik7CiAjZW5kaWYKIAotICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5lcmljQ3Vl
RGF0YSYpOwotICAgIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpOwotICAg
IHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpOworICAgIHZvaWQgYWRkR2Vu
ZXJpY0N1ZShXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSYpOworICAgIHZvaWQgdXBkYXRlR2VuZXJp
Y0N1ZShXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSYpOworICAgIHZvaWQgcmVtb3ZlR2VuZXJpY0N1
ZShXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSYpOwogCiAgICAgdm9pZCBwYXJzZVdlYlZUVEZpbGVI
ZWFkZXIoU3RyaW5nJiYpOwogICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYpOwotICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KElTT1dl
YlZUVEN1ZSYmKTsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChXZWJDb3JlOjpJ
U09XZWJWVFRDdWUmJik7CiAKICAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YjMyZTlkMzA5OTQ2YzVl
YmI1OWJjMjhjMjM1NTY4YjQyZDEyNjE1Li41NjU5ZTA5NTBhMzMzN2UwMDNhNjFhZWUyNjU1YmFk
NGRhY2QyZDVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDItMTkgIEVyaWMgQ2FybHNv
biAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBpbi1iYW5kIG1l
dGFkYXRhIGN1ZXMgd2hlbiBsb2FkaW5nIG1lZGlhIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3OTA0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81OTU2MTY0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGdwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MjAtMDItMTkgIEphc29uIExhd3JlbmNlICA8bGF3cmVuY2UuakBhcHBsZS5jb20+CiAKICAgICAg
ICAgWyBNYWMgd2syIF0gaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9oYXIvaGFyLXBhZ2Uu
aHRtbCBpcyBmbGFreSBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vz
cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBiMjQwMmI5NDlhOWY3Yzc2MWM5N2Q5ZDIyZmI2YzEyNTQxOGM0YTk0Li45MTNh
NWQ0NDg0MmZhYjljZTQ3MzRiZGRmMzdjNGVhZTVkMjA3NWU4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL2dwdS1w
cm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIyOSw2ICsyMjksOCBAQCBtZWRpYS90cmFjay90
cmFjay1pbi1iYW5kLmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvbWVkaWEvdHJhY2svdHJhY2st
d2VidnR0LXNsb3ctbG9hZGluZy5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL21lZGlhL3RyYWNr
L3RyYWNrLXdlYnZ0dC1zbG93LWxvYWRpbmctMi5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL21l
ZGlhL2hscy9obHMtd2VidnR0LXRyYWNrcy5odG1sIFsgUGFzcyBdCitodHRwL3Rlc3RzL21lZGlh
L3RyYWNrLWluLWJhbmQtaGxzLW1ldGFkYXRhLmh0bWwgWyBQYXNzIF0KK2h0dHAvdGVzdHMvbWVk
aWEvdHJhY2staW4tYmFuZC1obHMtbWV0YWRhdGEtY3Jhc2guaHRtbCBbIFBhc3MgXQogCiBhY2Nl
c3NpYmlsaXR5L21lZGlhLWVsZW1lbnQuaHRtbCBbIFNraXAgXQogZmFzdC9ibG9jay9mbG9hdC9s
aXN0LW1hcmtlci1pcy1mbG9hdC1jcmFzaC5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391331</attachid>
            <date>2020-02-20 13:45:34 -0800</date>
            <delta_ts>2020-02-20 18:05:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207904-20200220134533.patch</filename>
            <type>text/plain</type>
            <size>65775</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2OTE0OWIwYzQxZDFk
NjllMTU5MWNkNTdlNGJkNDU0NTBjMDY3Zi4uNzk5Yzk5ZjhmZTljODhlMWVhYTRiZTBhMTIzYTUx
ZTFkOWQ5NTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTE5ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgaW4t
YmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYUVuZ2luZVdhc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0
YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4
dFRyYWNrOjpmaW5kSW5jb21wbGV0ZUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFU
ZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRl
eHRUcmFjazo6cmVtb3ZlQ3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0
VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vlc0ludGVybmFsIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpkZXNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpkYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmlzRXF1YWwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6cGxhdGZvcm1UeXBlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmVuY29kaW5nUmVxdWlyZXNQ
bGF0Zm9ybURhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6ZW5jb2RhYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFE
aWRBcnJpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjOjp+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2Vk
Q2xhc3Nlc0Zvck5hdGl2ZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUpOiBEZWxldGVkLgorCiAyMDIwLTAyLTE5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUGxh
dGZvcm1NZWRpYVNlc3Npb246OmNoYXJhY3RlcmlzdGljcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzMjc5NTY3
MjdkNmRlYzhmZjljN2Q4OTY4Y2VlYmEwMTA5ZWYzYjEuLmQxY2E2ZDQzMWY1ZGZhN2QwNzc0MTEy
ZDEzNjVhMmY5ZGQwYTY1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDItMTkg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9y
dCBpbi1iYW5kIG1ldGFkYXRhIGN1ZXMgd2hlbiBsb2FkaW5nIG1lZGlhIGluIHRoZSBHUFUgUHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3
OTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTU2MTY0Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4
dFRyYWNrUHJveHk6OnVwZGF0ZURhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0
VHJhY2tQcm94eTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpl
bmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3Rl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjphZGRHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViS2l0OjpU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKToKKyAg
ICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1
ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFD
dWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaDoKKwogMjAyMC0wMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBmYXN0L2RvbS9mb2N1cy1zaGlmdC1jcmFzaC5odG1sIGFuZCBl
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tY2hhbmdlLWluLWRpc2Nvbm5lY3RlZC1mcmFtZS1j
cmFzaC5odG1sIGNyYXNoIGFmdGVyIHIyNTY4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDc0MWNm
MjcyZGFhMTk4Yjg3Njc4OGJhNWY4YWMyYzc1MzFjM2YxYWEuLmFkNGY3MWQ3YzRiNDk2OTEwMzIx
NjMzY2FhZmMzOGQ2MGY2MmNmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtOTk4LDYgKzk5OCw3
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9T
Y3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oCiAgICAgcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgK
ICAgICBwbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgKKyAgICBwbGF0Zm9ybS9T
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaAogICAgIHBsYXRmb3JtL1NoYXJlZEJ1ZmZl
ci5oCiAgICAgcGxhdGZvcm0vU2hhcmVkU3RyaW5nSGFzaC5oCiAgICAgcGxhdGZvcm0vU3VkZGVu
VGVybWluYXRpb24uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAyNDgwZjJhM2YyMmVlMGQzNzRhYzk4ODA2
MDYyMmYxYWRmMmU3MjVjLi40NGJjYTIwYjdmZTU2Njg1NzFlZTgyOGY5NzQ1ZDUwZTFmNmRlOTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtMTc2NCw2ICsxNzY0LDcgQEAgcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVt
ZS5jcHAKIHBsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmNwcAorcGxhdGZvcm0vU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKIHBs
YXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmNwcAogcGxhdGZvcm0vU2hhcmVkU3RyaW5n
SGFzaC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA3OGM4MzdhOGM4NDk1ZmQxM2JjOWM3MWFmZWZmZmYxY2NlZTY2MGYzLi40
ZDBjMTUxNTA1MTZiZmY0MTFhNjFmOWQzNzliMDAxNWQ0NzI1MWU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzUsMTAgKzEz
NSwxMSBAQAogCQkwNzYzOEE5QTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdl
cklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICovOyB9
OwogCQkwNzY5NzA4NjE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzY5NzA4NDE0NjNBRDg3
MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi87IH07CiAJCTA3Njk3MDg3MTQ2M0FEODcw
MEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzY5NzA4NTE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlz
dC5oICovOyB9OworCQkwNzZEMUMxRjIzRjZFQjVCMDBEOTVCMDYgLyogU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzZEMUMxRDIzRjZEOUQ4MDBEOTVCMDYgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDc2RjBEMEUxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oICovOyB9OwogCQkwNzc2NjRGRDE4M0U2QjVDMDAxMzNCOTIgLyogSlNRdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDc3NjY0RkIxODNFNkI1QzAwMTMzQjkyIC8qIEpTUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnQuaCAqLzsgfTsKIAkJMDc3QUYxNDAxOEY0QUU0MDAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3N0FGMTNFMThGNEFFNDAwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
MDc3QUYxNDMxOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0FGMTQx
MThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmggKi87IH07
CisJCTA3N0FGMTQzMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdB
RjE0MTE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3N0I2NDEz
MUI5NEYxMkUwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QjY0MTExQjk0RjEy
RTAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc3QjY0MTcxQjk1RjcwMzAw
M0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdCNjQxNTFCOTVGNzAzMDAzRTlBRDUgLyogTWVk
aWFQbGF5YmFja1RhcmdldE1vY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNzgzMjI4NTE4MDEzRUQ4MDA5OTlFMEMgLyogTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDc4MzIyODMxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCAq
LzsgfTsKQEAgLTU0NzMsNiArNTQ3NCw3IEBACiAJCTA3NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAv
KiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFRyYWNrTGlzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg1MTQ2M0FEODcwMEY1MDJDRiAv
KiBUZXh0VHJhY2tMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRU
cmFja0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2RDFDMUQyM0Y2RDlE
ODAwRDk1QjA2IC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc2RTExQkUxRjY4M0UwRDAwMTc3Mzk1IC8qIFRyYWNrUHJpdmF0ZUJhc2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHJhY2tQcml2YXRlQmFz
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkYwRDA5MTJCODE5MjcwMEMy
NkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU0OTAsNiArNTQ5Miw3IEBACiAJCTA3ODQ2MzQwMTQ1QjE1
MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNUcmFja0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDc4NDYzNDExNDVCMTUxQTAwQTU4REYxIC8qIEpTVHJhY2tFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RyYWNrRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc4NDYzODQxNDVCMUI4RTAwQTU4REYxIC8qIEpTVHJhY2tDdXN0b20uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUcmFja0N1c3RvbS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwNzg2MzNENzIzRkUwOTY0MDA4N0FFMjEgLyogU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4N0M0Njcx
QkZCREY2RjAwNkRDRDdGIC8qIEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFUcmFja1N1cHBvcnRl
ZENvbnN0cmFpbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4N0M0Njgx
QkZCREY2RjAwNkRDRDdGIC8qIEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0
cmFpbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3OEUwOTQ4MTdEMTcwOTYw
MDQyMEFBMSAvKiBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjU5OTQsNyArMjU5OTcsOSBA
QAogCQkJCUJDMjQ0MUMzMEU4QjY1RDAwMDU1MzIwRiAvKiBTY3JvbGxWaWV3LmNwcCAqLywKIAkJ
CQlCQzZENkUyNTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovLAogCQkJCUFCNzE3
MDg4MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCAqLywKKwkJCQkwNzg2MzNE
NzIzRkUwOTY0MDA4N0FFMjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAgKi8sCiAJ
CQkJMDc3QUYxM0UxOEY0QUU0MDAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUu
aCAqLywKKwkJCQkwNzZEMUMxRDIzRjZEOUQ4MDBEOTVCMDYgLyogU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZVZhbHVlLmggKi8sCiAJCQkJMUE0QTk1NEIwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJl
ZEJ1ZmZlci5jcHAgKi8sCiAJCQkJMUE0QTk1NEMwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJlZEJ1
ZmZlci5oICovLAogCQkJCTgzNERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdI
YXNoLmNwcCAqLywKQEAgLTMyMjU0LDYgKzMyMjU5LDcgQEAKIAkJCQlFMThERjMzNTE4QUFGMTJD
MDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3N0FGMTQwMThGNEFFNDAwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwNzdBRjE0MzE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc2RDFDMUYyM0Y2RUI1
QjAwRDk1QjA2IC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTc1RTQ5NzYxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2RjdGNkQxQzMxRTM5QTAwRjExMURDIC8qIFNlcnZl
ck9wZW5EQlJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEOTNBRUUzMTlERjU2NDEwMDJB
ODZDMyAvKiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDA0MDAxYjRiYTllZGZhZWJm
ZWFmMWYyN2NmYTBmY2U0NDdjMTFkODguLjBlODY4YTBiYWU3YmQyMjgyNGFkY2I0NGViNjhhZTE3
OWJjOTFjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAt
MTMzMiw3ICsxMzMyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3RNZWRpYVJlc291
cmNlKCkKICAgICAgICAgICAgIG1vZGUgPSBBdHRyaWJ1dGU7CiAgICAgICAgICAgICBBU1NFUlQo
bV9wbGF5ZXIpOwogICAgICAgICAgICAgaWYgKCFtX3BsYXllcikgewotICAgICAgICAgICAgICAg
IEVSUk9SX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgIiBoYXMgc3JjQXR0ciBidXQgbV9wbGF5ZXIg
aXMgbm90IGNyZWF0ZWQiKTsKKyAgICAgICAgICAgICAgICBFUlJPUl9MT0cobG9nU2l0ZUlkZW50
aWZpZXIsICJoYXMgc3JjQXR0ciBidXQgbV9wbGF5ZXIgaXMgbm90IGNyZWF0ZWQiKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoYXV0
byBmaXJzdFNvdXJjZSA9IGNoaWxkcmVuT2ZUeXBlPEhUTUxTb3VyY2VFbGVtZW50PigqdGhpcyku
Zmlyc3QoKSkgewpAQCAtMzQ3MywxMSArMzQ3MywxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICBpZiAoIXN1Y2Nl
c3MpIHsKICAgICAgICAgaWYgKHN1Y2Nlc3MudmFsdWUoKSA9PSBNZWRpYVBsYXliYWNrRGVuaWFs
UmVhc29uOjpVc2VyR2VzdHVyZVJlcXVpcmVkKQogICAgICAgICAgICAgc2V0QXV0b3BsYXlFdmVu
dFBsYXliYWNrU3RhdGUoQXV0b3BsYXlFdmVudFBsYXliYWNrU3RhdGU6OlByZXZlbnRlZEF1dG9w
bGF5KTsKKyAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJyZWplY3RpbmcgcHJvbWlz
ZTogIiwgc3VjY2Vzcy52YWx1ZSgpKTsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoTm90QWxsb3dl
ZEVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtX2Vycm9yICYmIG1f
ZXJyb3ItPmNvZGUoKSA9PSBNZWRpYUVycm9yOjpNRURJQV9FUlJfU1JDX05PVF9TVVBQT1JURUQp
IHsKKyAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJyZWplY3RpbmcgcHJvbWlzZSBi
ZWNhdXNlIG9mIGVycm9yIik7CiAgICAgICAgIHByb21pc2UucmVqZWN0KE5vdFN1cHBvcnRlZEVy
cm9yLCAiVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMzQ5NSw2ICszNDk3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5
KCkKIAogICAgIGF1dG8gc3VjY2VzcyA9IG1fbWVkaWFTZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRl
ZCgpOwogICAgIGlmICghc3VjY2VzcykgeworICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklF
UiwgInBsYXliYWNrIG5vdCBwZXJtaXR0ZWQ6ICIsIHN1Y2Nlc3MudmFsdWUoKSk7CiAgICAgICAg
IGlmIChzdWNjZXNzLnZhbHVlKCkgPT0gTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNlckdl
c3R1cmVSZXF1aXJlZCkKICAgICAgICAgICAgIHNldEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
KEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlOjpQcmV2ZW50ZWRBdXRvcGxheSk7CiAgICAgICAg
IHJldHVybjsKQEAgLTUwOTQsNyArNTA5Nyw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2No
ZWR1bGVNZWRpYUVuZ2luZVdhc1VwZGF0ZWQoKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhRW5naW5lV2FzVXBkYXRlZCgpCiB7Ci0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7Cisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKwogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlh
UGxheWVyQ2FsbGJhY2soKTsKICAgICB1cGRhdGVSZW5kZXJlcigpOwogICAgIGVuZFByb2Nlc3Np
bmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CkBAIC01MTI5LDcgKzUxMzMsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhRW5naW5lV2FzVXBkYXRlZCgpCiAKIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKCkKIHsKLSAgICBJTkZPX0xPRyhMT0dJREVO
VElGSUVSKTsKKyAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCBtX3BsYXllci0+ZW5naW5lRGVz
Y3JpcHRpb24oKSk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIG1fZHJvcHBlZFZp
ZGVvRnJhbWVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kRGF0YVRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERh
dGFUZXh0VHJhY2suY3BwCmluZGV4IGYwN2Y3MzhkMjgzNjFjYzRiZmQ0OTJjNjRhODRhYzliZDRj
YTY1MDQuLjBjMDRmM2MxYjVmMTcyZTcyZGNmM2ZhNWUzNWJiMGU5NzMyMDg2NTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcApAQCAt
NTksNyArNTksNyBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFkZERhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbgogCiB2b2lkIEluYmFuZERhdGFU
ZXh0VHJhY2s6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFU
aW1lJiBlbmQsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiYmIHBsYXRmb3JtVmFsdWUs
IGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLSAgICBpZiAobV9pbmNvbXBsZXRlQ3VlTWFwLmNvbnRh
aW5zKHBsYXRmb3JtVmFsdWUucHRyKCkpKQorICAgIGlmIChmaW5kSW5jb21wbGV0ZUN1ZShwbGF0
Zm9ybVZhbHVlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBjdWUgPSBEYXRhQ3VlOjpj
cmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RhcnQsIGVuZCwgcGxhdGZvcm1WYWx1
ZS5jb3B5UmVmKCksIHR5cGUpOwpAQCAtNzAsNyArNzAsNyBAQCB2b2lkIEluYmFuZERhdGFUZXh0
VHJhY2s6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbgogCiAgICAgaWYgKGVuZC5pc1Bvc2l0aXZlSW5maW5pdGUoKSAmJiBtZWRpYUVsZW1lbnQo
KSkgewogICAgICAgICBjdWUtPnNldEVuZFRpbWUobWVkaWFFbGVtZW50KCktPmR1cmF0aW9uTWVk
aWFUaW1lKCkpOwotICAgICAgICBtX2luY29tcGxldGVDdWVNYXAuYWRkKFdURk1vdmUocGxhdGZv
cm1WYWx1ZSksIGN1ZS5jb3B5UmVmKCkpOworICAgICAgICBtX2luY29tcGxldGVDdWVNYXAuYXBw
ZW5kKCZjdWUuZ2V0KCkpOwogICAgIH0KIAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsIGN1
ZS5nZXQoKSk7CkBAIC03OCw5ICs3OCwyMSBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFk
ZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbgogICAg
IGFkZEN1ZShXVEZNb3ZlKGN1ZSkpOwogfQogCitSZWZQdHI8RGF0YUN1ZT4gSW5iYW5kRGF0YVRl
eHRUcmFjazo6ZmluZEluY29tcGxldGVDdWUoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZSYgY3VlVG9GaW5kKQoreworICAgIGF1dG8gaW5kZXggPSBtX2luY29tcGxldGVDdWVNYXAuZmlu
ZE1hdGNoaW5nKFsmXShjb25zdCBhdXRvJiBjdWUpIHsKKyAgICAgICAgcmV0dXJuIGN1ZVRvRmlu
ZC5pc0VxdWFsKCpjdWUtPnBsYXRmb3JtVmFsdWUoKSk7CisgICAgfSk7CisKKyAgICBpZiAoaW5k
ZXggPT0gbm90Rm91bmQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIG1f
aW5jb21wbGV0ZUN1ZU1hcFtpbmRleF07Cit9CisKIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6
dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGlu
RW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIFJl
ZlB0cjxEYXRhQ3VlPiBjdWUgPSBtX2luY29tcGxldGVDdWVNYXAuZ2V0KCZwbGF0Zm9ybVZhbHVl
KTsKKyAgICBhdXRvIGN1ZSA9IGZpbmRJbmNvbXBsZXRlQ3VlKHBsYXRmb3JtVmFsdWUpOwogICAg
IGlmICghY3VlKQogICAgICAgICByZXR1cm47CiAKQEAgLTkwLDcgKzEwMiw3IEBAIHZvaWQgSW5i
YW5kRGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBj
b25zdCBNZWRpYVRpbWUmCiAgICAgaWYgKGVuZC5pc1Bvc2l0aXZlSW5maW5pdGUoKSAmJiBtZWRp
YUVsZW1lbnQoKSkKICAgICAgICAgZW5kID0gbWVkaWFFbGVtZW50KCktPmR1cmF0aW9uTWVkaWFU
aW1lKCk7CiAgICAgZWxzZQotICAgICAgICBtX2luY29tcGxldGVDdWVNYXAucmVtb3ZlKCZwbGF0
Zm9ybVZhbHVlKTsKKyAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZUZpcnN0KGN1ZSk7
CiAKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAid2FzIHN0YXJ0ID0gIiwgY3VlLT5zdGFy
dE1lZGlhVGltZSgpLCAiLCBlbmQgPSAiLCBjdWUtPmVuZE1lZGlhVGltZSgpLCAiLCB3aWxsIGJl
IHN0YXJ0ID0gIiwgc3RhcnQsICIsIGVuZCA9ICIsIGVuZCk7CiAKQEAgLTEwMiw4ICsxMTQsOSBA
QCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1l
JiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJgogCiB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnJl
bW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZSYgcGxhdGZvcm1WYWx1ZSkKIHsKLSAgICBpZiAoYXV0byBjdWUgPSBt
X2luY29tcGxldGVDdWVNYXAudGFrZSgmcGxhdGZvcm1WYWx1ZSkpIHsKKyAgICBpZiAoYXV0byBj
dWUgPSBmaW5kSW5jb21wbGV0ZUN1ZShwbGF0Zm9ybVZhbHVlKSkgewogICAgICAgICBJTkZPX0xP
RyhMT0dJREVOVElGSUVSLCAicmVtb3Zpbmc6ICIsICpjdWUpOworICAgICAgICBtX2luY29tcGxl
dGVDdWVNYXAucmVtb3ZlRmlyc3QoY3VlKTsKICAgICAgICAgSW5iYW5kVGV4dFRyYWNrOjpyZW1v
dmVDdWUoKmN1ZSk7CiAgICAgfQogfQpAQCAtMTEyLDcgKzEyNSw4IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEluYmFuZERhdGFUZXh0VHJhY2s6OnJlbW92ZUN1ZShUZXh0VHJhY2tDdWUmIGN1ZSkKIHsK
ICAgICBBU1NFUlQoY3VlLmN1ZVR5cGUoKSA9PSBUZXh0VHJhY2tDdWU6OkRhdGEpOwogCi0gICAg
bV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZShjb25zdF9jYXN0PFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUqPih0b0RhdGFDdWUoJmN1ZSktPnBsYXRmb3JtVmFsdWUoKSkpOworICAgIGlmIChhdXRv
IHBsYXRmb3JtVmFsdWUgPSBjb25zdF9jYXN0PFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUqPih0
b0RhdGFDdWUoJmN1ZSktPnBsYXRmb3JtVmFsdWUoKSkpCisgICAgICAgIHJlbW92ZURhdGFDdWUo
eyB9LCB7IH0sICpwbGF0Zm9ybVZhbHVlKTsKIAogICAgIHJldHVybiBJbmJhbmRUZXh0VHJhY2s6
OnJlbW92ZUN1ZShjdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9JbmJhbmREYXRhVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZERhdGFUZXh0VHJhY2suaAppbmRleCAxYThiZGY2YWU1MjI4YmVmMGNmOGQxZGFkOTVlMzU2ZjYy
OGE0NGYyLi40ZmMzMTNlYWNjNTE3NDEyMzA0Njk4ZjQyZTNjYWVlYTlkMTkzOTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaApAQCAtNTUs
NyArNTUsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZSYpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlbW92ZUN1ZShUZXh0VHJhY2tDdWUm
KSBmaW5hbDsKIAotICAgIEhhc2hNYXA8UmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+
LCBSZWZQdHI8RGF0YUN1ZT4+IG1faW5jb21wbGV0ZUN1ZU1hcDsKKyAgICBSZWZQdHI8RGF0YUN1
ZT4gZmluZEluY29tcGxldGVDdWUoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpOwor
CisgICAgVmVjdG9yPFJlZlB0cjxEYXRhQ3VlPj4gbV9pbmNvbXBsZXRlQ3VlTWFwOwogI2VuZGlm
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAppbmRleCA0N2U2ZGVlOTNk
MDY5Mjk5NzM2MDk1MWU1MTEyMzhkOWUzMDU5OGYyLi4wNzM2NTJmNDQ0NTE1ZThkOGEwY2RlZWIy
MWMwNmM0MzY3NzExMmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKQEAg
LTk2LDYgKzk2LDggQEAgcHVibGljOgogICAgIFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMoKTsKICAg
ICBUZXh0VHJhY2tDdWVMaXN0KiBhY3RpdmVDdWVzKCkgY29uc3Q7CiAKKyAgICBUZXh0VHJhY2tD
dWVMaXN0KiBjdWVzSW50ZXJuYWwoKSBjb25zdCB7IHJldHVybiBtX2N1ZXMuZ2V0KCk7IH0KKwog
ICAgIHZvaWQgY2xlYXJDbGllbnQoKSBvdmVycmlkZSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQog
ICAgIFRleHRUcmFja0NsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IGU1ZGYzYzNiNzg2
NmVhOWZkNDNkYWNjZjRhNDYyMmJkYjY0ODk0MjIuLmNiZGQ4YzAzMWRiN2NmZTBlODQ1NjExOTc2
MjY3ZjI0NTEyMjRlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1
ZS5jcHAKQEAgLTM0MSwxMSArMzQxLDExIEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjpzZXRJc0FjdGl2
ZShib29sIGFjdGl2ZSkKIAogdW5zaWduZWQgVGV4dFRyYWNrQ3VlOjpjdWVJbmRleCgpIGNvbnN0
CiB7Ci0gICAgQVNTRVJUKG1fdHJhY2sgJiYgbV90cmFjay0+Y3VlcygpKTsKLSAgICBpZiAoIW1f
dHJhY2sgfHwgIW1fdHJhY2stPmN1ZXMoKSkKKyAgICBBU1NFUlQobV90cmFjayAmJiBtX3RyYWNr
LT5jdWVzSW50ZXJuYWwoKSk7CisgICAgaWYgKCFtX3RyYWNrIHx8ICFtX3RyYWNrLT5jdWVzSW50
ZXJuYWwoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+Ojpt
YXgoKTsKIAotICAgIHJldHVybiBtX3RyYWNrLT5jdWVzKCktPmN1ZUluZGV4KCp0aGlzKTsKKyAg
ICByZXR1cm4gbV90cmFjay0+Y3Vlc0ludGVybmFsKCktPmN1ZUluZGV4KCp0aGlzKTsKIH0KIAog
Ym9vbCBUZXh0VHJhY2tDdWU6OmlzT3JkZXJlZEJlZm9yZShjb25zdCBUZXh0VHJhY2tDdWUqIG90
aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWJmYjhhNmExZTA3YzRlZmY0ZmE2ZGRk
MDllM2U3OWExZTc5ZTcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlLmgiCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShEQVRBQ1VFX1ZB
TFVFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitSZWY8
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3Jl
YXRlKFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUoKSk7Cit9CisjZW5kaWYKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaAppbmRleCA0NzRhYzFkNGY3NzY0YjVj
ZWMxM2UxN2M2ZWUxOWE4YjQyZDIwMDc3Li4wODU1MGZkZTc3MTRhMmVkNWRhMGVkYjkxNTU2N2Ey
MTM4ZjgwZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoVklERU8p
CiAKKyNpbmNsdWRlICJTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KIApAQCAtMzQsMTYgKzM1LDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWU+IHsKIHB1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IGNyZWF0ZShTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
VmFsdWUmJik7CisKICAgICB2aXJ0dWFsIH5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkgPSBk
ZWZhdWx0OwogCi0gICAgdmlydHVhbCBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpKU0ds
b2JhbE9iamVjdCopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxKU0M6OkFycmF5QnVm
ZmVyPiBkYXRhKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFsKGNvbnN0IFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBKU0M6OkpT
VmFsdWUgZGVzZXJpYWxpemUoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNvbnN0IHsgcmV0dXJuIEpT
Qzo6anNOdWxsKCk7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiBkYXRh
KCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisgICAgdmlydHVhbCBib29sIGlzRXF1YWwoY29uc3Qg
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAg
ICBlbnVtIFBsYXRmb3JtVHlwZSB7CisgICAgZW51bSBjbGFzcyBQbGF0Zm9ybVR5cGUgeworICAg
ICAgICBOb25lLAogICAgICAgICBPYmpDLAogICAgIH07Ci0gICAgdmlydHVhbCBQbGF0Zm9ybVR5
cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGxhdGZvcm1UeXBlIHBs
YXRmb3JtVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFBsYXRmb3JtVHlwZTo6Tm9uZTsgfQorCisgICAg
dmlydHVhbCBib29sIGVuY29kaW5nUmVxdWlyZXNQbGF0Zm9ybURhdGEoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorCisgICAgdmlydHVhbCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUg
ZW5jb2RhYmxlVmFsdWUoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIAogcHJvdGVjdGVkOgogICAg
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRiYzYzMzRhYmUyYjM0YzlmNGFlYjJhM2ZmY2JiZmM3OTFjMGFkZjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgIWRlZmluZWQoX19PQkpDX18pCit0eXBlZGVm
IHN0cnVjdCBvYmpjX29iamVjdCAqaWQ7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
dXNpbmcgUGxhdGZvcm1OYXRpdmVWYWx1ZSA9IGlkOworI2Vsc2UKK3VzaW5nIFBsYXRmb3JtTmF0
aXZlVmFsdWUgPSB2b2lkKjsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUpOworcHVibGljOgorICAgIGVudW0g
Y2xhc3MgUGxhdGZvcm1UeXBlIHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgT2JqQywKKyAgICB9
OworCisgICAgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKFBsYXRmb3JtVHlwZSBwbGF0
Zm9ybVR5cGUsIFBsYXRmb3JtTmF0aXZlVmFsdWUgbmF0aXZlVmFsdWUpCisgICAgICAgIDogbV9u
YXRpdmVWYWx1ZShuYXRpdmVWYWx1ZSkKKyAgICAgICAgLCBtX3R5cGUocGxhdGZvcm1UeXBlKQor
ICAgIHsKKyAgICB9CisgICAgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlKCkgPSBkZWZh
dWx0OworICAgIH5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUoKSA9IGRlZmF1bHQ7CisK
KyAgICBQbGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9
CisKKyAgICBQbGF0Zm9ybU5hdGl2ZVZhbHVlIG5hdGl2ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9uYXRpdmVWYWx1ZTsgfQorCisgICAgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRh
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFBsYXRmb3JtVHlwZTo6T2JqQzsgfQorCitwcm90
ZWN0ZWQ6CisgICAgUGxhdGZvcm1OYXRpdmVWYWx1ZSBtX25hdGl2ZVZhbHVlIHsgbnVsbHB0ciB9
OworICAgIFBsYXRmb3JtVHlwZSBtX3R5cGUgeyBQbGF0Zm9ybVR5cGU6Ok5vbmUgfTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggY2E3MWU3ZTBiNTg2YzdiNTVi
MTEyNzMyYmFkNTliMDFkOGE0MTgxYi4uNTdkZmNiZjRiYzdjNDg4NDRkMzgxY2IzNWVjYzY0M2Mx
YWFiNGI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcApAQCAtMTA5LDYgKzEwOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXkoKSBm
aW5hbCB7IH0KICAgICB2b2lkIHBhdXNlKCkgZmluYWwgeyB9CiAKKyAgICBTdHJpbmcgZW5naW5l
RGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTnVsbE1lZGlhUGxheWVyIjsgfQor
CiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG51bGxwdHI7IH0KIAogICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIEZsb2F0U2l6ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuY3BwCmluZGV4IGZlMWMwNjRhZTUxMjc3MjMwOGNj
MmM0Y2IyMjQzZWI5MmU1MzE4MDAuLmI3ODY0ZjdiMzcwZTMzNTI2NzU2Y2RhNjJkNzI3YWMwN2M4
MGI2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Ry
YWNrUHJpdmF0ZUJhc2UuY3BwCkBAIC0zMyw5ICszMywxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKwogc3RhdGljIHVpbnQ2NF90IHNfdW5p
cXVlSWQgPSAwOwogCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiB2b2lkIFRyYWNrUHJpdmF0
ZUJhc2U6OnNldExvZ2dlcihjb25zdCBMb2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9nSWRl
bnRpZmllcikKIHsKICAgICBtX2xvZ2dlciA9ICZsb2dnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQppbmRleCA4MjBkYTg5YzQ2Zjg3MTUzMjk2ZTE2NzRkZjQ2YTFkNzRiZTA2ZjlhLi5iMzdjNDQx
MTMxNDk4ODc5NTQ2ZWM4YTU3YTBkZDhlMTFmNzg0Njk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KQEAgLTMwNzQsNyArMzA3NCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPE5TQXJyCiAgICAgICAg
IGlmIChpdGVtLmtleVNwYWNlKQogICAgICAgICAgICAgdHlwZSA9IG1ldGFkYXRhVHlwZShpdGVt
LmtleVNwYWNlKTsKIAotICAgICAgICBtX21ldGFkYXRhVHJhY2stPmFkZERhdGFDdWUoc3RhcnQs
IGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6Y3JlYXRlKGl0ZW0pLCB0eXBlKTsK
KyAgICAgICAgbV9tZXRhZGF0YVRyYWNrLT5hZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZSh7IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDLCBpdGVtIH0pLCB0eXBlKTsKICAgICB9CiAj
ZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oCmluZGV4IGExMGRjY2MzZTFiNWEzMGRmYmYwMTBh
NzYwNTA1MjgwNmIyMTk2ZWIuLjI2ZDg0YjlhODkyZDZhZmM4NGFlOTNlZGJiMmYwYWI0YmQwNmUz
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaApAQCAtMjksMjggKzI5LDI2IEBACiAKICNpbmNsdWRl
ICJTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgiCiAKLSNpZiBVU0UoRk9VTkRBVElPTikgJiYg
IWRlZmluZWQoX19PQkpDX18pCi10eXBlZGVmIHN0cnVjdCBvYmpjX29iamVjdCAqaWQ7Ci0jZW5k
aWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjIGZpbmFsIDogcHVibGljIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUgewogcHVibGlj
OgorICAgIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlJiYpOwogICAgIHZpcnR1YWwgflNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMo
KTsKLSAgICBzdGF0aWMgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IGNyZWF0ZShpZCk7
CiAKICAgICBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNv
bnN0IGZpbmFsOwogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gZGF0YSgpIGNvbnN0IGZpbmFsOwot
CiAgICAgYm9vbCBpc0VxdWFsKGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKSBjb25z
dCBmaW5hbDsKKyAgICBQbGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gUGxhdGZvcm1UeXBlOjpPYmpDOyB9CisgICAgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxh
dGZvcm1EYXRhKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgUGxhdGZvcm1U
eXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWU6Ok9iakM7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUgZW5jb2RhYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKIAogICAgIGlkIG5hdGl2
ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVWYWx1ZS5nZXQoKTsgfQogCisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIE5TQXJyYXkqIGFsbG93ZWRDbGFzc2VzRm9yTmF0aXZlVmFsdWVz
KCk7CisKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1h
YyhpZCBuYXRpdmVWYWx1ZSk7CiAKICAgICBSZXRhaW5QdHI8aWQ+IG1fbmF0aXZlVmFsdWU7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5tbQppbmRleCBiOTQ5ZWI3Y2RkMjAwMzlmMWNmZmVmOGM0YzVi
Y2Q3YjExM2ViMTk5Li5jOTg0YTllZWE3YTk1OWI2NGFjYzdmMTJkNTE2MDcyMTM4YzdhZTI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5tbQpAQCAtNDgsMjEgKzQ4LDIzIEBAIHN0YXRpYyBKU1ZhbHVl
ICpqc1ZhbHVlV2l0aEFycmF5SW5Db250ZXh0KE5TQXJyYXkgKiwgSlNDb250ZXh0ICopOwogc3Rh
dGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29udGV4dChOU0RpY3Rpb25hcnkg
KiwgSlNDb250ZXh0ICopOwogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0
ZW1JbkNvbnRleHQoQVZNZXRhZGF0YUl0ZW0gKiwgSlNDb250ZXh0ICopOwogc3RhdGljIEpTVmFs
dWUgKmpzVmFsdWVXaXRoVmFsdWVJbkNvbnRleHQoaWQsIEpTQ29udGV4dCAqKTsKK3N0YXRpYyBO
U0RpY3Rpb25hcnkgKk5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShBVk1ldGFkYXRhSXRl
bSAqKTsKICNlbmRpZgogCi1TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlTWFjKGlkIG5hdGl2ZVZhbHVlKQotICAgIDogU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZSgpCi0gICAgLCBtX25hdGl2ZVZhbHVlKG5hdGl2ZVZhbHVlKQorUmVmPFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiB2YWx1ZSkKIHsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFdURk1vdmUodmFsdWUpKSk7
CiB9CiAKLVNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6On5TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlTWFjKCkKK1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OlNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVNYWMoU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgdmFsdWUpCisg
ICAgOiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKCkKKyAgICAsIG1fbmF0aXZlVmFsdWUodmFs
dWUubmF0aXZlVmFsdWUoKSkKIHsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKTsKIH0KIAotUmVmPFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmNyZWF0ZShpZCBuYXRpdmVW
YWx1ZSkKK1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6On5TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlTWFjKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlTWFjKG5hdGl2ZVZhbHVlKSk7CiB9CiAKIFJlZlB0cjxBcnJheUJ1ZmZlcj4gU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6ZGF0YSgpIGNvbnN0CkBAIC04OSw3ICs5MSw3IEBA
IEpTQzo6SlNWYWx1ZSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpkZXNlcmlhbGl6ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpCiAKIGJvb2wgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZU1hYzo6aXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBvdGhlcikgY29u
c3QKIHsKLSAgICBpZiAob3RoZXIucGxhdGZvcm1UeXBlKCkgIT0gU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZTo6T2JqQykKKyAgICBpZiAob3RoZXIucGxhdGZvcm1UeXBlKCkgIT0gUGxhdGZvcm1U
eXBlOjpPYmpDKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdCBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlTWFjKiBvdGhlck9iakMgPSB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMoJm90aGVyKTsKQEAgLTEwNywxMCArMTA5LDI0IEBAIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVNYWMqIHRvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhTZXJpYWxpemVkUGxhdGZv
cm1ECiAKIGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMqIHRvU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZU1hYyhjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlKiByZXApCiB7
Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihyZXAtPnBsYXRm
b3JtVHlwZSgpID09IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6Ok9iakMpOworICAgIFJFTEVB
U0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocmVwLT5wbGF0Zm9ybVR5cGUoKSA9
PSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpOwogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKj4ocmVw
KTsKIH0KIAorTlNBcnJheSogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6YWxsb3dlZENs
YXNzZXNGb3JOYXRpdmVWYWx1ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRh
aW5QdHI8TlNBcnJheT4+IGFsbG93ZWRDbGFzc2VzKEBbIFtOU1N0cmluZyBjbGFzc10sIFtOU051
bWJlciBjbGFzc10sIFtOU0xvY2FsZSBjbGFzc10sIFtOU0RpY3Rpb25hcnkgY2xhc3NdLCBbTlNB
cnJheSBjbGFzc10sIFtOU0RhdGEgY2xhc3NdIF0pOworICAgIHJldHVybiBhbGxvd2VkQ2xhc3Nl
cy5nZXQoKS5nZXQoKTsKK30KKworU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmVuY29kYWJsZVZhbHVlKCkgY29uc3QKK3sKKyAgICBp
ZiAoW21fbmF0aXZlVmFsdWUuZ2V0KCkgaXNLaW5kT2ZDbGFzczpQQUw6OmdldEFWTWV0YWRhdGFJ
dGVtQ2xhc3MoKV0pCisgICAgICAgIHJldHVybiB7IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVW
YWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDLCBOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0ZW0o
bV9uYXRpdmVWYWx1ZS5nZXQoKSkgfTsKKworICAgIHJldHVybiB7IFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDLCBtX25hdGl2ZVZhbHVlLmdldCgpIH07
Cit9CisKICNpZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVX
aXRoVmFsdWVJbkNvbnRleHQoaWQgdmFsdWUsIEpTQ29udGV4dCAqY29udGV4dCkKIHsKQEAgLTE5
Myw2ICsyMDksMTEgQEAgc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29u
dGV4dChOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnksIEpTQ29udGUKIH0KIAogc3RhdGljIEpTVmFs
dWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZNZXRhZGF0YUl0ZW0gKml0
ZW0sIEpTQ29udGV4dCAqY29udGV4dCkKK3sKKyAgICByZXR1cm4ganNWYWx1ZVdpdGhEaWN0aW9u
YXJ5SW5Db250ZXh0KE5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRhSXRlbShpdGVtKSwgY29udGV4
dCk7Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKk5TRGljdGlvbmFyeVdpdGhBVk1ldGFkYXRh
SXRlbShBVk1ldGFkYXRhSXRlbSAqaXRlbSkKIHsKICAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpk
aWN0aW9uYXJ5ID0gW05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeV07CiAKQEAgLTIzMCw3
ICsyNTEsNyBAQCBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhBVk1ldGFkYXRhSXRlbUluQ29u
dGV4dChBVk1ldGFkYXRhSXRlbSAqaXRlbSwgSlNDb250ZQogICAgIGlmIChpdGVtLnZhbHVlKQog
ICAgICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6aXRlbS52YWx1ZSBmb3JLZXk6QCJkYXRhIl07
CiAKLSAgICByZXR1cm4ganNWYWx1ZVdpdGhEaWN0aW9uYXJ5SW5Db250ZXh0KGRpY3Rpb25hcnks
IGNvbnRleHQpOworICAgIHJldHVybiBkaWN0aW9uYXJ5OwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2NGYzY2JmMjBjNTJj
MzYyMDZhYWViOWM0OTk3YTcyZjViZTQwZjg3Li40Y2JkNDYxNGI2MmI4YzNlN2Q0ZjU2Y2E5NTBj
OTQ0NzYxMjk5MzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yNCw4ICsyNCw4IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNz
YWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAg
ICBDcmVhdGVNZWRpYVBsYXllcihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gcHJveHlDb25maWd1cmF0aW9uKSAtPiAo
c3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZp
Z3VyYXRpb24pIFN5bmNocm9ub3VzCi0gICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkKQorICAgIENyZWF0ZU1lZGlhUGxheWVy
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50
OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29uZmlndXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRpb24pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKKyAg
ICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkKQogCiAgICAgR2V0U3VwcG9ydGVkVHlwZXMoZW51bTp1aW50OF90IFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVu
dGlmaWVyKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCiAgICAgU3VwcG9y
dHNUeXBlQW5kQ29kZWNzKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYkNv
cmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgdHlwZSkgLT4gKGVudW06dWludDhfdCBX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCkgU3luY2hyb25v
dXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0
VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4
dFRyYWNrUHJveHkuY3BwCmluZGV4IGI3NmRjOWIwZDQ2Zjg2Yjc3OTU3ZDNiM2I3ODU0NTljMzk0
OWIyYTYuLjMyYzliN2UxMmU1YTcyY2IwYmJiZDBhOTVlMDMxMThlMDcyNDBiYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1By
b3h5LmNwcApAQCAtOTYsMjUgKzk2LDI1IEBAIHZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6Omxh
bmd1YWdlQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikKICAgICBjb25maWd1cmF0aW9uQ2hhbmdl
ZCgpOwogfQogCi12b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkKK3ZvaWQg
UmVtb3RlVGV4dFRyYWNrUHJveHk6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkRGF0YUN1ZShtX2lkZW50
aWZpZXIsIHN0YXJ0LCBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3RoKSksIG1fcGxheWVyLmlkZW5kaWZpZXIoKSk7CiB9
CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLXZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6
OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUmVmPFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWU+JiYsIGNvbnN0IFN0cmluZyYpCit2b2lkIFJlbW90ZVRleHRU
cmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlh
VGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4mJiBjdWVEYXRhLCBjb25z
dCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFk
ZERhdGFDdWVXaXRoVHlwZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEtPmVuY29k
YWJsZVZhbHVlKCksIHR5cGUpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwogfQogCi12b2lkIFJl
bW90ZVRleHRUcmFja1Byb3h5Ojp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0
IE1lZGlhVGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKQordm9pZCBSZW1vdGVUZXh0
VHJhY2tQcm94eTo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBN
ZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3VlRGF0YSkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6VXBkYXRlRGF0YUN1ZShtX2lkZW50aWZp
ZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1fcGxheWVyLmlkZW5k
aWZpZXIoKSk7CiB9CiAKLXZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6OnJlbW92ZURhdGFDdWUo
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZSYpCit2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlJiBjdWVEYXRhKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpS
ZW1vdmVEYXRhQ3VlKG1faWRlbnRpZmllciwgc3RhcnQsIGVuZCwgY3VlRGF0YS5lbmNvZGFibGVW
YWx1ZSgpKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAxYzAwYmRhNTNm
NWI2YjQzNGVhNzE5NzlmNGU2MzIxMzgxZGE1NzJjLi44YzlmYTIxYWYzOGE3MTYyYzZjMjA5ZTkz
OTQ2ODkwNmEyNWMzY2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKQEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlYXJj
aFBvcHVwTWVudS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJEYXRh
Lmg+CkBAIC0zMTc0LDQgKzMxNzUsMzIgQEAgT3B0aW9uYWw8U2VyaWFsaXplZEF0dGFjaG1lbnRE
YXRhPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGEKIAogI2Vu
ZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKKyNpZiBFTkFCTEUoVklERU8pCit2
b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZSYgdmFsdWUpCit7CisgICAgYm9vbCBoYXNQbGF0Zm9ybURhdGEgPSB2YWx1ZS5lbmNv
ZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKCk7CisgICAgZW5jb2RlciA8PCBoYXNQbGF0Zm9ybURh
dGE7CisKKyAgICBlbmNvZGVyLmVuY29kZUVudW0odmFsdWUucGxhdGZvcm1UeXBlKCkpOworICAg
IGlmIChoYXNQbGF0Zm9ybURhdGEpCisgICAgICAgIGVuY29kZVBsYXRmb3JtRGF0YShlbmNvZGVy
LCB2YWx1ZSk7Cit9CisKK09wdGlvbmFsPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4g
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+Ojpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGJvb2wgaGFzUGxhdGZvcm1EYXRh
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzUGxhdGZvcm1EYXRhKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZTo6UGxhdGZvcm1UeXBlIHR5cGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0o
dHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoaGFzUGxhdGZv
cm1EYXRhKQorICAgICAgICByZXR1cm4gZGVjb2RlUGxhdGZvcm1EYXRhKGRlY29kZXIsIHR5cGUp
OworCisgICAgcmV0dXJuIHt7IH19OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIElQQwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA3YmY3
MWMxN2FiZGQzZDhiMTMxOTAyMjAwNThjOWY5YzIxOWY2MGIzLi5lMzgxNGUyMWY4MzM2YWFmMmY0
NDQzMjMyZTM0NGUwMDc0ZGFlMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90
aWZpY2F0aW9uRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRD
cmVkZW50aWFsc1BvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyVHlwZS5oPgpAQCAt
ODE5LDYgKzgyMCwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YT4gewogCiAjZW5kaWYgLy8gRU5BQkxFKEFUVEFDSE1F
TlRfRUxFTUVOVCkKIAorI2lmIEVOQUJMRShWSURFTykKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiB7CisgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlVmFsdWUmKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHN0YXRpYyB2
b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXIm
LCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZSk7
Cit9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIElQQwogCiBuYW1lc3BhY2UgV1RGIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVy
c0N1cmwuY3BwCmluZGV4IDg1MmRmMzFkYjk4Y2M4NmI2YjMzOTEzN2E3YzE3YThjMzlhOTAzMWEu
LmI3YjA4OGY5NTgyNWMxMTdjYzNmOGEyMjkwMmI1OTM3YjIyNzgxYTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNw
cApAQCAtMjQ2LDQgKzI0NiwxNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmRl
Y29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgRm9udEhhbmRsZSYpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCisjaWYgRU5BQkxFKFZJREVPKQordm9pZCBBcmd1bWVudENvZGVyPFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmIHZhbHVlKQoreworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitPcHRpb25hbDxTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWU+ICBBcmd1bWVudENvZGVyPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46
OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUpCit7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKyNlbmRp
ZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVu
dENvZGVyc01hYy5tbQppbmRleCBlZTIyMjQyM2YwNDdjOWJmMDkzNjM5ZDgxMmIxODJkODM2MTgw
ZWZlLi44ZGE3YzE5ODc3OTJiODc3NDlhNmVhZDdlOTkzZjk2YzdlMTgxZTFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0K
QEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUHJvdGVjdGlvblNwYWNlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVN
YWMuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYv
TWFjaFNlbmRSaWdodC5oPgogCkBAIC02NjksNCArNjcwLDI3IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dD46OmRlY29kZVBsYXRmb3JtRGF0
YShEZWNvCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPKQordm9pZCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29kZVBsYXRmb3Jt
RGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUmIHZhbHVlKQoreworICAgIEFTU0VSVCh2YWx1ZS5wbGF0Zm9ybVR5cGUoKSA9
PSBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6
T2JqQyk7CisgICAgaWYgKHZhbHVlLnBsYXRmb3JtVHlwZSgpID09IFdlYkNvcmU6OlNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKQorICAgICAgICBlbmNv
ZGVPYmplY3QoZW5jb2RlciwgdmFsdWUubmF0aXZlVmFsdWUoKSk7Cit9CisKK09wdGlvbmFsPFdl
YkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gIEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZGVjb2RlUGxhdGZvcm1EYXRh
KERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1
ZTo6UGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSkKK3sKKyAgICBBU1NFUlQocGxhdGZvcm1UeXBl
ID09IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBl
OjpPYmpDKTsKKworICAgIGlmIChwbGF0Zm9ybVR5cGUgIT0gV2ViQ29yZTo6U2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICBhdXRvIG9iamVjdCA9IGRlY29kZU9iamVjdChkZWNvZGVyLCBX
ZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjphbGxvd2VkQ2xhc3Nlc0Zvck5h
dGl2ZVZhbHVlcygpKTsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIHJldHVybiBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUgeyBwbGF0Zm9ybVR5cGUsIG9iamVjdC52YWx1ZSgpLmdldCgpIH07Cit9CisjZW5kaWYKKwog
fSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3Vw
L1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvc291
cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAppbmRleCBlNjdmMGVkNjJmZGE4MmQ1NGVj
OWUyMzgzNGQ0Yzg3MTA2ODIzNWQyLi45YjYwMzdmYjM0ODkwNTNkMDdkNmIwYTY0YTMxMDg0M2Vl
MzhiMzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1
bWVudENvZGVyc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKQEAgLTI2Myw1ICsyNjMsMTggQEAgYm9vbCBBcmd1bWVu
dENvZGVyPEZvbnRIYW5kbGU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIEZvbnRIYW5k
bGUmKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShWSURFTykKK3ZvaWQgQXJn
dW1lbnRDb2RlcjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjplbmNvZGVQbGF0Zm9y
bURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZh
bHVlJiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworT3B0aW9uYWw8
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiAgQXJndW1lbnRDb2RlcjxTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2Rl
ciwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGUg
cGxhdGZvcm1UeXBlKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Cit9CisjZW5kaWYKKwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAKaW5kZXggOWRjMGViYjYwNjY0ODk3ZjgyZGI3ZTA1MTgwOGYwZTQ4OWRjNTI3OS4uYTYwYmI0
ZjljZDIzMWQ5MTkwMzgyNDIxNDJlM2IwZWU5OGUzN2JkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcApAQCAtNjcsMTMgKzY3LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
fSB3aGlsZSAoMCkKICNlbmRpZgogCi1NZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXImIG1hbmFnZXIsIGNvbnN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYgY29uZmln
dXJhdGlvbikKK01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIHBsYXllcklkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlcikK
ICAgICA6IG1fcGxheWVyKHBsYXllcikKICAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcihwbGF5
ZXItPmNyZWF0ZVJlc291cmNlTG9hZGVyKCkpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAg
ICAsIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV9p
ZChwbGF5ZXJJZGVudGlmaWVyKQotICAgICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24p
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcigmcGxheWVyLT5tZWRp
YVBsYXllckxvZ2dlcigpKQogICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5
ZXJMb2dJZGVudGlmaWVyKCkpCkBAIC04Miw2ICs4MSwxMiBAQCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRp
YVBsYQogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogfQogCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6c2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24mJiBjb25maWd1cmF0aW9uKQoreworICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUo
Y29uZmlndXJhdGlvbik7CisgICAgbV9wbGF5ZXItPm1lZGlhRW5naW5lVXBkYXRlZCgpOworfQor
CiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQog
ewogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwpAQCAtNDg0LDYgKzQ4OSw0MCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aQogICAgICAgICB0cmFjay0+cGFyc2VXZWJWVFRDdWVEYXRhU3Ry
dWN0KFdURk1vdmUoZGF0YSkpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
YWRkRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlh
VGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEp
Cit7CisgICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisKKyAg
ICBpZiAoY29uc3QgYXV0byYgdHJhY2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQor
ICAgICAgICB0cmFjay0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBX
VEZNb3ZlKGRhdGEpKTsKK30KKworI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQordm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWVXaXRoVHlwZShUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBl
bmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGEsIFN0cmluZyYmIHR5cGUp
Cit7CisgICAgQVNTRVJUKG1fdGV4dFRyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisKKyAg
ICBpZiAoY29uc3QgYXV0byYgdHJhY2sgPSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQor
ICAgICAgICB0cmFjay0+YWRkRGF0YUN1ZVdpdGhUeXBlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3Zl
KGVuZCksIFdURk1vdmUoZGF0YSksIFdURk1vdmUodHlwZSkpOworfQorCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGEpCit7CisgICAgQVNTRVJUKG1fdGV4dFRy
YWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisKKyAgICBpZiAoY29uc3QgYXV0byYgdHJhY2sg
PSBtX3RleHRUcmFja3MuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICB0cmFjay0+dXBkYXRlRGF0
YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXVEZNb3ZlKGRhdGEpKTsKK30KKwor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFDdWUoVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1l
JiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhKQoreworICAgIEFT
U0VSVChtX3RleHRUcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOworCisgICAgaWYgKGNvbnN0
IGF1dG8mIHRyYWNrID0gbV90ZXh0VHJhY2tzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgdHJh
Y2stPnJlbW92ZURhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgV1RGTW92ZShk
YXRhKSk7Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJl
bW90ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBh
dXRvIGFkZFJlc3VsdCA9IG1fdmlkZW9UcmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzN2UxMWY0YWQwMjVhMTgzMGU1
Y2YzYzg5NTAwZGE4Li44YjBjZTM5YzUwMzM1ZjYyNDFjMGU5Mjg0ZmY5MzAxNGRlMTBiZTgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTQwLDEyICs0MCwxNCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CitjbGFzcyBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBBdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZTsKIGNsYXNzIFRleHRUcmFja1ByaXZhdGVSZW1vdGU7CitjbGFzcyBV
c2VyRGF0YTsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOwogc3RydWN0IFRleHRUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb247CkBAIC01OSwxNCArNjEsMTYgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlIGZpbmFsCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVy
KiBwbGF5ZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlciwgY29uc3Qg
UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXIqIHBsYXllciwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFF
bmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBt
YW5hZ2VyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlPihwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsIG1h
bmFnZXIsIGNvbmZpZ3VyYXRpb24pOworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU+KHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWRlbnRp
ZmllciwgbWFuYWdlcik7CiAgICAgfQogCi0gICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKFdl
YkNvcmU6Ok1lZGlhUGxheWVyKiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXImLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24m
KTsKKyAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYpOwog
ICAgIH5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKTsKIAorICAgIHZvaWQgc2V0Q29uZmlndXJh
dGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik7CisKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAg
ICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBtX2ludmFsaWQgPSB0cnVlOyB9CkBAIC0xMDQsNiArMTA4
LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UmJik7CiAgICAgdm9pZCBwYXJzZVdl
YlZUVEN1ZURhdGFTdHJ1Y3QoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6
SVNPV2ViVlRUQ3VlJiYpOwogCisgICAgdm9pZCBhZGREYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0
YVJlZmVyZW5jZSYmKTsKKyNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKKyAgICB2b2lkIGFkZERh
dGFDdWVXaXRoVHlwZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBz
dGFydCwgTWVkaWFUaW1lJiYgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
VmFsdWUmJiwgU3RyaW5nJiYpOworICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBXZWJD
b3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJik7CisgICAgdm9pZCByZW1vdmVE
YXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYmIHN0YXJ0LCBN
ZWRpYVRpbWUmJiBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYm
KTsKKyNlbmRpZgorCiAgICAgdm9pZCByZXF1ZXN0UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIpOwogICAgIHZvaWQgcmVzb3VyY2VOb3RTdXBwb3J0ZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KaW5kZXggYzQwNGRjNjc0MDczN2EzNjhkNGZh
Njk0MmE4ZTk2MDk3Nzg0NjA3Yi4uZTg4OTdiNmExMGExMGQ0YjcwMDkyOThjN2FhMjcyOGJmZTEx
Mjk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KQEAg
LTUwLDEwICs1MCwxMiBAQCBtZXNzYWdlcyAtPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgTm90
UmVmQ291bnRlZCB7CiAgICAgUGFyc2VXZWJWVFRDdWVEYXRhKFdlYktpdDo6VHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBQ
YXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIHRyYWNrSUQsIFdlYkNvcmU6OklTT1dlYlZUVEN1ZSBjdWVEYXRhKQogCi0gICAgIyMgQWRk
RGF0YUN1ZShNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIElQQzo6RGF0YVJlZmVyZW5j
ZSBkYXRhKQotICAgICMjIEFkZERhdGFDdWUoTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5k
LCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlIGRhdGEsIFN0cmluZyB0eXBlKQot
ICAgICMjIFVwZGF0ZURhdGFDdWUoTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJD
b3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlIGRhdGEpCi0gICAgIyMgUmVtb3ZlRGF0YUN1
ZShNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWUgZGF0YSkKKyAgICBBZGREYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIElQ
Qzo6RGF0YVJlZmVyZW5jZSBkYXRhKQorI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQorICAgIEFk
ZERhdGFDdWVXaXRoVHlwZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJh
Y2tJRCwgTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWUgY3VlRGF0YSwgU3RyaW5nIHR5cGUpCisgICAgVXBkYXRlRGF0
YUN1ZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgTWVkaWFU
aW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWUgY3VlRGF0YSkKKyAgICBSZW1vdmVEYXRhQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQs
IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBjdWVEYXRhKQorI2VuZGlm
CiAKICAgICAjIyBBZGRHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhIGN1ZSkKICAg
ICAjIyBVcGRhdGVHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhIGN1ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA4ZjA1Mzc2ODM3OGViMDVjZWQzMjFmZmNmMTE5
MjNiNTllZWZjMzJiLi4zOGE1M2EwY2JjZmY4OWQ0NWViY2Q0MWU3ZTZjMzU4M2JkMjdkM2FhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0xNDQsNyArMTQ0LDYgQEAgdm9pZCBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYgcGEKIAogc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW1vdGVNZWRpYVBsYXll
cihNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIGlkID0gTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKIAogICAgIFJlbW90ZU1lZGlh
UGxheWVyUHJveHlDb25maWd1cmF0aW9uIHByb3h5Q29uZmlndXJhdGlvbjsKICAgICBwcm94eUNv
bmZpZ3VyYXRpb24ucmVmZXJyZXIgPSBwbGF5ZXItPnJlZmVycmVyKCk7CkBAIC0xNTksMTUgKzE1
OCwxOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXI6OmNyZWF0ZVJlbQogICAgIHByb3h5Q29uZmlndXJhdGlvbi5z
aG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUgPSBwbGF5ZXItPnNob3VsZFVzZVBlcnNpc3RlbnRDYWNo
ZSgpOwogICAgIHByb3h5Q29uZmlndXJhdGlvbi5pc1ZpZGVvID0gcGxheWVyLT5pc1ZpZGVvUGxh
eWVyKCk7CiAKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwogICAgIFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlv
biBwbGF5ZXJDb25maWd1cmF0aW9uOwotICAgIGJvb2wgc2VuZFN1Y2NlZWRlZCA9IGdwdVByb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXIoaWQsIHJlbW90ZUVuZ2luZUlk
ZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXI6OlJlcGx5KHBsYXllckNvbmZpZ3VyYXRp
b24pLCAwKTsKLSAgICBpZiAoIXNlbmRTdWNjZWVkZWQpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlz
KCJGYWlsZWQgdG8gY3JlYXRlIHJlbW90ZSBtZWRpYSBwbGF5ZXIuIik7Ci0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIH0KKyAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpDcmVhdGVNZWRpYVBsYXllcihpZGVudGlmaWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVy
LCBwcm94eUNvbmZpZ3VyYXRpb24pLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlz
KSwgaWRlbnRpZmllcl0oYXV0byYmIHBsYXllckNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgaWYg
KCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoY29uc3QgYXV0
byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgICAgIHBsYXll
ci0+c2V0Q29uZmlndXJhdGlvbihXVEZNb3ZlKHBsYXllckNvbmZpZ3VyYXRpb24pKTsKKyAgICB9
LCAwKTsKKworICAgIGF1dG8gcmVtb3RlUGxheWVyID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpjcmVhdGUocGxheWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBpZGVudGlmaWVyLCAqdGhp
cyk7CisgICAgbV9wbGF5ZXJzLmFkZChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cigqcmVtb3RlUGxh
eWVyKSk7CiAKLSAgICBhdXRvIHJlbW90ZVBsYXllciA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6Y3JlYXRlKHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWQsICp0aGlzLCBwbGF5
ZXJDb25maWd1cmF0aW9uKTsKLSAgICBtX3BsYXllcnMuYWRkKGlkLCBtYWtlV2Vha1B0cigqcmVt
b3RlUGxheWVyKSk7CiAgICAgcmV0dXJuIHJlbW90ZVBsYXllcjsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmgKaW5kZXggYjI2NmIzOTg0YzM4MGNkMzY0ODIyMTQzNWQzZjg0ZmUxYjVhYTc3
NS4uMzIwZWMzMDE4OWQ2ZmM1NjJmMmFlYmZmNTFjOTBmNzRlZGY4ZGEwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oCkBAIC01MSw3ICs1MSw4IEBAIGNsYXNzIFdlYlByb2Nlc3M7CiBzdHJ1
Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyCi0gICAgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQgeworICAgIDog
cHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyKFdlYlByb2Nl
c3MmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDVjNzg3NjRlMGMxNzQxMGNiMjM3
NjhhNDUxNWJkNDIwNDU4MzQzZjEuLjZhNjYyMmEzOTU0OTkwMDcxMDZiZDQ5MDk3MTEwNWQ1OGI4
M2E5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcApAQCAtODgsNjYgKzg4LDcyIEBAIHZv
aWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhCiAgICAgbV9pc0RlZmF1bHQgPSBjb25maWd1cmF0aW9uLmlz
RGVmYXVsdDsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKGNv
bnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwg
dW5zaWduZWQpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZEdlbmVyaWNDdWUoR2Vu
ZXJpY0N1ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLSNpZiBFTkFCTEUo
REFUQUNVRV9WQUxVRSkKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZShj
b25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWU+JiYsIGNvbnN0IFN0cmluZyYpCit2b2lkIFRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0
YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZSYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92
ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZSYpCisKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRGaWxlSGVh
ZGVyKFN0cmluZyYmIGhlYWRlcikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VS
VChjbGllbnQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAg
ICAgICBjbGllbnQtPnBhcnNlV2ViVlRURmlsZUhlYWRlcihXVEZNb3ZlKGhlYWRlcikpOwogfQog
Ci0jZW5kaWYKLQotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGRHZW5lcmljQ3VlKEdl
bmVyaWNDdWVEYXRhJikKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRD
dWVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKIHsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRo
aXMtPmNsaWVudCgpKQorICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0YShyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKIH0KIAot
dm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVE
YXRhJikKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhU3Ry
dWN0KElTT1dlYlZUVEN1ZSYmIGN1ZURhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBBU1NFUlQoY2xpZW50KCkpOworICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQo
KSkKKyAgICAgICAgY2xpZW50LT5wYXJzZVdlYlZUVEN1ZURhdGEoV1RGTW92ZShjdWVEYXRhKSk7
CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlR2VuZXJpY0N1ZShHZW5l
cmljQ3VlRGF0YSYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWUoTWVk
aWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0
YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAg
aWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICBjbGllbnQtPmFkZERh
dGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7CiB9CiAKLQotdm9pZCBUZXh0VHJh
Y2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQor
I2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjph
ZGREYXRhQ3VlV2l0aFR5cGUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YVZhbHVlLCBTdHJpbmcmJiB0eXBlKQog
ewogICAgIEFTU0VSVChjbGllbnQoKSk7CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNs
aWVudCgpKQotICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRURmlsZUhlYWRlcihXVEZNb3ZlKGhl
YWRlcikpOworICAgICAgICBjbGllbnQtPmFkZERhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1v
dmUoZW5kKSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUoZGF0YVZh
bHVlKSksIHR5cGUpOwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2Vi
VlRUQ3VlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit2b2lkIFRleHRUcmFj
a1ByaXZhdGVSZW1vdGU6OnVwZGF0ZURhdGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGlt
ZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YVZhbHVlKQogewog
ICAgIEFTU0VSVChjbGllbnQoKSk7CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVu
dCgpKQotICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0YShyZWludGVycHJldF9jYXN0
PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKKyAgICAgICAgY2xpZW50
LT51cGRhdGVEYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKIH0KIAotdm9pZCBU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGFTdHJ1Y3QoSVNPV2ViVlRU
Q3VlJiYgY3VlRGF0YSkKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1
ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBp
ZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cGFyc2VX
ZWJWVFRDdWVEYXRhKFdURk1vdmUoY3VlRGF0YSkpOworICAgICAgICBjbGllbnQtPnJlbW92ZURh
dGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZTo6Y3JlYXRlKFdURk1vdmUoZGF0YVZhbHVlKSkpOwogfQotCisjZW5kaWYKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgKaW5kZXggNmFjOWM2OWQwMTky
MGQ5Yzk0MTMyYjg4M2U1NmY2NWJkOGVjM2NjYy4uN2I3ZjcwM2NiNDk3ZGVkZWEzOTFkYjU5Y2M5
MmJlY2UxNWE1OTJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgKQEAgLTMyLDYgKzMyLDExIEBA
CiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBHZW5lcmljQ3VlRGF0YTsKK2NsYXNzIElTT1dlYlZUVEN1ZTsKK30KKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKQEAgLTQ0LDIxICs0
OSwyMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja1By
aXZhdGVSZW1vdGUocGxheWVyLCBpZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7
CiAgICAgfQogCi0gICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpOworICAgIHZvaWQgYWRk
RGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBJUEM6OkRhdGFSZWZl
cmVuY2UmJik7CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2b2lkIGFkZERhdGFD
dWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlPiYmLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHVwZGF0
ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKTsKLSAgICB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWUmKTsKKyAgICB2b2lkIGFkZERhdGFDdWVXaXRoVHlwZShNZWRpYVRpbWUmJiBzdGFy
dCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiwgU3Ry
aW5nJiYpOworICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFU
aW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJik7CisgICAgdm9pZCBy
ZW1vdmVEYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRHZW5lcmlj
Q3VlKEdlbmVyaWNDdWVEYXRhJik7Ci0gICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWND
dWVEYXRhJik7Ci0gICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJik7Cisg
ICAgdm9pZCBhZGRHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9p
ZCB1cGRhdGVHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhJik7CisgICAgdm9pZCBy
ZW1vdmVHZW5lcmljQ3VlKFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhJik7CiAKICAgICB2b2lkIHBh
cnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJik7CiAgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURh
dGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURh
dGFTdHJ1Y3QoSVNPV2ViVlRUQ3VlJiYpOworICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhU3Ry
dWN0KFdlYkNvcmU6OklTT1dlYlZUVEN1ZSYmKTsKIAogICAgIHZvaWQgdXBkYXRlQ29uZmlndXJh
dGlvbihUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVi
MzJlOWQzMDk5NDZjNWViYjU5YmMyOGMyMzU1NjhiNDJkMTI2MTUuLjU2NTllMDk1MGEzMzM3ZTAw
M2E2MWFlZTI2NTViYWQ0ZGFjZDJkNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMi0x
OSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBw
b3J0IGluLWJhbmQgbWV0YWRhdGEgY3VlcyB3aGVuIGxvYWRpbmcgbWVkaWEgaW4gdGhlIEdQVSBQ
cm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDc5MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5NTYxNjQ3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZ3B1LXByb2Nlc3MvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAyMC0wMi0xOSAgSmFzb24gTGF3cmVuY2UgIDxsYXdyZW5jZS5qQGFwcGxl
LmNvbT4KIAogICAgICAgICBbIE1hYyB3azIgXSBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L2hhci9oYXItcGFnZS5odG1sIGlzIGZsYWt5IGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vz
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGIyNDAyYjk0OWE5ZjdjNzYxYzk3ZDlkMjJmYjZjMTI1
NDE4YzRhOTQuLjkxM2E1ZDQ0ODQyZmFiOWNlNDczNGJkZGYzN2M0ZWFlNWQyMDc1ZTggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjI5LDYgKzIyOSw4IEBA
IG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9tZWRp
YS90cmFjay90cmFjay13ZWJ2dHQtc2xvdy1sb2FkaW5nLmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVz
dHMvbWVkaWEvdHJhY2svdHJhY2std2VidnR0LXNsb3ctbG9hZGluZy0yLmh0bWwgWyBQYXNzIF0K
IGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy13ZWJ2dHQtdHJhY2tzLmh0bWwgWyBQYXNzIF0KK2h0
dHAvdGVzdHMvbWVkaWEvdHJhY2staW4tYmFuZC1obHMtbWV0YWRhdGEuaHRtbCBbIFBhc3MgXQor
aHR0cC90ZXN0cy9tZWRpYS90cmFjay1pbi1iYW5kLWhscy1tZXRhZGF0YS1jcmFzaC5odG1sIFsg
UGFzcyBdCiAKIGFjY2Vzc2liaWxpdHkvbWVkaWEtZWxlbWVudC5odG1sIFsgU2tpcCBdCiBmYXN0
L2Jsb2NrL2Zsb2F0L2xpc3QtbWFya2VyLWlzLWZsb2F0LWNyYXNoLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391366</attachid>
            <date>2020-02-20 18:05:27 -0800</date>
            <delta_ts>2020-02-20 19:35:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207904-20200220180526.patch</filename>
            <type>text/plain</type>
            <size>65762</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2OTE0OWIwYzQxZDFk
NjllMTU5MWNkNTdlNGJkNDU0NTBjMDY3Zi4uZjM5N2ZmNTQzNzhkY2Q4YjUyODZiMDA2MTU0Zjk0
ZWM1NTI4ZTkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTE5ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgaW4t
YmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGVhbiBKYWNrc29uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdW5za2lwcGVkIGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpzZWxlY3RNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFFbmdpbmVXYXNVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCk6CisgICAgICAgICogaHRtbC90cmFj
ay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFU
ZXh0VHJhY2s6OmFkZERhdGFDdWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRleHRU
cmFjazo6ZmluZEluY29tcGxldGVDdWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRl
eHRUcmFjazo6dXBkYXRlRGF0YUN1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4
dFRyYWNrOjpyZW1vdmVEYXRhQ3VlKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFUZXh0
VHJhY2s6OnJlbW92ZUN1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRy
YWNrLmg6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrOjphZGRDdWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNr
Lmg6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmN1ZXNJbnRlcm5hbCBjb25zdCk6Cisg
ICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dFRyYWNrQ3VlOjpjdWVJbmRleCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZTo6ZGVzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZTo6ZGF0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjppc0VxdWFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OnBsYXRmb3JtVHlwZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjplbmNvZGluZ1JlcXVpcmVzUGxh
dGZvcm1EYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWU6OmVuY29kYWJsZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlk
QXJyaXZlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYzo6flNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6aXNFcXVhbCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjp0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6YWxsb3dlZENs
YXNzZXNGb3JOYXRpdmVWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZU1hYzo6ZW5jb2RhYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
anNWYWx1ZVdpdGhBVk1ldGFkYXRhSXRlbUluQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpO
U0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6Y3JlYXRlKTogRGVsZXRlZC4KKwogMjAyMC0wMi0xOSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpjaGFyYWN0ZXJpc3RpY3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0MzI3OTU2NzI3
ZDZkZWM4ZmY5YzdkODk2OGNlZWJhMDEwOWVmM2IxLi5lYjYwNTM0YTU2ODdiNWVjZDM3N2M1OWEy
ZWNiMzMzMmNhNjZmNDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTAyLTE5ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQg
aW4tYmFuZCBtZXRhZGF0YSBjdWVzIHdoZW4gbG9hZGluZyBtZWRpYSBpbiB0aGUgR1BVIFByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzkw
NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk1NjE2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4
dFRyYWNrUHJveHk6OmFkZERhdGFDdWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJh
Y2tQcm94eTo6dXBkYXRlRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVRleHRUcmFj
a1Byb3h5OjpyZW1vdmVEYXRhQ3VlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNo
YXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29k
ZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
c2V0Q29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6YWRkRGF0YUN1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjp1cGRhdGVEYXRhQ3VlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVEYXRhQ3VlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW1vdGVNZWRp
YVBsYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6
OmFkZEdlbmVyaWNDdWUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Ojp1cGRhdGVHZW5lcmljQ3VlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6cmVtb3ZlR2VuZXJpY0N1ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnBhcnNlV2ViVlRURmlsZUhlYWRlcik6CisgICAgICAgIChXZWJLaXQ6OlRleHRU
cmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3VlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWUpOgorICAgICAg
ICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlV2l0aFR5cGUpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVEYXRhQ3VlKToK
KyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5o
OgorCiAyMDIwLTAyLTE5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIFtpT1NdIGZhc3QvZG9tL2ZvY3VzLXNoaWZ0LWNyYXNoLmh0bWwgYW5kIGVkaXRp
bmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1jaGFuZ2UtaW4tZGlzY29ubmVjdGVkLWZyYW1lLWNyYXNo
Lmh0bWwgY3Jhc2ggYWZ0ZXIgcjI1Njg2NApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNzQxY2YyNzJk
YWExOThiODc2Nzg4YmE1ZjhhYzJjNzUzMWMzZjFhYS4uYWQ0ZjcxZDdjNGI0OTY5MTAzMjE2MzNj
YWFmYzM4ZDYwZjYyY2YxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC05OTgsNiArOTk4LDcgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1Njcm9s
bGJhclRoZW1lQ29tcG9zaXRlLmgKICAgICBwbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaAogICAg
IHBsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaAorICAgIHBsYXRmb3JtL1Nlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oCiAgICAgcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgK
ICAgICBwbGF0Zm9ybS9TaGFyZWRTdHJpbmdIYXNoLmgKICAgICBwbGF0Zm9ybS9TdWRkZW5UZXJt
aW5hdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDI0ODBmMmEzZjIyZWUwZDM3NGFjOTg4MDYwNjIy
ZjFhZGYyZTcyNWMuLjQ0YmNhMjBiN2ZlNTY2ODU3MWVlODI4Zjk3NDVkNTBlMWY2ZGU5MzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC0xNzY0LDYgKzE3NjQsNyBAQCBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJl
YS5jcHAKIHBsYXRmb3JtL1Njcm9sbGJhci5jcHAKIHBsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmNw
cAogcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUuY3BwCitwbGF0Zm9ybS9TZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlLmNwcAogcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAogcGxhdGZv
cm0vU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuY3BwCiBwbGF0Zm9ybS9TaGFyZWRTdHJpbmdIYXNo
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDc4YzgzN2E4Yzg0OTVmZDEzYmM5YzcxYWZlZmZmZjFjY2VlNjYwZjMuLjRkMGMx
NTE1MDUxNmJmZjQxMWE2MWY5ZDM3OWIwMDE1ZDQ3MjUxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNSwxMCArMTM1LDEx
IEBACiAJCTA3NjM4QTlBMTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9T
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzhB
OTgxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gKi87IH07CiAJ
CTA3Njk3MDg2MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Njk3MDg0MTQ2M0FEODcwMEY1
MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAqLzsgfTsKIAkJMDc2OTcwODcxNDYzQUQ4NzAwRjUw
MkNGIC8qIFRleHRUcmFja0xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3Njk3MDg1MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0Lmgg
Ki87IH07CisJCTA3NkQxQzFGMjNGNkVCNUIwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3NkQxQzFEMjNGNkQ5RDgwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwNzZGMEQwRTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzZG
MEQwQTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgg
Ki87IH07CiAJCTA3NzY2NEZEMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNrVGltZVBsdWdpblJl
cGxhY2VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzc2NjRGQjE4M0U2QjVDMDAxMzNCOTIgLyogSlNRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVu
dC5oICovOyB9OwogCQkwNzdBRjE0MDE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDc3QUYxM0UxOEY0QUU0MDAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwNzdB
RjE0MzE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QUYxNDExOEY0
QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCAqLzsgfTsKKwkJ
MDc3QUYxNDMxOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0FGMTQx
MThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc3QjY0MTMxQjk0
RjEyRTAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdCNjQxMTFCOTRGMTJFMDAz
RTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzdCNjQxNzFCOTVGNzAzMDAzRTlB
RDUgLyogTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0I2NDE1MUI5NUY3MDMwMDNFOUFENSAvKiBNZWRpYVBs
YXliYWNrVGFyZ2V0TW9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA3ODMyMjg1MTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVhbUF1ZGlv
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzgzMjI4MzE4MDEzRUQ4MDA5OTlFMEMgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oICovOyB9
OwpAQCAtNTQ3Myw2ICs1NDc0LDcgQEAKIAkJMDc2MzhBOTgxODg0NDg3MjAwRTE1QTFCIC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tMaXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2OTcwODUxNDYzQUQ4NzAwRjUwMkNGIC8qIFRl
eHRUcmFja0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNr
TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzZEMUMxRDIzRjZEOUQ4MDBE
OTVCMDYgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzZFMTFCRTFGNjgzRTBEMDAxNzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUcmFja1ByaXZhdGVCYXNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RjBEMDkxMkI4MTkyNzAwQzI2QUE0
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZGMEQwQTEyQjgxOTI3MDBDMjZBQTQgLyog
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTQ5MCw2ICs1NDkyLDcgQEAKIAkJMDc4NDYzNDAxNDVCMTUxQTAw
QTU4REYxIC8qIEpTVHJhY2tFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1RyYWNrRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
Nzg0NjM0MTE0NUIxNTFBMDBBNThERjEgLyogSlNUcmFja0V2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTVHJhY2tFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzg0NjM4NDE0NUIxQjhFMDBBNThERjEgLyogSlNUcmFja0N1c3RvbS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RyYWNrQ3VzdG9tLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTA3ODYzM0Q3MjNGRTA5NjQwMDg3QUUyMSAvKiBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzg3QzQ2NzFCRkJE
RjZGMDA2RENEN0YgLyogSlNNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVRyYWNrU3VwcG9ydGVkQ29u
c3RyYWludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzg3QzQ2ODFCRkJE
RjZGMDA2RENEN0YgLyogSlNNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWlu
dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4RTA5NDgxN0QxNzA5NjAwNDIw
QUExIC8qIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTk5NCw3ICsyNTk5Nyw5IEBACiAJ
CQkJQkMyNDQxQzMwRThCNjVEMDAwNTUzMjBGIC8qIFNjcm9sbFZpZXcuY3BwICovLAogCQkJCUJD
NkQ2RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3LmggKi8sCiAJCQkJQUI3MTcwODgw
QjMxMTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oICovLAorCQkJCTA3ODYzM0Q3MjNG
RTA5NjQwMDg3QUUyMSAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmNwcCAqLywKIAkJCQkw
NzdBRjEzRTE4RjRBRTQwMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oICov
LAorCQkJCTA3NkQxQzFEMjNGNkQ5RDgwMEQ5NUIwNiAvKiBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWUuaCAqLywKIAkJCQkxQTRBOTU0QjBCNEVEQ0NCMDAyRDhDM0MgLyogU2hhcmVkQnVm
ZmVyLmNwcCAqLywKIAkJCQkxQTRBOTU0QzBCNEVEQ0NCMDAyRDhDM0MgLyogU2hhcmVkQnVmZmVy
LmggKi8sCiAJCQkJODM0REZBQ0UxRjdEQUU1NzAwQzI3MjVCIC8qIFNoYXJlZFN0cmluZ0hhc2gu
Y3BwICovLApAQCAtMzIyNTQsNiArMzIyNTksNyBAQAogCQkJCUUxOERGMzM1MThBQUYxMkMwMDc3
M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3
QUYxNDAxOEY0QUU0MDAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA3N0FGMTQzMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzZEMUMxRjIzRjZFQjVCMDBE
OTVCMDYgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNzVFNDk3NjEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTZGN0Y2RDFDMzFFMzlBMDBGMTExREMgLyogU2VydmVyT3Bl
bkRCUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5M0FFRTMxOURGNTY0MTAwMkE4NkMz
IC8qIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMDQwMDFiNGJhOWVkZmFlYmZlYWYx
ZjI3Y2ZhMGZjZTQ0N2MxMWQ4OC4uMGU4NjhhMGJhZTdiZDIyODI0YWRjYjQ0ZWI2OGFlMTc5YmM5
MWNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMzMy
LDcgKzEzMzIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2Uo
KQogICAgICAgICAgICAgbW9kZSA9IEF0dHJpYnV0ZTsKICAgICAgICAgICAgIEFTU0VSVChtX3Bs
YXllcik7CiAgICAgICAgICAgICBpZiAoIW1fcGxheWVyKSB7Ci0gICAgICAgICAgICAgICAgRVJS
T1JfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiIGhhcyBzcmNBdHRyIGJ1dCBtX3BsYXllciBpcyBu
b3QgY3JlYXRlZCIpOworICAgICAgICAgICAgICAgIEVSUk9SX0xPRyhsb2dTaXRlSWRlbnRpZmll
ciwgImhhcyBzcmNBdHRyIGJ1dCBtX3BsYXllciBpcyBub3QgY3JlYXRlZCIpOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChhdXRvIGZp
cnN0U291cmNlID0gY2hpbGRyZW5PZlR5cGU8SFRNTFNvdXJjZUVsZW1lbnQ+KCp0aGlzKS5maXJz
dCgpKSB7CkBAIC0zNDczLDExICszNDczLDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGxh
eShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgIGlmICghc3VjY2Vzcykg
ewogICAgICAgICBpZiAoc3VjY2Vzcy52YWx1ZSgpID09IE1lZGlhUGxheWJhY2tEZW5pYWxSZWFz
b246OlVzZXJHZXN0dXJlUmVxdWlyZWQpCiAgICAgICAgICAgICBzZXRBdXRvcGxheUV2ZW50UGxh
eWJhY2tTdGF0ZShBdXRvcGxheUV2ZW50UGxheWJhY2tTdGF0ZTo6UHJldmVudGVkQXV0b3BsYXkp
OworICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgInJlamVjdGluZyBwcm9taXNlOiAi
LCBzdWNjZXNzLnZhbHVlKCkpOwogICAgICAgICBwcm9taXNlLnJlamVjdChOb3RBbGxvd2VkRXJy
b3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1fZXJyb3IgJiYgbV9lcnJv
ci0+Y29kZSgpID09IE1lZGlhRXJyb3I6Ok1FRElBX0VSUl9TUkNfTk9UX1NVUFBPUlRFRCkgewor
ICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgInJlamVjdGluZyBwcm9taXNlIGJlY2F1
c2Ugb2YgZXJyb3IiKTsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3Is
ICJUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0zNDk1LDYgKzM0OTcsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXkoKQog
CiAgICAgYXV0byBzdWNjZXNzID0gbV9tZWRpYVNlc3Npb24tPnBsYXliYWNrUGVybWl0dGVkKCk7
CiAgICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAi
cGxheWJhY2sgbm90IHBlcm1pdHRlZDogIiwgc3VjY2Vzcy52YWx1ZSgpKTsKICAgICAgICAgaWYg
KHN1Y2Nlc3MudmFsdWUoKSA9PSBNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uOjpVc2VyR2VzdHVy
ZVJlcXVpcmVkKQogICAgICAgICAgICAgc2V0QXV0b3BsYXlFdmVudFBsYXliYWNrU3RhdGUoQXV0
b3BsYXlFdmVudFBsYXliYWNrU3RhdGU6OlByZXZlbnRlZEF1dG9wbGF5KTsKICAgICAgICAgcmV0
dXJuOwpAQCAtNTA5NCw3ICs1MDk3LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVs
ZU1lZGlhRW5naW5lV2FzVXBkYXRlZCgpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFF
bmdpbmVXYXNVcGRhdGVkKCkKIHsKLSAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworCiAgICAgYmVnaW5Qcm9jZXNzaW5nTWVkaWFQbGF5
ZXJDYWxsYmFjaygpOwogICAgIHVwZGF0ZVJlbmRlcmVyKCk7CiAgICAgZW5kUHJvY2Vzc2luZ01l
ZGlhUGxheWVyQ2FsbGJhY2soKTsKQEAgLTUxMjksNyArNTEzMyw3IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6bWVkaWFFbmdpbmVXYXNVcGRhdGVkKCkKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoKQogewotICAgIElORk9fTE9HKExPR0lERU5USUZJ
RVIpOworICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsIG1fcGxheWVyLT5lbmdpbmVEZXNjcmlw
dGlvbigpKTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAgICAgbV9kcm9wcGVkVmlkZW9G
cmFtZXMgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRE
YXRhVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRl
eHRUcmFjay5jcHAKaW5kZXggZjA3ZjczOGQyODM2MWNjNGJmZDQ5MmM2NGE4NGFjOWJkNGNhNjUw
NC4uMGMwNGYzYzFiNWYxNzJlNzJkY2YzZmE1ZTM1YmIwZTk3MzIwODY1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwCkBAIC01OSw3
ICs1OSw3IEBAIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuCiAKIHZvaWQgSW5iYW5kRGF0YVRleHRU
cmFjazo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+JiYgcGxhdGZvcm1WYWx1ZSwgY29u
c3QgU3RyaW5nJiB0eXBlKQogewotICAgIGlmIChtX2luY29tcGxldGVDdWVNYXAuY29udGFpbnMo
cGxhdGZvcm1WYWx1ZS5wdHIoKSkpCisgICAgaWYgKGZpbmRJbmNvbXBsZXRlQ3VlKHBsYXRmb3Jt
VmFsdWUpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGN1ZSA9IERhdGFDdWU6OmNyZWF0
ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdGFydCwgZW5kLCBwbGF0Zm9ybVZhbHVlLmNv
cHlSZWYoKSwgdHlwZSk7CkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFj
azo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVu
CiAKICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlhRWxlbWVudCgpKSB7
CiAgICAgICAgIGN1ZS0+c2V0RW5kVGltZShtZWRpYUVsZW1lbnQoKS0+ZHVyYXRpb25NZWRpYVRp
bWUoKSk7Ci0gICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5hZGQoV1RGTW92ZShwbGF0Zm9ybVZh
bHVlKSwgY3VlLmNvcHlSZWYoKSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5hcHBlbmQo
JmN1ZS5nZXQoKSk7CiAgICAgfQogCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgY3VlLmdl
dCgpKTsKQEAgLTc4LDkgKzc4LDIxIEBAIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0
YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuCiAgICAgYWRk
Q3VlKFdURk1vdmUoY3VlKSk7CiB9CiAKK1JlZlB0cjxEYXRhQ3VlPiBJbmJhbmREYXRhVGV4dFRy
YWNrOjpmaW5kSW5jb21wbGV0ZUN1ZShjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJiBj
dWVUb0ZpbmQpCit7CisgICAgYXV0byBpbmRleCA9IG1faW5jb21wbGV0ZUN1ZU1hcC5maW5kTWF0
Y2hpbmcoWyZdKGNvbnN0IGF1dG8mIGN1ZSkgeworICAgICAgICByZXR1cm4gY3VlVG9GaW5kLmlz
RXF1YWwoKmN1ZS0+cGxhdGZvcm1WYWx1ZSgpKTsKKyAgICB9KTsKKworICAgIGlmIChpbmRleCA9
PSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9pbmNv
bXBsZXRlQ3VlTWFwW2luZGV4XTsKK30KKwogdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRh
dGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgaW5FbmQs
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAgUmVmUHRy
PERhdGFDdWU+IGN1ZSA9IG1faW5jb21wbGV0ZUN1ZU1hcC5nZXQoJnBsYXRmb3JtVmFsdWUpOwor
ICAgIGF1dG8gY3VlID0gZmluZEluY29tcGxldGVDdWUocGxhdGZvcm1WYWx1ZSk7CiAgICAgaWYg
KCFjdWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTAsNyArMTAyLDcgQEAgdm9pZCBJbmJhbmRE
YXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0
IE1lZGlhVGltZSYKICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlhRWxl
bWVudCgpKQogICAgICAgICBlbmQgPSBtZWRpYUVsZW1lbnQoKS0+ZHVyYXRpb25NZWRpYVRpbWUo
KTsKICAgICBlbHNlCi0gICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoJnBsYXRmb3Jt
VmFsdWUpOworICAgICAgICBtX2luY29tcGxldGVDdWVNYXAucmVtb3ZlRmlyc3QoY3VlKTsKIAog
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJ3YXMgc3RhcnQgPSAiLCBjdWUtPnN0YXJ0TWVk
aWFUaW1lKCksICIsIGVuZCA9ICIsIGN1ZS0+ZW5kTWVkaWFUaW1lKCksICIsIHdpbGwgYmUgc3Rh
cnQgPSAiLCBzdGFydCwgIiwgZW5kID0gIiwgZW5kKTsKIApAQCAtMTAyLDggKzExNCw5IEBAIHZv
aWQgSW5iYW5kRGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmCiAKIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6cmVtb3Zl
RGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIGlmIChhdXRvIGN1ZSA9IG1faW5j
b21wbGV0ZUN1ZU1hcC50YWtlKCZwbGF0Zm9ybVZhbHVlKSkgeworICAgIGlmIChhdXRvIGN1ZSA9
IGZpbmRJbmNvbXBsZXRlQ3VlKHBsYXRmb3JtVmFsdWUpKSB7CiAgICAgICAgIElORk9fTE9HKExP
R0lERU5USUZJRVIsICJyZW1vdmluZzogIiwgKmN1ZSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1
ZU1hcC5yZW1vdmVGaXJzdChjdWUpOwogICAgICAgICBJbmJhbmRUZXh0VHJhY2s6OnJlbW92ZUN1
ZSgqY3VlKTsKICAgICB9CiB9CkBAIC0xMTIsNyArMTI1LDggQEAgRXhjZXB0aW9uT3I8dm9pZD4g
SW5iYW5kRGF0YVRleHRUcmFjazo6cmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSYgY3VlKQogewogICAg
IEFTU0VSVChjdWUuY3VlVHlwZSgpID09IFRleHRUcmFja0N1ZTo6RGF0YSk7CiAKLSAgICBtX2lu
Y29tcGxldGVDdWVNYXAucmVtb3ZlKGNvbnN0X2Nhc3Q8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZSo+KHRvRGF0YUN1ZSgmY3VlKS0+cGxhdGZvcm1WYWx1ZSgpKSk7CisgICAgaWYgKGF1dG8gcGxh
dGZvcm1WYWx1ZSA9IGNvbnN0X2Nhc3Q8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSo+KHRvRGF0
YUN1ZSgmY3VlKS0+cGxhdGZvcm1WYWx1ZSgpKSkKKyAgICAgICAgcmVtb3ZlRGF0YUN1ZSh7IH0s
IHsgfSwgKnBsYXRmb3JtVmFsdWUpOwogCiAgICAgcmV0dXJuIEluYmFuZFRleHRUcmFjazo6cmVt
b3ZlQ3VlKGN1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZERhdGFUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0
YVRleHRUcmFjay5oCmluZGV4IDFhOGJkZjZhZTUyMjhiZWYwY2Y4ZDFkYWQ5NWUzNTZmNjI4YTQ0
ZjIuLjRmYzMxM2VhY2M1MTc0MTIzMDQ2OThmNDJlM2NhZWVhOWQxOTM5NTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCkBAIC01NSw3ICs1
NSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYg
c3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikg
ZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSYpIGZp
bmFsOwogCi0gICAgSGFzaE1hcDxSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4sIFJl
ZlB0cjxEYXRhQ3VlPj4gbV9pbmNvbXBsZXRlQ3VlTWFwOworICAgIFJlZlB0cjxEYXRhQ3VlPiBm
aW5kSW5jb21wbGV0ZUN1ZShjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJik7CisKKyAg
ICBWZWN0b3I8UmVmUHRyPERhdGFDdWU+PiBtX2luY29tcGxldGVDdWVNYXA7CiAjZW5kaWYKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4IDQ3ZTZkZWU5M2QwNjky
OTk3MzYwOTUxZTUxMTIzOGQ5ZTMwNTk4ZjIuLjA3MzY1MmY0NDQ1MTVlOGQ4YTBjZGVlYjIxYzA2
YzQzNjc3MTEyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAtOTYs
NiArOTYsOCBAQCBwdWJsaWM6CiAgICAgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcygpOwogICAgIFRl
eHRUcmFja0N1ZUxpc3QqIGFjdGl2ZUN1ZXMoKSBjb25zdDsKIAorICAgIFRleHRUcmFja0N1ZUxp
c3QqIGN1ZXNJbnRlcm5hbCgpIGNvbnN0IHsgcmV0dXJuIG1fY3Vlcy5nZXQoKTsgfQorCiAgICAg
dm9pZCBjbGVhckNsaWVudCgpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CiAgICAg
VGV4dFRyYWNrQ2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggZTVkZjNjM2I3ODY2ZWE5
ZmQ0M2RhY2NmNGE0NjIyYmRiNjQ4OTQyMi4uY2JkZDhjMDMxZGI3Y2ZlMGU4NDU2MTE5NzYyNjdm
MjQ1MTIyNGVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNw
cApAQCAtMzQxLDExICszNDEsMTEgQEAgdm9pZCBUZXh0VHJhY2tDdWU6OnNldElzQWN0aXZlKGJv
b2wgYWN0aXZlKQogCiB1bnNpZ25lZCBUZXh0VHJhY2tDdWU6OmN1ZUluZGV4KCkgY29uc3QKIHsK
LSAgICBBU1NFUlQobV90cmFjayAmJiBtX3RyYWNrLT5jdWVzKCkpOwotICAgIGlmICghbV90cmFj
ayB8fCAhbV90cmFjay0+Y3VlcygpKQorICAgIEFTU0VSVChtX3RyYWNrICYmIG1fdHJhY2stPmN1
ZXNJbnRlcm5hbCgpKTsKKyAgICBpZiAoIW1fdHJhY2sgfHwgIW1fdHJhY2stPmN1ZXNJbnRlcm5h
bCgpKQogICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgp
OwogCi0gICAgcmV0dXJuIG1fdHJhY2stPmN1ZXMoKS0+Y3VlSW5kZXgoKnRoaXMpOworICAgIHJl
dHVybiBtX3RyYWNrLT5jdWVzSW50ZXJuYWwoKS0+Y3VlSW5kZXgoKnRoaXMpOwogfQogCiBib29s
IFRleHRUcmFja0N1ZTo6aXNPcmRlcmVkQmVmb3JlKGNvbnN0IFRleHRUcmFja0N1ZSogb3RoZXIp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5YmZiOGE2YTFlMDdjNGVmZjRmYTZkZGQwOWUz
ZTc5YTFlNzllNzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWUuaCIKKworI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKERBVEFDVUVfVkFMVUUp
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmICFQTEFURk9STShDT0NPQSkKK1JlZjxTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUo
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSgpKTsKK30KKyNlbmRpZgorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5oCmluZGV4IDQ3NGFjMWQ0Zjc3NjRiNWNlYzEz
ZTE3YzZlZTE5YThiNDJkMjAwNzcuLjA4NTUwZmRlNzcxNGEyZWQ1ZGEwZWRiOTE1NTY3YTIxMzhm
ODBmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShWSURFTykKIAor
I2luY2x1ZGUgIlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
CkBAIC0zNCwxNiArMzUsMjMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlIDogcHVibGljIFJlZkNvdW50ZWQ8U2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZT4gewogcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZT4gY3JlYXRlKFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1
ZSYmKTsKKwogICAgIHZpcnR1YWwgflNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUoKSA9IGRlZmF1
bHQ7CiAKLSAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1ZSBkZXNlcmlhbGl6ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+
IGRhdGEoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlzRXF1YWwoY29uc3QgU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZSYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1
ZSBkZXNlcmlhbGl6ZShKU0M6OkpTR2xvYmFsT2JqZWN0KikgY29uc3QgeyByZXR1cm4gSlNDOjpq
c051bGwoKTsgfQorICAgIHZpcnR1YWwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+IGRhdGEoKSBj
b25zdCB7IHJldHVybiB7IH07IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNFcXVhbChjb25zdCBTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIGVu
dW0gUGxhdGZvcm1UeXBlIHsKKyAgICBlbnVtIGNsYXNzIFBsYXRmb3JtVHlwZSB7CisgICAgICAg
IE5vbmUsCiAgICAgICAgIE9iakMsCiAgICAgfTsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtVHlwZSBw
bGF0Zm9ybVR5cGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9ybVR5cGUgcGxhdGZv
cm1UeXBlKCkgY29uc3QgeyByZXR1cm4gUGxhdGZvcm1UeXBlOjpOb25lOyB9CisKKyAgICB2aXJ0
dWFsIGJvb2wgZW5jb2RpbmdSZXF1aXJlc1BsYXRmb3JtRGF0YSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisKKyAgICB2aXJ0dWFsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBlbmNv
ZGFibGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGJjNjMzNGFiZTJiMzRjOWY0YWViMmEzZmZjYmJmYzc5MWMwYWRmMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZS5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiAhZGVmaW5lZChfX09CSkNfXykKK3R5cGVkZWYgc3Ry
dWN0IG9iamNfb2JqZWN0ICppZDsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCit1c2lu
ZyBQbGF0Zm9ybU5hdGl2ZVZhbHVlID0gaWQ7CisjZWxzZQordXNpbmcgUGxhdGZvcm1OYXRpdmVW
YWx1ZSA9IHZvaWQqOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSk7CitwdWJsaWM6CisgICAgZW51bSBjbGFz
cyBQbGF0Zm9ybVR5cGUgeworICAgICAgICBOb25lLAorICAgICAgICBPYmpDLAorICAgIH07CisK
KyAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUoUGxhdGZvcm1UeXBlIHBsYXRmb3Jt
VHlwZSwgUGxhdGZvcm1OYXRpdmVWYWx1ZSBuYXRpdmVWYWx1ZSkKKyAgICAgICAgOiBtX25hdGl2
ZVZhbHVlKG5hdGl2ZVZhbHVlKQorICAgICAgICAsIG1fdHlwZShwbGF0Zm9ybVR5cGUpCisgICAg
eworICAgIH0KKyAgICBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUoKSA9IGRlZmF1bHQ7
CisgICAgflNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSgpID0gZGVmYXVsdDsKKworICAg
IFBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKwor
ICAgIFBsYXRmb3JtTmF0aXZlVmFsdWUgbmF0aXZlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX25h
dGl2ZVZhbHVlOyB9CisKKyAgICBib29sIGVuY29kaW5nUmVxdWlyZXNQbGF0Zm9ybURhdGEoKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gUGxhdGZvcm1UeXBlOjpPYmpDOyB9CisKK3Byb3RlY3Rl
ZDoKKyAgICBQbGF0Zm9ybU5hdGl2ZVZhbHVlIG1fbmF0aXZlVmFsdWUgeyBudWxscHRyIH07Cisg
ICAgUGxhdGZvcm1UeXBlIG1fdHlwZSB7IFBsYXRmb3JtVHlwZTo6Tm9uZSB9OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBjYTcxZTdlMGI1ODZjN2I1NWIxMTI3
MzJiYWQ1OWIwMWQ4YTQxODFiLi41N2RmY2JmNGJjN2M0ODg0NGQzODFjYjM1ZWNjNjQzYzFhYWI0
YjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCkBAIC0xMDksNiArMTA5LDggQEAgcHVibGljOgogICAgIHZvaWQgcGxheSgpIGZpbmFs
IHsgfQogICAgIHZvaWQgcGF1c2UoKSBmaW5hbCB7IH0KIAorICAgIFN0cmluZyBlbmdpbmVEZXNj
cmlwdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJOdWxsTWVkaWFQbGF5ZXIiOyB9CisKICAg
ICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVs
bHB0cjsgfQogCiAgICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gRmxvYXRTaXplKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKaW5kZXggZmUxYzA2NGFlNTEyNzcyMzA4Y2MyYzRj
YjIyNDNlYjkyZTUzMTgwMC4uYjc4NjRmN2IzNzBlMzM1MjY3NTZjZGE2MmQ3MjdhYzA3YzgwYjYz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2
YXRlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQ
cml2YXRlQmFzZS5jcHAKQEAgLTMzLDkgKzMzLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorCiBzdGF0aWMgdWludDY0X3Qgc191bmlxdWVJ
ZCA9IDA7CiAKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIHZvaWQgVHJhY2tQcml2YXRlQmFz
ZTo6c2V0TG9nZ2VyKGNvbnN0IExvZ2dlciYgbG9nZ2VyLCBjb25zdCB2b2lkKiBsb2dJZGVudGlm
aWVyKQogewogICAgIG1fbG9nZ2VyID0gJmxvZ2dlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmlu
ZGV4IDgyMGRhODljNDZmODcxNTMyOTZlMTY3NGRmNDZhMWQ3NGJlMDZmOWEuLmIzN2M0NDExMzE0
OTg4Nzk1NDZlYzhhNTdhMGRkOGUxMWY3ODQ2OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpA
QCAtMzA3NCw3ICszMDc0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjptZXRhZGF0YURpZEFycml2ZShjb25zdCBSZXRhaW5QdHI8TlNBcnIKICAgICAgICAgaWYg
KGl0ZW0ua2V5U3BhY2UpCiAgICAgICAgICAgICB0eXBlID0gbWV0YWRhdGFUeXBlKGl0ZW0ua2V5
U3BhY2UpOwogCi0gICAgICAgIG1fbWV0YWRhdGFUcmFjay0+YWRkRGF0YUN1ZShzdGFydCwgZW5k
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUoaXRlbSksIHR5cGUpOworICAg
ICAgICBtX21ldGFkYXRhVHJhY2stPmFkZERhdGFDdWUoc3RhcnQsIGVuZCwgU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKHsgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMsIGl0ZW0gfSksIHR5cGUpOwogICAgIH0KICNlbmRp
ZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlTWFjLmgKaW5kZXggYTEwZGNjYzNlMWI1YTMwZGZiZjAxMGE3NjA1
MDUyODA2YjIxOTZlYi4uN2ZlZTJkMjNjNzg0NWYyNTY5MjRlNmUzN2NhYzVlZDEyZGE1ZGU0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZU1hYy5oCkBAIC0yOSwyOCArMjksMjYgQEAKIAogI2luY2x1ZGUgIlNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuaCIKIAotI2lmIFVTRShGT1VOREFUSU9OKSAmJiAhZGVm
aW5lZChfX09CSkNfXykKLXR5cGVkZWYgc3RydWN0IG9iamNfb2JqZWN0ICppZDsKLSNlbmRpZgot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVN
YWMgZmluYWwgOiBwdWJsaWMgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSB7CiBwdWJsaWM6Ci0g
ICAgdmlydHVhbCB+U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYygpOwotICAgIHN0YXRpYyBS
ZWY8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZT4gY3JlYXRlKGlkKTsKKyAgICBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlTWFjKFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmKTsKKyAg
ICB2aXJ0dWFsIH5TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKCkgPSBkZWZhdWx0OwogCiAg
ICAgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdCBm
aW5hbDsKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGRhdGEoKSBjb25zdCBmaW5hbDsKLQogICAg
IGJvb2wgaXNFcXVhbChjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikgY29uc3QgZmlu
YWw7CisgICAgUGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFBsYXRmb3JtVHlwZTo6T2JqQzsgfQorICAgIGJvb2wgZW5jb2RpbmdSZXF1aXJlc1BsYXRmb3Jt
RGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIFBsYXRmb3JtVHlwZSBw
bGF0Zm9ybVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlOjpPYmpDOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZVZhbHVlIGVuY29kYWJsZVZhbHVlKCkgY29uc3QgZmluYWw7CiAKICAgICBpZCBuYXRpdmVWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlVmFsdWUuZ2V0KCk7IH0KIAorICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBOU0FycmF5ICphbGxvd2VkQ2xhc3Nlc0Zvck5hdGl2ZVZhbHVlcygpOwor
CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoaWQg
bmF0aXZlVmFsdWUpOwogCiAgICAgUmV0YWluUHRyPGlkPiBtX25hdGl2ZVZhbHVlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVNYWMubW0KaW5kZXggYjk0OWViN2NkZDIwMDM5ZjFjZmZlZjhjNGM1YmNkN2Ix
MTNlYjE5OS4uM2JhY2I5YjY1NzYwMmZjZDc0YTg3MDAwNzhkYjQwN2Q5NjY3YjI5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVNYWMubW0KQEAgLTQ4LDIxICs0OCwxOSBAQCBzdGF0aWMgSlNWYWx1ZSAqanNW
YWx1ZVdpdGhBcnJheUluQ29udGV4dChOU0FycmF5ICosIEpTQ29udGV4dCAqKTsKIHN0YXRpYyBK
U1ZhbHVlICpqc1ZhbHVlV2l0aERpY3Rpb25hcnlJbkNvbnRleHQoTlNEaWN0aW9uYXJ5ICosIEpT
Q29udGV4dCAqKTsKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aEFWTWV0YWRhdGFJdGVtSW5D
b250ZXh0KEFWTWV0YWRhdGFJdGVtICosIEpTQ29udGV4dCAqKTsKIHN0YXRpYyBKU1ZhbHVlICpq
c1ZhbHVlV2l0aFZhbHVlSW5Db250ZXh0KGlkLCBKU0NvbnRleHQgKik7CitzdGF0aWMgTlNEaWN0
aW9uYXJ5ICpOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0ZW0oQVZNZXRhZGF0YUl0ZW0gKik7
CiAjZW5kaWYKIAotU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZU1hYyhpZCBuYXRpdmVWYWx1ZSkKLSAgICA6IFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWUoKQotICAgICwgbV9uYXRpdmVWYWx1ZShuYXRpdmVWYWx1ZSkKLXsKLX0KLQotU2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6flNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoKQor
UmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6
OmNyZWF0ZShTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiB2YWx1ZSkKIHsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFdURk1vdmUo
dmFsdWUpKSk7CiB9CiAKLVJlZjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlPiBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlTWFjOjpjcmVhdGUoaWQgbmF0aXZlVmFsdWUpCitTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVWYWx1ZSYmIHZhbHVlKQorICAgIDogU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZSgpCisgICAgLCBtX25hdGl2ZVZhbHVlKHZhbHVlLm5hdGl2ZVZhbHVlKCkpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyhuYXRpdmVW
YWx1ZSkpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04odmFs
dWUucGxhdGZvcm1UeXBlKCkgPT0gU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0
Zm9ybVR5cGU6Ok9iakMpOwogfQogCiBSZWZQdHI8QXJyYXlCdWZmZXI+IFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVNYWM6OmRhdGEoKSBjb25zdApAQCAtODksNyArODcsNyBAQCBKU0M6OkpTVmFs
dWUgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6ZGVzZXJpYWxpemUoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aQogCiBib29sIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmlzRXF1
YWwoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAg
aWYgKG90aGVyLnBsYXRmb3JtVHlwZSgpICE9IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6Ok9i
akMpCisgICAgaWYgKG90aGVyLnBsYXRmb3JtVHlwZSgpICE9IFBsYXRmb3JtVHlwZTo6T2JqQykK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZU1hYyogb3RoZXJPYmpDID0gdG9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKCZvdGhl
cik7CkBAIC0xMDcsMTAgKzEwNSwyNCBAQCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKiB0
b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMoU2VyaWFsaXplZFBsYXRmb3JtRAogCiBjb25z
dCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjKiB0b1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVNYWMoY29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSogcmVwKQogewotICAgIFJFTEVB
U0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocmVwLT5wbGF0Zm9ybVR5cGUoKSA9
PSBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpPYmpDKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHJlcC0+cGxhdGZvcm1UeXBlKCkgPT0gU2VyaWFsaXpl
ZFBsYXRmb3JtRGF0YUN1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKTsKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Y29uc3QgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYyo+KHJlcCk7CiB9CiAKK05T
QXJyYXkgKlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWM6OmFsbG93ZWRDbGFzc2VzRm9yTmF0
aXZlVmFsdWVzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TQXJy
YXk+PiBhbGxvd2VkQ2xhc3NlcyhAWyBbTlNTdHJpbmcgY2xhc3NdLCBbTlNOdW1iZXIgY2xhc3Nd
LCBbTlNMb2NhbGUgY2xhc3NdLCBbTlNEaWN0aW9uYXJ5IGNsYXNzXSwgW05TQXJyYXkgY2xhc3Nd
LCBbTlNEYXRhIGNsYXNzXSBdKTsKKyAgICByZXR1cm4gYWxsb3dlZENsYXNzZXMuZ2V0KCkuZ2V0
KCk7Cit9CisKK1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlTWFjOjplbmNvZGFibGVWYWx1ZSgpIGNvbnN0Cit7CisgICAgaWYgKFttX25hdGl2
ZVZhbHVlLmdldCgpIGlzS2luZE9mQ2xhc3M6UEFMOjpnZXRBVk1ldGFkYXRhSXRlbUNsYXNzKCld
KQorICAgICAgICByZXR1cm4geyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRm
b3JtVHlwZTo6T2JqQywgTlNEaWN0aW9uYXJ5V2l0aEFWTWV0YWRhdGFJdGVtKG1fbmF0aXZlVmFs
dWUuZ2V0KCkpIH07CisKKyAgICByZXR1cm4geyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWU6OlBsYXRmb3JtVHlwZTo6T2JqQywgbV9uYXRpdmVWYWx1ZS5nZXQoKSB9OworfQorCiAjaWYg
SlNDX09CSkNfQVBJX0VOQUJMRUQKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aFZhbHVlSW5D
b250ZXh0KGlkIHZhbHVlLCBKU0NvbnRleHQgKmNvbnRleHQpCiB7CkBAIC0xOTMsNiArMjA1LDEx
IEBAIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aERpY3Rpb25hcnlJbkNvbnRleHQoTlNEaWN0
aW9uYXJ5ICpkaWN0aW9uYXJ5LCBKU0NvbnRlCiB9CiAKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVl
V2l0aEFWTWV0YWRhdGFJdGVtSW5Db250ZXh0KEFWTWV0YWRhdGFJdGVtICppdGVtLCBKU0NvbnRl
eHQgKmNvbnRleHQpCit7CisgICAgcmV0dXJuIGpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29udGV4
dChOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0ZW0oaXRlbSksIGNvbnRleHQpOworfQorCitz
dGF0aWMgTlNEaWN0aW9uYXJ5ICpOU0RpY3Rpb25hcnlXaXRoQVZNZXRhZGF0YUl0ZW0oQVZNZXRh
ZGF0YUl0ZW0gKml0ZW0pCiB7CiAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqZGljdGlvbmFyeSA9
IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOwogCkBAIC0yMzAsNyArMjQ3LDcgQEAg
c3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoQVZNZXRhZGF0YUl0ZW1JbkNvbnRleHQoQVZNZXRh
ZGF0YUl0ZW0gKml0ZW0sIEpTQ29udGUKICAgICBpZiAoaXRlbS52YWx1ZSkKICAgICAgICAgW2Rp
Y3Rpb25hcnkgc2V0T2JqZWN0Oml0ZW0udmFsdWUgZm9yS2V5OkAiZGF0YSJdOwogCi0gICAgcmV0
dXJuIGpzVmFsdWVXaXRoRGljdGlvbmFyeUluQ29udGV4dChkaWN0aW9uYXJ5LCBjb250ZXh0KTsK
KyAgICByZXR1cm4gZGljdGlvbmFyeTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNjRmM2NiZjIwYzUyYzM2MjA2YWFlYjlj
NDk5N2E3MmY1YmU0MGY4Ny4uNGNiZDQ2MTRiNjJiOGMzZTdkNGY1NmNhOTUwYzk0NDc2MTI5OTMy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MjQsOCArMjQsOCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlTWVk
aWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyUHJveHlDb25maWd1cmF0aW9uIHByb3h5Q29uZmlndXJhdGlvbikgLT4gKHN0cnVjdCBXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKSBT
eW5jaHJvbm91cwotICAgIERlbGV0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKKyAgICBDcmVhdGVNZWRpYVBsYXllcihXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRl
bnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRp
b24gcHJveHlDb25maWd1cmF0aW9uKSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24pIEFzeW5jCisgICAgIERlbGV0ZU1l
ZGlhUGxheWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCkK
IAogICAgIEdldFN1cHBvcnRlZFR5cGVzKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXll
ckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcikgLT4g
KFZlY3RvcjxTdHJpbmc+IHR5cGVzKSBTeW5jaHJvbm91cwogICAgIFN1cHBvcnRzVHlwZUFuZENv
ZGVjcyhlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzIHR5cGUpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIHN1cHBvcnQpIFN5bmNocm9ub3VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5
LmNwcAppbmRleCBiNzZkYzliMGQ0NmY4NmI3Nzk1N2QzYjNiNzg1NDU5YzM5NDliMmE2Li4zMmM5
YjdlMTJlNWE3MmNiMGJiYmQwYTk1ZTAzMTE4ZTA3MjQwYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKQEAg
LTk2LDI1ICs5NiwyNSBAQCB2b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjpsYW5ndWFnZUNoYW5n
ZWQoY29uc3QgQXRvbVN0cmluZyYpCiAgICAgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKIH0KIAot
dm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpCit2b2lkIFJlbW90ZVRleHRU
cmFja1Byb3h5OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlh
VGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZERhdGFDdWUobV9pZGVudGlmaWVyLCBzdGFy
dCwgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90
Kj4oZGF0YSksIGxlbmd0aCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwogfQogCiAjaWYgRU5B
QkxFKERBVEFDVUVfVkFMVUUpCi12b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjphZGREYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFJlZjxTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlPiYmLCBjb25zdCBTdHJpbmcmKQordm9pZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6
YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwg
UmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU+JiYgY3VlRGF0YSwgY29uc3QgU3RyaW5nJiB0
eXBlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGREYXRhQ3VlV2l0
aFR5cGUobV9pZGVudGlmaWVyLCBzdGFydCwgZW5kLCBjdWVEYXRhLT5lbmNvZGFibGVWYWx1ZSgp
LCB0eXBlKSwgbV9wbGF5ZXIuaWRlbmRpZmllcigpKTsKIH0KIAotdm9pZCBSZW1vdGVUZXh0VHJh
Y2tQcm94eTo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUm
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJikKK3ZvaWQgUmVtb3RlVGV4dFRyYWNrUHJveHk6
OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBl
bmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmIGN1ZURhdGEpCiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OlVwZGF0ZURhdGFDdWUobV9pZGVudGlmaWVyLCBzdGFydCwg
ZW5kLCBjdWVEYXRhLmVuY29kYWJsZVZhbHVlKCkpLCBtX3BsYXllci5pZGVuZGlmaWVyKCkpOwog
fQogCi12b2lkIFJlbW90ZVRleHRUcmFja1Byb3h5OjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlh
VGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKQordm9p
ZCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6cmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSYgY3Vl
RGF0YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6UmVtb3ZlRGF0YUN1
ZShtX2lkZW50aWZpZXIsIHN0YXJ0LCBlbmQsIGN1ZURhdGEuZW5jb2RhYmxlVmFsdWUoKSksIG1f
cGxheWVyLmlkZW5kaWZpZXIoKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggMWMwMGJkYTUzZjViNmI0MzRlYTcx
OTc5ZjRlNjMyMTM4MWRhNTcyYy4uOGM5ZmEyMWFmMzhhNzE2MmM2YzIwOWU5Mzk0Njg5MDZhMjVj
M2NhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZXJpYWxpemVkQXR0YWNobWVudERhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtl
ckNsaWVudERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRGF0YS5oPgpAQCAtMzE3
NCw0ICszMTc1LDMyIEBAIE9wdGlvbmFsPFNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YT4gQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkQXR0YWNobWVudERhCiAKICNlbmRpZiAvLyBFTkFC
TEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCisjaWYgRU5BQkxFKFZJREVPKQordm9pZCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmIHZh
bHVlKQoreworICAgIGJvb2wgaGFzUGxhdGZvcm1EYXRhID0gdmFsdWUuZW5jb2RpbmdSZXF1aXJl
c1BsYXRmb3JtRGF0YSgpOworICAgIGVuY29kZXIgPDwgaGFzUGxhdGZvcm1EYXRhOworCisgICAg
ZW5jb2Rlci5lbmNvZGVFbnVtKHZhbHVlLnBsYXRmb3JtVHlwZSgpKTsKKyAgICBpZiAoaGFzUGxh
dGZvcm1EYXRhKQorICAgICAgICBlbmNvZGVQbGF0Zm9ybURhdGEoZW5jb2RlciwgdmFsdWUpOwor
fQorCitPcHRpb25hbDxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBib29sIGhhc1BsYXRmb3JtRGF0YTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGhhc1BsYXRmb3JtRGF0YSkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBs
YXRmb3JtVHlwZSB0eXBlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHR5cGUpKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKGhhc1BsYXRmb3JtRGF0YSkKKyAg
ICAgICAgcmV0dXJuIGRlY29kZVBsYXRmb3JtRGF0YShkZWNvZGVyLCB0eXBlKTsKKworICAgIHJl
dHVybiB7eyB9fTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggN2JmNzFjMTdhYmRkM2Q4
YjEzMTkwMjIwMDU4YzlmOWMyMTlmNjBiMy4uZTM4MTRlMjFmODMzNmFhZjJmNDQ0MzIzMmUzNDRl
MDA3NGRhZTJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkRp
cmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
cnZpY2VXb3JrZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlclR5cGUuaD4KQEAgLTgxOSw2ICs4MjAs
MTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVk
QXR0YWNobWVudERhdGE+IHsKIAogI2VuZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQp
CiAKKyNpZiBFTkFCTEUoVklERU8pCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4geworICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1
ZVZhbHVlJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZT4gZGVjb2RlKERlY29kZXImKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGVQ
bGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZSYpOworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlVmFsdWU+IGRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgV2ViQ29yZTo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGUpOworfTsKKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBJUEMKIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcApp
bmRleCA4NTJkZjMxZGI5OGNjODZiNmIzMzkxMzdhN2MxN2E4YzM5YTkwMzFhLi5iN2IwODhmOTU4
MjVjMTE3Y2MzZjhhMjI5MDJiNTkzN2IyMjc4MWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAKQEAgLTI0Niw0
ICsyNDYsMTcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjpkZWNvZGVQbGF0Zm9y
bURhdGEoRGVjb2RlciYsIEZvbnRIYW5kbGUmKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lm
IEVOQUJMRShWSURFTykKK3ZvaWQgQXJndW1lbnRDb2RlcjxTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlVmFsdWU+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKK30KKworT3B0aW9uYWw8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiAg
QXJndW1lbnRDb2RlcjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNvZGVQbGF0
Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGUgcGxhdGZvcm1UeXBlKQoreworICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisjZW5kaWYKKwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMu
bW0KaW5kZXggZWUyMjI0MjNmMDQ3YzliZjA5MzYzOWQ4MTJiMTgyZDgzNjE4MGVmZS4uOGRhN2Mx
OTg3NzkyYjg3NzQ5YTZlYWQ3ZTk5M2Y5NmM3ZTE4MWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Byb3RlY3Rpb25TcGFjZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL01hY2hTZW5kUmln
aHQuaD4KIApAQCAtNjY5LDQgKzY3MCwyNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjbwogCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShWSURFTykKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
JiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQodmFsdWUucGxhdGZvcm1UeXBlKCkgPT0gV2ViQ29yZTo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGU6Ok9iakMpOworICAg
IGlmICh2YWx1ZS5wbGF0Zm9ybVR5cGUoKSA9PSBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQykKKyAgICAgICAgZW5jb2RlT2JqZWN0KGVu
Y29kZXIsIHZhbHVlLm5hdGl2ZVZhbHVlKCkpOworfQorCitPcHRpb25hbDxXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+ICBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBk
ZWNvZGVyLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3Jt
VHlwZSBwbGF0Zm9ybVR5cGUpCit7CisgICAgQVNTRVJUKHBsYXRmb3JtVHlwZSA9PSBXZWJDb3Jl
OjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZTo6T2JqQyk7CisK
KyAgICBpZiAocGxhdGZvcm1UeXBlICE9IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFD
dWVWYWx1ZTo6UGxhdGZvcm1UeXBlOjpPYmpDKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgYXV0byBvYmplY3QgPSBkZWNvZGVPYmplY3QoZGVjb2RlciwgV2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYzo6YWxsb3dlZENsYXNzZXNGb3JOYXRpdmVWYWx1ZXMo
KSk7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICByZXR1cm4gV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIHsgcGxhdGZv
cm1UeXBlLCBvYmplY3QudmFsdWUoKS5nZXQoKSB9OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNw
YWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzU291cC5jcHAKaW5kZXggZTY3ZjBlZDYyZmRhODJkNTRlYzllMjM4MzRkNGM4
NzEwNjgyMzVkMi4uOWI2MDM3ZmIzNDg5MDUzZDA3ZDZiMGE2NGEzMTA4NDNlZTM4YjM4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNT
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENv
ZGVyc1NvdXAuY3BwCkBAIC0yNjMsNSArMjYzLDE4IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxGb250
SGFuZGxlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBGb250SGFuZGxlJikKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBFTkFCTEUoVklERU8pCit2b2lkIEFyZ3VtZW50Q29kZXI8
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYgdmFsdWUp
Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK09wdGlvbmFsPFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVWYWx1ZT4gIEFyZ3VtZW50Q29kZXI8U2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlw
ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworfQorI2VuZGlmCisKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDlk
YzBlYmI2MDY2NDg5N2Y4MmRiN2UwNTE4MDhmMGU0ODlkYzUyNzkuLmE2MGJiNGY5Y2QyMzFkOTE5
MDM4MjQyMTQyZTNiMGVlOThlMzdiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
QEAgLTY3LDEzICs2NywxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIH0gd2hpbGUgKDAp
CiAjZW5kaWYKIAotTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2Vy
LCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCitN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBs
YXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5n
aW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJ
ZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIpCiAgICAgOiBtX3Bs
YXllcihwbGF5ZXIpCiAgICAgLCBtX21lZGlhUmVzb3VyY2VMb2FkZXIocGxheWVyLT5jcmVhdGVS
ZXNvdXJjZUxvYWRlcigpKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBtX3JlbW90
ZUVuZ2luZUlkZW50aWZpZXIoZW5naW5lSWRlbnRpZmllcikKICAgICAsIG1faWQocGxheWVySWRl
bnRpZmllcikKLSAgICAsIG1fY29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKQogI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogICAgICwgbV9sb2dnZXIoJnBsYXllci0+bWVkaWFQbGF5ZXJMb2dn
ZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nSWRlbnRp
ZmllcigpKQpAQCAtODIsNiArODEsMTIgQEAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGEKICAgICBJ
TkZPX0xPRyhMT0dJREVOVElGSUVSKTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYgY29u
ZmlndXJhdGlvbikKK3sKKyAgICBtX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRp
b24pOworICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKK30KKwogTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKIHsKICAgICBJTkZP
X0xPRyhMT0dJREVOVElGSUVSKTsKQEAgLTQ4NCw2ICs0ODksNDAgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGkKICAgICAgICAgdHJhY2stPnBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChXVEZNb3Zl
KGRhdGEpKTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWUo
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFy
dCwgTWVkaWFUaW1lJiYgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhKQoreworICAgIEFT
U0VSVChtX3RleHRUcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOworCisgICAgaWYgKGNvbnN0
IGF1dG8mIHRyYWNrID0gbV90ZXh0VHJhY2tzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgdHJh
Y2stPmFkZERhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgV1RGTW92ZShkYXRh
KSk7Cit9CisKKyNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjphZGREYXRhQ3VlV2l0aFR5cGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhLCBTdHJpbmcmJiB0eXBlKQoreworICAgIEFT
U0VSVChtX3RleHRUcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOworCisgICAgaWYgKGNvbnN0
IGF1dG8mIHRyYWNrID0gbV90ZXh0VHJhY2tzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgdHJh
Y2stPmFkZERhdGFDdWVXaXRoVHlwZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXVEZN
b3ZlKGRhdGEpLCBXVEZNb3ZlKHR5cGUpKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnVwZGF0ZURhdGFDdWUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWUmJiBkYXRhKQoreworICAgIEFTU0VSVChtX3RleHRUcmFja3MuY29udGFp
bnMoaWRlbnRpZmllcikpOworCisgICAgaWYgKGNvbnN0IGF1dG8mIHRyYWNrID0gbV90ZXh0VHJh
Y2tzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgdHJhY2stPnVwZGF0ZURhdGFDdWUoV1RGTW92
ZShzdGFydCksIFdURk1vdmUoZW5kKSwgV1RGTW92ZShkYXRhKSk7Cit9CisKK3ZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVEYXRhQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YSkKK3sKKyAgICBBU1NFUlQobV90ZXh0
VHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKworICAgIGlmIChjb25zdCBhdXRvJiB0cmFj
ayA9IG1fdGV4dFRyYWNrcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHRyYWNrLT5yZW1vdmVE
YXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdURk1vdmUoZGF0YSkpOworfQor
I2VuZGlmCisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVWaWRlb1Ry
YWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgYXV0byBhZGRSZXN1
bHQgPSBtX3ZpZGVvVHJhY2tzLmVuc3VyZShpZGVudGlmaWVyLCBbJl0gewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgKaW5kZXggN2Y3MzkwNDE5MzdlMTFmNGFkMDI1YTE4MzBlNWNmM2M4OTUwMGRh
OC4uOGIwY2UzOWM1MDMzNWY2MjQxYzBlOTI4NGZmOTMwMTRkZTEwYmU4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oCkBAIC00MCwxMiArNDAsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgSVNPV2ViVlRUQ3VlOworY2xhc3MgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZh
bHVlOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVS
ZW1vdGU7CiBjbGFzcyBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOworY2xhc3MgVXNlckRhdGE7CiBj
bGFzcyBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTsKIHN0cnVjdCBUZXh0VHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
OwpAQCAtNTksMTQgKzYxLDE2IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBmaW5h
bAogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU+IGNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVyLCBX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5n
aW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFJlbW90ZU1lZGlh
UGxheWVyQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKKyAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyKiBwbGF5ZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
ZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlcikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBtYWtlVW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4o
cGxheWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBpZGVudGlmaWVyLCBtYW5hZ2VyLCBjb25m
aWd1cmF0aW9uKTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlPihwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsIG1hbmFn
ZXIpOwogICAgIH0KIAotICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShXZWJDb3JlOjpNZWRp
YVBsYXllciosIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyJiwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJik7CisgICAgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiwgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImKTsKICAgICB+TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlKCk7CiAKKyAgICB2b2lkIHNldENvbmZpZ3VyYXRpb24oUmVtb3Rl
TWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYpOworCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAogICAgIHZvaWQgaW52
YWxpZGF0ZSgpIHsgbV9pbnZhbGlkID0gdHJ1ZTsgfQpAQCAtMTA0LDYgKzEwOCwxMyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlJiYpOwogICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRh
U3RydWN0KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OklTT1dlYlZUVEN1
ZSYmKTsKIAorICAgIHZvaWQgYWRkRGF0YUN1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2Um
Jik7CisjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCisgICAgdm9pZCBhZGREYXRhQ3VlV2l0aFR5
cGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlh
VGltZSYmIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYsIFN0
cmluZyYmKTsKKyAgICB2b2lkIHVwZGF0ZURhdGFDdWUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciwgTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgV2ViQ29yZTo6U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOworICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYg
ZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJik7CisjZW5kaWYK
KwogICAgIHZvaWQgcmVxdWVzdFJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlTG9hZGVyOjpMb2FkT3B0aW9ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIHJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKICAg
ICB2b2lkIHJlc291cmNlTm90U3VwcG9ydGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLm1lc3NhZ2VzLmluCmluZGV4IGM0MDRkYzY3NDA3MzdhMzY4ZDRmYTY5NDJhOGU5NjA5
Nzc4NDYwN2IuLmU4ODk3YjZhMTBhMTBkNGI3MDA5Mjk4YzdhYTI3MjhiZmUxMTI5N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCkBAIC01MCwxMCArNTAs
MTIgQEAgbWVzc2FnZXMgLT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQg
ewogICAgIFBhcnNlV2ViVlRUQ3VlRGF0YShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgdHJhY2tJRCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCiAgICAgUGFyc2VXZWJWVFRD
dWVEYXRhU3RydWN0KFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lE
LCBXZWJDb3JlOjpJU09XZWJWVFRDdWUgY3VlRGF0YSkKIAotICAgICMjIEFkZERhdGFDdWUoTWVk
aWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKLSAg
ICAjIyBBZGREYXRhQ3VlKE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgV2ViQ29yZTo6
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZSBkYXRhLCBTdHJpbmcgdHlwZSkKLSAgICAjIyBVcGRh
dGVEYXRhQ3VlKE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgV2ViQ29yZTo6U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZSBkYXRhKQotICAgICMjIFJlbW92ZURhdGFDdWUoTWVkaWFUaW1l
IHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
IGRhdGEpCisgICAgQWRkRGF0YUN1ZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgdHJhY2tJRCwgTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBJUEM6OkRhdGFSZWZl
cmVuY2UgZGF0YSkKKyNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKKyAgICBBZGREYXRhQ3VlV2l0
aFR5cGUoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIE1lZGlh
VGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlIGN1ZURhdGEsIFN0cmluZyB0eXBlKQorICAgIFVwZGF0ZURhdGFDdWUoV2ViS2l0
OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIE1lZGlhVGltZSBzdGFydCwg
TWVkaWFUaW1lIGVuZCwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlIGN1
ZURhdGEpCisgICAgUmVtb3ZlRGF0YUN1ZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgdHJhY2tJRCwgTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBXZWJDb3JlOjpT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgY3VlRGF0YSkKKyNlbmRpZgogCiAgICAgIyMg
QWRkR2VuZXJpY0N1ZShXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSBjdWUpCiAgICAgIyMgVXBkYXRl
R2VuZXJpY0N1ZShXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSBjdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5jcHAKaW5kZXggOGYwNTM3NjgzNzhlYjA1Y2VkMzIxZmZjZjExOTIzYjU5ZWVmYzMy
Yi4uMzhhNTNhMGNiY2ZmODlkNDVlYmNkNDFlN2U2YzM1ODNiZDI3ZDNhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyLmNwcApAQCAtMTQ0LDcgKzE0NCw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhCiAKIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3RlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5
ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90
ZUVuZ2luZUlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBpZCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAKICAgICBSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29uZmlndXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRpb247CiAgICAgcHJveHlDb25maWd1cmF0aW9u
LnJlZmVycmVyID0gcGxheWVyLT5yZWZlcnJlcigpOwpAQCAtMTU5LDE1ICsxNTgsMTkgQEAgc3Rk
Ojp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpjcmVhdGVSZW0KICAgICBwcm94eUNvbmZpZ3VyYXRpb24uc2hvdWxkVXNlUGVy
c2lzdGVudENhY2hlID0gcGxheWVyLT5zaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUoKTsKICAgICBw
cm94eUNvbmZpZ3VyYXRpb24uaXNWaWRlbyA9IHBsYXllci0+aXNWaWRlb1BsYXllcigpOwogCisg
ICAgYXV0byBpZGVudGlmaWVyID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcjo6
Z2VuZXJhdGUoKTsKICAgICBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29u
ZmlndXJhdGlvbjsKLSAgICBib29sIHNlbmRTdWNjZWVkZWQgPSBncHVQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBw
cm94eUNvbmZpZ3VyYXRpb24pLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk6OkNyZWF0ZU1lZGlhUGxheWVyOjpSZXBseShwbGF5ZXJDb25maWd1cmF0aW9uKSwgMCk7Ci0g
ICAgaWYgKCFzZW5kU3VjY2VlZGVkKSB7Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiRmFpbGVkIHRv
IGNyZWF0ZSByZW1vdGUgbWVkaWEgcGxheWVyLiIpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICB9CisgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q3JlYXRl
TWVkaWFQbGF5ZXIoaWRlbnRpZmllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgcHJveHlDb25m
aWd1cmF0aW9uKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGlkZW50aWZp
ZXJdKGF1dG8mJiBwbGF5ZXJDb25maWd1cmF0aW9uKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9
IG1fcGxheWVycy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgICAgICBwbGF5ZXItPnNldENvbmZp
Z3VyYXRpb24oV1RGTW92ZShwbGF5ZXJDb25maWd1cmF0aW9uKSk7CisgICAgfSwgMCk7CisKKyAg
ICBhdXRvIHJlbW90ZVBsYXllciA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKHBs
YXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWRlbnRpZmllciwgKnRoaXMpOworICAgIG1f
cGxheWVycy5hZGQoaWRlbnRpZmllciwgbWFrZVdlYWtQdHIoKnJlbW90ZVBsYXllcikpOwogCi0g
ICAgYXV0byByZW1vdGVQbGF5ZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZShw
bGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkLCAqdGhpcywgcGxheWVyQ29uZmlndXJh
dGlvbik7Ci0gICAgbV9wbGF5ZXJzLmFkZChpZCwgbWFrZVdlYWtQdHIoKnJlbW90ZVBsYXllcikp
OwogICAgIHJldHVybiByZW1vdGVQbGF5ZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5o
CmluZGV4IGIyNjZiMzk4NGMzODBjZDM2NDgyMjE0MzVkM2Y4NGZlMWI1YWE3NzUuLjMyMGVjMzAx
ODlkNmZjNTYyZjJhZWJmZjUxYzkwZjc0ZWRmOGRhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuaApAQCAtNTEsNyArNTEsOCBAQCBjbGFzcyBXZWJQcm9jZXNzOwogc3RydWN0IFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cgotICAgIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50IHsKKyAgICA6IHB1YmxpYyBXZWJQ
cm9jZXNzU3VwcGxlbWVudAorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcihXZWJQcm9jZXNzJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZh
dGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmNwcAppbmRleCA1Yzc4NzY0ZTBjMTc0MTBjYjIzNzY4YTQ1MTViZDQy
MDQ1ODM0M2YxLi42YTY2MjJhMzk1NDk5MDA3MTA2YmQ0OTA5NzExMDVkNThiODNhOTZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZh
dGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTg4LDY2ICs4OCw3MiBAQCB2b2lkIFRleHRUcmFj
a1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYQogICAgIG1faXNEZWZhdWx0ID0gY29uZmlndXJhdGlvbi5pc0RlZmF1bHQ7CiB9
CiAKLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKQor
dm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRh
JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi0jaWYgRU5BQkxFKERBVEFDVUVfVkFM
VUUpCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFU
aW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlPiYmLCBjb25zdCBTdHJpbmcmKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1
cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi12b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZURhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWUmKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpyZW1vdmVHZW5lcmljQ3Vl
KEdlbmVyaWNDdWVEYXRhJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFy
dCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUmKQorCit2
b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcm
JiBoZWFkZXIpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NFUlQoY2xpZW50KCkp
OworICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKKyAgICAgICAgY2xpZW50
LT5wYXJzZVdlYlZUVEZpbGVIZWFkZXIoV1RGTW92ZShoZWFkZXIpKTsKIH0KIAotI2VuZGlmCi0K
LXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0
YSYpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3VlRGF0YShjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBBU1NFUlQoY2xpZW50KCkpOworICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQo
KSkKKyAgICAgICAgY2xpZW50LT5wYXJzZVdlYlZUVEN1ZURhdGEocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7CiB9CiAKLXZvaWQgVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpCit2b2lk
IFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChJU09XZWJW
VFRDdWUmJiBjdWVEYXRhKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQVNTRVJUKGNs
aWVudCgpKTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisgICAgICAg
IGNsaWVudC0+cGFyc2VXZWJWVFRDdWVEYXRhKFdURk1vdmUoY3VlRGF0YSkpOwogfQogCi12b2lk
IFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEm
KQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3VlKE1lZGlhVGltZSYmIHN0
YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCiB7Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NFUlQoY2xpZW50KCkpOworICAgIGlmIChhdXRvKiBj
bGllbnQgPSB0aGlzLT5jbGllbnQoKSkKKyAgICAgICAgY2xpZW50LT5hZGREYXRhQ3VlKFdURk1v
dmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRh
dGEuZGF0YSgpKSwgZGF0YS5zaXplKCkpOwogfQogCi0KLXZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZTo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmIGhlYWRlcikKKyNpZiBFTkFCTEUo
REFUQUNVRV9WQUxVRSkKK3ZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdp
dGhUeXBlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGFWYWx1ZSwgU3RyaW5nJiYgdHlwZSkKIHsKICAgICBBU1NF
UlQoY2xpZW50KCkpOwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAg
ICAgICAgY2xpZW50LT5wYXJzZVdlYlZUVEZpbGVIZWFkZXIoV1RGTW92ZShoZWFkZXIpKTsKKyAg
ICAgICAgY2xpZW50LT5hZGREYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpLCB0eXBl
KTsKIH0KIAotdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpwYXJzZVdlYlZUVEN1ZURhdGEo
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQordm9pZCBUZXh0VHJhY2tQcml2YXRlUmVt
b3RlOjp1cGRhdGVEYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGFWYWx1ZSkKIHsKICAgICBBU1NFUlQo
Y2xpZW50KCkpOwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAg
ICAgY2xpZW50LT5wYXJzZVdlYlZUVEN1ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIGNsaWVudC0+dXBkYXRlRGF0
YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CiB9CiAKLXZvaWQgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTo6cGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KElTT1dlYlZUVEN1ZSYmIGN1ZURh
dGEpCit2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURhdGFDdWUoTWVkaWFUaW1l
JiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVl
JiYgZGF0YVZhbHVlKQogewogICAgIEFTU0VSVChjbGllbnQoKSk7CiAgICAgaWYgKGF1dG8qIGNs
aWVudCA9IHRoaXMtPmNsaWVudCgpKQotICAgICAgICBjbGllbnQtPnBhcnNlV2ViVlRUQ3VlRGF0
YShXVEZNb3ZlKGN1ZURhdGEpKTsKKyAgICAgICAgY2xpZW50LT5yZW1vdmVEYXRhQ3VlKFdURk1v
dmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0
ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKIH0KLQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Rl
eHRUcmFja1ByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDZhYzljNjlkMDE5MjBkOWM5NDEzMmI4
ODNlNTZmNjViZDhlYzNjY2MuLjdiN2Y3MDNjYjQ5N2RlZGVhMzkxZGI1OWNjOTJiZWNlMTVhNTky
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oCkBAIC0zMiw2ICszMiwxMSBAQAogI2luY2x1ZGUg
IlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0luYmFu
ZFRleHRUcmFja1ByaXZhdGUuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgR2VuZXJp
Y0N1ZURhdGE7CitjbGFzcyBJU09XZWJWVFRDdWU7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CkBAIC00NCwyMSArNDksMjEgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
KHBsYXllciwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAgIH0KIAot
ICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRp
bWUmIGVuZCwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKTsKKyAgICB2b2lkIGFkZERhdGFDdWUoTWVk
aWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgSVBDOjpEYXRhUmVmZXJlbmNlJiYpOwog
CiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCi0gICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZT4mJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCB1cGRhdGVEYXRhQ3VlKGNv
bnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlJik7Ci0gICAgdm9pZCByZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYg
c3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlJik7
CisgICAgdm9pZCBhZGREYXRhQ3VlV2l0aFR5cGUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGlt
ZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYsIFN0cmluZyYmKTsKKyAg
ICB2b2lkIHVwZGF0ZURhdGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwg
U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYpOworICAgIHZvaWQgcmVtb3ZlRGF0YUN1
ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUmJik7CiAjZW5kaWYKIAotICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5lcmlj
Q3VlRGF0YSYpOwotICAgIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpOwot
ICAgIHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpOworICAgIHZvaWQgYWRk
R2VuZXJpY0N1ZShXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSYpOworICAgIHZvaWQgdXBkYXRlR2Vu
ZXJpY0N1ZShXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSYpOworICAgIHZvaWQgcmVtb3ZlR2VuZXJp
Y0N1ZShXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSYpOwogCiAgICAgdm9pZCBwYXJzZVdlYlZUVEZp
bGVIZWFkZXIoU3RyaW5nJiYpOwogICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYpOwotICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhU3RydWN0KElT
T1dlYlZUVEN1ZSYmKTsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YVN0cnVjdChXZWJDb3Jl
OjpJU09XZWJWVFRDdWUmJik7CiAKICAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YjMyZTlkMzA5OTQ2
YzVlYmI1OWJjMjhjMjM1NTY4YjQyZDEyNjE1Li40NDE4ZmNiZjQ4NmY3YmVmOWRkMTcyMTU1ZjYy
MjFlMzJmZGQ0NWIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDItMTkgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBpbi1iYW5k
IG1ldGFkYXRhIGN1ZXMgd2hlbiBsb2FkaW5nIG1lZGlhIGluIHRoZSBHUFUgUHJvY2VzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3OTA0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81OTU2MTY0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBEZWFu
IEphY2tzb24uCisKKyAgICAgICAgKiBncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zOgorCiAy
MDIwLTAyLTE5ICBKYXNvbiBMYXdyZW5jZSAgPGxhd3JlbmNlLmpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFsgTWFjIHdrMiBdIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvaGFyL2hhci1wYWdl
Lmh0bWwgaXMgZmxha3kgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nl
c3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggYjI0MDJiOTQ5YTlmN2M3NjFjOTdkOWQyMmZiNmMxMjU0MThjNGE5NC4uOTEz
YTVkNDQ4NDJmYWI5Y2U0NzM0YmRkZjM3YzRlYWU1ZDIwNzVlOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9ncHUt
cHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjksNiArMjI5LDggQEAgbWVkaWEvdHJhY2sv
dHJhY2staW4tYmFuZC5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL21lZGlhL3RyYWNrL3RyYWNr
LXdlYnZ0dC1zbG93LWxvYWRpbmcuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9tZWRpYS90cmFj
ay90cmFjay13ZWJ2dHQtc2xvdy1sb2FkaW5nLTIuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9t
ZWRpYS9obHMvaGxzLXdlYnZ0dC10cmFja3MuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9tZWRp
YS90cmFjay1pbi1iYW5kLWhscy1tZXRhZGF0YS5odG1sIFsgUGFzcyBdCitodHRwL3Rlc3RzL21l
ZGlhL3RyYWNrLWluLWJhbmQtaGxzLW1ldGFkYXRhLWNyYXNoLmh0bWwgWyBQYXNzIF0KIAogYWNj
ZXNzaWJpbGl0eS9tZWRpYS1lbGVtZW50Lmh0bWwgWyBTa2lwIF0KIGZhc3QvYmxvY2svZmxvYXQv
bGlzdC1tYXJrZXItaXMtZmxvYXQtY3Jhc2guaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>