<?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>190728</bug_id>
          
          <creation_ts>2018-10-18 10:54:20 -0700</creation_ts>
          <short_desc>[MediaStream] Allow ports to optionally do screen capture in the UI process</short_desc>
          <delta_ts>2018-10-18 22:22:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>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>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jer.noble</cc>
    
    <cc>thorton</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1470594</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-18 10:54:20 -0700</bug_when>
    <thetext>Allow ports to optionally do screen capture in the UI process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470598</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-18 11:09:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/45376824&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470663</commentid>
    <comment_count>2</comment_count>
      <attachid>352731</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-18 14:12:50 -0700</bug_when>
    <thetext>Created attachment 352731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470667</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-18 14:15:58 -0700</bug_when>
    <thetext>Attachment 352731 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:170:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:171:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470675</commentid>
    <comment_count>4</comment_count>
      <attachid>352731</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-10-18 14:25:24 -0700</bug_when>
    <thetext>Comment on attachment 352731
Patch

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

&gt; Source/WebCore/platform/graphics/RemoteVideoSample.cpp:47
&gt; +        WebCore::IOSurface::moveToPool(WTFMove(m_ioSurface));

You should only pool your surfaces if you&apos;re sure that everything that you use them for correctly maintains the IsInUse bits (otherwise we might re-use them while still in use). It seems likely that CV does this correctly, but it&apos;s good to be sure.

&gt; Source/WebCore/platform/graphics/RemoteVideoSample.h:38
&gt; +    RemoteVideoSample() = default;

Should the constructor really be public? Don&apos;t you want everyone using the ::create methods?

&gt; Source/WebCore/platform/graphics/RemoteVideoSample.h:41
&gt; +#if HAVE(IOSURFACE)

Or maybe not? You have no `::create`s if !HAVE(IOSURFACE), should the whole class just go away?

&gt; Source/WebCore/platform/graphics/RemoteVideoSample.h:59
&gt; +            encoder &lt;&lt; WTF::MachSendRight();

This is interesting. Maybe OK to encode an empty send right, but maybe it should just be an optional instead? I&apos;m not sure.

&gt; Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp:400
&gt; +    if (!size.isEmpty() &amp;&amp; size != roundedIntSize(sample.presentationSize())) {

How did the sample size ever end up non-integer? Is rounding right, or enclosing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470676</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-10-18 14:25:40 -0700</bug_when>
    <thetext>I didn&apos;t mean to reset jer&apos;s review, sorry jer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470702</commentid>
    <comment_count>6</comment_count>
      <attachid>352731</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-18 14:57:27 -0700</bug_when>
    <thetext>Comment on attachment 352731
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/RemoteVideoSample.cpp:47
&gt;&gt; +        WebCore::IOSurface::moveToPool(WTFMove(m_ioSurface));
&gt; 
&gt; You should only pool your surfaces if you&apos;re sure that everything that you use them for correctly maintains the IsInUse bits (otherwise we might re-use them while still in use). It seems likely that CV does this correctly, but it&apos;s good to be sure.

Removed.

&gt;&gt; Source/WebCore/platform/graphics/RemoteVideoSample.h:38
&gt;&gt; +    RemoteVideoSample() = default;
&gt; 
&gt; Should the constructor really be public? Don&apos;t you want everyone using the ::create methods?

Nope, made private.

&gt;&gt; Source/WebCore/platform/graphics/RemoteVideoSample.h:59
&gt;&gt; +            encoder &lt;&lt; WTF::MachSendRight();
&gt; 
&gt; This is interesting. Maybe OK to encode an empty send right, but maybe it should just be an optional instead? I&apos;m not sure.

I copied this from RemoteLayerBackingStore::encode so I&apos;ll leave it for now anyway.

&gt;&gt; Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp:400
&gt;&gt; +    if (!size.isEmpty() &amp;&amp; size != roundedIntSize(sample.presentationSize())) {
&gt; 
&gt; How did the sample size ever end up non-integer? Is rounding right, or enclosing?

Good point, I&apos;ll change it to expandedIntSize()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470711</commentid>
    <comment_count>7</comment_count>
      <attachid>352739</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-18 15:17:03 -0700</bug_when>
    <thetext>Created attachment 352739
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470712</commentid>
    <comment_count>8</comment_count>
      <attachid>352740</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-18 15:26:50 -0700</bug_when>
    <thetext>Created attachment 352740
Rebased patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470713</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-18 15:29:14 -0700</bug_when>
    <thetext>Attachment 352740 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:170:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:171:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470721</commentid>
    <comment_count>10</comment_count>
      <attachid>352740</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-18 15:52:25 -0700</bug_when>
    <thetext>Comment on attachment 352740
Rebased patch for landing

Clearing flags on attachment: 352740

Committed r237272: &lt;https://trac.webkit.org/changeset/237272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470737</commentid>
    <comment_count>11</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-10-18 16:44:09 -0700</bug_when>
    <thetext>Reverted r237272 for reason:

Broke on device iOS builds and Windows builds

Committed r237275: &lt;https://trac.webkit.org/changeset/237275&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470738</commentid>
    <comment_count>12</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-10-18 16:46:15 -0700</bug_when>
    <thetext>Looks like https://trac.webkit.org/changeset/237272/webkit 

Has caused iOS and Windows build failures on OpenSource 

iOS: https://build.webkit.org/builders/Apple%20iOS%2012%20Release%20%28Build%29/builds/657
Windows: https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/12538</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470781</commentid>
    <comment_count>13</comment_count>
      <attachid>352761</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-18 20:48:49 -0700</bug_when>
    <thetext>Created attachment 352761
Anothher rebased patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470786</commentid>
    <comment_count>14</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-18 20:59:37 -0700</bug_when>
    <thetext>Attachment 352761 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:170:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:171:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470788</commentid>
    <comment_count>15</comment_count>
      <attachid>352763</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-18 21:16:50 -0700</bug_when>
    <thetext>Created attachment 352763
Anothher rebased patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470789</commentid>
    <comment_count>16</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-18 21:19:02 -0700</bug_when>
    <thetext>Attachment 352763 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:170:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:171:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470794</commentid>
    <comment_count>17</comment_count>
      <attachid>352764</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-18 21:41:49 -0700</bug_when>
    <thetext>Created attachment 352764
Anothher rebased patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470795</commentid>
    <comment_count>18</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-18 21:43:21 -0700</bug_when>
    <thetext>Attachment 352764 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:170:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:171:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470806</commentid>
    <comment_count>19</comment_count>
      <attachid>352764</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-18 22:22:23 -0700</bug_when>
    <thetext>Comment on attachment 352764
Anothher rebased patch for landing

Clearing flags on attachment: 352764

Committed r237281: &lt;https://trac.webkit.org/changeset/237281&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470807</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-18 22:22:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352731</attachid>
            <date>2018-10-18 14:12:50 -0700</date>
            <delta_ts>2018-10-18 20:48:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190728-20181018141249.patch</filename>
            <type>text/plain</type>
            <size>58771</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FlOWY4YjM0OGQwZWFh
YmIxNzY1ZTk4M2ViMWM2MmNiYjY3NjBlMC4uYTdhOTk5ODAwNTQ5YzI2ZWJiZjdkMGNkNTlmMzFk
OGEwMTg2ODY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE4LTEwLTE4ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gQWxsb3cgcG9ydHMgdG8gb3B0aW9uYWxseSBkbyBzY3JlZW4gY2FwdHVyZSBpbiB0aGUgVUkg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwNzI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTM3NjgyND4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkIFJlbW90ZVZp
ZGVvU2FtcGxlLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vTWVkaWFTYW1wbGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjp2aWRlb1BpeGVsRm9ybWF0IGNvbnN0KToKKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6flJlbW90ZVZpZGVvU2FtcGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6OlJlbW90ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bW90ZVZpZGVvU2FtcGxlOjp0aW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZp
ZGVvU2FtcGxlOjp2aWRlb0Zvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVW
aWRlb1NhbXBsZTo6c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1Nh
bXBsZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxl
OjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhU2FtcGxlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0lt
YWdlVHJhbnNmZXJTZXNzaW9uVlQuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUpOiBDYWxsIG9ic2VydmVycy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3VyY2U6OmRpc3BhdGNoTWVkaWFTYW1wbGVU
b09ic2VydmVycyk6IERpc3BhdGNoIHJlbW90ZSBzYW1wbGVzIHdpdGhvdXQKKyAgICAgICAgcmVz
aXppbmcsIHJlc2l6ZSBsb2NhbCBzYW1wbGVzIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChX
ZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBs
ZUJ1ZmZlckZyb21Db25uZWN0aW9uKTogRG9uJ3QgcmVzaXplCisgICAgICAgIHNhbXBsZXMsIGl0
IHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFzZSBjbGFzcyBpZiBuZWNlc3NhcnkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUp
OiBEb24ndCByZXNpemUgc2FtcGxlcyB3aGVuIHJ1bm5pbmcgaW4gdGhlIFVJCisgICAgICAgIHBy
b2Nlc3MsIGl0IHdpbGwgYmUgZG9uZSBpbiB0aGUgd2ViIHByb2Nlc3MuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2Eu
Y3BwOiBSZW1vdmUgdW5uZWVkZWQgaW5jbHVkZS4KKwogMjAxOC0xMC0xOCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSGFuZGxlIE1ETlMgcmVzb2x1dGlvbiBv
ZiBjYW5kaWRhdGVzIHRocm91Z2ggbGlid2VicnRjIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYzMjJk
Nzc0ODIxYjdjNWFhYTI1NzUwMzBmZjAyNzE0NDllMzJhMGEuLjlkZTc5ZWM0ZmI0YzU1YTBhMDE2
MzczNDhmYjYyYWFhYjFmYWQxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTgtMTAt
MTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01l
ZGlhU3RyZWFtXSBBbGxvdyBwb3J0cyB0byBvcHRpb25hbGx5IGRvIHNjcmVlbiBjYXB0dXJlIGlu
IHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTA3MjgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1Mzc2ODI0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOiBFbmNvZGUgc2hvdWxkQ2FwdHVyZURp
c3BsYXlJblVJUHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKTogRGVjb2RlIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3Mu
CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcDoKKyAg
ICAgICAgKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5KTogQ29weSBzaG91bGRD
YXB0dXJlRGlzcGxheUluVUlQcm9jZXNzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpyZW1vdGVWaWRlb1NhbXBsZUF2YWls
YWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6IFJlbW92ZQor
ICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHBhcmFtZXRlciwgQ2FwdHVyZURldmlj
ZSBoYXMgdGhlIHNhbWUgaW5mb3JtYXRpb24uIERlYWwgd2l0aCBkaXNwbGF5CisgICAgICAgIGNh
cHR1cmUgImRldmljZXMiLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6aW5pdGlh
bGl6ZU5ld1dlYlByb2Nlc3MpOiBDb3B5IHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3Mu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6U291
cmNlKTogT25seSBhbGxvY2F0ZSBhIHJpbmcgYnVmZmVyIGZvciBBdWRpbyBzb3VyY2VzLgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjp+U291cmNlKTog
U2FtZSBmb3IgZGVhbGxvY2F0ZS4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OlNvdXJjZTo6c3RvcmFnZSk6IG1fcmluZ0J1ZmZlciBpcyBhIHBvaW50ZXIuCisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFN0b3JhZ2Up
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6c2V0UmluZ0J1ZmZlckZyYW1lQm91bmRzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6IERp
dHRvLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpy
ZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZSk6IENyZWF0ZSBhIAorICAgICAgICBQaXhlbEJ1ZmZl
ci1iYWNrZWQgbWVkaWEgc2FtcGxlIGFuZCBjYWxsIHZpZGVvU2FtcGxlQXZhaWxhYmxlLgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyKTogQ2xlYXIgdGhlIGF1ZGlvIGFuZCBkaXNwbGF5IGNhcHR1cmUKKyAgICAgICAgZmFj
dG9yeSBvdmVycmlkZXMuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
Ojppbml0aWFsaXplKTogU2V0IHRoZSBhdWRpbyBhbmQgZGlzcGxheSBjYXB0dXJlIGZhY3Rvcnkg
b3ZlcnJpZGVzLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3Jl
YXRlQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW46CisKIDIwMTgtMTAtMTggIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEhhbmRsZSBNRE5TIHJl
c29sdXRpb24gb2YgY2FuZGlkYXRlcyB0aHJvdWdoIGxpYndlYnJ0YyBkaXJlY3RseQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAppbmRleCBkMTkzZDllMWViNmUyZTU5MGYyMTMyM2ZhZjllOTBhN2NkM2U4MjE1Li5kMzkx
YzkwYmFjZDYzYmI4OGY1NzQ2MjM3NDAwNDQzNjhlOGQ3MGEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAt
MTY2OCw2ICsxNjY4LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRp
bWVSYW5nZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uY3BwCitwbGF0Zm9ybS9ncmFw
aGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1JvdW5kZWRSZWN0
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L1N0cmluZ1RydW5jYXRvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2OGY3MWQ0MGY0YTc0YWUyOGQyNzIzNzA1MThhYjc5
MDFiYmFiYmI0Li5jZmNlYWMzZjhiMWZlOGI3YWMxNjZmYmU5YzYxYjc5MzIyZjkxZDk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xMTQsNiArMTE0LDcgQEAKIAkJMDczNzk0RkExOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ0RhdGFD
aGFubmVsSGFuZGxlck1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3Mzc5NEY0MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRs
ZXJNb2NrLmggKi87IH07CiAJCTA3Mzc5NEZFMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmll
cnNNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5oICovOyB9OwogCQkw
NzM5NEVDQTFCQUIyQ0Q3MDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczOTRFQzkxQkFCMkNENzAw
QkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVt
b3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3M0I4NzY3
MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBF
QyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgfTsKIAkJMDczQjg3NjkxRTQzODVBQzAw
NzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZS5oICovOyB9OwogCQkwNzNCREMwNTFGNjg0MzYxMDBFRTM0RUQgLyog
VHJhY2tQcml2YXRlQmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzZFMTFCRTFGNjgzRTBEMDAxNzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5j
cHAgKi87IH07CkBAIC02MTgsNyArNjE5LDcgQEAKIAkJMUFGRTExOUEwQ0JGRkNDNDAwMzAxN0ZB
IC8qIEpTU1FMUmVzdWx0U2V0Um93TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUFGRTExOTgwQ0JGRkNDNDAwMzAxN0ZBIC8qIEpTU1FMUmVzdWx0
U2V0Um93TGlzdC5oICovOyB9OwogCQkxQUZGQzQ1ODFENUU4NjU1MDAyNjdBNjYgLyogV2ViR0xC
bGFja2xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBRkZDNDUxMUQ1RTdFQzcwMDI2N0E2NiAvKiBXZWJHTEJsYWNrbGlzdC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBRkZDNDU5MUQ1RTg2NjEw
MDI2N0E2NiAvKiBQbHVnaW5CbGFja2xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBRkZDNDRGMUQ1RTdFQzcwMDI2N0E2NiAvKiBQbHVnaW5CbGFj
a2xpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQkxQjEyNEQ4RDFEMzgwQjcwMDBFQ0RGQjAgLyogTWVkaWFTYW1wbGVBVkZPYmpDLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQjEyNEQ4QzFEMzgwQjcw
MDBFQ0RGQjAgLyogTWVkaWFTYW1wbGVBVkZPYmpDLmggKi87IH07CisJCTFCMTI0RDhEMUQzODBC
NzAwMEVDREZCMCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFCMTI0RDhDMUQzODBCNzAwMEVDREZCMCAvKiBNZWRp
YVNhbXBsZUFWRk9iakMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkxQjEyNEQ4RjFEMzgwQkI2MDBFQ0RGQjAgLyogTWVkaWFTYW1wbGVBVkZPYmpD
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUIxMjRE
OEUxRDM4MEJCNjAwRUNERkIwIC8qIE1lZGlhU2FtcGxlQVZGT2JqQy5tbSAqLzsgfTsKIAkJMUJG
OURCM0MxRDM5NzNBRDAwMjZBRUI3IC8qIE1lZGlhU2FtcGxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyog
TWVkaWFTYW1wbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxQzAxMDcwMTE5MjU5NERGMDA4QTQyMDEgLyogSW5saW5lVGV4dEJveFN0eWxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzAxMDZGRjE5
MjU5NERGMDA4QTQyMDEgLyogSW5saW5lVGV4dEJveFN0eWxlLmggKi87IH07CkBAIC01MzYxLDYg
KzUzNjIsOCBAQAogCQkwNzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9j
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENOb3RpZmllcnNNb2NrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzk0RUM3MUJBQjJDQ0QwMEJFOTlDRCAv
KiBNZWRpYURldmljZXNSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1lZGlhRGV2aWNlc1JlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzM5NEVDOTFCQUIyQ0Q3MDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYURldmljZXNSZXF1ZXN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3M0ExNTUxMjE3N0EzOTgwMEVBMDhGMiAvKiBS
ZW1vdGVWaWRlb1NhbXBsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVWaWRlb1NhbXBs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3M0ExNTUzMjE3N0EzOUEwMEVB
MDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVWaWRlb1Nh
bXBsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNCODc1NjFFNDBEQ0U1MDA3
MUMwRUMgLyogQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3M0I4NzU3MUU0MERDRkQwMDcxQzBFQyAvKiBDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3
NTgxRTQwRENGRDAwNzFDMEVDIC8qIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0MTAxLDYgKzI0MTA0LDggQEAKIAkJCQkwNzRF
ODJCOTE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggKi8sCiAJCQkJQkNB
QjQxN0YxM0UzNTZFODAwRDhBQUYzIC8qIFJlZ2lvbi5jcHAgKi8sCiAJCQkJQkNBQjQxODAxM0Uz
NTZFODAwRDhBQUYzIC8qIFJlZ2lvbi5oICovLAorCQkJCTA3M0ExNTUxMjE3N0EzOTgwMEVBMDhG
MiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5jcHAgKi8sCisJCQkJMDczQTE1NTMyMTc3QTM5QTAwRUEw
OEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi8sCiAJCQkJQTczRjk1RkMxMkM5N0JGRTAwMzFB
QUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLywKIAkJCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkg
LyogUm91bmRlZFJlY3QuaCAqLywKIAkJCQkwRjNERDQ0RDEyRjVFQTFCMDAwRDkxOTAgLyogU2hh
ZG93Qmx1ci5jcHAgKi8sCkBAIC0zMDI5Nyw2ICszMDMwMiw3IEBACiAJCQkJQ0Q4QUNBODkxRDIz
N0FBMjAwRUNDNTlFIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDZCOTUxOTkyMDdENjM0RDAwQTdEMkREIC8qIFJlbW90ZURPTVdpbmRvdy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDZCOTUxOUEyMDdENjM1NDAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVtb3RlVmlk
ZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwNkMwRDhGMENGRDExNDYwMDY1RjQzRiAv
KiBSZW1vdmVGb3JtYXRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUwNTA5OUU2
NDkyMDA1NkU1ODEgLyogUmVtb3ZlTm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5RTA3MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9NZWRpYVNhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaApp
bmRleCAwNTBkOTM4OWQxOGUxMGY1ZDk3YmE0M2Q4NjBjMmExMzUyMDY2MmZlLi43NTE2NjU2MjFh
Y2QyNWEyZGZiMmVhMjlhMWM5MDY1ZWUyMjkzMTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
ZGlhU2FtcGxlLmgKQEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogICAgIH07CiAgICAgdmlydHVh
bCBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCB7IHJldHVybiBWaWRlb1JvdGF0
aW9uOjpOb25lOyB9CiAgICAgdmlydHVhbCBib29sIHZpZGVvTWlycm9yZWQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdWludDMyX3QgdmlkZW9QaXhlbEZvcm1hdCgpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KIAogICAgIGJvb2wgaXNTeW5jKCkgY29uc3QgeyByZXR1cm4gZmxh
Z3MoKSAmIElzU3luYzsgfQogICAgIGJvb2wgaXNOb25EaXNwbGF5aW5nKCkgY29uc3QgeyByZXR1
cm4gZmxhZ3MoKSAmIElzTm9uRGlzcGxheWluZzsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3
ZDc0MGMzMDQ1NmZkMTVmMjUzODFkODE4YzI2OTNjZmU4NDJmODIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAK
QEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9TYW1wbGUu
aCIKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENHLmgiCisjaW5jbHVkZSAiSU9TdXJmYWNl
LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlJlYWx0aW1lVmlkZW9VdGlsaXRp
ZXMuaCIKKworI2lmIEhBVkUoSU9TVVJGQUNFKQorI2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2Jq
Yy5oIgorI2VuZGlmCisKKyNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOworCitSZW1vdGVWaWRlb1Nh
bXBsZTo6flJlbW90ZVZpZGVvU2FtcGxlKCkKK3sKKyNpZiBIQVZFKElPU1VSRkFDRSkKKyAgICBp
ZiAobV9pb1N1cmZhY2UgJiYgbV9hbGxvY2F0ZWRTdXJmYWNlKQorICAgICAgICBXZWJDb3JlOjpJ
T1N1cmZhY2U6Om1vdmVUb1Bvb2woV1RGTW92ZShtX2lvU3VyZmFjZSkpOworI2VuZGlmCit9CisK
KyNpZiBIQVZFKElPU1VSRkFDRSkKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4g
UmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShJT1N1cmZhY2VSZWYgc3VyZmFjZSwgQ0dDb2xvclNw
YWNlUmVmIGNvbG9yU3BhY2UsIE1lZGlhVGltZSYmIHRpbWUsIE1lZGlhU2FtcGxlOjpWaWRlb1Jv
dGF0aW9uIHJvdGF0aW9uLCBib29sIG1pcnJvcmVkKQoreworICAgIHJldHVybiBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+KG5ldyBSZW1vdGVWaWRlb1NhbXBsZShzdXJmYWNlLCBj
b2xvclNwYWNlLCBXVEZNb3ZlKHRpbWUpLCByb3RhdGlvbiwgbWlycm9yZWQpKTsKK30KKworc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRl
KE1lZGlhU2FtcGxlJiYgc2FtcGxlKQoreworICAgIEFTU0VSVChzYW1wbGUucGxhdGZvcm1TYW1w
bGUoKS50eXBlID09IFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOworCisgICAg
YXV0byBpbWFnZUJ1ZmZlciA9IENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBs
YXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICBpZiAoIWltYWdlQnVm
ZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gc3VyZmFjZSA9IENWUGl4
ZWxCdWZmZXJHZXRJT1N1cmZhY2UoaW1hZ2VCdWZmZXIpOworICAgIGlmICghc3VyZmFjZSkgewor
ICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGU6IENW
UGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2UgcmV0dXJuZWQgbnVsbHB0ciIpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZp
ZGVvU2FtcGxlPihuZXcgUmVtb3RlVmlkZW9TYW1wbGUoc3VyZmFjZSwgc1JHQkNvbG9yU3BhY2VS
ZWYoKSwgc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKSwgc2FtcGxlLnZpZGVvUm90YXRpb24oKSwg
c2FtcGxlLnZpZGVvTWlycm9yZWQoKSkpOworfQorCitSZW1vdGVWaWRlb1NhbXBsZTo6UmVtb3Rl
VmlkZW9TYW1wbGUoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNw
YWNlLCBNZWRpYVRpbWUmJiB0aW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlv
biwgYm9vbCBtaXJyb3JlZCkKKyAgICA6IG1faW9TdXJmYWNlKFdlYkNvcmU6OklPU3VyZmFjZTo6
Y3JlYXRlRnJvbVN1cmZhY2Uoc3VyZmFjZSwgY29sb3JTcGFjZSkpCisgICAgLCBtX3JvdGF0aW9u
KHJvdGF0aW9uKQorICAgICwgbV90aW1lKFdURk1vdmUodGltZSkpCisgICAgLCBtX3ZpZGVvRm9y
bWF0KElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2UpKQorICAgICwgbV9zaXplKEludFNp
emUoSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSksIElPU3VyZmFjZUdldEhlaWdodChzdXJmYWNl
KSkpCisgICAgLCBtX21pcnJvcmVkKG1pcnJvcmVkKQoreworfQorCitSZW1vdGVWaWRlb1NhbXBs
ZTo6UmVtb3RlVmlkZW9TYW1wbGUoV1RGOjpNYWNoU2VuZFJpZ2h0IHNlbmRSaWdodCwgTWVkaWFU
aW1lJiYgdGltZSkKKyAgICA6IG1fc2VuZFJpZ2h0KFdURk1vdmUoc2VuZFJpZ2h0KSkKKyAgICAs
IG1fdGltZShXVEZNb3ZlKHRpbWUpKQoreworfQorCitJT1N1cmZhY2VSZWYgUmVtb3RlVmlkZW9T
YW1wbGU6OnN1cmZhY2UoKQoreworICAgIGlmICghbV9pb1N1cmZhY2UgJiYgbV9zZW5kUmlnaHQp
CisgICAgICAgIG1faW9TdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tU2Vu
ZFJpZ2h0KFdURk1vdmUobV9zZW5kUmlnaHQpLCBzUkdCQ29sb3JTcGFjZVJlZigpKTsKKworICAg
IHJldHVybiBtX2lvU3VyZmFjZSA/IG1faW9TdXJmYWNlLT5zdXJmYWNlKCkgOiBudWxscHRyOwor
fQorCisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQ0NTE2YTY1YTg1NzNmMzJkN2Jj
MmRjMzRiMzkxNTNlOWQxYjU2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKQEAgLTAsMCArMSwxMjIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIklPU3VyZmFjZS5oIgorI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCisjaW5j
bHVkZSAiUmVtb3RlVmlkZW9TYW1wbGUuaCIKKyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5o
PgorI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBSZW1vdGVWaWRlb1NhbXBsZSB7CitwdWJsaWM6CisgICAgUmVtb3RlVmlkZW9TYW1wbGUo
KSA9IGRlZmF1bHQ7CisgICAgV0VCQ09SRV9FWFBPUlQgflJlbW90ZVZpZGVvU2FtcGxlKCk7CisK
KyNpZiBIQVZFKElPU1VSRkFDRSkKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUoSU9TdXJmYWNlUmVmLCBDR0NvbG9yU3Bh
Y2VSZWYsIE1lZGlhVGltZSYmLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiA9IE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lLCBib29sIG1pcnJvcmVkID0gZmFsc2UpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IGNy
ZWF0ZShDR0ltYWdlUmVmLCBNZWRpYVRpbWUmJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKE1lZGlhU2FtcGxlJiYp
OworCisgICAgV0VCQ09SRV9FWFBPUlQgSU9TdXJmYWNlUmVmIHN1cmZhY2UoKTsKKyNlbmRpZgor
CisgICAgY29uc3QgTWVkaWFUaW1lJiB0aW1lKCkgY29uc3QgeyByZXR1cm4gbV90aW1lOyB9Cisg
ICAgdWludDMyX3QgdmlkZW9Gb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRm9ybWF0OyB9
CisgICAgSW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
ICAgIHsKKyNpZiBIQVZFKElPU1VSRkFDRSkKKyAgICAgICAgaWYgKG1faW9TdXJmYWNlKQorICAg
ICAgICAgICAgZW5jb2RlciA8PCBtX2lvU3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGVuY29kZXIgPDwgV1RGOjpNYWNoU2VuZFJpZ2h0KCk7Cisj
ZW5kaWYKKyAgICAgICAgZW5jb2RlciA8PCBtX3JvdGF0aW9uOworICAgICAgICBlbmNvZGVyIDw8
IG1fdGltZTsKKyAgICAgICAgZW5jb2RlciA8PCBtX3ZpZGVvRm9ybWF0OworICAgICAgICBlbmNv
ZGVyIDw8IG1fc2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtX21pcnJvcmVkOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBSZW1vdGVWaWRlb1NhbXBsZSYgc2FtcGxlKQorICAgIHsKKyNpZiBIQVZFKElPU1VS
RkFDRSkKKyAgICAgICAgTWFjaFNlbmRSaWdodCBzZW5kUmlnaHQ7CisgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoc2VuZFJpZ2h0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgc2FtcGxlLm1fc2VuZFJpZ2h0ID0gV1RGTW92ZShzZW5kUmlnaHQpOworI2VuZGlmCisgICAg
ICAgIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uOworICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJvdGF0aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgc2FtcGxlLm1fcm90YXRpb24gPSByb3RhdGlvbjsKKworICAgICAgICBNZWRpYVRpbWUgdGlt
ZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0aW1lKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgc2FtcGxlLm1fdGltZSA9IFdURk1vdmUodGltZSk7CisKKyAgICAg
ICAgdWludDMyX3QgZm9ybWF0OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZvcm1hdCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHNhbXBsZS5tX3ZpZGVvRm9ybWF0
ID0gZm9ybWF0OworCisgICAgICAgIEludFNpemUgc2l6ZTsKKyAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzaXplKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc2FtcGxl
Lm1fc2l6ZSA9IFdURk1vdmUoc2l6ZSk7CisKKyAgICAgICAgYm9vbCBtaXJyb3JlZDsKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShtaXJyb3JlZCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIHNhbXBsZS5tX21pcnJvcmVkID0gbWlycm9yZWQ7CisKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorCitwcml2YXRlOgorI2lmIEhBVkUoSU9TVVJGQUNFKQorICAgIFJl
bW90ZVZpZGVvU2FtcGxlKElPU3VyZmFjZVJlZiwgQ0dDb2xvclNwYWNlUmVmLCBNZWRpYVRpbWUm
JiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24sIGJvb2wpOworICAgIFJlbW90ZVZpZGVvU2Ft
cGxlKFdURjo6TWFjaFNlbmRSaWdodCwgTWVkaWFUaW1lJiYpOworICAgIFJlbW90ZVZpZGVvU2Ft
cGxlKE1lZGlhU2FtcGxlJiYpOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3Vy
ZmFjZT4gbV9pb1N1cmZhY2U7CisgICAgV1RGOjpNYWNoU2VuZFJpZ2h0IG1fc2VuZFJpZ2h0Owor
ICAgIGJvb2wgbV9hbGxvY2F0ZWRTdXJmYWNlIHsgZmFsc2UgfTsKKyNlbmRpZgorICAgIE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uIG1fcm90YXRpb24geyBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6Tm9uZSB9OworICAgIE1lZGlhVGltZSBtX3RpbWU7CisgICAgdWludDMyX3QgbV92aWRl
b0Zvcm1hdCB7IDAgfTsKKyAgICBJbnRTaXplIG1fc2l6ZTsKKyAgICBib29sIG1fbWlycm9yZWQg
eyBmYWxzZSB9OworfTsKKworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxl
QVZGT2JqQy5oCmluZGV4IDA5MjM4ODNlNWJjN2U0NDY0YjExNmI5MmJiZmQwOGE2ZTI2M2E3MmYu
LjYwZWU5NmY0MDI0MzM2MjJmNTg1NDEyNmZmYjIzOTUxMDY5OGNlMzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCkBAIC02NCw3ICs2NCw3IEBAIHB1Ymxp
YzoKIAogICAgIFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fcm90YXRpb247IH0KICAgICBib29sIHZpZGVvTWlycm9yZWQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX21pcnJvcmVkOyB9Ci0gICAgdWludDMyX3QgdmlkZW9QaXhlbEZvcm1h
dCgpIGNvbnN0OworICAgIHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsK
IAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1f
c2FtcGxlLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaAppbmRleCA1YzMyMzE0MTAz
ZjUzMzZkYjIwZmE3Y2I5M2NiN2Q5ZTMxYjRjNzVhLi41NjcyYjg1NjAwMmJlMTI5ZGViZDIxYzlh
ZGU2M2Q1NmQ2YWIxNjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCkBAIC01Miw3ICs1Miw3
IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IGNyZWF0ZU1lZGlhU2FtcGxlKENN
U2FtcGxlQnVmZmVyUmVmLCBjb25zdCBJbnRTaXplJiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZh
bHNlKTsKIAogI2lmIEhBVkUoSU9TVVJGQUNFKSAmJiAhUExBVEZPUk0oSU9TTUFDKQotICAgIFJl
ZlB0cjxNZWRpYVNhbXBsZT4gY3JlYXRlTWVkaWFTYW1wbGUoSU9TdXJmYWNlUmVmLCBjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBJbnRTaXplJiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBN
ZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZhbHNlKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8TWVkaWFTYW1wbGU+IGNyZWF0ZU1lZGlhU2FtcGxl
KElPU3VyZmFjZVJlZiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgSW50U2l6ZSYsIE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIGJv
b2wgbWlycm9yZWQgPSBmYWxzZSk7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAKaW5kZXggZWM4YjViOWRkZTBjY2Q3NTE0MTRiZWE0MjJjNWM2NWU5YjIzOGIxZi4uZjJk
ZDQ2YzdkMDIyYjA0ZDNjOTY0YmY2OGUxNzczN2YyN2M4Y2E3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAKQEAgLTE1OCw2ICsxNTgsMTMgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRl
b1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCiAgICAgfSk7CiB9CiAK
K3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVt
b3RlVmlkZW9TYW1wbGUmJiBzYW1wbGUpCit7CisgICAgZm9yRWFjaE9ic2VydmVyKFsmXShhdXRv
JiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5yZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJs
ZShzYW1wbGUpOworICAgIH0pOworfQorCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0
aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7CiAgICAgZm9yRWFjaE9ic2VydmVyKFsmXShh
dXRvJiBvYnNlcnZlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IGE5M2RlMzM4YzQxYTU3MWNi
MTA1ZDFmNDM2ZDUyYzVlNTkzODBiNjEuLjdhYTg2MGM4NTkyZmQ4YTA0ZTg3YjAyMjg0MjA4YjJh
MTAwNGMwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTYxLDYgKzYxLDcgQEAgY2xhc3MgTWVk
aWFTdHJlYW1Qcml2YXRlOwogY2xhc3MgT3JpZW50YXRpb25Ob3RpZmllcjsKIGNsYXNzIFBsYXRm
b3JtQXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOworY2xhc3Mg
UmVtb3RlVmlkZW9TYW1wbGU7CiAKIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKIApAQCAt
ODEsNiArODIsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gQ2FsbGVkIG9uIHRoZSBtYWluIHRo
cmVhZC4KICAgICAgICAgdmlydHVhbCB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2Ft
cGxlJikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJs
ZShSZW1vdGVWaWRlb1NhbXBsZSYpIHsgfQogCiAgICAgICAgIC8vIE1heSBiZSBjYWxsZWQgb24g
YSBiYWNrZ3JvdW5kIHRocmVhZC4KICAgICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QgLypudW1iZXJPZkZyYW1lcyovKSB7IH0K
QEAgLTE2NSw2ICsxNjcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzSW5jb21pbmdB
dWRpb1NvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
SW5jb21pbmdWaWRlb1NvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2b2lk
IHNldElzUmVtb3RlKGJvb2wgaXNSZW1vdGUpIHsgbV9pc1JlbW90ZSA9IGlzUmVtb3RlOyB9Cisg
ICAgYm9vbCBpc1JlbW90ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNSZW1vdGU7IH0KKwogICAgIC8v
IFRlc3Rpbmcgb25seQogICAgIHZpcnR1YWwgdm9pZCBkZWxheVNhbXBsZXMoU2Vjb25kcykgeyB9
OwogCkBAIC0xOTYsMTMgKzIwMSwxMyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHZpZGVvU2Ft
cGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJik7CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFi
bGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxl
QXZhaWxhYmxlKFJlbW90ZVZpZGVvU2FtcGxlJiYpOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0dGluZ3NEaWRDaGFuZ2UoT3B0aW9u
U2V0PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZz4pIHsgfQogCi0KICAgICB2b2lk
IGZvckVhY2hPYnNlcnZlcihjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mKSBj
b25zdDsKIAogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CkBAIC0yMjgsNiArMjMzLDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKICAgICBib29s
IG1faW50ZXJydXB0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYXB0dXJlRGlkRmFpbGVkIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faXNSZW1vdGUgeyBmYWxzZSB9OwogfTsKIAogc3RydWN0IENh
cHR1cmVTb3VyY2VPckVycm9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggMGFmYjE5NGU2
MmQ1NjA0MjU0ZTEzNjhkOTA1OTFlNGQzNTgyM2VkMi4uMDIwYzEyMTRhYmIyMTljYzhlNjdhZjIw
ODE4MzIxZTI4NGQ1NjhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTMxLDYgKzMxLDEx
IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCIKKyNpbmNs
dWRlICJSZW1vdGVWaWRlb1NhbXBsZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVk
ZSAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzc4LDcgKzM4MywzNiBAQCB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmRpc3Bh
dGNoTWVkaWFTYW1wbGVUb09ic2VydmVycyhNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgIGlmIChp
bnRlcnZhbCA+IDEpCiAgICAgICAgIG1fb2JzZXJ2ZWRGcmFtZVJhdGUgPSAobV9vYnNlcnZlZEZy
YW1lVGltZVN0YW1wcy5zaXplKCkgLyBpbnRlcnZhbCk7CiAKLSAgICB2aWRlb1NhbXBsZUF2YWls
YWJsZShzYW1wbGUpOworICAgIGlmIChpc1JlbW90ZSgpKSB7CisjaWYgSEFWRShJT1NVUkZBQ0Up
CisgICAgICAgIGF1dG8gcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShX
VEZNb3ZlKHNhbXBsZSkpOworICAgICAgICBpZiAocmVtb3RlU2FtcGxlKQorICAgICAgICAgICAg
cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSk7CisjZWxz
ZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgYXV0byBtZWRpYVNhbXBsZSA9IG1ha2VSZWZQdHIoJnNhbXBsZSk7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgYXV0byBzaXplID0gdGhpcy0+c2l6ZSgpOworICAgIGlm
ICghc2l6ZS5pc0VtcHR5KCkgJiYgc2l6ZSAhPSByb3VuZGVkSW50U2l6ZShzYW1wbGUucHJlc2Vu
dGF0aW9uU2l6ZSgpKSkgeworCisgICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikK
KyAgICAgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOjpjcmVhdGUoc2FtcGxlLnZpZGVvUGl4ZWxGb3JtYXQoKSk7CisKKyAgICAgICAgaWYgKG1f
aW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAgICAgIG1lZGlhU2FtcGxlID0gbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbi0+Y29udmVydE1lZGlhU2FtcGxlKHNhbXBsZSwgc2l6ZSk7CisgICAg
ICAgICAgICBpZiAoIW1lZGlhU2FtcGxlKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfQorI2VuZGlmCisKKyAgICB2aWRlb1NhbXBsZUF2YWlsYWJsZShtZWRpYVNhbXBs
ZS5yZWxlYXNlTm9uTnVsbCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1Nv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCmluZGV4IDQ3YzRmNWVlM2MxZjY1NmFkNTIwYjRiZWI4M2I0NzJmNzRkMDlkZDAu
Ljg0MjY4YWI2NjZlMzlkNzcwNWQ4MDg4ZGNhYzg1M2Q1NTFlNmZhZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291
cmNlLmgKQEAgLTM3LDYgKzM3LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOworCiBjbGFzcyBSZWFsdGltZVZpZGVvU291cmNlIDogcHVi
bGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogICAgIHZpcnR1YWwgflJlYWx0aW1l
VmlkZW9Tb3VyY2UoKTsKQEAgLTgzLDYgKzg1LDkgQEAgcHJpdmF0ZToKICAgICBEZXF1ZTxkb3Vi
bGU+IG1fb2JzZXJ2ZWRGcmFtZVRpbWVTdGFtcHM7CiAgICAgZG91YmxlIG1fb2JzZXJ2ZWRGcmFt
ZVJhdGUgeyAwIH07CiAgICAgSW50U2l6ZSBtX2RlZmF1bHRTaXplOworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdl
VHJhbnNmZXJTZXNzaW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRl
b0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggOTExMDc1NmRhZjlkNmRhMjJkOWFmNWQ4
YzA5ODQ0YjhiN2IwMTRmOS4uOTkzNjFiN2FmZjNiZjIwZGUyYjczODRjZTlmNmQ1NWE5ZTJiZjEx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtNTQwLDI3ICs1NDAsOSBAQCB2
b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpwcm9jZXNzTmV3RnJhbWUoUmVmPE1lZGlhU2FtcGxl
PiYmIHNhbXBsZSkKIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERp
ZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dFR5cGUqLCBD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKiBj
YXB0dXJlQ29ubmVjdGlvbikKIHsKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERl
c2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZm
ZXIpOwotICAgIGlmICghZm9ybWF0RGVzY3JpcHRpb24pCi0gICAgICAgIHJldHVybjsKLQotICAg
IENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25H
ZXREaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uKTsKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+
IHNhbXBsZTsKLSAgICBpZiAoZGltZW5zaW9ucy53aWR0aCAhPSBtX3JlcXVlc3RlZFNpemUud2lk
dGgoKSB8fCBkaW1lbnNpb25zLmhlaWdodCAhPSBtX3JlcXVlc3RlZFNpemUuaGVpZ2h0KCkpIHsK
LQotICAgICAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pCi0gICAgICAgICAgICBtX2lt
YWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKGF2Vmlk
ZW9DYXB0dXJlUGl4ZWxCdWZmZXJGb3JtYXQoKSk7Ci0KLSAgICAgICAgc2FtcGxlID0gbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUoc2FtcGxlQnVmZmVyLCBtX3JlcXVl
c3RlZFNpemUsIG1fc2FtcGxlUm90YXRpb24sIFtjYXB0dXJlQ29ubmVjdGlvbiBpc1ZpZGVvTWly
cm9yZWRdKTsKLSAgICAgICAgaWYgKCFzYW1wbGUpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSBlbHNlCi0g
ICAgICAgIHNhbXBsZSA9IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlKHNhbXBsZUJ1ZmZlciwg
bV9zYW1wbGVSb3RhdGlvbiwgW2NhcHR1cmVDb25uZWN0aW9uIGlzVmlkZW9NaXJyb3JlZF0pOwot
CisgICAgYXV0byBzYW1wbGUgPSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGVCdWZm
ZXIsIG1fc2FtcGxlUm90YXRpb24sIFtjYXB0dXJlQ29ubmVjdGlvbiBpc1ZpZGVvTWlycm9yZWRd
KTsKICAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpcywgc2FtcGxlID0gV1RGTW92ZShzYW1w
bGUpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgcHJvY2Vzc05ld0ZyYW1lKHNhbXBsZS5yZWxlYXNl
Tm9uTnVsbCgpKTsKKyAgICAgICAgcHJvY2Vzc05ld0ZyYW1lKFdURk1vdmUoc2FtcGxlKSk7CiAg
ICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAppbmRl
eCAyZWJmNjUwNDg5NzhmNzYwZWU1YzRhNjY1MWUyY2Q1MWJiZTQ0NjFiLi4wZGRjMzJmNWI4NWFi
NTdiZjY4ZDlkMjBkYjI3YjY1ZTkxNjExOTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2EuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5o
IgogI2luY2x1ZGUgIlJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVW
aWRlb1NhbXBsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8Q29yZU1lZGlhL0NN
U3luYy5oPgogI2luY2x1ZGUgPG1hY2gvbWFjaF90aW1lLmg+CkBAIC0xNzIsMjIgKzE3Myw0NCBA
QCB2b2lkIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmVtaXRGcmFtZSgpCiAgICAgICAgIG1f
aW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocHJl
ZmVyZWRQaXhlbEJ1ZmZlckZvcm1hdCgpKTsKIAogICAgIGF1dG8gc2FtcGxlVGltZSA9IE1lZGlh
VGltZTo6Y3JlYXRlV2l0aERvdWJsZSgoZWxhcHNlZFRpbWUoKSArIDEwMF9tcykuc2Vjb25kcygp
KTsKKwogICAgIGF1dG8gZnJhbWUgPSBnZW5lcmF0ZUZyYW1lKCk7Ci0gICAgSW50U2l6ZSBpbWFn
ZVNpemU7CisgICAgYXV0byBpbWFnZVNpemUgPSBXVEY6OnN3aXRjaE9uKGZyYW1lLAorICAgICAg
ICBbXShSZXRhaW5QdHI8SU9TdXJmYWNlUmVmPiBzdXJmYWNlKSAtPiBJbnRTaXplIHsKKyAgICAg
ICAgICAgIGlmICghc3VyZmFjZSkKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9OworCisgICAg
ICAgICAgICByZXR1cm4gSW50U2l6ZShJT1N1cmZhY2VHZXRXaWR0aChzdXJmYWNlLmdldCgpKSwg
SU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2UuZ2V0KCkpKTsKKyAgICAgICAgfSwKKyAgICAgICAg
W10oUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlKSAtPiBJbnRTaXplIHsKKyAgICAgICAgICAg
IGlmICghaW1hZ2UpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICAgICAg
cmV0dXJuIEludFNpemUoQ0dJbWFnZUdldFdpZHRoKGltYWdlLmdldCgpKSwgQ0dJbWFnZUdldEhl
aWdodChpbWFnZS5nZXQoKSkpOworICAgICAgICB9CisgICAgKTsKKworICAgIEFTU0VSVCghaW1h
Z2VTaXplLmlzRW1wdHkoKSk7CisgICAgaWYgKGltYWdlU2l6ZS5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX2ludHJpbnNpY1NpemUgIT0gaW1hZ2VTaXplKQorICAgICAg
ICBzZXRJbnRyaW5zaWNTaXplKGltYWdlU2l6ZSk7CisKKyAgICBhdXRvIG1lZGlhU2FtcGxlU2l6
ZSA9IGlzUmVtb3RlKCkgPyBpbWFnZVNpemUgOiBmcmFtZVNpemUoKTsKKwogICAgIFJlZlB0cjxN
ZWRpYVNhbXBsZT4gc2FtcGxlID0gV1RGOjpzd2l0Y2hPbihmcmFtZSwKLSAgICAgICAgW3RoaXMs
IHNhbXBsZVRpbWUsICZpbWFnZVNpemVdKFJldGFpblB0cjxJT1N1cmZhY2VSZWY+IHN1cmZhY2Up
IC0+IFJlZlB0cjxNZWRpYVNhbXBsZT4geworICAgICAgICBbdGhpcywgc2FtcGxlVGltZSwgbWVk
aWFTYW1wbGVTaXplXShSZXRhaW5QdHI8SU9TdXJmYWNlUmVmPiBzdXJmYWNlKSAtPiBSZWZQdHI8
TWVkaWFTYW1wbGU+IHsKICAgICAgICAgICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICAgICAgaW1hZ2VTaXplID0gSW50U2l6ZShJT1N1
cmZhY2VHZXRXaWR0aChzdXJmYWNlLmdldCgpKSwgSU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2Uu
Z2V0KCkpKTsKLSAgICAgICAgICAgIHJldHVybiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVh
dGVNZWRpYVNhbXBsZShzdXJmYWNlLmdldCgpLCBzYW1wbGVUaW1lLCBpbWFnZVNpemUpOworICAg
ICAgICAgICAgcmV0dXJuIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxl
KHN1cmZhY2UuZ2V0KCksIHNhbXBsZVRpbWUsIG1lZGlhU2FtcGxlU2l6ZSk7CiAgICAgICAgIH0s
Ci0gICAgICAgIFt0aGlzLCBzYW1wbGVUaW1lLCAmaW1hZ2VTaXplXShSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gaW1hZ2UpIC0+IFJlZlB0cjxNZWRpYVNhbXBsZT4geworICAgICAgICBbdGhpcywgc2Ft
cGxlVGltZSwgbWVkaWFTYW1wbGVTaXplXShSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UpIC0+
IFJlZlB0cjxNZWRpYVNhbXBsZT4gewogICAgICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICAgICAgaW1hZ2VTaXplID0gSW50U2l6
ZShDR0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0KCkpLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdl
dCgpKSk7Ci0gICAgICAgICAgICByZXR1cm4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRl
TWVkaWFTYW1wbGUoaW1hZ2UuZ2V0KCksIHNhbXBsZVRpbWUsIGltYWdlU2l6ZSk7CisgICAgICAg
ICAgICByZXR1cm4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUoaW1h
Z2UuZ2V0KCksIHNhbXBsZVRpbWUsIG1lZGlhU2FtcGxlU2l6ZSk7CiAgICAgICAgIH0KICAgICAp
OwogCkBAIC0xOTYsOCArMjE5LDEzIEBAIHZvaWQgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
ZW1pdEZyYW1lKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2ludHJpbnNp
Y1NpemUgIT0gaW1hZ2VTaXplKQotICAgICAgICBzZXRJbnRyaW5zaWNTaXplKGltYWdlU2l6ZSk7
CisgICAgaWYgKGlzUmVtb3RlKCkpIHsKKyAgICAgICAgYXV0byByZW1vdGVTYW1wbGUgPSBSZW1v
dGVWaWRlb1NhbXBsZTo6Y3JlYXRlKFdURk1vdmUoKnNhbXBsZSkpOworICAgICAgICBpZiAocmVt
b3RlU2FtcGxlKQorICAgICAgICAgICAgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV1RGTW92
ZSgqcmVtb3RlU2FtcGxlKSk7CisKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIHZpZGVv
U2FtcGxlQXZhaWxhYmxlKCpzYW1wbGUuZ2V0KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAppbmRleCA0NDE5YmFlZWY4M2U5
ZGNmNzU4MjM0MDJhMmE4MmQzODJkYWQ2ZWM5Li4zMDc5ZDc5ZWEyMTQzYjIzNjkzNzVhNTY5ZTNk
N2ZjNjU3ZDM1YjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VDb2NvYS5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oIgotI2luY2x1ZGUg
IlJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCIKIAogQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVH
SU4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAppbmRleCAzN2Q4YjUwYzcwNzU4OTkwNzAyNmY4ZGVhNjA0Y2JkMmQ3YTIy
YzZlLi42Y2ZjOTUxYjU3Y2MwZTJmOTllMjVlY2FjZjg5MDdmZDZjYWI0OWNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cApAQCAtNzIsNiArNzIsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKICAgICBlbmNvZGVyIDw8IGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNv
ZGVyIDw8IHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOworICAgIGVuY29kZXIgPDwgc2hv
dWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzczsKICNlbmRpZgogICAgIGVuY29kZXIgPDwgc2hv
dWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uOwogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1Jl
Z2lzdGVyZWRBc0VtcHR5RG9jdW1lbnQ7CkBAIC0yNjQsNiArMjY1LDggQEAgYm9vbCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQ
cm9jZXNzQ3JlYXQKIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRD
YXB0dXJlQXVkaW9JblVJUHJvY2VzcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2Vz
cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24pKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggM2U2NmRkMzhmYTFkNGNjMzM1MDBjNmJkNmM1N2E2OTE5
OTE4YmZkNS4uZDBjOGY5YzUyNGViZGYyY2NjZmQ3M2Q3NjI1MDEwNmNhZjUyMTFkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aApAQCAtOTYsNiArOTYsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
YXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlOwogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlv
SW5VSVByb2Nlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJ
UHJvY2VzcyB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBTdHJpbmcgbWVkaWFLZXlTdG9yYWdlRGly
ZWN0b3J5OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGMxMTNlZDgzMWU2NTJjMzVmNTFk
ZGU0NTU0Mjg0NTliZDg3NWRiNmIuLjIzM2YzYTE3NzA0Yjk2MWY1YjhiOTZkMTU2Yzk1NzQyZmZj
Yjk4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBAIC0xMTUsNiArMTE1LDcgQEAgUmVmPFBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5KCkK
ICAgICBjb3B5LT5tX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSA9IHRoaXMtPm1fYWx3
YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5OwogICAgIGNvcHktPm1fc2hvdWxkVGFrZVVJQmFj
a2dyb3VuZEFzc2VydGlvbiA9IHRoaXMtPm1fc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlv
bjsKICAgICBjb3B5LT5tX3Nob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gdGhpcy0+bV9z
aG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzczsKKyAgICBjb3B5LT5tX3Nob3VsZENhcHR1cmVE
aXNwbGF5SW5VSVByb2Nlc3MgPSB0aGlzLT5tX3Nob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nl
c3M7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGNvcHktPm1fY3REYXRhQ29ubmVjdGlvblNlcnZp
Y2VUeXBlID0gdGhpcy0+bV9jdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaAppbmRleCA0NWIxYjc1MDZhNTQ1YmM5NWMyNWJjYmIwNjQzYjNjM2U1ZDI3
MTQyLi5iNzQxYzc0ODEyNDViY2JhMWQ5ZjRiOWRhM2E5NjdmNmM5YzIxYWVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5oCkBAIC0zNiw2ICszNiwxMiBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIAorI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCisjZGVmaW5l
IERFRkFVTFRfQ0FQVFVSRV9ESVNQTEFZX0lOX1VJX1BST0NFU1MgdHJ1ZQorI2Vsc2UKKyNkZWZp
bmUgREVGQVVMVF9DQVBUVVJFX0RJU1BMQVlfSU5fVUlfUFJPQ0VTUyBmYWxzZQorI2VuZGlmCisK
IGNsYXNzIFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBmaW5hbCA6IHB1YmxpYyBPYmplY3RJbXBs
PE9iamVjdDo6VHlwZTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IGNyZWF0ZSgpOwpAQCAtMTMzLDYg
KzEzOSw5IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNz
KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzczsgfQogICAg
IHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoYm9vbCBzaG91bGRDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcykgeyBtX3Nob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gc2hv
dWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3M7IH0KIAorICAgIGJvb2wgc2hvdWxkQ2FwdHVyZURp
c3BsYXlJblVJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZURpc3BsYXlJ
blVJUHJvY2VzczsgfQorICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2Vz
cyhib29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MpIHsgbV9zaG91bGRDYXB0dXJl
RGlzcGxheUluVUlQcm9jZXNzID0gc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzczsgfQor
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBjdERhdGFDb25uZWN0
aW9uU2VydmljZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2N0RGF0YUNvbm5lY3Rpb25TZXJ2aWNl
VHlwZTsgfQogICAgIHZvaWQgc2V0Q1REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKGNvbnN0IFdU
Rjo6U3RyaW5nJiBjdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUpIHsgbV9jdERhdGFDb25uZWN0
aW9uU2VydmljZVR5cGUgPSBjdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7IH0KQEAgLTE5NCw2
ICsyMDMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJp
b3JpdHkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0
aW9uIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyB7
IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgeyBE
RUZBVUxUX0NBUFRVUkVfRElTUExBWV9JTl9VSV9QUk9DRVNTIH07CiAgICAgUHJvY2Vzc0lEIG1f
cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEIHsgZ2V0Q3VycmVudFByb2Nlc3NJRCgpIH07CiAgICAg
Ym9vbCBtX3Byb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Fs
d2F5c0tlZXBBbmRSZXVzZVN3YXBwZWRQcm9jZXNzZXMgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcAppbmRleCAzOGFhYjI2ZGEwZjFlYjgzZWVkOTc0ZDYxNzJlYTBmZTQ0M2Vm
Yzg2Li5hZjgzYjYzODc5Y2FhMzU0YjNjYzA5MTQzM2U4MTUyMzliNTFhZWZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
Q0FSaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9C
dWZmZXJMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCkBAIC05OCw2ICs5OSwx
MSBAQCBwdWJsaWM6CiAgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkLCB0aW1l
LCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKICAgICB9CiAKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVtb3RlVmlkZW9TYW1w
bGUmIHNhbXBsZSkKKyAgICB7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxl
KG1faWQsIFdURk1vdmUoc2FtcGxlKSksIDApOworICAgIH0KKwogICAgIHZvaWQgc3RvcmFnZUNo
YW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbCB7CiAgICAgICAgIFNoYXJlZE1lbW9y
eTo6SGFuZGxlIGhhbmRsZTsKICAgICAgICAgaWYgKHN0b3JhZ2UpCkBAIC0xMjUsMTcgKzEzMSwy
MyBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eSgpCiAgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0K
IAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBT
dHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIGJv
b2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyh1aW50NjRfdCBpZCwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIGJvb2wmIHN1Y2Nl
ZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291
cmNlT3JFcnJvcjsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0b3J5KCkuY3JlYXRl
QXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksICZjb25zdHJhaW50
cyk7CisgICAgc3dpdGNoIChkZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBzb3VyY2VPckVycm9y
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksICZjb25zdHJhaW50cyk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6Q2FtZXJhOgorICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6dmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RG
TW92ZShoYXNoU2FsdCksICZjb25zdHJhaW50cyk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86Ci0gICAgICAgIHNvdXJj
ZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0Zh
Y3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgJmNvbnN0cmFpbnRzKTsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OkFwcGxpY2F0aW9uOgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6QnJvd3NlcjoKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNl
KGRldmljZSwgJmNvbnN0cmFpbnRzKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgIGNhc2UgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE0Myw2ICsxNTUsNyBAQCB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaQogICAgIHN1Y2NlZWRlZCA9ICEhc291cmNlT3JFcnJvcjsKICAgICBp
ZiAoc291cmNlT3JFcnJvcikgewogICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iu
c291cmNlKCk7CisgICAgICAgIHNvdXJjZS0+c2V0SXNSZW1vdGUodHJ1ZSk7CiAgICAgICAgIHNl
dHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOwogICAgICAgICBtX3Byb3hpZXMuc2V0KGlkLCBz
dGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIFdURk1vdmUoc291cmNlKSkp
OwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IGVjYWVhZTI0ODIzYTQz
OTFlNjU5ZDVhZWIzZWJkNDcyNGNlZWFkODguLjNiZjkyMWZlNjgwNjQyZmNjNzZlMWZiZGFiZjMx
MWVhNGVkYTczZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
KyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1ZGUgIlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZS5oPgogCkBAIC00OSw3ICs1MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
ICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCi0gICAgdm9p
ZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0
X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyYsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMs
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOworICAgIHZvaWQgY3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2VJRCwgU3RyaW5nJiYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxp
ZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKICAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBzdG9wUHJvZHVj
aW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBjYXBhYmlsaXRpZXModWludDY0X3QsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJkMjE5YmM5NjA4ZDA3NDA2OTE5MjI2MDQz
YzAyYTcyYWVhMzViN2IuLjQ1YjFjMzg0MGRlNzhlMWY5ZWQyNDNkOGJjZTEyMzY4NWE2YzQ1ZDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMSw0ICsx
LDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eSB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVj
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNz
LCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3Mgc2V0dGluZ3MpCitDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBT
dHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFp
bnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCiAgICAgU3RhcnRQcm9kdWNp
bmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQog
ICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDRhNDc5YWQ5ZTgzMjg3NDg5OWEzZWFlNDAzODM5YjQz
ZTk3ZGQ2NDEuLmRjNTdkYjVlNDhjMGZkMTc0NjBmYjliZDhiMjNjYTI2NWY2ZTZkZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTkwNyw2ICs5MDcs
NyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9j
ZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVEYQogICAgIHBhcmFtZXRlcnMucmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQgPSB3ZWJzaXRlRGF0YVN0b3JlLnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKCk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBwYXJhbWV0ZXJzLnNo
b3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gbV9jb25maWd1cmF0aW9uLT5zaG91bGRDYXB0
dXJlQXVkaW9JblVJUHJvY2VzcygpOworICAgIHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZURpc3Bs
YXlJblVJUHJvY2VzcyA9IG1fY29uZmlndXJhdGlvbi0+c2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJ
UHJvY2VzcygpOwogI2VuZGlmCiAKICAgICBwYXJhbWV0ZXJzLnByZXNlbnRpbmdBcHBsaWNhdGlv
blBJRCA9IG1fY29uZmlndXJhdGlvbi0+cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcAppbmRleCBjYjZkNmM3ZWU5YWM1YzFkNWYwYmMzOGRlMjE1YTM5ZDZlMmZk
NTg2Li43MjM2YTViNWQ3NTZhM2M0NmQyODhkZWQwODZmMTFmYzU2NzI0NGFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAKQEAgLTM1LDEyICszNSwxNiBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vz
c2lvblZULmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJM
aXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5o
PgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewordXNp
bmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgdWlu
dDY0X3QgbmV4dFNlc3Npb25JRCgpCkBAIC01NSwxNiArNTksMjIgQEAgcHVibGljOgogICAgICAg
ICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UodHlwZSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShzb3Vy
Y2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICAgICAsIG1faWQoaWQpCiAgICAgICAgICwg
bV9tYW5hZ2VyKG1hbmFnZXIpCi0gICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKQogICAgIHsKKyAgICAgICAgaWYgKHR5
cGUgPT0gVHlwZTo6QXVkaW8pCisgICAgICAgICAgICBtX3JpbmdCdWZmZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZT4obnVsbHB0cikpOwogICAgIH0KIAogICAgIH5Tb3VyY2UoKQogICAgIHsKLSAgICAgICAgc3Rv
cmFnZSgpLmludmFsaWRhdGUoKTsKKyAgICAgICAgaWYgKHR5cGUoKSA9PSBUeXBlOjpBdWRpbykK
KyAgICAgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CiAgICAgfQogCi0gICAgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOyB9CisgICAgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUo
KSA9PSBUeXBlOjpBdWRpbyk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKKyAgICB9CiAKICAgICBj
b25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5h
bAogICAgIHsKQEAgLTg0LDEwICs5NCwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzY3JpcHRp
b247IH0KICAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhh
bmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
biwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgeworICAgICAgICBBU1NFUlQodHlwZSgp
ID09IFR5cGU6OkF1ZGlvKTsKICAgICAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwog
CiAgICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIG1fcmluZ0J1ZmZl
ci5kZWFsbG9jYXRlKCk7CisgICAgICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsK
ICAgICAgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7CiAgICAgICAgICAgICBz
dG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRyKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTk3
LDIyICsxMDgsNTEgQEAgcHVibGljOgogICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShXVEZN
b3ZlKG1lbW9yeSkpOwogICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHkodHJ1ZSk7CiAKLSAg
ICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7
CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJh
bWVzKTsKICAgICB9CiAKICAgICB2b2lkIHNldFJpbmdCdWZmZXJGcmFtZUJvdW5kcyh1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKICAgICB7Ci0gICAgICAgIG1fcmluZ0J1
ZmZlci5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgICAg
ICBBU1NFUlQodHlwZSgpID09IFR5cGU6OkF1ZGlvKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5z
ZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwogICAgIH0KIAogICAg
IHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcykKICAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlwZTo6QXVkaW8p
OwogICAgICAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVzY3JpcHRpb24sIG51
bWJlck9mRnJhbWVzKTsKLSAgICAgICAgbV9yaW5nQnVmZmVyLmZldGNoKGF1ZGlvRGF0YS5saXN0
KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICAgICAgbV9yaW5nQnVm
ZmVyLT5mZXRjaChhdWRpb0RhdGEubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFs
dWUoKSk7CiAKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKHRpbWUsIGF1ZGlvRGF0YSwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwogICAg
IH0KIAorI2lmIEhBVkUoSU9TVVJGQUNFKQorICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFp
bGFibGUoUmVtb3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCisgICAgeworICAgICAgICBB
U1NFUlQodHlwZSgpID09IFR5cGU6OlZpZGVvKTsKKworICAgICAgICBhdXRvIHZpZGVvU2FtcGxl
U2l6ZSA9IEludFNpemUobV9zZXR0aW5ncy53aWR0aCgpLCBtX3NldHRpbmdzLmhlaWdodCgpKTsK
KyAgICAgICAgaWYgKHZpZGVvU2FtcGxlU2l6ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICB2aWRl
b1NhbXBsZVNpemUgPSByZW1vdGVTYW1wbGUuc2l6ZSgpOworCisgICAgICAgIGlmICghbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbikKKyAgICAgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkp
OworCisgICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgeworICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1l
ZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS50aW1lKCksIHZp
ZGVvU2FtcGxlU2l6ZSk7CisgICAgICAgIGlmICghc2FtcGxlUmVmKSB7CisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpzYW1wbGVS
ZWYpOworICAgIH0KKyNlbmRpZgorCiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVk
KGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCiAg
ICAgewogICAgICAgICBhdXRvIGNhbGxiYWNrcyA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHND
YWxsYmFja3MudGFrZUZpcnN0KCk7CkBAIC0xNDQsOCArMTg0LDExIEBAIHByaXZhdGU6CiAgICAg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBtdXRhYmxlIHN0ZDo6b3B0
aW9uYWw8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisKICAgICBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKLSAgICBDQVJpbmdCdWZmZXIgbV9yaW5n
QnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsK
KworICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJh
bnNmZXJTZXNzaW9uOwogCiAgICAgc3RydWN0IEFwcGx5Q29uc3RyYWludHNDYWxsYmFjayB7CiAg
ICAgICAgIFN1Y2Nlc3NIYW5kbGVyIHN1Y2Nlc3NIYW5kbGVyOwpAQCAtMTYyLDcgKzIwNSw4IEBA
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQcm9j
ZXNzJiBwcm9jZXNzKQogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyKCkKIHsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS51bnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6dW5zZXRBdWRpb0ZhY3RvcnkoKnRoaXMpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnVuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KCp0aGlzKTsKICAgICBtX3Byb2Nlc3MucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIApAQCAtMTc0LDEwICsyMTgsMTIgQEAgY29uc3QgY2hh
ciogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKIHZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcykKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuc2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAgICBpZiAocGFyYW1ldGVycy5z
aG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKQorICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzZXREaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKnRoaXMpOwogfQogCi1XZWJDb3Jl
OjpDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2Fw
dHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorV2ViQ29yZTo6Q2FwdHVyZVNv
dXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgaWYgKCFjb25zdHJh
aW50cykKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE4NiwxMCArMjMyLDExIEBAIFdlYkNvcmU6
OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0
dXJlU291cmNlKGNvbnN0CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdz
OwogICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CiAgICAgYm9vbCBzdWNjZWVkZWQ7Ci0gICAgaWYg
KCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwg
ZGV2aWNlLCBzb3VyY2VUeXBlLCBoYXNoU2FsdCwgKmNvbnN0cmFpbnRzKSwgTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBlcnJvck1lc3NhZ2UsIHNldHRp
bmdzKSwgMCkpCisgICAgaWYgKCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBoYXNoU2FsdCwgKmNvbnN0cmFpbnRzKSwgTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBlcnJvck1lc3NhZ2Us
IHNldHRpbmdzKSwgMCkpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9yTWVzc2FnZSk7CiAK
LSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlk
KSwgc291cmNlVHlwZSwgU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hT
YWx0KSwgaWQsICp0aGlzKSk7CisgICAgYXV0byB0eXBlID0gZGV2aWNlLnR5cGUoKSA9PSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lID8gV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpWaWRlbzsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmluZzo6
bnVtYmVyKGlkKSwgdHlwZSwgU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKSB9LCBXVEZNb3ZlKGhh
c2hTYWx0KSwgaWQsICp0aGlzKSk7CiAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNl
dHRpbmdzKSk7CiAgICAgbV9zb3VyY2VzLnNldChpZCwgc291cmNlLmNvcHlSZWYoKSk7CiAgICAg
cmV0dXJuIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CkBA
IC0yMzksNiArMjg2LDE5IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZSh1aW50NjRfdCBpZCwgTWVkaWFUaW1lIHRpbWUsCiAgICAgc291cmNlLmF1
ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcyk7CiB9CiAKKyNpZiBIQVZF
KElPU1VSRkFDRSkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJlbW90ZVZpZGVvU2Ft
cGxlQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBSZW1vdGVWaWRlb1NhbXBsZSYmIHNhbXBsZSkKK3sK
KyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2VzLmdldChp
ZCktPnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdURk1vdmUoc2FtcGxlKSk7Cit9CisjZWxz
ZQorTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUodWludDY0X3QsIFJlbW90ZVZpZGVvU2FtcGxlJiYp
Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKKwogdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogewogICAg
IG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpT
dGFydFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggMzc2MzJkNTll
NmVmOGNhYWM4MDY5MTNlNTAzNWRiY2E0YzhkNDU3OS4uOGVhYjAxNzBkMDdlODUzZWY5NmQyNjgz
NzYxOWQ4OWQxMDk3YWJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTM2LDYgKzM2LDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xh
c3MgUmVtb3RlVmlkZW9TYW1wbGU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDMsNyAr
NDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIENyb3NzUHJvY2Vzc1JlYWx0aW1lQXVk
aW9Tb3VyY2U7CiBjbGFzcyBXZWJQcm9jZXNzOwogCi1jbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJl
Y2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSwgcHVibGljIFdlYkNv
cmU6OlZpZGVvQ2FwdHVyZUZhY3RvcnkgeworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIg
OiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciwgcHVibGljIFdlYkNvcmU6OkF1ZGlvQ2FwdHVyZUZhY3RvcnksIHB1YmxpYyBXZWJDb3JlOjpW
aWRlb0NhcHR1cmVGYWN0b3J5LCBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVGYWN0b3J5
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQcm9j
ZXNzJik7CiAgICAgflVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCk7CkBAIC01NSw5ICs1NiwxMCBA
QCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJikgZmluYWw7CiAKICAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
IGZhY3RvcmllcwotICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlv
Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3Ry
YWludHMpOyB9Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZSwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJh
aW50cyk7IH0KLSAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYXB0dXJl
U291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyopOworICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmlu
YWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpIGZpbmFsIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOyB9CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSYgZGV2aWNlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykgZmluYWwgIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCB7IH0sIGNv
bnN0cmFpbnRzKTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUNh
cHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CkBAIC03MCw2ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdG9y
YWdlQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25z
dCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZy
YW1lcyk7CiAgICAgdm9pZCByaW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2VkKHVpbnQ2NF90IGlk
LCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CiAgICAgdm9pZCBhdWRp
b1NhbXBsZXNBdmFpbGFibGUodWludDY0X3QgaWQsIE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2
b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpSZW1v
dGVWaWRlb1NhbXBsZSYmKTsKIAogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90
KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKQEAgLTg1LDYgKzg4LDYg
QEAgcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9OwogCi19Cit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMu
aW4KaW5kZXggZWI1NzQwNTYxNzM1MmU4ODEzM2JiODUwZjE1N2YzNGMzYmYyM2VmZC4uYTA2MmRj
MzQ1NjcxYjI5NmU1MmY1ODNhNzExNmY3YWU3YzNlZmNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtMzIsNiArMzIsNyBAQCBtZXNzYWdlcyAtPiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciB7CiAgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBN
ZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJh
bWUsIHVpbnQ2NF90IGVuZEZyYW1lKQogICAgIEFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQodWlu
dDY0X3QgaWQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykK
ICAgICBBcHBseUNvbnN0cmFpbnRzRmFpbGVkKHVpbnQ2NF90IGlkLCBTdHJpbmcgZmFpbGVkQ29u
c3RyYWludCwgU3RyaW5nIG1lc3NhZ2UpCisgICAgUmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUo
dWludDY0X3QgaWQsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlIHNhbXBsZSkKIH0KIAogI2Vu
ZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352739</attachid>
            <date>2018-10-18 15:17:03 -0700</date>
            <delta_ts>2018-10-18 15:27:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-190728-20181018151702.patch</filename>
            <type>text/plain</type>
            <size>59170</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FlOWY4YjM0OGQwZWFh
YmIxNzY1ZTk4M2ViMWM2MmNiYjY3NjBlMC4uMGJmZGIyNmVhNzI0NWZlMDJiMjE1NzQyMTQ4MWEz
OWZlOTIxNTdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE4LTEwLTE4ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gQWxsb3cgcG9ydHMgdG8gb3B0aW9uYWxseSBkbyBzY3JlZW4gY2FwdHVyZSBpbiB0aGUgVUkg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwNzI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTM3NjgyND4KKworICAgICAgICBSZXZp
ZXdlZCBieSBKZXIgTm9ibGUgYW5kIFRpbSBIb3J0b24uCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogU291cmNlcy50eHQ6IEFk
ZCBSZW1vdGVWaWRlb1NhbXBsZS5jcHAuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL01lZGlhU2FtcGxlLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZTo6dmlkZW9QaXhlbEZvcm1hdCBjb25zdCk6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6On5SZW1vdGVWaWRlb1Nh
bXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpSZW1vdGVWaWRlb1NhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6c3VyZmFjZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6dGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZTo6dmlkZW9Gb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3RlVmlkZW9TYW1wbGU6OnNpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVW
aWRlb1NhbXBsZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKTogQ2FsbCBvYnNl
cnZlcnMuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNlOjpkaXNwYXRjaE1l
ZGlhU2FtcGxlVG9PYnNlcnZlcnMpOiBEaXNwYXRjaCByZW1vdGUgc2FtcGxlcyB3aXRob3V0Cisg
ICAgICAgIHJlc2l6aW5nLCByZXNpemUgbG9jYWwgc2FtcGxlcyBpZiBuZWNlc3NhcnkuCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcHR1cmVPdXRwdXREaWRP
dXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbik6IERvbid0IHJlc2l6ZQorICAgICAgICBz
YW1wbGVzLCBpdCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhc2UgY2xhc3MgaWYgbmVjZXNzYXJ5Lgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
ZW1pdEZyYW1lKTogRG9uJ3QgcmVzaXplIHNhbXBsZXMgd2hlbiBydW5uaW5nIGluIHRoZSBVSQor
ICAgICAgICBwcm9jZXNzLCBpdCB3aWxsIGJlIGRvbmUgaW4gdGhlIHdlYiBwcm9jZXNzLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZUNvY29hLmNwcDogUmVtb3ZlIHVubmVlZGVkIGluY2x1ZGUuCisKIDIwMTgtMTAtMTggIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEhhbmRsZSBNRE5TIHJl
c29sdXRpb24gb2YgY2FuZGlkYXRlcyB0aHJvdWdoIGxpYndlYnJ0YyBkaXJlY3RseQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBmMzIyZDc3NDgyMWI3YzVhYWEyNTc1MDMwZmYwMjcxNDQ5ZTMyYTBhLi4yNGVkMzBhMGMz
MzRlM2NhMjgzNTJhOWRlN2QwNjViNTZhYTc2YWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBA
CisyMDE4LTEwLTE4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisg
ICAgICAgIFtNZWRpYVN0cmVhbV0gQWxsb3cgcG9ydHMgdG8gb3B0aW9uYWxseSBkbyBzY3JlZW4g
Y2FwdHVyZSBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNzI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTM3Njgy
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUgYW5kIFRpbSBIb3J0b24uCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6IEVu
Y29kZSBzaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOiBEZWNvZGUgc2hvdWxkQ2FwdHVy
ZURpc3BsYXlJblVJUHJvY2Vzcy4KKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246
OmNvcHkpOiBDb3B5IHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKworICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnJl
bW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpbnRzKTogUmVtb3ZlCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgcGFy
YW1ldGVyLCBDYXB0dXJlRGV2aWNlIGhhcyB0aGUgc2FtZSBpbmZvcm1hdGlvbi4gRGVhbCB3aXRo
IGRpc3BsYXkKKyAgICAgICAgY2FwdHVyZSAiZGV2aWNlcyIuCisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2Vzcyk6IENvcHkgc2hvdWxkQ2FwdHVy
ZURpc3BsYXlJblVJUHJvY2Vzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6U291cmNlOjpTb3VyY2UpOiBPbmx5IGFsbG9jYXRlIGEgcmluZyBidWZmZXIgZm9y
IEF1ZGlvIHNvdXJjZXMuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpTb3VyY2U6On5Tb3VyY2UpOiBTYW1lIGZvciBkZWFsbG9jYXRlLgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzdG9yYWdlKTogbV9yaW5nQnVmZmVy
IGlzIGEgcG9pbnRlci4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OlNvdXJjZTo6c2V0U3RvcmFnZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMpOiBEaXR0by4K
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKTogQ3JlYXRlIGEg
CisgICAgICAgIFBpeGVsQnVmZmVyLWJhY2tlZCBtZWRpYSBzYW1wbGUgYW5kIGNhbGwgdmlkZW9T
YW1wbGVBdmFpbGFibGUuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOiBDbGVhciB0aGUgYXVkaW8gYW5kIGRpc3BsYXkg
Y2FwdHVyZQorICAgICAgICBmYWN0b3J5IG92ZXJyaWRlcy4KKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUpOiBTZXQgdGhlIGF1ZGlvIGFuZCBkaXNw
bGF5IGNhcHR1cmUgZmFjdG9yeSBvdmVycmlkZXMuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5p
bjoKKwogMjAxOC0xMC0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgSGFuZGxlIE1ETlMgcmVzb2x1dGlvbiBvZiBjYW5kaWRhdGVzIHRocm91Z2ggbGlid2Vi
cnRjIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGQxOTNkOWUxZWI2ZTJlNTkwZjIxMzIzZmFm
OWU5MGE3Y2QzZTgyMTUuLmQzOTFjOTBiYWNkNjNiYjg4ZjU3NDYyMzc0MDA0NDM2OGU4ZDcwYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CkBAIC0xNjY4LDYgKzE2NjgsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9Q
YXRoVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKIHBsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1JlZ2lv
bi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAogcGxhdGZvcm0v
Z3JhcGhpY3MvUm91bmRlZFJlY3QuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNw
cAogcGxhdGZvcm0vZ3JhcGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY4ZjcxZDQwZjRh
NzRhZTI4ZDI3MjM3MDUxOGFiNzkwMWJiYWJiYjQuLmNmY2VhYzNmOGIxZmU4YjdhYzE2NmZiZTlj
NjFiNzkzMjJmOTFkOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTExNCw2ICsxMTQsNyBAQAogCQkwNzM3OTRGQTE5RjU4NjRF
MDBFNUEwNDUgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RjQxOUY1ODY0RTAwRTVBMDQ1IC8q
IFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCAqLzsgfTsKIAkJMDczNzk0RkUxOUY1ODY0RTAw
RTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmll
cnNNb2NrLmggKi87IH07CiAJCTA3Mzk0RUNBMUJBQjJDRDcwMEJFOTlDRCAvKiBNZWRpYURldmlj
ZXNSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzM5NEVDOTFCQUIyQ0Q3MDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3M0ExNTU0MjE3
N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJl
bW90ZVZpZGVvU2FtcGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVy
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcz
Qjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oICovOyB9Owog
CQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4
NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IH07CiAJCTA3M0JEQzA1
MUY2ODQzNjEwMEVFMzRFRCAvKiBUcmFja1ByaXZhdGVCYXNlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAv
KiBUcmFja1ByaXZhdGVCYXNlLmNwcCAqLzsgfTsKQEAgLTYxOCw3ICs2MTksNyBAQAogCQkxQUZF
MTE5QTBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZFMTE5ODBDQkZGQ0M0MDAz
MDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggKi87IH07CiAJCTFBRkZDNDU4MUQ1RTg2
NTUwMDI2N0E2NiAvKiBXZWJHTEJsYWNrbGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRkM0NTExRDVFN0VDNzAwMjY3QTY2IC8qIFdlYkdMQmxh
Y2tsaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMUFGRkM0NTkxRDVFODY2MTAwMjY3QTY2IC8qIFBsdWdpbkJsYWNrbGlzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRkM0NEYxRDVFN0VDNzAw
MjY3QTY2IC8qIFBsdWdpbkJsYWNrbGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTFCMTI0RDhEMUQzODBCNzAwMEVDREZCMCAvKiBNZWRpYVNh
bXBsZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFCMTI0RDhDMUQzODBCNzAwMEVDREZCMCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCAqLzsg
fTsKKwkJMUIxMjREOEQxRDM4MEI3MDAwRUNERkIwIC8qIE1lZGlhU2FtcGxlQVZGT2JqQy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUIxMjREOEMxRDM4
MEI3MDAwRUNERkIwIC8qIE1lZGlhU2FtcGxlQVZGT2JqQy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFCMTI0RDhGMUQzODBCQjYwMEVDREZCMCAv
KiBNZWRpYVNhbXBsZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQjEyNEQ4RTFEMzgwQkI2MDBFQ0RGQjAgLyogTWVkaWFTYW1wbGVBVkZP
YmpDLm1tICovOyB9OwogCQkxQkY5REIzQzFEMzk3M0FEMDAyNkFFQjcgLyogTWVkaWFTYW1wbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjQxRUM3
MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDMDEwNzAxMTkyNTk0REYwMDhBNDIwMSAvKiBJ
bmxpbmVUZXh0Qm94U3R5bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDMDEwNkZGMTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUu
aCAqLzsgfTsKQEAgLTUzNjEsNiArNTM2Miw4IEBACiAJCTA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0
NSAvKiBSVENOb3RpZmllcnNNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJUQ05vdGlmaWVyc01vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczOTRF
QzcxQkFCMkNDRDAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzk0RUM5MUJBQjJDRDcwMEJFOTlDRCAvKiBNZWRp
YURldmljZXNSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
RGV2aWNlc1JlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczQTE1NTEy
MTc3QTM5ODAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3M0I4NzU2MUU0MERDRTUwMDcxQzBFQyAvKiBBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NTcxRTQwRENGRDAwNzFDMEVDIC8q
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzNCODc1ODFFNDBEQ0ZEMDA3MUMwRUMgLyogQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQxMDEsNiAr
MjQxMDQsOCBAQAogCQkJCTA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVS
YW5nZXMuaCAqLywKIAkJCQlCQ0FCNDE3RjEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmNwcCAq
LywKIAkJCQlCQ0FCNDE4MDEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmggKi8sCisJCQkJMDcz
QTE1NTEyMTc3QTM5ODAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLywKKwkJCQkw
NzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLywKIAkJCQlB
NzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovLAogCQkJCUE3M0Y5
NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovLAogCQkJCTBGM0RENDREMTJG
NUVBMUIwMDBEOTE5MCAvKiBTaGFkb3dCbHVyLmNwcCAqLywKQEAgLTMwMjk3LDYgKzMwMzAyLDcg
QEAKIAkJCQlDRDhBQ0E4OTFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVy
TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI5NTE5OTIwN0Q2MzREMDBBN0QyREQgLyogUmVt
b3RlRE9NV2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI5NTE5QTIwN0Q2MzU0MDBBN0Qy
REQgLyogUmVtb3RlRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3M0ExNTU0MjE3N0E0MjYw
MEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDA2QzBE
OEYwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzMzA5RTA1MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMDcwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9NZWRpYVNhbXBsZS5oCmluZGV4IDA1MGQ5Mzg5ZDE4ZTEwZjVkOTdiYTQzZDg2MGMyYTEz
NTIwNjYyZmUuLjc1MTY2NTYyMWFjZDI1YTJkZmIyZWEyOWExYzkwNjVlZTIyOTMxMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6
CiAgICAgfTsKICAgICB2aXJ0dWFsIFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIFZpZGVvUm90YXRpb246Ok5vbmU7IH0KICAgICB2aXJ0dWFsIGJvb2wgdmlkZW9N
aXJyb3JlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB1aW50MzJfdCB2
aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiAgICAgYm9vbCBpc1N5bmMo
KSBjb25zdCB7IHJldHVybiBmbGFncygpICYgSXNTeW5jOyB9CiAgICAgYm9vbCBpc05vbkRpc3Bs
YXlpbmcoKSBjb25zdCB7IHJldHVybiBmbGFncygpICYgSXNOb25EaXNwbGF5aW5nOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBs
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGRiZGNhOWJmZTQ4NjM5ZWM2ODA0NmRkNTAxMTY0MzgyZjViMWFh
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Jl
bW90ZVZpZGVvU2FtcGxlLmNwcApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJlbW90ZVZpZGVvU2FtcGxlLmgiCisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgor
I2luY2x1ZGUgIklPU3VyZmFjZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJS
ZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCisKKyNpZiBIQVZFKElPU1VSRkFDRSkKKyNpbmNsdWRl
ICJNZWRpYVNhbXBsZUFWRk9iamMuaCIKKyNlbmRpZgorCisjaW1wb3J0IDxwYWwvY2YvQ29yZU1l
ZGlhU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIFBB
TDsKKworI2lmIEhBVkUoSU9TVVJGQUNFKQorc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2Ft
cGxlPiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKE1lZGlhU2FtcGxlJiYgc2FtcGxlKQorewor
ICAgIEFTU0VSVChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFBsYXRmb3JtU2FtcGxl
OjpDTVNhbXBsZUJ1ZmZlclR5cGUpOworCisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IENNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2Ft
cGxlQnVmZmVyKTsKKyAgICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIGF1dG8gc3VyZmFjZSA9IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2UoaW1hZ2VC
dWZmZXIpOworICAgIGlmICghc3VyZmFjZSkgeworICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwg
IlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGU6IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2UgcmV0
dXJuZWQgbnVsbHB0ciIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBy
ZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPihuZXcgUmVtb3RlVmlkZW9T
YW1wbGUoc3VyZmFjZSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwgc2FtcGxlLnByZXNlbnRhdGlvblRp
bWUoKSwgc2FtcGxlLnZpZGVvUm90YXRpb24oKSwgc2FtcGxlLnZpZGVvTWlycm9yZWQoKSkpOwor
fQorCitSZW1vdGVWaWRlb1NhbXBsZTo6UmVtb3RlVmlkZW9TYW1wbGUoSU9TdXJmYWNlUmVmIHN1
cmZhY2UsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlLCBNZWRpYVRpbWUmJiB0aW1lLCBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbiwgYm9vbCBtaXJyb3JlZCkKKyAgICA6IG1f
aW9TdXJmYWNlKFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbVN1cmZhY2Uoc3VyZmFjZSwg
Y29sb3JTcGFjZSkpCisgICAgLCBtX3JvdGF0aW9uKHJvdGF0aW9uKQorICAgICwgbV90aW1lKFdU
Rk1vdmUodGltZSkpCisgICAgLCBtX3ZpZGVvRm9ybWF0KElPU3VyZmFjZUdldFBpeGVsRm9ybWF0
KHN1cmZhY2UpKQorICAgICwgbV9zaXplKEludFNpemUoSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFj
ZSksIElPU3VyZmFjZUdldEhlaWdodChzdXJmYWNlKSkpCisgICAgLCBtX21pcnJvcmVkKG1pcnJv
cmVkKQoreworfQorCitJT1N1cmZhY2VSZWYgUmVtb3RlVmlkZW9TYW1wbGU6OnN1cmZhY2UoKQor
eworICAgIGlmICghbV9pb1N1cmZhY2UgJiYgbV9zZW5kUmlnaHQpCisgICAgICAgIG1faW9TdXJm
YWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tU2VuZFJpZ2h0KFdURk1vdmUobV9z
ZW5kUmlnaHQpLCBzUkdCQ29sb3JTcGFjZVJlZigpKTsKKworICAgIHJldHVybiBtX2lvU3VyZmFj
ZSA/IG1faW9TdXJmYWNlLT5zdXJmYWNlKCkgOiBudWxscHRyOworfQorI2VuZGlmCisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2Ft
cGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBs
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIwYjY2YWJhOGVlNGY2NGZlN2ZiNWIwOGIxYjE4ZjIxZmNiZWM5MDUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1v
dGVWaWRlb1NhbXBsZS5oCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJJT1N1cmZh
Y2UuaCIKKyNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvU2Ft
cGxlLmgiCisjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KKyNpbmNsdWRlIDx3dGYvTWVk
aWFUaW1lLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVtb3RlVmlkZW9TYW1w
bGUgeworcHVibGljOgorICAgIFJlbW90ZVZpZGVvU2FtcGxlKCkgPSBkZWZhdWx0OworICAgIH5S
ZW1vdGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKKworI2lmIEhBVkUoSU9TVVJGQUNFKQorICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+
IGNyZWF0ZShNZWRpYVNhbXBsZSYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJT1N1cmZhY2VSZWYg
c3VyZmFjZSgpOworI2VuZGlmCisKKyAgICBjb25zdCBNZWRpYVRpbWUmIHRpbWUoKSBjb25zdCB7
IHJldHVybiBtX3RpbWU7IH0KKyAgICB1aW50MzJfdCB2aWRlb0Zvcm1hdCgpIGNvbnN0IHsgcmV0
dXJuIG1fdmlkZW9Gb3JtYXQ7IH0KKyAgICBJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBt
X3NpemU7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworI2lmIEhBVkUoSU9TVVJGQUNFKQorICAgICAgICBp
ZiAobV9pb1N1cmZhY2UpCisgICAgICAgICAgICBlbmNvZGVyIDw8IG1faW9TdXJmYWNlLT5jcmVh
dGVTZW5kUmlnaHQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZW5jb2RlciA8PCBXVEY6
Ok1hY2hTZW5kUmlnaHQoKTsKKyNlbmRpZgorICAgICAgICBlbmNvZGVyIDw8IG1fcm90YXRpb247
CisgICAgICAgIGVuY29kZXIgPDwgbV90aW1lOworICAgICAgICBlbmNvZGVyIDw8IG1fdmlkZW9G
b3JtYXQ7CisgICAgICAgIGVuY29kZXIgPDwgbV9zaXplOworICAgICAgICBlbmNvZGVyIDw8IG1f
bWlycm9yZWQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJv
b2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlbW90ZVZpZGVvU2FtcGxlJiBzYW1wbGUpCisg
ICAgeworI2lmIEhBVkUoSU9TVVJGQUNFKQorICAgICAgICBNYWNoU2VuZFJpZ2h0IHNlbmRSaWdo
dDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZW5kUmlnaHQpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBzYW1wbGUubV9zZW5kUmlnaHQgPSBXVEZNb3ZlKHNlbmRS
aWdodCk7CisjZW5kaWYKKyAgICAgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRp
b247CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocm90YXRpb24pKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBzYW1wbGUubV9yb3RhdGlvbiA9IHJvdGF0aW9uOworCisg
ICAgICAgIE1lZGlhVGltZSB0aW1lOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRpbWUp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBzYW1wbGUubV90aW1lID0gV1RG
TW92ZSh0aW1lKTsKKworICAgICAgICB1aW50MzJfdCBmb3JtYXQ7CisgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoZm9ybWF0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
c2FtcGxlLm1fdmlkZW9Gb3JtYXQgPSBmb3JtYXQ7CisKKyAgICAgICAgSW50U2l6ZSBzaXplOwor
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBzYW1wbGUubV9zaXplID0gV1RGTW92ZShzaXplKTsKKworICAgICAgICBi
b29sIG1pcnJvcmVkOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1pcnJvcmVkKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc2FtcGxlLm1fbWlycm9yZWQgPSBtaXJy
b3JlZDsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZhdGU6CisKKyNpZiBI
QVZFKElPU1VSRkFDRSkKKyAgICBSZW1vdGVWaWRlb1NhbXBsZShJT1N1cmZhY2VSZWYsIENHQ29s
b3JTcGFjZVJlZiwgTWVkaWFUaW1lJiYsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uLCBib29s
KTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IG1faW9TdXJmYWNl
OworICAgIFdURjo6TWFjaFNlbmRSaWdodCBtX3NlbmRSaWdodDsKKyNlbmRpZgorICAgIE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uIG1fcm90YXRpb24geyBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6Tm9uZSB9OworICAgIE1lZGlhVGltZSBtX3RpbWU7CisgICAgdWludDMyX3QgbV92aWRl
b0Zvcm1hdCB7IDAgfTsKKyAgICBJbnRTaXplIG1fc2l6ZTsKKyAgICBib29sIG1fbWlycm9yZWQg
eyBmYWxzZSB9OworfTsKKworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxl
QVZGT2JqQy5oCmluZGV4IDA5MjM4ODNlNWJjN2U0NDY0YjExNmI5MmJiZmQwOGE2ZTI2M2E3MmYu
LjYwZWU5NmY0MDI0MzM2MjJmNTg1NDEyNmZmYjIzOTUxMDY5OGNlMzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCkBAIC02NCw3ICs2NCw3IEBAIHB1Ymxp
YzoKIAogICAgIFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fcm90YXRpb247IH0KICAgICBib29sIHZpZGVvTWlycm9yZWQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX21pcnJvcmVkOyB9Ci0gICAgdWludDMyX3QgdmlkZW9QaXhlbEZvcm1h
dCgpIGNvbnN0OworICAgIHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsK
IAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1f
c2FtcGxlLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaAppbmRleCA1YzMyMzE0MTAz
ZjUzMzZkYjIwZmE3Y2I5M2NiN2Q5ZTMxYjRjNzVhLi41NjcyYjg1NjAwMmJlMTI5ZGViZDIxYzlh
ZGU2M2Q1NmQ2YWIxNjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCkBAIC01Miw3ICs1Miw3
IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IGNyZWF0ZU1lZGlhU2FtcGxlKENN
U2FtcGxlQnVmZmVyUmVmLCBjb25zdCBJbnRTaXplJiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZh
bHNlKTsKIAogI2lmIEhBVkUoSU9TVVJGQUNFKSAmJiAhUExBVEZPUk0oSU9TTUFDKQotICAgIFJl
ZlB0cjxNZWRpYVNhbXBsZT4gY3JlYXRlTWVkaWFTYW1wbGUoSU9TdXJmYWNlUmVmLCBjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBJbnRTaXplJiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBN
ZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZhbHNlKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8TWVkaWFTYW1wbGU+IGNyZWF0ZU1lZGlhU2FtcGxl
KElPU3VyZmFjZVJlZiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgSW50U2l6ZSYsIE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIGJv
b2wgbWlycm9yZWQgPSBmYWxzZSk7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vz
c2lvblZULm1tCmluZGV4IDg0OTQyMmEwYWU0MWM4ODVmZDVhNTc4MWY3MDAxZDQ3MjdjMmZiMzku
LmU5ODJhNDQwY2Y4MzI5YzQzZWNjMDY5MDAzMmQ1YzY3MWJjYmIzN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVC5tbQpAQCAtMTQ4LDcgKzE0OCw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2Ft
CiAgICAgYXV0byBkZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRp
b24oc291cmNlQnVmZmVyKTsKICAgICBhdXRvIHNvdXJjZVNpemUgPSBGbG9hdFNpemUoQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhkZXNjcmlwdGlvbiwg
dHJ1ZSwgdHJ1ZSkpOwogICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVs
QnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlcikpOwot
ICAgIGlmIChzaXplID09IHJvdW5kZWRJbnRTaXplKHNvdXJjZVNpemUpICYmIG1fcGl4ZWxGb3Jt
YXQgPT0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcikpCisgICAg
aWYgKHNpemUgPT0gZXhwYW5kZWRJbnRTaXplKHNvdXJjZVNpemUpICYmIG1fcGl4ZWxGb3JtYXQg
PT0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcikpCiAgICAgICAg
IHJldHVybiByZXRhaW5QdHIoc291cmNlQnVmZmVyKTsKIAogICAgIGlmICghc2V0U2l6ZShzaXpl
KSkKQEAgLTM0MCw3ICszNDAsNyBAQCBSZWZQdHI8TWVkaWFTYW1wbGU+IEltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQ6OmNvbnZlcnRNZWRpYVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcAogewogICAgIEFT
U0VSVChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFBsYXRmb3JtU2FtcGxlOjpDTVNh
bXBsZUJ1ZmZlclR5cGUpOwogCi0gICAgaWYgKHNpemUgPT0gcm91bmRlZEludFNpemUoc2FtcGxl
LnByZXNlbnRhdGlvblNpemUoKSkpCisgICAgaWYgKHNpemUgPT0gZXhwYW5kZWRJbnRTaXplKHNh
bXBsZS5wcmVzZW50YXRpb25TaXplKCkpKQogICAgICAgICByZXR1cm4gJnNhbXBsZTsKIAogICAg
IGF1dG8gcmVzaXplZEJ1ZmZlciA9IGNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihzYW1wbGUucGxhdGZv
cm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsIHNpemUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
LmNwcAppbmRleCBlYzhiNWI5ZGRlMGNjZDc1MTQxNGJlYTQyMmM1YzY1ZTliMjM4YjFmLi5mMmRk
NDZjN2QwMjJiMDRkM2M5NjRiZjY4ZTE3NzM3ZjI3YzhjYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
LmNwcApAQCAtMTU4LDYgKzE1OCwxMyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVv
U2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkKICAgICB9KTsKIH0KIAor
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShSZW1v
dGVWaWRlb1NhbXBsZSYmIHNhbXBsZSkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8m
IG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxl
KHNhbXBsZSk7CisgICAgfSk7Cit9CisKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRp
b24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykKIHsKICAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1
dG8mIG9ic2VydmVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggYTkzZGUzMzhjNDFhNTcxY2Ix
MDVkMWY0MzZkNTJjNWU1OTM4MGI2MS4uN2FhODYwYzg1OTJmZDhhMDRlODdiMDIyODQyMDhiMmEx
MDA0YzBiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNjEsNiArNjEsNyBAQCBjbGFzcyBNZWRp
YVN0cmVhbVByaXZhdGU7CiBjbGFzcyBPcmllbnRhdGlvbk5vdGlmaWVyOwogY2xhc3MgUGxhdGZv
cm1BdWRpb0RhdGE7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M7CitjbGFzcyBS
ZW1vdGVWaWRlb1NhbXBsZTsKIAogc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yOwogCkBAIC04
MSw2ICs4Miw3IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBDYWxsZWQgb24gdGhlIG1haW4gdGhy
ZWFkLgogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1w
bGUmKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxl
KFJlbW90ZVZpZGVvU2FtcGxlJikgeyB9CiAKICAgICAgICAgLy8gTWF5IGJlIGNhbGxlZCBvbiBh
IGJhY2tncm91bmQgdGhyZWFkLgogICAgICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZh
aWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3Qg
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCAvKm51bWJlck9mRnJhbWVzKi8pIHsgfQpA
QCAtMTY1LDYgKzE2Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ0F1
ZGlvU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJ
bmNvbWluZ1ZpZGVvU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZvaWQg
c2V0SXNSZW1vdGUoYm9vbCBpc1JlbW90ZSkgeyBtX2lzUmVtb3RlID0gaXNSZW1vdGU7IH0KKyAg
ICBib29sIGlzUmVtb3RlKCkgY29uc3QgeyByZXR1cm4gbV9pc1JlbW90ZTsgfQorCiAgICAgLy8g
VGVzdGluZyBvbmx5CiAgICAgdmlydHVhbCB2b2lkIGRlbGF5U2FtcGxlcyhTZWNvbmRzKSB7IH07
CiAKQEAgLTE5NiwxMyArMjAxLDEzIEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgdmlkZW9TYW1w
bGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKTsKICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpOworICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVB
dmFpbGFibGUoUmVtb3RlVmlkZW9TYW1wbGUmJik7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzdG9wUHJvZHVj
aW5nRGF0YSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXR0aW5nc0RpZENoYW5nZShPcHRpb25T
ZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpGbGFnPikgeyB9CiAKLQogICAgIHZvaWQg
Zm9yRWFjaE9ic2VydmVyKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChPYnNlcnZlciYpPiYpIGNv
bnN0OwogCiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKQEAgLTIyOCw2ICsyMzMsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9pc1Byb2R1Y2luZ0RhdGEgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9pbnRlcnJ1cHRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NhcHR1cmVEaWRGYWlsZWQgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9pc1JlbW90ZSB7IGZhbHNlIH07CiB9OwogCiBzdHJ1Y3QgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCAwYWZiMTk0ZTYy
ZDU2MDQyNTRlMTM2OGQ5MDU5MWU0ZDM1ODIzZWQyLi4yOGM5YzBlMzU0MDBmMmYyZDI2NDZhZjA4
MzUzZTdkMDk1NDM5OTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtMzEsNiArMzEsMTEg
QEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oIgorI2luY2x1
ZGUgIlJlbW90ZVZpZGVvU2FtcGxlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC0zNzgsNyArMzgzLDM2IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZGlzcGF0
Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgaWYgKGlu
dGVydmFsID4gMSkKICAgICAgICAgbV9vYnNlcnZlZEZyYW1lUmF0ZSA9IChtX29ic2VydmVkRnJh
bWVUaW1lU3RhbXBzLnNpemUoKSAvIGludGVydmFsKTsKIAotICAgIHZpZGVvU2FtcGxlQXZhaWxh
YmxlKHNhbXBsZSk7CisgICAgaWYgKGlzUmVtb3RlKCkpIHsKKyNpZiBIQVZFKElPU1VSRkFDRSkK
KyAgICAgICAgYXV0byByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKFdU
Rk1vdmUoc2FtcGxlKSk7CisgICAgICAgIGlmIChyZW1vdGVTYW1wbGUpCisgICAgICAgICAgICBy
ZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXVEZNb3ZlKCpyZW1vdGVTYW1wbGUpKTsKKyNlbHNl
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvIG1lZGlhU2FtcGxlID0gbWFrZVJlZlB0cigmc2FtcGxlKTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvIHNpemUgPSB0aGlzLT5zaXplKCk7CisgICAgaWYg
KCFzaXplLmlzRW1wdHkoKSAmJiBzaXplICE9IGV4cGFuZGVkSW50U2l6ZShzYW1wbGUucHJlc2Vu
dGF0aW9uU2l6ZSgpKSkgeworCisgICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikK
KyAgICAgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOjpjcmVhdGUoc2FtcGxlLnZpZGVvUGl4ZWxGb3JtYXQoKSk7CisKKyAgICAgICAgaWYgKG1f
aW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAgICAgIG1lZGlhU2FtcGxlID0gbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbi0+Y29udmVydE1lZGlhU2FtcGxlKHNhbXBsZSwgc2l6ZSk7CisgICAg
ICAgICAgICBpZiAoIW1lZGlhU2FtcGxlKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfQorI2VuZGlmCisKKyAgICB2aWRlb1NhbXBsZUF2YWlsYWJsZShtZWRpYVNhbXBs
ZS5yZWxlYXNlTm9uTnVsbCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1Nv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCmluZGV4IDQ3YzRmNWVlM2MxZjY1NmFkNTIwYjRiZWI4M2I0NzJmNzRkMDlkZDAu
Ljg0MjY4YWI2NjZlMzlkNzcwNWQ4MDg4ZGNhYzg1M2Q1NTFlNmZhZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291
cmNlLmgKQEAgLTM3LDYgKzM3LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOworCiBjbGFzcyBSZWFsdGltZVZpZGVvU291cmNlIDogcHVi
bGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogICAgIHZpcnR1YWwgflJlYWx0aW1l
VmlkZW9Tb3VyY2UoKTsKQEAgLTgzLDYgKzg1LDkgQEAgcHJpdmF0ZToKICAgICBEZXF1ZTxkb3Vi
bGU+IG1fb2JzZXJ2ZWRGcmFtZVRpbWVTdGFtcHM7CiAgICAgZG91YmxlIG1fb2JzZXJ2ZWRGcmFt
ZVJhdGUgeyAwIH07CiAgICAgSW50U2l6ZSBtX2RlZmF1bHRTaXplOworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdl
VHJhbnNmZXJTZXNzaW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRl
b0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggOTExMDc1NmRhZjlkNmRhMjJkOWFmNWQ4
YzA5ODQ0YjhiN2IwMTRmOS4uOTkzNjFiN2FmZjNiZjIwZGUyYjczODRjZTlmNmQ1NWE5ZTJiZjEx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtNTQwLDI3ICs1NDAsOSBAQCB2
b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpwcm9jZXNzTmV3RnJhbWUoUmVmPE1lZGlhU2FtcGxl
PiYmIHNhbXBsZSkKIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERp
ZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dFR5cGUqLCBD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKiBj
YXB0dXJlQ29ubmVjdGlvbikKIHsKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERl
c2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZm
ZXIpOwotICAgIGlmICghZm9ybWF0RGVzY3JpcHRpb24pCi0gICAgICAgIHJldHVybjsKLQotICAg
IENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25H
ZXREaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uKTsKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+
IHNhbXBsZTsKLSAgICBpZiAoZGltZW5zaW9ucy53aWR0aCAhPSBtX3JlcXVlc3RlZFNpemUud2lk
dGgoKSB8fCBkaW1lbnNpb25zLmhlaWdodCAhPSBtX3JlcXVlc3RlZFNpemUuaGVpZ2h0KCkpIHsK
LQotICAgICAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pCi0gICAgICAgICAgICBtX2lt
YWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKGF2Vmlk
ZW9DYXB0dXJlUGl4ZWxCdWZmZXJGb3JtYXQoKSk7Ci0KLSAgICAgICAgc2FtcGxlID0gbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUoc2FtcGxlQnVmZmVyLCBtX3JlcXVl
c3RlZFNpemUsIG1fc2FtcGxlUm90YXRpb24sIFtjYXB0dXJlQ29ubmVjdGlvbiBpc1ZpZGVvTWly
cm9yZWRdKTsKLSAgICAgICAgaWYgKCFzYW1wbGUpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSBlbHNlCi0g
ICAgICAgIHNhbXBsZSA9IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlKHNhbXBsZUJ1ZmZlciwg
bV9zYW1wbGVSb3RhdGlvbiwgW2NhcHR1cmVDb25uZWN0aW9uIGlzVmlkZW9NaXJyb3JlZF0pOwot
CisgICAgYXV0byBzYW1wbGUgPSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGVCdWZm
ZXIsIG1fc2FtcGxlUm90YXRpb24sIFtjYXB0dXJlQ29ubmVjdGlvbiBpc1ZpZGVvTWlycm9yZWRd
KTsKICAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpcywgc2FtcGxlID0gV1RGTW92ZShzYW1w
bGUpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgcHJvY2Vzc05ld0ZyYW1lKHNhbXBsZS5yZWxlYXNl
Tm9uTnVsbCgpKTsKKyAgICAgICAgcHJvY2Vzc05ld0ZyYW1lKFdURk1vdmUoc2FtcGxlKSk7CiAg
ICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAppbmRl
eCAyZWJmNjUwNDg5NzhmNzYwZWU1YzRhNjY1MWUyY2Q1MWJiZTQ0NjFiLi4wZGRjMzJmNWI4NWFi
NTdiZjY4ZDlkMjBkYjI3YjY1ZTkxNjExOTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2EuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5o
IgogI2luY2x1ZGUgIlJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVW
aWRlb1NhbXBsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8Q29yZU1lZGlhL0NN
U3luYy5oPgogI2luY2x1ZGUgPG1hY2gvbWFjaF90aW1lLmg+CkBAIC0xNzIsMjIgKzE3Myw0NCBA
QCB2b2lkIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmVtaXRGcmFtZSgpCiAgICAgICAgIG1f
aW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocHJl
ZmVyZWRQaXhlbEJ1ZmZlckZvcm1hdCgpKTsKIAogICAgIGF1dG8gc2FtcGxlVGltZSA9IE1lZGlh
VGltZTo6Y3JlYXRlV2l0aERvdWJsZSgoZWxhcHNlZFRpbWUoKSArIDEwMF9tcykuc2Vjb25kcygp
KTsKKwogICAgIGF1dG8gZnJhbWUgPSBnZW5lcmF0ZUZyYW1lKCk7Ci0gICAgSW50U2l6ZSBpbWFn
ZVNpemU7CisgICAgYXV0byBpbWFnZVNpemUgPSBXVEY6OnN3aXRjaE9uKGZyYW1lLAorICAgICAg
ICBbXShSZXRhaW5QdHI8SU9TdXJmYWNlUmVmPiBzdXJmYWNlKSAtPiBJbnRTaXplIHsKKyAgICAg
ICAgICAgIGlmICghc3VyZmFjZSkKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9OworCisgICAg
ICAgICAgICByZXR1cm4gSW50U2l6ZShJT1N1cmZhY2VHZXRXaWR0aChzdXJmYWNlLmdldCgpKSwg
SU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2UuZ2V0KCkpKTsKKyAgICAgICAgfSwKKyAgICAgICAg
W10oUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlKSAtPiBJbnRTaXplIHsKKyAgICAgICAgICAg
IGlmICghaW1hZ2UpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICAgICAg
cmV0dXJuIEludFNpemUoQ0dJbWFnZUdldFdpZHRoKGltYWdlLmdldCgpKSwgQ0dJbWFnZUdldEhl
aWdodChpbWFnZS5nZXQoKSkpOworICAgICAgICB9CisgICAgKTsKKworICAgIEFTU0VSVCghaW1h
Z2VTaXplLmlzRW1wdHkoKSk7CisgICAgaWYgKGltYWdlU2l6ZS5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX2ludHJpbnNpY1NpemUgIT0gaW1hZ2VTaXplKQorICAgICAg
ICBzZXRJbnRyaW5zaWNTaXplKGltYWdlU2l6ZSk7CisKKyAgICBhdXRvIG1lZGlhU2FtcGxlU2l6
ZSA9IGlzUmVtb3RlKCkgPyBpbWFnZVNpemUgOiBmcmFtZVNpemUoKTsKKwogICAgIFJlZlB0cjxN
ZWRpYVNhbXBsZT4gc2FtcGxlID0gV1RGOjpzd2l0Y2hPbihmcmFtZSwKLSAgICAgICAgW3RoaXMs
IHNhbXBsZVRpbWUsICZpbWFnZVNpemVdKFJldGFpblB0cjxJT1N1cmZhY2VSZWY+IHN1cmZhY2Up
IC0+IFJlZlB0cjxNZWRpYVNhbXBsZT4geworICAgICAgICBbdGhpcywgc2FtcGxlVGltZSwgbWVk
aWFTYW1wbGVTaXplXShSZXRhaW5QdHI8SU9TdXJmYWNlUmVmPiBzdXJmYWNlKSAtPiBSZWZQdHI8
TWVkaWFTYW1wbGU+IHsKICAgICAgICAgICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICAgICAgaW1hZ2VTaXplID0gSW50U2l6ZShJT1N1
cmZhY2VHZXRXaWR0aChzdXJmYWNlLmdldCgpKSwgSU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2Uu
Z2V0KCkpKTsKLSAgICAgICAgICAgIHJldHVybiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVh
dGVNZWRpYVNhbXBsZShzdXJmYWNlLmdldCgpLCBzYW1wbGVUaW1lLCBpbWFnZVNpemUpOworICAg
ICAgICAgICAgcmV0dXJuIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxl
KHN1cmZhY2UuZ2V0KCksIHNhbXBsZVRpbWUsIG1lZGlhU2FtcGxlU2l6ZSk7CiAgICAgICAgIH0s
Ci0gICAgICAgIFt0aGlzLCBzYW1wbGVUaW1lLCAmaW1hZ2VTaXplXShSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gaW1hZ2UpIC0+IFJlZlB0cjxNZWRpYVNhbXBsZT4geworICAgICAgICBbdGhpcywgc2Ft
cGxlVGltZSwgbWVkaWFTYW1wbGVTaXplXShSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UpIC0+
IFJlZlB0cjxNZWRpYVNhbXBsZT4gewogICAgICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICAgICAgaW1hZ2VTaXplID0gSW50U2l6
ZShDR0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0KCkpLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdl
dCgpKSk7Ci0gICAgICAgICAgICByZXR1cm4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRl
TWVkaWFTYW1wbGUoaW1hZ2UuZ2V0KCksIHNhbXBsZVRpbWUsIGltYWdlU2l6ZSk7CisgICAgICAg
ICAgICByZXR1cm4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUoaW1h
Z2UuZ2V0KCksIHNhbXBsZVRpbWUsIG1lZGlhU2FtcGxlU2l6ZSk7CiAgICAgICAgIH0KICAgICAp
OwogCkBAIC0xOTYsOCArMjE5LDEzIEBAIHZvaWQgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
ZW1pdEZyYW1lKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2ludHJpbnNp
Y1NpemUgIT0gaW1hZ2VTaXplKQotICAgICAgICBzZXRJbnRyaW5zaWNTaXplKGltYWdlU2l6ZSk7
CisgICAgaWYgKGlzUmVtb3RlKCkpIHsKKyAgICAgICAgYXV0byByZW1vdGVTYW1wbGUgPSBSZW1v
dGVWaWRlb1NhbXBsZTo6Y3JlYXRlKFdURk1vdmUoKnNhbXBsZSkpOworICAgICAgICBpZiAocmVt
b3RlU2FtcGxlKQorICAgICAgICAgICAgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV1RGTW92
ZSgqcmVtb3RlU2FtcGxlKSk7CisKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIHZpZGVv
U2FtcGxlQXZhaWxhYmxlKCpzYW1wbGUuZ2V0KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAppbmRleCA0NDE5YmFlZWY4M2U5
ZGNmNzU4MjM0MDJhMmE4MmQzODJkYWQ2ZWM5Li4zMDc5ZDc5ZWEyMTQzYjIzNjkzNzVhNTY5ZTNk
N2ZjNjU3ZDM1YjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VDb2NvYS5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oIgotI2luY2x1ZGUg
IlJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCIKIAogQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVH
SU4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAppbmRleCAzN2Q4YjUwYzcwNzU4OTkwNzAyNmY4ZGVhNjA0Y2JkMmQ3YTIy
YzZlLi42Y2ZjOTUxYjU3Y2MwZTJmOTllMjVlY2FjZjg5MDdmZDZjYWI0OWNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cApAQCAtNzIsNiArNzIsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKICAgICBlbmNvZGVyIDw8IGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNv
ZGVyIDw8IHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOworICAgIGVuY29kZXIgPDwgc2hv
dWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzczsKICNlbmRpZgogICAgIGVuY29kZXIgPDwgc2hv
dWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uOwogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1Jl
Z2lzdGVyZWRBc0VtcHR5RG9jdW1lbnQ7CkBAIC0yNjQsNiArMjY1LDggQEAgYm9vbCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQ
cm9jZXNzQ3JlYXQKIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRD
YXB0dXJlQXVkaW9JblVJUHJvY2VzcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2Vz
cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24pKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggM2U2NmRkMzhmYTFkNGNjMzM1MDBjNmJkNmM1N2E2OTE5
OTE4YmZkNS4uZDBjOGY5YzUyNGViZGYyY2NjZmQ3M2Q3NjI1MDEwNmNhZjUyMTFkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aApAQCAtOTYsNiArOTYsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
YXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlOwogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlv
SW5VSVByb2Nlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJ
UHJvY2VzcyB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBTdHJpbmcgbWVkaWFLZXlTdG9yYWdlRGly
ZWN0b3J5OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGMxMTNlZDgzMWU2NTJjMzVmNTFk
ZGU0NTU0Mjg0NTliZDg3NWRiNmIuLjIzM2YzYTE3NzA0Yjk2MWY1YjhiOTZkMTU2Yzk1NzQyZmZj
Yjk4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBAIC0xMTUsNiArMTE1LDcgQEAgUmVmPFBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5KCkK
ICAgICBjb3B5LT5tX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSA9IHRoaXMtPm1fYWx3
YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5OwogICAgIGNvcHktPm1fc2hvdWxkVGFrZVVJQmFj
a2dyb3VuZEFzc2VydGlvbiA9IHRoaXMtPm1fc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlv
bjsKICAgICBjb3B5LT5tX3Nob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gdGhpcy0+bV9z
aG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzczsKKyAgICBjb3B5LT5tX3Nob3VsZENhcHR1cmVE
aXNwbGF5SW5VSVByb2Nlc3MgPSB0aGlzLT5tX3Nob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nl
c3M7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGNvcHktPm1fY3REYXRhQ29ubmVjdGlvblNlcnZp
Y2VUeXBlID0gdGhpcy0+bV9jdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaAppbmRleCA0NWIxYjc1MDZhNTQ1YmM5NWMyNWJjYmIwNjQzYjNjM2U1ZDI3
MTQyLi5iNzQxYzc0ODEyNDViY2JhMWQ5ZjRiOWRhM2E5NjdmNmM5YzIxYWVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5oCkBAIC0zNiw2ICszNiwxMiBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIAorI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCisjZGVmaW5l
IERFRkFVTFRfQ0FQVFVSRV9ESVNQTEFZX0lOX1VJX1BST0NFU1MgdHJ1ZQorI2Vsc2UKKyNkZWZp
bmUgREVGQVVMVF9DQVBUVVJFX0RJU1BMQVlfSU5fVUlfUFJPQ0VTUyBmYWxzZQorI2VuZGlmCisK
IGNsYXNzIFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBmaW5hbCA6IHB1YmxpYyBPYmplY3RJbXBs
PE9iamVjdDo6VHlwZTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IGNyZWF0ZSgpOwpAQCAtMTMzLDYg
KzEzOSw5IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNz
KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzczsgfQogICAg
IHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoYm9vbCBzaG91bGRDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcykgeyBtX3Nob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gc2hv
dWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3M7IH0KIAorICAgIGJvb2wgc2hvdWxkQ2FwdHVyZURp
c3BsYXlJblVJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZURpc3BsYXlJ
blVJUHJvY2VzczsgfQorICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2Vz
cyhib29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MpIHsgbV9zaG91bGRDYXB0dXJl
RGlzcGxheUluVUlQcm9jZXNzID0gc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzczsgfQor
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBjdERhdGFDb25uZWN0
aW9uU2VydmljZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2N0RGF0YUNvbm5lY3Rpb25TZXJ2aWNl
VHlwZTsgfQogICAgIHZvaWQgc2V0Q1REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKGNvbnN0IFdU
Rjo6U3RyaW5nJiBjdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUpIHsgbV9jdERhdGFDb25uZWN0
aW9uU2VydmljZVR5cGUgPSBjdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7IH0KQEAgLTE5NCw2
ICsyMDMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJp
b3JpdHkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0
aW9uIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyB7
IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgeyBE
RUZBVUxUX0NBUFRVUkVfRElTUExBWV9JTl9VSV9QUk9DRVNTIH07CiAgICAgUHJvY2Vzc0lEIG1f
cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEIHsgZ2V0Q3VycmVudFByb2Nlc3NJRCgpIH07CiAgICAg
Ym9vbCBtX3Byb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Fs
d2F5c0tlZXBBbmRSZXVzZVN3YXBwZWRQcm9jZXNzZXMgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcAppbmRleCAzOGFhYjI2ZGEwZjFlYjgzZWVkOTc0ZDYxNzJlYTBmZTQ0M2Vm
Yzg2Li5hZjgzYjYzODc5Y2FhMzU0YjNjYzA5MTQzM2U4MTUyMzliNTFhZWZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
Q0FSaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9C
dWZmZXJMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCkBAIC05OCw2ICs5OSwx
MSBAQCBwdWJsaWM6CiAgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkLCB0aW1l
LCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKICAgICB9CiAKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVtb3RlVmlkZW9TYW1w
bGUmIHNhbXBsZSkKKyAgICB7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxl
KG1faWQsIFdURk1vdmUoc2FtcGxlKSksIDApOworICAgIH0KKwogICAgIHZvaWQgc3RvcmFnZUNo
YW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbCB7CiAgICAgICAgIFNoYXJlZE1lbW9y
eTo6SGFuZGxlIGhhbmRsZTsKICAgICAgICAgaWYgKHN0b3JhZ2UpCkBAIC0xMjUsMTcgKzEzMSwy
MyBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eSgpCiAgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0K
IAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBT
dHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIGJv
b2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyh1aW50NjRfdCBpZCwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIGJvb2wmIHN1Y2Nl
ZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291
cmNlT3JFcnJvcjsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0b3J5KCkuY3JlYXRl
QXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksICZjb25zdHJhaW50
cyk7CisgICAgc3dpdGNoIChkZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBzb3VyY2VPckVycm9y
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksICZjb25zdHJhaW50cyk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6Q2FtZXJhOgorICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6dmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RG
TW92ZShoYXNoU2FsdCksICZjb25zdHJhaW50cyk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86Ci0gICAgICAgIHNvdXJj
ZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0Zh
Y3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgJmNvbnN0cmFpbnRzKTsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OkFwcGxpY2F0aW9uOgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6QnJvd3NlcjoKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNl
KGRldmljZSwgJmNvbnN0cmFpbnRzKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgIGNhc2UgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE0Myw2ICsxNTUsNyBAQCB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaQogICAgIHN1Y2NlZWRlZCA9ICEhc291cmNlT3JFcnJvcjsKICAgICBp
ZiAoc291cmNlT3JFcnJvcikgewogICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iu
c291cmNlKCk7CisgICAgICAgIHNvdXJjZS0+c2V0SXNSZW1vdGUodHJ1ZSk7CiAgICAgICAgIHNl
dHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOwogICAgICAgICBtX3Byb3hpZXMuc2V0KGlkLCBz
dGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIFdURk1vdmUoc291cmNlKSkp
OwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IGVjYWVhZTI0ODIzYTQz
OTFlNjU5ZDVhZWIzZWJkNDcyNGNlZWFkODguLjNiZjkyMWZlNjgwNjQyZmNjNzZlMWZiZGFiZjMx
MWVhNGVkYTczZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
KyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1ZGUgIlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZS5oPgogCkBAIC00OSw3ICs1MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
ICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCi0gICAgdm9p
ZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0
X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyYsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMs
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOworICAgIHZvaWQgY3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2VJRCwgU3RyaW5nJiYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxp
ZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKICAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBzdG9wUHJvZHVj
aW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBjYXBhYmlsaXRpZXModWludDY0X3QsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJkMjE5YmM5NjA4ZDA3NDA2OTE5MjI2MDQz
YzAyYTcyYWVhMzViN2IuLjQ1YjFjMzg0MGRlNzhlMWY5ZWQyNDNkOGJjZTEyMzY4NWE2YzQ1ZDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMSw0ICsx
LDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eSB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVj
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNz
LCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3Mgc2V0dGluZ3MpCitDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBT
dHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFp
bnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCiAgICAgU3RhcnRQcm9kdWNp
bmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQog
ICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDRhNDc5YWQ5ZTgzMjg3NDg5OWEzZWFlNDAzODM5YjQz
ZTk3ZGQ2NDEuLmRjNTdkYjVlNDhjMGZkMTc0NjBmYjliZDhiMjNjYTI2NWY2ZTZkZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTkwNyw2ICs5MDcs
NyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9j
ZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVEYQogICAgIHBhcmFtZXRlcnMucmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQgPSB3ZWJzaXRlRGF0YVN0b3JlLnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKCk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBwYXJhbWV0ZXJzLnNo
b3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gbV9jb25maWd1cmF0aW9uLT5zaG91bGRDYXB0
dXJlQXVkaW9JblVJUHJvY2VzcygpOworICAgIHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZURpc3Bs
YXlJblVJUHJvY2VzcyA9IG1fY29uZmlndXJhdGlvbi0+c2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJ
UHJvY2VzcygpOwogI2VuZGlmCiAKICAgICBwYXJhbWV0ZXJzLnByZXNlbnRpbmdBcHBsaWNhdGlv
blBJRCA9IG1fY29uZmlndXJhdGlvbi0+cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcAppbmRleCBjYjZkNmM3ZWU5YWM1YzFkNWYwYmMzOGRlMjE1YTM5ZDZlMmZk
NTg2Li43MjM2YTViNWQ3NTZhM2M0NmQyODhkZWQwODZmMTFmYzU2NzI0NGFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAKQEAgLTM1LDEyICszNSwxNiBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vz
c2lvblZULmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJM
aXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5o
PgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewordXNp
bmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgdWlu
dDY0X3QgbmV4dFNlc3Npb25JRCgpCkBAIC01NSwxNiArNTksMjIgQEAgcHVibGljOgogICAgICAg
ICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UodHlwZSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShzb3Vy
Y2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICAgICAsIG1faWQoaWQpCiAgICAgICAgICwg
bV9tYW5hZ2VyKG1hbmFnZXIpCi0gICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKQogICAgIHsKKyAgICAgICAgaWYgKHR5
cGUgPT0gVHlwZTo6QXVkaW8pCisgICAgICAgICAgICBtX3JpbmdCdWZmZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZT4obnVsbHB0cikpOwogICAgIH0KIAogICAgIH5Tb3VyY2UoKQogICAgIHsKLSAgICAgICAgc3Rv
cmFnZSgpLmludmFsaWRhdGUoKTsKKyAgICAgICAgaWYgKHR5cGUoKSA9PSBUeXBlOjpBdWRpbykK
KyAgICAgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CiAgICAgfQogCi0gICAgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOyB9CisgICAgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUo
KSA9PSBUeXBlOjpBdWRpbyk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKKyAgICB9CiAKICAgICBj
b25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5h
bAogICAgIHsKQEAgLTg0LDEwICs5NCwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzY3JpcHRp
b247IH0KICAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhh
bmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
biwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgeworICAgICAgICBBU1NFUlQodHlwZSgp
ID09IFR5cGU6OkF1ZGlvKTsKICAgICAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwog
CiAgICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIG1fcmluZ0J1ZmZl
ci5kZWFsbG9jYXRlKCk7CisgICAgICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsK
ICAgICAgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7CiAgICAgICAgICAgICBz
dG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRyKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTk3
LDIyICsxMDgsNTEgQEAgcHVibGljOgogICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShXVEZN
b3ZlKG1lbW9yeSkpOwogICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHkodHJ1ZSk7CiAKLSAg
ICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7
CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJh
bWVzKTsKICAgICB9CiAKICAgICB2b2lkIHNldFJpbmdCdWZmZXJGcmFtZUJvdW5kcyh1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKICAgICB7Ci0gICAgICAgIG1fcmluZ0J1
ZmZlci5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgICAg
ICBBU1NFUlQodHlwZSgpID09IFR5cGU6OkF1ZGlvKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5z
ZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwogICAgIH0KIAogICAg
IHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcykKICAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlwZTo6QXVkaW8p
OwogICAgICAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVzY3JpcHRpb24sIG51
bWJlck9mRnJhbWVzKTsKLSAgICAgICAgbV9yaW5nQnVmZmVyLmZldGNoKGF1ZGlvRGF0YS5saXN0
KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICAgICAgbV9yaW5nQnVm
ZmVyLT5mZXRjaChhdWRpb0RhdGEubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFs
dWUoKSk7CiAKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKHRpbWUsIGF1ZGlvRGF0YSwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwogICAg
IH0KIAorI2lmIEhBVkUoSU9TVVJGQUNFKQorICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFp
bGFibGUoUmVtb3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCisgICAgeworICAgICAgICBB
U1NFUlQodHlwZSgpID09IFR5cGU6OlZpZGVvKTsKKworICAgICAgICBhdXRvIHZpZGVvU2FtcGxl
U2l6ZSA9IEludFNpemUobV9zZXR0aW5ncy53aWR0aCgpLCBtX3NldHRpbmdzLmhlaWdodCgpKTsK
KyAgICAgICAgaWYgKHZpZGVvU2FtcGxlU2l6ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICB2aWRl
b1NhbXBsZVNpemUgPSByZW1vdGVTYW1wbGUuc2l6ZSgpOworCisgICAgICAgIGlmICghbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbikKKyAgICAgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkp
OworCisgICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgeworICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1l
ZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS50aW1lKCksIHZp
ZGVvU2FtcGxlU2l6ZSk7CisgICAgICAgIGlmICghc2FtcGxlUmVmKSB7CisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpzYW1wbGVS
ZWYpOworICAgIH0KKyNlbmRpZgorCiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVk
KGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCiAg
ICAgewogICAgICAgICBhdXRvIGNhbGxiYWNrcyA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHND
YWxsYmFja3MudGFrZUZpcnN0KCk7CkBAIC0xNDQsOCArMTg0LDExIEBAIHByaXZhdGU6CiAgICAg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBtdXRhYmxlIHN0ZDo6b3B0
aW9uYWw8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisKICAgICBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKLSAgICBDQVJpbmdCdWZmZXIgbV9yaW5n
QnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsK
KworICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJh
bnNmZXJTZXNzaW9uOwogCiAgICAgc3RydWN0IEFwcGx5Q29uc3RyYWludHNDYWxsYmFjayB7CiAg
ICAgICAgIFN1Y2Nlc3NIYW5kbGVyIHN1Y2Nlc3NIYW5kbGVyOwpAQCAtMTYyLDcgKzIwNSw4IEBA
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQcm9j
ZXNzJiBwcm9jZXNzKQogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyKCkKIHsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS51bnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6dW5zZXRBdWRpb0ZhY3RvcnkoKnRoaXMpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnVuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KCp0aGlzKTsKICAgICBtX3Byb2Nlc3MucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIApAQCAtMTc0LDEwICsyMTgsMTIgQEAgY29uc3QgY2hh
ciogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKIHZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcykKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuc2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAgICBpZiAocGFyYW1ldGVycy5z
aG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKQorICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzZXREaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKnRoaXMpOwogfQogCi1XZWJDb3Jl
OjpDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2Fw
dHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorV2ViQ29yZTo6Q2FwdHVyZVNv
dXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgaWYgKCFjb25zdHJh
aW50cykKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE4NiwxMCArMjMyLDExIEBAIFdlYkNvcmU6
OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0
dXJlU291cmNlKGNvbnN0CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdz
OwogICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CiAgICAgYm9vbCBzdWNjZWVkZWQ7Ci0gICAgaWYg
KCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwg
ZGV2aWNlLCBzb3VyY2VUeXBlLCBoYXNoU2FsdCwgKmNvbnN0cmFpbnRzKSwgTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBlcnJvck1lc3NhZ2UsIHNldHRp
bmdzKSwgMCkpCisgICAgaWYgKCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBoYXNoU2FsdCwgKmNvbnN0cmFpbnRzKSwgTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBlcnJvck1lc3NhZ2Us
IHNldHRpbmdzKSwgMCkpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9yTWVzc2FnZSk7CiAK
LSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlk
KSwgc291cmNlVHlwZSwgU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hT
YWx0KSwgaWQsICp0aGlzKSk7CisgICAgYXV0byB0eXBlID0gZGV2aWNlLnR5cGUoKSA9PSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lID8gV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpWaWRlbzsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmluZzo6
bnVtYmVyKGlkKSwgdHlwZSwgU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKSB9LCBXVEZNb3ZlKGhh
c2hTYWx0KSwgaWQsICp0aGlzKSk7CiAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNl
dHRpbmdzKSk7CiAgICAgbV9zb3VyY2VzLnNldChpZCwgc291cmNlLmNvcHlSZWYoKSk7CiAgICAg
cmV0dXJuIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CkBA
IC0yMzksNiArMjg2LDE5IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZSh1aW50NjRfdCBpZCwgTWVkaWFUaW1lIHRpbWUsCiAgICAgc291cmNlLmF1
ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcyk7CiB9CiAKKyNpZiBIQVZF
KElPU1VSRkFDRSkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJlbW90ZVZpZGVvU2Ft
cGxlQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBSZW1vdGVWaWRlb1NhbXBsZSYmIHNhbXBsZSkKK3sK
KyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2VzLmdldChp
ZCktPnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdURk1vdmUoc2FtcGxlKSk7Cit9CisjZWxz
ZQorTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUodWludDY0X3QsIFJlbW90ZVZpZGVvU2FtcGxlJiYp
Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKKwogdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogewogICAg
IG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpT
dGFydFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggMzc2MzJkNTll
NmVmOGNhYWM4MDY5MTNlNTAzNWRiY2E0YzhkNDU3OS4uOGVhYjAxNzBkMDdlODUzZWY5NmQyNjgz
NzYxOWQ4OWQxMDk3YWJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTM2LDYgKzM2LDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xh
c3MgUmVtb3RlVmlkZW9TYW1wbGU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDMsNyAr
NDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIENyb3NzUHJvY2Vzc1JlYWx0aW1lQXVk
aW9Tb3VyY2U7CiBjbGFzcyBXZWJQcm9jZXNzOwogCi1jbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJl
Y2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSwgcHVibGljIFdlYkNv
cmU6OlZpZGVvQ2FwdHVyZUZhY3RvcnkgeworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIg
OiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciwgcHVibGljIFdlYkNvcmU6OkF1ZGlvQ2FwdHVyZUZhY3RvcnksIHB1YmxpYyBXZWJDb3JlOjpW
aWRlb0NhcHR1cmVGYWN0b3J5LCBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVGYWN0b3J5
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQcm9j
ZXNzJik7CiAgICAgflVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCk7CkBAIC01NSw5ICs1NiwxMCBA
QCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJikgZmluYWw7CiAKICAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
IGZhY3RvcmllcwotICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlv
Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3Ry
YWludHMpOyB9Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZSwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJh
aW50cyk7IH0KLSAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYXB0dXJl
U291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyopOworICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmlu
YWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpIGZpbmFsIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOyB9CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSYgZGV2aWNlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykgZmluYWwgIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCB7IH0sIGNv
bnN0cmFpbnRzKTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUNh
cHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CkBAIC03MCw2ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdG9y
YWdlQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25z
dCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZy
YW1lcyk7CiAgICAgdm9pZCByaW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2VkKHVpbnQ2NF90IGlk
LCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CiAgICAgdm9pZCBhdWRp
b1NhbXBsZXNBdmFpbGFibGUodWludDY0X3QgaWQsIE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2
b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpSZW1v
dGVWaWRlb1NhbXBsZSYmKTsKIAogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90
KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKQEAgLTg1LDYgKzg4LDYg
QEAgcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9OwogCi19Cit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMu
aW4KaW5kZXggZWI1NzQwNTYxNzM1MmU4ODEzM2JiODUwZjE1N2YzNGMzYmYyM2VmZC4uYTA2MmRj
MzQ1NjcxYjI5NmU1MmY1ODNhNzExNmY3YWU3YzNlZmNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtMzIsNiArMzIsNyBAQCBtZXNzYWdlcyAtPiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciB7CiAgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBN
ZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJh
bWUsIHVpbnQ2NF90IGVuZEZyYW1lKQogICAgIEFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQodWlu
dDY0X3QgaWQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykK
ICAgICBBcHBseUNvbnN0cmFpbnRzRmFpbGVkKHVpbnQ2NF90IGlkLCBTdHJpbmcgZmFpbGVkQ29u
c3RyYWludCwgU3RyaW5nIG1lc3NhZ2UpCisgICAgUmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUo
dWludDY0X3QgaWQsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlIHNhbXBsZSkKIH0KIAogI2Vu
ZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352740</attachid>
            <date>2018-10-18 15:26:50 -0700</date>
            <delta_ts>2018-10-18 20:48:46 -0700</delta_ts>
            <desc>Rebased patch for landing</desc>
            <filename>bug-190728-20181018152649.patch</filename>
            <type>text/plain</type>
            <size>62146</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTAxZTliYTY2MzNkYzFm
NDhkYTE4N2JmY2QzYjMyMWQ5MDIxNDVkMC4uMzM4NzBjYjkxOGIyNTE3NmMwYjcyZGI4ZjNlMzNl
MzYwNTkxODViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE4LTEwLTE4ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gQWxsb3cgcG9ydHMgdG8gb3B0aW9uYWxseSBkbyBzY3JlZW4gY2FwdHVyZSBpbiB0aGUgVUkg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwNzI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTM3NjgyND4KKworICAgICAgICBSZXZp
ZXdlZCBieSBKZXIgTm9ibGUgYW5kIFRpbSBIb3J0b24uCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogU291cmNlcy50eHQ6IEFk
ZCBSZW1vdGVWaWRlb1NhbXBsZS5jcHAuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL01lZGlhU2FtcGxlLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZTo6dmlkZW9QaXhlbEZvcm1hdCBjb25zdCk6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6On5SZW1vdGVWaWRlb1Nh
bXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpSZW1vdGVWaWRlb1NhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6c3VyZmFjZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6dGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZTo6dmlkZW9Gb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3RlVmlkZW9TYW1wbGU6OnNpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVW
aWRlb1NhbXBsZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKTogQ2FsbCBvYnNl
cnZlcnMuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNlOjpkaXNwYXRjaE1l
ZGlhU2FtcGxlVG9PYnNlcnZlcnMpOiBEaXNwYXRjaCByZW1vdGUgc2FtcGxlcyB3aXRob3V0Cisg
ICAgICAgIHJlc2l6aW5nLCByZXNpemUgbG9jYWwgc2FtcGxlcyBpZiBuZWNlc3NhcnkuCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcHR1cmVPdXRwdXREaWRP
dXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbik6IERvbid0IHJlc2l6ZQorICAgICAgICBz
YW1wbGVzLCBpdCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhc2UgY2xhc3MgaWYgbmVjZXNzYXJ5Lgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
ZW1pdEZyYW1lKTogRG9uJ3QgcmVzaXplIHNhbXBsZXMgd2hlbiBydW5uaW5nIGluIHRoZSBVSQor
ICAgICAgICBwcm9jZXNzLCBpdCB3aWxsIGJlIGRvbmUgaW4gdGhlIHdlYiBwcm9jZXNzLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZUNvY29hLmNwcDogUmVtb3ZlIHVubmVlZGVkIGluY2x1ZGUuCisKIDIwMTgtMTAtMTggIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IE1lZGlhS2V5RW5jcnlwdGlvblNjaGVtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwYWU5OTg5MWViNTk0MTAxNGU5
NjdkMTg1ZGVmMTVhYzdkODk1MjgzLi4wZTg3OWZmMzhlNWExNGZjNWYzZThlNWUwYzE5Y2M1M2Ri
OTE2YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE4LTEwLTE4ICBFcmljIENhcmxz
b24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gQWxs
b3cgcG9ydHMgdG8gb3B0aW9uYWxseSBkbyBzY3JlZW4gY2FwdHVyZSBpbiB0aGUgVUkgcHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNzI4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTM3NjgyND4KKworICAgICAgICBSZXZpZXdlZCBi
eSBKZXIgTm9ibGUgYW5kIFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6IEVuY29kZSBzaG91bGRDYXB0dXJlRGlzcGxh
eUluVUlQcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUpOiBEZWNvZGUgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2Vzcy4KKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAg
ICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOiBDb3B5IHNob3VsZENhcHR1
cmVEaXNwbGF5SW5VSVByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKTogUmVtb3ZlCisgICAg
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgcGFyYW1ldGVyLCBDYXB0dXJlRGV2aWNlIGhh
cyB0aGUgc2FtZSBpbmZvcm1hdGlvbi4gRGVhbCB3aXRoIGRpc3BsYXkKKyAgICAgICAgY2FwdHVy
ZSAiZGV2aWNlcyIuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjppbml0aWFsaXpl
TmV3V2ViUHJvY2Vzcyk6IENvcHkgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2Vzcy4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpTb3VyY2Up
OiBPbmx5IGFsbG9jYXRlIGEgcmluZyBidWZmZXIgZm9yIEF1ZGlvIHNvdXJjZXMuCisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6On5Tb3VyY2UpOiBTYW1l
IGZvciBkZWFsbG9jYXRlLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6U291cmNlOjpzdG9yYWdlKTogbV9yaW5nQnVmZmVyIGlzIGEgcG9pbnRlci4KKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0U3RvcmFnZSk6IERp
dHRvLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpz
ZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnJlbW90
ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKTogQ3JlYXRlIGEgCisgICAgICAgIFBpeGVsQnVmZmVyLWJh
Y2tlZCBtZWRpYSBzYW1wbGUgYW5kIGNhbGwgdmlkZW9TYW1wbGVBdmFpbGFibGUuCisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIpOiBDbGVhciB0aGUgYXVkaW8gYW5kIGRpc3BsYXkgY2FwdHVyZQorICAgICAgICBmYWN0b3J5
IG92ZXJyaWRlcy4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6Omlu
aXRpYWxpemUpOiBTZXQgdGhlIGF1ZGlvIGFuZCBkaXNwbGF5IGNhcHR1cmUgZmFjdG9yeSBvdmVy
cmlkZXMuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVD
YXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjoKKwogMjAxOC0xMC0xOCAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtQU09OXSBTdXNwZW5kZWRQYWdl
cyBkbyBub3QgcmVwb3J0IG1lYW5pbmdmdWwgZG9tYWlucyBpbiBBY3Rpdml0eSBNb25pdG9yCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDhjMWEzYjdmOTAzNWI4ZTZiMGNhODQ4MWY2MzRkOTc5Y2QxZjRmZDgu
LmU2MjZmZmI2YzcyN2MxMjA0N2VmYjFjM2Q3MGExZGU4ZDc4ODY3NjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC0xNjY4LDYgKzE2NjgsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNw
cAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtVGltZVJhbmdlcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5jcHAKK3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUm91bmRl
ZFJlY3QuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIyM2NhMzNjNWJlZmFkODAzM2RlZDY1MDhm
MzQ0YTkyYTJkYTQwZmIuLjM3Yjk4ODc4NzliNjYzZmU1MDUyM2Y1OWRjZDE3ZGIwMTJmOThhYjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTExNCw2ICsxMTQsNyBAQAogCQkwNzM3OTRGQTE5RjU4NjRFMDBFNUEwNDUgLyogUlRD
RGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDczNzk0RjQxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ0RhdGFDaGFubmVs
SGFuZGxlck1vY2suaCAqLzsgfTsKIAkJMDczNzk0RkUxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05v
dGlmaWVyc01vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggKi87IH07
CiAJCTA3Mzk0RUNBMUJBQjJDRDcwMEJFOTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM5NEVDOTFCQUIy
Q0Q3MDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhGMiAv
KiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcz
Qjg3NjcxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAw
NzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oICovOyB9OwogCQkwNzNCODc2OTFFNDM4
NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyog
QXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IH07CiAJCTA3M0JEQzA1MUY2ODQzNjEwMEVFMzRF
RCAvKiBUcmFja1ByaXZhdGVCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBUcmFja1ByaXZhdGVC
YXNlLmNwcCAqLzsgfTsKQEAgLTYxOCw3ICs2MTksNyBAQAogCQkxQUZFMTE5QTBDQkZGQ0M0MDAz
MDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZFMTE5ODBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxS
ZXN1bHRTZXRSb3dMaXN0LmggKi87IH07CiAJCTFBRkZDNDU4MUQ1RTg2NTUwMDI2N0E2NiAvKiBX
ZWJHTEJsYWNrbGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUFGRkM0NTExRDVFN0VDNzAwMjY3QTY2IC8qIFdlYkdMQmxhY2tsaXN0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFGRkM0NTkxRDVF
ODY2MTAwMjY3QTY2IC8qIFBsdWdpbkJsYWNrbGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRkM0NEYxRDVFN0VDNzAwMjY3QTY2IC8qIFBsdWdp
bkJsYWNrbGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTFCMTI0RDhEMUQzODBCNzAwMEVDREZCMCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFCMTI0RDhDMUQz
ODBCNzAwMEVDREZCMCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCAqLzsgfTsKKwkJMUIxMjREOEQx
RDM4MEI3MDAwRUNERkIwIC8qIE1lZGlhU2FtcGxlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUIxMjREOEMxRDM4MEI3MDAwRUNERkIwIC8q
IE1lZGlhU2FtcGxlQVZGT2JqQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTFCMTI0RDhGMUQzODBCQjYwMEVDREZCMCAvKiBNZWRpYVNhbXBsZUFW
Rk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QjEyNEQ4RTFEMzgwQkI2MDBFQ0RGQjAgLyogTWVkaWFTYW1wbGVBVkZPYmpDLm1tICovOyB9Owog
CQkxQkY5REIzQzFEMzk3M0FEMDAyNkFFQjcgLyogTWVkaWFTYW1wbGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjQxRUM3MTgxRUQ2MDEwMEVFNEM0
MSAvKiBNZWRpYVNhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTFDMDEwNzAxMTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMDEw
NkZGMTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuaCAqLzsgfTsKQEAgLTUz
NjIsNiArNTM2Myw4IEBACiAJCTA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmll
cnNNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ05vdGlmaWVyc01v
Y2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczOTRFQzcxQkFCMkNDRDAwQkU5
OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3Mzk0RUM5MUJBQjJDRDcwMEJFOTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhRGV2aWNlc1JlcXVlc3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczQTE1NTEyMTc3QTM5ODAwRUEwOEYy
IC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVZpZGVv
U2FtcGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczQTE1NTMyMTc3QTM5
QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVZp
ZGVvU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzU2MUU0MERD
RTUwMDcxQzBFQyAvKiBBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDczQjg3NTcxRTQwRENGRDAwNzFDMEVDIC8qIENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzNCODc1ODFFNDBEQ0ZEMDA3MUMwRUMgLyogQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk3ODYsNyArMTk3ODksOSBAQAogCQkJ
CUU0MjA1MDE2MjE0MTkwMUIwMDY2RUYzQiAvKiBQcm9jZXNzV2FybWluZy5jcHAgKi8sCiAJCQkJ
RTQyMDUwMTQyMTQxOTAxQTAwNjZFRjNCIC8qIFByb2Nlc3NXYXJtaW5nLmggKi8sCiAJCQkJQ0Q5
QTg3RjkyMTVENkNGMzAwNkYxN0I1IC8qIFF1aXJrcy5jcHAgKi8sCisJCQkJQ0Q5QTg3RjIyMTVE
NDNBNjAwNkYxN0I1IC8qIFF1aXJrcy5jcHAgKi8sCiAJCQkJQ0Q5QTg3RkIyMTVENkNGMzAwNkYx
N0I1IC8qIFF1aXJrcy5oICovLAorCQkJCUNEOUE4N0YxMjE1RDQzQTYwMDZGMTdCNSAvKiBRdWly
a3MuaCAqLywKIAkJCQk0NkI5NTE4RDIwN0Q2MzJBMDBBN0QyREQgLyogUmVtb3RlRE9NV2luZG93
LmNwcCAqLywKIAkJCQk0NkI5NTE4RTIwN0Q2MzJBMDBBN0QyREQgLyogUmVtb3RlRE9NV2luZG93
LmggKi8sCiAJCQkJNDZCQ0JCQzMyMDg1MDBBNzAwNzEwNjM4IC8qIFJlbW90ZURPTVdpbmRvdy5p
ZGwgKi8sCkBAIC0xOTc5OSw4ICsxOTgwNCw2IEBACiAJCQkJQTUwNzFFODQxQzU2RDA3OTAwOTk1
MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWQuaCAqLywKIAkJCQk3QzUyMjI5QjFFMURBRTQ3MDAy
Q0I4RjcgLyogUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgKi8sCiAJCQkJN0M1MjIyOUMxRTFE
QUU0NzAwMkNCOEY3IC8qIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCAqLywKLQkJCQlDRDlBODdG
MjIxNUQ0M0E2MDA2RjE3QjUgLyogUXVpcmtzLmNwcCAqLywKLQkJCQlDRDlBODdGMTIxNUQ0M0E2
MDA2RjE3QjUgLyogUXVpcmtzLmggKi8sCiAJCQkJQkNFQzAxQkEwQzI3NERBQzAwOUY0RUM5IC8q
IFNjcmVlbi5jcHAgKi8sCiAJCQkJQkNFQzAxQkIwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5o
ICovLAogCQkJCUJDRUMwMUJDMEMyNzREQUMwMDlGNEVDOSAvKiBTY3JlZW4uaWRsICovLApAQCAt
MjQxMDksNiArMjQxMTIsOCBAQAogCQkJCTA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0
Zm9ybVRpbWVSYW5nZXMuaCAqLywKIAkJCQlCQ0FCNDE3RjEzRTM1NkU4MDBEOEFBRjMgLyogUmVn
aW9uLmNwcCAqLywKIAkJCQlCQ0FCNDE4MDEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmggKi8s
CisJCQkJMDczQTE1NTEyMTc3QTM5ODAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAq
LywKKwkJCQkwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAq
LywKIAkJCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovLAog
CQkJCUE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovLAogCQkJCTBG
M0RENDREMTJGNUVBMUIwMDBEOTE5MCAvKiBTaGFkb3dCbHVyLmNwcCAqLywKQEAgLTI1MTQ0LDYg
KzI1MTQ5LDggQEAKIAkJCQlDRDk0QTVDOTFGNzFDQTlEMDBGNTI1QzUgLyogQ0RNQ2xpZW50Lmgg
Ki8sCiAJCQkJQ0QwNjNGODAxRTIzRkE4OTAwODEyQkUzIC8qIEluaXREYXRhUmVnaXN0cnkuY3Bw
ICovLAogCQkJCUNEMDYzRjgxMUUyM0ZBODkwMDgxMkJFMyAvKiBJbml0RGF0YVJlZ2lzdHJ5Lmgg
Ki8sCisJCQkJQ0RGNzU2OUQyMTVDMjQ0NDAwRUZDQjUwIC8qIE1lZGlhS2V5RW5jcnlwdGlvblNj
aGVtZS5oICovLAorCQkJCUNERjc1NjlFMjE1QzI4NUUwMEVGQ0I1MCAvKiBNZWRpYUtleUVuY3J5
cHRpb25TY2hlbWUuaWRsICovLAogCQkJCTJEOUJGNzJGMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRp
YUtleU1lc3NhZ2VFdmVudC5jcHAgKi8sCiAJCQkJMkQ5QkY3MzAxREJGREMwRjAwN0E3RDk5IC8q
IE1lZGlhS2V5TWVzc2FnZUV2ZW50LmggKi8sCiAJCQkJMkQ5QkY2RjUxREJGQjcxRjAwN0E3RDk5
IC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmlkbCAqLywKQEAgLTI1MTUyLDggKzI1MTU5LDYgQEAK
IAkJCQkyRDlCRjczMzFEQkZEQzBGMDA3QTdEOTkgLyogTWVkaWFLZXlzLmNwcCAqLywKIAkJCQky
RDlCRjczNDFEQkZEQzBGMDA3QTdEOTkgLyogTWVkaWFLZXlzLmggKi8sCiAJCQkJMkQ5QkY2RjYx
REJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5cy5pZGwgKi8sCi0JCQkJQ0RGNzU2OUQyMTVDMjQ0
NDAwRUZDQjUwIC8qIE1lZGlhS2V5RW5jcnlwdGlvblNjaGVtZS5oICovLAotCQkJCUNERjc1NjlF
MjE1QzI4NUUwMEVGQ0I1MCAvKiBNZWRpYUtleUVuY3J5cHRpb25TY2hlbWUuaWRsICovLAogCQkJ
CTJEOUJGNzM1MURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVNlc3Npb24uY3BwICovLAogCQkJ
CTJEOUJGNzM2MURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVNlc3Npb24uaCAqLywKIAkJCQky
RDlCRjZGNzFEQkZCNzFGMDA3QTdEOTkgLyogTWVkaWFLZXlTZXNzaW9uLmlkbCAqLywKQEAgLTI5
MjczLDYgKzI5Mjc4LDcgQEAKIAkJCQlGRDIzQTEyNjEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRp
YUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEOUJGNzEyMURC
RkQ5MTQwMDdBN0Q5OSAvKiBKU01lZGlhRW5jcnlwdGVkRXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0NDYxNDE5MENENjgyNjkwMEZBREE3NSAvKiBKU01lZGlhRXJyb3IuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNERjc1NkEzMjE1QzI5RTkwMEVGQ0I1MCAvKiBKU01lZGlhS2V5RW5jcnlwdGlv
blNjaGVtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5QkY3MjgxREJGREIwRDAwN0E3RDk5IC8q
IEpTTWVkaWFLZXlNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEOUJGNzI5MURC
RkRCMTAwMDdBN0Q5OSAvKiBKU01lZGlhS2V5cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5QkY3
MkExREJGREIxMzAwN0E3RDk5IC8qIEpTTWVkaWFLZXlTZXNzaW9uLmggaW4gSGVhZGVycyAqLywK
QEAgLTI5OTU1LDcgKzI5OTYxLDYgQEAKIAkJCQk1MTA1OEFFMDFENjdDMjI5MDA5QTUzOEMgLyog
TW9ja0dhbWVwYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMDU4QUUyMUQ2N0MyMjkwMDlBNTM4
QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNDQ0Q0QTIw
REUwMzRGMDA2NUEyMUEgLyogTW9ja01lZGlhRGV2aWNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlD
REY3NTZBMzIxNUMyOUU5MDBFRkNCNTAgLyogSlNNZWRpYUtleUVuY3J5cHRpb25TY2hlbWUuaCBp
biBIZWFkZXJzICovLAogCQkJCUNERjJCMDEzMTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrTWVkaWFQ
bGF5ZXJNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGMkIwMTUxODIwNTQwNjAw
RjJCNDI0IC8qIE1vY2tNZWRpYVNvdXJjZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUEx
QkI4NUE5MjE1OUIwMkMwMDY3RTA3RCAvKiBNb2NrUGF5bWVudEVycm9yLmggaW4gSGVhZGVycyAq
LywKQEAgLTMwMzExLDYgKzMwMzE2LDcgQEAKIAkJCQlDRDhBQ0E4OTFEMjM3QUEyMDBFQ0M1OUUg
LyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI5NTE5
OTIwN0Q2MzREMDBBN0QyREQgLyogUmVtb3RlRE9NV2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0NkI5NTE5QTIwN0Q2MzU0MDBBN0QyREQgLyogUmVtb3RlRnJhbWUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRDA2QzBEOEYwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1h
dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTA1MDk5RTY0OTIwMDU2RTU4MSAv
KiBSZW1vdmVOb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMDcwOTlFNjQ5
MjAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCmluZGV4IDA1MGQ5Mzg5
ZDE4ZTEwZjVkOTdiYTQzZDg2MGMyYTEzNTIwNjYyZmUuLjc1MTY2NTYyMWFjZDI1YTJkZmIyZWEy
OWExYzkwNjVlZTIyOTMxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
ZGlhU2FtcGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaApA
QCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB2aXJ0dWFsIFZpZGVvUm90YXRp
b24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IHsgcmV0dXJuIFZpZGVvUm90YXRpb246Ok5vbmU7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgdmlkZW9NaXJyb3JlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgeyByZXR1cm4g
MDsgfQogCiAgICAgYm9vbCBpc1N5bmMoKSBjb25zdCB7IHJldHVybiBmbGFncygpICYgSXNTeW5j
OyB9CiAgICAgYm9vbCBpc05vbkRpc3BsYXlpbmcoKSBjb25zdCB7IHJldHVybiBmbGFncygpICYg
SXNOb25EaXNwbGF5aW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRiZGNhOWJmZTQ4NjM5
ZWM2ODA0NmRkNTAxMTY0MzgyZjViMWFhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcApAQCAtMCwwICsxLDgw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvU2FtcGxlLmgiCisKKyNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHRDRy5oIgorI2luY2x1ZGUgIklPU3VyZmFjZS5oIgorI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJSZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCisKKyNpZiBI
QVZFKElPU1VSRkFDRSkKKyNpbmNsdWRlICJNZWRpYVNhbXBsZUFWRk9iamMuaCIKKyNlbmRpZgor
CisjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKKworI2lmIEhBVkUoSU9TVVJGQUNFKQorc3RkOjp1
bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKE1l
ZGlhU2FtcGxlJiYgc2FtcGxlKQoreworICAgIEFTU0VSVChzYW1wbGUucGxhdGZvcm1TYW1wbGUo
KS50eXBlID09IFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOworCisgICAgYXV0
byBpbWFnZUJ1ZmZlciA9IENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRm
b3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICBpZiAoIWltYWdlQnVmZmVy
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gc3VyZmFjZSA9IENWUGl4ZWxC
dWZmZXJHZXRJT1N1cmZhY2UoaW1hZ2VCdWZmZXIpOworICAgIGlmICghc3VyZmFjZSkgeworICAg
ICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGU6IENWUGl4
ZWxCdWZmZXJHZXRJT1N1cmZhY2UgcmV0dXJuZWQgbnVsbHB0ciIpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVv
U2FtcGxlPihuZXcgUmVtb3RlVmlkZW9TYW1wbGUoc3VyZmFjZSwgc1JHQkNvbG9yU3BhY2VSZWYo
KSwgc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKSwgc2FtcGxlLnZpZGVvUm90YXRpb24oKSwgc2Ft
cGxlLnZpZGVvTWlycm9yZWQoKSkpOworfQorCitSZW1vdGVWaWRlb1NhbXBsZTo6UmVtb3RlVmlk
ZW9TYW1wbGUoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNl
LCBNZWRpYVRpbWUmJiB0aW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbiwg
Ym9vbCBtaXJyb3JlZCkKKyAgICA6IG1faW9TdXJmYWNlKFdlYkNvcmU6OklPU3VyZmFjZTo6Y3Jl
YXRlRnJvbVN1cmZhY2Uoc3VyZmFjZSwgY29sb3JTcGFjZSkpCisgICAgLCBtX3JvdGF0aW9uKHJv
dGF0aW9uKQorICAgICwgbV90aW1lKFdURk1vdmUodGltZSkpCisgICAgLCBtX3ZpZGVvRm9ybWF0
KElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2UpKQorICAgICwgbV9zaXplKEludFNpemUo
SU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSksIElPU3VyZmFjZUdldEhlaWdodChzdXJmYWNlKSkp
CisgICAgLCBtX21pcnJvcmVkKG1pcnJvcmVkKQoreworfQorCitJT1N1cmZhY2VSZWYgUmVtb3Rl
VmlkZW9TYW1wbGU6OnN1cmZhY2UoKQoreworICAgIGlmICghbV9pb1N1cmZhY2UgJiYgbV9zZW5k
UmlnaHQpCisgICAgICAgIG1faW9TdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVG
cm9tU2VuZFJpZ2h0KFdURk1vdmUobV9zZW5kUmlnaHQpLCBzUkdCQ29sb3JTcGFjZVJlZigpKTsK
KworICAgIHJldHVybiBtX2lvU3VyZmFjZSA/IG1faW9TdXJmYWNlLT5zdXJmYWNlKCkgOiBudWxs
cHRyOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2YmNlYWQ2YTQ3MjM3Yzhk
M2FjYzM4ZjYwOWNmMWE4MGRhYjgzMGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCkBAIC0wLDAgKzEsMTIwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvU2Ft
cGxlLmgiCisjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KKyNpbmNsdWRlIDx3dGYvTWVk
aWFUaW1lLmg+CisKKyNpZiBIQVZFKElPU1VSRkFDRSkKKyNpbmNsdWRlICJJT1N1cmZhY2UuaCIK
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbW90ZVZpZGVvU2FtcGxl
IHsKK3B1YmxpYzoKKyAgICBSZW1vdGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKKyAgICB+UmVt
b3RlVmlkZW9TYW1wbGUoKSA9IGRlZmF1bHQ7CisKKyNpZiBIQVZFKElPU1VSRkFDRSkKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBj
cmVhdGUoTWVkaWFTYW1wbGUmJik7CisgICAgV0VCQ09SRV9FWFBPUlQgSU9TdXJmYWNlUmVmIHN1
cmZhY2UoKTsKKyNlbmRpZgorCisgICAgY29uc3QgTWVkaWFUaW1lJiB0aW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV90aW1lOyB9CisgICAgdWludDMyX3QgdmlkZW9Gb3JtYXQoKSBjb25zdCB7IHJldHVy
biBtX3ZpZGVvRm9ybWF0OyB9CisgICAgSW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9z
aXplOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyNpZiBIQVZFKElPU1VSRkFDRSkKKyAgICAgICAgaWYg
KG1faW9TdXJmYWNlKQorICAgICAgICAgICAgZW5jb2RlciA8PCBtX2lvU3VyZmFjZS0+Y3JlYXRl
U2VuZFJpZ2h0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVuY29kZXIgPDwgV1RGOjpN
YWNoU2VuZFJpZ2h0KCk7CisjZW5kaWYKKyAgICAgICAgZW5jb2RlciA8PCBtX3JvdGF0aW9uOwor
ICAgICAgICBlbmNvZGVyIDw8IG1fdGltZTsKKyAgICAgICAgZW5jb2RlciA8PCBtX3ZpZGVvRm9y
bWF0OworICAgICAgICBlbmNvZGVyIDw8IG1fc2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBtX21p
cnJvcmVkOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29s
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZW1vdGVWaWRlb1NhbXBsZSYgc2FtcGxlKQorICAg
IHsKKyNpZiBIQVZFKElPU1VSRkFDRSkKKyAgICAgICAgTWFjaFNlbmRSaWdodCBzZW5kUmlnaHQ7
CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2VuZFJpZ2h0KSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgc2FtcGxlLm1fc2VuZFJpZ2h0ID0gV1RGTW92ZShzZW5kUmln
aHQpOworI2VuZGlmCisgICAgICAgIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9u
OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJvdGF0aW9uKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgc2FtcGxlLm1fcm90YXRpb24gPSByb3RhdGlvbjsKKworICAg
ICAgICBNZWRpYVRpbWUgdGltZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0aW1lKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc2FtcGxlLm1fdGltZSA9IFdURk1v
dmUodGltZSk7CisKKyAgICAgICAgdWludDMyX3QgZm9ybWF0OworICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGZvcm1hdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHNh
bXBsZS5tX3ZpZGVvRm9ybWF0ID0gZm9ybWF0OworCisgICAgICAgIEludFNpemUgc2l6ZTsKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgc2FtcGxlLm1fc2l6ZSA9IFdURk1vdmUoc2l6ZSk7CisKKyAgICAgICAgYm9v
bCBtaXJyb3JlZDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtaXJyb3JlZCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHNhbXBsZS5tX21pcnJvcmVkID0gbWlycm9y
ZWQ7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCitwcml2YXRlOgorCisjaWYgSEFW
RShJT1NVUkZBQ0UpCisgICAgUmVtb3RlVmlkZW9TYW1wbGUoSU9TdXJmYWNlUmVmLCBDR0NvbG9y
U3BhY2VSZWYsIE1lZGlhVGltZSYmLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiwgYm9vbCk7
CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBtX2lvU3VyZmFjZTsK
KyAgICBXVEY6Ok1hY2hTZW5kUmlnaHQgbV9zZW5kUmlnaHQ7CisjZW5kaWYKKyAgICBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbiBtX3JvdGF0aW9uIHsgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246Ok5vbmUgfTsKKyAgICBNZWRpYVRpbWUgbV90aW1lOworICAgIHVpbnQzMl90IG1fdmlkZW9G
b3JtYXQgeyAwIH07CisgICAgSW50U2l6ZSBtX3NpemU7CisgICAgYm9vbCBtX21pcnJvcmVkIHsg
ZmFsc2UgfTsKK307CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFW
Rk9iakMuaAppbmRleCAwOTIzODgzZTViYzdlNDQ2NGIxMTZiOTJiYmZkMDhhNmUyNjNhNzJmLi42
MGVlOTZmNDAyNDMzNjIyZjU4NTQxMjZmZmIyMzk1MTA2OThjZTMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBs
ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6
CiAKICAgICBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3JvdGF0aW9uOyB9CiAgICAgYm9vbCB2aWRlb01pcnJvcmVkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9taXJyb3JlZDsgfQotICAgIHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQo
KSBjb25zdDsKKyAgICB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgZmluYWw7CiAK
ICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3Nh
bXBsZS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKaW5kZXggNWMzMjMxNDEwM2Y1
MzM2ZGIyMGZhN2NiOTNjYjdkOWUzMWI0Yzc1YS4uNTY3MmI4NTYwMDJiZTEyOWRlYmQyMWM5YWRl
NjNkNTZkNmFiMTYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaApAQCAtNTIsNyArNTIsNyBA
QCBwdWJsaWM6CiAgICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBjcmVhdGVNZWRpYVNhbXBsZShDTVNh
bXBsZUJ1ZmZlclJlZiwgY29uc3QgSW50U2l6ZSYsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
ID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIGJvb2wgbWlycm9yZWQgPSBmYWxz
ZSk7CiAKICNpZiBIQVZFKElPU1VSRkFDRSkgJiYgIVBMQVRGT1JNKElPU01BQykKLSAgICBSZWZQ
dHI8TWVkaWFTYW1wbGU+IGNyZWF0ZU1lZGlhU2FtcGxlKElPU3VyZmFjZVJlZiwgY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgSW50U2l6ZSYsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uID0gTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIGJvb2wgbWlycm9yZWQgPSBmYWxzZSk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPE1lZGlhU2FtcGxlPiBjcmVhdGVNZWRpYVNhbXBsZShJ
T1N1cmZhY2VSZWYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IEludFNpemUmLCBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lLCBib29s
IG1pcnJvcmVkID0gZmFsc2UpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5tbQppbmRleCA5NGIxOWNkNDM0N2ZmYTc4MjE1MDA4Njg5NWExZTcwYTZiMTQ5NzAwLi5k
YmQ1OGIzMmVmNjg0MjQ2MDQxMTEyZDM2MWJjNjZmYzJmZDE5ZWFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQubW0KQEAgLTE0OCw3ICsxNDgsNyBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJS
ZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQog
ICAgIGF1dG8gZGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9u
KHNvdXJjZUJ1ZmZlcik7CiAgICAgYXV0byBzb3VyY2VTaXplID0gRmxvYXRTaXplKENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZGVzY3JpcHRpb24sIHRy
dWUsIHRydWUpKTsKICAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1
ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpKTsKLSAg
ICBpZiAoc2l6ZSA9PSByb3VuZGVkSW50U2l6ZShzb3VyY2VTaXplKSAmJiBtX3BpeGVsRm9ybWF0
ID09IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpKQorICAgIGlm
IChzaXplID09IGV4cGFuZGVkSW50U2l6ZShzb3VyY2VTaXplKSAmJiBtX3BpeGVsRm9ybWF0ID09
IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpKQogICAgICAgICBy
ZXR1cm4gcmV0YWluUHRyKHNvdXJjZUJ1ZmZlcik7CiAKICAgICBpZiAoIXNldFNpemUoc2l6ZSkp
CkBAIC0zNDAsNyArMzQwLDcgQEAgUmVmUHRyPE1lZGlhU2FtcGxlPiBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUOjpjb252ZXJ0TWVkaWFTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXAKIHsKICAgICBBU1NF
UlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1w
bGVCdWZmZXJUeXBlKTsKIAotICAgIGlmIChzaXplID09IHJvdW5kZWRJbnRTaXplKHNhbXBsZS5w
cmVzZW50YXRpb25TaXplKCkpKQorICAgIGlmIChzaXplID09IGV4cGFuZGVkSW50U2l6ZShzYW1w
bGUucHJlc2VudGF0aW9uU2l6ZSgpKSkKICAgICAgICAgcmV0dXJuICZzYW1wbGU7CiAKICAgICBh
dXRvIHJlc2l6ZWRCdWZmZXIgPSBjb252ZXJ0Q01TYW1wbGVCdWZmZXIoc2FtcGxlLnBsYXRmb3Jt
U2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCBzaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKaW5kZXggZWM4YjViOWRkZTBjY2Q3NTE0MTRiZWE0MjJjNWM2NWU5YjIzOGIxZi4uZjJkZDQ2
YzdkMDIyYjA0ZDNjOTY0YmY2OGUxNzczN2YyN2M4Y2E3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKQEAgLTE1OCw2ICsxNTgsMTMgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1Nh
bXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCiAgICAgfSk7CiB9CiAKK3Zv
aWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVtb3Rl
VmlkZW9TYW1wbGUmJiBzYW1wbGUpCit7CisgICAgZm9yRWFjaE9ic2VydmVyKFsmXShhdXRvJiBv
YnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5yZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShz
YW1wbGUpOworICAgIH0pOworfQorCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9E
YXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9u
LCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7CiAgICAgZm9yRWFjaE9ic2VydmVyKFsmXShhdXRv
JiBvYnNlcnZlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IGE5M2RlMzM4YzQxYTU3MWNiMTA1
ZDFmNDM2ZDUyYzVlNTkzODBiNjEuLjdhYTg2MGM4NTkyZmQ4YTA0ZTg3YjAyMjg0MjA4YjJhMTAw
NGMwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTYxLDYgKzYxLDcgQEAgY2xhc3MgTWVkaWFT
dHJlYW1Qcml2YXRlOwogY2xhc3MgT3JpZW50YXRpb25Ob3RpZmllcjsKIGNsYXNzIFBsYXRmb3Jt
QXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOworY2xhc3MgUmVt
b3RlVmlkZW9TYW1wbGU7CiAKIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKIApAQCAtODEs
NiArODIsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gQ2FsbGVkIG9uIHRoZSBtYWluIHRocmVh
ZC4KICAgICAgICAgdmlydHVhbCB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxl
JikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShS
ZW1vdGVWaWRlb1NhbXBsZSYpIHsgfQogCiAgICAgICAgIC8vIE1heSBiZSBjYWxsZWQgb24gYSBi
YWNrZ3JvdW5kIHRocmVhZC4KICAgICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWls
YWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QgLypudW1iZXJPZkZyYW1lcyovKSB7IH0KQEAg
LTE2NSw2ICsxNjcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzSW5jb21pbmdBdWRp
b1NvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW5j
b21pbmdWaWRlb1NvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2b2lkIHNl
dElzUmVtb3RlKGJvb2wgaXNSZW1vdGUpIHsgbV9pc1JlbW90ZSA9IGlzUmVtb3RlOyB9CisgICAg
Ym9vbCBpc1JlbW90ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNSZW1vdGU7IH0KKwogICAgIC8vIFRl
c3Rpbmcgb25seQogICAgIHZpcnR1YWwgdm9pZCBkZWxheVNhbXBsZXMoU2Vjb25kcykgeyB9Owog
CkBAIC0xOTYsMTMgKzIwMSwxMyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHZpZGVvU2FtcGxl
QXZhaWxhYmxlKE1lZGlhU2FtcGxlJik7CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUo
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZh
aWxhYmxlKFJlbW90ZVZpZGVvU2FtcGxlJiYpOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcFByb2R1Y2lu
Z0RhdGEoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0dGluZ3NEaWRDaGFuZ2UoT3B0aW9uU2V0
PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZz4pIHsgfQogCi0KICAgICB2b2lkIGZv
ckVhY2hPYnNlcnZlcihjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mKSBjb25z
dDsKIAogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CkBAIC0yMjgsNiArMjMzLDcgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aW50ZXJydXB0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYXB0dXJlRGlkRmFpbGVkIHsgZmFs
c2UgfTsKKyAgICBib29sIG1faXNSZW1vdGUgeyBmYWxzZSB9OwogfTsKIAogc3RydWN0IENhcHR1
cmVTb3VyY2VPckVycm9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggMTQ5MTMzZDg1YjE2
YjIxZjRjMzEwMGE5ZTYxYTBiNmU5YzhiYmFjMi4uMGI0YTZlZDFjOGUxNTU3YTg0MWUyNDFkZGI3
ZTNlYTI2NzM1NzMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTMxLDYgKzMxLDExIEBA
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCIKKyNpbmNsdWRl
ICJSZW1vdGVWaWRlb1NhbXBsZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAi
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMzc4LDcgKzM4MywzNiBAQCB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmRpc3BhdGNo
TWVkaWFTYW1wbGVUb09ic2VydmVycyhNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgIGlmIChpbnRl
cnZhbCA+IDEpCiAgICAgICAgIG1fb2JzZXJ2ZWRGcmFtZVJhdGUgPSAobV9vYnNlcnZlZEZyYW1l
VGltZVN0YW1wcy5zaXplKCkgLyBpbnRlcnZhbCk7CiAKLSAgICB2aWRlb1NhbXBsZUF2YWlsYWJs
ZShzYW1wbGUpOworICAgIGlmIChpc1JlbW90ZSgpKSB7CisjaWYgSEFWRShJT1NVUkZBQ0UpCisg
ICAgICAgIGF1dG8gcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShXVEZN
b3ZlKHNhbXBsZSkpOworICAgICAgICBpZiAocmVtb3RlU2FtcGxlKQorICAgICAgICAgICAgcmVt
b3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSk7CisjZWxzZQor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgYXV0byBtZWRpYVNhbXBsZSA9IG1ha2VSZWZQdHIoJnNhbXBsZSk7CisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgYXV0byBzaXplID0gdGhpcy0+c2l6ZSgpOworICAgIGlmICgh
c2l6ZS5pc0VtcHR5KCkgJiYgc2l6ZSAhPSBleHBhbmRlZEludFNpemUoc2FtcGxlLnByZXNlbnRh
dGlvblNpemUoKSkpIHsKKworICAgICAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pCisg
ICAgICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y3JlYXRlKHNhbXBsZS52aWRlb1BpeGVsRm9ybWF0KCkpOworCisgICAgICAgIGlmIChtX2lt
YWdlVHJhbnNmZXJTZXNzaW9uKSB7CisgICAgICAgICAgICBtZWRpYVNhbXBsZSA9IG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24tPmNvbnZlcnRNZWRpYVNhbXBsZShzYW1wbGUsIHNpemUpOworICAgICAg
ICAgICAgaWYgKCFtZWRpYVNhbXBsZSkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0KKyNlbmRpZgorCisgICAgdmlkZW9TYW1wbGVBdmFpbGFibGUobWVkaWFTYW1wbGUu
cmVsZWFzZU5vbk51bGwoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuaAppbmRleCA0N2M0ZjVlZTNjMWY2NTZhZDUyMGI0YmViODNiNDcyZjc0ZDA5ZGQwLi44
NDI2OGFiNjY2ZTM5ZDc3MDVkODA4OGRjYWM4NTNkNTUxZTZmYWQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5oCkBAIC0zNyw2ICszNyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDsKKwogY2xhc3MgUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1Ymxp
YyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZWFsdGltZVZp
ZGVvU291cmNlKCk7CkBAIC04Myw2ICs4NSw5IEBAIHByaXZhdGU6CiAgICAgRGVxdWU8ZG91Ymxl
PiBtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBzOwogICAgIGRvdWJsZSBtX29ic2VydmVkRnJhbWVS
YXRlIHsgMCB9OwogICAgIEludFNpemUgbV9kZWZhdWx0U2l6ZTsKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IGVjNDNhZTA2OTQzMTM0YWRmYWI2OTM4ZDVl
ZDY5MGYzYjBmOTBlOTguLjgzYWZlZDc2MmZjNjEyZTQzMTJhMTE1NmMyOTVkZDM4YThjYzQwODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZp
ZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTU0MCwyNyArNTQwLDkgQEAgdm9p
ZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJvY2Vzc05ld0ZyYW1lKFJlZjxNZWRpYVNhbXBsZT4m
JiBzYW1wbGUpCiAKIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcHR1cmVPdXRwdXREaWRP
dXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXRUeXBlKiwgQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBBVkNhcHR1cmVDb25uZWN0aW9uVHlwZSogY2Fw
dHVyZUNvbm5lY3Rpb24pCiB7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNj
cmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVy
KTsKLSAgICBpZiAoIWZvcm1hdERlc2NyaXB0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBD
TVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0
RGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbik7Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBz
YW1wbGU7Ci0gICAgaWYgKGRpbWVuc2lvbnMud2lkdGggIT0gbV9yZXF1ZXN0ZWRTaXplLndpZHRo
KCkgfHwgZGltZW5zaW9ucy5oZWlnaHQgIT0gbV9yZXF1ZXN0ZWRTaXplLmhlaWdodCgpKSB7Ci0K
LSAgICAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKQotICAgICAgICAgICAgbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShhdlZpZGVv
Q2FwdHVyZVBpeGVsQnVmZmVyRm9ybWF0KCkpOwotCi0gICAgICAgIHNhbXBsZSA9IG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHNhbXBsZUJ1ZmZlciwgbV9yZXF1ZXN0
ZWRTaXplLCBtX3NhbXBsZVJvdGF0aW9uLCBbY2FwdHVyZUNvbm5lY3Rpb24gaXNWaWRlb01pcnJv
cmVkXSk7Ci0gICAgICAgIGlmICghc2FtcGxlKSB7Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0gZWxzZQotICAg
ICAgICBzYW1wbGUgPSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGVCdWZmZXIsIG1f
c2FtcGxlUm90YXRpb24sIFtjYXB0dXJlQ29ubmVjdGlvbiBpc1ZpZGVvTWlycm9yZWRdKTsKLQor
ICAgIGF1dG8gc2FtcGxlID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlQnVmZmVy
LCBtX3NhbXBsZVJvdGF0aW9uLCBbY2FwdHVyZUNvbm5lY3Rpb24gaXNWaWRlb01pcnJvcmVkXSk7
CiAgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXMsIHNhbXBsZSA9IFdURk1vdmUoc2FtcGxl
KV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb2Nlc3NOZXdGcmFtZShzYW1wbGUucmVsZWFzZU5v
bk51bGwoKSk7CisgICAgICAgIHByb2Nlc3NOZXdGcmFtZShXVEZNb3ZlKHNhbXBsZSkpOwogICAg
IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXgg
MzQzNTc0ZTdiMDc5Y2QyMTFiMDgwZjVhN2NhNmIzYWQ2Y2ViN2RhNy4uMzM3MmZhMjc5NjY4MWQ5
YzgzYjZkMmEyYTMxMjJkY2M5N2E3OWU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJSZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUmVtb3RlVmlk
ZW9TYW1wbGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPENvcmVNZWRpYS9DTVN5
bmMuaD4KICNpbmNsdWRlIDxtYWNoL21hY2hfdGltZS5oPgpAQCAtMTcyLDIyICsxNzMsNDQgQEAg
dm9pZCBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUoKQogICAgICAgICBtX2lt
YWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHByZWZl
cmVkUGl4ZWxCdWZmZXJGb3JtYXQoKSk7CiAKICAgICBhdXRvIHNhbXBsZVRpbWUgPSBNZWRpYVRp
bWU6OmNyZWF0ZVdpdGhEb3VibGUoKGVsYXBzZWRUaW1lKCkgKyAxMDBfbXMpLnNlY29uZHMoKSk7
CisKICAgICBhdXRvIGZyYW1lID0gZ2VuZXJhdGVGcmFtZSgpOwotICAgIEludFNpemUgaW1hZ2VT
aXplOworICAgIGF1dG8gaW1hZ2VTaXplID0gV1RGOjpzd2l0Y2hPbihmcmFtZSwKKyAgICAgICAg
W10oUmV0YWluUHRyPElPU3VyZmFjZVJlZj4gc3VyZmFjZSkgLT4gSW50U2l6ZSB7CisgICAgICAg
ICAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAg
ICAgICAgcmV0dXJuIEludFNpemUoSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZS5nZXQoKSksIElP
U3VyZmFjZUdldEhlaWdodChzdXJmYWNlLmdldCgpKSk7CisgICAgICAgIH0sCisgICAgICAgIFtd
KFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSkgLT4gSW50U2l6ZSB7CisgICAgICAgICAgICBp
ZiAoIWltYWdlKQorICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisKKyAgICAgICAgICAgIHJl
dHVybiBJbnRTaXplKENHSW1hZ2VHZXRXaWR0aChpbWFnZS5nZXQoKSksIENHSW1hZ2VHZXRIZWln
aHQoaW1hZ2UuZ2V0KCkpKTsKKyAgICAgICAgfQorICAgICk7CisKKyAgICBBU1NFUlQoIWltYWdl
U2l6ZS5pc0VtcHR5KCkpOworICAgIGlmIChpbWFnZVNpemUuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAobV9pbnRyaW5zaWNTaXplICE9IGltYWdlU2l6ZSkKKyAgICAgICAg
c2V0SW50cmluc2ljU2l6ZShpbWFnZVNpemUpOworCisgICAgYXV0byBtZWRpYVNhbXBsZVNpemUg
PSBpc1JlbW90ZSgpID8gaW1hZ2VTaXplIDogZnJhbWVTaXplKCk7CisKICAgICBSZWZQdHI8TWVk
aWFTYW1wbGU+IHNhbXBsZSA9IFdURjo6c3dpdGNoT24oZnJhbWUsCi0gICAgICAgIFt0aGlzLCBz
YW1wbGVUaW1lLCAmaW1hZ2VTaXplXShSZXRhaW5QdHI8SU9TdXJmYWNlUmVmPiBzdXJmYWNlKSAt
PiBSZWZQdHI8TWVkaWFTYW1wbGU+IHsKKyAgICAgICAgW3RoaXMsIHNhbXBsZVRpbWUsIG1lZGlh
U2FtcGxlU2l6ZV0oUmV0YWluUHRyPElPU3VyZmFjZVJlZj4gc3VyZmFjZSkgLT4gUmVmUHRyPE1l
ZGlhU2FtcGxlPiB7CiAgICAgICAgICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgICAgIGltYWdlU2l6ZSA9IEludFNpemUoSU9TdXJm
YWNlR2V0V2lkdGgoc3VyZmFjZS5nZXQoKSksIElPU3VyZmFjZUdldEhlaWdodChzdXJmYWNlLmdl
dCgpKSk7Ci0gICAgICAgICAgICByZXR1cm4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRl
TWVkaWFTYW1wbGUoc3VyZmFjZS5nZXQoKSwgc2FtcGxlVGltZSwgaW1hZ2VTaXplKTsKKyAgICAg
ICAgICAgIHJldHVybiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShz
dXJmYWNlLmdldCgpLCBzYW1wbGVUaW1lLCBtZWRpYVNhbXBsZVNpemUpOwogICAgICAgICB9LAot
ICAgICAgICBbdGhpcywgc2FtcGxlVGltZSwgJmltYWdlU2l6ZV0oUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IGltYWdlKSAtPiBSZWZQdHI8TWVkaWFTYW1wbGU+IHsKKyAgICAgICAgW3RoaXMsIHNhbXBs
ZVRpbWUsIG1lZGlhU2FtcGxlU2l6ZV0oUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlKSAtPiBS
ZWZQdHI8TWVkaWFTYW1wbGU+IHsKICAgICAgICAgICAgIGlmICghaW1hZ2UpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgICAgIGltYWdlU2l6ZSA9IEludFNpemUo
Q0dJbWFnZUdldFdpZHRoKGltYWdlLmdldCgpKSwgQ0dJbWFnZUdldEhlaWdodChpbWFnZS5nZXQo
KSkpOwotICAgICAgICAgICAgcmV0dXJuIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1l
ZGlhU2FtcGxlKGltYWdlLmdldCgpLCBzYW1wbGVUaW1lLCBpbWFnZVNpemUpOworICAgICAgICAg
ICAgcmV0dXJuIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKGltYWdl
LmdldCgpLCBzYW1wbGVUaW1lLCBtZWRpYVNhbXBsZVNpemUpOwogICAgICAgICB9CiAgICAgKTsK
IApAQCAtMTk2LDggKzIxOSwxMyBAQCB2b2lkIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmVt
aXRGcmFtZSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobV9pbnRyaW5zaWNT
aXplICE9IGltYWdlU2l6ZSkKLSAgICAgICAgc2V0SW50cmluc2ljU2l6ZShpbWFnZVNpemUpOwor
ICAgIGlmIChpc1JlbW90ZSgpKSB7CisgICAgICAgIGF1dG8gcmVtb3RlU2FtcGxlID0gUmVtb3Rl
VmlkZW9TYW1wbGU6OmNyZWF0ZShXVEZNb3ZlKCpzYW1wbGUpKTsKKyAgICAgICAgaWYgKHJlbW90
ZVNhbXBsZSkKKyAgICAgICAgICAgIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdURk1vdmUo
KnJlbW90ZVNhbXBsZSkpOworCisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICB2aWRlb1Nh
bXBsZUF2YWlsYWJsZSgqc2FtcGxlLmdldCgpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggNDQxOWJhZWVmODNlOWRj
Zjc1ODIzNDAyYTJhODJkMzgyZGFkNmVjOS4uMzA3OWQ3OWVhMjE0M2IyMzY5Mzc1YTU2OWUzZDdm
YzY1N2QzNWI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlQ29jb2EuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaCIKLSNpbmNsdWRlICJS
ZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCiAKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lO
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKaW5kZXggMTc2NmJmMDRiYTk3MzdhY2RmNDFmZjliODQ3MTIwZTlmMWQ3Mzcx
NC4uNDdlODhmNGI0MGYxYmJjMWVhNWVmOGM5NmM3YTdhMDU2MjJjY2JkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
QEAgLTcyLDYgKzcyLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgZW5jb2RlciA8PCBhdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5kbGU7CiAgICAgZW5jb2Rl
ciA8PCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzczsKKyAgICBlbmNvZGVyIDw8IHNob3Vs
ZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3M7CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IHNob3Vs
ZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbjsKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdp
c3RlcmVkQXNFbXB0eURvY3VtZW50OwpAQCAtMjY0LDYgKzI2NSw4IEBAIGJvb2wgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJv
Y2Vzc0NyZWF0CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkQ2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3MpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3Mp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IDMxZGI4YjA4ODZkZGQ4MmU1YWM4YjNmYjI5YTkxOTllZTQx
YzA0M2UuLmY3Y2QzY2I1NTQ3NjY1NWQ4N2I4MDNlODY5YTcwNDIzZWE4NmQ2NjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTk2LDYgKzk2LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGF1
ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKICAgICBib29sIHNob3VsZENhcHR1cmVBdWRpb0lu
VUlQcm9jZXNzIHsgZmFsc2UgfTsKKyAgICBib29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVBy
b2Nlc3MgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgU3RyaW5nIG1lZGlhS2V5U3RvcmFnZURpcmVj
dG9yeTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAppbmRleCA5OTZjMGRkMTBjYjdkMWJjMDNlYzAy
NTkyMzM5MTZkY2Y3MDMzNmJiLi45ZDJlMDE4NGU1OTAwMWU2OGMzNzdhZjljYjhhYzJiNDhlY2U4
M2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcApAQCAtMTE1LDYgKzExNSw3IEBAIFJlZjxQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24+IFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSgpCiAg
ICAgY29weS0+bV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkgPSB0aGlzLT5tX2Fsd2F5
c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eTsKICAgICBjb3B5LT5tX3Nob3VsZFRha2VVSUJhY2tn
cm91bmRBc3NlcnRpb24gPSB0aGlzLT5tX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb247
CiAgICAgY29weS0+bV9zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IHRoaXMtPm1fc2hv
dWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3M7CisgICAgY29weS0+bV9zaG91bGRDYXB0dXJlRGlz
cGxheUluVUlQcm9jZXNzID0gdGhpcy0+bV9zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNz
OwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgY29weS0+bV9jdERhdGFDb25uZWN0aW9u
U2VydmljZVR5cGUgPSB0aGlzLT5tX2N0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDRkMzhiMTQzYTJhNDkxYWZkMDViMDE2OTM4ZmJiN2Q2
YzRhNjEzMDkuLmUyMmZmYjQ3ZGU0NmRkNDhkYTA0MjRjMDQzYjU5NWQzN2FiMTA2MGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmgKQEAgLTM2LDYgKzM2LDEyIEBACiAKIG5hbWVzcGFjZSBBUEkgewogCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKKyNk
ZWZpbmUgREVGQVVMVF9DQVBUVVJFX0RJU1BMQVlfSU5fVUlfUFJPQ0VTUyB0cnVlCisjZWxzZQor
I2RlZmluZSBERUZBVUxUX0NBUFRVUkVfRElTUExBWV9JTl9VSV9QUk9DRVNTIGZhbHNlCisjZW5k
aWYKKwogY2xhc3MgUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGZpbmFsIDogcHVibGljIE9iamVj
dEltcGw8T2JqZWN0OjpUeXBlOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gY3JlYXRlKCk7CkBAIC0x
MzMsNiArMTM5LDkgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVBy
b2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOyB9
CiAgICAgdm9pZCBzZXRTaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzcyhib29sIHNob3VsZENh
cHR1cmVBdWRpb0luVUlQcm9jZXNzKSB7IG1fc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3Mg
PSBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzczsgfQogCisgICAgYm9vbCBzaG91bGRDYXB0
dXJlRGlzcGxheUluVUlQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDYXB0dXJlRGlz
cGxheUluVUlQcm9jZXNzOyB9CisgICAgdm9pZCBzZXRTaG91bGRDYXB0dXJlRGlzcGxheUluVUlQ
cm9jZXNzKGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcykgeyBtX3Nob3VsZENh
cHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgPSBzaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNz
OyB9CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBj
dERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2N0RGF0YUNvbm5l
Y3Rpb25TZXJ2aWNlVHlwZTsgfQogICAgIHZvaWQgc2V0Q1REYXRhQ29ubmVjdGlvblNlcnZpY2VU
eXBlKGNvbnN0IFdURjo6U3RyaW5nJiBjdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUpIHsgbV9j
dERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUgPSBjdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7
IH0KQEAgLTE5NCw2ICsyMDMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hbHdheXNSdW5zQXRC
YWNrZ3JvdW5kUHJpb3JpdHkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRUYWtlVUlCYWNr
Z3JvdW5kQXNzZXJ0aW9uIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlQXVkaW9J
blVJUHJvY2VzcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVEaXNwbGF5SW5V
SVByb2Nlc3MgeyBERUZBVUxUX0NBUFRVUkVfRElTUExBWV9JTl9VSV9QUk9DRVNTIH07CiAgICAg
UHJvY2Vzc0lEIG1fcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEIHsgZ2V0Q3VycmVudFByb2Nlc3NJ
RCgpIH07CiAgICAgYm9vbCBtX3Byb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2Fsd2F5c0tlZXBBbmRSZXVzZVN3YXBwZWRQcm9jZXNzZXMgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAzOGFhYjI2ZGEwZjFlYjgzZWVkOTc0ZDYx
NzJlYTBmZTQ0M2VmYzg2Li5hZjgzYjYzODc5Y2FhMzU0YjNjYzA5MTQzM2U4MTUyMzliNTFhZWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0
cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCkBA
IC05OCw2ICs5OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShtX2lkLCB0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsK
ICAgICB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVt
b3RlVmlkZW9TYW1wbGUmIHNhbXBsZSkKKyAgICB7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlJlbW90ZVZpZGVvU2Ft
cGxlQXZhaWxhYmxlKG1faWQsIFdURk1vdmUoc2FtcGxlKSksIDApOworICAgIH0KKwogICAgIHZv
aWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbCB7CiAgICAgICAg
IFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKICAgICAgICAgaWYgKHN0b3JhZ2UpCkBAIC0x
MjUsMTcgKzEzMSwyMyBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eSgpCiAgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZSB0eXBlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29u
c3RyYWludHMsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCit2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMs
IGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgotICAgICAgICBzb3VyY2VP
ckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0
b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCks
ICZjb25zdHJhaW50cyk7CisgICAgc3dpdGNoIChkZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBz
b3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YXVkaW9GYWN0b3J5KCku
Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksICZjb25z
dHJhaW50cyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6dmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNl
KGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksICZjb25zdHJhaW50cyk7CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86Ci0g
ICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS52aWRlb0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgJmNvbnN0cmFpbnRzKTsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OkFwcGxpY2F0aW9uOgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6QnJvd3NlcjoKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlD
YXB0dXJlU291cmNlKGRldmljZSwgJmNvbnN0cmFpbnRzKTsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE0Myw2ICsxNTUs
NyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgIHN1Y2NlZWRlZCA9ICEhc291cmNlT3JF
cnJvcjsKICAgICBpZiAoc291cmNlT3JFcnJvcikgewogICAgICAgICBhdXRvIHNvdXJjZSA9IHNv
dXJjZU9yRXJyb3Iuc291cmNlKCk7CisgICAgICAgIHNvdXJjZS0+c2V0SXNSZW1vdGUodHJ1ZSk7
CiAgICAgICAgIHNldHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOwogICAgICAgICBtX3Byb3hp
ZXMuc2V0KGlkLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIFdURk1v
dmUoc291cmNlKSkpOwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IGVj
YWVhZTI0ODIzYTQzOTFlNjU5ZDVhZWIzZWJkNDcyNGNlZWFkODguLjNiZjkyMWZlNjgwNjQyZmNj
NzZlMWZiZGFiZjMxMWVhNGVkYTczZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1
ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogCkBAIC00OSw3ICs1MCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFs
OwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlE
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlk
Q29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOworICAg
IHZvaWQgY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVp
bnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2VJRCwgU3RyaW5n
JiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBib29sJiBzdWNjZWVkZWQsIFN0
cmluZyYgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9p
ZCBzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBjYXBhYmlsaXRpZXModWlu
dDY0X3QsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJkMjE5YmM5NjA4ZDA3
NDA2OTE5MjI2MDQzYzAyYTcyYWVhMzViN2IuLjQ1YjFjMzg0MGRlNzhlMWY5ZWQyNDNkOGJjZTEy
MzY4NWE2YzQ1ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw3ICsy
NCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eSB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRl
dmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBTdHJpbmcgaGFz
aFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKSAtPiAo
Ym9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCitDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UgZGV2aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFp
bnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCiAgICAg
U3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVp
bnQ2NF90IGlkKQogICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDg1ZmZiOWFkMWY1NGZjNzU0ZTMx
OTk0OWQ0M2QxZjExNmI1YWM0MTUuLjczMWVmNGIzOTI1ZjU1Y2UwMTRmN2QzYTc0YjkyYWE3MzRj
NjYxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTkwNyw2ICs5MDcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJv
Y2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVEYQogICAgIHBhcmFtZXRlcnMu
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQgPSB3ZWJzaXRlRGF0YVN0b3JlLnJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKCk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBw
YXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gbV9jb25maWd1cmF0aW9u
LT5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcygpOworICAgIHBhcmFtZXRlcnMuc2hvdWxk
Q2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcyA9IG1fY29uZmlndXJhdGlvbi0+c2hvdWxkQ2FwdHVy
ZURpc3BsYXlJblVJUHJvY2VzcygpOwogI2VuZGlmCiAKICAgICBwYXJhbWV0ZXJzLnByZXNlbnRp
bmdBcHBsaWNhdGlvblBJRCA9IG1fY29uZmlndXJhdGlvbi0+cHJlc2VudGluZ0FwcGxpY2F0aW9u
UElEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCBjYjZkNmM3ZWU5YWM1YzFkNWYwYmMzOGRl
MjE1YTM5ZDZlMmZkNTg2Li43MjM2YTViNWQ3NTZhM2M0NmQyODhkZWQwODZmMTFmYzU2NzI0NGFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTM1LDEyICszNSwxNiBAQAogI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFn
ZVRyYW5zZmVyU2Vzc2lvblZULmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2Vi
QXVkaW9CdWZmZXJMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBzdGF0aWMgdWludDY0X3QgbmV4dFNlc3Npb25JRCgpCkBAIC01NSwxNiArNTksMjIgQEAgcHVi
bGljOgogICAgICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UodHlwZSwgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShzb3VyY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICAgICAsIG1faWQoaWQp
CiAgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCi0gICAgICAgICwgbV9yaW5nQnVmZmVyKG1h
a2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKQogICAgIHsKKyAg
ICAgICAgaWYgKHR5cGUgPT0gVHlwZTo6QXVkaW8pCisgICAgICAgICAgICBtX3JpbmdCdWZmZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZT4obnVsbHB0cikpOwogICAgIH0KIAogICAgIH5Tb3VyY2UoKQogICAgIHsK
LSAgICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKKyAgICAgICAgaWYgKHR5cGUoKSA9PSBU
eXBlOjpBdWRpbykKKyAgICAgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CiAgICAgfQog
Ci0gICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBzdGF0aWNf
Y2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOyB9
CisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKHR5cGUoKSA9PSBUeXBlOjpBdWRpbyk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKKyAg
ICB9CiAKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmls
aXRpZXMoKSBmaW5hbAogICAgIHsKQEAgLTg0LDEwICs5NCwxMSBAQCBwdWJsaWM6CiAgICAgY29u
c3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZGVzY3JpcHRpb247IH0KICAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5
OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgeworICAgICAgICBB
U1NFUlQodHlwZSgpID09IFR5cGU6OkF1ZGlvKTsKICAgICAgICAgbV9kZXNjcmlwdGlvbiA9IGRl
c2NyaXB0aW9uOwogCiAgICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgICAg
IG1fcmluZ0J1ZmZlci5kZWFsbG9jYXRlKCk7CisgICAgICAgICAgICBtX3JpbmdCdWZmZXItPmRl
YWxsb2NhdGUoKTsKICAgICAgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7CiAg
ICAgICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRyKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTk3LDIyICsxMDgsNTEgQEAgcHVibGljOgogICAgICAgICBzdG9yYWdlKCkuc2V0
U3RvcmFnZShXVEZNb3ZlKG1lbW9yeSkpOwogICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHko
dHJ1ZSk7CiAKLSAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1i
ZXJPZkZyYW1lcyk7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24s
IG51bWJlck9mRnJhbWVzKTsKICAgICB9CiAKICAgICB2b2lkIHNldFJpbmdCdWZmZXJGcmFtZUJv
dW5kcyh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKICAgICB7Ci0gICAg
ICAgIG1fcmluZ0J1ZmZlci5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJh
bWUpOworICAgICAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OkF1ZGlvKTsKKyAgICAgICAgbV9y
aW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwog
ICAgIH0KIAogICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcykKICAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlKCkgPT0g
VHlwZTo6QXVkaW8pOwogICAgICAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVz
Y3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKLSAgICAgICAgbV9yaW5nQnVmZmVyLmZldGNoKGF1
ZGlvRGF0YS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICAg
ICAgbV9yaW5nQnVmZmVyLT5mZXRjaChhdWRpb0RhdGEubGlzdCgpLCBudW1iZXJPZkZyYW1lcywg
dGltZS50aW1lVmFsdWUoKSk7CiAKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlvRGF0YSwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOwogICAgIH0KIAorI2lmIEhBVkUoSU9TVVJGQUNFKQorICAgIHZvaWQgcmVtb3RlVmlk
ZW9TYW1wbGVBdmFpbGFibGUoUmVtb3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCisgICAg
eworICAgICAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OlZpZGVvKTsKKworICAgICAgICBhdXRv
IHZpZGVvU2FtcGxlU2l6ZSA9IEludFNpemUobV9zZXR0aW5ncy53aWR0aCgpLCBtX3NldHRpbmdz
LmhlaWdodCgpKTsKKyAgICAgICAgaWYgKHZpZGVvU2FtcGxlU2l6ZS5pc0VtcHR5KCkpCisgICAg
ICAgICAgICB2aWRlb1NhbXBsZVNpemUgPSByZW1vdGVTYW1wbGUuc2l6ZSgpOworCisgICAgICAg
IGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikKKyAgICAgICAgICAgIG1faW1hZ2VUcmFuc2Zl
clNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZp
ZGVvRm9ybWF0KCkpOworCisgICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgewor
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Np
b24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBs
ZS50aW1lKCksIHZpZGVvU2FtcGxlU2l6ZSk7CisgICAgICAgIGlmICghc2FtcGxlUmVmKSB7Cisg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxh
YmxlKCpzYW1wbGVSZWYpOworICAgIH0KKyNlbmRpZgorCiAgICAgdm9pZCBhcHBseUNvbnN0cmFp
bnRzU3VjY2VlZGVkKGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
c2V0dGluZ3MpCiAgICAgewogICAgICAgICBhdXRvIGNhbGxiYWNrcyA9IG1fcGVuZGluZ0FwcGx5
Q29uc3RyYWludHNDYWxsYmFja3MudGFrZUZpcnN0KCk7CkBAIC0xNDQsOCArMTg0LDExIEBAIHBy
aXZhdGU6CiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBtdXRh
YmxlIHN0ZDo6b3B0aW9uYWw8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBh
YmlsaXRpZXM7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisK
ICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKLSAgICBDQVJpbmdC
dWZmZXIgbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDQVJpbmdCdWZmZXI+IG1f
cmluZ0J1ZmZlcjsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
PiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwogCiAgICAgc3RydWN0IEFwcGx5Q29uc3RyYWludHND
YWxsYmFjayB7CiAgICAgICAgIFN1Y2Nlc3NIYW5kbGVyIHN1Y2Nlc3NIYW5kbGVyOwpAQCAtMTYy
LDcgKzIwNSw4IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcihXZWJQcm9jZXNzJiBwcm9jZXNzKQogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6flVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCkKIHsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS51bnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CisgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6dW5zZXRBdWRpb0ZhY3RvcnkoKnRoaXMpOworICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnVuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KCp0aGlzKTsKICAgICBt
X3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIApAQCAtMTc0LDEwICsyMTgsMTIg
QEAgY29uc3QgY2hhciogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkK
IHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBpZiAocGFyYW1ldGVycy5z
aG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcykKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAgICAgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAgICBpZiAo
cGFyYW1ldGVycy5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKQorICAgICAgICBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXREaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKnRoaXMpOwog
fQogCi1XZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNh
cHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAg
aWYgKCFjb25zdHJhaW50cykKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE4NiwxMCArMjMyLDEx
IEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzIHNldHRpbmdzOwogICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CiAgICAgYm9vbCBzdWNjZWVk
ZWQ7Ci0gICAgaWYgKCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaW50cyhpZCwgZGV2aWNlLCBzb3VyY2VUeXBlLCBoYXNoU2FsdCwgKmNvbnN0cmFpbnRzKSwg
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBlcnJvck1l
c3NhZ2UsIHNldHRpbmdzKSwgMCkpCisgICAgaWYgKCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBoYXNoU2FsdCwgKmNvbnN0cmFp
bnRzKSwgTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBl
cnJvck1lc3NhZ2UsIHNldHRpbmdzKSwgMCkpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9y
TWVzc2FnZSk7CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmlu
Zzo6bnVtYmVyKGlkKSwgc291cmNlVHlwZSwgU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKSB9LCBX
VEZNb3ZlKGhhc2hTYWx0KSwgaWQsICp0aGlzKSk7CisgICAgYXV0byB0eXBlID0gZGV2aWNlLnR5
cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lID8gV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbzsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291
cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgdHlwZSwgU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKSB9
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgaWQsICp0aGlzKSk7CiAgICAgc291cmNlLT5zZXRTZXR0aW5n
cyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgbV9zb3VyY2VzLnNldChpZCwgc291cmNlLmNvcHlS
ZWYoKSk7CiAgICAgcmV0dXJuIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUo
c291cmNlKSk7CkBAIC0yMzksNiArMjg2LDE5IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50NjRfdCBpZCwgTWVkaWFUaW1lIHRpbWUsCiAg
ICAgc291cmNlLmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcyk7CiB9
CiAKKyNpZiBIQVZFKElPU1VSRkFDRSkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJl
bW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBSZW1vdGVWaWRlb1NhbXBsZSYm
IHNhbXBsZSkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9z
b3VyY2VzLmdldChpZCktPnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdURk1vdmUoc2FtcGxl
KSk7Cit9CisjZWxzZQorTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUodWludDY0X3QsIFJlbW90ZVZp
ZGVvU2FtcGxlJiYpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKKwog
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90
IGlkKQogewogICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5k
ZXggMzc2MzJkNTllNmVmOGNhYWM4MDY5MTNlNTAzNWRiY2E0YzhkNDU3OS4uOGVhYjAxNzBkMDdl
ODUzZWY5NmQyNjgzNzYxOWQ4OWQxMDk3YWJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTM2LDYg
KzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uOworY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpAQCAtNDMsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIENyb3NzUHJvY2Vz
c1JlYWx0aW1lQXVkaW9Tb3VyY2U7CiBjbGFzcyBXZWJQcm9jZXNzOwogCi1jbGFzcyBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSwg
cHVibGljIFdlYkNvcmU6OlZpZGVvQ2FwdHVyZUZhY3RvcnkgeworY2xhc3MgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlciwgcHVibGljIFdlYkNvcmU6OkF1ZGlvQ2FwdHVyZUZhY3RvcnksIHB1Ymxp
YyBXZWJDb3JlOjpWaWRlb0NhcHR1cmVGYWN0b3J5LCBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUNh
cHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcihXZWJQcm9jZXNzJik7CiAgICAgflVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCk7CkBAIC01
NSw5ICs1NiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikgZmluYWw7CiAKICAgICAvLyBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlIGZhY3RvcmllcwotICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2Us
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGhhc2hT
YWx0KSwgY29uc3RyYWludHMpOyB9Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRl
dmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZSwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cyk7IH0KLSAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyopOworICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1v
dmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2Uo
ZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOyB9CisgICAgV2ViQ29yZTo6
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykgZmluYWwgIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2
aWNlLCB7IH0sIGNvbnN0cmFpbnRzKTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0
cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7CiAKICAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CkBAIC03MCw2ICs3Miw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzdG9yYWdlQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3QgU2hhcmVkTWVtb3J5OjpI
YW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRf
dCBudW1iZXJPZkZyYW1lcyk7CiAgICAgdm9pZCByaW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2Vk
KHVpbnQ2NF90IGlkLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CiAg
ICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUodWludDY0X3QgaWQsIE1lZGlhVGltZSwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZy
YW1lKTsKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBX
ZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmKTsKIAogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdE
YXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKQEAg
LTg1LDYgKzg4LDYgQEAgcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9Owog
Ci19Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIubWVzc2FnZXMuaW4KaW5kZXggZWI1NzQwNTYxNzM1MmU4ODEzM2JiODUwZjE1N2YzNGMzYmYy
M2VmZC4uYTA2MmRjMzQ1NjcxYjI5NmU1MmY1ODNhNzExNmY3YWU3YzNlZmNjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzIsNiArMzIsNyBAQCBtZXNzYWdlcyAt
PiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciB7CiAgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVp
bnQ2NF90IGlkLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2
NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQogICAgIEFwcGx5Q29uc3RyYWludHNT
dWNjZWVkZWQodWludDY0X3QgaWQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyBzZXR0aW5ncykKICAgICBBcHBseUNvbnN0cmFpbnRzRmFpbGVkKHVpbnQ2NF90IGlkLCBTdHJp
bmcgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nIG1lc3NhZ2UpCisgICAgUmVtb3RlVmlkZW9TYW1w
bGVBdmFpbGFibGUodWludDY0X3QgaWQsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlIHNhbXBs
ZSkKIH0KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352761</attachid>
            <date>2018-10-18 20:48:49 -0700</date>
            <delta_ts>2018-10-18 21:16:48 -0700</delta_ts>
            <desc>Anothher rebased patch for landing</desc>
            <filename>bug-190728-20181018204848.patch</filename>
            <type>text/plain</type>
            <size>62081</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3Mjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzllZWRjZjdhM2YyMTg4
NjY2NWY4ZjZmZTI1MmI1NGZiNDUxMmMwMS4uMWMwYTRiYzY0YjBiM2NlMThiMGNmMzhjNDU1MzI5
YTFhZjlmNTk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE4LTEwLTE4ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gQWxsb3cgcG9ydHMgdG8gb3B0aW9uYWxseSBkbyBzY3JlZW4gY2FwdHVyZSBpbiB0aGUgVUkg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwNzI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTM3NjgyND4KKworICAgICAgICBSZXZp
ZXdlZCBieSBKZXIgTm9ibGUgYW5kIFRpbSBIb3J0b24uCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogU291cmNlcy50eHQ6IEFk
ZCBSZW1vdGVWaWRlb1NhbXBsZS5jcHAuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL01lZGlhU2FtcGxlLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZTo6dmlkZW9QaXhlbEZvcm1hdCBjb25zdCk6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6On5SZW1vdGVWaWRlb1Nh
bXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpSZW1vdGVWaWRlb1NhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6c3VyZmFjZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6dGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZTo6dmlkZW9Gb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3RlVmlkZW9TYW1wbGU6OnNpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVW
aWRlb1NhbXBsZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKTogQ2FsbCBvYnNl
cnZlcnMuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNlOjpkaXNwYXRjaE1l
ZGlhU2FtcGxlVG9PYnNlcnZlcnMpOiBEaXNwYXRjaCByZW1vdGUgc2FtcGxlcyB3aXRob3V0Cisg
ICAgICAgIHJlc2l6aW5nLCByZXNpemUgbG9jYWwgc2FtcGxlcyBpZiBuZWNlc3NhcnkuCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcHR1cmVPdXRwdXREaWRP
dXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbik6IERvbid0IHJlc2l6ZQorICAgICAgICBz
YW1wbGVzLCBpdCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhc2UgY2xhc3MgaWYgbmVjZXNzYXJ5Lgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
ZW1pdEZyYW1lKTogRG9uJ3QgcmVzaXplIHNhbXBsZXMgd2hlbiBydW5uaW5nIGluIHRoZSBVSQor
ICAgICAgICBwcm9jZXNzLCBpdCB3aWxsIGJlIGRvbmUgaW4gdGhlIHdlYiBwcm9jZXNzLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZUNvY29hLmNwcDogUmVtb3ZlIHVubmVlZGVkIGluY2x1ZGUuCisKIDIwMTgtMTAtMTggIEp1
c3RpbiBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBu
ZXcgaW1hZ2UgdHlwZSBmb3IgQ1NTIHBhaW50aW5nIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZTY0MDFiZTUw
N2VlM2Q4NWQ2NGNlM2YxNTlmYjRiZWY1ZGIyMDk0Li4zZDE3MWRhNjlkMGRhY2VhNzQ1MzNjZmYw
ZjA0OWM5ZDM2YzM1NmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE4LTEwLTE4ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0
cmVhbV0gQWxsb3cgcG9ydHMgdG8gb3B0aW9uYWxseSBkbyBzY3JlZW4gY2FwdHVyZSBpbiB0aGUg
VUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkwNzI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTM3NjgyND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBKZXIgTm9ibGUgYW5kIFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6IEVuY29kZSBzaG91bGRDYXB0
dXJlRGlzcGxheUluVUlQcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUpOiBEZWNvZGUgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJv
Y2Vzcy4KKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3Bw
OgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOiBDb3B5IHNo
b3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnJlbW90ZVZpZGVvU2FtcGxl
QXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKTogUmVt
b3ZlCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgcGFyYW1ldGVyLCBDYXB0dXJl
RGV2aWNlIGhhcyB0aGUgc2FtZSBpbmZvcm1hdGlvbi4gRGVhbCB3aXRoIGRpc3BsYXkKKyAgICAg
ICAgY2FwdHVyZSAiZGV2aWNlcyIuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpp
bml0aWFsaXplTmV3V2ViUHJvY2Vzcyk6IENvcHkgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJv
Y2Vzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNl
OjpTb3VyY2UpOiBPbmx5IGFsbG9jYXRlIGEgcmluZyBidWZmZXIgZm9yIEF1ZGlvIHNvdXJjZXMu
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6On5Tb3Vy
Y2UpOiBTYW1lIGZvciBkZWFsbG9jYXRlLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6U291cmNlOjpzdG9yYWdlKTogbV9yaW5nQnVmZmVyIGlzIGEgcG9pbnRlci4K
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0U3Rv
cmFnZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
U291cmNlOjpzZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMpOiBEaXR0by4KKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3Vy
Y2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKTogQ3JlYXRlIGEgCisgICAgICAgIFBpeGVs
QnVmZmVyLWJhY2tlZCBtZWRpYSBzYW1wbGUgYW5kIGNhbGwgdmlkZW9TYW1wbGVBdmFpbGFibGUu
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIpOiBDbGVhciB0aGUgYXVkaW8gYW5kIGRpc3BsYXkgY2FwdHVyZQorICAgICAg
ICBmYWN0b3J5IG92ZXJyaWRlcy4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmluaXRpYWxpemUpOiBTZXQgdGhlIGF1ZGlvIGFuZCBkaXNwbGF5IGNhcHR1cmUgZmFj
dG9yeSBvdmVycmlkZXMuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpjcmVhdGVDYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjoKKwogMjAxOC0xMC0x
OCAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIyMzcyNzIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDcwZTRhMTUwYTlmNjg0
NTQxMjdiMWNmYTBlNzJlMTZiY2I0YWI0N2QuLjgwMjFhY2UxZDQwZjc5YTVhMWRlNGQ3NGRlZTVh
YzA5MTE2MGQ4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNjY5LDYgKzE2NjksNyBAQCBwbGF0Zm9y
bS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL1JlZ2lvbi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNw
cAogcGxhdGZvcm0vZ3JhcGhpY3MvUm91bmRlZFJlY3QuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9T
aGFkb3dCbHVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDc4YmZkMjk1ZDdhNTkwNWFkODhkMDQwMDI5NjI5NDkyOWFjMzhhZjYuLjg3NmFhYjhhMmUzMjEz
NTlmOWNmYzVlOTM3NmM3ZWQxODdhNmJmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExNCw2ICsxMTQsNyBAQAogCQkwNzM3
OTRGQTE5RjU4NjRFMDBFNUEwNDUgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RjQxOUY1ODY0
RTAwRTVBMDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCAqLzsgfTsKIAkJMDczNzk0
RkUxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0NSAv
KiBSVENOb3RpZmllcnNNb2NrLmggKi87IH07CiAJCTA3Mzk0RUNBMUJBQjJDRDcwMEJFOTlDRCAv
KiBNZWRpYURldmljZXNSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzM5NEVDOTFCQUIyQ0Q3MDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVx
dWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQTE1NTMyMTc3QTM5QTAw
RUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlv
U2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlz
dC5oICovOyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRh
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IH07
CiAJCTA3M0JEQzA1MUY2ODQzNjEwMEVFMzRFRCAvKiBUcmFja1ByaXZhdGVCYXNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NkUxMUJFMUY2ODNF
MEQwMDE3NzM5NSAvKiBUcmFja1ByaXZhdGVCYXNlLmNwcCAqLzsgfTsKQEAgLTYxOCw3ICs2MTks
NyBAQAogCQkxQUZFMTE5QTBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZFMTE5
ODBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggKi87IH07CiAJCTFB
RkZDNDU4MUQ1RTg2NTUwMDI2N0E2NiAvKiBXZWJHTEJsYWNrbGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRkM0NTExRDVFN0VDNzAwMjY3QTY2
IC8qIFdlYkdMQmxhY2tsaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMUFGRkM0NTkxRDVFODY2MTAwMjY3QTY2IC8qIFBsdWdpbkJsYWNrbGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRkM0
NEYxRDVFN0VDNzAwMjY3QTY2IC8qIFBsdWdpbkJsYWNrbGlzdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFCMTI0RDhEMUQzODBCNzAwMEVDREZC
MCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFCMTI0RDhDMUQzODBCNzAwMEVDREZCMCAvKiBNZWRpYVNhbXBsZUFW
Rk9iakMuaCAqLzsgfTsKKwkJMUIxMjREOEQxRDM4MEI3MDAwRUNERkIwIC8qIE1lZGlhU2FtcGxl
QVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUIxMjREOEMxRDM4MEI3MDAwRUNERkIwIC8qIE1lZGlhU2FtcGxlQVZGT2JqQy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFCMTI0RDhGMUQzODBC
QjYwMEVDREZCMCAvKiBNZWRpYVNhbXBsZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQjEyNEQ4RTFEMzgwQkI2MDBFQ0RGQjAgLyogTWVk
aWFTYW1wbGVBVkZPYmpDLm1tICovOyB9OwogCQkxQkY5REIzQzFEMzk3M0FEMDAyNkFFQjcgLyog
TWVkaWFTYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDMDEwNzAxMTkyNTk0REYw
MDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMDEwNkZGMTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVU
ZXh0Qm94U3R5bGUuaCAqLzsgfTsKQEAgLTUzNjMsNiArNTM2NCw4IEBACiAJCTA3Mzc5NEY4MTlG
NTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJUQ05vdGlmaWVyc01vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDczOTRFQzcxQkFCMkNDRDAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFEZXZpY2VzUmVxdWVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzk0RUM5MUJBQjJDRDcwMEJF
OTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhRGV2aWNlc1JlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDczQTE1NTEyMTc3QTM5ODAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3M0I4NzU2MUU0MERDRTUwMDcxQzBFQyAvKiBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NTcxRTQwRENG
RDAwNzFDMEVDIC8qIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNCODc1ODFFNDBEQ0ZEMDA3MUMwRUMgLyogQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTk3ODksNyArMTk3OTIsOSBAQAogCQkJCUU0MjA1MDE2MjE0MTkwMUIwMDY2RUYzQiAvKiBQ
cm9jZXNzV2FybWluZy5jcHAgKi8sCiAJCQkJRTQyMDUwMTQyMTQxOTAxQTAwNjZFRjNCIC8qIFBy
b2Nlc3NXYXJtaW5nLmggKi8sCiAJCQkJQ0Q5QTg3RjkyMTVENkNGMzAwNkYxN0I1IC8qIFF1aXJr
cy5jcHAgKi8sCisJCQkJQ0Q5QTg3RjIyMTVENDNBNjAwNkYxN0I1IC8qIFF1aXJrcy5jcHAgKi8s
CiAJCQkJQ0Q5QTg3RkIyMTVENkNGMzAwNkYxN0I1IC8qIFF1aXJrcy5oICovLAorCQkJCUNEOUE4
N0YxMjE1RDQzQTYwMDZGMTdCNSAvKiBRdWlya3MuaCAqLywKIAkJCQk0NkI5NTE4RDIwN0Q2MzJB
MDBBN0QyREQgLyogUmVtb3RlRE9NV2luZG93LmNwcCAqLywKIAkJCQk0NkI5NTE4RTIwN0Q2MzJB
MDBBN0QyREQgLyogUmVtb3RlRE9NV2luZG93LmggKi8sCiAJCQkJNDZCQ0JCQzMyMDg1MDBBNzAw
NzEwNjM4IC8qIFJlbW90ZURPTVdpbmRvdy5pZGwgKi8sCkBAIC0xOTgwMiw4ICsxOTgwNyw2IEBA
CiAJCQkJQTUwNzFFODQxQzU2RDA3OTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWQuaCAq
LywKIAkJCQk3QzUyMjI5QjFFMURBRTQ3MDAyQ0I4RjcgLyogUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5jcHAgKi8sCiAJCQkJN0M1MjIyOUMxRTFEQUU0NzAwMkNCOEY3IC8qIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCAqLywKLQkJCQlDRDlBODdGMjIxNUQ0M0E2MDA2RjE3QjUgLyogUXVpcmtzLmNw
cCAqLywKLQkJCQlDRDlBODdGMTIxNUQ0M0E2MDA2RjE3QjUgLyogUXVpcmtzLmggKi8sCiAJCQkJ
QkNFQzAxQkEwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5jcHAgKi8sCiAJCQkJQkNFQzAxQkIw
QzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5oICovLAogCQkJCUJDRUMwMUJDMEMyNzREQUMwMDlG
NEVDOSAvKiBTY3JlZW4uaWRsICovLApAQCAtMjQxMTQsNiArMjQxMTcsOCBAQAogCQkJCTA3NEU4
MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLywKIAkJCQlCQ0FC
NDE3RjEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmNwcCAqLywKIAkJCQlCQ0FCNDE4MDEzRTM1
NkU4MDBEOEFBRjMgLyogUmVnaW9uLmggKi8sCisJCQkJMDczQTE1NTEyMTc3QTM5ODAwRUEwOEYy
IC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLywKKwkJCQkwNzNBMTU1MzIxNzdBMzlBMDBFQTA4
RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLywKIAkJCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFB
RjkgLyogUm91bmRlZFJlY3QuY3BwICovLAogCQkJCUE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAv
KiBSb3VuZGVkUmVjdC5oICovLAogCQkJCTBGM0RENDREMTJGNUVBMUIwMDBEOTE5MCAvKiBTaGFk
b3dCbHVyLmNwcCAqLywKQEAgLTI1MTQ5LDYgKzI1MTU0LDggQEAKIAkJCQlDRDk0QTVDOTFGNzFD
QTlEMDBGNTI1QzUgLyogQ0RNQ2xpZW50LmggKi8sCiAJCQkJQ0QwNjNGODAxRTIzRkE4OTAwODEy
QkUzIC8qIEluaXREYXRhUmVnaXN0cnkuY3BwICovLAogCQkJCUNEMDYzRjgxMUUyM0ZBODkwMDgx
MkJFMyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmggKi8sCisJCQkJQ0RGNzU2OUQyMTVDMjQ0NDAwRUZD
QjUwIC8qIE1lZGlhS2V5RW5jcnlwdGlvblNjaGVtZS5oICovLAorCQkJCUNERjc1NjlFMjE1QzI4
NUUwMEVGQ0I1MCAvKiBNZWRpYUtleUVuY3J5cHRpb25TY2hlbWUuaWRsICovLAogCQkJCTJEOUJG
NzJGMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleU1lc3NhZ2VFdmVudC5jcHAgKi8sCiAJCQkJ
MkQ5QkY3MzAxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmggKi8sCiAJ
CQkJMkQ5QkY2RjUxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmlkbCAq
LywKQEAgLTI1MTU3LDggKzI1MTY0LDYgQEAKIAkJCQkyRDlCRjczMzFEQkZEQzBGMDA3QTdEOTkg
LyogTWVkaWFLZXlzLmNwcCAqLywKIAkJCQkyRDlCRjczNDFEQkZEQzBGMDA3QTdEOTkgLyogTWVk
aWFLZXlzLmggKi8sCiAJCQkJMkQ5QkY2RjYxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5cy5p
ZGwgKi8sCi0JCQkJQ0RGNzU2OUQyMTVDMjQ0NDAwRUZDQjUwIC8qIE1lZGlhS2V5RW5jcnlwdGlv
blNjaGVtZS5oICovLAotCQkJCUNERjc1NjlFMjE1QzI4NUUwMEVGQ0I1MCAvKiBNZWRpYUtleUVu
Y3J5cHRpb25TY2hlbWUuaWRsICovLAogCQkJCTJEOUJGNzM1MURCRkRDMEYwMDdBN0Q5OSAvKiBN
ZWRpYUtleVNlc3Npb24uY3BwICovLAogCQkJCTJEOUJGNzM2MURCRkRDMEYwMDdBN0Q5OSAvKiBN
ZWRpYUtleVNlc3Npb24uaCAqLywKIAkJCQkyRDlCRjZGNzFEQkZCNzFGMDA3QTdEOTkgLyogTWVk
aWFLZXlTZXNzaW9uLmlkbCAqLywKQEAgLTI5Mjc5LDYgKzI5Mjg0LDcgQEAKIAkJCQlGRDIzQTEy
NjEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEOUJGNzEyMURCRkQ5MTQwMDdBN0Q5OSAvKiBKU01lZGlhRW5jcnlw
dGVkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxNDE5MENENjgyNjkwMEZBREE3NSAv
KiBKU01lZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERjc1NkEzMjE1QzI5RTkwMEVG
Q0I1MCAvKiBKU01lZGlhS2V5RW5jcnlwdGlvblNjaGVtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkQ5QkY3MjgxREJGREIwRDAwN0E3RDk5IC8qIEpTTWVkaWFLZXlNZXNzYWdlRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEOUJGNzI5MURCRkRCMTAwMDdBN0Q5OSAvKiBKU01lZGlhS2V5cy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5QkY3MkExREJGREIxMzAwN0E3RDk5IC8qIEpTTWVkaWFL
ZXlTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI5OTYxLDcgKzI5OTY3LDYgQEAKIAkJCQk1
MTA1OEFFMDFENjdDMjI5MDA5QTUzOEMgLyogTW9ja0dhbWVwYWQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxMDU4QUUyMUQ2N0MyMjkwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTNDQ0Q0QTIwREUwMzRGMDA2NUEyMUEgLyogTW9ja01lZGlhRGV2
aWNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlDREY3NTZBMzIxNUMyOUU5MDBFRkNCNTAgLyogSlNN
ZWRpYUtleUVuY3J5cHRpb25TY2hlbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERjJCMDEzMTgy
MDU0MDYwMEYyQjQyNCAvKiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RGMkIwMTUxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tNZWRpYVNvdXJjZVByaXZh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQkI4NUE5MjE1OUIwMkMwMDY3RTA3RCAvKiBNb2Nr
UGF5bWVudEVycm9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMzE3LDYgKzMwMzIyLDcgQEAKIAkJ
CQlDRDhBQ0E4OTFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0NkI5NTE5OTIwN0Q2MzREMDBBN0QyREQgLyogUmVtb3RlRE9N
V2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI5NTE5QTIwN0Q2MzU0MDBBN0QyREQgLyog
UmVtb3RlRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhG
MiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDA2QzBEOEYwQ0ZE
MTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzMzA5RTA1MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMzMDlFMDcwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9N
ZWRpYVNhbXBsZS5oCmluZGV4IDA1MGQ5Mzg5ZDE4ZTEwZjVkOTdiYTQzZDg2MGMyYTEzNTIwNjYy
ZmUuLjc1MTY2NTYyMWFjZDI1YTJkZmIyZWEyOWExYzkwNjVlZTIyOTMxMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAg
fTsKICAgICB2aXJ0dWFsIFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIFZpZGVvUm90YXRpb246Ok5vbmU7IH0KICAgICB2aXJ0dWFsIGJvb2wgdmlkZW9NaXJyb3Jl
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB1aW50MzJfdCB2aWRlb1Bp
eGVsRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiAgICAgYm9vbCBpc1N5bmMoKSBjb25z
dCB7IHJldHVybiBmbGFncygpICYgSXNTeW5jOyB9CiAgICAgYm9vbCBpc05vbkRpc3BsYXlpbmco
KSBjb25zdCB7IHJldHVybiBmbGFncygpICYgSXNOb25EaXNwbGF5aW5nOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWFlMjcwYTZjNDQxZWQ5YmQ3NzBjMjFiYjAzNDhhY2FiMTUxNzQ3MgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZp
ZGVvU2FtcGxlLmNwcApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90
ZVZpZGVvU2FtcGxlLmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFT
YW1wbGUuaCIKKworI2lmIEhBVkUoSU9TVVJGQUNFKQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dENHLmgiCisjZW5kaWYKKworI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgor
I2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3Vz
aW5nIG5hbWVzcGFjZSBQQUw7CisKKyNpZiBIQVZFKElPU1VSRkFDRSkKK3N0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShNZWRpYVNhbXBs
ZSYmIHNhbXBsZSkKK3sKKyAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9
PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKKworICAgIGF1dG8gaW1hZ2VC
dWZmZXIgPSBDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBs
ZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CisgICAgaWYgKCFpbWFnZUJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIHN1cmZhY2UgPSBDVlBpeGVsQnVmZmVyR2V0
SU9TdXJmYWNlKGltYWdlQnVmZmVyKTsKKyAgICBpZiAoIXN1cmZhY2UpIHsKKyAgICAgICAgUkVM
RUFTRV9MT0coTWVkaWEsICJSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlOiBDVlBpeGVsQnVmZmVy
R2V0SU9TdXJmYWNlIHJldHVybmVkIG51bGxwdHIiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQorCisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4o
bmV3IFJlbW90ZVZpZGVvU2FtcGxlKHN1cmZhY2UsIHNSR0JDb2xvclNwYWNlUmVmKCksIHNhbXBs
ZS5wcmVzZW50YXRpb25UaW1lKCksIHNhbXBsZS52aWRlb1JvdGF0aW9uKCksIHNhbXBsZS52aWRl
b01pcnJvcmVkKCkpKTsKK30KKworUmVtb3RlVmlkZW9TYW1wbGU6OlJlbW90ZVZpZGVvU2FtcGxl
KElPU3VyZmFjZVJlZiBzdXJmYWNlLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwgTWVkaWFU
aW1lJiYgdGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb24sIGJvb2wgbWly
cm9yZWQpCisgICAgOiBtX2lvU3VyZmFjZShXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21T
dXJmYWNlKHN1cmZhY2UsIGNvbG9yU3BhY2UpKQorICAgICwgbV9yb3RhdGlvbihyb3RhdGlvbikK
KyAgICAsIG1fdGltZShXVEZNb3ZlKHRpbWUpKQorICAgICwgbV92aWRlb0Zvcm1hdChJT1N1cmZh
Y2VHZXRQaXhlbEZvcm1hdChzdXJmYWNlKSkKKyAgICAsIG1fc2l6ZShJbnRTaXplKElPU3VyZmFj
ZUdldFdpZHRoKHN1cmZhY2UpLCBJT1N1cmZhY2VHZXRIZWlnaHQoc3VyZmFjZSkpKQorICAgICwg
bV9taXJyb3JlZChtaXJyb3JlZCkKK3sKK30KKworSU9TdXJmYWNlUmVmIFJlbW90ZVZpZGVvU2Ft
cGxlOjpzdXJmYWNlKCkKK3sKKyAgICBpZiAoIW1faW9TdXJmYWNlICYmIG1fc2VuZFJpZ2h0KQor
ICAgICAgICBtX2lvU3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbVNlbmRS
aWdodChXVEZNb3ZlKG1fc2VuZFJpZ2h0KSwgc1JHQkNvbG9yU3BhY2VSZWYoKSk7CisKKyAgICBy
ZXR1cm4gbV9pb1N1cmZhY2UgPyBtX2lvU3VyZmFjZS0+c3VyZmFjZSgpIDogbnVsbHB0cjsKK30K
KyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UmVtb3RlVmlkZW9TYW1wbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmJjZWFkNmE0NzIzN2M4ZDNhY2MzOGY2
MDljZjFhODBkYWI4MzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaApAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb1NhbXBsZS5oIgor
I2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5o
PgorCisjaWYgSEFWRShJT1NVUkZBQ0UpCisjaW5jbHVkZSAiSU9TdXJmYWNlLmgiCisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZSB7CitwdWJs
aWM6CisgICAgUmVtb3RlVmlkZW9TYW1wbGUoKSA9IGRlZmF1bHQ7CisgICAgflJlbW90ZVZpZGVv
U2FtcGxlKCkgPSBkZWZhdWx0OworCisjaWYgSEFWRShJT1NVUkZBQ0UpCisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKE1l
ZGlhU2FtcGxlJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIElPU3VyZmFjZVJlZiBzdXJmYWNlKCk7
CisjZW5kaWYKKworICAgIGNvbnN0IE1lZGlhVGltZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGltZTsgfQorICAgIHVpbnQzMl90IHZpZGVvRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV92aWRl
b0Zvcm1hdDsgfQorICAgIEludFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKKyAgICB7CisjaWYgSEFWRShJT1NVUkZBQ0UpCisgICAgICAgIGlmIChtX2lvU3Vy
ZmFjZSkKKyAgICAgICAgICAgIGVuY29kZXIgPDwgbV9pb1N1cmZhY2UtPmNyZWF0ZVNlbmRSaWdo
dCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlbmNvZGVyIDw8IFdURjo6TWFjaFNlbmRS
aWdodCgpOworI2VuZGlmCisgICAgICAgIGVuY29kZXIgPDwgbV9yb3RhdGlvbjsKKyAgICAgICAg
ZW5jb2RlciA8PCBtX3RpbWU7CisgICAgICAgIGVuY29kZXIgPDwgbV92aWRlb0Zvcm1hdDsKKyAg
ICAgICAgZW5jb2RlciA8PCBtX3NpemU7CisgICAgICAgIGVuY29kZXIgPDwgbV9taXJyb3JlZDsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlVmlkZW9TYW1wbGUmIHNhbXBsZSkKKyAgICB7CisjaWYg
SEFWRShJT1NVUkZBQ0UpCisgICAgICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJpZ2h0OworICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHNlbmRSaWdodCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIHNhbXBsZS5tX3NlbmRSaWdodCA9IFdURk1vdmUoc2VuZFJpZ2h0KTsKKyNl
bmRpZgorICAgICAgICBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbjsKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyb3RhdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIHNhbXBsZS5tX3JvdGF0aW9uID0gcm90YXRpb247CisKKyAgICAgICAgTWVk
aWFUaW1lIHRpbWU7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGltZSkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHNhbXBsZS5tX3RpbWUgPSBXVEZNb3ZlKHRpbWUp
OworCisgICAgICAgIHVpbnQzMl90IGZvcm1hdDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShmb3JtYXQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBzYW1wbGUubV92
aWRlb0Zvcm1hdCA9IGZvcm1hdDsKKworICAgICAgICBJbnRTaXplIHNpemU7CisgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIHNhbXBsZS5tX3NpemUgPSBXVEZNb3ZlKHNpemUpOworCisgICAgICAgIGJvb2wgbWlycm9y
ZWQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWlycm9yZWQpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBzYW1wbGUubV9taXJyb3JlZCA9IG1pcnJvcmVkOworCisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworcHJpdmF0ZToKKworI2lmIEhBVkUoSU9TVVJG
QUNFKQorICAgIFJlbW90ZVZpZGVvU2FtcGxlKElPU3VyZmFjZVJlZiwgQ0dDb2xvclNwYWNlUmVm
LCBNZWRpYVRpbWUmJiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24sIGJvb2wpOworCisgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gbV9pb1N1cmZhY2U7CisgICAgV1RG
OjpNYWNoU2VuZFJpZ2h0IG1fc2VuZFJpZ2h0OworI2VuZGlmCisgICAgTWVkaWFTYW1wbGU6OlZp
ZGVvUm90YXRpb24gbV9yb3RhdGlvbiB7IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25l
IH07CisgICAgTWVkaWFUaW1lIG1fdGltZTsKKyAgICB1aW50MzJfdCBtX3ZpZGVvRm9ybWF0IHsg
MCB9OworICAgIEludFNpemUgbV9zaXplOworICAgIGJvb2wgbV9taXJyb3JlZCB7IGZhbHNlIH07
Cit9OworCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgK
aW5kZXggMDkyMzg4M2U1YmM3ZTQ0NjRiMTE2YjkyYmJmZDA4YTZlMjYzYTcyZi4uNjBlZTk2ZjQw
MjQzMzYyMmY1ODU0MTI2ZmZiMjM5NTEwNjk4Y2UzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogCiAgICAg
VmlkZW9Sb3RhdGlvbiB2aWRlb1JvdGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9y
b3RhdGlvbjsgfQogICAgIGJvb2wgdmlkZW9NaXJyb3JlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fbWlycm9yZWQ7IH0KLSAgICB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3Q7
CisgICAgdWludDMyX3QgdmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0IGZpbmFsOwogCiAgICAgQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGUuZ2V0
KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCmluZGV4IDVjMzIzMTQxMDNmNTMzNmRiMjBm
YTdjYjkzY2I3ZDllMzFiNGM3NWEuLjU2NzJiODU2MDAyYmUxMjlkZWJkMjFjOWFkZTYzZDU2ZDZh
YjE2MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0lt
YWdlVHJhbnNmZXJTZXNzaW9uVlQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGlj
OgogICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gY3JlYXRlTWVkaWFTYW1wbGUoQ01TYW1wbGVCdWZm
ZXJSZWYsIGNvbnN0IEludFNpemUmLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiA9IE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lLCBib29sIG1pcnJvcmVkID0gZmFsc2UpOwogCiAj
aWYgSEFWRShJT1NVUkZBQ0UpICYmICFQTEFURk9STShJT1NNQUMpCi0gICAgUmVmUHRyPE1lZGlh
U2FtcGxlPiBjcmVhdGVNZWRpYVNhbXBsZShJT1N1cmZhY2VSZWYsIGNvbnN0IE1lZGlhVGltZSYs
IGNvbnN0IEludFNpemUmLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiA9IE1lZGlhU2FtcGxl
OjpWaWRlb1JvdGF0aW9uOjpOb25lLCBib29sIG1pcnJvcmVkID0gZmFsc2UpOworICAgIFdFQkNP
UkVfRVhQT1JUIFJlZlB0cjxNZWRpYVNhbXBsZT4gY3JlYXRlTWVkaWFTYW1wbGUoSU9TdXJmYWNl
UmVmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBJbnRTaXplJiwgTWVkaWFTYW1wbGU6OlZpZGVv
Um90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3Jl
ZCA9IGZhbHNlKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0K
aW5kZXggOTRiMTljZDQzNDdmZmE3ODIxNTAwODY4OTVhMWU3MGE2YjE0OTcwMC4uZGJkNThiMzJl
ZjY4NDI0NjA0MTExMmQzNjFiYzY2ZmMyZmQxOWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZU
Lm1tCkBAIC0xNDgsNyArMTQ4LDcgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBhdXRv
IGRlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzb3VyY2VC
dWZmZXIpOwogICAgIGF1dG8gc291cmNlU2l6ZSA9IEZsb2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGRlc2NyaXB0aW9uLCB0cnVlLCB0cnVl
KSk7CiAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+
KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSk7Ci0gICAgaWYgKHNp
emUgPT0gcm91bmRlZEludFNpemUoc291cmNlU2l6ZSkgJiYgbV9waXhlbEZvcm1hdCA9PSBDVlBp
eGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKSkKKyAgICBpZiAoc2l6ZSA9
PSBleHBhbmRlZEludFNpemUoc291cmNlU2l6ZSkgJiYgbV9waXhlbEZvcm1hdCA9PSBDVlBpeGVs
QnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKSkKICAgICAgICAgcmV0dXJuIHJl
dGFpblB0cihzb3VyY2VCdWZmZXIpOwogCiAgICAgaWYgKCFzZXRTaXplKHNpemUpKQpAQCAtMzQw
LDcgKzM0MCw3IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y29udmVydE1lZGlhU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wCiB7CiAgICAgQVNTRVJUKHNhbXBs
ZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVy
VHlwZSk7CiAKLSAgICBpZiAoc2l6ZSA9PSByb3VuZGVkSW50U2l6ZShzYW1wbGUucHJlc2VudGF0
aW9uU2l6ZSgpKSkKKyAgICBpZiAoc2l6ZSA9PSBleHBhbmRlZEludFNpemUoc2FtcGxlLnByZXNl
bnRhdGlvblNpemUoKSkpCiAgICAgICAgIHJldHVybiAmc2FtcGxlOwogCiAgICAgYXV0byByZXNp
emVkQnVmZmVyID0gY29udmVydENNU2FtcGxlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgp
LnNhbXBsZS5jbVNhbXBsZUJ1ZmZlciwgc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4
IGVjOGI1YjlkZGUwY2NkNzUxNDE0YmVhNDIyYzVjNjVlOWIyMzhiMWYuLmYyZGQ0NmM3ZDAyMmIw
NGQzYzk2NGJmNjhlMTc3MzdmMjdjOGNhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0x
NTgsNiArMTU4LDEzIEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFp
bGFibGUoTWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKQogICAgIH0pOwogfQogCit2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFJlbW90ZVZpZGVvU2Ft
cGxlJiYgc2FtcGxlKQoreworICAgIGZvckVhY2hPYnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIp
IHsKKyAgICAgICAgb2JzZXJ2ZXIucmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoc2FtcGxlKTsK
KyAgICB9KTsKK30KKwogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVk
aW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90
IG51bWJlck9mRnJhbWVzKQogewogICAgIGZvckVhY2hPYnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2
ZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCBhOTNkZTMzOGM0MWE1NzFjYjEwNWQxZjQzNmQ1
MmM1ZTU5MzgwYjYxLi43YWE4NjBjODU5MmZkOGEwNGU4N2IwMjI4NDIwOGIyYTEwMDRjMGJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02MSw2ICs2MSw3IEBAIGNsYXNzIE1lZGlhU3RyZWFtUHJp
dmF0ZTsKIGNsYXNzIE9yaWVudGF0aW9uTm90aWZpZXI7CiBjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0
YTsKIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczsKK2NsYXNzIFJlbW90ZVZpZGVv
U2FtcGxlOwogCiBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7CiAKQEAgLTgxLDYgKzgyLDcg
QEAgcHVibGljOgogCiAgICAgICAgIC8vIENhbGxlZCBvbiB0aGUgbWFpbiB0aHJlYWQuCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYpIHsgfQor
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVtb3RlVmlk
ZW9TYW1wbGUmKSB7IH0KIAogICAgICAgICAvLyBNYXkgYmUgY2FsbGVkIG9uIGEgYmFja2dyb3Vu
ZCB0aHJlYWQuCiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29u
c3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgc2l6ZV90IC8qbnVtYmVyT2ZGcmFtZXMqLykgeyB9CkBAIC0xNjUsNiAr
MTY3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0luY29taW5nQXVkaW9Tb3VyY2Uo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0luY29taW5nVmlk
ZW9Tb3VyY2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdm9pZCBzZXRJc1JlbW90
ZShib29sIGlzUmVtb3RlKSB7IG1faXNSZW1vdGUgPSBpc1JlbW90ZTsgfQorICAgIGJvb2wgaXNS
ZW1vdGUoKSBjb25zdCB7IHJldHVybiBtX2lzUmVtb3RlOyB9CisKICAgICAvLyBUZXN0aW5nIG9u
bHkKICAgICB2aXJ0dWFsIHZvaWQgZGVsYXlTYW1wbGVzKFNlY29uZHMpIHsgfTsKIApAQCAtMTk2
LDEzICsyMDEsMTMgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJs
ZShNZWRpYVNhbXBsZSYpOwogICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYsIHNpemVfdCk7CisgICAgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShS
ZW1vdGVWaWRlb1NhbXBsZSYmKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQ
cm9kdWNpbmdEYXRhKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIHNldHRpbmdzRGlkQ2hhbmdlKE9wdGlvblNldDxSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3M6OkZsYWc+KSB7IH0KIAotCiAgICAgdm9pZCBmb3JFYWNoT2Jz
ZXJ2ZXIoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+JikgY29uc3Q7CiAKICAg
ICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwpAQCAtMjI4LDYgKzIzMyw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2ludGVycnVw
dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fY2FwdHVyZURpZEZhaWxlZCB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX2lzUmVtb3RlIHsgZmFsc2UgfTsKIH07CiAKIHN0cnVjdCBDYXB0dXJlU291cmNl
T3JFcnJvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDE0OTEzM2Q4NWIxNmIyMWY0YzMx
MDBhOWU2MWEwYjZlOWM4YmJhYzIuLjBiNGE2ZWQxYzhlMTU1N2E4NDFlMjQxZGRiN2UzZWEyNjcz
NTczMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC0zMSw2ICszMSwxMSBAQAogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgiCiAj
aW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgiCisjaW5jbHVkZSAiUmVtb3Rl
VmlkZW9TYW1wbGUuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQuaCIKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM3
OCw3ICszODMsMzYgQEAgdm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjpkaXNwYXRjaE1lZGlhU2Ft
cGxlVG9PYnNlcnZlcnMoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICBpZiAoaW50ZXJ2YWwgPiAx
KQogICAgICAgICBtX29ic2VydmVkRnJhbWVSYXRlID0gKG1fb2JzZXJ2ZWRGcmFtZVRpbWVTdGFt
cHMuc2l6ZSgpIC8gaW50ZXJ2YWwpOwogCi0gICAgdmlkZW9TYW1wbGVBdmFpbGFibGUoc2FtcGxl
KTsKKyAgICBpZiAoaXNSZW1vdGUoKSkgeworI2lmIEhBVkUoSU9TVVJGQUNFKQorICAgICAgICBh
dXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoV1RGTW92ZShzYW1w
bGUpKTsKKyAgICAgICAgaWYgKHJlbW90ZVNhbXBsZSkKKyAgICAgICAgICAgIHJlbW90ZVZpZGVv
U2FtcGxlQXZhaWxhYmxlKFdURk1vdmUoKnJlbW90ZVNhbXBsZSkpOworI2Vsc2UKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGF1dG8gbWVkaWFTYW1wbGUgPSBtYWtlUmVmUHRyKCZzYW1wbGUpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIGF1dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsKKyAgICBpZiAoIXNpemUuaXNF
bXB0eSgpICYmIHNpemUgIT0gZXhwYW5kZWRJbnRTaXplKHNhbXBsZS5wcmVzZW50YXRpb25TaXpl
KCkpKSB7CisKKyAgICAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKQorICAgICAgICAg
ICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0
ZShzYW1wbGUudmlkZW9QaXhlbEZvcm1hdCgpKTsKKworICAgICAgICBpZiAobV9pbWFnZVRyYW5z
ZmVyU2Vzc2lvbikgeworICAgICAgICAgICAgbWVkaWFTYW1wbGUgPSBtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uLT5jb252ZXJ0TWVkaWFTYW1wbGUoc2FtcGxlLCBzaXplKTsKKyAgICAgICAgICAgIGlm
ICghbWVkaWFTYW1wbGUpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisjZW5kaWYKKworICAgIHZpZGVvU2FtcGxlQXZhaWxhYmxlKG1lZGlhU2FtcGxlLnJlbGVhc2VO
b25OdWxsKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgK
aW5kZXggNDdjNGY1ZWUzYzFmNjU2YWQ1MjBiNGJlYjgzYjQ3MmY3NGQwOWRkMC4uODQyNjhhYjY2
NmUzOWQ3NzA1ZDgwODhkY2FjODUzZDU1MWU2ZmFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAt
MzcsNiArMzcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ7CisKIGNsYXNzIFJlYWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRp
bWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVWaWRlb1NvdXJj
ZSgpOwpAQCAtODMsNiArODUsOSBAQCBwcml2YXRlOgogICAgIERlcXVlPGRvdWJsZT4gbV9vYnNl
cnZlZEZyYW1lVGltZVN0YW1wczsKICAgICBkb3VibGUgbV9vYnNlcnZlZEZyYW1lUmF0ZSB7IDAg
fTsKICAgICBJbnRTaXplIG1fZGVmYXVsdFNpemU7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
c3RkOjp1bmlxdWVfcHRyPEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNl
c3Npb247CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNv
dXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVv
Q2FwdHVyZVNvdXJjZS5tbQppbmRleCBlYzQzYWUwNjk0MzEzNGFkZmFiNjkzOGQ1ZWQ2OTBmM2Iw
ZjkwZTk4Li44M2FmZWQ3NjJmYzYxMmU0MzEyYTExNTZjMjk1ZGQzOGE4Y2M0MDgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1
cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCkBAIC01NDAsMjcgKzU0MCw5IEBAIHZvaWQgQVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnByb2Nlc3NOZXdGcmFtZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxl
KQogCiB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYXB0dXJlT3V0cHV0RGlkT3V0cHV0U2Ft
cGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJlT3V0cHV0VHlwZSosIENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQVZDYXB0dXJlQ29ubmVjdGlvblR5cGUqIGNhcHR1cmVDb25u
ZWN0aW9uKQogewotICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24g
PSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlcik7Ci0gICAg
aWYgKCFmb3JtYXREZXNjcmlwdGlvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ01WaWRlb0Rp
bWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lv
bnMoZm9ybWF0RGVzY3JpcHRpb24pOwotICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gc2FtcGxlOwot
ICAgIGlmIChkaW1lbnNpb25zLndpZHRoICE9IG1fcmVxdWVzdGVkU2l6ZS53aWR0aCgpIHx8IGRp
bWVuc2lvbnMuaGVpZ2h0ICE9IG1fcmVxdWVzdGVkU2l6ZS5oZWlnaHQoKSkgewotCi0gICAgICAg
IGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikKLSAgICAgICAgICAgIG1faW1hZ2VUcmFuc2Zl
clNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUoYXZWaWRlb0NhcHR1cmVQ
aXhlbEJ1ZmZlckZvcm1hdCgpKTsKLQotICAgICAgICBzYW1wbGUgPSBtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShzYW1wbGVCdWZmZXIsIG1fcmVxdWVzdGVkU2l6ZSwg
bV9zYW1wbGVSb3RhdGlvbiwgW2NhcHR1cmVDb25uZWN0aW9uIGlzVmlkZW9NaXJyb3JlZF0pOwot
ICAgICAgICBpZiAoIXNhbXBsZSkgewotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9IGVsc2UKLSAgICAgICAgc2Ft
cGxlID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlQnVmZmVyLCBtX3NhbXBsZVJv
dGF0aW9uLCBbY2FwdHVyZUNvbm5lY3Rpb24gaXNWaWRlb01pcnJvcmVkXSk7Ci0KKyAgICBhdXRv
IHNhbXBsZSA9IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlKHNhbXBsZUJ1ZmZlciwgbV9zYW1w
bGVSb3RhdGlvbiwgW2NhcHR1cmVDb25uZWN0aW9uIGlzVmlkZW9NaXJyb3JlZF0pOwogICAgIHNj
aGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzLCBzYW1wbGUgPSBXVEZNb3ZlKHNhbXBsZSldICgpIG11
dGFibGUgewotICAgICAgICBwcm9jZXNzTmV3RnJhbWUoc2FtcGxlLnJlbGVhc2VOb25OdWxsKCkp
OworICAgICAgICBwcm9jZXNzTmV3RnJhbWUoV1RGTW92ZShzYW1wbGUpKTsKICAgICB9KTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmluZGV4IDM0MzU3NGU3
YjA3OWNkMjExYjA4MGY1YTdjYTZiM2FkNmNlYjdkYTcuLjMzNzJmYTI3OTY2ODFkOWM4M2I2ZDJh
MmEzMTIyZGNjOTdhNzllNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvU2FtcGxl
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxDb3JlTWVkaWEvQ01TeW5jLmg+CiAj
aW5jbHVkZSA8bWFjaC9tYWNoX3RpbWUuaD4KQEAgLTE3MiwyMiArMTczLDQ0IEBAIHZvaWQgRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6ZW1pdEZyYW1lKCkKICAgICAgICAgbV9pbWFnZVRyYW5z
ZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShwcmVmZXJlZFBpeGVs
QnVmZmVyRm9ybWF0KCkpOwogCiAgICAgYXV0byBzYW1wbGVUaW1lID0gTWVkaWFUaW1lOjpjcmVh
dGVXaXRoRG91YmxlKChlbGFwc2VkVGltZSgpICsgMTAwX21zKS5zZWNvbmRzKCkpOworCiAgICAg
YXV0byBmcmFtZSA9IGdlbmVyYXRlRnJhbWUoKTsKLSAgICBJbnRTaXplIGltYWdlU2l6ZTsKKyAg
ICBhdXRvIGltYWdlU2l6ZSA9IFdURjo6c3dpdGNoT24oZnJhbWUsCisgICAgICAgIFtdKFJldGFp
blB0cjxJT1N1cmZhY2VSZWY+IHN1cmZhY2UpIC0+IEludFNpemUgeworICAgICAgICAgICAgaWYg
KCFzdXJmYWNlKQorICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisKKyAgICAgICAgICAgIHJl
dHVybiBJbnRTaXplKElPU3VyZmFjZUdldFdpZHRoKHN1cmZhY2UuZ2V0KCkpLCBJT1N1cmZhY2VH
ZXRIZWlnaHQoc3VyZmFjZS5nZXQoKSkpOworICAgICAgICB9LAorICAgICAgICBbXShSZXRhaW5Q
dHI8Q0dJbWFnZVJlZj4gaW1hZ2UpIC0+IEludFNpemUgeworICAgICAgICAgICAgaWYgKCFpbWFn
ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9OworCisgICAgICAgICAgICByZXR1cm4gSW50
U2l6ZShDR0ltYWdlR2V0V2lkdGgoaW1hZ2UuZ2V0KCkpLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdl
LmdldCgpKSk7CisgICAgICAgIH0KKyAgICApOworCisgICAgQVNTRVJUKCFpbWFnZVNpemUuaXNF
bXB0eSgpKTsKKyAgICBpZiAoaW1hZ2VTaXplLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG1faW50cmluc2ljU2l6ZSAhPSBpbWFnZVNpemUpCisgICAgICAgIHNldEludHJp
bnNpY1NpemUoaW1hZ2VTaXplKTsKKworICAgIGF1dG8gbWVkaWFTYW1wbGVTaXplID0gaXNSZW1v
dGUoKSA/IGltYWdlU2l6ZSA6IGZyYW1lU2l6ZSgpOworCiAgICAgUmVmUHRyPE1lZGlhU2FtcGxl
PiBzYW1wbGUgPSBXVEY6OnN3aXRjaE9uKGZyYW1lLAotICAgICAgICBbdGhpcywgc2FtcGxlVGlt
ZSwgJmltYWdlU2l6ZV0oUmV0YWluUHRyPElPU3VyZmFjZVJlZj4gc3VyZmFjZSkgLT4gUmVmUHRy
PE1lZGlhU2FtcGxlPiB7CisgICAgICAgIFt0aGlzLCBzYW1wbGVUaW1lLCBtZWRpYVNhbXBsZVNp
emVdKFJldGFpblB0cjxJT1N1cmZhY2VSZWY+IHN1cmZhY2UpIC0+IFJlZlB0cjxNZWRpYVNhbXBs
ZT4gewogICAgICAgICAgICAgaWYgKCFzdXJmYWNlKQogICAgICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgICAgICAgICBpbWFnZVNpemUgPSBJbnRTaXplKElPU3VyZmFjZUdldFdp
ZHRoKHN1cmZhY2UuZ2V0KCkpLCBJT1N1cmZhY2VHZXRIZWlnaHQoc3VyZmFjZS5nZXQoKSkpOwot
ICAgICAgICAgICAgcmV0dXJuIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2Ft
cGxlKHN1cmZhY2UuZ2V0KCksIHNhbXBsZVRpbWUsIGltYWdlU2l6ZSk7CisgICAgICAgICAgICBy
ZXR1cm4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUoc3VyZmFjZS5n
ZXQoKSwgc2FtcGxlVGltZSwgbWVkaWFTYW1wbGVTaXplKTsKICAgICAgICAgfSwKLSAgICAgICAg
W3RoaXMsIHNhbXBsZVRpbWUsICZpbWFnZVNpemVdKFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFn
ZSkgLT4gUmVmUHRyPE1lZGlhU2FtcGxlPiB7CisgICAgICAgIFt0aGlzLCBzYW1wbGVUaW1lLCBt
ZWRpYVNhbXBsZVNpemVdKFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSkgLT4gUmVmUHRyPE1l
ZGlhU2FtcGxlPiB7CiAgICAgICAgICAgICBpZiAoIWltYWdlKQogICAgICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCi0gICAgICAgICAgICBpbWFnZVNpemUgPSBJbnRTaXplKENHSW1hZ2VH
ZXRXaWR0aChpbWFnZS5nZXQoKSksIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UuZ2V0KCkpKTsKLSAg
ICAgICAgICAgIHJldHVybiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBs
ZShpbWFnZS5nZXQoKSwgc2FtcGxlVGltZSwgaW1hZ2VTaXplKTsKKyAgICAgICAgICAgIHJldHVy
biBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShpbWFnZS5nZXQoKSwg
c2FtcGxlVGltZSwgbWVkaWFTYW1wbGVTaXplKTsKICAgICAgICAgfQogICAgICk7CiAKQEAgLTE5
Niw4ICsyMTksMTMgQEAgdm9pZCBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUo
KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1faW50cmluc2ljU2l6ZSAhPSBp
bWFnZVNpemUpCi0gICAgICAgIHNldEludHJpbnNpY1NpemUoaW1hZ2VTaXplKTsKKyAgICBpZiAo
aXNSZW1vdGUoKSkgeworICAgICAgICBhdXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2Ft
cGxlOjpjcmVhdGUoV1RGTW92ZSgqc2FtcGxlKSk7CisgICAgICAgIGlmIChyZW1vdGVTYW1wbGUp
CisgICAgICAgICAgICByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXVEZNb3ZlKCpyZW1vdGVT
YW1wbGUpKTsKKworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgdmlkZW9TYW1wbGVBdmFp
bGFibGUoKnNhbXBsZS5nZXQoKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2Nv
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVP
dXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IDQ0MTliYWVlZjgzZTlkY2Y3NTgyMzQw
MmEyYTgyZDM4MmRhZDZlYzkuLjMwNzlkNzllYTIxNDNiMjM2OTM3NWE1NjllM2Q3ZmM2NTdkMzVi
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29h
LmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
IlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVW
aWRlb1V0aWxpdGllcy5oIgogCiBBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCmluZGV4IDE3NjZiZjA0YmE5NzM3YWNkZjQxZmY5Yjg0NzEyMGU5ZjFkNzM3MTQuLjQ3ZTg4
ZjRiNDBmMWJiYzFlYTVlZjhjOTZjN2E3YTA1NjIyY2NiZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC03Miw2
ICs3Miw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGVu
Y29kZXIgPDwgYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgc2hv
dWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3M7CisgICAgZW5jb2RlciA8PCBzaG91bGRDYXB0dXJl
RGlzcGxheUluVUlQcm9jZXNzOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBzaG91bGRVc2VUZXN0
aW5nTmV0d29ya1Nlc3Npb247CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFz
RW1wdHlEb2N1bWVudDsKQEAgLTI2NCw2ICsyNjUsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVh
dAogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRp
b0luVUlQcm9jZXNzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0
ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbikpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAppbmRleCAzMWRiOGIwODg2ZGRkODJlNWFjOGIzZmIyOWE5MTk5ZWU0MWMwNDNlLi5m
N2NkM2NiNTU0NzY2NTVkODdiODAzZTg2OWE3MDQyM2VhODZkNjY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC05Niw2
ICs5Niw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBhdWRpb0NhcHR1
cmVFeHRlbnNpb25IYW5kbGU7CiAgICAgYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vz
cyB7IGZhbHNlIH07CisgICAgYm9vbCBzaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzIHsg
ZmFsc2UgfTsKICNlbmRpZgogICAgIFN0cmluZyBtZWRpYUtleVN0b3JhZ2VEaXJlY3Rvcnk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggOTk2YzBkZDEwY2I3ZDFiYzAzZWMwMjU5MjMzOTE2
ZGNmNzAzMzZiYi4uOWQyZTAxODRlNTkwMDFlNjhjMzc3YWY5Y2I4YWMyYjQ4ZWNlODNkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5jcHAKQEAgLTExNSw2ICsxMTUsNyBAQCBSZWY8UHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uPiBQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkoKQogICAgIGNvcHkt
Pm1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5ID0gdGhpcy0+bV9hbHdheXNSdW5zQXRC
YWNrZ3JvdW5kUHJpb3JpdHk7CiAgICAgY29weS0+bV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNz
ZXJ0aW9uID0gdGhpcy0+bV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uOwogICAgIGNv
cHktPm1fc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgPSB0aGlzLT5tX3Nob3VsZENhcHR1
cmVBdWRpb0luVUlQcm9jZXNzOworICAgIGNvcHktPm1fc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJ
UHJvY2VzcyA9IHRoaXMtPm1fc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzczsKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQogICAgIGNvcHktPm1fY3REYXRhQ29ubmVjdGlvblNlcnZpY2VU
eXBlID0gdGhpcy0+bV9jdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uaAppbmRleCA0ZDM4YjE0M2EyYTQ5MWFmZDA1YjAxNjkzOGZiYjdkNmM0YTYxMzA5
Li5lMjJmZmI0N2RlNDZkZDQ4ZGEwNDI0YzA0M2I1OTVkMzdhYjEwNjBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oCkBAIC0zNiw2ICszNiwxMiBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIAorI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCisjZGVmaW5lIERF
RkFVTFRfQ0FQVFVSRV9ESVNQTEFZX0lOX1VJX1BST0NFU1MgdHJ1ZQorI2Vsc2UKKyNkZWZpbmUg
REVGQVVMVF9DQVBUVVJFX0RJU1BMQVlfSU5fVUlfUFJPQ0VTUyBmYWxzZQorI2VuZGlmCisKIGNs
YXNzIFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBmaW5hbCA6IHB1YmxpYyBPYmplY3RJbXBsPE9i
amVjdDo6VHlwZTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IGNyZWF0ZSgpOwpAQCAtMTMzLDYgKzEz
OSw5IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzKCkg
Y29uc3QgeyByZXR1cm4gbV9zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzczsgfQogICAgIHZv
aWQgc2V0U2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoYm9vbCBzaG91bGRDYXB0dXJlQXVk
aW9JblVJUHJvY2VzcykgeyBtX3Nob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3M7IH0KIAorICAgIGJvb2wgc2hvdWxkQ2FwdHVyZURpc3Bs
YXlJblVJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJ
UHJvY2VzczsgfQorICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2Vzcyhi
b29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MpIHsgbV9zaG91bGRDYXB0dXJlRGlz
cGxheUluVUlQcm9jZXNzID0gc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzczsgfQorCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBjb25zdCBXVEY6OlN0cmluZyYgY3REYXRhQ29u
bmVjdGlvblNlcnZpY2VUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9jdERhdGFDb25uZWN0aW9uU2Vy
dmljZVR5cGU7IH0KICAgICB2b2lkIHNldENURGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZShjb25z
dCBXVEY6OlN0cmluZyYgY3REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKSB7IG1fY3REYXRhQ29u
bmVjdGlvblNlcnZpY2VUeXBlID0gY3REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlOyB9CkBAIC0x
OTQsNiArMjAzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fYWx3YXlzUnVuc0F0QmFja2dyb3Vu
ZFByaW9yaXR5IHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFz
c2VydGlvbiB7IHRydWUgfTsKICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nl
c3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNz
IHsgREVGQVVMVF9DQVBUVVJFX0RJU1BMQVlfSU5fVUlfUFJPQ0VTUyB9OwogICAgIFByb2Nlc3NJ
RCBtX3ByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCB7IGdldEN1cnJlbnRQcm9jZXNzSUQoKSB9Owog
ICAgIGJvb2wgbV9wcm9jZXNzU3dhcHNPbk5hdmlnYXRpb24geyBmYWxzZSB9OwogICAgIGJvb2wg
bV9hbHdheXNLZWVwQW5kUmV1c2VTd2FwcGVkUHJvY2Vzc2VzIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggMzhhYWIyNmRhMGYxZWI4M2VlZDk3NGQ2MTcyZWEwZmU0
NDNlZmM4Ni4uYWY4M2I2Mzg3OWNhYTM1NGIzY2MwOTE0MzNlODE1MjM5YjUxYWVmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0NBUmluZ0J1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1
ZGlvQnVmZmVyTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KIApAQCAtOTgsNiAr
OTksMTEgQEAgcHVibGljOgogICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZCwg
dGltZSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKSwgMCk7CiAgICAgfQog
CisgICAgdmlydHVhbCB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFJlbW90ZVZpZGVv
U2FtcGxlJiBzYW1wbGUpCisgICAgeworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpSZW1vdGVWaWRlb1NhbXBsZUF2YWls
YWJsZShtX2lkLCBXVEZNb3ZlKHNhbXBsZSkpLCAwKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3Jh
Z2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwgewogICAgICAgICBTaGFyZWRN
ZW1vcnk6OkhhbmRsZSBoYW5kbGU7CiAgICAgICAgIGlmIChzdG9yYWdlKQpAQCAtMTI1LDE3ICsx
MzEsMjMgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkoKQogICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7
CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlw
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRz
LCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQordm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBib29sJiBz
dWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIENhcHR1cmVTb3VyY2VPckVycm9y
IHNvdXJjZU9yRXJyb3I7Ci0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKLSAgICAgICAgc291cmNlT3JFcnJvciA9
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvRmFjdG9yeSgpLmNy
ZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCAmY29uc3Ry
YWludHMpOworICAgIHN3aXRjaCAoZGV2aWNlLnR5cGUoKSkgeworICAgIGNhc2UgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKKyAgICAgICAgc291cmNlT3JF
cnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmF1ZGlvRmFjdG9yeSgpLmNyZWF0ZUF1
ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCAmY29uc3RyYWludHMp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYToKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2Us
IFdURk1vdmUoaGFzaFNhbHQpLCAmY29uc3RyYWludHMpOwogICAgICAgICBicmVhazsKLSAgICBj
YXNlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgotICAgICAgICBz
b3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlk
ZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNo
U2FsdCksICZjb25zdHJhaW50cyk7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpXaW5kb3c6CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpBcHBsaWNhdGlvbjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkJyb3dzZXI6CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNv
dXJjZShkZXZpY2UsICZjb25zdHJhaW50cyk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICBjYXNlIFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xNDMsNiArMTU1LDcgQEAgdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWkKICAgICBzdWNjZWVkZWQgPSAhIXNvdXJjZU9yRXJyb3I7CiAg
ICAgaWYgKHNvdXJjZU9yRXJyb3IpIHsKICAgICAgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VPckVy
cm9yLnNvdXJjZSgpOworICAgICAgICBzb3VyY2UtPnNldElzUmVtb3RlKHRydWUpOwogICAgICAg
ICBzZXR0aW5ncyA9IHNvdXJjZS0+c2V0dGluZ3MoKTsKICAgICAgICAgbV9wcm94aWVzLnNldChp
ZCwgc3RkOjptYWtlX3VuaXF1ZTxTb3VyY2VQcm94eT4oaWQsICp0aGlzLCBXVEZNb3ZlKHNvdXJj
ZSkpKTsKICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCBlY2FlYWUyNDgy
M2E0MzkxZTY1OWQ1YWViM2ViZDQ3MjRjZWVhZDg4Li4zYmY5MjFmZTY4MDY0MmZjYzc2ZTFmYmRh
YmYzMTFlYTRlZGE3M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0yOSw2ICsyOSw3
IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKICNpbmNsdWRlICJVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaD4KIApAQCAtNDksNyArNTAsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAg
IHZvaWQgY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVp
bnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2VJRCwgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgU3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFp
bnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKKyAgICB2b2lkIGNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBp
ZCwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFN0cmluZyYmLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGlu
dmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7
CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAgIHZvaWQgc3RvcFBy
b2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAgIHZvaWQgY2FwYWJpbGl0aWVzKHVpbnQ2NF90LCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiZDIxOWJjOTYwOGQwNzQwNjkxOTIy
NjA0M2MwMmE3MmFlYTM1YjdiLi40NWIxYzM4NDBkZTc4ZTFmOWVkMjQzZDhiY2UxMjM2ODVhNmM0
NWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTEs
NCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsNyArMjQsNyBAQAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkgewotICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgU3RyaW5nIGhhc2hTYWx0LCBz
dHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykgLT4gKGJvb2wgc3Vj
Y2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzIHNldHRpbmdzKQorQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmlj
ZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25z
dHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQogICAgIFN0YXJ0UHJv
ZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBp
ZCkKICAgICBDYXBhYmlsaXRpZXModWludDY0X3QgaWQpIC0+IChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA4NWZmYjlhZDFmNTRmYzc1NGUzMTk5NDlkNDNk
MWYxMTZiNWFjNDE1Li43MzFlZjRiMzkyNWY1NWNlMDE0ZjdkM2E3NGI5MmFhNzM0YzY2MWRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC05MDcsNiAr
OTA3LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MoV2Vi
UHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRlRGEKICAgICBwYXJhbWV0ZXJzLnJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkID0gd2Vic2l0ZURhdGFTdG9yZS5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCgpOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgcGFyYW1ldGVy
cy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IG1fY29uZmlndXJhdGlvbi0+c2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoKTsKKyAgICBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVE
aXNwbGF5SW5VSVByb2Nlc3MgPSBtX2NvbmZpZ3VyYXRpb24tPnNob3VsZENhcHR1cmVEaXNwbGF5
SW5VSVByb2Nlc3MoKTsKICNlbmRpZgogCiAgICAgcGFyYW1ldGVycy5wcmVzZW50aW5nQXBwbGlj
YXRpb25QSUQgPSBtX2NvbmZpZ3VyYXRpb24tPnByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHAKaW5kZXggY2I2ZDZjN2VlOWFjNWMxZDVmMGJjMzhkZTIxNWEzOWQ2
ZTJmZDU4Ni4uNzIzNmE1YjVkNzU2YTNjNDZkMjg4ZGVkMDg2ZjExZmM1NjcyNDRhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwCkBAIC0zNSwxMiArMzUsMTYgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVm
ZmVyTGlzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMuaD4KKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
K3VzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGlj
IHVpbnQ2NF90IG5leHRTZXNzaW9uSUQoKQpAQCAtNTUsMTYgKzU5LDIyIEBAIHB1YmxpYzoKICAg
ICAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHR5cGUsIFdURk1vdmUobmFtZSksIFdURk1vdmUo
c291cmNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAgICAgLCBtX2lkKGlkKQogICAgICAg
ICAsIG1fbWFuYWdlcihtYW5hZ2VyKQotICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVl
UmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkKICAgICB7CisgICAgICAgIGlm
ICh0eXBlID09IFR5cGU6OkF1ZGlvKQorICAgICAgICAgICAgbV9yaW5nQnVmZmVyID0gc3RkOjpt
YWtlX3VuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2U+KG51bGxwdHIpKTsKICAgICB9CiAKICAgICB+U291cmNlKCkKICAgICB7Ci0gICAgICAg
IHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CisgICAgICAgIGlmICh0eXBlKCkgPT0gVHlwZTo6QXVk
aW8pCisgICAgICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOwogICAgIH0KIAotICAgIFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsgfQorICAgIFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCh0
eXBlKCkgPT0gVHlwZTo6QXVkaW8pOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgfQogCiAg
ICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkg
ZmluYWwKICAgICB7CkBAIC04NCwxMCArOTQsMTEgQEAgcHVibGljOgogICAgIGNvbnN0IENBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc2Ny
aXB0aW9uOyB9CiAgICAgdm9pZCBzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxl
JiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3Jp
cHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQogICAgIHsKKyAgICAgICAgQVNTRVJUKHR5
cGUoKSA9PSBUeXBlOjpBdWRpbyk7CiAgICAgICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlv
bjsKIAogICAgICAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBtX3JpbmdC
dWZmZXIuZGVhbGxvY2F0ZSgpOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRl
KCk7CiAgICAgICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHkoZmFsc2UpOwogICAgICAgICAg
ICAgc3RvcmFnZSgpLnNldFN0b3JhZ2UobnVsbHB0cik7CiAgICAgICAgICAgICByZXR1cm47CkBA
IC05NywyMiArMTA4LDUxIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmFnZSgpLnNldFN0b3JhZ2Uo
V1RGTW92ZShtZW1vcnkpKTsKICAgICAgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KHRydWUpOwog
Ci0gICAgICAgIG1fcmluZ0J1ZmZlci5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFt
ZXMpOworICAgICAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHModWlu
dDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCiAgICAgewotICAgICAgICBtX3Jp
bmdCdWZmZXIuc2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAg
ICAgICAgQVNTRVJUKHR5cGUoKSA9PSBUeXBlOjpBdWRpbyk7CisgICAgICAgIG1fcmluZ0J1ZmZl
ci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKICAgICB9CiAK
ICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3Qg
bnVtYmVyT2ZGcmFtZXMpCiAgICAgeworICAgICAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OkF1
ZGlvKTsKICAgICAgICAgV2ViQXVkaW9CdWZmZXJMaXN0IGF1ZGlvRGF0YShtX2Rlc2NyaXB0aW9u
LCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgICAgIG1fcmluZ0J1ZmZlci5mZXRjaChhdWRpb0RhdGEu
bGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgICAgIG1fcmlu
Z0J1ZmZlci0+ZmV0Y2goYXVkaW9EYXRhLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGlt
ZVZhbHVlKCkpOwogCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZSh0aW1lLCBhdWRpb0RhdGEsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsK
ICAgICB9CiAKKyNpZiBIQVZFKElPU1VSRkFDRSkKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxl
QXZhaWxhYmxlKFJlbW90ZVZpZGVvU2FtcGxlJiYgcmVtb3RlU2FtcGxlKQorICAgIHsKKyAgICAg
ICAgQVNTRVJUKHR5cGUoKSA9PSBUeXBlOjpWaWRlbyk7CisKKyAgICAgICAgYXV0byB2aWRlb1Nh
bXBsZVNpemUgPSBJbnRTaXplKG1fc2V0dGluZ3Mud2lkdGgoKSwgbV9zZXR0aW5ncy5oZWlnaHQo
KSk7CisgICAgICAgIGlmICh2aWRlb1NhbXBsZVNpemUuaXNFbXB0eSgpKQorICAgICAgICAgICAg
dmlkZW9TYW1wbGVTaXplID0gcmVtb3RlU2FtcGxlLnNpemUoKTsKKworICAgICAgICBpZiAoIW1f
aW1hZ2VUcmFuc2ZlclNlc3Npb24pCisgICAgICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9u
ID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1h
dCgpKTsKKworICAgICAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgYXV0byBzYW1wbGVSZWYgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVh
dGVNZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUuc3VyZmFjZSgpLCByZW1vdGVTYW1wbGUudGltZSgp
LCB2aWRlb1NhbXBsZVNpemUpOworICAgICAgICBpZiAoIXNhbXBsZVJlZikgeworICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2Ft
cGxlUmVmKTsKKyAgICB9CisjZW5kaWYKKwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2Nl
ZWRlZChjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdz
KQogICAgIHsKICAgICAgICAgYXV0byBjYWxsYmFja3MgPSBtX3BlbmRpbmdBcHBseUNvbnN0cmFp
bnRzQ2FsbGJhY2tzLnRha2VGaXJzdCgpOwpAQCAtMTQ0LDggKzE4NCwxMSBAQCBwcml2YXRlOgog
ICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CiAgICAgbXV0YWJsZSBzdGQ6
Om9wdGlvbmFsPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVz
OwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOworCiAgICAgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247Ci0gICAgQ0FSaW5nQnVmZmVyIG1f
cmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZm
ZXI7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbjsKIAogICAgIHN0cnVjdCBBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2sg
ewogICAgICAgICBTdWNjZXNzSGFuZGxlciBzdWNjZXNzSGFuZGxlcjsKQEAgLTE2Miw3ICsyMDUs
OCBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2Vi
UHJvY2VzcyYgcHJvY2VzcykKIAogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6On5Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcigpCiB7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkudW5zZXRBdWRpb0ZhY3RvcnkoKnRoaXMpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnVuc2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp1bnNldERpc3BsYXlDYXB0dXJlRmFjdG9yeSgqdGhpcyk7CiAgICAgbV9wcm9jZXNz
LnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiB9CiAKQEAgLTE3NCwxMCArMjE4LDEyIEBAIGNvbnN0
IGNoYXIqIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCiB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkQ2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3MpCi0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CisgICAgICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CisgICAgaWYgKHBhcmFtZXRl
cnMuc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcykKKyAgICAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KCp0aGlzKTsKIH0KIAotV2Vi
Q29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0
ZUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlIHNvdXJjZVR5cGUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK1dlYkNvcmU6OkNhcHR1
cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewogICAgIGlmICghY29u
c3RyYWludHMpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xODYsMTAgKzIzMiwxMSBAQCBXZWJD
b3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRl
Q2FwdHVyZVNvdXJjZShjb25zdAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0
aW5nczsKICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwogICAgIGJvb2wgc3VjY2VlZGVkOwotICAg
IGlmICghbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
aWQsIGRldmljZSwgc291cmNlVHlwZSwgaGFzaFNhbHQsICpjb25zdHJhaW50cyksIE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgZXJyb3JNZXNzYWdlLCBz
ZXR0aW5ncyksIDApKQorICAgIGlmICghbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWludHMoaWQsIGRldmljZSwgaGFzaFNhbHQsICpjb25zdHJhaW50cyksIE1l
c3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgZXJyb3JNZXNz
YWdlLCBzZXR0aW5ncyksIDApKQogICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvck1lc3NhZ2Up
OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFNvdXJjZShTdHJpbmc6Om51bWJl
cihpZCksIHNvdXJjZVR5cGUsIFN0cmluZyB7IHNldHRpbmdzLmxhYmVsKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCksIGlkLCAqdGhpcykpOworICAgIGF1dG8gdHlwZSA9IGRldmljZS50eXBlKCkgPT0g
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSA/IFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6VmlkZW87CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFNvdXJjZShTdHJp
bmc6Om51bWJlcihpZCksIHR5cGUsIFN0cmluZyB7IHNldHRpbmdzLmxhYmVsKCkgfSwgV1RGTW92
ZShoYXNoU2FsdCksIGlkLCAqdGhpcykpOwogICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92
ZShzZXR0aW5ncykpOwogICAgIG1fc291cmNlcy5zZXQoaWQsIHNvdXJjZS5jb3B5UmVmKCkpOwog
ICAgIHJldHVybiBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkp
OwpAQCAtMjM5LDYgKzI4NiwxOSBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUodWludDY0X3QgaWQsIE1lZGlhVGltZSB0aW1lLAogICAgIHNvdXJj
ZS5hdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVyT2ZGcmFtZXMpOwogfQogCisjaWYg
SEFWRShJT1NVUkZBQ0UpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyZW1vdGVWaWRl
b1NhbXBsZUF2YWlsYWJsZSh1aW50NjRfdCBpZCwgUmVtb3RlVmlkZW9TYW1wbGUmJiBzYW1wbGUp
Cit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5n
ZXQoaWQpLT5yZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXVEZNb3ZlKHNhbXBsZSkpOworfQor
I2Vsc2UKK05PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKHVpbnQ2NF90LCBSZW1vdGVWaWRlb1NhbXBs
ZSYmKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorI2VuZGlmCisKIHZvaWQgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKIHsK
ICAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6U3RhcnRQcm9kdWNpbmdEYXRhKGlkKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IDM3NjMy
ZDU5ZTZlZjhjYWFjODA2OTEzZTUwMzVkYmNhNGM4ZDQ1NzkuLjhlYWIwMTcwZDA3ZTg1M2VmOTZk
MjY4Mzc2MTlkODlkMTA5N2FiZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC0zNiw2ICszNiw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsK
K2NsYXNzIFJlbW90ZVZpZGVvU2FtcGxlOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQz
LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBDcm9zc1Byb2Nlc3NSZWFsdGlt
ZUF1ZGlvU291cmNlOwogY2xhc3MgV2ViUHJvY2VzczsKIAotY2xhc3MgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciwgcHVibGljIFdlYkNvcmU6OkF1ZGlvQ2FwdHVyZUZhY3RvcnksIHB1YmxpYyBX
ZWJDb3JlOjpWaWRlb0NhcHR1cmVGYWN0b3J5IHsKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIsIHB1YmxpYyBXZWJDb3JlOjpBdWRpb0NhcHR1cmVGYWN0b3J5LCBwdWJsaWMgV2ViQ29y
ZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSwgcHVibGljIFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJlRmFj
dG9yeSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2Vi
UHJvY2VzcyYpOwogICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcigpOwpAQCAtNTUsOSArNTYs
MTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYpIGZpbmFsOwogCiAgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZSBmYWN0b3JpZXMKLSAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBT
dHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMpIGZpbmFsIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShoYXNoU2FsdCksIGNv
bnN0cmFpbnRzKTsgfQotICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZp
ZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29u
c3RyYWludHMpOyB9Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQ2Fw
dHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZSwgU3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqKTsKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcm
JiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
IGZpbmFsIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hT
YWx0KSwgY29uc3RyYWludHMpOyB9CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRl
dmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZSwg
V1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpIGZpbmFsICB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZSwgeyB9
LCBjb25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgLy8gSVBDOjpNZXNzYWdl
UmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOwpAQCAtNzAsNiArNzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
c3RvcmFnZUNoYW5nZWQodWludDY0X3QgaWQsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwg
Y29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMpOwogICAgIHZvaWQgcmluZ0J1ZmZlckZyYW1lQm91bmRzQ2hhbmdlZCh1aW50NjRf
dCBpZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOwogICAgIHZvaWQg
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBNZWRpYVRpbWUsIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7Cisg
ICAgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZSh1aW50NjRfdCBpZCwgV2ViQ29yZTo6
UmVtb3RlVmlkZW9TYW1wbGUmJik7CiAKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50
NjRfdCk7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CkBAIC04NSw2ICs4
OCw2IEBAIHByaXZhdGU6CiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogfTsKIAotfQorfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3Nh
Z2VzLmluCmluZGV4IGViNTc0MDU2MTczNTJlODgxMzNiYjg1MGYxNTdmMzRjM2JmMjNlZmQuLmEw
NjJkYzM0NTY3MWIyOTZlNTJmNTgzYTcxMTZmN2FlN2MzZWZjYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTMyLDYgKzMyLDcgQEAgbWVzc2FnZXMgLT4gVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIgewogICAgIEF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50NjRfdCBp
ZCwgTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFy
dEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKICAgICBBcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVk
KHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGlu
Z3MpCiAgICAgQXBwbHlDb25zdHJhaW50c0ZhaWxlZCh1aW50NjRfdCBpZCwgU3RyaW5nIGZhaWxl
ZENvbnN0cmFpbnQsIFN0cmluZyBtZXNzYWdlKQorICAgIFJlbW90ZVZpZGVvU2FtcGxlQXZhaWxh
YmxlKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSBzYW1wbGUpCiB9CiAK
ICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352763</attachid>
            <date>2018-10-18 21:16:50 -0700</date>
            <delta_ts>2018-10-18 21:41:43 -0700</delta_ts>
            <desc>Anothher rebased patch for landing</desc>
            <filename>bug-190728-20181018211649.patch</filename>
            <type>text/plain</type>
            <size>62203</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3Mjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzllZWRjZjdhM2YyMTg4
NjY2NWY4ZjZmZTI1MmI1NGZiNDUxMmMwMS4uMWMwYTRiYzY0YjBiM2NlMThiMGNmMzhjNDU1MzI5
YTFhZjlmNTk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE4LTEwLTE4ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gQWxsb3cgcG9ydHMgdG8gb3B0aW9uYWxseSBkbyBzY3JlZW4gY2FwdHVyZSBpbiB0aGUgVUkg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwNzI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTM3NjgyND4KKworICAgICAgICBSZXZp
ZXdlZCBieSBKZXIgTm9ibGUgYW5kIFRpbSBIb3J0b24uCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogU291cmNlcy50eHQ6IEFk
ZCBSZW1vdGVWaWRlb1NhbXBsZS5jcHAuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL01lZGlhU2FtcGxlLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZTo6dmlkZW9QaXhlbEZvcm1hdCBjb25zdCk6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6On5SZW1vdGVWaWRlb1Nh
bXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpSZW1vdGVWaWRlb1NhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6c3VyZmFjZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6dGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZTo6dmlkZW9Gb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3RlVmlkZW9TYW1wbGU6OnNpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVW
aWRlb1NhbXBsZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKTogQ2FsbCBvYnNl
cnZlcnMuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNlOjpkaXNwYXRjaE1l
ZGlhU2FtcGxlVG9PYnNlcnZlcnMpOiBEaXNwYXRjaCByZW1vdGUgc2FtcGxlcyB3aXRob3V0Cisg
ICAgICAgIHJlc2l6aW5nLCByZXNpemUgbG9jYWwgc2FtcGxlcyBpZiBuZWNlc3NhcnkuCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcHR1cmVPdXRwdXREaWRP
dXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbik6IERvbid0IHJlc2l6ZQorICAgICAgICBz
YW1wbGVzLCBpdCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhc2UgY2xhc3MgaWYgbmVjZXNzYXJ5Lgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
ZW1pdEZyYW1lKTogRG9uJ3QgcmVzaXplIHNhbXBsZXMgd2hlbiBydW5uaW5nIGluIHRoZSBVSQor
ICAgICAgICBwcm9jZXNzLCBpdCB3aWxsIGJlIGRvbmUgaW4gdGhlIHdlYiBwcm9jZXNzLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZUNvY29hLmNwcDogUmVtb3ZlIHVubmVlZGVkIGluY2x1ZGUuCisKIDIwMTgtMTAtMTggIEp1
c3RpbiBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBu
ZXcgaW1hZ2UgdHlwZSBmb3IgQ1NTIHBhaW50aW5nIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZTY0MDFiZTUw
N2VlM2Q4NWQ2NGNlM2YxNTlmYjRiZWY1ZGIyMDk0Li4zZDE3MWRhNjlkMGRhY2VhNzQ1MzNjZmYw
ZjA0OWM5ZDM2YzM1NmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE4LTEwLTE4ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0
cmVhbV0gQWxsb3cgcG9ydHMgdG8gb3B0aW9uYWxseSBkbyBzY3JlZW4gY2FwdHVyZSBpbiB0aGUg
VUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkwNzI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTM3NjgyND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBKZXIgTm9ibGUgYW5kIFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6IEVuY29kZSBzaG91bGRDYXB0
dXJlRGlzcGxheUluVUlQcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUpOiBEZWNvZGUgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJv
Y2Vzcy4KKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3Bw
OgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOiBDb3B5IHNo
b3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnJlbW90ZVZpZGVvU2FtcGxl
QXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKTogUmVt
b3ZlCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgcGFyYW1ldGVyLCBDYXB0dXJl
RGV2aWNlIGhhcyB0aGUgc2FtZSBpbmZvcm1hdGlvbi4gRGVhbCB3aXRoIGRpc3BsYXkKKyAgICAg
ICAgY2FwdHVyZSAiZGV2aWNlcyIuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpp
bml0aWFsaXplTmV3V2ViUHJvY2Vzcyk6IENvcHkgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJv
Y2Vzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNl
OjpTb3VyY2UpOiBPbmx5IGFsbG9jYXRlIGEgcmluZyBidWZmZXIgZm9yIEF1ZGlvIHNvdXJjZXMu
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6On5Tb3Vy
Y2UpOiBTYW1lIGZvciBkZWFsbG9jYXRlLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6U291cmNlOjpzdG9yYWdlKTogbV9yaW5nQnVmZmVyIGlzIGEgcG9pbnRlci4K
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0U3Rv
cmFnZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
U291cmNlOjpzZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMpOiBEaXR0by4KKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3Vy
Y2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKTogQ3JlYXRlIGEgCisgICAgICAgIFBpeGVs
QnVmZmVyLWJhY2tlZCBtZWRpYSBzYW1wbGUgYW5kIGNhbGwgdmlkZW9TYW1wbGVBdmFpbGFibGUu
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIpOiBDbGVhciB0aGUgYXVkaW8gYW5kIGRpc3BsYXkgY2FwdHVyZQorICAgICAg
ICBmYWN0b3J5IG92ZXJyaWRlcy4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmluaXRpYWxpemUpOiBTZXQgdGhlIGF1ZGlvIGFuZCBkaXNwbGF5IGNhcHR1cmUgZmFj
dG9yeSBvdmVycmlkZXMuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpjcmVhdGVDYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjoKKwogMjAxOC0xMC0x
OCAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIyMzcyNzIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDcwZTRhMTUwYTlmNjg0
NTQxMjdiMWNmYTBlNzJlMTZiY2I0YWI0N2QuLjgwMjFhY2UxZDQwZjc5YTVhMWRlNGQ3NGRlZTVh
YzA5MTE2MGQ4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNjY5LDYgKzE2NjksNyBAQCBwbGF0Zm9y
bS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL1JlZ2lvbi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNw
cAogcGxhdGZvcm0vZ3JhcGhpY3MvUm91bmRlZFJlY3QuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9T
aGFkb3dCbHVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDc4YmZkMjk1ZDdhNTkwNWFkODhkMDQwMDI5NjI5NDkyOWFjMzhhZjYuLjg3NmFhYjhhMmUzMjEz
NTlmOWNmYzVlOTM3NmM3ZWQxODdhNmJmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExNCw2ICsxMTQsNyBAQAogCQkwNzM3
OTRGQTE5RjU4NjRFMDBFNUEwNDUgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RjQxOUY1ODY0
RTAwRTVBMDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCAqLzsgfTsKIAkJMDczNzk0
RkUxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0NSAv
KiBSVENOb3RpZmllcnNNb2NrLmggKi87IH07CiAJCTA3Mzk0RUNBMUJBQjJDRDcwMEJFOTlDRCAv
KiBNZWRpYURldmljZXNSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzM5NEVDOTFCQUIyQ0Q3MDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVx
dWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQTE1NTMyMTc3QTM5QTAw
RUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlv
U2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlz
dC5oICovOyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRh
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IH07
CiAJCTA3M0JEQzA1MUY2ODQzNjEwMEVFMzRFRCAvKiBUcmFja1ByaXZhdGVCYXNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NkUxMUJFMUY2ODNF
MEQwMDE3NzM5NSAvKiBUcmFja1ByaXZhdGVCYXNlLmNwcCAqLzsgfTsKQEAgLTYxOCw3ICs2MTks
NyBAQAogCQkxQUZFMTE5QTBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZFMTE5
ODBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggKi87IH07CiAJCTFB
RkZDNDU4MUQ1RTg2NTUwMDI2N0E2NiAvKiBXZWJHTEJsYWNrbGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRkM0NTExRDVFN0VDNzAwMjY3QTY2
IC8qIFdlYkdMQmxhY2tsaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMUFGRkM0NTkxRDVFODY2MTAwMjY3QTY2IC8qIFBsdWdpbkJsYWNrbGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRkM0
NEYxRDVFN0VDNzAwMjY3QTY2IC8qIFBsdWdpbkJsYWNrbGlzdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFCMTI0RDhEMUQzODBCNzAwMEVDREZC
MCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFCMTI0RDhDMUQzODBCNzAwMEVDREZCMCAvKiBNZWRpYVNhbXBsZUFW
Rk9iakMuaCAqLzsgfTsKKwkJMUIxMjREOEQxRDM4MEI3MDAwRUNERkIwIC8qIE1lZGlhU2FtcGxl
QVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUIxMjREOEMxRDM4MEI3MDAwRUNERkIwIC8qIE1lZGlhU2FtcGxlQVZGT2JqQy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFCMTI0RDhGMUQzODBC
QjYwMEVDREZCMCAvKiBNZWRpYVNhbXBsZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQjEyNEQ4RTFEMzgwQkI2MDBFQ0RGQjAgLyogTWVk
aWFTYW1wbGVBVkZPYmpDLm1tICovOyB9OwogCQkxQkY5REIzQzFEMzk3M0FEMDAyNkFFQjcgLyog
TWVkaWFTYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDMDEwNzAxMTkyNTk0REYw
MDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMDEwNkZGMTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVU
ZXh0Qm94U3R5bGUuaCAqLzsgfTsKQEAgLTUzNjMsNiArNTM2NCw4IEBACiAJCTA3Mzc5NEY4MTlG
NTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJUQ05vdGlmaWVyc01vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDczOTRFQzcxQkFCMkNDRDAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFEZXZpY2VzUmVxdWVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzk0RUM5MUJBQjJDRDcwMEJF
OTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhRGV2aWNlc1JlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDczQTE1NTEyMTc3QTM5ODAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3M0I4NzU2MUU0MERDRTUwMDcxQzBFQyAvKiBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NTcxRTQwRENG
RDAwNzFDMEVDIC8qIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNCODc1ODFFNDBEQ0ZEMDA3MUMwRUMgLyogQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTk3ODksNyArMTk3OTIsOSBAQAogCQkJCUU0MjA1MDE2MjE0MTkwMUIwMDY2RUYzQiAvKiBQ
cm9jZXNzV2FybWluZy5jcHAgKi8sCiAJCQkJRTQyMDUwMTQyMTQxOTAxQTAwNjZFRjNCIC8qIFBy
b2Nlc3NXYXJtaW5nLmggKi8sCiAJCQkJQ0Q5QTg3RjkyMTVENkNGMzAwNkYxN0I1IC8qIFF1aXJr
cy5jcHAgKi8sCisJCQkJQ0Q5QTg3RjIyMTVENDNBNjAwNkYxN0I1IC8qIFF1aXJrcy5jcHAgKi8s
CiAJCQkJQ0Q5QTg3RkIyMTVENkNGMzAwNkYxN0I1IC8qIFF1aXJrcy5oICovLAorCQkJCUNEOUE4
N0YxMjE1RDQzQTYwMDZGMTdCNSAvKiBRdWlya3MuaCAqLywKIAkJCQk0NkI5NTE4RDIwN0Q2MzJB
MDBBN0QyREQgLyogUmVtb3RlRE9NV2luZG93LmNwcCAqLywKIAkJCQk0NkI5NTE4RTIwN0Q2MzJB
MDBBN0QyREQgLyogUmVtb3RlRE9NV2luZG93LmggKi8sCiAJCQkJNDZCQ0JCQzMyMDg1MDBBNzAw
NzEwNjM4IC8qIFJlbW90ZURPTVdpbmRvdy5pZGwgKi8sCkBAIC0xOTgwMiw4ICsxOTgwNyw2IEBA
CiAJCQkJQTUwNzFFODQxQzU2RDA3OTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWQuaCAq
LywKIAkJCQk3QzUyMjI5QjFFMURBRTQ3MDAyQ0I4RjcgLyogUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5jcHAgKi8sCiAJCQkJN0M1MjIyOUMxRTFEQUU0NzAwMkNCOEY3IC8qIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCAqLywKLQkJCQlDRDlBODdGMjIxNUQ0M0E2MDA2RjE3QjUgLyogUXVpcmtzLmNw
cCAqLywKLQkJCQlDRDlBODdGMTIxNUQ0M0E2MDA2RjE3QjUgLyogUXVpcmtzLmggKi8sCiAJCQkJ
QkNFQzAxQkEwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5jcHAgKi8sCiAJCQkJQkNFQzAxQkIw
QzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5oICovLAogCQkJCUJDRUMwMUJDMEMyNzREQUMwMDlG
NEVDOSAvKiBTY3JlZW4uaWRsICovLApAQCAtMjQxMTQsNiArMjQxMTcsOCBAQAogCQkJCTA3NEU4
MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLywKIAkJCQlCQ0FC
NDE3RjEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmNwcCAqLywKIAkJCQlCQ0FCNDE4MDEzRTM1
NkU4MDBEOEFBRjMgLyogUmVnaW9uLmggKi8sCisJCQkJMDczQTE1NTEyMTc3QTM5ODAwRUEwOEYy
IC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLywKKwkJCQkwNzNBMTU1MzIxNzdBMzlBMDBFQTA4
RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLywKIAkJCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFB
RjkgLyogUm91bmRlZFJlY3QuY3BwICovLAogCQkJCUE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAv
KiBSb3VuZGVkUmVjdC5oICovLAogCQkJCTBGM0RENDREMTJGNUVBMUIwMDBEOTE5MCAvKiBTaGFk
b3dCbHVyLmNwcCAqLywKQEAgLTI1MTQ5LDYgKzI1MTU0LDggQEAKIAkJCQlDRDk0QTVDOTFGNzFD
QTlEMDBGNTI1QzUgLyogQ0RNQ2xpZW50LmggKi8sCiAJCQkJQ0QwNjNGODAxRTIzRkE4OTAwODEy
QkUzIC8qIEluaXREYXRhUmVnaXN0cnkuY3BwICovLAogCQkJCUNEMDYzRjgxMUUyM0ZBODkwMDgx
MkJFMyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmggKi8sCisJCQkJQ0RGNzU2OUQyMTVDMjQ0NDAwRUZD
QjUwIC8qIE1lZGlhS2V5RW5jcnlwdGlvblNjaGVtZS5oICovLAorCQkJCUNERjc1NjlFMjE1QzI4
NUUwMEVGQ0I1MCAvKiBNZWRpYUtleUVuY3J5cHRpb25TY2hlbWUuaWRsICovLAogCQkJCTJEOUJG
NzJGMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleU1lc3NhZ2VFdmVudC5jcHAgKi8sCiAJCQkJ
MkQ5QkY3MzAxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmggKi8sCiAJ
CQkJMkQ5QkY2RjUxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmlkbCAq
LywKQEAgLTI1MTU3LDggKzI1MTY0LDYgQEAKIAkJCQkyRDlCRjczMzFEQkZEQzBGMDA3QTdEOTkg
LyogTWVkaWFLZXlzLmNwcCAqLywKIAkJCQkyRDlCRjczNDFEQkZEQzBGMDA3QTdEOTkgLyogTWVk
aWFLZXlzLmggKi8sCiAJCQkJMkQ5QkY2RjYxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5cy5p
ZGwgKi8sCi0JCQkJQ0RGNzU2OUQyMTVDMjQ0NDAwRUZDQjUwIC8qIE1lZGlhS2V5RW5jcnlwdGlv
blNjaGVtZS5oICovLAotCQkJCUNERjc1NjlFMjE1QzI4NUUwMEVGQ0I1MCAvKiBNZWRpYUtleUVu
Y3J5cHRpb25TY2hlbWUuaWRsICovLAogCQkJCTJEOUJGNzM1MURCRkRDMEYwMDdBN0Q5OSAvKiBN
ZWRpYUtleVNlc3Npb24uY3BwICovLAogCQkJCTJEOUJGNzM2MURCRkRDMEYwMDdBN0Q5OSAvKiBN
ZWRpYUtleVNlc3Npb24uaCAqLywKIAkJCQkyRDlCRjZGNzFEQkZCNzFGMDA3QTdEOTkgLyogTWVk
aWFLZXlTZXNzaW9uLmlkbCAqLywKQEAgLTI5Mjc5LDYgKzI5Mjg0LDcgQEAKIAkJCQlGRDIzQTEy
NjEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEOUJGNzEyMURCRkQ5MTQwMDdBN0Q5OSAvKiBKU01lZGlhRW5jcnlw
dGVkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxNDE5MENENjgyNjkwMEZBREE3NSAv
KiBKU01lZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERjc1NkEzMjE1QzI5RTkwMEVG
Q0I1MCAvKiBKU01lZGlhS2V5RW5jcnlwdGlvblNjaGVtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkQ5QkY3MjgxREJGREIwRDAwN0E3RDk5IC8qIEpTTWVkaWFLZXlNZXNzYWdlRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEOUJGNzI5MURCRkRCMTAwMDdBN0Q5OSAvKiBKU01lZGlhS2V5cy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5QkY3MkExREJGREIxMzAwN0E3RDk5IC8qIEpTTWVkaWFL
ZXlTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI5OTYxLDcgKzI5OTY3LDYgQEAKIAkJCQk1
MTA1OEFFMDFENjdDMjI5MDA5QTUzOEMgLyogTW9ja0dhbWVwYWQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxMDU4QUUyMUQ2N0MyMjkwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTNDQ0Q0QTIwREUwMzRGMDA2NUEyMUEgLyogTW9ja01lZGlhRGV2
aWNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlDREY3NTZBMzIxNUMyOUU5MDBFRkNCNTAgLyogSlNN
ZWRpYUtleUVuY3J5cHRpb25TY2hlbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERjJCMDEzMTgy
MDU0MDYwMEYyQjQyNCAvKiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RGMkIwMTUxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tNZWRpYVNvdXJjZVByaXZh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQkI4NUE5MjE1OUIwMkMwMDY3RTA3RCAvKiBNb2Nr
UGF5bWVudEVycm9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMzE3LDYgKzMwMzIyLDcgQEAKIAkJ
CQlDRDhBQ0E4OTFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0NkI5NTE5OTIwN0Q2MzREMDBBN0QyREQgLyogUmVtb3RlRE9N
V2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI5NTE5QTIwN0Q2MzU0MDBBN0QyREQgLyog
UmVtb3RlRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhG
MiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDA2QzBEOEYwQ0ZE
MTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzMzA5RTA1MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMzMDlFMDcwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9N
ZWRpYVNhbXBsZS5oCmluZGV4IDA1MGQ5Mzg5ZDE4ZTEwZjVkOTdiYTQzZDg2MGMyYTEzNTIwNjYy
ZmUuLjc1MTY2NTYyMWFjZDI1YTJkZmIyZWEyOWExYzkwNjVlZTIyOTMxMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAg
fTsKICAgICB2aXJ0dWFsIFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIFZpZGVvUm90YXRpb246Ok5vbmU7IH0KICAgICB2aXJ0dWFsIGJvb2wgdmlkZW9NaXJyb3Jl
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB1aW50MzJfdCB2aWRlb1Bp
eGVsRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiAgICAgYm9vbCBpc1N5bmMoKSBjb25z
dCB7IHJldHVybiBmbGFncygpICYgSXNTeW5jOyB9CiAgICAgYm9vbCBpc05vbkRpc3BsYXlpbmco
KSBjb25zdCB7IHJldHVybiBmbGFncygpICYgSXNOb25EaXNwbGF5aW5nOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTZkMmUxMGM1NmNiODU2OTQyOTVkYzlkOTQyYzE3MTQxNTkxOWY2ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZp
ZGVvU2FtcGxlLmNwcApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90
ZVZpZGVvU2FtcGxlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
TG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCisKKyNpZiBIQVZFKElPU1VSRkFD
RSkKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgorI2VuZGlmCisKKyNpbmNsdWRlIDxw
YWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOworCisjaWYgSEFW
RShJT1NVUkZBQ0UpCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZp
ZGVvU2FtcGxlOjpjcmVhdGUoTWVkaWFTYW1wbGUmJiBzYW1wbGUpCit7CisgICAgQVNTRVJUKHNh
bXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVm
ZmVyVHlwZSk7CisKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXRJbWFn
ZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwor
ICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0
byBzdXJmYWNlID0gQ1ZQaXhlbEJ1ZmZlckdldElPU3VyZmFjZShpbWFnZUJ1ZmZlcik7CisgICAg
aWYgKCFzdXJmYWNlKSB7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiUmVtb3RlVmlkZW9T
YW1wbGU6OmNyZWF0ZTogQ1ZQaXhlbEJ1ZmZlckdldElPU3VyZmFjZSByZXR1cm5lZCBudWxscHRy
Iik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+KG5ldyBSZW1vdGVWaWRlb1NhbXBsZShzdXJmYWNl
LCBzUkdCQ29sb3JTcGFjZVJlZigpLCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpLCBzYW1wbGUu
dmlkZW9Sb3RhdGlvbigpLCBzYW1wbGUudmlkZW9NaXJyb3JlZCgpKSk7Cit9CisKK1JlbW90ZVZp
ZGVvU2FtcGxlOjpSZW1vdGVWaWRlb1NhbXBsZShJT1N1cmZhY2VSZWYgc3VyZmFjZSwgQ0dDb2xv
clNwYWNlUmVmIGNvbG9yU3BhY2UsIE1lZGlhVGltZSYmIHRpbWUsIE1lZGlhU2FtcGxlOjpWaWRl
b1JvdGF0aW9uIHJvdGF0aW9uLCBib29sIG1pcnJvcmVkKQorICAgIDogbV9pb1N1cmZhY2UoV2Vi
Q29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tU3VyZmFjZShzdXJmYWNlLCBjb2xvclNwYWNlKSkK
KyAgICAsIG1fcm90YXRpb24ocm90YXRpb24pCisgICAgLCBtX3RpbWUoV1RGTW92ZSh0aW1lKSkK
KyAgICAsIG1fdmlkZW9Gb3JtYXQoSU9TdXJmYWNlR2V0UGl4ZWxGb3JtYXQoc3VyZmFjZSkpCisg
ICAgLCBtX3NpemUoSW50U2l6ZShJT1N1cmZhY2VHZXRXaWR0aChzdXJmYWNlKSwgSU9TdXJmYWNl
R2V0SGVpZ2h0KHN1cmZhY2UpKSkKKyAgICAsIG1fbWlycm9yZWQobWlycm9yZWQpCit7Cit9CisK
K0lPU3VyZmFjZVJlZiBSZW1vdGVWaWRlb1NhbXBsZTo6c3VyZmFjZSgpCit7CisgICAgaWYgKCFt
X2lvU3VyZmFjZSAmJiBtX3NlbmRSaWdodCkKKyAgICAgICAgbV9pb1N1cmZhY2UgPSBXZWJDb3Jl
OjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmlnaHQoV1RGTW92ZShtX3NlbmRSaWdodCksIHNS
R0JDb2xvclNwYWNlUmVmKCkpOworCisgICAgcmV0dXJuIG1faW9TdXJmYWNlID8gbV9pb1N1cmZh
Y2UtPnN1cmZhY2UoKSA6IG51bGxwdHI7Cit9CisjZW5kaWYKKworfQorCisjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4ZTkwNTYyMWJmNWU5ZjNmNTgx
YjRhOTQyYTkwYzAxY2YwMjA0ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCkBAIC0wLDAgKzEsMTIzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIK
KyNpbmNsdWRlICJSZW1vdGVWaWRlb1NhbXBsZS5oIgorI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJp
Z2h0Lmg+CisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgorCisjaWYgSEFWRShJT1NVUkZBQ0Up
CisjaW5jbHVkZSAiSU9TdXJmYWNlLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZSB7CitwdWJsaWM6CisgICAgUmVtb3RlVmlkZW9TYW1w
bGUoKSA9IGRlZmF1bHQ7CisgICAgflJlbW90ZVZpZGVvU2FtcGxlKCkgPSBkZWZhdWx0OworCisj
aWYgSEFWRShJT1NVUkZBQ0UpCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKE1lZGlhU2FtcGxlJiYpOworICAgIFdFQkNP
UkVfRVhQT1JUIElPU3VyZmFjZVJlZiBzdXJmYWNlKCk7CisjZW5kaWYKKworICAgIGNvbnN0IE1l
ZGlhVGltZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZTsgfQorICAgIHVpbnQzMl90IHZp
ZGVvRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Zvcm1hdDsgfQorICAgIEludFNpemUg
c2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisjaWYgSEFW
RShJT1NVUkZBQ0UpCisgICAgICAgIGlmIChtX2lvU3VyZmFjZSkKKyAgICAgICAgICAgIGVuY29k
ZXIgPDwgbV9pb1N1cmZhY2UtPmNyZWF0ZVNlbmRSaWdodCgpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBlbmNvZGVyIDw8IFdURjo6TWFjaFNlbmRSaWdodCgpOworI2VuZGlmCisgICAgICAg
IGVuY29kZXIgPDwgbV9yb3RhdGlvbjsKKyAgICAgICAgZW5jb2RlciA8PCBtX3RpbWU7CisgICAg
ICAgIGVuY29kZXIgPDwgbV92aWRlb0Zvcm1hdDsKKyAgICAgICAgZW5jb2RlciA8PCBtX3NpemU7
CisgICAgICAgIGVuY29kZXIgPDwgbV9taXJyb3JlZDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmVtb3Rl
VmlkZW9TYW1wbGUmIHNhbXBsZSkKKyAgICB7CisjaWYgSEFWRShJT1NVUkZBQ0UpCisgICAgICAg
IE1hY2hTZW5kUmlnaHQgc2VuZFJpZ2h0OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNl
bmRSaWdodCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHNhbXBsZS5tX3Nl
bmRSaWdodCA9IFdURk1vdmUoc2VuZFJpZ2h0KTsKKyNlbmRpZgorICAgICAgICBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbjsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
b3RhdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHNhbXBsZS5tX3Jv
dGF0aW9uID0gcm90YXRpb247CisKKyAgICAgICAgTWVkaWFUaW1lIHRpbWU7CisgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodGltZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIHNhbXBsZS5tX3RpbWUgPSBXVEZNb3ZlKHRpbWUpOworCisgICAgICAgIHVpbnQzMl90IGZv
cm1hdDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShmb3JtYXQpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBzYW1wbGUubV92aWRlb0Zvcm1hdCA9IGZvcm1hdDsKKwor
ICAgICAgICBJbnRTaXplIHNpemU7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHNhbXBsZS5tX3NpemUgPSBXVEZN
b3ZlKHNpemUpOworCisgICAgICAgIGJvb2wgbWlycm9yZWQ7CisgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUobWlycm9yZWQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBz
YW1wbGUubV9taXJyb3JlZCA9IG1pcnJvcmVkOworCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworcHJpdmF0ZToKKworI2lmIEhBVkUoSU9TVVJGQUNFKQorICAgIFJlbW90ZVZpZGVvU2Ft
cGxlKElPU3VyZmFjZVJlZiwgQ0dDb2xvclNwYWNlUmVmLCBNZWRpYVRpbWUmJiwgTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb24sIGJvb2wpOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OklPU3VyZmFjZT4gbV9pb1N1cmZhY2U7CisgICAgV1RGOjpNYWNoU2VuZFJpZ2h0IG1fc2VuZFJp
Z2h0OworI2VuZGlmCisgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9yb3RhdGlvbiB7
IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CisgICAgTWVkaWFUaW1lIG1fdGlt
ZTsKKyAgICB1aW50MzJfdCBtX3ZpZGVvRm9ybWF0IHsgMCB9OworICAgIEludFNpemUgbV9zaXpl
OworICAgIGJvb2wgbV9taXJyb3JlZCB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFW
Rk9iakMuaAppbmRleCAwOTIzODgzZTViYzdlNDQ2NGIxMTZiOTJiYmZkMDhhNmUyNjNhNzJmLi42
MGVlOTZmNDAyNDMzNjIyZjU4NTQxMjZmZmIyMzk1MTA2OThjZTMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBs
ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6
CiAKICAgICBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3JvdGF0aW9uOyB9CiAgICAgYm9vbCB2aWRlb01pcnJvcmVkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9taXJyb3JlZDsgfQotICAgIHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQo
KSBjb25zdDsKKyAgICB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgZmluYWw7CiAK
ICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3Nh
bXBsZS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKaW5kZXggNWMzMjMxNDEwM2Y1
MzM2ZGIyMGZhN2NiOTNjYjdkOWUzMWI0Yzc1YS4uNTY3MmI4NTYwMDJiZTEyOWRlYmQyMWM5YWRl
NjNkNTZkNmFiMTYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaApAQCAtNTIsNyArNTIsNyBA
QCBwdWJsaWM6CiAgICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBjcmVhdGVNZWRpYVNhbXBsZShDTVNh
bXBsZUJ1ZmZlclJlZiwgY29uc3QgSW50U2l6ZSYsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
ID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIGJvb2wgbWlycm9yZWQgPSBmYWxz
ZSk7CiAKICNpZiBIQVZFKElPU1VSRkFDRSkgJiYgIVBMQVRGT1JNKElPU01BQykKLSAgICBSZWZQ
dHI8TWVkaWFTYW1wbGU+IGNyZWF0ZU1lZGlhU2FtcGxlKElPU3VyZmFjZVJlZiwgY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgSW50U2l6ZSYsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uID0gTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIGJvb2wgbWlycm9yZWQgPSBmYWxzZSk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPE1lZGlhU2FtcGxlPiBjcmVhdGVNZWRpYVNhbXBsZShJ
T1N1cmZhY2VSZWYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IEludFNpemUmLCBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lLCBib29s
IG1pcnJvcmVkID0gZmFsc2UpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5tbQppbmRleCA5NGIxOWNkNDM0N2ZmYTc4MjE1MDA4Njg5NWExZTcwYTZiMTQ5NzAwLi5k
YmQ1OGIzMmVmNjg0MjQ2MDQxMTEyZDM2MWJjNjZmYzJmZDE5ZWFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQubW0KQEAgLTE0OCw3ICsxNDgsNyBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJS
ZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQog
ICAgIGF1dG8gZGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9u
KHNvdXJjZUJ1ZmZlcik7CiAgICAgYXV0byBzb3VyY2VTaXplID0gRmxvYXRTaXplKENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZGVzY3JpcHRpb24sIHRy
dWUsIHRydWUpKTsKICAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1
ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpKTsKLSAg
ICBpZiAoc2l6ZSA9PSByb3VuZGVkSW50U2l6ZShzb3VyY2VTaXplKSAmJiBtX3BpeGVsRm9ybWF0
ID09IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpKQorICAgIGlm
IChzaXplID09IGV4cGFuZGVkSW50U2l6ZShzb3VyY2VTaXplKSAmJiBtX3BpeGVsRm9ybWF0ID09
IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpKQogICAgICAgICBy
ZXR1cm4gcmV0YWluUHRyKHNvdXJjZUJ1ZmZlcik7CiAKICAgICBpZiAoIXNldFNpemUoc2l6ZSkp
CkBAIC0zNDAsNyArMzQwLDcgQEAgUmVmUHRyPE1lZGlhU2FtcGxlPiBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUOjpjb252ZXJ0TWVkaWFTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXAKIHsKICAgICBBU1NF
UlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1w
bGVCdWZmZXJUeXBlKTsKIAotICAgIGlmIChzaXplID09IHJvdW5kZWRJbnRTaXplKHNhbXBsZS5w
cmVzZW50YXRpb25TaXplKCkpKQorICAgIGlmIChzaXplID09IGV4cGFuZGVkSW50U2l6ZShzYW1w
bGUucHJlc2VudGF0aW9uU2l6ZSgpKSkKICAgICAgICAgcmV0dXJuICZzYW1wbGU7CiAKICAgICBh
dXRvIHJlc2l6ZWRCdWZmZXIgPSBjb252ZXJ0Q01TYW1wbGVCdWZmZXIoc2FtcGxlLnBsYXRmb3Jt
U2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCBzaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKaW5kZXggZWM4YjViOWRkZTBjY2Q3NTE0MTRiZWE0MjJjNWM2NWU5YjIzOGIxZi4uZjJkZDQ2
YzdkMDIyYjA0ZDNjOTY0YmY2OGUxNzczN2YyN2M4Y2E3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKQEAgLTE1OCw2ICsxNTgsMTMgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1Nh
bXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCiAgICAgfSk7CiB9CiAKK3Zv
aWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVtb3Rl
VmlkZW9TYW1wbGUmJiBzYW1wbGUpCit7CisgICAgZm9yRWFjaE9ic2VydmVyKFsmXShhdXRvJiBv
YnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5yZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShz
YW1wbGUpOworICAgIH0pOworfQorCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9E
YXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9u
LCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7CiAgICAgZm9yRWFjaE9ic2VydmVyKFsmXShhdXRv
JiBvYnNlcnZlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IGE5M2RlMzM4YzQxYTU3MWNiMTA1
ZDFmNDM2ZDUyYzVlNTkzODBiNjEuLjdhYTg2MGM4NTkyZmQ4YTA0ZTg3YjAyMjg0MjA4YjJhMTAw
NGMwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTYxLDYgKzYxLDcgQEAgY2xhc3MgTWVkaWFT
dHJlYW1Qcml2YXRlOwogY2xhc3MgT3JpZW50YXRpb25Ob3RpZmllcjsKIGNsYXNzIFBsYXRmb3Jt
QXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOworY2xhc3MgUmVt
b3RlVmlkZW9TYW1wbGU7CiAKIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKIApAQCAtODEs
NiArODIsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gQ2FsbGVkIG9uIHRoZSBtYWluIHRocmVh
ZC4KICAgICAgICAgdmlydHVhbCB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxl
JikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShS
ZW1vdGVWaWRlb1NhbXBsZSYpIHsgfQogCiAgICAgICAgIC8vIE1heSBiZSBjYWxsZWQgb24gYSBi
YWNrZ3JvdW5kIHRocmVhZC4KICAgICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWls
YWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QgLypudW1iZXJPZkZyYW1lcyovKSB7IH0KQEAg
LTE2NSw2ICsxNjcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzSW5jb21pbmdBdWRp
b1NvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW5j
b21pbmdWaWRlb1NvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2b2lkIHNl
dElzUmVtb3RlKGJvb2wgaXNSZW1vdGUpIHsgbV9pc1JlbW90ZSA9IGlzUmVtb3RlOyB9CisgICAg
Ym9vbCBpc1JlbW90ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNSZW1vdGU7IH0KKwogICAgIC8vIFRl
c3Rpbmcgb25seQogICAgIHZpcnR1YWwgdm9pZCBkZWxheVNhbXBsZXMoU2Vjb25kcykgeyB9Owog
CkBAIC0xOTYsMTMgKzIwMSwxMyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHZpZGVvU2FtcGxl
QXZhaWxhYmxlKE1lZGlhU2FtcGxlJik7CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUo
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZh
aWxhYmxlKFJlbW90ZVZpZGVvU2FtcGxlJiYpOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcFByb2R1Y2lu
Z0RhdGEoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0dGluZ3NEaWRDaGFuZ2UoT3B0aW9uU2V0
PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZz4pIHsgfQogCi0KICAgICB2b2lkIGZv
ckVhY2hPYnNlcnZlcihjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mKSBjb25z
dDsKIAogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CkBAIC0yMjgsNiArMjMzLDcgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aW50ZXJydXB0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYXB0dXJlRGlkRmFpbGVkIHsgZmFs
c2UgfTsKKyAgICBib29sIG1faXNSZW1vdGUgeyBmYWxzZSB9OwogfTsKIAogc3RydWN0IENhcHR1
cmVTb3VyY2VPckVycm9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggMTQ5MTMzZDg1YjE2
YjIxZjRjMzEwMGE5ZTYxYTBiNmU5YzhiYmFjMi4uMGI0YTZlZDFjOGUxNTU3YTg0MWUyNDFkZGI3
ZTNlYTI2NzM1NzMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTMxLDYgKzMxLDExIEBA
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCIKKyNpbmNsdWRl
ICJSZW1vdGVWaWRlb1NhbXBsZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAi
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMzc4LDcgKzM4MywzNiBAQCB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmRpc3BhdGNo
TWVkaWFTYW1wbGVUb09ic2VydmVycyhNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgIGlmIChpbnRl
cnZhbCA+IDEpCiAgICAgICAgIG1fb2JzZXJ2ZWRGcmFtZVJhdGUgPSAobV9vYnNlcnZlZEZyYW1l
VGltZVN0YW1wcy5zaXplKCkgLyBpbnRlcnZhbCk7CiAKLSAgICB2aWRlb1NhbXBsZUF2YWlsYWJs
ZShzYW1wbGUpOworICAgIGlmIChpc1JlbW90ZSgpKSB7CisjaWYgSEFWRShJT1NVUkZBQ0UpCisg
ICAgICAgIGF1dG8gcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShXVEZN
b3ZlKHNhbXBsZSkpOworICAgICAgICBpZiAocmVtb3RlU2FtcGxlKQorICAgICAgICAgICAgcmVt
b3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSk7CisjZWxzZQor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgYXV0byBtZWRpYVNhbXBsZSA9IG1ha2VSZWZQdHIoJnNhbXBsZSk7CisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgYXV0byBzaXplID0gdGhpcy0+c2l6ZSgpOworICAgIGlmICgh
c2l6ZS5pc0VtcHR5KCkgJiYgc2l6ZSAhPSBleHBhbmRlZEludFNpemUoc2FtcGxlLnByZXNlbnRh
dGlvblNpemUoKSkpIHsKKworICAgICAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pCisg
ICAgICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y3JlYXRlKHNhbXBsZS52aWRlb1BpeGVsRm9ybWF0KCkpOworCisgICAgICAgIGlmIChtX2lt
YWdlVHJhbnNmZXJTZXNzaW9uKSB7CisgICAgICAgICAgICBtZWRpYVNhbXBsZSA9IG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24tPmNvbnZlcnRNZWRpYVNhbXBsZShzYW1wbGUsIHNpemUpOworICAgICAg
ICAgICAgaWYgKCFtZWRpYVNhbXBsZSkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0KKyNlbmRpZgorCisgICAgdmlkZW9TYW1wbGVBdmFpbGFibGUobWVkaWFTYW1wbGUu
cmVsZWFzZU5vbk51bGwoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuaAppbmRleCA0N2M0ZjVlZTNjMWY2NTZhZDUyMGI0YmViODNiNDcyZjc0ZDA5ZGQwLi44
NDI2OGFiNjY2ZTM5ZDc3MDVkODA4OGRjYWM4NTNkNTUxZTZmYWQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5oCkBAIC0zNyw2ICszNyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDsKKwogY2xhc3MgUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1Ymxp
YyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZWFsdGltZVZp
ZGVvU291cmNlKCk7CkBAIC04Myw2ICs4NSw5IEBAIHByaXZhdGU6CiAgICAgRGVxdWU8ZG91Ymxl
PiBtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBzOwogICAgIGRvdWJsZSBtX29ic2VydmVkRnJhbWVS
YXRlIHsgMCB9OwogICAgIEludFNpemUgbV9kZWZhdWx0U2l6ZTsKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IGVjNDNhZTA2OTQzMTM0YWRmYWI2OTM4ZDVl
ZDY5MGYzYjBmOTBlOTguLjgzYWZlZDc2MmZjNjEyZTQzMTJhMTE1NmMyOTVkZDM4YThjYzQwODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZp
ZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTU0MCwyNyArNTQwLDkgQEAgdm9p
ZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJvY2Vzc05ld0ZyYW1lKFJlZjxNZWRpYVNhbXBsZT4m
JiBzYW1wbGUpCiAKIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcHR1cmVPdXRwdXREaWRP
dXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXRUeXBlKiwgQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBBVkNhcHR1cmVDb25uZWN0aW9uVHlwZSogY2Fw
dHVyZUNvbm5lY3Rpb24pCiB7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNj
cmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVy
KTsKLSAgICBpZiAoIWZvcm1hdERlc2NyaXB0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBD
TVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0
RGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbik7Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBz
YW1wbGU7Ci0gICAgaWYgKGRpbWVuc2lvbnMud2lkdGggIT0gbV9yZXF1ZXN0ZWRTaXplLndpZHRo
KCkgfHwgZGltZW5zaW9ucy5oZWlnaHQgIT0gbV9yZXF1ZXN0ZWRTaXplLmhlaWdodCgpKSB7Ci0K
LSAgICAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKQotICAgICAgICAgICAgbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShhdlZpZGVv
Q2FwdHVyZVBpeGVsQnVmZmVyRm9ybWF0KCkpOwotCi0gICAgICAgIHNhbXBsZSA9IG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHNhbXBsZUJ1ZmZlciwgbV9yZXF1ZXN0
ZWRTaXplLCBtX3NhbXBsZVJvdGF0aW9uLCBbY2FwdHVyZUNvbm5lY3Rpb24gaXNWaWRlb01pcnJv
cmVkXSk7Ci0gICAgICAgIGlmICghc2FtcGxlKSB7Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0gZWxzZQotICAg
ICAgICBzYW1wbGUgPSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGVCdWZmZXIsIG1f
c2FtcGxlUm90YXRpb24sIFtjYXB0dXJlQ29ubmVjdGlvbiBpc1ZpZGVvTWlycm9yZWRdKTsKLQor
ICAgIGF1dG8gc2FtcGxlID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlQnVmZmVy
LCBtX3NhbXBsZVJvdGF0aW9uLCBbY2FwdHVyZUNvbm5lY3Rpb24gaXNWaWRlb01pcnJvcmVkXSk7
CiAgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXMsIHNhbXBsZSA9IFdURk1vdmUoc2FtcGxl
KV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb2Nlc3NOZXdGcmFtZShzYW1wbGUucmVsZWFzZU5v
bk51bGwoKSk7CisgICAgICAgIHByb2Nlc3NOZXdGcmFtZShXVEZNb3ZlKHNhbXBsZSkpOwogICAg
IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXgg
MzQzNTc0ZTdiMDc5Y2QyMTFiMDgwZjVhN2NhNmIzYWQ2Y2ViN2RhNy4uMzM3MmZhMjc5NjY4MWQ5
YzgzYjZkMmEyYTMxMjJkY2M5N2E3OWU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJSZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUmVtb3RlVmlk
ZW9TYW1wbGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPENvcmVNZWRpYS9DTVN5
bmMuaD4KICNpbmNsdWRlIDxtYWNoL21hY2hfdGltZS5oPgpAQCAtMTcyLDIyICsxNzMsNDQgQEAg
dm9pZCBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUoKQogICAgICAgICBtX2lt
YWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHByZWZl
cmVkUGl4ZWxCdWZmZXJGb3JtYXQoKSk7CiAKICAgICBhdXRvIHNhbXBsZVRpbWUgPSBNZWRpYVRp
bWU6OmNyZWF0ZVdpdGhEb3VibGUoKGVsYXBzZWRUaW1lKCkgKyAxMDBfbXMpLnNlY29uZHMoKSk7
CisKICAgICBhdXRvIGZyYW1lID0gZ2VuZXJhdGVGcmFtZSgpOwotICAgIEludFNpemUgaW1hZ2VT
aXplOworICAgIGF1dG8gaW1hZ2VTaXplID0gV1RGOjpzd2l0Y2hPbihmcmFtZSwKKyAgICAgICAg
W10oUmV0YWluUHRyPElPU3VyZmFjZVJlZj4gc3VyZmFjZSkgLT4gSW50U2l6ZSB7CisgICAgICAg
ICAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAg
ICAgICAgcmV0dXJuIEludFNpemUoSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZS5nZXQoKSksIElP
U3VyZmFjZUdldEhlaWdodChzdXJmYWNlLmdldCgpKSk7CisgICAgICAgIH0sCisgICAgICAgIFtd
KFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSkgLT4gSW50U2l6ZSB7CisgICAgICAgICAgICBp
ZiAoIWltYWdlKQorICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisKKyAgICAgICAgICAgIHJl
dHVybiBJbnRTaXplKENHSW1hZ2VHZXRXaWR0aChpbWFnZS5nZXQoKSksIENHSW1hZ2VHZXRIZWln
aHQoaW1hZ2UuZ2V0KCkpKTsKKyAgICAgICAgfQorICAgICk7CisKKyAgICBBU1NFUlQoIWltYWdl
U2l6ZS5pc0VtcHR5KCkpOworICAgIGlmIChpbWFnZVNpemUuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAobV9pbnRyaW5zaWNTaXplICE9IGltYWdlU2l6ZSkKKyAgICAgICAg
c2V0SW50cmluc2ljU2l6ZShpbWFnZVNpemUpOworCisgICAgYXV0byBtZWRpYVNhbXBsZVNpemUg
PSBpc1JlbW90ZSgpID8gaW1hZ2VTaXplIDogZnJhbWVTaXplKCk7CisKICAgICBSZWZQdHI8TWVk
aWFTYW1wbGU+IHNhbXBsZSA9IFdURjo6c3dpdGNoT24oZnJhbWUsCi0gICAgICAgIFt0aGlzLCBz
YW1wbGVUaW1lLCAmaW1hZ2VTaXplXShSZXRhaW5QdHI8SU9TdXJmYWNlUmVmPiBzdXJmYWNlKSAt
PiBSZWZQdHI8TWVkaWFTYW1wbGU+IHsKKyAgICAgICAgW3RoaXMsIHNhbXBsZVRpbWUsIG1lZGlh
U2FtcGxlU2l6ZV0oUmV0YWluUHRyPElPU3VyZmFjZVJlZj4gc3VyZmFjZSkgLT4gUmVmUHRyPE1l
ZGlhU2FtcGxlPiB7CiAgICAgICAgICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgICAgIGltYWdlU2l6ZSA9IEludFNpemUoSU9TdXJm
YWNlR2V0V2lkdGgoc3VyZmFjZS5nZXQoKSksIElPU3VyZmFjZUdldEhlaWdodChzdXJmYWNlLmdl
dCgpKSk7Ci0gICAgICAgICAgICByZXR1cm4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRl
TWVkaWFTYW1wbGUoc3VyZmFjZS5nZXQoKSwgc2FtcGxlVGltZSwgaW1hZ2VTaXplKTsKKyAgICAg
ICAgICAgIHJldHVybiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShz
dXJmYWNlLmdldCgpLCBzYW1wbGVUaW1lLCBtZWRpYVNhbXBsZVNpemUpOwogICAgICAgICB9LAot
ICAgICAgICBbdGhpcywgc2FtcGxlVGltZSwgJmltYWdlU2l6ZV0oUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IGltYWdlKSAtPiBSZWZQdHI8TWVkaWFTYW1wbGU+IHsKKyAgICAgICAgW3RoaXMsIHNhbXBs
ZVRpbWUsIG1lZGlhU2FtcGxlU2l6ZV0oUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlKSAtPiBS
ZWZQdHI8TWVkaWFTYW1wbGU+IHsKICAgICAgICAgICAgIGlmICghaW1hZ2UpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgICAgIGltYWdlU2l6ZSA9IEludFNpemUo
Q0dJbWFnZUdldFdpZHRoKGltYWdlLmdldCgpKSwgQ0dJbWFnZUdldEhlaWdodChpbWFnZS5nZXQo
KSkpOwotICAgICAgICAgICAgcmV0dXJuIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1l
ZGlhU2FtcGxlKGltYWdlLmdldCgpLCBzYW1wbGVUaW1lLCBpbWFnZVNpemUpOworICAgICAgICAg
ICAgcmV0dXJuIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKGltYWdl
LmdldCgpLCBzYW1wbGVUaW1lLCBtZWRpYVNhbXBsZVNpemUpOwogICAgICAgICB9CiAgICAgKTsK
IApAQCAtMTk2LDggKzIxOSwxMyBAQCB2b2lkIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmVt
aXRGcmFtZSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobV9pbnRyaW5zaWNT
aXplICE9IGltYWdlU2l6ZSkKLSAgICAgICAgc2V0SW50cmluc2ljU2l6ZShpbWFnZVNpemUpOwor
ICAgIGlmIChpc1JlbW90ZSgpKSB7CisgICAgICAgIGF1dG8gcmVtb3RlU2FtcGxlID0gUmVtb3Rl
VmlkZW9TYW1wbGU6OmNyZWF0ZShXVEZNb3ZlKCpzYW1wbGUpKTsKKyAgICAgICAgaWYgKHJlbW90
ZVNhbXBsZSkKKyAgICAgICAgICAgIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdURk1vdmUo
KnJlbW90ZVNhbXBsZSkpOworCisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICB2aWRlb1Nh
bXBsZUF2YWlsYWJsZSgqc2FtcGxlLmdldCgpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggNDQxOWJhZWVmODNlOWRj
Zjc1ODIzNDAyYTJhODJkMzgyZGFkNmVjOS4uMzA3OWQ3OWVhMjE0M2IyMzY5Mzc1YTU2OWUzZDdm
YzY1N2QzNWI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlQ29jb2EuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaCIKLSNpbmNsdWRlICJS
ZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCiAKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lO
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKaW5kZXggMTc2NmJmMDRiYTk3MzdhY2RmNDFmZjliODQ3MTIwZTlmMWQ3Mzcx
NC4uNDdlODhmNGI0MGYxYmJjMWVhNWVmOGM5NmM3YTdhMDU2MjJjY2JkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
QEAgLTcyLDYgKzcyLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgZW5jb2RlciA8PCBhdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5kbGU7CiAgICAgZW5jb2Rl
ciA8PCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzczsKKyAgICBlbmNvZGVyIDw8IHNob3Vs
ZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3M7CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IHNob3Vs
ZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbjsKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdp
c3RlcmVkQXNFbXB0eURvY3VtZW50OwpAQCAtMjY0LDYgKzI2NSw4IEBAIGJvb2wgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJv
Y2Vzc0NyZWF0CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkQ2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3MpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3Mp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IDMxZGI4YjA4ODZkZGQ4MmU1YWM4YjNmYjI5YTkxOTllZTQx
YzA0M2UuLmY3Y2QzY2I1NTQ3NjY1NWQ4N2I4MDNlODY5YTcwNDIzZWE4NmQ2NjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTk2LDYgKzk2LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGF1
ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKICAgICBib29sIHNob3VsZENhcHR1cmVBdWRpb0lu
VUlQcm9jZXNzIHsgZmFsc2UgfTsKKyAgICBib29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVBy
b2Nlc3MgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgU3RyaW5nIG1lZGlhS2V5U3RvcmFnZURpcmVj
dG9yeTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAppbmRleCA5OTZjMGRkMTBjYjdkMWJjMDNlYzAy
NTkyMzM5MTZkY2Y3MDMzNmJiLi45ZDJlMDE4NGU1OTAwMWU2OGMzNzdhZjljYjhhYzJiNDhlY2U4
M2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcApAQCAtMTE1LDYgKzExNSw3IEBAIFJlZjxQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24+IFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSgpCiAg
ICAgY29weS0+bV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkgPSB0aGlzLT5tX2Fsd2F5
c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eTsKICAgICBjb3B5LT5tX3Nob3VsZFRha2VVSUJhY2tn
cm91bmRBc3NlcnRpb24gPSB0aGlzLT5tX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb247
CiAgICAgY29weS0+bV9zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IHRoaXMtPm1fc2hv
dWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3M7CisgICAgY29weS0+bV9zaG91bGRDYXB0dXJlRGlz
cGxheUluVUlQcm9jZXNzID0gdGhpcy0+bV9zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNz
OwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgY29weS0+bV9jdERhdGFDb25uZWN0aW9u
U2VydmljZVR5cGUgPSB0aGlzLT5tX2N0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDRkMzhiMTQzYTJhNDkxYWZkMDViMDE2OTM4ZmJiN2Q2
YzRhNjEzMDkuLmUyMmZmYjQ3ZGU0NmRkNDhkYTA0MjRjMDQzYjU5NWQzN2FiMTA2MGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmgKQEAgLTM2LDYgKzM2LDEyIEBACiAKIG5hbWVzcGFjZSBBUEkgewogCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKKyNk
ZWZpbmUgREVGQVVMVF9DQVBUVVJFX0RJU1BMQVlfSU5fVUlfUFJPQ0VTUyB0cnVlCisjZWxzZQor
I2RlZmluZSBERUZBVUxUX0NBUFRVUkVfRElTUExBWV9JTl9VSV9QUk9DRVNTIGZhbHNlCisjZW5k
aWYKKwogY2xhc3MgUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGZpbmFsIDogcHVibGljIE9iamVj
dEltcGw8T2JqZWN0OjpUeXBlOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gY3JlYXRlKCk7CkBAIC0x
MzMsNiArMTM5LDkgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVBy
b2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOyB9
CiAgICAgdm9pZCBzZXRTaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzcyhib29sIHNob3VsZENh
cHR1cmVBdWRpb0luVUlQcm9jZXNzKSB7IG1fc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3Mg
PSBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzczsgfQogCisgICAgYm9vbCBzaG91bGRDYXB0
dXJlRGlzcGxheUluVUlQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDYXB0dXJlRGlz
cGxheUluVUlQcm9jZXNzOyB9CisgICAgdm9pZCBzZXRTaG91bGRDYXB0dXJlRGlzcGxheUluVUlQ
cm9jZXNzKGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcykgeyBtX3Nob3VsZENh
cHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgPSBzaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNz
OyB9CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBj
dERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2N0RGF0YUNvbm5l
Y3Rpb25TZXJ2aWNlVHlwZTsgfQogICAgIHZvaWQgc2V0Q1REYXRhQ29ubmVjdGlvblNlcnZpY2VU
eXBlKGNvbnN0IFdURjo6U3RyaW5nJiBjdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUpIHsgbV9j
dERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUgPSBjdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7
IH0KQEAgLTE5NCw2ICsyMDMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hbHdheXNSdW5zQXRC
YWNrZ3JvdW5kUHJpb3JpdHkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRUYWtlVUlCYWNr
Z3JvdW5kQXNzZXJ0aW9uIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlQXVkaW9J
blVJUHJvY2VzcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVEaXNwbGF5SW5V
SVByb2Nlc3MgeyBERUZBVUxUX0NBUFRVUkVfRElTUExBWV9JTl9VSV9QUk9DRVNTIH07CiAgICAg
UHJvY2Vzc0lEIG1fcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEIHsgZ2V0Q3VycmVudFByb2Nlc3NJ
RCgpIH07CiAgICAgYm9vbCBtX3Byb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2Fsd2F5c0tlZXBBbmRSZXVzZVN3YXBwZWRQcm9jZXNzZXMgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAzOGFhYjI2ZGEwZjFlYjgzZWVkOTc0ZDYx
NzJlYTBmZTQ0M2VmYzg2Li5hZjgzYjYzODc5Y2FhMzU0YjNjYzA5MTQzM2U4MTUyMzliNTFhZWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0
cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCkBA
IC05OCw2ICs5OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShtX2lkLCB0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsK
ICAgICB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVt
b3RlVmlkZW9TYW1wbGUmIHNhbXBsZSkKKyAgICB7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlJlbW90ZVZpZGVvU2Ft
cGxlQXZhaWxhYmxlKG1faWQsIFdURk1vdmUoc2FtcGxlKSksIDApOworICAgIH0KKwogICAgIHZv
aWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbCB7CiAgICAgICAg
IFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKICAgICAgICAgaWYgKHN0b3JhZ2UpCkBAIC0x
MjUsMTcgKzEzMSwyMyBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eSgpCiAgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZSB0eXBlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29u
c3RyYWludHMsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCit2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMs
IGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgotICAgICAgICBzb3VyY2VP
ckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0
b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCks
ICZjb25zdHJhaW50cyk7CisgICAgc3dpdGNoIChkZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBz
b3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YXVkaW9GYWN0b3J5KCku
Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksICZjb25z
dHJhaW50cyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6dmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNl
KGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksICZjb25zdHJhaW50cyk7CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86Ci0g
ICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS52aWRlb0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgJmNvbnN0cmFpbnRzKTsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OkFwcGxpY2F0aW9uOgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6QnJvd3NlcjoKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlD
YXB0dXJlU291cmNlKGRldmljZSwgJmNvbnN0cmFpbnRzKTsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE0Myw2ICsxNTUs
NyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgIHN1Y2NlZWRlZCA9ICEhc291cmNlT3JF
cnJvcjsKICAgICBpZiAoc291cmNlT3JFcnJvcikgewogICAgICAgICBhdXRvIHNvdXJjZSA9IHNv
dXJjZU9yRXJyb3Iuc291cmNlKCk7CisgICAgICAgIHNvdXJjZS0+c2V0SXNSZW1vdGUodHJ1ZSk7
CiAgICAgICAgIHNldHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOwogICAgICAgICBtX3Byb3hp
ZXMuc2V0KGlkLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIFdURk1v
dmUoc291cmNlKSkpOwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IGVj
YWVhZTI0ODIzYTQzOTFlNjU5ZDVhZWIzZWJkNDcyNGNlZWFkODguLjNiZjkyMWZlNjgwNjQyZmNj
NzZlMWZiZGFiZjMxMWVhNGVkYTczZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1
ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogCkBAIC00OSw3ICs1MCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFs
OwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlE
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlk
Q29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOworICAg
IHZvaWQgY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVp
bnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2VJRCwgU3RyaW5n
JiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBib29sJiBzdWNjZWVkZWQsIFN0
cmluZyYgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9p
ZCBzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBjYXBhYmlsaXRpZXModWlu
dDY0X3QsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJkMjE5YmM5NjA4ZDA3
NDA2OTE5MjI2MDQzYzAyYTcyYWVhMzViN2IuLjQ1YjFjMzg0MGRlNzhlMWY5ZWQyNDNkOGJjZTEy
MzY4NWE2YzQ1ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw3ICsy
NCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eSB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRl
dmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBTdHJpbmcgaGFz
aFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKSAtPiAo
Ym9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCitDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UgZGV2aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFp
bnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCiAgICAg
U3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVp
bnQ2NF90IGlkKQogICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDg1ZmZiOWFkMWY1NGZjNzU0ZTMx
OTk0OWQ0M2QxZjExNmI1YWM0MTUuLjczMWVmNGIzOTI1ZjU1Y2UwMTRmN2QzYTc0YjkyYWE3MzRj
NjYxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTkwNyw2ICs5MDcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJv
Y2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVEYQogICAgIHBhcmFtZXRlcnMu
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQgPSB3ZWJzaXRlRGF0YVN0b3JlLnJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKCk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBw
YXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gbV9jb25maWd1cmF0aW9u
LT5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcygpOworICAgIHBhcmFtZXRlcnMuc2hvdWxk
Q2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcyA9IG1fY29uZmlndXJhdGlvbi0+c2hvdWxkQ2FwdHVy
ZURpc3BsYXlJblVJUHJvY2VzcygpOwogI2VuZGlmCiAKICAgICBwYXJhbWV0ZXJzLnByZXNlbnRp
bmdBcHBsaWNhdGlvblBJRCA9IG1fY29uZmlndXJhdGlvbi0+cHJlc2VudGluZ0FwcGxpY2F0aW9u
UElEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCBjYjZkNmM3ZWU5YWM1YzFkNWYwYmMzOGRl
MjE1YTM5ZDZlMmZkNTg2Li43MjM2YTViNWQ3NTZhM2M0NmQyODhkZWQwODZmMTFmYzU2NzI0NGFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTM1LDEyICszNSwxNiBAQAogI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFn
ZVRyYW5zZmVyU2Vzc2lvblZULmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2Vi
QXVkaW9CdWZmZXJMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBzdGF0aWMgdWludDY0X3QgbmV4dFNlc3Npb25JRCgpCkBAIC01NSwxNiArNTksMjIgQEAgcHVi
bGljOgogICAgICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UodHlwZSwgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShzb3VyY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICAgICAsIG1faWQoaWQp
CiAgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCi0gICAgICAgICwgbV9yaW5nQnVmZmVyKG1h
a2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKQogICAgIHsKKyAg
ICAgICAgaWYgKHR5cGUgPT0gVHlwZTo6QXVkaW8pCisgICAgICAgICAgICBtX3JpbmdCdWZmZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZT4obnVsbHB0cikpOwogICAgIH0KIAogICAgIH5Tb3VyY2UoKQogICAgIHsK
LSAgICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKKyAgICAgICAgaWYgKHR5cGUoKSA9PSBU
eXBlOjpBdWRpbykKKyAgICAgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CiAgICAgfQog
Ci0gICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBzdGF0aWNf
Y2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOyB9
CisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKHR5cGUoKSA9PSBUeXBlOjpBdWRpbyk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKKyAg
ICB9CiAKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmls
aXRpZXMoKSBmaW5hbAogICAgIHsKQEAgLTg0LDEwICs5NCwxMSBAQCBwdWJsaWM6CiAgICAgY29u
c3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZGVzY3JpcHRpb247IH0KICAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5
OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgeworICAgICAgICBB
U1NFUlQodHlwZSgpID09IFR5cGU6OkF1ZGlvKTsKICAgICAgICAgbV9kZXNjcmlwdGlvbiA9IGRl
c2NyaXB0aW9uOwogCiAgICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgICAg
IG1fcmluZ0J1ZmZlci5kZWFsbG9jYXRlKCk7CisgICAgICAgICAgICBtX3JpbmdCdWZmZXItPmRl
YWxsb2NhdGUoKTsKICAgICAgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7CiAg
ICAgICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRyKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTk3LDIyICsxMDgsNTEgQEAgcHVibGljOgogICAgICAgICBzdG9yYWdlKCkuc2V0
U3RvcmFnZShXVEZNb3ZlKG1lbW9yeSkpOwogICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHko
dHJ1ZSk7CiAKLSAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1i
ZXJPZkZyYW1lcyk7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24s
IG51bWJlck9mRnJhbWVzKTsKICAgICB9CiAKICAgICB2b2lkIHNldFJpbmdCdWZmZXJGcmFtZUJv
dW5kcyh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKICAgICB7Ci0gICAg
ICAgIG1fcmluZ0J1ZmZlci5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJh
bWUpOworICAgICAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OkF1ZGlvKTsKKyAgICAgICAgbV9y
aW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwog
ICAgIH0KIAogICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcykKICAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlKCkgPT0g
VHlwZTo6QXVkaW8pOwogICAgICAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVz
Y3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKLSAgICAgICAgbV9yaW5nQnVmZmVyLmZldGNoKGF1
ZGlvRGF0YS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICAg
ICAgbV9yaW5nQnVmZmVyLT5mZXRjaChhdWRpb0RhdGEubGlzdCgpLCBudW1iZXJPZkZyYW1lcywg
dGltZS50aW1lVmFsdWUoKSk7CiAKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlvRGF0YSwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOwogICAgIH0KIAorI2lmIEhBVkUoSU9TVVJGQUNFKQorICAgIHZvaWQgcmVtb3RlVmlk
ZW9TYW1wbGVBdmFpbGFibGUoUmVtb3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCisgICAg
eworICAgICAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OlZpZGVvKTsKKworICAgICAgICBhdXRv
IHZpZGVvU2FtcGxlU2l6ZSA9IEludFNpemUobV9zZXR0aW5ncy53aWR0aCgpLCBtX3NldHRpbmdz
LmhlaWdodCgpKTsKKyAgICAgICAgaWYgKHZpZGVvU2FtcGxlU2l6ZS5pc0VtcHR5KCkpCisgICAg
ICAgICAgICB2aWRlb1NhbXBsZVNpemUgPSByZW1vdGVTYW1wbGUuc2l6ZSgpOworCisgICAgICAg
IGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikKKyAgICAgICAgICAgIG1faW1hZ2VUcmFuc2Zl
clNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZp
ZGVvRm9ybWF0KCkpOworCisgICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgewor
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Np
b24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBs
ZS50aW1lKCksIHZpZGVvU2FtcGxlU2l6ZSk7CisgICAgICAgIGlmICghc2FtcGxlUmVmKSB7Cisg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxh
YmxlKCpzYW1wbGVSZWYpOworICAgIH0KKyNlbmRpZgorCiAgICAgdm9pZCBhcHBseUNvbnN0cmFp
bnRzU3VjY2VlZGVkKGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
c2V0dGluZ3MpCiAgICAgewogICAgICAgICBhdXRvIGNhbGxiYWNrcyA9IG1fcGVuZGluZ0FwcGx5
Q29uc3RyYWludHNDYWxsYmFja3MudGFrZUZpcnN0KCk7CkBAIC0xNDQsOCArMTg0LDExIEBAIHBy
aXZhdGU6CiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBtdXRh
YmxlIHN0ZDo6b3B0aW9uYWw8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBh
YmlsaXRpZXM7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisK
ICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKLSAgICBDQVJpbmdC
dWZmZXIgbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDQVJpbmdCdWZmZXI+IG1f
cmluZ0J1ZmZlcjsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
PiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwogCiAgICAgc3RydWN0IEFwcGx5Q29uc3RyYWludHND
YWxsYmFjayB7CiAgICAgICAgIFN1Y2Nlc3NIYW5kbGVyIHN1Y2Nlc3NIYW5kbGVyOwpAQCAtMTYy
LDcgKzIwNSw4IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcihXZWJQcm9jZXNzJiBwcm9jZXNzKQogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6flVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCkKIHsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS51bnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CisgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6dW5zZXRBdWRpb0ZhY3RvcnkoKnRoaXMpOworICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnVuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KCp0aGlzKTsKICAgICBt
X3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIApAQCAtMTc0LDEwICsyMTgsMTIg
QEAgY29uc3QgY2hhciogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkK
IHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBpZiAocGFyYW1ldGVycy5z
aG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcykKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAgICAgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAgICBpZiAo
cGFyYW1ldGVycy5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKQorICAgICAgICBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXREaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKnRoaXMpOwog
fQogCi1XZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNh
cHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAg
aWYgKCFjb25zdHJhaW50cykKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE4NiwxMCArMjMyLDEx
IEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzIHNldHRpbmdzOwogICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CiAgICAgYm9vbCBzdWNjZWVk
ZWQ7Ci0gICAgaWYgKCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaW50cyhpZCwgZGV2aWNlLCBzb3VyY2VUeXBlLCBoYXNoU2FsdCwgKmNvbnN0cmFpbnRzKSwg
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBlcnJvck1l
c3NhZ2UsIHNldHRpbmdzKSwgMCkpCisgICAgaWYgKCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBoYXNoU2FsdCwgKmNvbnN0cmFp
bnRzKSwgTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBl
cnJvck1lc3NhZ2UsIHNldHRpbmdzKSwgMCkpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9y
TWVzc2FnZSk7CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmlu
Zzo6bnVtYmVyKGlkKSwgc291cmNlVHlwZSwgU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKSB9LCBX
VEZNb3ZlKGhhc2hTYWx0KSwgaWQsICp0aGlzKSk7CisgICAgYXV0byB0eXBlID0gZGV2aWNlLnR5
cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lID8gV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbzsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291
cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgdHlwZSwgU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKSB9
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgaWQsICp0aGlzKSk7CiAgICAgc291cmNlLT5zZXRTZXR0aW5n
cyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgbV9zb3VyY2VzLnNldChpZCwgc291cmNlLmNvcHlS
ZWYoKSk7CiAgICAgcmV0dXJuIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUo
c291cmNlKSk7CkBAIC0yMzksNiArMjg2LDE5IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50NjRfdCBpZCwgTWVkaWFUaW1lIHRpbWUsCiAg
ICAgc291cmNlLmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcyk7CiB9
CiAKKyNpZiBIQVZFKElPU1VSRkFDRSkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJl
bW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBSZW1vdGVWaWRlb1NhbXBsZSYm
IHNhbXBsZSkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9z
b3VyY2VzLmdldChpZCktPnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdURk1vdmUoc2FtcGxl
KSk7Cit9CisjZWxzZQorTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUodWludDY0X3QsIFJlbW90ZVZp
ZGVvU2FtcGxlJiYpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKKwog
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90
IGlkKQogewogICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5k
ZXggMzc2MzJkNTllNmVmOGNhYWM4MDY5MTNlNTAzNWRiY2E0YzhkNDU3OS4uOGVhYjAxNzBkMDdl
ODUzZWY5NmQyNjgzNzYxOWQ4OWQxMDk3YWJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTM2LDYg
KzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uOworY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpAQCAtNDMsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIENyb3NzUHJvY2Vz
c1JlYWx0aW1lQXVkaW9Tb3VyY2U7CiBjbGFzcyBXZWJQcm9jZXNzOwogCi1jbGFzcyBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSwg
cHVibGljIFdlYkNvcmU6OlZpZGVvQ2FwdHVyZUZhY3RvcnkgeworY2xhc3MgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlciwgcHVibGljIFdlYkNvcmU6OkF1ZGlvQ2FwdHVyZUZhY3RvcnksIHB1Ymxp
YyBXZWJDb3JlOjpWaWRlb0NhcHR1cmVGYWN0b3J5LCBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUNh
cHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcihXZWJQcm9jZXNzJik7CiAgICAgflVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCk7CkBAIC01
NSw5ICs1NiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikgZmluYWw7CiAKICAgICAvLyBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlIGZhY3RvcmllcwotICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2Us
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGhhc2hT
YWx0KSwgY29uc3RyYWludHMpOyB9Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRl
dmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZSwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cyk7IH0KLSAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyopOworICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1v
dmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2Uo
ZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOyB9CisgICAgV2ViQ29yZTo6
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykgZmluYWwgIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2
aWNlLCB7IH0sIGNvbnN0cmFpbnRzKTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0
cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7CiAKICAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CkBAIC03MCw2ICs3Miw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzdG9yYWdlQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3QgU2hhcmVkTWVtb3J5OjpI
YW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRf
dCBudW1iZXJPZkZyYW1lcyk7CiAgICAgdm9pZCByaW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2Vk
KHVpbnQ2NF90IGlkLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CiAg
ICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUodWludDY0X3QgaWQsIE1lZGlhVGltZSwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZy
YW1lKTsKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBX
ZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmKTsKIAogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdE
YXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKQEAg
LTg1LDYgKzg4LDYgQEAgcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9Owog
Ci19Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIubWVzc2FnZXMuaW4KaW5kZXggZWI1NzQwNTYxNzM1MmU4ODEzM2JiODUwZjE1N2YzNGMzYmYy
M2VmZC4uYTA2MmRjMzQ1NjcxYjI5NmU1MmY1ODNhNzExNmY3YWU3YzNlZmNjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzIsNiArMzIsNyBAQCBtZXNzYWdlcyAt
PiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciB7CiAgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVp
bnQ2NF90IGlkLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2
NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQogICAgIEFwcGx5Q29uc3RyYWludHNT
dWNjZWVkZWQodWludDY0X3QgaWQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyBzZXR0aW5ncykKICAgICBBcHBseUNvbnN0cmFpbnRzRmFpbGVkKHVpbnQ2NF90IGlkLCBTdHJp
bmcgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nIG1lc3NhZ2UpCisgICAgUmVtb3RlVmlkZW9TYW1w
bGVBdmFpbGFibGUodWludDY0X3QgaWQsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlIHNhbXBs
ZSkKIH0KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352764</attachid>
            <date>2018-10-18 21:41:49 -0700</date>
            <delta_ts>2018-10-18 22:22:23 -0700</delta_ts>
            <desc>Anothher rebased patch for landing</desc>
            <filename>bug-190728-20181018214148.patch</filename>
            <type>text/plain</type>
            <size>62241</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3Mjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzllZWRjZjdhM2YyMTg4
NjY2NWY4ZjZmZTI1MmI1NGZiNDUxMmMwMS4uMWMwYTRiYzY0YjBiM2NlMThiMGNmMzhjNDU1MzI5
YTFhZjlmNTk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE4LTEwLTE4ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gQWxsb3cgcG9ydHMgdG8gb3B0aW9uYWxseSBkbyBzY3JlZW4gY2FwdHVyZSBpbiB0aGUgVUkg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwNzI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTM3NjgyND4KKworICAgICAgICBSZXZp
ZXdlZCBieSBKZXIgTm9ibGUgYW5kIFRpbSBIb3J0b24uCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogU291cmNlcy50eHQ6IEFk
ZCBSZW1vdGVWaWRlb1NhbXBsZS5jcHAuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL01lZGlhU2FtcGxlLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZTo6dmlkZW9QaXhlbEZvcm1hdCBjb25zdCk6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6On5SZW1vdGVWaWRlb1Nh
bXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpSZW1vdGVWaWRlb1NhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6c3VyZmFjZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6dGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZTo6dmlkZW9Gb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3RlVmlkZW9TYW1wbGU6OnNpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVW
aWRlb1NhbXBsZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKTogQ2FsbCBvYnNl
cnZlcnMuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNlOjpkaXNwYXRjaE1l
ZGlhU2FtcGxlVG9PYnNlcnZlcnMpOiBEaXNwYXRjaCByZW1vdGUgc2FtcGxlcyB3aXRob3V0Cisg
ICAgICAgIHJlc2l6aW5nLCByZXNpemUgbG9jYWwgc2FtcGxlcyBpZiBuZWNlc3NhcnkuCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcHR1cmVPdXRwdXREaWRP
dXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbik6IERvbid0IHJlc2l6ZQorICAgICAgICBz
YW1wbGVzLCBpdCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhc2UgY2xhc3MgaWYgbmVjZXNzYXJ5Lgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
ZW1pdEZyYW1lKTogRG9uJ3QgcmVzaXplIHNhbXBsZXMgd2hlbiBydW5uaW5nIGluIHRoZSBVSQor
ICAgICAgICBwcm9jZXNzLCBpdCB3aWxsIGJlIGRvbmUgaW4gdGhlIHdlYiBwcm9jZXNzLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZUNvY29hLmNwcDogUmVtb3ZlIHVubmVlZGVkIGluY2x1ZGUuCisKIDIwMTgtMTAtMTggIEp1
c3RpbiBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBu
ZXcgaW1hZ2UgdHlwZSBmb3IgQ1NTIHBhaW50aW5nIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZTY0MDFiZTUw
N2VlM2Q4NWQ2NGNlM2YxNTlmYjRiZWY1ZGIyMDk0Li4zZDE3MWRhNjlkMGRhY2VhNzQ1MzNjZmYw
ZjA0OWM5ZDM2YzM1NmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE4LTEwLTE4ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0
cmVhbV0gQWxsb3cgcG9ydHMgdG8gb3B0aW9uYWxseSBkbyBzY3JlZW4gY2FwdHVyZSBpbiB0aGUg
VUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkwNzI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTM3NjgyND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBKZXIgTm9ibGUgYW5kIFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6IEVuY29kZSBzaG91bGRDYXB0
dXJlRGlzcGxheUluVUlQcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUpOiBEZWNvZGUgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJv
Y2Vzcy4KKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3Bw
OgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOiBDb3B5IHNo
b3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnJlbW90ZVZpZGVvU2FtcGxl
QXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKTogUmVt
b3ZlCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgcGFyYW1ldGVyLCBDYXB0dXJl
RGV2aWNlIGhhcyB0aGUgc2FtZSBpbmZvcm1hdGlvbi4gRGVhbCB3aXRoIGRpc3BsYXkKKyAgICAg
ICAgY2FwdHVyZSAiZGV2aWNlcyIuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpp
bml0aWFsaXplTmV3V2ViUHJvY2Vzcyk6IENvcHkgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJv
Y2Vzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNl
OjpTb3VyY2UpOiBPbmx5IGFsbG9jYXRlIGEgcmluZyBidWZmZXIgZm9yIEF1ZGlvIHNvdXJjZXMu
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6On5Tb3Vy
Y2UpOiBTYW1lIGZvciBkZWFsbG9jYXRlLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6U291cmNlOjpzdG9yYWdlKTogbV9yaW5nQnVmZmVyIGlzIGEgcG9pbnRlci4K
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0U3Rv
cmFnZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
U291cmNlOjpzZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMpOiBEaXR0by4KKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3Vy
Y2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKTogQ3JlYXRlIGEgCisgICAgICAgIFBpeGVs
QnVmZmVyLWJhY2tlZCBtZWRpYSBzYW1wbGUgYW5kIGNhbGwgdmlkZW9TYW1wbGVBdmFpbGFibGUu
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIpOiBDbGVhciB0aGUgYXVkaW8gYW5kIGRpc3BsYXkgY2FwdHVyZQorICAgICAg
ICBmYWN0b3J5IG92ZXJyaWRlcy4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmluaXRpYWxpemUpOiBTZXQgdGhlIGF1ZGlvIGFuZCBkaXNwbGF5IGNhcHR1cmUgZmFj
dG9yeSBvdmVycmlkZXMuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpjcmVhdGVDYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjoKKwogMjAxOC0xMC0x
OCAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIyMzcyNzIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDcwZTRhMTUwYTlmNjg0
NTQxMjdiMWNmYTBlNzJlMTZiY2I0YWI0N2QuLjgwMjFhY2UxZDQwZjc5YTVhMWRlNGQ3NGRlZTVh
YzA5MTE2MGQ4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNjY5LDYgKzE2NjksNyBAQCBwbGF0Zm9y
bS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL1JlZ2lvbi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNw
cAogcGxhdGZvcm0vZ3JhcGhpY3MvUm91bmRlZFJlY3QuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9T
aGFkb3dCbHVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDc4YmZkMjk1ZDdhNTkwNWFkODhkMDQwMDI5NjI5NDkyOWFjMzhhZjYuLjg3NmFhYjhhMmUzMjEz
NTlmOWNmYzVlOTM3NmM3ZWQxODdhNmJmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExNCw2ICsxMTQsNyBAQAogCQkwNzM3
OTRGQTE5RjU4NjRFMDBFNUEwNDUgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RjQxOUY1ODY0
RTAwRTVBMDQ1IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCAqLzsgfTsKIAkJMDczNzk0
RkUxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0NSAv
KiBSVENOb3RpZmllcnNNb2NrLmggKi87IH07CiAJCTA3Mzk0RUNBMUJBQjJDRDcwMEJFOTlDRCAv
KiBNZWRpYURldmljZXNSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzM5NEVDOTFCQUIyQ0Q3MDBCRTk5Q0QgLyogTWVkaWFEZXZpY2VzUmVx
dWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQTE1NTMyMTc3QTM5QTAw
RUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlv
U2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlz
dC5oICovOyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRh
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IH07
CiAJCTA3M0JEQzA1MUY2ODQzNjEwMEVFMzRFRCAvKiBUcmFja1ByaXZhdGVCYXNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NkUxMUJFMUY2ODNF
MEQwMDE3NzM5NSAvKiBUcmFja1ByaXZhdGVCYXNlLmNwcCAqLzsgfTsKQEAgLTYxOCw3ICs2MTks
NyBAQAogCQkxQUZFMTE5QTBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZFMTE5
ODBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggKi87IH07CiAJCTFB
RkZDNDU4MUQ1RTg2NTUwMDI2N0E2NiAvKiBXZWJHTEJsYWNrbGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRkM0NTExRDVFN0VDNzAwMjY3QTY2
IC8qIFdlYkdMQmxhY2tsaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMUFGRkM0NTkxRDVFODY2MTAwMjY3QTY2IC8qIFBsdWdpbkJsYWNrbGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRkM0
NEYxRDVFN0VDNzAwMjY3QTY2IC8qIFBsdWdpbkJsYWNrbGlzdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFCMTI0RDhEMUQzODBCNzAwMEVDREZC
MCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFCMTI0RDhDMUQzODBCNzAwMEVDREZCMCAvKiBNZWRpYVNhbXBsZUFW
Rk9iakMuaCAqLzsgfTsKKwkJMUIxMjREOEQxRDM4MEI3MDAwRUNERkIwIC8qIE1lZGlhU2FtcGxl
QVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUIxMjREOEMxRDM4MEI3MDAwRUNERkIwIC8qIE1lZGlhU2FtcGxlQVZGT2JqQy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFCMTI0RDhGMUQzODBC
QjYwMEVDREZCMCAvKiBNZWRpYVNhbXBsZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQjEyNEQ4RTFEMzgwQkI2MDBFQ0RGQjAgLyogTWVk
aWFTYW1wbGVBVkZPYmpDLm1tICovOyB9OwogCQkxQkY5REIzQzFEMzk3M0FEMDAyNkFFQjcgLyog
TWVkaWFTYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDMDEwNzAxMTkyNTk0REYw
MDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMDEwNkZGMTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVU
ZXh0Qm94U3R5bGUuaCAqLzsgfTsKQEAgLTUzNjMsNiArNTM2NCw4IEBACiAJCTA3Mzc5NEY4MTlG
NTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJUQ05vdGlmaWVyc01vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDczOTRFQzcxQkFCMkNDRDAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFEZXZpY2VzUmVxdWVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzk0RUM5MUJBQjJDRDcwMEJF
OTlDRCAvKiBNZWRpYURldmljZXNSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhRGV2aWNlc1JlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDczQTE1NTEyMTc3QTM5ODAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVZpZGVvU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3M0I4NzU2MUU0MERDRTUwMDcxQzBFQyAvKiBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NTcxRTQwRENG
RDAwNzFDMEVDIC8qIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNCODc1ODFFNDBEQ0ZEMDA3MUMwRUMgLyogQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTk3ODksNyArMTk3OTIsOSBAQAogCQkJCUU0MjA1MDE2MjE0MTkwMUIwMDY2RUYzQiAvKiBQ
cm9jZXNzV2FybWluZy5jcHAgKi8sCiAJCQkJRTQyMDUwMTQyMTQxOTAxQTAwNjZFRjNCIC8qIFBy
b2Nlc3NXYXJtaW5nLmggKi8sCiAJCQkJQ0Q5QTg3RjkyMTVENkNGMzAwNkYxN0I1IC8qIFF1aXJr
cy5jcHAgKi8sCisJCQkJQ0Q5QTg3RjIyMTVENDNBNjAwNkYxN0I1IC8qIFF1aXJrcy5jcHAgKi8s
CiAJCQkJQ0Q5QTg3RkIyMTVENkNGMzAwNkYxN0I1IC8qIFF1aXJrcy5oICovLAorCQkJCUNEOUE4
N0YxMjE1RDQzQTYwMDZGMTdCNSAvKiBRdWlya3MuaCAqLywKIAkJCQk0NkI5NTE4RDIwN0Q2MzJB
MDBBN0QyREQgLyogUmVtb3RlRE9NV2luZG93LmNwcCAqLywKIAkJCQk0NkI5NTE4RTIwN0Q2MzJB
MDBBN0QyREQgLyogUmVtb3RlRE9NV2luZG93LmggKi8sCiAJCQkJNDZCQ0JCQzMyMDg1MDBBNzAw
NzEwNjM4IC8qIFJlbW90ZURPTVdpbmRvdy5pZGwgKi8sCkBAIC0xOTgwMiw4ICsxOTgwNyw2IEBA
CiAJCQkJQTUwNzFFODQxQzU2RDA3OTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWQuaCAq
LywKIAkJCQk3QzUyMjI5QjFFMURBRTQ3MDAyQ0I4RjcgLyogUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5jcHAgKi8sCiAJCQkJN0M1MjIyOUMxRTFEQUU0NzAwMkNCOEY3IC8qIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCAqLywKLQkJCQlDRDlBODdGMjIxNUQ0M0E2MDA2RjE3QjUgLyogUXVpcmtzLmNw
cCAqLywKLQkJCQlDRDlBODdGMTIxNUQ0M0E2MDA2RjE3QjUgLyogUXVpcmtzLmggKi8sCiAJCQkJ
QkNFQzAxQkEwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5jcHAgKi8sCiAJCQkJQkNFQzAxQkIw
QzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5oICovLAogCQkJCUJDRUMwMUJDMEMyNzREQUMwMDlG
NEVDOSAvKiBTY3JlZW4uaWRsICovLApAQCAtMjQxMTQsNiArMjQxMTcsOCBAQAogCQkJCTA3NEU4
MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLywKIAkJCQlCQ0FC
NDE3RjEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmNwcCAqLywKIAkJCQlCQ0FCNDE4MDEzRTM1
NkU4MDBEOEFBRjMgLyogUmVnaW9uLmggKi8sCisJCQkJMDczQTE1NTEyMTc3QTM5ODAwRUEwOEYy
IC8qIFJlbW90ZVZpZGVvU2FtcGxlLmNwcCAqLywKKwkJCQkwNzNBMTU1MzIxNzdBMzlBMDBFQTA4
RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLywKIAkJCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFB
RjkgLyogUm91bmRlZFJlY3QuY3BwICovLAogCQkJCUE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAv
KiBSb3VuZGVkUmVjdC5oICovLAogCQkJCTBGM0RENDREMTJGNUVBMUIwMDBEOTE5MCAvKiBTaGFk
b3dCbHVyLmNwcCAqLywKQEAgLTI1MTQ5LDYgKzI1MTU0LDggQEAKIAkJCQlDRDk0QTVDOTFGNzFD
QTlEMDBGNTI1QzUgLyogQ0RNQ2xpZW50LmggKi8sCiAJCQkJQ0QwNjNGODAxRTIzRkE4OTAwODEy
QkUzIC8qIEluaXREYXRhUmVnaXN0cnkuY3BwICovLAogCQkJCUNEMDYzRjgxMUUyM0ZBODkwMDgx
MkJFMyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmggKi8sCisJCQkJQ0RGNzU2OUQyMTVDMjQ0NDAwRUZD
QjUwIC8qIE1lZGlhS2V5RW5jcnlwdGlvblNjaGVtZS5oICovLAorCQkJCUNERjc1NjlFMjE1QzI4
NUUwMEVGQ0I1MCAvKiBNZWRpYUtleUVuY3J5cHRpb25TY2hlbWUuaWRsICovLAogCQkJCTJEOUJG
NzJGMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleU1lc3NhZ2VFdmVudC5jcHAgKi8sCiAJCQkJ
MkQ5QkY3MzAxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmggKi8sCiAJ
CQkJMkQ5QkY2RjUxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmlkbCAq
LywKQEAgLTI1MTU3LDggKzI1MTY0LDYgQEAKIAkJCQkyRDlCRjczMzFEQkZEQzBGMDA3QTdEOTkg
LyogTWVkaWFLZXlzLmNwcCAqLywKIAkJCQkyRDlCRjczNDFEQkZEQzBGMDA3QTdEOTkgLyogTWVk
aWFLZXlzLmggKi8sCiAJCQkJMkQ5QkY2RjYxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5cy5p
ZGwgKi8sCi0JCQkJQ0RGNzU2OUQyMTVDMjQ0NDAwRUZDQjUwIC8qIE1lZGlhS2V5RW5jcnlwdGlv
blNjaGVtZS5oICovLAotCQkJCUNERjc1NjlFMjE1QzI4NUUwMEVGQ0I1MCAvKiBNZWRpYUtleUVu
Y3J5cHRpb25TY2hlbWUuaWRsICovLAogCQkJCTJEOUJGNzM1MURCRkRDMEYwMDdBN0Q5OSAvKiBN
ZWRpYUtleVNlc3Npb24uY3BwICovLAogCQkJCTJEOUJGNzM2MURCRkRDMEYwMDdBN0Q5OSAvKiBN
ZWRpYUtleVNlc3Npb24uaCAqLywKIAkJCQkyRDlCRjZGNzFEQkZCNzFGMDA3QTdEOTkgLyogTWVk
aWFLZXlTZXNzaW9uLmlkbCAqLywKQEAgLTI5Mjc5LDYgKzI5Mjg0LDcgQEAKIAkJCQlGRDIzQTEy
NjEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEOUJGNzEyMURCRkQ5MTQwMDdBN0Q5OSAvKiBKU01lZGlhRW5jcnlw
dGVkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxNDE5MENENjgyNjkwMEZBREE3NSAv
KiBKU01lZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERjc1NkEzMjE1QzI5RTkwMEVG
Q0I1MCAvKiBKU01lZGlhS2V5RW5jcnlwdGlvblNjaGVtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkQ5QkY3MjgxREJGREIwRDAwN0E3RDk5IC8qIEpTTWVkaWFLZXlNZXNzYWdlRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEOUJGNzI5MURCRkRCMTAwMDdBN0Q5OSAvKiBKU01lZGlhS2V5cy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5QkY3MkExREJGREIxMzAwN0E3RDk5IC8qIEpTTWVkaWFL
ZXlTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI5OTYxLDcgKzI5OTY3LDYgQEAKIAkJCQk1
MTA1OEFFMDFENjdDMjI5MDA5QTUzOEMgLyogTW9ja0dhbWVwYWQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxMDU4QUUyMUQ2N0MyMjkwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTNDQ0Q0QTIwREUwMzRGMDA2NUEyMUEgLyogTW9ja01lZGlhRGV2
aWNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlDREY3NTZBMzIxNUMyOUU5MDBFRkNCNTAgLyogSlNN
ZWRpYUtleUVuY3J5cHRpb25TY2hlbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERjJCMDEzMTgy
MDU0MDYwMEYyQjQyNCAvKiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RGMkIwMTUxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tNZWRpYVNvdXJjZVByaXZh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQkI4NUE5MjE1OUIwMkMwMDY3RTA3RCAvKiBNb2Nr
UGF5bWVudEVycm9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMzE3LDYgKzMwMzIyLDcgQEAKIAkJ
CQlDRDhBQ0E4OTFEMjM3QUEyMDBFQ0M1OUUgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0NkI5NTE5OTIwN0Q2MzREMDBBN0QyREQgLyogUmVtb3RlRE9N
V2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI5NTE5QTIwN0Q2MzU0MDBBN0QyREQgLyog
UmVtb3RlRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhG
MiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDA2QzBEOEYwQ0ZE
MTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzMzA5RTA1MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMzMDlFMDcwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9N
ZWRpYVNhbXBsZS5oCmluZGV4IDA1MGQ5Mzg5ZDE4ZTEwZjVkOTdiYTQzZDg2MGMyYTEzNTIwNjYy
ZmUuLjc1MTY2NTYyMWFjZDI1YTJkZmIyZWEyOWExYzkwNjVlZTIyOTMxMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAg
fTsKICAgICB2aXJ0dWFsIFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIFZpZGVvUm90YXRpb246Ok5vbmU7IH0KICAgICB2aXJ0dWFsIGJvb2wgdmlkZW9NaXJyb3Jl
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB1aW50MzJfdCB2aWRlb1Bp
eGVsRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiAgICAgYm9vbCBpc1N5bmMoKSBjb25z
dCB7IHJldHVybiBmbGFncygpICYgSXNTeW5jOyB9CiAgICAgYm9vbCBpc05vbkRpc3BsYXlpbmco
KSBjb25zdCB7IHJldHVybiBmbGFncygpICYgSXNOb25EaXNwbGF5aW5nOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGRhMjdjYWQ5MjJhMTk3MjQwOTczNWU3MWEzMjIwZTY2YjFhZWRjNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZp
ZGVvU2FtcGxlLmNwcApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90
ZVZpZGVvU2FtcGxlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShD
T0NPQSkKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgor
CisjaWYgSEFWRShJT1NVUkZBQ0UpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNl
bmRpZgorCisjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CisjaW5jbHVkZSAi
Q29yZVZpZGVvU29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNw
YWNlIFBBTDsKKworI2lmIEhBVkUoSU9TVVJGQUNFKQorc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZp
ZGVvU2FtcGxlPiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKE1lZGlhU2FtcGxlJiYgc2FtcGxl
KQoreworICAgIEFTU0VSVChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFBsYXRmb3Jt
U2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOworCisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IENN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxl
LmNtU2FtcGxlQnVmZmVyKTsKKyAgICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGF1dG8gc3VyZmFjZSA9IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2Uo
aW1hZ2VCdWZmZXIpOworICAgIGlmICghc3VyZmFjZSkgeworICAgICAgICBSRUxFQVNFX0xPRyhN
ZWRpYSwgIlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGU6IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZh
Y2UgcmV0dXJuZWQgbnVsbHB0ciIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisK
KyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPihuZXcgUmVtb3Rl
VmlkZW9TYW1wbGUoc3VyZmFjZSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwgc2FtcGxlLnByZXNlbnRh
dGlvblRpbWUoKSwgc2FtcGxlLnZpZGVvUm90YXRpb24oKSwgc2FtcGxlLnZpZGVvTWlycm9yZWQo
KSkpOworfQorCitSZW1vdGVWaWRlb1NhbXBsZTo6UmVtb3RlVmlkZW9TYW1wbGUoSU9TdXJmYWNl
UmVmIHN1cmZhY2UsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlLCBNZWRpYVRpbWUmJiB0aW1l
LCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbiwgYm9vbCBtaXJyb3JlZCkKKyAg
ICA6IG1faW9TdXJmYWNlKFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbVN1cmZhY2Uoc3Vy
ZmFjZSwgY29sb3JTcGFjZSkpCisgICAgLCBtX3JvdGF0aW9uKHJvdGF0aW9uKQorICAgICwgbV90
aW1lKFdURk1vdmUodGltZSkpCisgICAgLCBtX3ZpZGVvRm9ybWF0KElPU3VyZmFjZUdldFBpeGVs
Rm9ybWF0KHN1cmZhY2UpKQorICAgICwgbV9zaXplKEludFNpemUoSU9TdXJmYWNlR2V0V2lkdGgo
c3VyZmFjZSksIElPU3VyZmFjZUdldEhlaWdodChzdXJmYWNlKSkpCisgICAgLCBtX21pcnJvcmVk
KG1pcnJvcmVkKQoreworfQorCitJT1N1cmZhY2VSZWYgUmVtb3RlVmlkZW9TYW1wbGU6OnN1cmZh
Y2UoKQoreworICAgIGlmICghbV9pb1N1cmZhY2UgJiYgbV9zZW5kUmlnaHQpCisgICAgICAgIG1f
aW9TdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tU2VuZFJpZ2h0KFdURk1v
dmUobV9zZW5kUmlnaHQpLCBzUkdCQ29sb3JTcGFjZVJlZigpKTsKKworICAgIHJldHVybiBtX2lv
U3VyZmFjZSA/IG1faW9TdXJmYWNlLT5zdXJmYWNlKCkgOiBudWxscHRyOworfQorI2VuZGlmCisK
K30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
NzczMDY5OGRiZGYwZjA1NWUwYWY2NWQ3Njk2ZGJjNzM2YThlOTJiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaApA
QCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZP
Uk0oQ09DT0EpCisKKyNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgorI2luY2x1ZGUgIlJlbW90ZVZp
ZGVvU2FtcGxlLmgiCisjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KKyNpbmNsdWRlIDx3
dGYvTWVkaWFUaW1lLmg+CisKKyNpZiBIQVZFKElPU1VSRkFDRSkKKyNpbmNsdWRlICJJT1N1cmZh
Y2UuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbW90ZVZpZGVv
U2FtcGxlIHsKK3B1YmxpYzoKKyAgICBSZW1vdGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKKyAg
ICB+UmVtb3RlVmlkZW9TYW1wbGUoKSA9IGRlZmF1bHQ7CisKKyNpZiBIQVZFKElPU1VSRkFDRSkK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2Ft
cGxlPiBjcmVhdGUoTWVkaWFTYW1wbGUmJik7CisgICAgV0VCQ09SRV9FWFBPUlQgSU9TdXJmYWNl
UmVmIHN1cmZhY2UoKTsKKyNlbmRpZgorCisgICAgY29uc3QgTWVkaWFUaW1lJiB0aW1lKCkgY29u
c3QgeyByZXR1cm4gbV90aW1lOyB9CisgICAgdWludDMyX3QgdmlkZW9Gb3JtYXQoKSBjb25zdCB7
IHJldHVybiBtX3ZpZGVvRm9ybWF0OyB9CisgICAgSW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1
cm4gbV9zaXplOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyNpZiBIQVZFKElPU1VSRkFDRSkKKyAgICAg
ICAgaWYgKG1faW9TdXJmYWNlKQorICAgICAgICAgICAgZW5jb2RlciA8PCBtX2lvU3VyZmFjZS0+
Y3JlYXRlU2VuZFJpZ2h0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVuY29kZXIgPDwg
V1RGOjpNYWNoU2VuZFJpZ2h0KCk7CisjZW5kaWYKKyAgICAgICAgZW5jb2RlciA8PCBtX3JvdGF0
aW9uOworICAgICAgICBlbmNvZGVyIDw8IG1fdGltZTsKKyAgICAgICAgZW5jb2RlciA8PCBtX3Zp
ZGVvRm9ybWF0OworICAgICAgICBlbmNvZGVyIDw8IG1fc2l6ZTsKKyAgICAgICAgZW5jb2RlciA8
PCBtX21pcnJvcmVkOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZW1vdGVWaWRlb1NhbXBsZSYgc2FtcGxl
KQorICAgIHsKKyNpZiBIQVZFKElPU1VSRkFDRSkKKyAgICAgICAgTWFjaFNlbmRSaWdodCBzZW5k
UmlnaHQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2VuZFJpZ2h0KSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc2FtcGxlLm1fc2VuZFJpZ2h0ID0gV1RGTW92ZShz
ZW5kUmlnaHQpOworI2VuZGlmCisgICAgICAgIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJv
dGF0aW9uOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJvdGF0aW9uKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc2FtcGxlLm1fcm90YXRpb24gPSByb3RhdGlvbjsK
KworICAgICAgICBNZWRpYVRpbWUgdGltZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0
aW1lKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc2FtcGxlLm1fdGltZSA9
IFdURk1vdmUodGltZSk7CisKKyAgICAgICAgdWludDMyX3QgZm9ybWF0OworICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGZvcm1hdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIHNhbXBsZS5tX3ZpZGVvRm9ybWF0ID0gZm9ybWF0OworCisgICAgICAgIEludFNpemUgc2l6
ZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgc2FtcGxlLm1fc2l6ZSA9IFdURk1vdmUoc2l6ZSk7CisKKyAgICAg
ICAgYm9vbCBtaXJyb3JlZDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtaXJyb3JlZCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHNhbXBsZS5tX21pcnJvcmVkID0g
bWlycm9yZWQ7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCitwcml2YXRlOgorCisj
aWYgSEFWRShJT1NVUkZBQ0UpCisgICAgUmVtb3RlVmlkZW9TYW1wbGUoSU9TdXJmYWNlUmVmLCBD
R0NvbG9yU3BhY2VSZWYsIE1lZGlhVGltZSYmLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiwg
Ym9vbCk7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBtX2lvU3Vy
ZmFjZTsKKyAgICBXVEY6Ok1hY2hTZW5kUmlnaHQgbV9zZW5kUmlnaHQ7CisjZW5kaWYKKyAgICBN
ZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBtX3JvdGF0aW9uIHsgTWVkaWFTYW1wbGU6OlZpZGVv
Um90YXRpb246Ok5vbmUgfTsKKyAgICBNZWRpYVRpbWUgbV90aW1lOworICAgIHVpbnQzMl90IG1f
dmlkZW9Gb3JtYXQgeyAwIH07CisgICAgSW50U2l6ZSBtX3NpemU7CisgICAgYm9vbCBtX21pcnJv
cmVkIHsgZmFsc2UgfTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCmluZGV4IDA5MjM4
ODNlNWJjN2U0NDY0YjExNmI5MmJiZmQwOGE2ZTI2M2E3MmYuLjYwZWU5NmY0MDI0MzM2MjJmNTg1
NDEyNmZmYjIzOTUxMDY5OGNlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKIAogICAgIFZpZGVvUm90YXRp
b24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcm90YXRpb247IH0K
ICAgICBib29sIHZpZGVvTWlycm9yZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX21pcnJv
cmVkOyB9Ci0gICAgdWludDMyX3QgdmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0OworICAgIHVpbnQz
Ml90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKIAogICAgIENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlLmdldCgpOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdl
VHJhbnNmZXJTZXNzaW9uVlQuaAppbmRleCA1YzMyMzE0MTAzZjUzMzZkYjIwZmE3Y2I5M2NiN2Q5
ZTMxYjRjNzVhLi41NjcyYjg1NjAwMmJlMTI5ZGViZDIxYzlhZGU2M2Q1NmQ2YWIxNjIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVy
U2Vzc2lvblZULmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICBSZWZQ
dHI8TWVkaWFTYW1wbGU+IGNyZWF0ZU1lZGlhU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmLCBjb25z
dCBJbnRTaXplJiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6Vmlk
ZW9Sb3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZhbHNlKTsKIAogI2lmIEhBVkUoSU9T
VVJGQUNFKSAmJiAhUExBVEZPUk0oSU9TTUFDKQotICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gY3Jl
YXRlTWVkaWFTYW1wbGUoSU9TdXJmYWNlUmVmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBJbnRT
aXplJiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZhbHNlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBS
ZWZQdHI8TWVkaWFTYW1wbGU+IGNyZWF0ZU1lZGlhU2FtcGxlKElPU3VyZmFjZVJlZiwgY29uc3Qg
TWVkaWFUaW1lJiwgY29uc3QgSW50U2l6ZSYsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uID0g
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIGJvb2wgbWlycm9yZWQgPSBmYWxzZSk7
CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCmluZGV4IDk0YjE5
Y2Q0MzQ3ZmZhNzgyMTUwMDg2ODk1YTFlNzBhNmIxNDk3MDAuLmRiZDU4YjMyZWY2ODQyNDYwNDEx
MTJkMzYxYmM2NmZjMmZkMTllYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQpAQCAtMTQ4
LDcgKzE0OCw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgYXV0byBkZXNjcmlwdGlv
biA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc291cmNlQnVmZmVyKTsKICAg
ICBhdXRvIHNvdXJjZVNpemUgPSBGbG9hdFNpemUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0
UHJlc2VudGF0aW9uRGltZW5zaW9ucyhkZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOwogICAgIGF1
dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1
ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlcikpOwotICAgIGlmIChzaXplID09IHJvdW5k
ZWRJbnRTaXplKHNvdXJjZVNpemUpICYmIG1fcGl4ZWxGb3JtYXQgPT0gQ1ZQaXhlbEJ1ZmZlckdl
dFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcikpCisgICAgaWYgKHNpemUgPT0gZXhwYW5kZWRJ
bnRTaXplKHNvdXJjZVNpemUpICYmIG1fcGl4ZWxGb3JtYXQgPT0gQ1ZQaXhlbEJ1ZmZlckdldFBp
eGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcikpCiAgICAgICAgIHJldHVybiByZXRhaW5QdHIoc291
cmNlQnVmZmVyKTsKIAogICAgIGlmICghc2V0U2l6ZShzaXplKSkKQEAgLTM0MCw3ICszNDAsNyBA
QCBSZWZQdHI8TWVkaWFTYW1wbGU+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRNZWRp
YVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcAogewogICAgIEFTU0VSVChzYW1wbGUucGxhdGZvcm1T
YW1wbGUoKS50eXBlID09IFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOwogCi0g
ICAgaWYgKHNpemUgPT0gcm91bmRlZEludFNpemUoc2FtcGxlLnByZXNlbnRhdGlvblNpemUoKSkp
CisgICAgaWYgKHNpemUgPT0gZXhwYW5kZWRJbnRTaXplKHNhbXBsZS5wcmVzZW50YXRpb25TaXpl
KCkpKQogICAgICAgICByZXR1cm4gJnNhbXBsZTsKIAogICAgIGF1dG8gcmVzaXplZEJ1ZmZlciA9
IGNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21T
YW1wbGVCdWZmZXIsIHNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCBlYzhiNWI5ZGRl
MGNjZDc1MTQxNGJlYTQyMmM1YzY1ZTliMjM4YjFmLi5mMmRkNDZjN2QwMjJiMDRkM2M5NjRiZjY4
ZTE3NzM3ZjI3YzhjYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtMTU4LDYgKzE1OCwx
MyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlh
U2FtcGxlJiBtZWRpYVNhbXBsZSkKICAgICB9KTsKIH0KIAordm9pZCBSZWFsdGltZU1lZGlhU291
cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShSZW1vdGVWaWRlb1NhbXBsZSYmIHNhbXBs
ZSkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAg
IG9ic2VydmVyLnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKHNhbXBsZSk7CisgICAgfSk7Cit9
CisKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0
IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZy
YW1lcykKIHsKICAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9ic2VydmVyKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmgKaW5kZXggYTkzZGUzMzhjNDFhNTcxY2IxMDVkMWY0MzZkNTJjNWU1OTM4MGI2
MS4uN2FhODYwYzg1OTJmZDhhMDRlODdiMDIyODQyMDhiMmExMDA0YzBiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaApAQCAtNjEsNiArNjEsNyBAQCBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiBjbGFz
cyBPcmllbnRhdGlvbk5vdGlmaWVyOwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiBjbGFzcyBS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M7CitjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZTsKIAog
c3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yOwogCkBAIC04MSw2ICs4Miw3IEBAIHB1YmxpYzoK
IAogICAgICAgICAvLyBDYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLgogICAgICAgICB2aXJ0dWFs
IHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSB7IH0KKyAgICAgICAgdmly
dHVhbCB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFJlbW90ZVZpZGVvU2FtcGxlJikg
eyB9CiAKICAgICAgICAgLy8gTWF5IGJlIGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgog
ICAgICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYsIHNpemVfdCAvKm51bWJlck9mRnJhbWVzKi8pIHsgfQpAQCAtMTY1LDYgKzE2Nyw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ0F1ZGlvU291cmNlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ1ZpZGVvU291cmNlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZvaWQgc2V0SXNSZW1vdGUoYm9vbCBpc1Jl
bW90ZSkgeyBtX2lzUmVtb3RlID0gaXNSZW1vdGU7IH0KKyAgICBib29sIGlzUmVtb3RlKCkgY29u
c3QgeyByZXR1cm4gbV9pc1JlbW90ZTsgfQorCiAgICAgLy8gVGVzdGluZyBvbmx5CiAgICAgdmly
dHVhbCB2b2lkIGRlbGF5U2FtcGxlcyhTZWNvbmRzKSB7IH07CiAKQEAgLTE5NiwxMyArMjAxLDEz
IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1w
bGUmKTsKICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBz
aXplX3QpOworICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVtb3RlVmlkZW9T
YW1wbGUmJik7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0
YSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBzZXR0aW5nc0RpZENoYW5nZShPcHRpb25TZXQ8UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzOjpGbGFnPikgeyB9CiAKLQogICAgIHZvaWQgZm9yRWFjaE9ic2VydmVyKGNvbnN0
IFdURjo6RnVuY3Rpb248dm9pZChPYnNlcnZlciYpPiYpIGNvbnN0OwogCiAgICAgYm9vbCBtX211
dGVkIHsgZmFsc2UgfTsKQEAgLTIyOCw2ICsyMzMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9p
c1Byb2R1Y2luZ0RhdGEgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pbnRlcnJ1cHRlZCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2NhcHR1cmVEaWRGYWlsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9p
c1JlbW90ZSB7IGZhbHNlIH07CiB9OwogCiBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvU291cmNlLmNwcAppbmRleCAxNDkxMzNkODViMTZiMjFmNGMzMTAwYTllNjFhMGI2
ZTljOGJiYWMyLi4wYjRhNmVkMWM4ZTE1NTdhODQxZTI0MWRkYjdlM2VhMjY3MzU3MzAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvU291cmNlLmNwcApAQCAtMzEsNiArMzEsMTEgQEAKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgogI2luY2x1ZGUgIlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvU2FtcGxl
LmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJJbWFnZVRyYW5zZmVyU2Vzc2lv
blZULmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNzgsNyArMzgzLDM2
IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2
ZXJzKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgaWYgKGludGVydmFsID4gMSkKICAgICAgICAg
bV9vYnNlcnZlZEZyYW1lUmF0ZSA9IChtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBzLnNpemUoKSAv
IGludGVydmFsKTsKIAotICAgIHZpZGVvU2FtcGxlQXZhaWxhYmxlKHNhbXBsZSk7CisgICAgaWYg
KGlzUmVtb3RlKCkpIHsKKyNpZiBIQVZFKElPU1VSRkFDRSkKKyAgICAgICAgYXV0byByZW1vdGVT
YW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKFdURk1vdmUoc2FtcGxlKSk7CisgICAg
ICAgIGlmIChyZW1vdGVTYW1wbGUpCisgICAgICAgICAgICByZW1vdGVWaWRlb1NhbXBsZUF2YWls
YWJsZShXVEZNb3ZlKCpyZW1vdGVTYW1wbGUpKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIG1l
ZGlhU2FtcGxlID0gbWFrZVJlZlB0cigmc2FtcGxlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBhdXRvIHNpemUgPSB0aGlzLT5zaXplKCk7CisgICAgaWYgKCFzaXplLmlzRW1wdHkoKSAmJiBz
aXplICE9IGV4cGFuZGVkSW50U2l6ZShzYW1wbGUucHJlc2VudGF0aW9uU2l6ZSgpKSkgeworCisg
ICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikKKyAgICAgICAgICAgIG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUoc2FtcGxlLnZp
ZGVvUGl4ZWxGb3JtYXQoKSk7CisKKyAgICAgICAgaWYgKG1faW1hZ2VUcmFuc2ZlclNlc3Npb24p
IHsKKyAgICAgICAgICAgIG1lZGlhU2FtcGxlID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y29u
dmVydE1lZGlhU2FtcGxlKHNhbXBsZSwgc2l6ZSk7CisgICAgICAgICAgICBpZiAoIW1lZGlhU2Ft
cGxlKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorI2VuZGlmCisK
KyAgICB2aWRlb1NhbXBsZUF2YWlsYWJsZShtZWRpYVNhbXBsZS5yZWxlYXNlTm9uTnVsbCgpKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDQ3YzRm
NWVlM2MxZjY1NmFkNTIwYjRiZWI4M2I0NzJmNzRkMDlkZDAuLjg0MjY4YWI2NjZlMzlkNzcwNWQ4
MDg4ZGNhYzg1M2Q1NTFlNmZhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTM3LDYgKzM3LDgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
OworCiBjbGFzcyBSZWFsdGltZVZpZGVvU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3Vy
Y2UgewogcHVibGljOgogICAgIHZpcnR1YWwgflJlYWx0aW1lVmlkZW9Tb3VyY2UoKTsKQEAgLTgz
LDYgKzg1LDkgQEAgcHJpdmF0ZToKICAgICBEZXF1ZTxkb3VibGU+IG1fb2JzZXJ2ZWRGcmFtZVRp
bWVTdGFtcHM7CiAgICAgZG91YmxlIG1fb2JzZXJ2ZWRGcmFtZVJhdGUgeyAwIH07CiAgICAgSW50
U2l6ZSBtX2RlZmF1bHRTaXplOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOworI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3Vy
Y2UubW0KaW5kZXggZWM0M2FlMDY5NDMxMzRhZGZhYjY5MzhkNWVkNjkwZjNiMGY5MGU5OC4uODNh
ZmVkNzYyZmM2MTJlNDMxMmExMTU2YzI5NWRkMzhhOGNjNDA4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5tbQpAQCAtNTQwLDI3ICs1NDAsOSBAQCB2b2lkIEFWVmlkZW9DYXB0dXJlU291
cmNlOjpwcm9jZXNzTmV3RnJhbWUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSkKIAogdm9pZCBB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZy
b21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dFR5cGUqLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1w
bGVCdWZmZXIsIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKiBjYXB0dXJlQ29ubmVjdGlvbikKIHsK
LSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVC
dWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIpOwotICAgIGlmICghZm9ybWF0
RGVzY3JpcHRpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIENNVmlkZW9EaW1lbnNpb25zIGRp
bWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdERl
c2NyaXB0aW9uKTsKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IHNhbXBsZTsKLSAgICBpZiAoZGlt
ZW5zaW9ucy53aWR0aCAhPSBtX3JlcXVlc3RlZFNpemUud2lkdGgoKSB8fCBkaW1lbnNpb25zLmhl
aWdodCAhPSBtX3JlcXVlc3RlZFNpemUuaGVpZ2h0KCkpIHsKLQotICAgICAgICBpZiAoIW1faW1h
Z2VUcmFuc2ZlclNlc3Npb24pCi0gICAgICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0g
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKGF2VmlkZW9DYXB0dXJlUGl4ZWxCdWZmZXJG
b3JtYXQoKSk7Ci0KLSAgICAgICAgc2FtcGxlID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3Jl
YXRlTWVkaWFTYW1wbGUoc2FtcGxlQnVmZmVyLCBtX3JlcXVlc3RlZFNpemUsIG1fc2FtcGxlUm90
YXRpb24sIFtjYXB0dXJlQ29ubmVjdGlvbiBpc1ZpZGVvTWlycm9yZWRdKTsKLSAgICAgICAgaWYg
KCFzYW1wbGUpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSBlbHNlCi0gICAgICAgIHNhbXBsZSA9IE1lZGlh
U2FtcGxlQVZGT2JqQzo6Y3JlYXRlKHNhbXBsZUJ1ZmZlciwgbV9zYW1wbGVSb3RhdGlvbiwgW2Nh
cHR1cmVDb25uZWN0aW9uIGlzVmlkZW9NaXJyb3JlZF0pOwotCisgICAgYXV0byBzYW1wbGUgPSBN
ZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGVCdWZmZXIsIG1fc2FtcGxlUm90YXRpb24s
IFtjYXB0dXJlQ29ubmVjdGlvbiBpc1ZpZGVvTWlycm9yZWRdKTsKICAgICBzY2hlZHVsZURlZmVy
cmVkVGFzayhbdGhpcywgc2FtcGxlID0gV1RGTW92ZShzYW1wbGUpXSAoKSBtdXRhYmxlIHsKLSAg
ICAgICAgcHJvY2Vzc05ld0ZyYW1lKHNhbXBsZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAg
cHJvY2Vzc05ld0ZyYW1lKFdURk1vdmUoc2FtcGxlKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVy
ZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAppbmRleCAzNDM1NzRlN2IwNzljZDIxMWIw
ODBmNWE3Y2E2YjNhZDZjZWI3ZGE3Li4zMzcyZmEyNzk2NjgxZDljODNiNmQyYTJhMzEyMmRjYzk3
YTc5ZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgogI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlJlYWx0aW1l
VmlkZW9VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb1NhbXBsZS5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8Q29yZU1lZGlhL0NNU3luYy5oPgogI2luY2x1ZGUgPG1h
Y2gvbWFjaF90aW1lLmg+CkBAIC0xNzIsMjIgKzE3Myw0NCBAQCB2b2lkIERpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2E6OmVtaXRGcmFtZSgpCiAgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24g
PSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocHJlZmVyZWRQaXhlbEJ1ZmZlckZvcm1h
dCgpKTsKIAogICAgIGF1dG8gc2FtcGxlVGltZSA9IE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJs
ZSgoZWxhcHNlZFRpbWUoKSArIDEwMF9tcykuc2Vjb25kcygpKTsKKwogICAgIGF1dG8gZnJhbWUg
PSBnZW5lcmF0ZUZyYW1lKCk7Ci0gICAgSW50U2l6ZSBpbWFnZVNpemU7CisgICAgYXV0byBpbWFn
ZVNpemUgPSBXVEY6OnN3aXRjaE9uKGZyYW1lLAorICAgICAgICBbXShSZXRhaW5QdHI8SU9TdXJm
YWNlUmVmPiBzdXJmYWNlKSAtPiBJbnRTaXplIHsKKyAgICAgICAgICAgIGlmICghc3VyZmFjZSkK
KyAgICAgICAgICAgICAgICByZXR1cm4geyB9OworCisgICAgICAgICAgICByZXR1cm4gSW50U2l6
ZShJT1N1cmZhY2VHZXRXaWR0aChzdXJmYWNlLmdldCgpKSwgSU9TdXJmYWNlR2V0SGVpZ2h0KHN1
cmZhY2UuZ2V0KCkpKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10oUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IGltYWdlKSAtPiBJbnRTaXplIHsKKyAgICAgICAgICAgIGlmICghaW1hZ2UpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICAgICAgcmV0dXJuIEludFNpemUoQ0dJbWFn
ZUdldFdpZHRoKGltYWdlLmdldCgpKSwgQ0dJbWFnZUdldEhlaWdodChpbWFnZS5nZXQoKSkpOwor
ICAgICAgICB9CisgICAgKTsKKworICAgIEFTU0VSVCghaW1hZ2VTaXplLmlzRW1wdHkoKSk7Cisg
ICAgaWYgKGltYWdlU2l6ZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICht
X2ludHJpbnNpY1NpemUgIT0gaW1hZ2VTaXplKQorICAgICAgICBzZXRJbnRyaW5zaWNTaXplKGlt
YWdlU2l6ZSk7CisKKyAgICBhdXRvIG1lZGlhU2FtcGxlU2l6ZSA9IGlzUmVtb3RlKCkgPyBpbWFn
ZVNpemUgOiBmcmFtZVNpemUoKTsKKwogICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gc2FtcGxlID0g
V1RGOjpzd2l0Y2hPbihmcmFtZSwKLSAgICAgICAgW3RoaXMsIHNhbXBsZVRpbWUsICZpbWFnZVNp
emVdKFJldGFpblB0cjxJT1N1cmZhY2VSZWY+IHN1cmZhY2UpIC0+IFJlZlB0cjxNZWRpYVNhbXBs
ZT4geworICAgICAgICBbdGhpcywgc2FtcGxlVGltZSwgbWVkaWFTYW1wbGVTaXplXShSZXRhaW5Q
dHI8SU9TdXJmYWNlUmVmPiBzdXJmYWNlKSAtPiBSZWZQdHI8TWVkaWFTYW1wbGU+IHsKICAgICAg
ICAgICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgICAgICAgICAgaW1hZ2VTaXplID0gSW50U2l6ZShJT1N1cmZhY2VHZXRXaWR0aChzdXJmYWNl
LmdldCgpKSwgSU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2UuZ2V0KCkpKTsKLSAgICAgICAgICAg
IHJldHVybiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShzdXJmYWNl
LmdldCgpLCBzYW1wbGVUaW1lLCBpbWFnZVNpemUpOworICAgICAgICAgICAgcmV0dXJuIG1faW1h
Z2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHN1cmZhY2UuZ2V0KCksIHNhbXBs
ZVRpbWUsIG1lZGlhU2FtcGxlU2l6ZSk7CiAgICAgICAgIH0sCi0gICAgICAgIFt0aGlzLCBzYW1w
bGVUaW1lLCAmaW1hZ2VTaXplXShSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UpIC0+IFJlZlB0
cjxNZWRpYVNhbXBsZT4geworICAgICAgICBbdGhpcywgc2FtcGxlVGltZSwgbWVkaWFTYW1wbGVT
aXplXShSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UpIC0+IFJlZlB0cjxNZWRpYVNhbXBsZT4g
ewogICAgICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotICAgICAgICAgICAgaW1hZ2VTaXplID0gSW50U2l6ZShDR0ltYWdlR2V0V2lkdGgoaW1h
Z2UuZ2V0KCkpLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdldCgpKSk7Ci0gICAgICAgICAgICBy
ZXR1cm4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUoaW1hZ2UuZ2V0
KCksIHNhbXBsZVRpbWUsIGltYWdlU2l6ZSk7CisgICAgICAgICAgICByZXR1cm4gbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUoaW1hZ2UuZ2V0KCksIHNhbXBsZVRpbWUs
IG1lZGlhU2FtcGxlU2l6ZSk7CiAgICAgICAgIH0KICAgICApOwogCkBAIC0xOTYsOCArMjE5LDEz
IEBAIHZvaWQgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6ZW1pdEZyYW1lKCkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2ludHJpbnNpY1NpemUgIT0gaW1hZ2VTaXplKQot
ICAgICAgICBzZXRJbnRyaW5zaWNTaXplKGltYWdlU2l6ZSk7CisgICAgaWYgKGlzUmVtb3RlKCkp
IHsKKyAgICAgICAgYXV0byByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRl
KFdURk1vdmUoKnNhbXBsZSkpOworICAgICAgICBpZiAocmVtb3RlU2FtcGxlKQorICAgICAgICAg
ICAgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSk7CisK
KyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIHZpZGVvU2FtcGxlQXZhaWxhYmxlKCpzYW1w
bGUuZ2V0KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZUNvY29hLmNwcAppbmRleCA0NDE5YmFlZWY4M2U5ZGNmNzU4MjM0MDJhMmE4MmQzODJk
YWQ2ZWM5Li4zMDc5ZDc5ZWEyMTQzYjIzNjkzNzVhNTY5ZTNkN2ZjNjU3ZDM1YjQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTMw
LDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZWFsdGltZUlu
Y29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oIgotI2luY2x1ZGUgIlJlYWx0aW1lVmlkZW9VdGlsaXRp
ZXMuaCIKIAogQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCAx
NzY2YmYwNGJhOTczN2FjZGY0MWZmOWI4NDcxMjBlOWYxZDczNzE0Li40N2U4OGY0YjQwZjFiYmMx
ZWE1ZWY4Yzk2YzdhN2EwNTYyMmNjYmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNzIsNiArNzIsNyBAQCB2
b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBlbmNvZGVyIDw8IGF1
ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNvZGVyIDw8IHNob3VsZENhcHR1cmVB
dWRpb0luVUlQcm9jZXNzOworICAgIGVuY29kZXIgPDwgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJ
UHJvY2VzczsKICNlbmRpZgogICAgIGVuY29kZXIgPDwgc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtT
ZXNzaW9uOwogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0VtcHR5RG9jdW1l
bnQ7CkBAIC0yNjQsNiArMjY1LDggQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKIAogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vz
cykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcykpCisgICAgICAgIHJldHVybiBm
YWxzZTsKICNlbmRpZgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRV
c2VUZXN0aW5nTmV0d29ya1Nlc3Npb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5k
ZXggMzFkYjhiMDg4NmRkZDgyZTVhYzhiM2ZiMjlhOTE5OWVlNDFjMDQzZS4uZjdjZDNjYjU1NDc2
NjU1ZDg3YjgwM2U4NjlhNzA0MjNlYTg2ZDY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtOTYsNiArOTYsNyBAQCBz
dHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgYXVkaW9DYXB0dXJlRXh0ZW5zaW9u
SGFuZGxlOwogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgeyBmYWxzZSB9
OworICAgIGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcyB7IGZhbHNlIH07CiAj
ZW5kaWYKICAgICBTdHJpbmcgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uY3BwCmluZGV4IDk5NmMwZGQxMGNiN2QxYmMwM2VjMDI1OTIzMzkxNmRjZjcwMzM2YmIu
LjlkMmUwMTg0ZTU5MDAxZTY4YzM3N2FmOWNiOGFjMmI0OGVjZTgzZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uY3BwCkBAIC0xMTUsNiArMTE1LDcgQEAgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bj4gUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5KCkKICAgICBjb3B5LT5tX2Fsd2F5c1J1
bnNBdEJhY2tncm91bmRQcmlvcml0eSA9IHRoaXMtPm1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFBy
aW9yaXR5OwogICAgIGNvcHktPm1fc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbiA9IHRo
aXMtPm1fc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbjsKICAgICBjb3B5LT5tX3Nob3Vs
ZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gdGhpcy0+bV9zaG91bGRDYXB0dXJlQXVkaW9JblVJ
UHJvY2VzczsKKyAgICBjb3B5LT5tX3Nob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgPSB0
aGlzLT5tX3Nob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3M7CiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBjb3B5LT5tX2N0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSA9IHRoaXMt
Pm1fY3REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgK
aW5kZXggNGQzOGIxNDNhMmE0OTFhZmQwNWIwMTY5MzhmYmI3ZDZjNGE2MTMwOS4uZTIyZmZiNDdk
ZTQ2ZGQ0OGRhMDQyNGMwNDNiNTk1ZDM3YWIxMDYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAt
MzYsNiArMzYsMTIgQEAKIAogbmFtZXNwYWNlIEFQSSB7CiAKKyNpZiBQTEFURk9STShDT0NPQSkg
JiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQorI2RlZmluZSBERUZBVUxUX0NBUFRV
UkVfRElTUExBWV9JTl9VSV9QUk9DRVNTIHRydWUKKyNlbHNlCisjZGVmaW5lIERFRkFVTFRfQ0FQ
VFVSRV9ESVNQTEFZX0lOX1VJX1BST0NFU1MgZmFsc2UKKyNlbmRpZgorCiBjbGFzcyBQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24gZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6
OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBjcmVhdGUoKTsKQEAgLTEzMyw2ICsxMzksOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcygpIGNvbnN0IHsgcmV0
dXJuIG1fc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3M7IH0KICAgICB2b2lkIHNldFNob3Vs
ZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nl
c3MpIHsgbV9zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IHNob3VsZENhcHR1cmVBdWRp
b0luVUlQcm9jZXNzOyB9CiAKKyAgICBib29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nl
c3MoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3M7IH0K
KyAgICB2b2lkIHNldFNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MoYm9vbCBzaG91bGRD
YXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKSB7IG1fc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJv
Y2VzcyA9IHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3M7IH0KKwogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgY29uc3QgV1RGOjpTdHJpbmcmIGN0RGF0YUNvbm5lY3Rpb25TZXJ2
aWNlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlOyB9
CiAgICAgdm9pZCBzZXRDVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUoY29uc3QgV1RGOjpTdHJp
bmcmIGN0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSkgeyBtX2N0RGF0YUNvbm5lY3Rpb25TZXJ2
aWNlVHlwZSA9IGN0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsgfQpAQCAtMTk0LDYgKzIwMyw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24geyB0
cnVlIH07CiAgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1fc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcyB7IERFRkFVTFRf
Q0FQVFVSRV9ESVNQTEFZX0lOX1VJX1BST0NFU1MgfTsKICAgICBQcm9jZXNzSUQgbV9wcmVzZW50
aW5nQXBwbGljYXRpb25QSUQgeyBnZXRDdXJyZW50UHJvY2Vzc0lEKCkgfTsKICAgICBib29sIG1f
cHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWx3YXlzS2Vl
cEFuZFJldXNlU3dhcHBlZFByb2Nlc3NlcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IDM4YWFiMjZkYTBmMWViODNlZWQ5NzRkNjE3MmVhMGZlNDQzZWZjODYuLmFm
ODNiNjM4NzljYWEzNTRiM2NjMDkxNDMzZTgxNTIzOWI1MWFlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdC
dWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1JlbW90ZVZpZGVvU2FtcGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxp
c3QuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKQEAgLTk4LDYgKzk5LDExIEBAIHB1
YmxpYzoKICAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9TYW1wbGVzQXZhaWxhYmxlKG1faWQsIHRpbWUsIG51bWJl
ck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSksIDApOwogICAgIH0KIAorICAgIHZpcnR1
YWwgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShSZW1vdGVWaWRlb1NhbXBsZSYgc2Ft
cGxlKQorICAgIHsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6UmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUobV9pZCwg
V1RGTW92ZShzYW1wbGUpKSwgMCk7CisgICAgfQorCiAgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChT
aGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsIHsKICAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5k
bGUgaGFuZGxlOwogICAgICAgICBpZiAoc3RvcmFnZSkKQEAgLTEyNSwxNyArMTMxLDIzIEBAIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
KCkKICAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogfQogCi12b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgYm9vbCYgc3Vj
Y2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVp
bnQ2NF90IGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgYm9vbCYgc3VjY2VlZGVkLCBT
dHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBzZXR0aW5ncykKIHsKICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVy
cm9yOwotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6QXVkaW86Ci0gICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgJmNvbnN0cmFpbnRzKTsKKyAg
ICBzd2l0Y2ggKGRldmljZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjphdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgJmNvbnN0cmFpbnRzKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1l
cmE6CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2
aWRlb0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgJmNvbnN0cmFpbnRzKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKLSAgICAgICAgc291cmNlT3JFcnJv
ciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvRmFjdG9yeSgp
LmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCAmY29u
c3RyYWludHMpOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
U2NyZWVuOgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2lu
ZG93OgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXBwbGlj
YXRpb246CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpCcm93
c2VyOgorICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
ZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2aWNl
LCAmY29uc3RyYWludHMpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMTQzLDYgKzE1NSw3IEBAIHZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpCiAgICAgc3VjY2VlZGVkID0gISFzb3VyY2VPckVycm9yOwogICAgIGlmIChzb3Vy
Y2VPckVycm9yKSB7CiAgICAgICAgIGF1dG8gc291cmNlID0gc291cmNlT3JFcnJvci5zb3VyY2Uo
KTsKKyAgICAgICAgc291cmNlLT5zZXRJc1JlbW90ZSh0cnVlKTsKICAgICAgICAgc2V0dGluZ3Mg
PSBzb3VyY2UtPnNldHRpbmdzKCk7CiAgICAgICAgIG1fcHJveGllcy5zZXQoaWQsIHN0ZDo6bWFr
ZV91bmlxdWU8U291cmNlUHJveHk+KGlkLCAqdGhpcywgV1RGTW92ZShzb3VyY2UpKSk7CiAgICAg
fSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggZWNhZWFlMjQ4MjNhNDM5MWU2NTlk
NWFlYjNlYmQ0NzI0Y2VlYWQ4OC4uM2JmOTIxZmU2ODA2NDJmY2M3NmUxZmJkYWJmMzExZWE0ZWRh
NzNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1
ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlh
U291cmNlLmg+CiAKQEAgLTQ5LDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYs
IHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CiAKLSAgICB2b2lkIGNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwg
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGUsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBjcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyYsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3Ry
YWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOwogICAgIHZvaWQg
c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRh
KHVpbnQ2NF90KTsKICAgICB2b2lkIGNhcGFiaWxpdGllcyh1aW50NjRfdCwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggYmQyMTliYzk2MDhkMDc0MDY5MTkyMjYwNDNjMDJhNzJh
ZWEzNWI3Yi4uNDViMWMzODQwZGU3OGUxZjllZDI0M2Q4YmNlMTIzNjg1YTZjNDVkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAot
IyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMTctMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogCiBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
IHsKLSAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
dWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmlu
ZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyBzZXR0aW5ncykKK0NyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBo
YXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+
IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKICAgICBTdGFydFByb2R1Y2luZ0RhdGEo
dWludDY0X3QgaWQpCiAgICAgU3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgQ2Fw
YWJpbGl0aWVzKHVpbnQ2NF90IGlkKSAtPiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKaW5kZXggODVmZmI5YWQxZjU0ZmM3NTRlMzE5OTQ5ZDQzZDFmMTE2YjVhYzQx
NS4uNzMxZWY0YjM5MjVmNTVjZTAxNGY3ZDNhNzRiOTJhYTczNGM2NjFkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtOTA3LDYgKzkwNyw3IEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94
eSYgcHJvY2VzcywgV2Vic2l0ZURhCiAgICAgcGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCA9IHdlYnNpdGVEYXRhU3RvcmUucmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoKTsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHBhcmFtZXRlcnMuc2hvdWxkQ2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3MgPSBtX2NvbmZpZ3VyYXRpb24tPnNob3VsZENhcHR1cmVBdWRp
b0luVUlQcm9jZXNzKCk7CisgICAgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQ
cm9jZXNzID0gbV9jb25maWd1cmF0aW9uLT5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNz
KCk7CiAjZW5kaWYKIAogICAgIHBhcmFtZXRlcnMucHJlc2VudGluZ0FwcGxpY2F0aW9uUElEID0g
bV9jb25maWd1cmF0aW9uLT5wcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwCmluZGV4IGNiNmQ2YzdlZTlhYzVjMWQ1ZjBiYzM4ZGUyMTVhMzlkNmUyZmQ1ODYuLjcy
MzZhNWI1ZDc1NmEzYzQ2ZDI4OGRlZDA4NmYxMWZjNTY3MjQ0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmNwcApAQCAtMzUsMTIgKzM1LDE2IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nh
cHR1cmVEZXZpY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90
ZVZpZGVvU2FtcGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg+CisjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1l
c3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyB1aW50NjRfdCBu
ZXh0U2Vzc2lvbklEKCkKQEAgLTU1LDE2ICs1OSwyMiBAQCBwdWJsaWM6CiAgICAgICAgIDogUmVh
bHRpbWVNZWRpYVNvdXJjZSh0eXBlLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKHNvdXJjZUlEKSwg
V1RGTW92ZShoYXNoU2FsdCkpCiAgICAgICAgICwgbV9pZChpZCkKICAgICAgICAgLCBtX21hbmFn
ZXIobWFuYWdlcikKLSAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZT4obnVsbHB0cikpCiAgICAgeworICAgICAgICBpZiAodHlwZSA9PSBU
eXBlOjpBdWRpbykKKyAgICAgICAgICAgIG1fcmluZ0J1ZmZlciA9IHN0ZDo6bWFrZV91bmlxdWU8
Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxs
cHRyKSk7CiAgICAgfQogCiAgICAgflNvdXJjZSgpCiAgICAgewotICAgICAgICBzdG9yYWdlKCku
aW52YWxpZGF0ZSgpOworICAgICAgICBpZiAodHlwZSgpID09IFR5cGU6OkF1ZGlvKQorICAgICAg
ICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKICAgICB9CiAKLSAgICBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7IH0KKyAgICBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZSYgc3RvcmFnZSgpCisgICAgeworICAgICAgICBBU1NFUlQodHlwZSgpID09IFR5
cGU6OkF1ZGlvKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOworICAgIH0KIAogICAgIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsCiAgICAg
ewpAQCAtODQsMTAgKzk0LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQog
ICAgIHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBj
b25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcykKICAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlw
ZTo6QXVkaW8pOwogICAgICAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CiAKICAgICAg
ICAgaWYgKGhhbmRsZS5pc051bGwoKSkgewotICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmRlYWxs
b2NhdGUoKTsKKyAgICAgICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxvY2F0ZSgpOwogICAgICAg
ICAgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KGZhbHNlKTsKICAgICAgICAgICAgIHN0b3JhZ2Uo
KS5zZXRTdG9yYWdlKG51bGxwdHIpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTcsMjIgKzEw
OCw1MSBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKFdURk1vdmUobWVt
b3J5KSk7CiAgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0cnVlKTsKIAotICAgICAgICBt
X3JpbmdCdWZmZXIuYWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICAg
ICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwog
ICAgIH0KIAogICAgIHZvaWQgc2V0UmluZ0J1ZmZlckZyYW1lQm91bmRzKHVpbnQ2NF90IHN0YXJ0
RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQogICAgIHsKLSAgICAgICAgbV9yaW5nQnVmZmVyLnNl
dEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgICAgIEFTU0VS
VCh0eXBlKCkgPT0gVHlwZTo6QXVkaW8pOworICAgICAgICBtX3JpbmdCdWZmZXItPnNldEN1cnJl
bnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CiAgICAgfQogCiAgICAgdm9pZCBh
dWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJh
bWVzKQogICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUoKSA9PSBUeXBlOjpBdWRpbyk7CiAgICAg
ICAgIFdlYkF1ZGlvQnVmZmVyTGlzdCBhdWRpb0RhdGEobV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOwotICAgICAgICBtX3JpbmdCdWZmZXIuZmV0Y2goYXVkaW9EYXRhLmxpc3QoKSwgbnVt
YmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgICAgICBtX3JpbmdCdWZmZXItPmZl
dGNoKGF1ZGlvRGF0YS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsK
IAogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUodGlt
ZSwgYXVkaW9EYXRhLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiAgICAgfQogCisj
aWYgSEFWRShJT1NVUkZBQ0UpCisgICAgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShS
ZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKKyAgICB7CisgICAgICAgIEFTU0VSVCh0
eXBlKCkgPT0gVHlwZTo6VmlkZW8pOworCisgICAgICAgIGF1dG8gdmlkZW9TYW1wbGVTaXplID0g
SW50U2l6ZShtX3NldHRpbmdzLndpZHRoKCksIG1fc2V0dGluZ3MuaGVpZ2h0KCkpOworICAgICAg
ICBpZiAodmlkZW9TYW1wbGVTaXplLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHZpZGVvU2FtcGxl
U2l6ZSA9IHJlbW90ZVNhbXBsZS5zaXplKCk7CisKKyAgICAgICAgaWYgKCFtX2ltYWdlVHJhbnNm
ZXJTZXNzaW9uKQorICAgICAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAg
ICAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKSB7CisgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGF1dG8gc2FtcGxlUmVmID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1w
bGUocmVtb3RlU2FtcGxlLnN1cmZhY2UoKSwgcmVtb3RlU2FtcGxlLnRpbWUoKSwgdmlkZW9TYW1w
bGVTaXplKTsKKyAgICAgICAgaWYgKCFzYW1wbGVSZWYpIHsKKyAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoKnNhbXBsZVJlZik7Cisg
ICAgfQorI2VuZGlmCisKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoY29uc3Qg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKICAgICB7CiAg
ICAgICAgIGF1dG8gY2FsbGJhY2tzID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNr
cy50YWtlRmlyc3QoKTsKQEAgLTE0NCw4ICsxODQsMTEgQEAgcHJpdmF0ZToKICAgICBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKKwogICAgIENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOwotICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7
CisgICAgc3RkOjp1bmlxdWVfcHRyPENBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworCisgICAg
c3RkOjp1bmlxdWVfcHRyPEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNl
c3Npb247CiAKICAgICBzdHJ1Y3QgQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrIHsKICAgICAgICAg
U3VjY2Vzc0hhbmRsZXIgc3VjY2Vzc0hhbmRsZXI7CkBAIC0xNjIsNyArMjA1LDggQEAgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MmIHBy
b2Nlc3MpCiAKIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIoKQogewotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnVuc2V0
QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNl
dEF1ZGlvRmFjdG9yeSgqdGhpcyk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5z
ZXREaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKnRoaXMpOwogICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpOwogfQogCkBAIC0xNzQsMTAgKzIxOCwxMiBAQCBjb25zdCBjaGFyKiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQogdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQogewogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0lu
VUlQcm9jZXNzKQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS5zZXRBdWRpb0ZhY3RvcnkoKnRoaXMpOworICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzZXRBdWRpb0ZhY3RvcnkoKnRoaXMpOworICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZENh
cHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MpCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNldERpc3BsYXlDYXB0dXJlRmFjdG9yeSgqdGhpcyk7CiB9CiAKLVdlYkNvcmU6OkNhcHR1
cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZSBzb3VyY2VUeXBlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JF
cnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAgICBpZiAoIWNvbnN0cmFpbnRzKQog
ICAgICAgICByZXR1cm4geyB9OwpAQCAtMTg2LDEwICsyMzIsMTEgQEAgV2ViQ29yZTo6Q2FwdHVy
ZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3Vy
Y2UoY29uc3QKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CiAgICAg
U3RyaW5nIGVycm9yTWVzc2FnZTsKICAgICBib29sIHN1Y2NlZWRlZDsKLSAgICBpZiAoIW1fcHJv
Y2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2Us
IHNvdXJjZVR5cGUsIGhhc2hTYWx0LCAqY29uc3RyYWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAw
KSkKKyAgICBpZiAoIW1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKGlkLCBkZXZpY2UsIGhhc2hTYWx0LCAqY29uc3RyYWludHMpLCBNZXNzYWdlczo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwgc2V0dGlu
Z3MpLCAwKSkKICAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKIAotICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBzb3Vy
Y2VUeXBlLCBTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBp
ZCwgKnRoaXMpKTsKKyAgICBhdXRvIHR5cGUgPSBkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgPyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpBdWRpbyA6IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVv
OworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIo
aWQpLCB0eXBlLCBTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBpZCwgKnRoaXMpKTsKICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3Mp
KTsKICAgICBtX3NvdXJjZXMuc2V0KGlkLCBzb3VyY2UuY29weVJlZigpKTsKICAgICByZXR1cm4g
V2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKQEAgLTIzOSw2
ICsyODYsMTkgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKHVpbnQ2NF90IGlkLCBNZWRpYVRpbWUgdGltZSwKICAgICBzb3VyY2UuYXVkaW9TYW1w
bGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVzKTsKIH0KIAorI2lmIEhBVkUoSU9TVVJG
QUNFKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6cmVtb3RlVmlkZW9TYW1wbGVBdmFp
bGFibGUodWludDY0X3QgaWQsIFJlbW90ZVZpZGVvU2FtcGxlJiYgc2FtcGxlKQoreworICAgIEFT
U0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+cmVt
b3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV1RGTW92ZShzYW1wbGUpKTsKK30KKyNlbHNlCitOT19S
RVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyZW1vdGVW
aWRlb1NhbXBsZUF2YWlsYWJsZSh1aW50NjRfdCwgUmVtb3RlVmlkZW9TYW1wbGUmJikKK3sKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKyNlbmRpZgorCiB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiB7CiAgICAgbV9wcm9j
ZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0YXJ0UHJv
ZHVjaW5nRGF0YShpZCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCAzNzYzMmQ1OWU2ZWY4Y2Fh
YzgwNjkxM2U1MDM1ZGJjYTRjOGQ0NTc5Li44ZWFiMDE3MGQwN2U4NTNlZjk2ZDI2ODM3NjE5ZDg5
ZDEwOTdhYmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtMzYsNiArMzYsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBSZW1v
dGVWaWRlb1NhbXBsZTsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Myw3ICs0NCw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgQ3Jvc3NQcm9jZXNzUmVhbHRpbWVBdWRpb1NvdXJj
ZTsKIGNsYXNzIFdlYlByb2Nlc3M7CiAKLWNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIDog
cHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIs
IHB1YmxpYyBXZWJDb3JlOjpBdWRpb0NhcHR1cmVGYWN0b3J5LCBwdWJsaWMgV2ViQ29yZTo6Vmlk
ZW9DYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1Ymxp
YyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJs
aWMgV2ViQ29yZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSwgcHVibGljIFdlYkNvcmU6OlZpZGVvQ2Fw
dHVyZUZhY3RvcnksIHB1YmxpYyBXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZUZhY3RvcnkgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MmKTsK
ICAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKTsKQEAgLTU1LDkgKzU2LDEwIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmKSBmaW5hbDsKIAogICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgZmFjdG9y
aWVzCi0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5h
bCB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7
IH0KLSAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVT
b3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFs
IHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbywgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsg
fQotICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUNhcHR1cmVTb3VyY2Uo
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGUsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7Cisg
ICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7IHJl
dHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0
cmFpbnRzKTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVv
Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFz
aFNhbHQpLCBjb25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBm
aW5hbCAgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIHsgfSwgY29uc3RyYWlu
dHMpOyB9CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQ2FwdHVyZVNv
dXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMqKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsKQEAgLTcwLDYgKzcyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3JhZ2VDaGFu
Z2VkKHVpbnQ2NF90IGlkLCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNv
cmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsK
ICAgICB2b2lkIHJpbmdCdWZmZXJGcmFtZUJvdW5kc0NoYW5nZWQodWludDY0X3QgaWQsIHVpbnQ2
NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKICAgICB2b2lkIGF1ZGlvU2FtcGxl
c0F2YWlsYWJsZSh1aW50NjRfdCBpZCwgTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVt
b3RlVmlkZW9TYW1wbGVBdmFpbGFibGUodWludDY0X3QgaWQsIFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlJiYpOwogCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAg
IHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwpAQCAtODUsNiArODgsNiBAQCBwcml2
YXRlOgogICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRl
eCBlYjU3NDA1NjE3MzUyZTg4MTMzYmI4NTBmMTU3ZjM0YzNiZjIzZWZkLi5hMDYyZGMzNDU2NzFi
Mjk2ZTUyZjU4M2E3MTE2ZjdhZTdjM2VmY2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1l
c3NhZ2VzLmluCkBAIC0zMiw2ICszMiw3IEBAIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyIHsKICAgICBBdWRpb1NhbXBsZXNBdmFpbGFibGUodWludDY0X3QgaWQsIE1lZGlhVGlt
ZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWlu
dDY0X3QgZW5kRnJhbWUpCiAgICAgQXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCh1aW50NjRfdCBp
ZCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQogICAgIEFw
cGx5Q29uc3RyYWludHNGYWlsZWQodWludDY0X3QgaWQsIFN0cmluZyBmYWlsZWRDb25zdHJhaW50
LCBTdHJpbmcgbWVzc2FnZSkKKyAgICBSZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZSh1aW50NjRf
dCBpZCwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxlKQogfQogCiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>