<?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>205541</bug_id>
          
          <creation_ts>2019-12-21 10:44:42 -0800</creation_ts>
          <short_desc>[Media in GPU process] Add remote media player configuration</short_desc>
          <delta_ts>2019-12-21 19:09:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>205123</blocked>
          <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>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1601094</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-21 10:44:42 -0800</bug_when>
    <thetext>Add remote media player configuration for properties that won&apos;t change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601095</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-21 10:44:54 -0800</bug_when>
    <thetext>&lt;rdar://problem/58137418&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601106</commentid>
    <comment_count>2</comment_count>
      <attachid>386303</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-21 13:39:15 -0800</bug_when>
    <thetext>Created attachment 386303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601108</commentid>
    <comment_count>3</comment_count>
      <attachid>386304</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-21 14:02:22 -0800</bug_when>
    <thetext>Created attachment 386304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601112</commentid>
    <comment_count>4</comment_count>
      <attachid>386304</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-21 15:23:58 -0800</bug_when>
    <thetext>Comment on attachment 386304
Patch

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

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h:46
&gt; +    uint64_t logIdentifier;
&gt; +    bool shouldUsePersistentCache;
&gt; +    bool isVideo;

Maybe initialize these to be safe.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h:122
&gt; +        return {{ WTFMove(*mediaKeysStorageDirectory), WTFMove(*referrer), WTFMove(*userAgent), WTFMove(*sourceApplicationIdentifier), WTFMove(*networkInterfaceName), WTFMove(*mediaCacheDirectory), WTFMove(*mediaContentTypesRequiringHardwareSupport), WTFMove(*preferredAudioCharacteristics), WTFMove(*logIdentifier), WTFMove(*shouldUsePersistentCache), WTFMove(*isVideo), }};

I&apos;d put each WTFMove on its own line.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:130
&gt; +    configuration.logIdentifier = reinterpret_cast&lt;uint64_t&gt;(player-&gt;mediaPlayerLogIdentifier());

Are these identifiers unique across all processes that share a GPU process?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601118</commentid>
    <comment_count>5</comment_count>
      <attachid>386307</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-21 18:08:33 -0800</bug_when>
    <thetext>Created attachment 386307
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601119</commentid>
    <comment_count>6</comment_count>
      <attachid>386304</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-21 18:11:00 -0800</bug_when>
    <thetext>Comment on attachment 386304
Patch

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

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h:46
&gt;&gt; +    bool isVideo;
&gt; 
&gt; Maybe initialize these to be safe.

Good point, fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h:122
&gt;&gt; +        return {{ WTFMove(*mediaKeysStorageDirectory), WTFMove(*referrer), WTFMove(*userAgent), WTFMove(*sourceApplicationIdentifier), WTFMove(*networkInterfaceName), WTFMove(*mediaCacheDirectory), WTFMove(*mediaContentTypesRequiringHardwareSupport), WTFMove(*preferredAudioCharacteristics), WTFMove(*logIdentifier), WTFMove(*shouldUsePersistentCache), WTFMove(*isVideo), }};
&gt; 
&gt; I&apos;d put each WTFMove on its own line.

Done.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:130
&gt;&gt; +    configuration.logIdentifier = reinterpret_cast&lt;uint64_t&gt;(player-&gt;mediaPlayerLogIdentifier());
&gt; 
&gt; Are these identifiers unique across all processes that share a GPU process?

A media player&apos;s unique identifier is the same as the HTMLMediaElement that owns it, but each HTMLMediaElement has a unique ID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601126</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-21 19:08:37 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 386307:

imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.html bug 205545 (author: shvaikalesh@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601128</commentid>
    <comment_count>8</comment_count>
      <attachid>386307</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-21 19:09:26 -0800</bug_when>
    <thetext>Comment on attachment 386307
Patch for landing

Clearing flags on attachment: 386307

Committed r253866: &lt;https://trac.webkit.org/changeset/253866&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601129</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-21 19:09:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386303</attachid>
            <date>2019-12-21 13:39:15 -0800</date>
            <delta_ts>2019-12-21 14:02:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205541-20191221133914.patch</filename>
            <type>text/plain</type>
            <size>18496</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3YTliMDI5NGVmZmJmZWI5
MjE5YjdlMjU0YzYxYzNkNjA5MmJiNjMuLjhmOTJiYzViY2ExYzgzMzMwMDk0MTc1MzgwODFmMjhl
OThhMzAyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMTItMjEgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBw
cm9jZXNzXSBBZGQgcmVtb3RlIG1lZGlhIHBsYXllciBjb25maWd1cmF0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1NDEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU4MTM3NDE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyTWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6Om1lZGlhUGxheWVyUmVmZXJyZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclVzZXJBZ2VudCBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyU291cmNlQXBw
bGljYXRpb25JZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyTWVkaWFDYWNo
ZURpcmVjdG9yeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0IGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJQcmVmZXJy
ZWRBdWRpb0NoYXJhY3RlcmlzdGljcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJJ
c1ZpZGVvIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJLZXlOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZWRpYVBsYXllckdldFJhd0Nvb2tpZXMgY29uc3QpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckxvZ0lkZW50aWZpZXIpOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3RlTWVkaWFQbGF5ZXIpOgor
CiAyMDE5LTEyLTIxICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCB0aW1lU3RhbXAgdG8gSVRQIGRhdGFiYXNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcAppbmRleCA5ZjZhNjA4MDUwNDVhNWUxYzYwODVmMWM5ZGJhZTcxZTMyMDlh
NWQ1Li43NjkwMjE0OGVjOTA3ODY3NzhmNmVjOWQwMjE5OWE1MzljMzEwYWE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eS5jcHAKQEAgLTYyLDEyICs2MiwxMiBAQCBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6flJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkKIHsKIH0K
IAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFQbGF5ZXIo
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCBzdWNjZWVkZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0
aW9uJiYgY29uZmlndXJhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRl
ZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQo
aWQpOwogCiAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKLSAgICBtX3Byb3hp
ZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+KCp0aGlzLCBpZCwg
bV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSwgZW5naW5lSWRlbnRpZmll
cikpOworICAgIG1fcHJveGllcy5hZGQoaWQsIG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eT4oKnRoaXMsIGlkLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigp
LCBlbmdpbmVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiAKICAgICBjb21w
bGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKaW5kZXgg
YzBlN2Y0ZTkzM2FjNTdkNDc2ZTJmYjVjMmMwYjViZDYwYTUzOTFiYi4uZjE1MjRmMzY5NzY5ZDRl
NzEzZmIzMjk0NTA0MjNjYzQxZmZjNjA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJI
ZWxwZXIuaD4KIApAQCAtNjcsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQgY3JlYXRl
TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBkZWxldGVNZWRpYVBs
YXllcihNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKIAogICAgIC8vIE1lZGlh
IHBsYXllciBmYWN0b3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggYWE1N2ZlOWI5MzNmYjEyOWIyYTA1ZWFlYTdmOWY3NTA4OGUyN2QxMi4uMmY4
N2YzMjhjNDg1NTBmNWEzMzI2ZWMxYTM0ZDQ0Nzc2MmMxOTMyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVO
QUJMRShWSURFTykKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkg
Tm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIp
IC0+IChib29sIHN1Y2Nlc3MpIFN5bmNocm9ub3VzCisgICAgQ3JlYXRlTWVkaWFQbGF5ZXIoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVu
Z2luZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pIC0+IChib29sIHN1Y2Nlc3MpIFN5bmNocm9ub3VzCiAg
ICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkKQogCiAgICAgR2V0U3VwcG9ydGVkVHlwZXMoZW51bTp1aW50OF90IFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVu
dGlmaWVyKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAKaW5kZXggYmQyNjhiOTA2ODYzNmUwMWY0N2QxNWViYWY1YzAxNTZiMmFjZWVmMi4uMDUw
YWI2N2I0NzliNmUyZDE1M2E4NDU4MzRjNTEzNDM2ZjljODJkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cApAQCAtMzgsMTYgKzM4LDE4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgbWFuYWdlciwgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0
aW9uLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRp
ZmllcikKK1JlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIFJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICA6
IG1faWQoaWQpCiAgICAgLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlv
bikpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1fZW5naW5lSWRlbnRpZmllcihl
bmdpbmVJZGVudGlmaWVyKQogICAgICwgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcihS
dW5Mb29wOjptYWluKCksIHRoaXMsICZSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp0aW1lckZpcmVk
KQorICAgICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtX21hbmFnZXIubG9nZ2VyKCkpCiAjZW5kaWYKIHsK
KyAgICBtX3R5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0gbV9jb25maWd1cmF0aW9uLm1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwogICAgIG1fcGxheWVyID0g
TWVkaWFQbGF5ZXI6OmNyZWF0ZSgqdGhpcywgbV9lbmdpbmVJZGVudGlmaWVyKTsKIH0KIApAQCAt
MTc3LDYgKzE3OSw2MSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVy
RW5naW5lRmFpbGVkVG9Mb2FkKCkgY29uc3QKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OkVuZ2luZUZhaWxlZFRvTG9h
ZChtX2lkLCBtX3BsYXllci0+cGxhdGZvcm1FcnJvckNvZGUoKSksIDApOwogfQogCisjaWYgRU5B
QkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCitTdHJpbmcgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6bWVkaWFQbGF5ZXJNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9jb25maWd1cmF0aW9uLm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7Cit9CisjZW5k
aWYKKworU3RyaW5nIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUmVmZXJyZXIo
KSBjb25zdAoreworICAgIHJldHVybiBtX2NvbmZpZ3VyYXRpb24ucmVmZXJyZXI7Cit9CisKK1N0
cmluZyBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclVzZXJBZ2VudCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fY29uZmlndXJhdGlvbi51c2VyQWdlbnQ7Cit9CisKK1N0cmluZyBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclNvdXJjZUFwcGxpY2F0aW9uSWRlbnRp
ZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNh
dGlvbklkZW50aWZpZXI7Cit9CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorU3RyaW5nIFJl
bW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyTmV0d29ya0ludGVyZmFjZU5hbWUoKSBj
b25zdAoreworICAgIHJldHVybiBtX2NvbmZpZ3VyYXRpb24ubmV0d29ya0ludGVyZmFjZU5hbWU7
Cit9CisjZW5kaWYKKworY29uc3QgU3RyaW5nJiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRp
YVBsYXllck1lZGlhQ2FjaGVEaXJlY3RvcnkoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbmZp
Z3VyYXRpb24ubWVkaWFDYWNoZURpcmVjdG9yeTsKK30KKworY29uc3QgVmVjdG9yPFdlYkNvcmU6
OkNvbnRlbnRUeXBlPiYgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3R5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0OworfQorCitWZWN0b3I8U3RyaW5nPiBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjptZWRpYVBsYXllclByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9jb25maWd1cmF0aW9uLnByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVy
aXN0aWNzOworfQorCitib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyU2hv
dWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25maWd1cmF0
aW9uLnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZTsKK30KKworYm9vbCBSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZWRpYVBsYXllcklzVmlkZW8oKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbmZp
Z3VyYXRpb24uaXNWaWRlbzsKK30KKworLy8gRklYTUU6IFVuaW1wbGVtZW50ZWQKIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJQbGF5YmFja1N0YXRlQ2hhbmdlZCgpCiB7
CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjpQbGF5YmFja1N0YXRlQ2hhbmdlZChtX2lkLCBtX3BsYXllci0+cGF1c2Vk
KCkpLCAwKTsKQEAgLTI0NiwxMyArMzAzLDYgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllcktleU5lZWRlZChVaW50OEFycmF5KikKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogICAgIHJldHVybiBmYWxzZTsKIH0KLQotU3RyaW5nIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyTWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0Ci17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLX0KLQogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpAQCAtMjcxLDE4ICszMjEsNiBAQCB2b2lkIFJl
bW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyV2FpdGluZ0ZvcktleUNoYW5nZWQoKQog
dm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckN1cnJlbnRQbGF5YmFja1Rh
cmdldElzV2lyZWxlc3NDaGFuZ2VkKCkgeyB9OwogI2VuZGlmCiAKLVN0cmluZyBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjptZWRpYVBsYXllclJlZmVycmVyKCkgY29uc3QKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lZGlhUGxheWVyVXNlckFnZW50KCkgY29uc3QKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQogdm9pZCBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjptZWRpYVBsYXllckVudGVyRnVsbHNjcmVlbigpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKQEAgLTMwNCwxMiArMzQyLDYgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllcklzRnVsbHNjcmVlblBlcm1pdHRlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1ib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVySXNWaWRl
bygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KIExheW91dFJlY3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50
Qm94UmVjdCgpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTM1NiwxOCArMzg4
LDYgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpkb2VzSGF2ZUF0dHJpYnV0ZShjb25z
dCBBdG9tU3RyaW5nJiwgQXRvbVN0cmluZyopIGMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJv
b2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJTaG91bGRVc2VQZXJzaXN0ZW50
Q2FjaGUoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KLWNvbnN0IFN0cmluZyYgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJN
ZWRpYUNhY2hlRGlyZWN0b3J5KCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBlbXB0eVN0cmluZygpOwotfQotCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogdm9p
ZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2soQXVk
aW9UcmFja1ByaXZhdGUmKQogewpAQCAtNDE2LDI2ICs0MzYsMTMgQEAgVmVjdG9yPFJlZlB0cjxQ
bGF0Zm9ybVRleHRUcmFjaz4+IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om91dE9mQmFuZFRyYWNr
U291cmNlcygKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLVN0cmluZyBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllck5ldHdvcmtJbnRlcmZhY2VOYW1lKCkgY29u
c3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQog
Ym9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckdldFJhd0Nvb2tpZXMoY29u
c3QgVVJMJiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQotCiAjZW5kaWYKIAotU3RyaW5nIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6Om1lZGlhUGxheWVyU291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3QK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotfQot
CiBkb3VibGUgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5
YmFja1JhdGUoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC00NTQsMjQgKzQ2
MSwxMiBAQCBib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVySXNWaWRlb0Z1
bGxzY3JlZW5TdGFuZGJ5KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVZlY3RvcjxT
dHJpbmc+IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUHJlZmVycmVkQXVkaW9D
aGFyYWN0ZXJpc3RpY3MoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIFZlY3RvcjxTdHJpbmc+KCk7Ci19Ci0KIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJTaG91bGREaXNhYmxlU2xlZXAoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1jb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29u
dGVudFR5cGU+JiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYUNvbnRlbnRUeXBlc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gbV90eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKLX0KLQogYm9vbCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0
KCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggN2Y2
Y2JhYTZhY2JkMWQ5ZWYzNzg2ZmRlNTk4OTJmMDBiN2ExOWQ0Yi4uNDYzNmQ2ZTlkNmU0ZjQ3YmVi
ZmZkOWRkYzJkYTA1NmYwOWZkNzU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25m
aWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgogI2luY2x1
ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01MCw3
ICs1MSw3IEBAIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHkKICAgICA6IHB1YmxpYyBNZWRp
YVBsYXllckNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYs
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+
JiYsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CisgICAgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYsIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIE1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eUNvbmZpZ3VyYXRpb24mJik7CiAgICAgdmlydHVhbCB+UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSgp
CiAgICAgewogICAgIH0KQEAgLTE2OCw2ICsxNjksNyBAQCBwcml2YXRlOgogCiAjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigpIGZp
bmFsIHsgcmV0dXJuIG1fbG9nZ2VyOyB9CisgICAgY29uc3Qgdm9pZCogbWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4obV9jb25m
aWd1cmF0aW9uLmxvZ0lkZW50aWZpZXIpOyB9CiAjZW5kaWYKIAogICAgIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKQEAgLTE3OCw3ICsxODAsNyBAQCBwcml2YXRlOgog
ICAgIFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4gbV90eXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydDsKICAgICBSdW5Mb29wOjpUaW1lcjxSZW1vdGVNZWRpYVBsYXllclByb3h5PiBtX3Vw
ZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyOwogICAgIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUg
bV9jYWNoZWRTdGF0ZTsKLQorICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9u
IG1fY29uZmlndXJhdGlvbjsKICAgICBib29sIG1fc2Vla2FibGVDaGFuZ2VkIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgbV9idWZmZXJlZENoYW5nZWQgeyB0cnVlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDVhY2Q3N2VjOTYyYzllZDE0
MjY4NjM4ZDRmMjcyYTZkNGFhOGY1MmYuLjUyYjQwMDQyZGFjMzdiYzM4NGYwZWQzNDVmMDQxYzM0
OTdlNjhmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjA2Niw2ICsyMDY2LDcgQEAKIAkJMDdBNUVCQjkxQzdCQTQzRTAwQjlDQTY5
IC8qIFdLRnJhbWVIYW5kbGVSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV0tGcmFtZUhhbmRsZVJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3QTVFQkJBMUM3QkE0M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRnJhbWVIYW5kbGVSZWYuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDdCM0I0NkYyM0FCMkNCMzAwQkE1QjEyIC8qIFJlbW90ZU1lZGlh
UGxheWVyU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0IzQjQ3NTIzQUQ4OTA0MDBCQTVCMTIgLyog
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDdCQUYzNTYyM0EyQ0MxNzAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg2N0Q2QTVGRTg0MDMwN0Mw
MkFBQzA3IC8qIEFwcEtpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IEFwcEtpdC5mcmFt
ZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3Jr
OyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtNTExMSw2ICs1MTEyLDcgQEAKIAkJ
CQkwNzI1RUZBQjIzOUFFMzg0MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDdCQUYzNTcyM0EyQ0MxOTAwNDQyNTdFIC8qIFJlbW90
ZU1lZGlhUGxheWVyUHJveHkuY3BwICovLAogCQkJCTA3QkFGMzU2MjNBMkNDMTcwMDQ0MjU3RSAv
KiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmggKi8sCisJCQkJMDdCM0I0NzUyM0FEODkwNDAwQkE1
QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmggKi8sCiAJCQkpOwog
CQkJcGF0aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLmNwcAppbmRleCAyYzg4MGM5MjFlY2QyNDRiYTAzZDNjNTJhNmU4ZmIyNjA2
ZDdmMjgyLi5jZDQxN2Q4ODRiOWQ2NDJiMDAwZWNlNjRiM2EzMWJkYTc1OWNmMmRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXll
clByb3h5Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCkBAIC0xMTUsOCArMTE2LDIzIEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVt
CiB7CiAgICAgYXV0byBpZCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI6Omdl
bmVyYXRlKCk7CiAKKyAgICBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiBjb25m
aWd1cmF0aW9uOworICAgIGNvbmZpZ3VyYXRpb24ubWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSA9
IHBsYXllci0+bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpOworICAgIGNvbmZpZ3VyYXRpb24u
cmVmZXJyZXIgPSBwbGF5ZXItPnJlZmVycmVyKCk7CisgICAgY29uZmlndXJhdGlvbi51c2VyQWdl
bnQgPSBwbGF5ZXItPnVzZXJBZ2VudCgpOworICAgIGNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGlj
YXRpb25JZGVudGlmaWVyID0gcGxheWVyLT5zb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKTsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGNvbmZpZ3VyYXRpb24ubmV0d29ya0ludGVy
ZmFjZU5hbWUgPSBwbGF5ZXItPm1lZGlhUGxheWVyTmV0d29ya0ludGVyZmFjZU5hbWUoKTsKKyNl
bmRpZgorICAgIGNvbmZpZ3VyYXRpb24ubWVkaWFDYWNoZURpcmVjdG9yeSA9IHBsYXllci0+bWVk
aWFDYWNoZURpcmVjdG9yeSgpOworICAgIGNvbmZpZ3VyYXRpb24ubWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQgPSBwbGF5ZXItPm1lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0KCk7CisgICAgY29uZmlndXJhdGlvbi5wcmVmZXJyZWRBdWRpb0No
YXJhY3RlcmlzdGljcyA9IHBsYXllci0+cHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MoKTsK
KyAgICBjb25maWd1cmF0aW9uLmxvZ0lkZW50aWZpZXIgPSByZWludGVycHJldF9jYXN0PHVpbnQ2
NF90PihwbGF5ZXItPm1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpKTsKKyAgICBjb25maWd1cmF0
aW9uLnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSA9IHBsYXllci0+c2hvdWxkVXNlUGVyc2lzdGVu
dENhY2hlKCk7CisgICAgY29uZmlndXJhdGlvbi5pc1ZpZGVvID0gcGxheWVyLT5pc1ZpZGVvUGxh
eWVyKCk7CisKICAgICBib29sIGhhdmVSZW1vdGVQcm94eTsKLSAgICBib29sIHNlbmRTdWNjZWVk
ZWQgPSBncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXIoaWQsIHJlbW90ZUVuZ2luZUlk
ZW50aWZpZXIpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0
ZU1lZGlhUGxheWVyOjpSZXBseShoYXZlUmVtb3RlUHJveHkpLCAwKTsKKyAgICBib29sIHNlbmRT
dWNjZWVkZWQgPSBncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXIoaWQsIHJlbW90ZUVu
Z2luZUlkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24pLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyOjpSZXBseShoYXZlUmVtb3RlUHJveHkp
LCAwKTsKICAgICBpZiAoIWhhdmVSZW1vdGVQcm94eSB8fCAhc2VuZFN1Y2NlZWRlZCkgewogICAg
ICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byBjcmVhdGUgcmVtb3RlIG1lZGlhIHBsYXllci4i
KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386304</attachid>
            <date>2019-12-21 14:02:22 -0800</date>
            <delta_ts>2019-12-21 18:08:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205541-20191221140221.patch</filename>
            <type>text/plain</type>
            <size>23724</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3YTliMDI5NGVmZmJmZWI5
MjE5YjdlMjU0YzYxYzNkNjA5MmJiNjMuLjhmOTJiYzViY2ExYzgzMzMwMDk0MTc1MzgwODFmMjhl
OThhMzAyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMTItMjEgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBw
cm9jZXNzXSBBZGQgcmVtb3RlIG1lZGlhIHBsYXllciBjb25maWd1cmF0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1NDEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU4MTM3NDE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyTWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6Om1lZGlhUGxheWVyUmVmZXJyZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclVzZXJBZ2VudCBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyU291cmNlQXBw
bGljYXRpb25JZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyTWVkaWFDYWNo
ZURpcmVjdG9yeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0IGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJQcmVmZXJy
ZWRBdWRpb0NoYXJhY3RlcmlzdGljcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJJ
c1ZpZGVvIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJLZXlOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZWRpYVBsYXllckdldFJhd0Nvb2tpZXMgY29uc3QpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckxvZ0lkZW50aWZpZXIpOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3RlTWVkaWFQbGF5ZXIpOgor
CiAyMDE5LTEyLTIxICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCB0aW1lU3RhbXAgdG8gSVRQIGRhdGFiYXNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcAppbmRleCA5ZjZhNjA4MDUwNDVhNWUxYzYwODVmMWM5ZGJhZTcxZTMyMDlh
NWQ1Li43NjkwMjE0OGVjOTA3ODY3NzhmNmVjOWQwMjE5OWE1MzljMzEwYWE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eS5jcHAKQEAgLTYyLDEyICs2MiwxMiBAQCBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6flJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkKIHsKIH0K
IAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFQbGF5ZXIo
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCBzdWNjZWVkZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0
aW9uJiYgY29uZmlndXJhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRl
ZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQo
aWQpOwogCiAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKLSAgICBtX3Byb3hp
ZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+KCp0aGlzLCBpZCwg
bV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSwgZW5naW5lSWRlbnRpZmll
cikpOworICAgIG1fcHJveGllcy5hZGQoaWQsIG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eT4oKnRoaXMsIGlkLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigp
LCBlbmdpbmVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiAKICAgICBjb21w
bGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKaW5kZXgg
YzBlN2Y0ZTkzM2FjNTdkNDc2ZTJmYjVjMmMwYjViZDYwYTUzOTFiYi4uZjE1MjRmMzY5NzY5ZDRl
NzEzZmIzMjk0NTA0MjNjYzQxZmZjNjA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJI
ZWxwZXIuaD4KIApAQCAtNjcsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQgY3JlYXRl
TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBkZWxldGVNZWRpYVBs
YXllcihNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKIAogICAgIC8vIE1lZGlh
IHBsYXllciBmYWN0b3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggYWE1N2ZlOWI5MzNmYjEyOWIyYTA1ZWFlYTdmOWY3NTA4OGUyN2QxMi4uMmY4
N2YzMjhjNDg1NTBmNWEzMzI2ZWMxYTM0ZDQ0Nzc2MmMxOTMyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVO
QUJMRShWSURFTykKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkg
Tm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIp
IC0+IChib29sIHN1Y2Nlc3MpIFN5bmNocm9ub3VzCisgICAgQ3JlYXRlTWVkaWFQbGF5ZXIoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVu
Z2luZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pIC0+IChib29sIHN1Y2Nlc3MpIFN5bmNocm9ub3VzCiAg
ICAgRGVsZXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkKQogCiAgICAgR2V0U3VwcG9ydGVkVHlwZXMoZW51bTp1aW50OF90IFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVu
dGlmaWVyKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAKaW5kZXggYmQyNjhiOTA2ODYzNmUwMWY0N2QxNWViYWY1YzAxNTZiMmFjZWVmMi4uMDUw
YWI2N2I0NzliNmUyZDE1M2E4NDU4MzRjNTEzNDM2ZjljODJkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cApAQCAtMzgsMTYgKzM4LDE4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgbWFuYWdlciwgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0
aW9uLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRp
ZmllcikKK1JlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIFJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICA6
IG1faWQoaWQpCiAgICAgLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlv
bikpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1fZW5naW5lSWRlbnRpZmllcihl
bmdpbmVJZGVudGlmaWVyKQogICAgICwgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcihS
dW5Mb29wOjptYWluKCksIHRoaXMsICZSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp0aW1lckZpcmVk
KQorICAgICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtX21hbmFnZXIubG9nZ2VyKCkpCiAjZW5kaWYKIHsK
KyAgICBtX3R5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0gbV9jb25maWd1cmF0aW9uLm1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwogICAgIG1fcGxheWVyID0g
TWVkaWFQbGF5ZXI6OmNyZWF0ZSgqdGhpcywgbV9lbmdpbmVJZGVudGlmaWVyKTsKIH0KIApAQCAt
MTc3LDYgKzE3OSw2MSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVy
RW5naW5lRmFpbGVkVG9Mb2FkKCkgY29uc3QKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OkVuZ2luZUZhaWxlZFRvTG9h
ZChtX2lkLCBtX3BsYXllci0+cGxhdGZvcm1FcnJvckNvZGUoKSksIDApOwogfQogCisjaWYgRU5B
QkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCitTdHJpbmcgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6bWVkaWFQbGF5ZXJNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9jb25maWd1cmF0aW9uLm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7Cit9CisjZW5k
aWYKKworU3RyaW5nIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUmVmZXJyZXIo
KSBjb25zdAoreworICAgIHJldHVybiBtX2NvbmZpZ3VyYXRpb24ucmVmZXJyZXI7Cit9CisKK1N0
cmluZyBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclVzZXJBZ2VudCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fY29uZmlndXJhdGlvbi51c2VyQWdlbnQ7Cit9CisKK1N0cmluZyBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclNvdXJjZUFwcGxpY2F0aW9uSWRlbnRp
ZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNh
dGlvbklkZW50aWZpZXI7Cit9CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorU3RyaW5nIFJl
bW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyTmV0d29ya0ludGVyZmFjZU5hbWUoKSBj
b25zdAoreworICAgIHJldHVybiBtX2NvbmZpZ3VyYXRpb24ubmV0d29ya0ludGVyZmFjZU5hbWU7
Cit9CisjZW5kaWYKKworY29uc3QgU3RyaW5nJiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRp
YVBsYXllck1lZGlhQ2FjaGVEaXJlY3RvcnkoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbmZp
Z3VyYXRpb24ubWVkaWFDYWNoZURpcmVjdG9yeTsKK30KKworY29uc3QgVmVjdG9yPFdlYkNvcmU6
OkNvbnRlbnRUeXBlPiYgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3R5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0OworfQorCitWZWN0b3I8U3RyaW5nPiBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjptZWRpYVBsYXllclByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9jb25maWd1cmF0aW9uLnByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVy
aXN0aWNzOworfQorCitib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyU2hv
dWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25maWd1cmF0
aW9uLnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZTsKK30KKworYm9vbCBSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZWRpYVBsYXllcklzVmlkZW8oKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbmZp
Z3VyYXRpb24uaXNWaWRlbzsKK30KKworLy8gRklYTUU6IFVuaW1wbGVtZW50ZWQKIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJQbGF5YmFja1N0YXRlQ2hhbmdlZCgpCiB7
CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjpQbGF5YmFja1N0YXRlQ2hhbmdlZChtX2lkLCBtX3BsYXllci0+cGF1c2Vk
KCkpLCAwKTsKQEAgLTI0NiwxMyArMzAzLDYgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllcktleU5lZWRlZChVaW50OEFycmF5KikKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogICAgIHJldHVybiBmYWxzZTsKIH0KLQotU3RyaW5nIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyTWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0Ci17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLX0KLQogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpAQCAtMjcxLDE4ICszMjEsNiBAQCB2b2lkIFJl
bW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyV2FpdGluZ0ZvcktleUNoYW5nZWQoKQog
dm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckN1cnJlbnRQbGF5YmFja1Rh
cmdldElzV2lyZWxlc3NDaGFuZ2VkKCkgeyB9OwogI2VuZGlmCiAKLVN0cmluZyBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjptZWRpYVBsYXllclJlZmVycmVyKCkgY29uc3QKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lZGlhUGxheWVyVXNlckFnZW50KCkgY29uc3QKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQogdm9pZCBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjptZWRpYVBsYXllckVudGVyRnVsbHNjcmVlbigpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKQEAgLTMwNCwxMiArMzQyLDYgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllcklzRnVsbHNjcmVlblBlcm1pdHRlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1ib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVySXNWaWRl
bygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KIExheW91dFJlY3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50
Qm94UmVjdCgpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTM1NiwxOCArMzg4
LDYgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpkb2VzSGF2ZUF0dHJpYnV0ZShjb25z
dCBBdG9tU3RyaW5nJiwgQXRvbVN0cmluZyopIGMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJv
b2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJTaG91bGRVc2VQZXJzaXN0ZW50
Q2FjaGUoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KLWNvbnN0IFN0cmluZyYgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJN
ZWRpYUNhY2hlRGlyZWN0b3J5KCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBlbXB0eVN0cmluZygpOwotfQotCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogdm9p
ZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2soQXVk
aW9UcmFja1ByaXZhdGUmKQogewpAQCAtNDE2LDI2ICs0MzYsMTMgQEAgVmVjdG9yPFJlZlB0cjxQ
bGF0Zm9ybVRleHRUcmFjaz4+IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om91dE9mQmFuZFRyYWNr
U291cmNlcygKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLVN0cmluZyBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllck5ldHdvcmtJbnRlcmZhY2VOYW1lKCkgY29u
c3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQog
Ym9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckdldFJhd0Nvb2tpZXMoY29u
c3QgVVJMJiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQotCiAjZW5kaWYKIAotU3RyaW5nIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6Om1lZGlhUGxheWVyU291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3QK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotfQot
CiBkb3VibGUgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5
YmFja1JhdGUoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC00NTQsMjQgKzQ2
MSwxMiBAQCBib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVySXNWaWRlb0Z1
bGxzY3JlZW5TdGFuZGJ5KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVZlY3RvcjxT
dHJpbmc+IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUHJlZmVycmVkQXVkaW9D
aGFyYWN0ZXJpc3RpY3MoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIFZlY3RvcjxTdHJpbmc+KCk7Ci19Ci0KIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJTaG91bGREaXNhYmxlU2xlZXAoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1jb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29u
dGVudFR5cGU+JiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYUNvbnRlbnRUeXBlc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gbV90eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKLX0KLQogYm9vbCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0
KCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggN2Y2
Y2JhYTZhY2JkMWQ5ZWYzNzg2ZmRlNTk4OTJmMDBiN2ExOWQ0Yi4uNDYzNmQ2ZTlkNmU0ZjQ3YmVi
ZmZkOWRkYzJkYTA1NmYwOWZkNzU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25m
aWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgogI2luY2x1
ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01MCw3
ICs1MSw3IEBAIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHkKICAgICA6IHB1YmxpYyBNZWRp
YVBsYXllckNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYs
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+
JiYsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CisgICAgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYsIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIE1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eUNvbmZpZ3VyYXRpb24mJik7CiAgICAgdmlydHVhbCB+UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSgp
CiAgICAgewogICAgIH0KQEAgLTE2OCw2ICsxNjksNyBAQCBwcml2YXRlOgogCiAjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigpIGZp
bmFsIHsgcmV0dXJuIG1fbG9nZ2VyOyB9CisgICAgY29uc3Qgdm9pZCogbWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4obV9jb25m
aWd1cmF0aW9uLmxvZ0lkZW50aWZpZXIpOyB9CiAjZW5kaWYKIAogICAgIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKQEAgLTE3OCw3ICsxODAsNyBAQCBwcml2YXRlOgog
ICAgIFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4gbV90eXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydDsKICAgICBSdW5Mb29wOjpUaW1lcjxSZW1vdGVNZWRpYVBsYXllclByb3h5PiBtX3Vw
ZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyOwogICAgIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUg
bV9jYWNoZWRTdGF0ZTsKLQorICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9u
IG1fY29uZmlndXJhdGlvbjsKICAgICBib29sIG1fc2Vla2FibGVDaGFuZ2VkIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgbV9idWZmZXJlZENoYW5nZWQgeyB0cnVlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTE5MzVkN2ViNDZiMTYxZDI3YjBhOTNh
NjNmNjAwMzI5OWQ2NmM3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oCkBAIC0wLDAg
KzEsMTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRUeXBlLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24geworICAgIFN0cmluZyBtZWRpYUtleXNTdG9y
YWdlRGlyZWN0b3J5OworICAgIFN0cmluZyByZWZlcnJlcjsKKyAgICBTdHJpbmcgdXNlckFnZW50
OworICAgIFN0cmluZyBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXI7CisgICAgU3RyaW5nIG5l
dHdvcmtJbnRlcmZhY2VOYW1lOworICAgIFN0cmluZyBtZWRpYUNhY2hlRGlyZWN0b3J5OworICAg
IFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4gbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQ7CisgICAgVmVjdG9yPFN0cmluZz4gcHJlZmVycmVkQXVkaW9DaGFyYWN0
ZXJpc3RpY3M7CisgICAgdWludDY0X3QgbG9nSWRlbnRpZmllcjsKKyAgICBib29sIHNob3VsZFVz
ZVBlcnNpc3RlbnRDYWNoZTsKKyAgICBib29sIGlzVmlkZW87CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAg
eworICAgICAgICBlbmNvZGVyIDw8IG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7CisgICAgICAg
IGVuY29kZXIgPDwgcmVmZXJyZXI7CisgICAgICAgIGVuY29kZXIgPDwgdXNlckFnZW50OworICAg
ICAgICBlbmNvZGVyIDw8IHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcjsKKyAgICAgICAgZW5j
b2RlciA8PCBuZXR3b3JrSW50ZXJmYWNlTmFtZTsKKyAgICAgICAgZW5jb2RlciA8PCBtZWRpYUNh
Y2hlRGlyZWN0b3J5OworICAgICAgICBlbmNvZGVyIDw8IG1lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0OworICAgICAgICBlbmNvZGVyIDw8IHByZWZlcnJlZEF1ZGlvQ2hh
cmFjdGVyaXN0aWNzOworICAgICAgICBlbmNvZGVyIDw8IGxvZ0lkZW50aWZpZXI7CisgICAgICAg
IGVuY29kZXIgPDwgc2hvdWxkVXNlUGVyc2lzdGVudENhY2hlOworICAgICAgICBlbmNvZGVyIDw8
IGlzVmlkZW87CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+CisgICAgc3Rh
dGljIE9wdGlvbmFsPFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uPiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gbWVkaWFL
ZXlzU3RvcmFnZURpcmVjdG9yeTsKKyAgICAgICAgZGVjb2RlciA+PiBtZWRpYUtleXNTdG9yYWdl
RGlyZWN0b3J5OworICAgICAgICBpZiAoIW1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkpCisgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPFN0cmluZz4g
cmVmZXJyZXI7CisgICAgICAgIGRlY29kZXIgPj4gcmVmZXJyZXI7CisgICAgICAgIGlmICghcmVm
ZXJyZXIpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlv
bmFsPFN0cmluZz4gdXNlckFnZW50OworICAgICAgICBkZWNvZGVyID4+IHVzZXJBZ2VudDsKKyAg
ICAgICAgaWYgKCF1c2VyQWdlbnQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyOwor
ICAgICAgICBkZWNvZGVyID4+IHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcjsKKyAgICAgICAg
aWYgKCFzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gbmV0d29ya0ludGVyZmFjZU5h
bWU7CisgICAgICAgIGRlY29kZXIgPj4gbmV0d29ya0ludGVyZmFjZU5hbWU7CisgICAgICAgIGlm
ICghbmV0d29ya0ludGVyZmFjZU5hbWUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gbWVkaWFDYWNoZURpcmVjdG9yeTsKKyAgICAg
ICAgZGVjb2RlciA+PiBtZWRpYUNhY2hlRGlyZWN0b3J5OworICAgICAgICBpZiAoIW1lZGlhQ2Fj
aGVEaXJlY3RvcnkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAg
IE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4+IG1lZGlhQ29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworICAgICAgICBkZWNvZGVyID4+IG1lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworICAgICAgICBpZiAoIW1lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gcHJlZmVycmVkQXVk
aW9DaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgIGRlY29kZXIgPj4gcHJlZmVycmVkQXVkaW9DaGFy
YWN0ZXJpc3RpY3M7CisgICAgICAgIGlmICghcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3Mp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPHVp
bnQ2NF90PiBsb2dJZGVudGlmaWVyOworICAgICAgICBkZWNvZGVyID4+IGxvZ0lkZW50aWZpZXI7
CisgICAgICAgIGlmICghbG9nSWRlbnRpZmllcikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc2hvdWxkVXNlUGVyc2lzdGVudENhY2hl
OworICAgICAgICBkZWNvZGVyID4+IHNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZTsKKyAgICAgICAg
aWYgKCFzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGlzVmlkZW87CisgICAgICAgIGRlY29k
ZXIgPj4gaXNWaWRlbzsKKyAgICAgICAgaWYgKCFpc1ZpZGVvKQorICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4ge3sgV1RGTW92ZSgqbWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeSksIFdURk1vdmUoKnJlZmVycmVyKSwgV1RGTW92ZSgqdXNlckFnZW50KSwg
V1RGTW92ZSgqc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKSwgV1RGTW92ZSgqbmV0d29ya0lu
dGVyZmFjZU5hbWUpLCBXVEZNb3ZlKCptZWRpYUNhY2hlRGlyZWN0b3J5KSwgV1RGTW92ZSgqbWVk
aWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpLCBXVEZNb3ZlKCpwcmVmZXJy
ZWRBdWRpb0NoYXJhY3RlcmlzdGljcyksIFdURk1vdmUoKmxvZ0lkZW50aWZpZXIpLCBXVEZNb3Zl
KCpzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUpLCBXVEZNb3ZlKCppc1ZpZGVvKSwgfX07CisgICAg
fQorCit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWFjZDc3ZWM5NjJjOWVkMTQyNjg2MzhkNGYyNzJhNmQ0
YWE4ZjUyZi4uNTJiNDAwNDJkYWMzN2JjMzg0ZjBlZDM0NWYwNDFjMzQ5N2U2OGZiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDY2
LDYgKzIwNjYsNyBAQAogCQkwN0E1RUJCOTFDN0JBNDNFMDBCOUNBNjkgLyogV0tGcmFtZUhhbmRs
ZVJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0ZyYW1lSGFu
ZGxlUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdBNUVCQkExQzdCQTQz
RTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tGcmFtZUhhbmRsZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwN0IzQjQ2RjIzQUIyQ0IzMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTA3QjNCNDc1MjNBRDg5MDQwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXll
clByb3h5Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0JBRjM1
NjIzQTJDQzE3MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3QkFGMzU3MjNBMkNDMTkwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwODY3RDZBNUZFODQwMzA3QzAyQUFDMDcgLyogQXBwS2l0
LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQXBwS2l0LmZyYW1ld29yazsgcGF0aCA9IC9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAi
PGFic29sdXRlPiI7IH07CkBAIC01MTExLDYgKzUxMTIsNyBAQAogCQkJCTA3MjVFRkFCMjM5QUUz
ODQwMEE1MzhBOSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAq
LywKIAkJCQkwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAgKi8sCiAJCQkJMDdCQUYzNTYyM0EyQ0MxNzAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaCAqLywKKwkJCQkwN0IzQjQ3NTIzQUQ4OTA0MDBCQTVCMTIgLyogUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWE7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3Bw
CmluZGV4IDJjODgwYzkyMWVjZDI0NGJhMDNkM2M1MmE2ZThmYjI2MDZkN2YyODIuLmNkNDE3ZDg4
NGI5ZDY0MmIwMDBlY2U2NGIzYTMxYmRhNzU5Y2YyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKQEAg
LTExNSw4ICsxMTYsMjMgQEAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW0KIHsKICAgICBhdXRvIGlk
ID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKIAorICAg
IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CisgICAg
Y29uZmlndXJhdGlvbi5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5ID0gcGxheWVyLT5tZWRpYUtl
eXNTdG9yYWdlRGlyZWN0b3J5KCk7CisgICAgY29uZmlndXJhdGlvbi5yZWZlcnJlciA9IHBsYXll
ci0+cmVmZXJyZXIoKTsKKyAgICBjb25maWd1cmF0aW9uLnVzZXJBZ2VudCA9IHBsYXllci0+dXNl
ckFnZW50KCk7CisgICAgY29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIg
PSBwbGF5ZXItPnNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpOworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgY29uZmlndXJhdGlvbi5uZXR3b3JrSW50ZXJmYWNlTmFtZSA9IHBsYXll
ci0+bWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSgpOworI2VuZGlmCisgICAgY29uZmln
dXJhdGlvbi5tZWRpYUNhY2hlRGlyZWN0b3J5ID0gcGxheWVyLT5tZWRpYUNhY2hlRGlyZWN0b3J5
KCk7CisgICAgY29uZmlndXJhdGlvbi5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydCA9IHBsYXllci0+bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQoKTsKKyAgICBjb25maWd1cmF0aW9uLnByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzID0g
cGxheWVyLT5wcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljcygpOworICAgIGNvbmZpZ3VyYXRp
b24ubG9nSWRlbnRpZmllciA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHBsYXllci0+bWVk
aWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpOworICAgIGNvbmZpZ3VyYXRpb24uc2hvdWxkVXNlUGVy
c2lzdGVudENhY2hlID0gcGxheWVyLT5zaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUoKTsKKyAgICBj
b25maWd1cmF0aW9uLmlzVmlkZW8gPSBwbGF5ZXItPmlzVmlkZW9QbGF5ZXIoKTsKKwogICAgIGJv
b2wgaGF2ZVJlbW90ZVByb3h5OwotICAgIGJvb2wgc2VuZFN1Y2NlZWRlZCA9IGdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpDcmVhdGVNZWRpYVBsYXllcihpZCwgcmVtb3RlRW5naW5lSWRlbnRpZmllciksIE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXI6OlJl
cGx5KGhhdmVSZW1vdGVQcm94eSksIDApOworICAgIGJvb2wgc2VuZFN1Y2NlZWRlZCA9IGdwdVBy
b2Nlc3NDb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OjpDcmVhdGVNZWRpYVBsYXllcihpZCwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwg
Y29uZmlndXJhdGlvbiksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6
Q3JlYXRlTWVkaWFQbGF5ZXI6OlJlcGx5KGhhdmVSZW1vdGVQcm94eSksIDApOwogICAgIGlmICgh
aGF2ZVJlbW90ZVByb3h5IHx8ICFzZW5kU3VjY2VlZGVkKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5
cygiRmFpbGVkIHRvIGNyZWF0ZSByZW1vdGUgbWVkaWEgcGxheWVyLiIpOwogICAgICAgICByZXR1
cm4gbnVsbHB0cjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386307</attachid>
            <date>2019-12-21 18:08:33 -0800</date>
            <delta_ts>2019-12-21 19:09:26 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-205541-20191221180832.patch</filename>
            <type>text/plain</type>
            <size>23894</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3YTliMDI5NGVmZmJmZWI5
MjE5YjdlMjU0YzYxYzNkNjA5MmJiNjMuLmI1YjYyNjNmM2Y5MDVjMjQzMDgxZWNiMWIwNWQwOTIz
NzFhZjIzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMTItMjEgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBw
cm9jZXNzXSBBZGQgcmVtb3RlIG1lZGlhIHBsYXllciBjb25maWd1cmF0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1NDEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU4MTM3NDE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNl
ci4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eTo6Y3JlYXRlTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllck1lZGlhS2V5c1N0
b3JhZ2VEaXJlY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZWRpYVBsYXllclJlZmVycmVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJVc2VyQWdlbnQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclNvdXJjZUFwcGxp
Y2F0aW9uSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6Om1lZGlhUGxheWVyTmV0d29ya0ludGVyZmFjZU5hbWUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllck1lZGlhQ2FjaGVE
aXJlY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUHJlZmVycmVk
QXVkaW9DaGFyYWN0ZXJpc3RpY3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllclByb3h5OjptZWRpYVBsYXllclNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVySXNW
aWRlbyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1l
ZGlhUGxheWVyS2V5TmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6bWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKToKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNyZWF0ZVJlbW90ZU1lZGlhUGxheWVyKToKKwog
MjAxOS0xMi0yMSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgdGltZVN0YW1wIHRvIElUUCBkYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5jcHAKaW5kZXggOWY2YTYwODA1MDQ1YTVlMWM2MDg1ZjFjOWRiYWU3MWUzMjA5YTVk
NS4uNzY5MDIxNDhlYzkwNzg2Nzc4ZjZlYzlkMDIxOTlhNTM5YzMxMGFhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBAIC02MiwxMiArNjIsMTIgQEAgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpCiB7CiB9CiAK
LXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxheWVyKE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIE1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wgc3VjY2VlZGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWQsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
ZmllciBlbmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZWVkZWQp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlk
KTsKIAogICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7Ci0gICAgbV9wcm94aWVz
LmFkZChpZCwgbWFrZVVuaXF1ZTxSZW1vdGVNZWRpYVBsYXllclByb3h5PigqdGhpcywgaWQsIG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCksIGVuZ2luZUlkZW50aWZpZXIp
KTsKKyAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk+KCp0aGlzLCBpZCwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSwg
ZW5naW5lSWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogCiAgICAgY29tcGxl
dGlvbkhhbmRsZXIodHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IGMw
ZTdmNGU5MzNhYzU3ZDQ3NmUyZmI1YzJjMGI1YmQ2MGE1MzkxYmIuLmYxNTI0ZjM2OTc2OWQ0ZTcx
M2ZiMzI5NDUwNDIzY2M0MWZmYzYwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVs
cGVyLmg+CiAKQEAgLTY3LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CiAKLSAgICB2b2lkIGNyZWF0ZU1l
ZGlhUGxheWVyKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CisgICAgdm9pZCBjcmVhdGVNZWRpYVBsYXllcihNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgZGVsZXRlTWVkaWFQbGF5
ZXIoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcik7CiAKICAgICAvLyBNZWRpYSBw
bGF5ZXIgZmFjdG9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IGFhNTdmZTliOTMzZmIxMjliMmEwNWVhZWE3ZjlmNzUwODhlMjdkMTIuLjJmODdm
MzI4YzQ4NTUwZjVhMzMyNmVjMWEzNGQ0NDc3NjJjMTkzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBFTkFC
TEUoVklERU8pCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5IE5v
dFJlZkNvdW50ZWQgewotICAgIENyZWF0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKSAt
PiAoYm9vbCBzdWNjZXNzKSBTeW5jaHJvbm91cworICAgIENyZWF0ZU1lZGlhUGxheWVyKFdlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50OF90IFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdp
bmVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmln
dXJhdGlvbiBjb25maWd1cmF0aW9uKSAtPiAoYm9vbCBzdWNjZXNzKSBTeW5jaHJvbm91cwogICAg
IERlbGV0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZCkKIAogICAgIEdldFN1cHBvcnRlZFR5cGVzKGVudW06dWludDhfdCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRp
ZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKSBTeW5jaHJvbm91cwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
Y3BwCmluZGV4IGJkMjY4YjkwNjg2MzZlMDFmNDdkMTVlYmFmNWMwMTU2YjJhY2VlZjIuLjA1MGFi
NjdiNDc5YjZlMmQxNTNhODQ1ODM0YzUxMzQzNmY5YzgyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAK
QEAgLTM4LDE2ICszOCwxOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKLVJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlv
biwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZp
ZXIpCitSZW1vdGVNZWRpYVBsYXllclByb3h5OjpSZW1vdGVNZWRpYVBsYXllclByb3h5KFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtYW5hZ2VyLCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIE1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBSZW1v
dGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgOiBt
X2lkKGlkKQogICAgICwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24p
KQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBtX2VuZ2luZUlkZW50aWZpZXIoZW5n
aW5lSWRlbnRpZmllcikKICAgICAsIG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGltZXIoUnVu
TG9vcDo6bWFpbigpLCB0aGlzLCAmUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dGltZXJGaXJlZCkK
KyAgICAsIG1fY29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKQogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgICwgbV9sb2dnZXIobV9tYW5hZ2VyLmxvZ2dlcigpKQogI2VuZGlmCiB7Cisg
ICAgbV90eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA9IG1fY29uZmlndXJhdGlvbi5tZWRp
YUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKICAgICBtX3BsYXllciA9IE1l
ZGlhUGxheWVyOjpjcmVhdGUoKnRoaXMsIG1fZW5naW5lSWRlbnRpZmllcik7CiB9CiAKQEAgLTE3
Nyw2ICsxNzksNjEgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckVu
Z2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpFbmdpbmVGYWlsZWRUb0xvYWQo
bV9pZCwgbV9wbGF5ZXItPnBsYXRmb3JtRXJyb3JDb2RlKCkpLCAwKTsKIH0KIAorI2lmIEVOQUJM
RShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQorU3RyaW5nIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyTWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fY29uZmlndXJhdGlvbi5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OworfQorI2VuZGlm
CisKK1N0cmluZyBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclJlZmVycmVyKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25maWd1cmF0aW9uLnJlZmVycmVyOworfQorCitTdHJp
bmcgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJVc2VyQWdlbnQoKSBjb25zdAor
eworICAgIHJldHVybiBtX2NvbmZpZ3VyYXRpb24udXNlckFnZW50OworfQorCitTdHJpbmcgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJTb3VyY2VBcHBsaWNhdGlvbklkZW50aWZp
ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRp
b25JZGVudGlmaWVyOworfQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK1N0cmluZyBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllck5ldHdvcmtJbnRlcmZhY2VOYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9jb25maWd1cmF0aW9uLm5ldHdvcmtJbnRlcmZhY2VOYW1lOwor
fQorI2VuZGlmCisKK2NvbnN0IFN0cmluZyYgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQ
bGF5ZXJNZWRpYUNhY2hlRGlyZWN0b3J5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25maWd1
cmF0aW9uLm1lZGlhQ2FjaGVEaXJlY3Rvcnk7Cit9CisKK2NvbnN0IFZlY3RvcjxXZWJDb3JlOjpD
b250ZW50VHlwZT4mIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhQ29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90eXBlc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydDsKK30KKworVmVjdG9yPFN0cmluZz4gUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6bWVkaWFQbGF5ZXJQcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljcygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5wcmVmZXJyZWRBdWRpb0NoYXJhY3Rlcmlz
dGljczsKK30KKworYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclNob3Vs
ZFVzZVBlcnNpc3RlbnRDYWNoZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29uZmlndXJhdGlv
bi5zaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGU7Cit9CisKK2Jvb2wgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6bWVkaWFQbGF5ZXJJc1ZpZGVvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25maWd1
cmF0aW9uLmlzVmlkZW87Cit9CisKKy8vIEZJWE1FOiBVbmltcGxlbWVudGVkCiB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUGxheWJhY2tTdGF0ZUNoYW5nZWQoKQogewog
ICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6UGxheWJhY2tTdGF0ZUNoYW5nZWQobV9pZCwgbV9wbGF5ZXItPnBhdXNlZCgp
KSwgMCk7CkBAIC0yNDYsMTMgKzMwMyw2IEBAIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJLZXlOZWVkZWQoVWludDhBcnJheSopCiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ICAgICByZXR1cm4gZmFsc2U7CiB9Ci0KLVN0cmluZyBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllck1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdAotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci19Ci0KICNlbmRpZgogCiAj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKQEAgLTI3MSwxOCArMzIxLDYgQEAgdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllcldhaXRpbmdGb3JLZXlDaGFuZ2VkKCkKIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDdXJyZW50UGxheWJhY2tUYXJn
ZXRJc1dpcmVsZXNzQ2hhbmdlZCgpIHsgfTsKICNlbmRpZgogCi1TdHJpbmcgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSZWZlcnJlcigpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjptZWRpYVBsYXllclVzZXJBZ2VudCgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KIHZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6bWVkaWFQbGF5ZXJFbnRlckZ1bGxzY3JlZW4oKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CkBAIC0zMDQsMTIgKzM0Miw2IEBAIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25zdAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllcklzVmlkZW8o
KSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQot
CiBMYXlvdXRSZWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ29udGVudEJv
eFJlY3QoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0zNTYsMTggKzM4OCw2
IEBAIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZG9lc0hhdmVBdHRyaWJ1dGUoY29uc3Qg
QXRvbVN0cmluZyYsIEF0b21TdHJpbmcqKSBjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29s
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENh
Y2hlKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB0cnVlOwot
fQotCi1jb25zdCBTdHJpbmcmIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyTWVk
aWFDYWNoZURpcmVjdG9yeSgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsKLX0KLQogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKEF1ZGlv
VHJhY2tQcml2YXRlJikKIHsKQEAgLTQxNiwyNiArNDM2LDEzIEBAIFZlY3RvcjxSZWZQdHI8UGxh
dGZvcm1UZXh0VHJhY2s+PiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpvdXRPZkJhbmRUcmFja1Nv
dXJjZXMoCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1TdHJpbmcgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSgpIGNvbnN0
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KIGJv
b2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzKGNvbnN0
IFVSTCYsIFZlY3RvcjxDb29raWU+JikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
ICAgIHJldHVybiBmYWxzZTsKIH0KLQogI2VuZGlmCiAKLVN0cmluZyBSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZWRpYVBsYXllclNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0Ci17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLX0KLQog
ZG91YmxlIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJh
Y2tSYXRlKCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtNDU0LDI0ICs0NjEs
MTIgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllcklzVmlkZW9GdWxs
c2NyZWVuU3RhbmRieSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1WZWN0b3I8U3Ry
aW5nPiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclByZWZlcnJlZEF1ZGlvQ2hh
cmFjdGVyaXN0aWNzKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBWZWN0b3I8U3RyaW5nPigpOwotfQotCiBib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1l
ZGlhUGxheWVyU2hvdWxkRGlzYWJsZVNsZWVwKCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbnRl
bnRUeXBlPiYgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIG1fdHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7Ci19Ci0KIGJvb2wgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgp
IGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IDdmNmNi
YWE2YWNiZDFkOWVmMzc4NmZkZTU5ODkyZjAwYjdhMTlkNGIuLjQ2MzZkNmU5ZDZlNGY0N2JlYmZm
ZDlkZGMyZGEwNTZmMDlmZDc1NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtMjgsNiArMjgsNyBAQAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmln
dXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKICNpbmNsdWRl
IDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTAsNyAr
NTEsNyBAQCBjbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5CiAgICAgOiBwdWJsaWMgTWVkaWFQ
bGF5ZXJDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
LCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIpOworICAgIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlD
b25maWd1cmF0aW9uJiYpOwogICAgIHZpcnR1YWwgflJlbW90ZU1lZGlhUGxheWVyUHJveHkoKQog
ICAgIHsKICAgICB9CkBAIC0xNjgsNiArMTY5LDcgQEAgcHJpdmF0ZToKIAogI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5h
bCB7IHJldHVybiBtX2xvZ2dlcjsgfQorICAgIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRl
bnRpZmllcigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fY29uZmln
dXJhdGlvbi5sb2dJZGVudGlmaWVyKTsgfQogI2VuZGlmCiAKICAgICBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIG1faWQ7CkBAIC0xNzgsNyArMTgwLDcgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+IG1fdHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQ7CiAgICAgUnVuTG9vcDo6VGltZXI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV91cGRh
dGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcjsKICAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRlIG1f
Y2FjaGVkU3RhdGU7Ci0KKyAgICBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiBt
X2NvbmZpZ3VyYXRpb247CiAgICAgYm9vbCBtX3NlZWthYmxlQ2hhbmdlZCB7IHRydWUgfTsKICAg
ICBib29sIG1fYnVmZmVyZWRDaGFuZ2VkIHsgdHJ1ZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRp
b24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MGY0MWRkZDM0Y2I3NmJmZWQwYzM3MWRl
ZjcyMDFjNjY0OGJhZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsx
LDE0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50VHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFJlbW90ZU1l
ZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uIHsKKyAgICBTdHJpbmcgbWVkaWFLZXlzU3RvcmFn
ZURpcmVjdG9yeTsKKyAgICBTdHJpbmcgcmVmZXJyZXI7CisgICAgU3RyaW5nIHVzZXJBZ2VudDsK
KyAgICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyOworICAgIFN0cmluZyBuZXR3
b3JrSW50ZXJmYWNlTmFtZTsKKyAgICBTdHJpbmcgbWVkaWFDYWNoZURpcmVjdG9yeTsKKyAgICBW
ZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0OworICAgIFZlY3RvcjxTdHJpbmc+IHByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVy
aXN0aWNzOworICAgIHVpbnQ2NF90IGxvZ0lkZW50aWZpZXIgeyAwIH07CisgICAgYm9vbCBzaG91
bGRVc2VQZXJzaXN0ZW50Q2FjaGUgeyBmYWxzZSB9OworICAgIGJvb2wgaXNWaWRlbyB7IDAgfTsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgbWVkaWFLZXlzU3RvcmFn
ZURpcmVjdG9yeTsKKyAgICAgICAgZW5jb2RlciA8PCByZWZlcnJlcjsKKyAgICAgICAgZW5jb2Rl
ciA8PCB1c2VyQWdlbnQ7CisgICAgICAgIGVuY29kZXIgPDwgc291cmNlQXBwbGljYXRpb25JZGVu
dGlmaWVyOworICAgICAgICBlbmNvZGVyIDw8IG5ldHdvcmtJbnRlcmZhY2VOYW1lOworICAgICAg
ICBlbmNvZGVyIDw8IG1lZGlhQ2FjaGVEaXJlY3Rvcnk7CisgICAgICAgIGVuY29kZXIgPDwgbWVk
aWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CisgICAgICAgIGVuY29kZXIg
PDwgcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgIGVuY29kZXIgPDwgbG9n
SWRlbnRpZmllcjsKKyAgICAgICAgZW5jb2RlciA8PCBzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGU7
CisgICAgICAgIGVuY29kZXIgPDwgaXNWaWRlbzsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xh
c3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9uYWw8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNv
bmZpZ3VyYXRpb24+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgT3B0
aW9uYWw8U3RyaW5nPiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OworICAgICAgICBkZWNvZGVy
ID4+IG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7CisgICAgICAgIGlmICghbWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8U3RyaW5nPiByZWZlcnJlcjsKKyAgICAgICAgZGVjb2RlciA+PiByZWZlcnJl
cjsKKyAgICAgICAgaWYgKCFyZWZlcnJlcikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICAgICAgT3B0aW9uYWw8U3RyaW5nPiB1c2VyQWdlbnQ7CisgICAgICAgIGRlY29k
ZXIgPj4gdXNlckFnZW50OworICAgICAgICBpZiAoIXVzZXJBZ2VudCkKKyAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8U3RyaW5nPiBzb3VyY2VBcHBs
aWNhdGlvbklkZW50aWZpZXI7CisgICAgICAgIGRlY29kZXIgPj4gc291cmNlQXBwbGljYXRpb25J
ZGVudGlmaWVyOworICAgICAgICBpZiAoIXNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcikKKyAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8U3RyaW5n
PiBuZXR3b3JrSW50ZXJmYWNlTmFtZTsKKyAgICAgICAgZGVjb2RlciA+PiBuZXR3b3JrSW50ZXJm
YWNlTmFtZTsKKyAgICAgICAgaWYgKCFuZXR3b3JrSW50ZXJmYWNlTmFtZSkKKyAgICAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8U3RyaW5nPiBtZWRpYUNh
Y2hlRGlyZWN0b3J5OworICAgICAgICBkZWNvZGVyID4+IG1lZGlhQ2FjaGVEaXJlY3Rvcnk7Cisg
ICAgICAgIGlmICghbWVkaWFDYWNoZURpcmVjdG9yeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRUeXBl
Pj4gbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CisgICAgICAgIGRl
Y29kZXIgPj4gbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CisgICAg
ICAgIGlmICghbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpCisgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPFZlY3RvcjxT
dHJpbmc+PiBwcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljczsKKyAgICAgICAgZGVjb2RlciA+
PiBwcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljczsKKyAgICAgICAgaWYgKCFwcmVmZXJyZWRB
dWRpb0NoYXJhY3RlcmlzdGljcykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IGxvZ0lkZW50aWZpZXI7CisgICAgICAgIGRlY29k
ZXIgPj4gbG9nSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFsb2dJZGVudGlmaWVyKQorICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxib29sPiBzaG91
bGRVc2VQZXJzaXN0ZW50Q2FjaGU7CisgICAgICAgIGRlY29kZXIgPj4gc2hvdWxkVXNlUGVyc2lz
dGVudENhY2hlOworICAgICAgICBpZiAoIXNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSkKKyAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNW
aWRlbzsKKyAgICAgICAgZGVjb2RlciA+PiBpc1ZpZGVvOworICAgICAgICBpZiAoIWlzVmlkZW8p
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7ewor
ICAgICAgICAgICAgV1RGTW92ZSgqbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSksCisgICAgICAg
ICAgICBXVEZNb3ZlKCpyZWZlcnJlciksCisgICAgICAgICAgICBXVEZNb3ZlKCp1c2VyQWdlbnQp
LAorICAgICAgICAgICAgV1RGTW92ZSgqc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKSwKKyAg
ICAgICAgICAgIFdURk1vdmUoKm5ldHdvcmtJbnRlcmZhY2VOYW1lKSwKKyAgICAgICAgICAgIFdU
Rk1vdmUoKm1lZGlhQ2FjaGVEaXJlY3RvcnkpLAorICAgICAgICAgICAgV1RGTW92ZSgqbWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpLAorICAgICAgICAgICAgV1RGTW92
ZSgqcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MpLAorICAgICAgICAgICAgV1RGTW92ZSgq
bG9nSWRlbnRpZmllciksCisgICAgICAgICAgICBXVEZNb3ZlKCpzaG91bGRVc2VQZXJzaXN0ZW50
Q2FjaGUpLAorICAgICAgICAgICAgV1RGTW92ZSgqaXNWaWRlbyksCisgICAgICAgIH19OworICAg
IH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA1YWNkNzdlYzk2MmM5ZWQxNDI2ODYzOGQ0ZjI3MmE2ZDRh
YThmNTJmLi41MmI0MDA0MmRhYzM3YmMzODRmMGVkMzQ1ZjA0MWMzNDk3ZTY4ZmI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwNjYs
NiArMjA2Niw3IEBACiAJCTA3QTVFQkI5MUM3QkE0M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFuZGxl
UmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLRnJhbWVIYW5k
bGVSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0E1RUJCQTFDN0JBNDNF
MDBCOUNBNjkgLyogV0tGcmFtZUhhbmRsZVJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS0ZyYW1lSGFuZGxlUmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDdCM0I0NzUyM0FEODkwNDAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QkFGMzU2
MjNBMkNDMTcwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDdCQUYzNTcyM0EyQ0MxOTAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NjdENkE1RkU4NDAzMDdDMDJBQUMwNyAvKiBBcHBLaXQu
ZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBBcHBLaXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8
YWJzb2x1dGU+IjsgfTsKQEAgLTUxMTEsNiArNTExMiw3IEBACiAJCQkJMDcyNUVGQUIyMzlBRTM4
NDAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICov
LAogCQkJCTA3QkFGMzU3MjNBMkNDMTkwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcCAqLywKIAkJCQkwN0JBRjM1NjIzQTJDQzE3MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5oICovLAorCQkJCTA3QjNCNDc1MjNBRDg5MDQwMEJBNUIxMiAvKiBSZW1vdGVNZWRp
YVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYTsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAK
aW5kZXggMmM4ODBjOTIxZWNkMjQ0YmEwM2QzYzUyYTZlOGZiMjYwNmQ3ZjI4Mi4uY2Q0MTdkODg0
YjlkNjQyYjAwMGVjZTY0YjNhMzFiZGE3NTljZjJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRp
b24uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgpAQCAt
MTE1LDggKzExNiwyMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNyZWF0ZVJlbQogewogICAgIGF1dG8gaWQg
PSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwogCisgICAg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKKyAgICBj
b25maWd1cmF0aW9uLm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkgPSBwbGF5ZXItPm1lZGlhS2V5
c1N0b3JhZ2VEaXJlY3RvcnkoKTsKKyAgICBjb25maWd1cmF0aW9uLnJlZmVycmVyID0gcGxheWVy
LT5yZWZlcnJlcigpOworICAgIGNvbmZpZ3VyYXRpb24udXNlckFnZW50ID0gcGxheWVyLT51c2Vy
QWdlbnQoKTsKKyAgICBjb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllciA9
IHBsYXllci0+c291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCk7CisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBjb25maWd1cmF0aW9uLm5ldHdvcmtJbnRlcmZhY2VOYW1lID0gcGxheWVy
LT5tZWRpYVBsYXllck5ldHdvcmtJbnRlcmZhY2VOYW1lKCk7CisjZW5kaWYKKyAgICBjb25maWd1
cmF0aW9uLm1lZGlhQ2FjaGVEaXJlY3RvcnkgPSBwbGF5ZXItPm1lZGlhQ2FjaGVEaXJlY3Rvcnko
KTsKKyAgICBjb25maWd1cmF0aW9uLm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0ID0gcGxheWVyLT5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dCgpOworICAgIGNvbmZpZ3VyYXRpb24ucHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MgPSBw
bGF5ZXItPnByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKCk7CisgICAgY29uZmlndXJhdGlv
bi5sb2dJZGVudGlmaWVyID0gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4ocGxheWVyLT5tZWRp
YVBsYXllckxvZ0lkZW50aWZpZXIoKSk7CisgICAgY29uZmlndXJhdGlvbi5zaG91bGRVc2VQZXJz
aXN0ZW50Q2FjaGUgPSBwbGF5ZXItPnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpOworICAgIGNv
bmZpZ3VyYXRpb24uaXNWaWRlbyA9IHBsYXllci0+aXNWaWRlb1BsYXllcigpOworCiAgICAgYm9v
bCBoYXZlUmVtb3RlUHJveHk7Ci0gICAgYm9vbCBzZW5kU3VjY2VlZGVkID0gZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyKSwgTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVBsYXllcjo6UmVw
bHkoaGF2ZVJlbW90ZVByb3h5KSwgMCk7CisgICAgYm9vbCBzZW5kU3VjY2VlZGVkID0gZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBj
b25maWd1cmF0aW9uKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpD
cmVhdGVNZWRpYVBsYXllcjo6UmVwbHkoaGF2ZVJlbW90ZVByb3h5KSwgMCk7CiAgICAgaWYgKCFo
YXZlUmVtb3RlUHJveHkgfHwgIXNlbmRTdWNjZWVkZWQpIHsKICAgICAgICAgV1RGTG9nQWx3YXlz
KCJGYWlsZWQgdG8gY3JlYXRlIHJlbW90ZSBtZWRpYSBwbGF5ZXIuIik7CiAgICAgICAgIHJldHVy
biBudWxscHRyOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>